(57)【要約】【課題】互いに異なる性質のデータを保持する保持手段間でデータ同期を行う場合に、データの状態に応じた柔軟な同期処理を行う。【解決手段】写真共有サービス102は、カメラ101で撮影された写真のサムネイルを保持し(S111)、該サムネイルに対する閲覧者コメントを受け付ける(S114)。この閲覧者コメントが規定数を超えた写真について、予め定義された同期操作を行う。例えば第1の操作として、カメラ101から写真原本をアップロードし(S116)、さらに閲覧者端末104に該写真原本を送信する(S117)。第1の操作に失敗した場合には、カメラ101内の当該写真原本の削除を禁止する第2の操作を行う。【選択図】  図1
2015041163.tif 000002
【特許請求の範囲】
【請求項１】
第1の保持手段に保持される第1のデータの状態を示す情報を取得する取得手段と、
第2の保持手段に保持される、前記第1のデータと関連するが性質が異なる第2のデータを、前記第1のデータに同期するための操作を定義する定義手段と、
前記第1のデータの前記状態が所定の条件を満たす場合に、前記第2のデータに対し前記定義手段で定義された操作を実行する操作手段と、
を備えることを特徴とする同期制御装置。
【請求項２】
前記取得手段は、前記第1のデータに対するユーザからの評価値を取得し、
前記操作手段は、前記評価値が所定の閾値を越えた場合に、前記第2のデータに対する操作を実行することを特徴とする請求項1に記載の同期制御装置。
【請求項３】
前記定義手段は、前記第2のデータを前記第2の保持手段から前記第1の保持手段へ複製する第1の操作を定義することを特徴とする請求項1または2に記載の同期制御装置。
【請求項４】
前記定義手段は、前記第2のデータの削除を防止する第2の操作を定義することを特徴とする請求項1乃至3のいずれか1項に記載の同期制御装置。
【請求項５】
前記定義手段は、優先順位が付された複数の操作を定義し、
前記操作手段は、前記第2のデータに対し、前記優先順位に従って前記複数の操作を実行することを特徴とする請求項1乃至4のいずれか1項に記載の同期制御装置。
【請求項６】
さらに、前記定義手段で定義された複数の操作のそれぞれに対する実行コストを算出する算出手段を有し、
前記操作手段は、前記第2のデータに対し、前記実行コストに応じた順に前記複数の操作を実行することを特徴とする請求項1乃至4のいずれか1項に記載の同期制御装置。
【請求項７】
前記算出手段は、操作について予測される処理負荷に基づいて、前記実行コストを算出することを特徴とする請求項6に記載の同期制御装置。
【請求項８】
前記算出手段は、前記第2のデータに対する操作の実行結果として得られる第3のデータが利用される可能性に基づいて、前記実行コストを算出することを特徴とする請求項6または7に記載の同期制御装置。
【請求項９】
前記算出手段は、前記第3のデータが利用可能になるまでに要する時間に基づいて前記実行コストを算出することを特徴とする請求項8に記載の同期制御装置。
【請求項１０】
前記算出手段は、前記第3のデータの品質に基づいて前記実行コストを算出することを特徴とする請求項8または9に記載の同期制御装置。
【請求項１１】
前記操作手段は、実行中の操作が完了できない場合に、次の操作を実行することを特徴とする請求項5乃至10のいずれか1項に記載の同期制御装置。
【請求項１２】
前記定義手段は、操作ごとの最大実行回数を定義し、
前記操作手段は、実行中の操作について前記定義手段で定義された最大実行回数を超えた場合に、次の操作を実行することを特徴とする請求項11に記載の同期制御装置。
【請求項１３】
前記第1および第2の保持手段は、互いに異なる装置にあることを特徴とする請求項1乃至12のいずれか1項に記載の同期制御装置。
【請求項１４】
前記第1の保持手段はサーバにあり、前記第2の保持手段は端末装置にあることを特徴とする請求項13に記載の同期制御装置。
【請求項１５】
取得手段、定義手段、および操作手段を有する同期制御装置における同期制御方法であって、
前記取得手段が、第1の保持手段に保持される第1のデータの状態を示す情報を取得し、
前記定義手段が、第2の保持手段に保持される、前記第1のデータと関連するが性質が異なる第2のデータを、前記第1のデータに同期するための操作を定義し、
前記操作手段が、前記第1のデータの前記状態が所定の条件を満たす場合に、前記第2のデータに対し前記定義手段で定義された操作を実行する、
ことを特徴とする同期制御方法。
【請求項１６】
コンピュータ装置で実行されることにより、該コンピュータ装置を請求項1乃至14のいずれか1項に記載の同期制御装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は異なる保持手段間におけるデータ同期を行う技術に関する。
【背景技術】
【０００２】
データモデルやデータ形式の異なるデータベース間においてデータの交換を行う際には、データモデルの対応付けやデータ形式の変換を行うためのデータ同期技術が用いられている。データ同期技術としては例えば、データの同期元と同期先のデータベースのスキーマ情報と、該スキーマ情報のマッピングルールをを保持するデータ変換ノードを介して同期を行う方法が提案されている(例えば、特許文献1参照)。この方法によれば、予め定められたスキーマ間の対応関係に基づいてデータを変換し、同期を行うことが可能である。また、同期元と同期先のデータベースのカラム名称からデータの概念を抽出し、抽出した概念同士の対応関係を動的に解決することで、データモデルの差異を吸収する方法が提案されている(例えば、特許文献2参照)。この方法によれば、データベース間でデータの対応関係を予め定義しておかなくても、同期を行うことが可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第4132137号公報
【特許文献２】特許第4859456号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来のデータ同期技術においては、データの変換方法やデータモデルの対応関係を解決する手段は提供されていたが、データ同期処理の実行に失敗した場合の対策が十分ではなかった。例えば、通信速度や通電の安定性が不十分な携帯機器からネットワーク上のデータベースに写真の原本や動画のような大容量データを同期する場合、通信断や電源断などが原因で同期処理を完遂できない可能性が高くなる。そのため、同期するデータの種別や同期処理の内容、および同期処理を実行するタイミングを状況に応じて制御することが望ましいが、上記従来の同期技術ではその実現は困難であった。
【０００５】
本発明は上記問題を解決するために、互いに異なる性質のデータを保持する保持手段間でデータ同期を行う場合に、データの状態に応じた柔軟な同期処理を行うことを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するための一手段として、本発明の同期制御装置は以下の構成を備える。すなわち、第1の保持手段に保持される第1のデータの状態を示す情報を取得する取得手段と、第2の保持手段に保持される、前記第1のデータと関連するが性質が異なる第2のデータを、前記第1のデータに同期するための操作を定義する定義手段と、前記第1のデータの前記状態が所定の条件を満たす場合に、前記第2のデータに対し前記定義手段で定義された操作を実行する操作手段と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、互いに異なる性質のデータを保持する保持手段間でデータ同期を行う場合に、データの状態に応じた柔軟な同期処理を行うことを目的とする。
【図面の簡単な説明】
【０００８】
【図１】本発明に係る一実施形態における写真共有システムの概要を示す図、
【図２】本実施形態における各装置のモジュール構を示す図、
【図３】本実施形態における端末を実現するコンピュータのモジュール構成図、
【図４】本実施形態におけるカメラ内に保持される写真データの構成図、
【図５】本実施形態における写真共有システムで管理される各種データの構成図、
【図６】本実施形態におけるデータ同期処理を示すフローチャート、
【図７】本実施形態におけるデータ同期処理を示すフローチャート、
【図８】本実施形態におけるデータ同期処理を示すフローチャート、
【図９】本実施形態におけるデータ同期処理を示すフローチャート、
【図１０】第2実施形態における同期手順定義データの構成図、
【図１１】第2実施形態における写真共有サービスのモジュール構成図、
【図１２】第2実施形態における実行コストの算出に用いられる指標値の例を示す図、である。
【発明を実施するための形態】
【０００９】
以下、本発明実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関わる本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１０】
＜第1実施形態＞
●システム概要
図1に、本実施形態における写真共有システムの概要構成およびデータフローを示す。同図に示すように本実施形態の写真共有システムでは、カメラ101から写真共有サービスにアップロードされた写真データを、閲覧者端末104で閲覧することができる。カメラ101は通信機能と写真共有アプリケーションを備え、写真共有サービス102に接続して該サービスを利用することができる。
【００１１】
写真共有サービス102は、サーバ、データベース、データ同期の各機能を有する。サーバ機能は、カメラ101および閲覧者端末104上の写真共有アプリケーションと接続して、写真データや閲覧者によるコメント等の入出力を制御する。データベース機能は、受信した写真データや閲覧者が入力したコメント等のデータをデータベースに保管し、サーバ機能からの問い合わせに応じてこれらのデータを検索・取得する。データ同期機能は、カメラ101や閲覧者端末104との間でデータの同期制御を行う。
【００１２】
撮影者端末103は、記憶装置を有し、カメラ101から写真データを取り込んで保管する。撮影者端末103はまた写真共有アプリケーションを備え、ネットワークを介して写真共有サービス102に接続して他の端末にデータを送信する。閲覧者端末104も同様に写真共有アプリケーションを備え、写真共有サービス102と接続して撮影者が公開した写真の取得や表示を行う。
【００１３】
次に、写真データの同期制御に関わるデータフローについて説明する。ここでは、カメラ101内に保管されている写真原本データを閲覧者端末104に同期する場合を例として説明する。
【００１４】
まず撮影者の操作によりカメラ101が写真共有サービス102に接続し、撮影した写真のサムネイルデータをアップロードする(S111)。写真共有サービス102では、サーバ機能がアップロードされたサムネイル写真を公開する(S112)とともに、データベース機能が該サムネイル写真をデータベースに保管する(S113)。次に、写真共有サービス102を利用する閲覧者が、公開されたサムネイル写真を閲覧し、気に入ったサムネイル写真に対して評価値やコメント等のデータを入力する(S114)。すると写真共有サービス102ではサーバ機能が、閲覧者が入力したデータとサムネイル写真とを対応付け、データベース機能がこれらをデータベースに記録する(S115)。このとき、記録されたサムネイル写真に対する入力データの状態が特定の条件(例えばコメント数が一定数以上)を満たしていたら、再度カメラ101が写真共有サービス102に接続したタイミングで、データ同期機能がデータ同期処理を実行する。ここでは、当該サムネイル写真に対応するカメラ101内の写真原本データをデータベースにアップロードすることで、カメラ101とデータベースの間でのデータ同期を行う例を示している(S116)。そして最後にデータ同期機能が、データベースにアップロードされた写真原本データを、閲覧者端末104に送信する(S117)。これにより、カメラ101と閲覧者端末104間でのデータ同期が行われる。
【００１５】
以上のように本実施形態における写真共有システムでは、初めに軽量なサムネイルデータだけを共有し、閲覧者から要求された写真について、その原本データの同期処理を自動実行する。これにより、閲覧者にとって利用価値の高い写真原本データの入手を容易に可能とするものである。
【００１６】
●システム構成
以下、本実施形態の写真共有システムにおけるモジュール構成について説明する。図2(a)〜(c)はそれぞれ、本実施形態で用いるカメラ101、写真共有サービス102および端末(閲覧者端末104および撮影者端末103)のモジュール構成を示すブロック図である。
【００１７】
まず、図2(a)に示すカメラ101のモジュール構成について説明する。図2(a)において操作部202は、カメラ101内に保管されている写真の表示や、写真共有サービス102で公開する写真を選択するためのユーザインタフェースを提供する。原本管理部203は、写真原本データの保管・取得を行う。メタデータ管理部204は、写真に付随するメタデータの登録・変更・取得を行う。カメラ同期管理部205は、写真共有サービス102で公開する写真の送信や、同期するデータの送受信を行う。通信管理部206は、写真共有サービス102と接続してデータの送受信を行う。記憶装置207は、上記各モジュールが扱うデータを保管する。なお、カメラ101にはこの他にも撮影に必要なモジュール等が含まれるが、本実施形態には直接関係しないため、説明を省略する。
【００１８】
次に、図2(b)に示す写真共有サービス301のモジュール構成について説明する。図2(b)においてサーバ部302は、カメラ101や端末103/104上の写真共有アプリケーションに対するインタフェースを提供する。そして、写真共有アプリケーションからのリクエストを受信し、リクエストの内容に応じてデータベース部303やサーバ同期管理部304を呼び出してデータを処理する。また、写真共有アプリケーションにデータ処理の実行結果を送信する。データベース部303は、写真共有サービス102にアップロードされた写真データの保管と取得、および写真共有サービス102を利用する閲覧者が写真に対して入力したデータの保管と取得を行う。サーバ同期管理部304は、データベース部303で保管されているデータと、カメラ101および端末103/104内に保管されているデータの同期を行う。同期条件管理部305は、データベース部303で保管されているデータの状態が、予め定義された条件を満たしているかを判定し、同期処理を実行するか否かを決定する。同期手順管理部306は、複数の同期方法とそれらの実行の優先順位、および実行手順を管理する。なお、同期条件管理部305と同期手順管理部306には、それぞれの定義内容を設定するための手段も含まれているものとする。通信管理部307は、写真データやリクエストの送受信を行う。
【００１９】
次に、図2(c)に示す端末103/104のモジュール構成について説明する。図2(c)において操作部402は、写真共有アプリケーションが提供するインタフェースからの、閲覧する写真の選択やコメントの入力等の操作を受け付ける。通信部403はデータの送受信を行い、記憶装置404は写真データ等を保管する。
【００２０】
図3は、本実施形態の写真共有システムにおいて閲覧者端末104または撮影者端末103として用いられるコンピュータシステムの構成を示すブロック図である。同図においてCPU501は、OS(Operating System)および写真共有アプリケーションを含む各種アプリケーションプログラムを実行し、コンピュータ装置各部の制御を行う。ROM502は、CPU501が実行するプログラムや演算用のパラメタのうちの固定的なデータを格納する。RAM503は、CPU501の作業領域やデータの一時記憶領域を提供する。ROM502およびRAM503は、バス504を介してCPU501に接続される。キーボードなどの入力装置505、CRT、液晶ディスプレイなどの表示装置506、ハードディスク装置、MO、CD-ROM等の外部記憶装置507は、インタフェース508を介してバス504に接続されている。またバス504は、通信部509を介してネットワークと接続される。
【００２１】
●データ構成
以下、図4,図5を参照して、本実施形態の写真共有システムで用いられるデータの構成について説明する。なお、ここでは説明を簡単にするため、必要最低限のデータ構成を用いる例を示すが、実際に本実施形態に適用可能なデータ構成はこの限りではない。
【００２２】
まず図4に、カメラ101内に保管されるデータ例を示す。図4によればカメラ101内に保管される写真データ601は、写真原本データ602と、メタデータ603によって構成される。メタデータ603には、写真原本データの識別子604と保護フラグ605が含まれる。本実施形態のカメラ101においては、保護フラグ605が有効になっている写真原本データについては、削除を禁止する。
【００２３】
次に写真共有サービス102が管理するデータ例を示す。写真共有サービス102では、図5(a)〜図5(d)のそれぞれに示す、共有写真データ701、閲覧者入力データ801、同期条件定義データ901、同期手順定義データ1001を管理する。
【００２４】
図5(a)に示す共有写真データ701は、撮影者が登録(アップロード)した写真を管理するためのデータであり、写真識別子702とサムネイル703から構成され、データベース部303で保持される。閲覧者端末104からの写真識別子702は、カメラ101内で保持されている写真原本データの識別子604と同じ値を持つものとする。サムネイル703は写真データ本体である。
【００２５】
図5(b)に示す閲覧者入力データ801は、写真の閲覧者が閲覧者端末104から入力したデータであり、データベース部303で保持される。閲覧者入力データ801は、データ識別子802、写真識別子803、ユーザ識別子804、閲覧者評価値805、同期状態806から構成される。データ識別子802は、閲覧者入力データ801を一意に特定する識別子である。写真識別子803は、閲覧者入力データ801と関連付けられる共有写真データ701の識別子である。ユーザ識別子804は、入力を行ったユーザの識別子である。閲覧者評価値805は、ユーザが入力した写真の評価値であり、ここでは1〜5の5段階のいずれかの値を持つとする。具体的には、写真に対するユーザからのコメントの付与数を、そのまま閲覧者評価値805としても良い。同期状態806は、写真識別子803が示す写真データを、閲覧者端末104に同期済みであるか否かを示す同期状態を保持する。同期状態806としては、同期済みであることを示す'TRUE'、および同期済みでないことを示す'FALSE'のいずれかのフラグを保持可能である。すなわち閲覧者入力データ801は、閲覧者による写真に対する評価や同期の状態を示す情報である。
【００２６】
図5(c)に示す同期条件定義データ901は、同期実行の要否を判定する条件を管理するデータであり、同期条件管理部305で保持される。本実施形態では閲覧者入力データ801内の閲覧者評価値805に対する閾値902として、'4'の値が定義されているものとする。
【００２７】
図5(d)に示す同期手順定義データ1001は、複数の同期方法と、それらを実行する優先順位を定義するデータであり、優先順位1002、同期操作1003、最大実行回数1004から構成され、同期手順管理部306で保持される。優先順位1002は優先順位を保持し、同期操作1003はデータを同期する際に実行する操作の定義内容を保持する。最大実行回数1004は、同期操作1003で定義された操作の実行に失敗した際に、最大何回まで再実行するかを規定する。ここで、同期操作1003における定義の具体的な手法については設計事項であって、本発明の規定するところではない。図5(d)では、操作手順を実装したプロシージャのプログラムインタフェース名を用いて、2つの同期方法が定義された状態を示している。同図において、第1位の優先順位である操作"SYNC_CAMERA_RAW"は、カメラ101内に保管されている写真原本データ602を取得する処理を実装したプロシージャを示す。第2位の優先順位である操作"SYNC_CAMERA_META"は、カメラ101内に保管されているメタデータ603の保護フラグ605を有効にする処理を実装したプロシージャを示す。なお本実施形態では、同期手順定義データ1001と同期条件定義データ901として、全ての写真データに対して共通の定義を用いるものとするが、写真毎に異なる同期手順や同期条件を定義することも可能である。
【００２８】
●データ同期処理
以下、本実施形態の写真共有システムにおけるデータの同期制御処理について、図6〜図9に示す一連のフローチャートを用いて詳細に説明する。なお、カメラ101での撮影処理、カメラ101から写真のサムネイルデータをアップロードする処理、および閲覧者が評価値を入力する処理については、同期処理自体には直接関係しないため説明を省略する。以下では既に、カメラ101内の記憶装置207に写真データ601が記録され、写真共有サービス102上のデータベース部303に共有写真データ701、同期条件定義データ901、同期手順定義データ1001が記録されているものとする。
【００２９】
この状態において、まず、同期処理の対象を指定する等、同期の初期処理(S1101〜S1109)を行う。すなわち、写真共有サービス102において、閲覧者端末104から、データベース部303に何らかの閲覧者入力データ801が記録されたら(S1101)、サーバ部302がサーバ同期管理部304に対し、同期処理の実行を依頼する(S1102)。この依頼の際には、閲覧者入力データ801で示された写真識別子803が指定される。するとサーバ同期管理部304は、同期を行う必要があるか否かを確認するために、まず同期条件管理部305から同期条件定義データ901を取得して、閾値902を抽出する(S1103)。上述したように閾値902には、閲覧者評価値805に対する閾値条件として'4'が設定されているとする。そしてサーバ同期管理部304は、所定の検索条件を満たす閲覧者入力データ801をデータベース部303から検索する(S1104)。ここでの検索条件としては例えば、S1102で指定された写真識別子803と、閲覧者評価値805が閾値条件'4'よりも大きいことと、同期状態806が'FALSE'、すなわち同期済みでないこと、である。該検索の結果、ヒットする閲覧者入力データがデータベース部303に存在しなければ(S1105)、同期が必要なデータは無いと判断し、S1111で閲覧者入力データ801をデータベース部303に反映した後、処理を終了する。なおS1111では、S1101で入力された閲覧者入力データ801について、データベース部303に保持されていなければそのまま格納し、既に保持されていれば閲覧者評価値805をインクリメントする等、対応する項目を更新する。
【００３０】
一方、S1104の検索で閲覧者入力データ801がヒットしたら(S1105)、サーバ同期管理部304は同期対象のデータ取得を開始する。まず、ヒットした閲覧者入力データ801から写真識別子803を抽出し(S1106)、該抽出した写真識別子803を検索条件として、データベース部303から共有写真データ701を検索し、取得する(S1107)。その後、同期手順管理部306から同期手順定義データ1001を取得し(S1108)、共有写真データ701の写真識別子702で示される写真原本データに対し、優先順位1002が第1位として定義されている操作を開始する(S1109)。図5(d)に示すように、優先順位が第1位であるプロシージャは"SYNC_CAMERA_RAW"、すなわち「カメラ101内に保管されている写真原本データ602を同期する」操作である。本実施形態の"SYNC_CAMERA_RAW"プロシージャにおいては、サーバ部302からカメラ101への接続は行わず、カメラ101が写真共有サービス102に再接続するまで待ち状態に入るものとする(S1110)。
【００３１】
引き続き、カメラ101が写真共有サービス102に再接続した後の、"SYNC_CAMERA_RAW"プロシージャによるカメラ同期処理(S1201〜S1207)について説明する。カメラ101が写真共有サービス102に接続されたら(S1201)、サーバ同期管理部304はカメラ101内のカメラ同期管理部205に対し、S1106で抽出した写真識別子803を指定して写真原本データ602の送信を要求する(S1202)。するとカメラ同期管理部205は、要求された写真識別子803に合致する写真原本データ602を記憶装置207から取得する(S1203)。そして、該取得した写真原本データ602を、写真共有サービス102のサーバ同期管理部304にサーバ部302を介して送信する(S1204)。このとき、指定された写真原本データ602が存在しなかったら、サーバ同期管理部304にエラーを返信して(S1209)、処理を終了する。
【００３２】
写真原本データ602の送信に成功したら(S1205)、サーバ同期管理部304はS1104で取得した閲覧者入力データ801からユーザ識別子804を抽出する(S1206)。そして、該抽出したユーザ識別子804と、受信した写真原本データ602とを対応付けて、データベース部303で保管する(S1207)。このとき、データベース部303に保持されている閲覧者入力データ801について、閲覧者評価値805をインクリメントし、および同期状態806を'TRUE'に更新する等、対応する項目を更新する。
【００３３】
サーバ同期管理部304は、カメラ101からの写真原本データ602の受信および保管が終了すると、次に、当該写真原本データ602を閲覧者端末104に送信する。以下、閲覧者端末104への写真原本データ602の送信処理、すなわち"SYNC_CAMERA_RAW"プロシージャによる閲覧者同期処理(S1208〜S1305)について説明する。まず上記S1110と同様に、"SYNC_CAMERA_RAW"プロシージャはサーバ部302から閲覧者端末104への接続は行わず、閲覧者端末104が写真共有サービス102に接続するまで待ち状態に入るものとする(S1208)。そして、閲覧者端末104が写真共有サービス102に接続されたら(S1301)、閲覧者端末104は閲覧者のユーザ識別子804を指定して、サーバ同期管理部304にデータの同期を要求する(S1302)。するとサーバ同期管理部304は、指定されたユーザ識別子804を検索条件として、S1207でデータベース部303で保管したユーザ識別子804を検索する(S1303)。該検索の結果、ヒットするユーザ識別子が存在しなければ処理を終了する(S1304)。ヒットした場合には、該ヒットしたユーザ識別子804と対応付けられている写真原本データ602をデータベース部303から取得して、閲覧者端末104に送信する(S1305)。
【００３４】
次に、上記S1205において、同期対象である写真原本データ602を、カメラ101からサーバ部302へ送信する処理に失敗した場合のリトライ処理(S1401〜S1408)について説明する。まず、S1108で取得した同期手順定義データ1001から最大実行回数1004を取得し、送信に成功するか、または送信の実行回数が最大実行回数1004に達するまで、写真原本データ602の送信を繰り返す(S1402〜S1405)。送信に成功したら、上記S1206以降の処理を実行する。一方、最大実行回数1004に達しても送信に成功しなかった場合は、実行中である"SYNC_CAMERA_RAW"操作を完了させた後、同期手順定義データ1001から次の優先順位の同期操作を抽出し(S1406)、これを実行する(S1408)。ここでは、第2位の優先順位が"SYNC_CAMERA_META"のプロシージャに対して設定されているため、カメラ101内の写真原本データ602に対応する保護フラグ605を有効として、削除を防止する操作が実行される。もしも次の優先順位の操作が定義されていない場合には(S1407)、同期失敗として処理を終了する。
【００３５】
なお、図6〜図9に示すデータ同期処理は、図5(d)に示した同期手順定義データ1001の定義内容に基づく処理である。同期手順定義データ1001の定義内容に応じてこのフローチャートの処理手順は適宜変更される。例えば、上記S1110〜S1305の処理が第1位の優先順位として定義された"SYNC_CAMERA_RAW"プロシージャに基づく同期処理であるから、第1位として他のプロシージャが定義された場合には、該定義に従った処理を行う。
【００３６】
以上説明したように本実施形態の写真共有システムによれば、閲覧者端末104からの閲覧者入力データ801が、ある写真に対して所定の条件を満たす場合に、予め定義された操作手順に従って、カメラ101が保持する写真原本データ602を同期する。このとき、予め優先順位が定められた複数の同期方法を順次実行することで、データ同期処理が成功する可能性が向上する。すなわち、性質の異なるデータを同期する際に、データの状態や機器の状況に応じて同期処理方法を選択することができ、同期実行後のデータの可用性が向上する。
【００３７】
具体的には、本実施形態のようにサムネイル画像をベースとした写真共有サービスにおいて、閲覧者が該サービスを介して写真原本データを入手できる可能性が向上する。例えば、サムネイル画像を公開した後で撮影者がカメラ101内の写真原本データを撮影者端末103等に複製せずに削除してしまうと、閲覧者が高品質なデータを入手して利用する機会が失われてしまう。そこで本実施形態で示した"SYNC_CAMERA_RAW"プロシージャを実行することで、閲覧者が評価やコメントを入力した写真の原本データが、自動的に閲覧者端末に同期される。これにより、当該写真の原本データを閲覧者側で確実に利用可能となる。また、閲覧者が所望の原本データをダウンロードできなかった場合には、"SYNC_CAMERA_META"プロシージャを実行することで、カメラ101内での当該原本データの保護フラグを有効とする。これにより、撮影者が原本データを安易に削除してしまうことを防止できる。
【００３８】
＜第2実施形態＞
以下、本発明に係る第2実施形態について説明する。上述した第1実施形態では、同期操作の優先度は、同期手順定義データ1001に登録されている順位で固定されていた。第2実施形態では優先順位を固定とせず、同期処理の実行コスト(予測される処理負荷)に応じて設定する例を示す。なお、第2実施形態における同期処理の実行コストとは、該同期処理を実行した際に予測される、処理負荷とデータ品質とのトレードオフ関係を定量的に示す評価値である。
【００３９】
第2実施形態における写真共有システムの構成は上述した第1実施形態に準じるため、説明を省略する。図10に、第2実施形態における同期手順定義データ1001の構成を示す。図10に示すように第2実施形態の同期手順定義データ1001は、第1実施形態で図5(d)と同様の同期操作1003、最大実行回数1004に加えて、操作番号1501、コスト1502から構成される。操作番号1501は操作の識別子であり、コスト1502は同期操作1003に対し、その実行コストとして予め算出された値を保持するものである。また図11に、第2実施形態における写真共有サービスのモジュール構成図を示す。第2実施形態の写真共有サービス1601は、第1実施形態で図2(b)に示したモジュール構成に対し、コスト1502を評価して実行する閲覧操作を決定するコスト評価部1602が追加されている。
【００４０】
第2実施形態におけるデータ同期処理の手順は基本的に第1実施形態に準じるが、図6のS1108〜S1109による第1優先である操作の実行処理に代えて、実行コストの評価結果に基づいて決定された操作を実行する。さらに、図9のS1406〜S1408による優先順位に応じた実行操作の切り替えに代えて、実行コストの評価結果に基づく操作切り替えを行う。
【００４１】
第2実施形態でも第1実施形態と同様に、共有写真データ701(第1のデータ)に対する閲覧者からの評価が所定の条件を満たした場合に、カメラ101の写真原本データ602(第2のデータ)に対する同期操作を実行する。例えば、"SYNC_CAMERA_RAW"プロシージャによる同期操作が実行されることによって、写真原本データ602が閲覧者端末104に送信され、閲覧者端末104側の記憶装置404に、最終的な同期結果として写真原本データが保持される。このように、最終的な同期結果として得られるデータを、以下では同期結果データ(第3のデータ)と称する。第2実施形態のコスト評価部1602では、この同期結果データを得るための実行コストの値に基づいて、実行する同期操作を決定する。
【００４２】
以下、第2実施形態における各操作の実行コスト、すなわちコスト1502の算出方法について説明する。第2実施形態では、評価対象となる操作に対し、複数の指標についての値を設定し、該複数の指標値から最終的な実行コストを予め算出しておく。ここで図12に、第2実施形態における実行コストの算出に用いられる指標値の例を示す。図12において、操作番号1701は図10の操作番号1501と対応しており、すなわち操作毎に各指標値および最終的な実行コストが算出される。同期結果データの品質1702は、同期結果データの品質を示す指標値であり、カメラ101内の写真原本データ602と同期結果データの間の品質差が小さいほど高品質であるため、指標値を低く設定する。例えば、写真原本データ602と同期結果データが同質であれば、同期結果データの品質1702の指標値を0に設定する。同期結果データの保管装置の稼働率1703は、同期結果データを保管する装置、具体的には閲覧者端末104の記憶装置404の稼働率を示す指標である。一般に、該保管装置の稼働率が高いほど、同期結果データが利用される可能性が高くなるため、該保管装置の稼働率が高いほど指標値を低く設定する。同期処理の総データ転送量1704は、当該同期操作に伴うデータ転送量を示す指標値であり、データ転送量が少ないほど、指標値を低く設定する。コスト1705は、前記3つの指標(1702〜1704)の値に基づいて導出した、各操作の最終的な実行コストである。すなわちコスト1705は、当該操作について予測される利用度合い(可用性)を示す指標である。
【００４３】
図12では単純に、前記3つの指標値の和を実行コストとした例を示す。すなわち、同期結果データの品質が高いほど、また同期結果データの保管装置の稼働率が高いほど、さらに同期操作時のデータ転送量が少ないほど、同期操作の実行コストが低くなる。コスト評価部1602では例えば、実行コストが低い操作ほど実行の優先度を高く設定することで、実行コストが低い順に同期操作が実行される。なお、図12では各指標値の総和を実行コストとする例を示したが、指標値に重み付けを行う等、実行コストの算出方法は任意に設定可能である。図12に示すように操作ごとに算出されたコスト1705が、図10に示す同期手順定義データ1001のコスト1502として保持される。
【００４４】
なお、第2実施形態では操作ごとの実行コストを予め算出して同期手順定義データ1001にコスト1502として保持しておく例を示したが、実行コストを動的に算出しても良い。その場合、例えばカメラ101が写真共有サービス102に接続した際に計測した実効通信速度や、接続するカメラ101や閲覧者端末104のハードウェアスペック等を、指標として用いることが考えられる。
【００４５】
また、コスト評価部1602において決定される操作の実行順序としては、低コストから高コストの順に限らず、その逆順であっても良い。また、複数のデータを同期する場合に、同期対象の全てのデータに対する低コストの同期処理が成功してから順次、高コストの処理を実行するとしても良い。
【００４６】
以上説明したように第2実施形態によれば、各同期操作の実行コストに応じて、各同期操作の処理順が決定される。これにより、例えば送信失敗のリスクと閲覧者が入手できるデータの品質とのトレードオフを制御することが可能となり、使用環境やユーザニーズに柔軟に対応した同期処理を行うことができる。
【００４７】
＜その他の実施形態＞
上述した第1実施形態においては、同期対象のデータの送信に失敗したことを以って、優先順位の低い他の同期操作への切り替えを行う例を示した。このような他の優先順位の同期操作への切り替えを、第2実施形態で用いた同期操作の予測コストと実測コストの乖離度に応じて制御することも可能である。このような実測コストに基づく操作切り替え制御は、類似した複数のデータを連続して同期する場合に、特に効果的である。例えば、直近に処理したデータに対する同期操作時間が予測よりも多くかかった場合に、通信状況が悪くなったと判断して、以降のデータでは処理コストの低い、すなわち通信障害に伴う失敗リスクの少ない同期操作に切り替える、等の制御が可能となる。
【００４８】
また、上記各実施形態においては、サーバで管理する第1のデータと、該第1のデータに応じて同期操作が行われる第2のデータの関係性として、サムネイルとその写真原本データのように、互いに明確な関係性があるが性質が異なるデータである例を示した。しかしながら、本発明のデータ同期処理においては、そのようなデータ間の関係性は必須ではなく、第1のデータの状態の変化に応じて第2のデータの操作を行うものであれば良い。例えば、第1のデータをサーバ上のメタデータとし、第2のデータを機器内の機器設定値としても、本発明は実現可能である。この場合、例えばサーバ上のメタデータが変更された際に、機器内の機器設定値を更新することができる。また、第1のデータをファイルのアクセス権とし、第2のデータを当該ファイルのネットワーク上のキャッシュデータとすることも可能である。この場合、例えばファイルのアクセス権が変更された場合に、ネットワーク上のキャッシュデータを削除することができる。すなわち本発明は、第1のデータの状態に応じて更新すべき第2のデータに対して適用可能である。
【００４９】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【図１】
2015041163.tif 000003
【図２】
2015041163.tif 000004
【図３】
2015041163.tif 000005
【図４】
2015041163.tif 000006
【図５】
2015041163.tif 000007
【図６】
2015041163.tif 000008
【図７】
2015041163.tif 000009
【図８】
2015041163.tif 000010
【図９】
2015041163.tif 000011
【図１０】
2015041163.tif 000012
【図１１】
2015041163.tif 000013
【図１２】
2015041163.tif 000014