以下、添付図面を参照しながら、本発明にかかる情報処理装置、マージ方法及びプログラムの実施形態を詳細に説明する。
図1は、本実施形態の情報処理システム1の構成の一例を示すブロック図である。図1に示すように、情報処理システム1は、情報処理装置10と、ユーザ端末20と、携帯端末30と、クラウドサーバ40−1〜40−n(nは2以上の自然数)と、を備える。
情報処理装置10及びユーザ端末20は、イントラネット2に接続され、クラウドサーバ40−1〜40−nは、インターネット4に接続されている。また、イントラネット2とインターネット4とは、ファイアウォール3を介して接続されている。つまり本実施形態では、情報処理装置10及びユーザ端末20は、イントラネット2、ファイアウォール3、及びインターネット4を介して、クラウドサーバ40−1〜40−nと通信可能に接続されている。
携帯端末30は、3Gや4Gなどの電話回線又はWi‐Fi(登録商標)などを利用してインターネット4に接続可能であり、インターネット4を介して、クラウドサーバ40−1〜40−nと通信可能に接続できる。
イントラネット2は、LAN(Local Area Network)であってもよいし、WAN(Wide Area Network)であってもよい。イントラネット2、ファイアウォール3、及びインターネット4で構成されるネットワークは、有線で構成されていてもよいし、無線で構成されていてもよいし、両者を併用して構成されていてもよい。
本実施形態では、情報処理装置10は、複合機(MFP:Multifunction Peripheral)やファクシミリ装置等の画像形成装置である場合を例に取り説明するが、これに限定されるものではない。複合機は、複写機能、印刷機能、スキャナ機能、及びファクシミリ機能のうち少なくとも2つの機能を有するものである。
図2は、本実施形態の情報処理装置10のハードウェア構成の一例を示すブロック図である。図2に示すように、本実施形態の情報処理装置10は、ADF(Auto Document Feeder:原稿自動搬送装置)101と、スキャナユニット102と、排紙トレイ103と、ディスプレイパネル104と、給紙テーブル105と、プリントエンジン106と、排紙トレイ107と、ネットワークI/F108と、コントローラ110と、を備える。
ネットワークI/F108は、情報処理装置10がイントラネット2を介した通信を行うためのインタフェースであり、Ethernet(登録商標)やUSB(Universal Serial Bus)インタフェースなどが挙げられる。ネットワークI/F108は、例えば、TCP/IPプロトコルによる通信が可能である。また、ネットワークI/F108は、情報処理装置10がファクシミリとして機能する際に、ファクシミリ送信を実行するためのインタフェースとしても機能する。このため、ネットワークI/F108は、電話回線にも接続されている。
コントローラ110は、情報処理装置10の各部を制御するものであり、CPU(Central Processing Unit)111と、ROM(Read Only Memory)112と、RAM(Random Access Memory)113と、ASIC(Application Specific Integrated Circuit)114と、HDD(Hard Disk Drive)115と、を有する。
CPU111は、RAM113をワークエリアとしてROM112又はHDD115などに格納されたプログラムを実行する。これにより、CPU111は、情報処理装置10全体の動作を制御する。具体的には、CPU111は、スキャナユニット102の駆動を制御してスキャン動作を実現したり、プリントエンジン106の駆動を制御してプリント動作を実現したりする。
またCPU111は、ディスプレイパネル104に情報表示を行ったり、ディスプレイパネル104を介して入力された情報をCPU111に通知したりする。またCPU111は、ネットワークI/F108を介して外部から情報を受信したり、外部へ情報を送信したりする。
ASIC114は、印刷出力すべき画像情報に基づいて描画情報を生成する。この描画情報とは、プリントエンジン106が画像形成動作において形成すべき画像を描画するための情報である。また、ASIC114は、スキャナユニット102から入力される撮像データ(スキャンデータ)を処理し、画像データを生成する。この画像データは、スキャナ動作の結果物として、HDD115に格納されたり、ネットワークI/F108を介してファクシミリ送信などで外部に出力されたりする。
本実施形態の情報処理装置10は、上記のような構成を有しているため、例えば、原稿をスキャンして画像データを取り込み、取り込んだ画像データに対してプログラムに従ったデータ処理を実行したりすることができる。
図1に戻り、クラウドサーバ40−1〜40−nは、インターネット上でアドレス帳を管理し、外部要求に応じて、アドレス帳を追加登録したり、外部に提供したりするサーバ装置であり、それぞれ、1台以上のコンピュータにより実現できる。本実施形態では、クラウドサーバ40−1〜40−nは、それぞれ、異なる運営主体により運営されており、アドレス帳のデータの管理形式や取得形式(プロトコル)などの仕様が互いに異なる場合を例に取り説明するが、これに限定されるものではない。なお、以下の説明では、クラウドサーバ40−1〜40−nを各々区別する必要がない場合は、単にクラウドサーバ40と称する場合がある。
図3は、本実施形態のクラウドサーバ40のハードウェア構成の一例を示すブロック図である。図3に示すように、クラウドサーバ40は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などの制御装置401と、ROM(Read Only Memory)やRAM(Random Access Memory)などの主記憶装置402と、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの補助記憶装置403と、ディスプレイなどの表示装置404と、キーボードやマウスなどの入力装置405と、通信インタフェースなどの通信装置406と、を備えており、通常のコンピュータを利用したハードウェア構成となっている。
制御装置401は、主記憶装置402のRAMをワークエリアとして主記憶装置402のROMや補助記憶装置403などに格納されたプログラムを実行することで、インターネット上でアドレス帳を管理する機能を実現する。
図1に戻り、ユーザ端末20は、情報処理装置10に対し、各種設定を行うための端末装置であり、例えば、PC(Personal Computer)やスマートデバイスなどが挙げられるが、これらに限定されるものではない。
携帯端末30は、クラウドサーバ40に対し、アドレス帳の追加登録などを行うものであり、スマートデバイスや携帯電話などが挙げられるが、これらに限定されるものではない。
なお、ユーザ端末20や携帯端末30のハードウェア構成については、クラウドサーバ40と同様の構成により実現できる。
図4は、本実施形態の情報処理装置10の機能構成の一例を示すブロック図である。図4に示すように、情報処理装置10は、作成部120と、ワークフロー記憶部130と、設定部140と、実行制御部150と、アドレス帳記憶部160と、機能実行部170と、を含む。作成部120、設定部140、実行制御部150、及び機能実行部170は、例えば、CPU111、RAM113、及びネットワークI/F108などにより実現できる。ワークフロー記憶部130及びアドレス帳記憶部160は、例えば、HDD115やRAM113などにより実現できる。
作成部120は、実行対象の1以上のコンポーネント及び実行順序が定義されたワークフロー情報を作成し、ワークフロー記憶部130に記憶する。コンポーネントは、部品化された(部品単位の)ソフトウェアであり、複数のコンポーネントを組み合わせることで、目的の機能を実行するようなソフトウェア(アプリケーション)を生成することができる。つまり、ワークフロー情報では、目的の機能を実行するために必要なコンポーネントの組み合わせ及びその実行順序が定義される。
なお、コンポーネントの実体は、後述する実行制御部150が保持しているので、ワークフロー情報に、実行対象のコンポーネントの実体を含める必要はない。ワークフロー情報では、実行対象のコンポーネントを識別可能な情報(例えば、実行対象のコンポーネントのID)を用いて、実行対象の1以上のコンポーネント及び実行順序が定義されていればよい。
作成部120は、例えば、図5に示すようなワークフロー情報作成画面を生成し、ユーザからの操作入力に基づいて、ワークフロー情報を作成する。図5に示す例では、画面の左側の欄にコンポーネントを示すコンポーネント情報の一覧が表示されており、ユーザは、コンポーネント情報の一覧の中から、実行対象の1以上のコンポーネントのコンポーネント情報を選択し(ドラッグ&ドロップすることにより)、画面の右側の欄に実行する順番に並べる。これにより、作成部120は、ワークフロー情報を作成する。ここでは、クラウドAからのアドレス帳の取得、情報処理装置からのアドレス帳の取得、両アドレス帳のマージ処理、マージ後のアドレス帳の登録という4つのコンポーネントをこの順序で実行することが定義されたワークフロー情報となっている。
なお本実施形態では、ワークフロー情報作成画面は、WebのUIとしてユーザ端末20などに提供され、ユーザは、ユーザ端末20に表示されたワークフロー情報作成画面上でワークフロー情報を作成するための操作入力を行うような形態を想定しているが、これに限定されるものではない。例えば、ワークフロー情報作成画面をクラウド上のサービスとして提供してもよいし、情報処理装置10上のツールとして提供してもよい。
設定部140は、作成部120により作成され、ワークフロー記憶部130に記憶されているワークフロー情報を実行制御部150に設定する。なお本実施形態では、ワークフロー記憶部130には、作成部120により作成されたワークフロー情報が記憶されている場合を例に取り説明するが、これに限定されず、予め固定のワークフロー情報(デフォルトのワークフロー情報)を記憶しておいてもよい。
実行制御部150は、複数種類のコンポーネントを保持しており、設定部140により設定されたワークフロー情報に基づいて、保持している複数種類のコンポーネントの中から実行対象の1以上のコンポーネントを実行順序で実行する。
以下では、ワークフロー情報に基づいて実行される目的の機能が、情報処理装置10で管理されているアドレス帳に、クラウドサーバ40で管理されているアドレス帳を同期する機能(詳細には、情報処理装置10で管理されているアドレス帳に、クラウドサーバ40で管理されているアドレス帳をマージして、情報処理装置10で管理されているアドレス帳を更新する機能)である場合を例に取り説明するが、これに限定されるものではない。更に、設定部140により設定されたワークフロー情報が、前述した、クラウドAからのアドレス帳の取得、情報処理装置からのアドレス帳の取得、両アドレス帳のマージ処理、マージ後のアドレス帳の登録という4つのコンポーネントを、この順序で実行することが定義されたワークフロー情報である場合を例に取り説明するが、これに限定されるものではない。
実行制御部150は、複数種類のコンポーネントとして、例えば、図5で説明したコンポーネント情報の一覧に含まれる各コンポーネントを保持している。但し、前述のとおり、本実施形態では、ワークフロー情報に基づいて実行される目的の機能が、クラウドサーバ40で管理されているアドレス帳を同期する機能である場合を例に取り説明するため、図4では、実行制御部150が保持するコンポーネントとして、第1の情報取得部151−1〜151−n、第2の情報取得部152、マージ部153、及び処理部154のみを例示している。
なお、ワークフロー情報で定義されている、クラウドAからのアドレス帳の取得というコンポーネントは第1の情報取得部151−1に相当し、情報処理装置からのアドレス帳の取得というコンポーネントは第2の情報取得部152に相当し、両アドレス帳のマージ処理というコンポーネントはマージ部153に相当し、マージ後のアドレス帳の登録というコンポーネントは処理部154に相当するものとする。
まず、実行制御部150は、設定部140により設定されたワークフロー情報(クラウドAからのアドレス帳の取得)に基づいて、第1の情報取得部151−1を実行する。これにより、第1の情報取得部151−1は、第1の情報を管理する複数のクラウドサーバ40−1〜40−nのうちの、第1の情報取得部151−1に対応するクラウドであるクラウドサーバ40−1から、当該クラウドサーバ40−1に応じた態様で第1の情報を取得する。
第1の情報は、クラウドサーバ40で管理されているアドレス帳に関する情報であり、複数のレコードで構成されている。詳細には、第1の情報は、複数名のアドレス帳から成る情報であり、1名分のアドレス帳がレコードという単位で構成されている。
第1の情報取得部151−1は、クラウドサーバ40−1から第1の情報を取得するために用意されたコンポーネントであり、クラウドサーバ40−1の仕様(データの管理形式や取得形式(プロトコル))に合わせて取得動作を行う。本実施形態では、第1の情報取得部151−1は、クラウドサーバ40−1により提供されているWebApiを利用することで(リクエストを行うことで)、クラウドサーバ40−1の仕様に合わせて取得動作を行うものとするが、これに限定されるものではない。
図6は、本実施形態の第1の情報における1名分のアドレス帳(レコード)の一例を示す図である。図6に示す例では、第1の情報における1名分のアドレス帳(レコード)は、レコードの識別子であるid、名前(漢字)を示すname、名前(カナ)を示すnameKana、電話番号を示すphoneNum、ファックス番号を示すfaxNum、及び電子メールのアドレスを示すemailを含んで構成されている。
なお本実施形態では、ワークフロー情報で定義されていないため、実行制御部150により実行されないが、第1の情報取得部151−2〜151−nは、それぞれ、第1の情報を管理する複数のクラウドサーバ40−1〜40−nのうちの、対応するクラウドであるクラウドサーバ40−2〜40−nから、当該クラウドサーバ40に応じた態様で第1の情報を取得可能である。
このように本実施形態では、クラウドサーバ40毎に、当該クラウドサーバ40専用の情報取得コンポーネントが用意されているため、クラウドサーバ40毎に、データの管理形式や取得形式(プロトコル)などの仕様が異なっていても対応できる。特に本実施形態では、機能単位でソフトウェアを用意するのではなく、コンポーネント単位でソフトウェアを用意するため、クラウドサーバ40毎に、アドレス帳を同期する機能を実現するためのソフトウェアを開発する必要はなく、差分部分のみ(クラウドサーバ40毎に仕様が異なる取得部分のみ)の開発で済むため、人的コストや金銭コストなどの各種コストを抑えつつ、異なる仕様で情報を管理する複数のクラウドサービスとの連携が可能となる。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(情報処理装置からのアドレス帳の取得)に基づいて、第2の情報取得部152を実行する。これにより、第2の情報取得部152は、第2の情報を取得する。
第2の情報は、情報処理装置10で管理されているアドレス帳に関する情報であり、複数のレコードで構成されている。詳細には、第2の情報は、複数名のアドレス帳から成る情報であり、1名分のアドレス帳がレコードという単位で構成されている。
本実施形態では、第2の情報は、アドレス帳記憶部160に記憶されているため、第2の情報取得部152は、アドレス帳記憶部160から第2の情報を取得する。
図7は、本実施形態の第2の情報における1名分のアドレス帳(レコード)の一例を示す図である。図7に示す例では、第2の情報における1名分のアドレス帳(レコード)は、レコードの識別子であるid、名前(漢字)を示すname、名前(カナ)を示すphoneticName、電話番号を示すphoneNumber、ファックス番号を示すfaxNumber、及び電子メールのアドレスを示すmailAddressを含んで構成されている。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(両アドレス帳のマージ処理)に基づいて、マージ部153を実行する。これにより、マージ部153は、第1の情報取得部151−1〜151−nのうちの第1の情報取得部151−1により取得された第1の情報と、第2の情報取得部152により取得された第2の情報と、をマージする。具体的には、マージ部153は、第1の情報に含まれる複数のレコードのうち第2の情報に含まれる複数のレコードのいずれにも対応(一致)しない1以上のレコードを、第2の情報にマージする。なお、対応(一致)の有無は、データがユニークであることが保証されているメールアドレス、名前、電話番号、又はこれらの組み合わせが互いに一致するか否かで行えばよい。
また、図6及び図7から明らかなように、情報処理装置10とクラウドサーバ40とでは、同一の要素を異なる属性(ラベル)で管理することも多い。例えば、図6及び図7に示す例では、クラウドサーバ40では、名前(カナ)をnameKanaという属性(ラベル)で管理しているが、情報処理装置10では、名前(カナ)をphoneticNameという属性(ラベル)で管理している。
このためマージ部153は、図8に示すような変換情報(テーブル)を保持しておき、第1の情報に含まれるレコードを第2の情報にマージする際には、この変換情報を使用して、当該レコードを構成する要素の属性(ラベル)を第2の情報に含まれるレコードを構成する要素の属性(ラベル)に変換してマージする。図8に示す変換情報は、各装置が同一の要素をどのような名称(ラベル)で管理しているのかの対応関係を示した情報である。なお、図8に示す変換情報(テーブル)を予めHDD115などの記憶装置に格納しておいてもよい。これにより、第1の情報に含まれるレコードを第2の情報にマージしても、第1の情報に含まれるレコードを構成する要素の属性(ラベル)を、第2の情報に含まれるレコードを構成する要素の属性(ラベル)に対応させることができる。
本実施形態では、マージ部153が、図8に示す変換情報を使用して、第1の情報に含まれるレコードを構成する要素の属性(ラベル)を第2の情報に含まれるレコードを構成する要素の属性(ラベル)に変換する場合を例に取り説明したが、これに限定されず、第1の情報取得部151−1〜151−nが行うようにしてもよい。この場合、各第1の情報取得部151が、クラウドサーバ40から第1の情報を取得する際に、当該第1の情報に含まれるレコードを構成する要素の属性(ラベル)を、第2の情報に含まれるレコードを構成する要素の属性(ラベル)に変換する処理を行うようにしておけばよい。
図9は、本実施形態のマージ結果(マージ情報)の一例を示す図である。図8に示す例では、図7で説明した第2の情報(情報処理装置10で管理されているアドレス帳)に、図6で説明した第1の情報(クラウドサーバ40−1で管理されているアドレス帳)をマージした場合のマージ結果を示している。
なお本実施形態では、マージ部153は、第1の情報に含まれる複数のレコードのうち第2の情報に含まれる複数のレコードのいずれにも対応しない1以上のレコードを、第2の情報にマージする場合、即ち、第2の情報に含まれる複数のレコードを上書きせずに新規レコードを追加する態様でマージする場合を例に取り説明したが、マージの態様はこれに限定されるものではなく、第2の情報に含まれる複数のレコードを上書きする態様でマージしてもよい。
このような設定は、例えば、図10に示すようなアドレス帳同期設定画面で設定しておけばよい。図10に示すアドレス帳同期設定画面は、アドレス帳の同期に関する設定を行うための画面であり、アドレス帳の同期を行うタイミング(手動か自動か)やどのような態様でマージを行うか(上書きの有無)などを設定できる。
なお本実施形態では、アドレス帳同期設定画面は、WebのUIとしてユーザ端末20などに提供され、ユーザは、ユーザ端末20に表示されたアドレス帳同期設定画面上でワークフロー情報を作成するための操作入力を行うような形態を想定しているが、これに限定されるものではない。例えば、アドレス帳同期設定画面をクラウド上のサービスとして提供してもよいし、情報処理装置10上のツールとして提供してもよい。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(マージ後のアドレス帳の登録)に基づいて、処理部154を実行する。これにより、処理部154は、マージ部153により第1の情報と第2の情報とがマージされたマージ情報に基づく処理を行う。本実施形態では、マージ情報は、マージ後のアドレス帳に関する情報であり、処理部154は、当該マージ情報をアドレス帳記憶部160に登録する処理を行う。
機能実行部170は、情報処理装置10が有する機能を実行するための制御を行う。情報処理装置10が有する機能としては、例えば、プリント機能、スキャン機能、ファクシミリ機能、及びスキャンtoEmail機能などが挙げられるが、これらに限定されるものではない。
プリント機能の場合、機能実行部170は、プリントアプリを実行することで、給紙テーブル105及びプリントエンジン106を制御し、給紙テーブル105から給紙された用紙に画像を印刷するプリント機能を実行する。また、スキャン機能の場合、機能実行部170は、スキャンアプリを実行することで、ADF101及びスキャナユニット102を制御して、ADF101から搬送された原稿をスキャンして、当該原稿の画像データを取得する。
また、ファクシミリ機能の場合、機能実行部170は、ファクシミリアプリを実行する。これにより、機能実行部170は、アドレス帳記憶部160に記憶されているアドレス帳に関する情報(第2の情報、マージ情報)をディスプレイパネル104に表示して、ユーザにファクシミリの送信先の電話番号を入力させる。そして機能実行部170は、ADF101及びスキャナユニット102を制御して、ADF101から搬送された原稿をスキャンして、当該原稿の画像データを取得し、当該画像データを、ユーザに入力された送信先へファクシミリ送信する。
また、スキャンtoEmail機能の場合、機能実行部170は、スキャンtoEmailアプリを実行する。これにより、機能実行部170は、アドレス帳記憶部160に記憶されているアドレス帳に関する情報(第2の情報、マージ情報)をディスプレイパネル104に表示して、ユーザにファクシミリの送信先のメールアドレスを入力させる。そして機能実行部170は、ADF101及びスキャナユニット102を制御して、ADF101から搬送された原稿をスキャンして、当該原稿の画像データを取得し、当該画像データを、ユーザに入力された送信先へ電子メールで送信する。
図11は、本実施形態の処理の手順の流れの一例を示すシーケンス図である。図11に示す例では、携帯端末30からクラウドサーバ40に第1の情報(アドレス帳に関する情報)を登録し、情報処理装置10が、第1の情報(アドレス帳に関する情報)を自身が管理している第2の情報(アドレス帳に関する情報)にマージして利用する場合を例にとり説明するが、これに限定されるものではない。
まず、携帯端末30は、ユーザからクラウドサーバ40に登録するための第1の情報(アドレス帳に関する情報)の入力を受け付け(ステップS101)、クラウドサーバ40に登録要求を行う(ステップS103)。
続いて、クラウドサーバ40は、携帯端末30から登録要求が行われた第1の情報(アドレス帳に関する情報)をクラウドサーバ40に登録し(ステップS105)、登録結果を携帯端末30に通知する(ステップS107)。
なお、ステップS101〜S105までの処理は、携帯端末30上のWebブラウザやアプリケーションを使用して、ユーザが第1の情報を手動で入力することにより行われてもよいし、携帯端末30により撮影された名刺などの画像をクラウドサーバ40側でOCR(Optical Character Recognition)処理して第1の情報を抽出することにより行われてもよい。
続いて、情報処理装置10の実行制御部150は、アドレス帳の同期を行うタイミングになると、同期処理を実行する(ステップS109)。なお、アドレス帳の同期を行うタイミングについては、前述のとおり、図10に示すアドレス帳同期設定画面で設定できる。同期処理の詳細については、後述する。
続いて、情報処理装置10の機能実行部170は、ユーザから機能の実行要求を受け付ける(ステップS111)。ここでは、受け付けられた機能の実行要求が、ファクシミリ機能であるため、機能実行部170は、ファクシミリアプリを実行する場合を例に取り説明するが、これに限定されるものではない。
続いて、情報処理装置10の機能実行部170は、アドレス帳記憶部160に記憶されているマージ情報(アドレス帳に関する情報)をディスプレイパネル104に表示して(ステップS113)、ユーザにファクシミリの送信先(宛先)の電話番号を入力させる(ステップS115)。そして機能実行部170は、ユーザから送信の実行要求を受け付けると、ADF101及びスキャナユニット102を制御して、ADF101から搬送された原稿をスキャンして、当該原稿の画像データを取得し、当該画像データを、ユーザに入力された送信先へファクシミリ送信する(ステップS117)。
図12は、本実施形態の同期処理の手順の流れの一例を示すシーケンス図である。
まず、設定部140は、ワークフロー記憶部130に記憶されているワークフロー情報を実行制御部150に設定する(ステップS201)。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(クラウドAからのアドレス帳の取得)に基づいて、第1の情報取得部151−1に実行要求を行う(ステップS203)。
これにより、第1の情報取得部151−1は、第1の情報を管理する複数のクラウドサーバ40−1〜40−nのうちの、第1の情報取得部151−1に対応するクラウドであるクラウドサーバ40−1から、当該クラウドサーバ40−1に応じた態様で第1の情報(アドレス帳に関する情報)を取得し(ステップS205)、取得結果を実行制御部150に通知する(ステップS207)。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(情報処理装置からのアドレス帳の取得)に基づいて、第2の情報取得部152に実行要求を行う(ステップS209)。
これにより、第2の情報取得部152は、アドレス帳記憶部160から第2の情報(アドレス帳に関する情報)を取得し(ステップS211)、取得結果を実行制御部150に通知する(ステップS213)。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(両アドレス帳のマージ処理)に基づいて、マージ部153に実行要求を行う(ステップS215)。
これにより、マージ部153は、第1の情報に含まれる複数のレコードのうち第2の情報に含まれる複数のレコードのいずれにも対応しない1以上のレコードを、第2の情報にマージし(ステップS217)、マージ結果を実行制御部150に通知する(ステップS219)。なお、マージ処理の詳細については、後述する。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(マージ後のアドレス帳の登録)に基づいて、処理部154に実行要求を行う(ステップS221)。
これにより、処理部154は、マージ部153により第1の情報と第2の情報とがマージされたマージ情報(マージ後のアドレス帳に関する情報)をアドレス帳記憶部160に登録する処理を行い(ステップS223)、マージ結果を実行制御部150に通知する(ステップS225)。
図13は、本実施形態のマージ処理の手順の流れの一例を示すフローチャートである。図13に示す例では、第2の情報に含まれる複数のレコードを上書きせずに新規レコードを追加する態様でマージする場合を例に取り説明するが、これに限定されるものではない。
まず、マージ部153は、第1の情報取得部151−1により取得された第1の情報(アドレス帳に関する情報)から未処理のレコードを取得する(ステップS301)。
続いて、マージ部153は、取得したレコードに対応するレコードが、第2の情報取得部152により取得された第2の情報に含まれているか否かを判定する(ステップS303)。この判定は、前述したように、データがユニークであることが保証されているメールアドレス、名前、電話番号、又はこれらの組み合わせが互いに一致するか否かで行えばよい。
そして、含まれている場合(ステップS303でYes)、マージ部153は、当該レコードを前述した図8に示す変換情報を使用して、この変換情報を使用して、当該レコードを構成する要素の属性(ラベル)を第2の情報に含まれるレコードを構成する要素の属性(ラベル)に変換して、マージ対象に追加し(ステップS305)、含まれていない場合(ステップS303でNo)、マージ部153は、ステップS305の処理を行わない。
続いて、マージ部153は、第1の情報に含まれる全てのレコードを処理するまでステップS301〜S305の処理を繰り返し(ステップS307でNo)、第1の情報に含まれる全てのレコードを処理すると(ステップS307でYes)、マージ対象に追加されたレコードを第2の情報にマージ(追加)する(ステップS309)。
以上のように本実施形態では、クラウドサーバ40毎に、当該クラウドサーバ40専用の情報取得コンポーネントが用意されているため、クラウドサーバ40毎に、データの管理形式や取得形式(プロトコル)などの仕様が異なっていても対応できる。特に本実施形態では、機能単位でソフトウェアを用意するのではなく、コンポーネント単位でソフトウェアを用意するため、クラウドサーバ40毎に、アドレス帳を同期する機能を実現するためのソフトウェアを開発する必要はなく、差分部分のみ(クラウドサーバ40毎に仕様が異なる取得部分のみ)の開発で済むため、人的コストや金銭コストなどの各種コストを抑えつつ、異なる仕様で情報を管理する複数のクラウドサービスとの連携が可能となる。
例えば、ユーザは、同期に使用するアドレス帳を管理しているクラウドサーバ40を変更する場合には、前述した図5に示すワークフロー情報作成画面において、変更後のクラウドサーバ40からのアドレス帳の取得を行うコンポーネントを選択して、ワークフロー情報を作成すればよい。
また本実施形態によれば、スマートデバイスなどの携帯端末30から登録したアドレス帳を利用した機能の実行が可能となる。
また本実施形態によれば、クラウドサーバ40で管理されているアドレス帳を情報処理装置10のアドレス帳に同期して機能を実行するため、ネットワークの接続ができないような場合であっても、クラウドサーバ40で管理されていたアドレス帳を利用した機能の実行が可能となる。
(変形例1)
上記実施形態において、マージ部153は、第1の情報に含まれる複数のレコードのうち第2の情報に含まれる複数のレコードのいずれにも対応しない1以上のレコードを、更新日時の新しい順に第2の情報にマージするようにしてもよい。
一般的に、情報処理装置10側に登録可能なアドレス帳のレコード数はさほど多くない。このため、クラウド40で管理されているアドレス帳(第1の情報)のうち情報処理装置10側で管理されていない全てのアドレス帳を、情報処理装置10で管理されているアドレス帳(第2の情報)にマージしようとすると、途中で上限に達してしまうことが多い。このため、上記のように更新日時の新しい順に第2の情報にマージすることで、優先度の高いレコード(最近使用されたレコード)を優先的に情報処理装置10で管理されているアドレス帳(第2の情報)にマージすることが可能となる。
この場合、少なくとも第1の情報のレコードは、図14に示すように、最終更新日時を示すlastAccessDataを含んで構成される。なお、最終更新日時の属性は、クラウドサーバ40で管理されている段階から第1の情報のレコードに含まれていればそのまま使用し、クラウドサーバ40で管理されている段階では第1の情報のレコードに含まれていなければ、情報処理装置10側で付加すればよい。また、第2の情報のレコードにも、最終更新日時の属性を含めるようにしてもよい。この場合、最終更新日時は、機能実行部170により使用されると更新される。
図15は、変形例1のマージ処理の手順の流れの一例を示すフローチャートである。まず、ステップS401〜ステップS407までの処理は、図13に示すフローチャートのステップS301〜ステップS307までの処理と同様である。
続いて、マージ部153は、第1の情報に含まれる全てのレコードを処理すると(ステップS407でYes)、マージ対象に追加されたレコードを更新日時の新しい順にソートし(ステップS409)、更新日時の新しい順に第2の情報にマージ(追加)する(ステップS411)。
(変形例2)
上記実施形態では、アドレス帳の同期処理を例に取り説明したが、同期対象はアドレス帳に限定されず、例えば、書誌情報などにも適用できる。また、上記実施形態で説明したワークフローは、アドレス帳の同期処理に限定されず、例えば、クラウドで管理されているアドレス帳をCSV(Comma-Separated Values)データとして、社内サーバなどのローカルサーバにバックアップするようなワークフローにも適用できる。
(変形例3)
また上記実施形態では、図8に示すような変換情報を利用することでマージ部153を1種類のコンポーネントで実現する場合を例に取り説明したが、第1の情報と第2の情報との組み合わせ(クラウドサーバ40の種類)毎に、マージ部153(コンポーネント)を用意するようにしてもよい。このようにすれば、図8に示すような変換情報が不要となる。
(変形例4)
例えば前述の第1の情報は、全てのユーザが参照可能な共有アドレス帳、または、特定のユーザのみ参照可能な個人アドレス帳であってもよい。以下の説明では、第1の情報取得部151−1〜151−nを互いに区別しない場合は「第1の情報取得部151」と表記する場合がある。
本変形例では、第1の情報取得部151は、対応するクラウドサーバ40から共有アドレス帳を定期的に取得する。また、第1の情報取得部151は、ユーザの認証後に、該ユーザを識別するためのアカウント情報を利用して、対応するクラウドサーバ40から個人アドレス帳を取得する。
第1の情報取得部151により共有アドレス帳が取得された場合、マージ部153は、該共有アドレス帳と、第2の情報取得部152により取得された、情報処理装置10で管理されている共有アドレス帳を示す第2の情報とをマージし、処理部154は、該マージ後のアドレス帳を示すマージ情報を登録する処理を行う。
また、第1の情報取得部151により個人アドレス帳が取得された場合、マージ部153は、該個人アドレス帳と、第2の情報取得部152により取得された、情報処理装置10で管理されている個人アドレス帳を示す第2の情報とをマージし、処理部154は、該マージ後のアドレス帳を示すマージ情報を登録する処理を行う。
さらに、第1の情報取得部151は、ユーザの認証後であって、かつ、情報処理装置10で管理されている個人アドレス帳に、クラウドサーバ40から取得した個人アドレス帳をマージして、情報処理装置10で管理されている個人アドレス帳を更新する同期処理が完了してから一定時間を経過した場合に、個人アドレス帳を取得する。つまり、個人アドレス帳の同期処理の完了後、一定期間を経過している場合に限り、次の個人アドレス帳の同期処理が実行される。以下、本変形例の具体的な内容を説明する。
各装置の基本的な構成は上述の実施形態と同様であるが、本変形例におけるアドレス帳記憶部160は、共有アドレス帳を記憶する記憶領域と、個人アドレス帳を記憶する記憶領域とを有している。また、クラウドサーバ40は、共有アドレス帳と個人アドレス帳とを管理する。図16に示すように、クラウドサーバ40は、レコード(アドレス帳)の識別子であるidごとに、アドレス帳(この例では、name、nameKana、phoneNum、faxNum、emailから構成される)と、共有アドレス帳か個人アドレス帳かを識別するための種別と、個人アドレス帳にアクセスする権限を有するユーザを識別するためのアカウント情報とを対応付けて管理(記憶)する。
図17は、携帯端末30からクラウドサーバ40に共有アドレス帳を登録し、情報処理装置10が、クラウドサーバ40から共有アドレス帳を取得し、その取得した共有アドレス帳を、自身が管理している共有アドレス帳を示す第2の情報にマージして利用する場合の情報処理システム1の動作手順の一例を示すシーケンス図である。
まず、携帯端末30は、ユーザからクラウドサーバ40に登録するための共有アドレス帳の入力を受け付け(ステップS501)、クラウドサーバ40に登録要求を行う(ステップS503)。
続いて、クラウドサーバ40は、携帯端末30から登録要求が行われた共有アドレス帳をクラウドサーバ40に登録し(ステップS505)、登録結果を携帯端末30に通知する(ステップS507)。
なお、ステップS501〜S505までの処理は、携帯端末30上のWebブラウザやアプリケーションを使用して、ユーザが共有アドレス帳を手動で入力することにより行われてもよいし、携帯端末30により撮影された名刺などの画像をクラウドサーバ40側でOCR(Optical Character Recognition)処理して共有アドレス帳を抽出することにより行われてもよい。
続いて、情報処理装置10の実行制御部150は、共有アドレス帳の同期処理を行うタイミングになると、共有アドレス帳の同期処理を実行する(ステップS509)。なお、アドレス帳の同期を行うタイミングについては、前述のとおり、図10に示すアドレス帳同期設定画面で設定できる。共有アドレス帳の同期処理の詳細については、後述する。
続いて、情報処理装置10の機能実行部170は、ユーザから機能の実行要求を受け付ける(ステップS511)。ここでは、受け付けられた機能の実行要求が、ファクシミリ機能であるため、機能実行部170は、ファクシミリアプリを実行する場合を例に取り説明するが、これに限定されるものではない。
続いて、情報処理装置10の機能実行部170は、アドレス帳記憶部160に記憶されているマージ情報(アドレス帳に関する情報)をディスプレイパネル104に表示して(ステップS513)、ユーザにファクシミリの送信先(宛先)の電話番号を入力させる(ステップS515)。そして機能実行部170は、ユーザから送信の実行要求を受け付けると、ADF101及びスキャナユニット102を制御して、ADF101から搬送された原稿をスキャンして、当該原稿の画像データを取得し、当該画像データを、ユーザにより入力された送信先へファクシミリ送信する(ステップS517)。
図18は、本変形例の共有アドレス帳の同期処理(図17のステップS509)の手順の流れの一例を示すシーケンス図である。
まず設定部140は、ワークフロー記憶部130に記憶されている、共有アドレス帳の同期処理のワークフロー情報を実行制御部150に設定する(ステップS601)。図19は、この場合のワークフロー情報により示されるワークフローの一例を示す図である。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(図19参照)に基づいて、第1の情報取得部151に実行要求を行う(ステップS603)。
これにより、第1の情報取得部151は、対応するクラウドサーバ40から、共有アドレス帳を取得し(ステップS605)、取得結果を実行制御部150に通知する(ステップS607)。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(図19参照)に基づいて、第2の情報取得部152に実行要求を行う(ステップS609)。
これにより、第2の情報取得部152は、アドレス帳記憶部160から第2の情報(情報処理装置10で管理されている共有アドレス帳)を取得し(ステップS611)、取得結果を実行制御部150に通知する(ステップS613)。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(図19参照)に基づいて、マージ部153に実行要求を行う(ステップS615)。
マージ部153は、クラウドサーバ40から取得した共有アドレス帳が、情報処理装置10で管理されている共有アドレス帳に存在しない場合は、クラウドサーバ40から取得した共有アドレス帳と、情報処理装置10で管理されている共有アドレス帳とをマージし(ステップS617)、そのマージ結果を実行制御部150に通知する(ステップS619)。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(図19参照)に基づいて、処理部154に実行要求を行う(ステップS621)。
これにより、処理部154は、マージ部153によりマージされたマージ情報をアドレス帳記憶部160に登録する処理を行い(ステップS623)、マージ結果を実行制御部150に通知する(ステップS625)。
図20は、携帯端末30からクラウドサーバ40に個人アドレス帳を登録し、情報処理装置10が、クラウドサーバ40から個人アドレス帳を取得し、その取得した個人アドレス帳を、自身が管理している個人アドレス帳を示す第2の情報にマージして利用する場合の情報処理システム1の動作手順の一例を示すシーケンス図である。
まず、携帯端末30は、ユーザからクラウドサーバ40に登録するための個人アドレス帳の入力を受け付け(ステップS701)、クラウドサーバ40に登録要求を行う(ステップS703)。例えばアドレス帳登録時に「公開する/しない」が選択できる場合、「公開しない」を選択して登録することもできる。
続いて、クラウドサーバ40は、携帯端末30から登録要求が行われた個人アドレス帳をクラウドサーバ40に登録し(ステップS705)、登録結果を携帯端末30に通知する(ステップS707)。ここでは、個人アドレス帳の登録時、クラウドサーバ40は、携帯端末30からのアクセス時に使用したアカウントに紐付けて個人アドレス帳を登録する。
なお、ステップS701〜S705までの処理は、携帯端末30上のWebブラウザやアプリケーションを使用して、ユーザが個人アドレス帳を手動で入力することにより行われてもよいし、携帯端末30により撮影された名刺などの画像をクラウドサーバ40側でOCR(Optical Character Recognition)処理して個人アドレス帳を抽出することにより行われてもよい。
続いて、情報処理装置10は、ユーザの認証処理を行う(ステップS709)。認証処理とは、ユーザが情報処理装置10を使用する権限を有するか否かを判断するための処理である。例えば情報処理装置10は、使用権限を有するユーザごとに、該ユーザを識別するためのアカウント情報(この例ではアカウントのみであるが、例えばアカウントとパスワードの組み合わせなどであってもよい)を予め登録しておき、ユーザから入力されたアカウント情報が、予め登録されたアカウント情報と一致する場合に限り、該ユーザは情報処理装置10を使用する権限を有すると認める(該ユーザを認証する)ことができる。
ユーザが認証された後、情報処理装置10の実行制御部150は、個人アドレス帳の同期処理を実行する(ステップS711)。個人アドレス帳の同期処理の詳細については、後述する。このときの同期処理時にクラウドサーバ40から個人アドレス帳を取得するためのアカウント情報(クラウドサーバ40において、クラウドサーバ40が管理しているアドレス帳に紐付けられたアカウント情報)は、情報処理装置10にログインしているユーザのアカウント情報を使用する。情報処理装置用のアカウント情報と、クラウドサーバ用のアカウント情報とが同一である場合は、前述の認証処理に用いた情報処理装置用のアカウント情報をそのまま使用することができる。異なる場合は、例えば図21に示すように、情報処理装置10は、情報処理装置用のアカウント情報(この例ではアカウントのみ)に対して、クラウドサーバ用のアカウント情報(この例ではアカウントとパスワードの組み合わせ)を紐付けて管理し、認証されたユーザのアカウント情報(ログイン時のアカウント情報)に紐付くクラウドサーバ用のアカウント情報を用いることもできる。
ステップS713〜ステップS719の処理内容は、図17のステップS511〜ステップS517の処理内容と同様である。
図22は、本変形例の個人アドレス帳の同期処理(図20のステップS711)の手順の流れの一例を示すシーケンス図である。
まず設定部140は、ワークフロー記憶部130に記憶されている、個人アドレス帳の同期処理のワークフロー情報を実行制御部150に設定する(ステップS801)。図23は、この場合のワークフロー情報により示されるワークフローの一例を示す図である。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(図23参照)に基づいて、第1の情報取得部151に実行要求を行う(ステップS803)。
これにより、第1の情報取得部151は、対応するクラウドサーバ40から、ログイン中のユーザを識別するためのアカウント情報に紐付く個人アドレス帳を取得し(ステップS805)、取得結果を実行制御部150に通知する(ステップS807)。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(図23参照)に基づいて、第2の情報取得部152に実行要求を行う(ステップS809)。
これにより、第2の情報取得部152は、アドレス帳記憶部160から第2の情報(情報処理装置10で管理されている個人アドレス帳)を取得し(ステップS811)、取得結果を実行制御部150に通知する(ステップS813)。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(図23参照)に基づいて、マージ部153に実行要求を行う(ステップS815)。
マージ部153は、クラウドサーバ40から取得した個人アドレス帳が、情報処理装置10で管理されている個人アドレス帳に存在しない場合は、クラウドサーバ40から取得した個人アドレス帳と、情報処理装置10で管理されている個人アドレス帳とをマージし(ステップS817)、そのマージ結果を実行制御部150に通知する(ステップS819)。
続いて、実行制御部150は、設定部140により設定されたワークフロー情報(図23参照)に基づいて、処理部154に実行要求を行う(ステップS821)。
これにより、処理部154は、マージ部153によりマージされたマージ情報をアドレス帳記憶部160に登録する処理を行い(ステップS823)、マージ結果を実行制御部150に通知する(ステップS825)。
また、本変形例では、個人アドレス帳の同期処理を、ユーザがログインした後のアプリケーション使用時に実施した場合、前回に個人アドレス帳を取得したばかりでも同期処理を行うケースが考えられる。この場合、同期処理を完了した後の個人アドレス帳の変更が殆どないにも関わらず重い処理を実行してしまうため、システムの負荷が増大するという問題が発生する。この問題を解決するため、本変形例では、個人アドレス帳の同期処理完了時にその完了日時をHDD115等の記憶装置に保持し、一定期間経過した場合のみ同期処理を行うようにする。図24は、この場合の処理フローを示す図である。
図24に示すように、ユーザのログイン後、実行制御部150は、個人アドレス帳同期処理の完了日時を記憶装置から取得する(ステップS901)。次に、実行制御部150は一定時間が経過したか否かを確認する(ステップS902)。ステップS902の結果が肯定の場合(ステップS902:Yes)、実行制御部150は同期処理を実行する(ステップS903)。この処理内容は上述したとおりである。同期処理が完了すると(ステップS904:Yes)、実行制御部150は、その完了日時を記憶装置に保存する制御を行う(ステップS905)。
以上の本変形例では、ユーザが情報処理装置10に認証された後、その認証されたユーザのアカウント情報を利用して個人アドレス帳の同期処理を行う。つまり、本変形例によれば、全てのユーザがアクセス可能な共有アドレス帳だけでなく、特定のユーザのアカウント情報を使用する場合にのみアクセス可能な個人アドレス帳も同期可能な情報処理装置10を提供することができる。
(プログラム)
上記実施形態及び変形例の情報処理装置10で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD(Digital Versatile Disk)、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
また、上記実施形態及び変形例の情報処理装置10で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施形態及び変形例の情報処理装置10で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記実施形態及び変形例の情報処理装置10で実行されるプログラムを、ROM等に予め組み込んで提供するようにしてもよい。
上記実施形態及び変形例の情報処理装置10で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、CPUがROMからプログラムをRAM上に読み出して実行することにより、上記各機能部がコンピュータ上で実現されるようになっている。
なお、上記実施形態及び変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。上記新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施の形態は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。