(57)【要約】【課題】クライアント装置からサーバ装置へのアップロード処理を効率化し、サーバ装置が保持するデータ群を効率良く最新の状態とする。【解決手段】情報処理装置（サーバ装置３０）は、クライアント装置２０から時刻情報を有するデータを受信する受信手段と、受信手段が受信したデータのうち、時刻情報に基づき所定数のデータを管理する管理手段と、を備える。また、サーバ装置３０は、管理手段が管理するデータの時刻情報に基づいて、クライアント装置２０からサーバ装置３０へ送信可能なデータに関する条件を設定する設定手段を備える。さらに、サーバ装置３０は、クライアント装置からの上記条件の送信要求に応答して、設定手段で設定した条件をクライアント装置２０に送信する送信手段を備える。【選択図】      図１
2017054258.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置と通信可能に接続された情報処理装置であって、
前記クライアント装置から時刻情報を有するデータを受信する受信手段と、
前記受信手段が受信したデータのうち、前記時刻情報に基づき所定数のデータを管理する管理手段と、
前記管理手段が管理するデータの前記時刻情報に基づいて、前記クライアント装置から自装置へ送信可能なデータに関する条件を設定する設定手段と、
前記クライアント装置からの前記条件の送信要求に応答して、前記設定手段で設定した前記条件を前記クライアント装置に送信する送信手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記設定手段は、
前記条件として、前記管理手段の管理対象となる時刻情報を有するデータを、前記クライアント装置から自装置へ送信可能なデータとする条件を設定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記設定手段は、
前記クライアント装置から自装置への送信を可能とする前記データの時刻情報に関する第１条件と、
前記第１条件を満たすデータの中から前記クライアント装置から自装置へ送信するデータを選択するための第２条件と、を設定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記管理手段は、
前記受信手段が受信したデータのうち、前記時刻情報が示す時刻が新しい順に前記所定数のデータを管理し、
前記設定手段は、
前記第１条件を、前記管理手段が管理するデータの前記時刻のうち、最も古い時刻よりも前記時刻が新しいデータとし、
前記第２条件を、前記第１条件を満たすデータのうち、前記時刻が最も新しいデータとすることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記管理手段は、
前記受信手段が受信したデータのうち、前記時刻情報が示す時刻が新しい順に前記所定数のデータを管理し、
前記設定手段は、
前記第１条件を、前記管理手段が管理するデータの前記時刻のうち、最も新しい時刻よりも前記時刻が新しいデータとし、
前記第２条件を、前記第１条件を満たすデータのうち、前記時刻が新しい順に、前記所定数までのデータとすることを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記設定手段は、
異なる複数の前記条件を、優先度とともに設定することを特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記クライアント装置の表示部の表示能力に関する情報を取得する取得手段と、
前記取得手段で取得した前記情報に基づいて、前記管理手段が管理対象とするデータの範囲を設定する範囲設定手段と、をさらに備えることを特徴とする請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
データが有する時刻情報に基づき所定数のデータを管理するサーバ装置と通信可能に接続された情報処理装置であって、
前記時刻情報を有するデータを前記サーバ装置へ送信するための送信要求を、前記サーバ装置へ送信する第一送信手段と、
前記送信要求の応答として、前記サーバ装置が管理するデータの時刻情報に応じて設定された、自装置から前記サーバ装置へ送信可能なデータに関する条件を受信する受信手段と、
前記受信手段で受信した前記条件を満たす前記データを選択する選択手段と、
前記選択手段で選択した前記データを前記サーバ装置に送信する第二送信手段と、を備えることを特徴とする情報処理装置。
【請求項９】
前記時刻情報を有するデータを生成する生成手段をさらに備え、
前記第一送信手段は、
前記生成手段がデータを生成したとき、前記生成手段で生成したデータを前記サーバ装置へ送信するための前記送信要求を前記サーバ装置へ送信することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記時刻情報を有するデータを生成する生成手段と、
前記サーバ装置との通信状態を確認する確認手段をさらに備え、
前記第一送信手段は、
前記確認手段により前記サーバ装置との通信が不可能な状態から前記通信が可能な状態へ回復したことを確認したとき、前記通信が不可能である期間に前記生成手段で生成したデータを前記サーバ装置へ送信するための前記送信要求を前記サーバ装置へ送信する
ことを特徴とする請求項８または９に記載の情報処理装置。
【請求項１１】
クライアント装置が送信する時刻情報を有するデータのうち、前記時刻情報に基づき所定数のデータを管理するサーバ装置から、前記管理の対象であるデータの時刻情報を取得する取得手段と、
前記取得手段で取得した時刻情報に基づいて、前記クライアント装置から前記サーバ装置へ送信可能なデータに関する条件を設定する設定手段と、
前記設定手段で設定した条件を、前記条件の送信を要求するクライアント装置へ通知する通知手段と、を備えることを特徴とする情報処理装置。
【請求項１２】
前記請求項１〜７のいずれか１項に記載の情報処理装置をサーバ装置とし、
前記請求項８〜１０のいずれか１項に記載の情報処理装置をクライアント装置として、
前記サーバ装置と前記クライアント装置とが通信可能に接続された情報処理システム。
【請求項１３】
クライアント装置が送信する時刻情報を有するデータのうち、前記時刻情報に基づき所定数のデータを管理するサーバ装置から、前記管理の対象であるデータの時刻情報を取得するステップと、
取得した時刻情報に基づいて、前記クライアント装置から前記サーバ装置へ送信可能なデータに関する条件を設定するステップと、
設定した前記条件を、前記条件の送信を要求するクライアント装置へ通知するステップと、を含むことを特徴とする情報処理方法。
【請求項１４】
コンピュータを、請求項１〜１１のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム及び情報処理方法に関する。
【背景技術】
【０００２】
近年、情報端末装置から、ネットワークを介して文章や画像などの投稿データをサーバ装置に送信（投稿）し、投稿データを複数のクライアント装置から閲覧可能とするデータ共有システムが普及している。投稿データが撮像画像である場合、通信状態が良好な環境下においては、投稿ユーザは、撮像を行いながら画像データを随時アップロードすることができる。そのため、閲覧ユーザは、投稿ユーザが撮像した画像データをリアルタイムで確認することができる。一方、投稿ユーザが利用する情報端末装置とサーバ装置との通信状態が悪いと、画像データをリアルタイムでアップロードすることができない。そのため、この場合には、通信状態が回復したときに、未送信の画像データを撮影順にアップロードすることになる。
【０００３】
ところが、画像データを撮像順にアップロードすると、閲覧ユーザは古い画像データから先に確認することになってしまう。リアルタイムでの画像閲覧においては、古い画像よりも新しい画像の方が閲覧ユーザにとって重要である。そのため、新しい画像をできるだけ早くアップロードすることが望まれる。
特許文献１には、先に送信したい重要なデータに識別データを付し、識別データを有するデータを優先的に外部装置へ送信（アップロード）する点が開示されている。この特許文献１の技術では、撮像順序は後であるが、急いで外部装置へアップロードしたい画像データについては、先にアップロード処理することが可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４２３２２０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に記載の技術にあっては、撮像者が撮像時に、優先的に送信する画像であるか否かを判断し、手動で識別データを付す必要がある。また、識別データを有するデータを撮像順に（古い画像から先に）アップロードしたり、データ容量の小さい順にアップロードしたりするため、サーバ装置に最新データがアップロードされるまでに時間がかかる。つまり、閲覧ユーザが最新の画像を確認できるようになるまでに時間がかかる。そのため、閲覧されるべき最新画像がリアルタイム表示されず、閲覧ユーザは、リアルタイムでの画像閲覧の効果を十分に享受することができない。
さらに、上記特許文献１に記載の技術では、サーバ装置が管理するデータの状態を全く考慮しないため、管理対象外（公開対象外）となる古いデータをアップロードしてしまうことがある。
そこで、本発明は、クライアント装置から送信されたデータをサーバ装置が管理するシステムにおいて、サーバ装置が管理する共有データを効率良く最新の状態とすることを課題としている。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る情報処理装置の一態様は、クライアント装置と通信可能に接続された情報処理装置であって、前記クライアント装置から時刻情報を有するデータを受信する受信手段と、前記受信手段が受信したデータのうち、前記時刻情報に基づき所定数のデータを管理する管理手段と、前記管理手段が管理するデータの前記時刻情報に基づいて、前記クライアント装置から自装置へ送信可能なデータに関する条件を設定する設定手段と、前記クライアント装置からの前記条件の送信要求に応答して、前記設定手段で設定した前記条件を前記クライアント装置に送信する送信手段と、を備える。
【発明の効果】
【０００７】
本発明によれば、クライアント装置から送信されたデータをサーバ装置が管理するシステムにおいて、サーバ装置が管理する共有データを効率良く最新の状態とすることができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態における情報処理システムの機能構成の一例である。
【図２】管理テーブルのデータ構造の一例である。
【図３】アップロード条件基準の一例である。
【図４】アップロード条件の一例である。
【図５】クライアント装置及びサーバ装置のハードウェア構成例である。
【図６】クライアント装置における全体処理を示すフローチャートである。
【図７】サーバ装置における全体処理を示すフローチャートである。
【図８】アップロード条件設定処理手順を示すフローチャートである。
【図９】クライアント装置とサーバ装置との間の処理を示すシーケンス図である。
【図１０】クライアント装置とサーバ装置との間の処理を示すシーケンス図である。
【図１１】第二の実施形態における情報処理システムの機能構成の一例である。
【図１２】サーバ装置における全体処理を示すフローチャートである。
【図１３】データ範囲更新処理手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明を実施するための形態について詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
本実施形態における情報処理システムは、クライアント装置からネットワーク上のサーバ装置へ投稿データを送信し、送信された投稿データを、ネットワークを介して複数のクライアント装置から閲覧可能とするデータ共有システムである。クライアント装置は、デジタルカメラ等の撮像装置やパーソナルコンピュータ（ＰＣ）に組み込み可能である。クライアント装置が撮像装置である場合、クライアント装置は、画像の撮像を行いながら、サーバ装置に撮像画像を随時ダイレクトに送信することができる。また、クライアント装置がＰＣである場合、クライアント装置は、外部から読み込んだ画像をサーバ装置に送信することができる。サーバ装置は、利用可能なネットワークを経由して、画像のコピーをデバイスの写真アプリケーションやＰＣの画像ライブラリに自動的に出力することができる。
本実施形態において、上記の投稿データとは、画像データや文字データのことを示す。ただし、投稿データは、映像データや音声データであってもよい。
【００１０】
（第一の実施形態）
図１は、本実施形態におけるデータ共有システム１０の一例を示す機能構成図である。
データ共有システム１０は、クライアント装置２０とサーバ装置３０とを備える。クライアント装置２０とサーバ装置３０とは、ネットワークによって通信可能に接続されている。ここで、ネットワークは、例えば、インターネット、ＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）、若しくはこれらの複合により実現できる。
なお、図１において、クライアント装置２０は１台としているが、図１に示すクライアント装置２０と同様の構成を有する複数のクライアント装置が、ネットワークを介してサーバ装置３０に接続可能である。
【００１１】
（クライアント装置２０の構成）
クライアント装置２０は、サーバ装置３０が提供するデータ共有サービスを利用可能な情報処理装置である。本実施形態において、クライアント装置２０は、データ共有サービスのサービス利用者が利用するデジタルカメラである。なお、クライアント装置２０は、画像の撮像、画像の読み込み、及び文字の入力の少なくとも１つが可能で、且つネットワークに接続可能な端末装置であればよい。つまり、クライアント装置２０は、スマートフォンやパーソナルコンピュータ（ＰＣ）、タブレット型ＰＣ等であってもよい。
ここで、データ共有サービスとは、ネットワークを介したユーザ同士のコミュニケーションを図ることを目的としたサービスであり、ユーザから送信（投稿）されたデータを公開し、複数のユーザから閲覧可能とするサービスである。このデータ共有サービスによれば、サーバ装置３０に送信されたデータは、複数のユーザ間で共有される。そのため、どのユーザが撮像したかにかかわらず、複数のユーザが写真を閲覧することができる。また、公開された写真に対してコメントを投稿するといったアクションも可能であり、投稿されたコメントも複数のユーザが閲覧可能である。
【００１２】
クライアント装置２０は、データ生成部２１と、データ保管部２２と、データ検知部２３と、アップロード条件取得部２４と、データ選択部２５と、データ送信部２６と、を備える。データ生成部２１は、ユーザからの撮像操作や入力操作によって、画像データや文字データを生成する。データ生成部２１は、生成したデータを、データの時刻情報（以下、単に「時刻」ともいう。）と共にデータ保管部２２に出力する。本実施形態では、時刻情報は、画像データの撮像時刻や文字データの入力時刻といった作成時刻を示す。なお、時刻情報は、データの変更（修正）時刻や編集時刻（タグ付けやコメントを付加した時刻）であってもよい。
データ保管部２２は、データ生成部２１から出力されたデータを後述する記憶部に記憶する。データ検知部２３は、データ生成部２１においてデータが生成されたことを検知し、データが生成されたことを示す検知信号をアップロード条件取得部２４に出力する。
【００１３】
アップロード条件取得部２４は、データ検知部２３から検知信号を受信すると、サーバ装置３０に対してデータをアップロードするための投稿要求を行う。投稿要求は、クライアント装置２０が、後述するアップロード条件を取得するための要求（アップロード条件の送信要求）である。また、アップロード条件取得部２４は、上記投稿要求の応答として、サーバ装置３０からアップロード条件を受信する。アップロード条件とは、サーバ装置３０へのアップロードを可能とするデータ（アップロードデータ）の条件である。アップロード条件には、どのような時刻を持つデータであればアップロード可能であるかを示す情報（時刻条件）と、同時にアップロード可能なデータの数を示す情報（選択条件）とが含まれる。アップロード条件取得部２４は、サーバ装置３０からアップロード条件を受信すると、受信したアップロード条件をデータ選択部２５に出力する。
データ選択部２５は、記憶部に記憶されたデータの中からアップロード条件を満たすデータを選択し、選択したデータをサーバ装置３０に送信するデータとしてデータ送信部２６に出力する。データ送信部２６は、データ選択部２５によって選択されたデータをサーバ装置３０に送信（投稿）する。
【００１４】
（サーバ装置３０の構成）
サーバ装置３０は、クライアント装置２０と通信可能に接続された情報処理装置である。サーバ装置３０は、アップロード条件設定部３１と、データ取得部３２と、アップロード条件基準設定部３３と、データ管理部３４と、を備える。アップロード条件設定部３１は、データ管理部３４が出力するアップロード条件設定要求を受け、アップロード条件基準設定部３３が設定するアップロード条件基準と、データ管理部３４が管理する管理テーブルとに基づいてアップロード条件を設定する。なお、アップロード条件の設定処理については後で詳述する。また、アップロード条件設定部３１は、クライアント装置２０からの投稿要求を受け、アップロード条件をクライアント装置２０に送信する。
データ取得部３２は、クライアント装置２０から送信されたデータを取得し、取得したデータを後述する記憶部に記憶する。また、データ取得部３２は、データ管理部３４に対して、データ保存要求を出力する。アップロード条件基準設定部３３は、アップロード条件を決定するための基準であるアップロード条件基準を設定する。本実施形態では、アップロード条件基準は、予めサーバ装置３０に設定されているものとする。
【００１５】
データ管理部３４は、管理テーブルを用いて、記憶部に記憶されたデータのうち、時刻情報に基づき所定数のデータを管理する。本実施形態では、管理テーブルは、時刻が新しい順に所定数のデータ、具体的には、最新Ｎ個のデータの状態を管理する。なお、上記所定数は、Ｎ個で固定であってもよいし、可変であってもよい。上記所定数が可変である場合とは、管理テーブルにおいて最新データから一定期間分のデータを管理する場合や、最新データから総データ容量が一定容量となるまでのデータを管理する場合である。
管理テーブルは、データの状態として、データの時刻を管理する。図２（ａ）に示すように、管理テーブルは、データのＩＤと、データの時刻とを対応付けて管理する。図２（ａ）においては、最新５つ分（Ｎ＝５）のデータの時刻を管理する管理テーブルを示している。データのＩＤは、サーバ装置３０上で何番目に新しいデータであるかを示す情報であり、各データの識別子とは異なるものである。図２（ａ）に示す管理テーブルにおいて、ＩＤ＝０は最新のデータであり、ＩＤ＝４が管理テーブル中最も古いデータであることを示す。図２（ａ）に示す管理テーブルによると、最新のデータ（ＩＤ＝０）の時刻Ｔ（０）が時刻ｔ１であり、管理テーブル内で最も古いデータ（ＩＤ＝４）の時刻Ｔ（Ｎ−１）が時刻ｔ５であることがわかる。
【００１６】
また、データ管理部３４は、データ取得部３２がクライアント装置２０からデータを取得したときに出力するデータ保存要求を受けて、管理テーブルを更新する。例えば、データ管理部３４が図２（ａ）に示す管理テーブルを管理しているときに、データ取得部３２が時刻ｔｎを有する新しいデータを取得したとする。ここで、時刻ｔｎは時刻ｔ３よりも新しく、時刻ｔ２よりも古いとすると、管理テーブルは、図２（ｂ）に示すように更新され、ＩＤ＝２のデータの状態が時刻ｔｎとなる。そのため、図２（ｂ）に示すように、最新のデータの時刻Ｔ（０）は時刻ｔ１のままであるが、管理テーブル内で最も古いデータの時刻Ｔ（Ｎ−１）は時刻ｔ４に更新される。このように、管理テーブルは、サーバ装置３０が保持するデータを時系列に整列させたときの最新からＮ個目までのデータの時刻を管理する。
【００１７】
アップロード条件基準設定部３３が設定するアップロード条件基準は、図３に示すように、アップロードデータの時刻情報の基準と、アップロードデータの選択の基準とを含む。アップロードデータの時刻情報の基準は、例えば、「サーバ装置３０の設定範囲内の最も古い時刻情報」や、「サーバ装置３０の設定範囲内の最も新しい時刻情報」とすることができる。ここで、サーバ装置３０の設定範囲とは、管理テーブルによるデータの管理対象範囲である。なお、アップロードデータの時刻情報の基準は、管理テーブルによる管理対象のデータの時刻のうち、最も古い時刻から最も新しい時刻までの期間内の時刻であれば、適宜設定可能である。
【００１８】
また、アップロードデータの選択の基準は、例えば、「最新データを１つ選択」や、「新しい方からサーバ装置３０の設定範囲分までを選択」とすることができる。さらに、図３に示すように、アップロード条件基準が複数である場合には、基準のタイプ（タイプ１、タイプ２、…）を設定し、各々に優先度を設定する。ここで、優先度は、値が小さいほど優先度が高いことを示す。
なお、図３においては、アップロード条件基準を２つとしているが、アップロード条件基準は１つでもよいし、３つ以上でもよい。アップロード条件基準が１つである場合には、優先度のカラムは設けなくてもよい。
【００１９】
アップロード条件設定部３１が設定するアップロード条件は、上述したように、時間条件と選択条件とを含む。時刻条件は、クライアント装置２０が送信可能なデータの時刻情報（時刻範囲）を表すものである。図３のタイプ１のアップロード条件基準をもとに設定したアップロード条件（条件１）の場合、時刻条件は、図４に示すように「時刻Ｔ（Ｎ−１）よりも新しい」となる。また、図３のタイプ２のアップロード条件基準をもとに設定したアップロード条件（条件２）の場合、時刻条件は「時刻Ｔ（０）よりも新しい」となる。
【００２０】
選択条件は、上記の時刻条件を満たすデータの中からサーバ装置３０へ送信するデータを選択するための条件であり、どのような時刻を持つデータを、いくつ選択するかといった条件を示す。条件１の場合、選択条件は「データ候補の中から最新のデータを１つ選択」となる。また、条件２の場合、選択条件は「データ候補の中で新しいデータをＮ個まで選択」となる。ここで、データ候補とは、サーバ装置３０が保持するデータのうち、時刻条件を満たすデータである。このように、アップロード条件とは、クライアント装置２０からサーバ装置３０へ送信した結果、管理テーブルによる管理対象となる時刻を有するデータの条件である。
さらに、図４に示すように、アップロード条件が複数である場合には、各々に優先度を設定する。ここで、優先度は、値が小さいほど優先度が高いことを示す。なお、図４においては、アップロード条件を２つ設定しているが、アップロード条件は１つでもよいし、３つ以上でもよい。アップロード条件が１つである場合には、優先度のカラムは設けなくてもよい。
【００２１】
（ハードウェア構成）
図５は、クライアント装置２０及びサーバ装置３０のハードウェア構成の一例である。ＣＰＵ１０１は、クライアント装置２０またはサーバ装置３０における動作を統括的に制御するものであり、システムバス１０７を介して、各構成部（１０２〜１０６）を制御する。ＲＯＭ１０２は、ＣＰＵ１０１が処理を実行するために必要なプログラム等を記憶する不揮発性メモリである。ＲＡＭ１０３は、ＣＰＵ１０１の主メモリ、ワークエリアとして機能する。つまり、ＣＰＵ１０１は、処理の実行に際してＲＯＭ１０２から必要なプログラムをＲＡＭ１０３にロードし、ロードしたプログラムを実行することで各種の機能動作を実現する。
【００２２】
通信Ｉ／Ｆ１０４は、外部装置と通信するための通信インターフェースである。通信Ｉ／Ｆ１０４は、クライアント装置２０とサーバ装置３０とを相互に接続し、クライアント装置２０からデータを送信したり、サーバ装置３０からアップロード条件をクライアント装置２０に送信したりするために使用する。入力部１０５は、クライアント装置２０やサーバ装置３０に対するユーザからの操作等を受け付ける。記憶部１０６は、ＣＰＵ１０１がプログラムを用いた処理を行う際に必要な各種データや各種情報を記憶している。また、記憶部１０６には、ＣＰＵ１０１がプログラムを用いた処理を行うことにより得られた各種データや各種情報が記憶される。
図１に示すクライアント装置２０の各部の機能や、サーバ装置３０の各部の機能は、ＣＰＵ１０１がＲＯＭ１０２に記憶されたプログラムを実行することで実現される。
なお、クライアント装置２０には、液晶ディスプレイ（ＬＣＤ）等のモニタで構成される表示部が追加される。また、クライアント装置２０が撮像機能を有する端末装置である場合には、ハードウェア構成として、撮像素子を含んで構成され、被写体からの光をデジタル電気信号に変換する撮像部が追加される。
【００２３】
（クライアント装置２０で実行する全体処理）
次に、クライアント装置２０で実行する処理について、詳細に説明する。
図６は、クライアント装置２０における全体処理を示すフローチャートである。この図６の処理は、クライアント装置２０のＣＰＵ１０１が、必要なプログラムを読み出して実行することにより、実現される。ただし、図６の処理の一部または全部が、専用のハードウェアにより実現されてもよい。図６の処理は、データ検知部２３がデータ生成部２１によるデータ生成を検知したときに開始される。ただし、図６の処理の開始タイミングは、上記のタイミングに限らない。クライアント装置２０が、通信状態の不具合などの原因によりリアルタイムにサーバ装置３０に画像データを送信することができない状態から、通信が可能な状態へ回復したことを確認したときに、本処理を開始してもよい。
Ｓ１において、アップロード条件取得部２４は、サーバ装置３０に投稿要求を送信することで新規投稿を通知する。次にＳ２において、アップロード条件取得部２４は、投稿要求の応答として、サーバ装置３０からアップロード条件を取得する。Ｓ３では、データ選択部２５は、Ｓ２において取得したアップロード条件を１つ選択し、Ｓ４に移行する。Ｓ２において取得したアップロード条件が複数ある場合には、Ｓ３では、データ選択部２５は、アップロード条件を優先度順に１つ選択し、Ｓ４に移行する。
【００２４】
Ｓ４では、データ選択部２５は、データ保管部２２によって記憶部に記憶されたデータの中から、アップロード条件の時刻条件を満たすデータを、アップロードデータのデータ候補として選択する。次にＳ５では、データ選択部２５は、Ｓ４において選択されたデータ候補のうち、アップロード条件の選択条件に従って、アップロードデータを選択する。
Ｓ６では、データ選択部２５は、Ｓ４及びＳ５の処理の結果、対象データ（アップロードデータ）があるか否かを判定し、対象データがある場合にはＳ７に移行する。Ｓ７では、データ送信部２６は、Ｓ５において選択されたアップロードデータをサーバ装置３０に送信する。一方、Ｓ６において対象データがないと判定した場合には、Ｓ８に移行し、データ選択部２５は、未処理のアップロード条件があるか否かを判定する。そして、未処理のアップロード条件がある場合には、データ選択部２５は処理を継続すると判断してＳ３に戻る。一方、未処理のアップロード条件がない場合には、データ選択部２５は処理を終了する。
【００２５】
（サーバ装置３０で実行する全体処理）
次に、サーバ装置３０で実行する処理について、詳細に説明する。
図７は、サーバ装置３０における全体処理を示すフローチャートである。この図７の処理は、サーバ装置３０のＣＰＵ１０１が、必要なプログラムを読み出して実行することにより、実現される。ただし、図７の処理の一部または全部が、専用のハードウェアにより実現されてもよい。図７の処理は、サーバ装置３０の電源を投入したときに開始される。ただし、図７の処理の開始タイミングは、上記のタイミングに限らない。
Ｓ１１では、サーバ装置３０は、クライアント装置２０からサーバ装置３０への要求、及び自サーバ装置３０内において起動時などのイベントをトリガに発生した要求を取得する要求取得処理を実施する。要求取得処理にて取得される要求としては、初期化要求、アップロード条件設定要求、投稿要求、データ保存要求、終了要求がある。初期化要求とは、サーバ装置３０の電源が投入されたときに、サーバ装置３０が自装置に対して出力する要求である。また、終了要求とは、サーバ装置３０の電源の遮断指示やサーバ装置３０の処理の終了指示を入力したときに、サーバ装置３０が自装置に対して出力する要求である。
【００２６】
Ｓ１２では、サーバ装置３０は、Ｓ１１において取得した要求の種類を判定する。そして、取得した要求が初期化要求である場合にはＳ１３に移行し、アップロード設定要求である場合にはＳ１５に移行し、投稿要求である場合にはＳ１７に移行する。また、取得した要求がデータ保存要求である場合にはＳ１９に移行し、終了要求である場合にはＳ２１に移行する。
Ｓ１３では、データ管理部３４は、管理テーブルにおいて管理するデータ数Ｎ（データの範囲）を設定し、管理テーブルを初期化する。本実施形態では、データの範囲は予め設定された初期値を用いる。次にＳ１４では、アップロード条件基準設定部３３は、アップロード条件の基準を初期化する。アップロード条件基準の初期値は、予めサーバ装置３０に記憶されているものとする。
Ｓ１５では、アップロード条件設定部３１は、アップロード条件設定処理を行い、次いでＳ１６に移行して、アップロード条件設定処理において設定したアップロード条件を保存する。以下、Ｓ１５で実行するアップロード条件設定処理について、図８を参照しながら説明する。
【００２７】
（アップロード条件設定処理）
Ｓ１５１では、アップロード条件設定部３１は、データ管理部３４が管理する管理テーブルを取得し、Ｓ１５２に移行する。Ｓ１５２では、アップロード条件設定部３１は、図７のＳ１４において設定されたアップロード条件基準が複数ある場合に、その全てについて処理を行ったか否かを判定する。そして、全てについて処理を行ったと判定した場合にはアップロード条件設定処理を終了し、全てについて処理を行っていないと判定した場合にはＳ１５３に移行する。
Ｓ１５３では、アップロード条件設定部３１は、上記のＳ１４において設定されたアップロード条件基準を１つ取得する。次にＳ１５４において、アップロード条件設定部３１は、Ｓ１５３において取得したアップロード条件基準のタイプがタイプ１であるか否かを判定する。そして、タイプ１である場合にはＳ１５５に移行し、タイプ２である場合にはＳ１５８に移行する。なお、図８に示す処理においては、サーバ装置３０に設定されているアップロード条件基準はタイプ１及びタイプ２のいずれかであるとしている。
【００２８】
Ｓ１５５では、アップロード条件設定部３１は、Ｓ１５１において取得した管理テーブルを参照し、管理テーブル内のデータのうち、最も古い時刻Ｔ（Ｎ−１）を取得する。次にＳ１５６では、アップロード条件設定部３１は、アップロード条件の時刻条件を「最も古い時刻Ｔ（Ｎ−１）よりも時刻情報が新しい」と設定する。次にＳ１５７では、アップロード条件設定部３１は、アップロード条件の選択条件を「データ候補の中から最新データを１つ選択」と設定する。
また、Ｓ１５８では、アップロード条件設定部３１は、管理テーブル内のデータ数（データ範囲）Ｎを取得し、Ｓ１５９に移行する。Ｓ１５９では、アップロード条件設定部３１は、Ｓ１５１において取得した管理テーブルを参照し、管理テーブル内のデータのうち、最も新しい時刻Ｔ（０）を取得する。次にＳ１６０では、アップロード条件設定部３１は、アップロード条件の時刻条件を「最も新しい時刻Ｔ（０）よりも時刻情報が新しい」と設定する。次にＳ１６１では、アップロード条件設定部３１は、アップロード条件の選択条件を「データ候補の中で新しい方からデータをＮ個まで選択」と設定する。
【００２９】
Ｓ１６２では、アップロード条件設定部３１は、アップロード条件基準が複数存在するか否かを判定し、複数存在する場合にはＳ１６３に移行し、１つしか存在しない場合にはＳ１５２に移行する。Ｓ１６３では、アップロード条件設定部３１は、アップロード条件基準をもとにアップロード条件の優先度を設定し、Ｓ１５２に移行する。
図７に戻って、Ｓ１７では、アップロード条件設定部３１は、Ｓ１６において保存されたアップロード条件を取得し、Ｓ１８に移行する。Ｓ１８では、アップロード条件設定部３１は、投稿要求を送信してきたクライアント装置２０に対してアップロード条件を送信する。
Ｓ１９では、データ取得部３２は、クライアント装置２０から送信されたデータを取得し、保存する。次にＳ２０では、データ管理部３４は、Ｓ１９においてデータ取得部３２が取得したデータの時刻をもとに、管理テーブルで管理しているデータの時刻を更新する。また、このときデータ管理部３４は、アップロード条件設定部３１に対してアップロード条件設定要求を出力する。Ｓ２１では、サーバ装置３０は、所定の終了処理を実施して処理を終了する。
【００３０】
以下、アップロード条件が１つのみである場合の動作について説明する。
図９は、クライアント装置とサーバ装置との間の処理を示すシーケンス図である。この図９に示す例では、データ共有システム１０が、２台のクライアント装置２０（２０Ａ及び２０Ｂ）と、サーバ装置３０とから構成されているものとする。また、この図９に示す例では、サーバ装置３０のデータ範囲Ｎ＝５であり、アップロード条件は、タイプ１の１つのみであるとする。
管理テーブルの初期化状態において、クライアント装置２０Ａが、Ｓ１０１において撮像を行って画像データＡ１を生成すると（時刻ｔ１）、クライアント装置２０Ａは、Ｓ１０２において、時刻ｔ１を持つ画像データＡ１をサーバ装置３０に投稿する。すると、サーバ装置３０は、図７のＳ１２からＳ１９へ進み、画像データＡ１を保存する。同様に、クライアント装置２０ＡがＳ１０３において撮像を行い、画像データＡ２を生成すると（時刻ｔ２）、クライアント装置２０Ａは、Ｓ１０４において、時刻ｔ２を持つ画像データＡ２をサーバ装置３０に投稿する。このとき、サーバ装置３０は、画像データＡ２を保存する。
この画像データＡ２がサーバ装置３０へ投稿された時点では、サーバ装置３０内に記憶されたデータ４０は、画像データＡ１と画像データＡ２の２つであり、管理テーブル４１は画像データＡ１と画像データＡ２の時刻を管理する。
【００３１】
続いて、クライアント装置２０ＡがＳ１０５において撮像を行い、時刻ｔ３において画像データＡ３を生成した後、Ｓ１０６において通信断が発生したものとする。すると、Ｓ１０７では、クライアント装置２０Ａからサーバ装置３０への画像データＡ３の投稿が失敗する。そのため、クライアント装置２０Ａは、画像データＡ３を投稿せずに保持する。以後、クライアント装置２０Ａは、Ｓ１０８〜Ｓ１１２において、それぞれ撮像を行い、時刻ｔ４〜ｔ８を持つ画像データＡ４〜Ａ８を生成するが、リアルタイムでサーバ装置３０に送信することができない。
【００３２】
一方、クライアント装置２０Ｂは、時刻ｔ４と時刻ｔ５との間の時刻Ｔ１で、Ｓ１１３における撮像を行い、画像データＢ１を生成すると、Ｓ１１４において、時刻Ｔ１を持つ画像データＢ１をサーバ装置３０に投稿する。以後同様に、クライアント装置２０Ｂが、画像データＢ２〜Ｂ５を生成すると、クライアント装置２０Ｂは、画像データＢ２〜Ｂ５をサーバ装置３０へ投稿する。ここで、画像データＢ２の時刻Ｔ２は、時刻ｔ５と時刻ｔ６との間の時刻であり、画像データＢ３の時刻Ｔ３は、時刻ｔ６と時刻ｔ７との間の時刻である。また、画像データＢ４の時刻Ｔ４は、時刻ｔ７と時刻ｔ８との間の時刻であり、画像データＢ５の時刻Ｔ５は、時刻ｔ８よりも遅い時刻である。
画像データＢ５がサーバ装置３０に投稿された時点では、サーバ装置３０内に記憶されたデータ４０は、画像データＡ１，Ａ２及びＢ１〜Ｂ５の７つであり、管理テーブル４２は、７つの画像データのうち、最新の画像データＢ１〜Ｂ５の時刻を管理する。
【００３３】
また、このときサーバ装置３０は、図７のＳ１２からＳ１５へ進み、アップロード条件設定処理を行う。この図９に示す例では、アップロード条件はタイプ１の１つとしているため、図８のアップロード条件設定処理においては、Ｓ１５４からＳ１５５に進み、タイプ１のアップロード条件を設定する。つまり、Ｓ１５５では、サーバ装置３０は、図９の管理テーブル４２内のデータのうち、最も古い時刻Ｔ（Ｎ−１）＝Ｔ１を取得する。続いて、Ｓ１５６では、サーバ装置３０は、アップロード条件の時刻条件を「Ｔ１よりも新しい」と設定し、Ｓ１５７では、サーバ装置３０は、アップロード条件の選択条件を「最新データを１つ選択」と設定する。
【００３４】
ここで、Ｓ１２３において、クライアント装置２０Ａの通信状態が回復すると、クライアント装置２０Ａは、通信断の間に生成された画像データＡ４〜Ａ８を送信するために、Ｓ１２４において、サーバ装置３０に対して投稿要求を送信する。すると、サーバ装置３０は、図７のＳ１２からＳ１７へ進み、クライアント装置２０Ｂから画像データＢ５を取得したタイミングで設定したアップロード条件を取得する。そして、サーバ装置３０は、図９のＳ１２５において、アップロード条件をクライアント装置２０Ａに対して送信する。このときクライアント装置２０Ａに対して送信するアップロード条件は、「時刻Ｔ１よりも新しいデータのうち、最新データを１つ」である。
【００３５】
アップロード条件を受信したクライアント装置２０Ａは、図６のＳ４において、「時刻条件＝Ｔ１よりも新しい」を満たすデータ候補を選択する。このとき選択されるデータ候補は、画像データＡ５〜Ａ８である。次に図６のＳ５において、データ候補（Ａ５〜Ａ８）のうち、「選択条件＝最新データを１つ」を満たすデータを選択する。このとき選択されるデータは、画像データＡ５〜Ａ８のうち最も新しい画像データＡ８である。そのため、クライアント装置２０Ａは、図９のＳ１２６において、画像データＡ８をサーバ装置３０に送信する。
画像データＡ８を受信したサーバ装置３０は、画像データＡ８を保存すると共に、管理テーブルで管理する時刻を更新し、さらにアップロード条件を再設定する。画像データＡ８の時刻ｔ８は、画像データＢ４の時刻Ｔ４と画像データＢ５の時刻Ｔ５との間の時刻である。したがって、管理テーブル４３は、新しい順に、画像データＢ２，Ｂ３，Ｂ４，Ａ８，Ｂ５の時刻を管理する。このように、管理テーブル４３内で最も古い時刻Ｔ（Ｎ−１）は時刻Ｔ２となる。そのため、サーバ装置３０は、アップロード条件の時刻条件を「Ｔ２よりも新しい」に更新し、アップロード条件の選択条件を「最新データを１つ選択」に設定する。
【００３６】
クライアント装置２０Ａは、まだ送信すべきデータ（Ａ４〜Ａ７）が存在するため、Ｓ１２７において、再度投稿要求をサーバ装置３０へ送信する。すると、サーバ装置３０は、Ｓ１２８において、クライアント装置２０Ａに対して、「時刻Ｔ２よりも新しいデータのうち、最新データを１つ」というアップロード条件を送信する。
アップロード条件を受信したクライアント装置２０Ａは、先ず「時刻条件＝Ｔ２よりも新しい」を満たすデータ候補を選択する。このとき選択されるデータ候補は、画像データＡ６，Ａ７である。次に、クライアント装置２０Ａは、データ候補（Ａ６，Ａ７）のうち、「選択条件＝最新データを１つ」を満たすデータを選択する。このとき選択されるデータは、画像データ画像データＡ７である。そのため、クライアント装置２０Ａは、Ｓ１２９において、画像データＡ７をサーバ装置３０に送信する。
【００３７】
画像データＡ７を受信したサーバ装置３０は、画像データＡ７を保存すると共に、管理テーブルで管理する時刻を更新し、さらにアップロード条件を再設定する。画像データＡ７の時刻ｔ７は、画像データＢ３の時刻Ｔ３と画像データＢ４の時刻Ｔ４との間の時刻である。したがって、管理テーブル４４は、新しい順に、画像データＢ３，Ａ７，Ｂ４，Ａ８，Ｂ５の時刻を管理する。このように、管理テーブル４３内で最も古い時刻Ｔ（Ｎ−１）は時刻Ｔ３となる。そのため、サーバ装置３０は、アップロード条件の時刻条件を「Ｔ３よりも新しい」に更新し、アップロード条件の選択条件を「最新データを１つ選択」に設定する。
【００３８】
さらに、クライアント装置２０Ａは、まだ送信すべきデータ（Ａ４〜Ａ６）が存在するため、Ｓ１３０において、再度投稿要求をサーバ装置３０へ送信する。すると、サーバ装置３０は、Ｓ１３１において、クライアント装置２０Ａに対して、「時刻Ｔ３よりも新しいデータのうち、最新データを１つ」というアップロード条件を送信する。
アップロード条件を受信したクライアント装置２０Ａは、先ず「時刻条件＝Ｔ３よりも新しい」を満たすデータ候補を選択する。しかしながら、画像データＡ４〜Ａ６のうち、時刻Ｔ３よりも新しい時刻を持つデータは存在しない。そのため、クライアント装置２０Ａは、Ｓ１３２において該当データなしと判断し、投稿を終了する。
【００３９】
このように、サーバ装置３０からのアップロード条件に応じて、クライアント装置２０Ａから送信するデータを決定する。また、アップロード条件は、管理テーブルによる管理対象となり得るデータを、サーバ装置３０へ送信可能なデータとするように設定する。したがって、図９に示す例では、画像データＡ７及びＡ８を適切にアップロードすることができる。また、アップロード条件を、管理テーブル上のデータの時刻のうち最も古い時刻よりも時刻が新しいデータのうち、時刻が最も新しいデータとする。したがって、画像データＡ７及びＡ８のうち、新しい方の画像データＡ８を優先的にアップロードすることができる。
【００４０】
このように、サーバ装置３０が保持するデータを効率良く最新のデータとすることができる。つまり、すぐに必要とされる可能性の高いデータを優先的にアップロードし、後でアップロードしても問題のないデータは後でアップロードすることができる。さらに、未送信のデータであっても、管理テーブルによる管理対象とならないデータはアップロードしないようにすることができる。つまり、図９に示す例では、画像データＡ３〜Ａ６はアップロードしない。したがって、不要なアップロード処理を削減することができ、よりアップロード処理を効率化することができる。その結果、クライアント装置２０はリアルタイムの画像表示を効率化することができる。
【００４１】
以下、アップロード条件が２つである場合の動作について説明する。
図１０は、クライアント装置とサーバ装置との間の処理を示すシーケンス図である。この図１０に示す例では、図９に示す例と同様に、データ共有システム１０が２台のクライアント装置２０（２０Ａ及び２０Ｂ）と、サーバ装置３０とから構成されているものとする。また、この図１０に示す例では、サーバ装置３０のデータ範囲Ｎ＝５であり、アップロード条件は、タイプ１とタイプ２の２つであるとする。
この図１０に示す例において、Ｓ２０１〜Ｓ２０９、Ｓ２１３〜Ｓ２１７の処理は、図９のＳ１０１〜１０９、Ｓ１１３〜Ｓ１１７の処理と同様である。
画像データＢ３がサーバ装置３０に投稿された時点では、サーバ装置３０内に記憶されたデータ４０は、画像データＡ１，Ａ２及びＢ１〜Ｂ３の５つであり、管理テーブル４６は、これら５つの画像データＡ１，Ａ２，Ｂ１〜Ｂ３の時刻を管理する。
【００４２】
また、このときサーバ装置３０は、図７のＳ１２からＳ１５へ進み、アップロード条件設定処理を行う。この図１０に示す例では、アップロード条件はタイプ１とタイプ２の２つとしているため、図８のアップロード条件設定処理においては、タイプ１とタイプ２の２つのアップロード条件を設定する。管理テーブル４２内のデータのうち、最も古い時刻Ｔ（Ｎ−１）は時刻ｔ１であり、最も新しい時刻Ｔ（０）は時刻Ｔ３である。したがって、サーバ装置３０は、タイプ１のアップロード条件１として、「時刻条件＝ｔ１よりも新しい、選択条件＝最新データを１つ選択」と設定する。また、サーバ装置３０は、タイプ２のアップロード条件２として、「時刻条件＝Ｔ３よりも新しい、選択条件＝新しい方から５つまで選択」と設定する。また、サーバ装置３０は、アップロード条件１及びアップロード条件２について、優先度を設定する。図１０に示す例では、アップロード条件２の優先度を「１（優先度：高）」とし、アップロード条件１の優先度を「２（優先度：低）」とする。
【００４３】
クライアント装置２０Ａは、時刻Ｔ３の後、Ｓ２１０〜Ｓ２１２において画像データＡ６〜Ａ８を生成する。画像データＡ６〜Ａ８の生成中も通信断の状態であるため、クライアント装置２０Ａは、画像データＡ６〜Ａ８をリアルタイムでサーバ装置３０に送信することはできない。
この状態からＳ２１９において、クライアント装置２０Ａの通信状態が回復すると、クライアント装置２０Ａは、通信断の間に生成された画像データＡ４〜Ａ８を送信するために、Ｓ２２０において、サーバ装置３０に対して投稿要求を送信する。すると、サーバ装置３０は、Ｓ２２１において、クライアント装置２０Ｂから画像データＢ５を取得したタイミングで設定したアップロード条件を、クライアント装置２０Ａに対して送信する。つまり、サーバ装置３０は、クライアント装置２０Ａに対して「時刻条件＝時刻ｔ１よりも新しい、選択条件＝最新データを１つ、優先度＝２」というアップロード条件１を送信する。また同時に、サーバ装置３０は、クライアント装置２０Ａに対して「時刻条件＝時刻Ｔ３よりも新しい、選択条件＝新しい方から５つ、優先度＝１」というアップロード条件２を送信する。
【００４４】
２つのアップロード条件を受信したクライアント装置２０Ａは、先ず、優先度の高いアップロード条件２の「時刻条件＝Ｔ３よりも新しい」を満たすデータ候補を選択する。このとき選択されるデータ候補は、画像データＡ６〜Ａ８である。次に、クライアント装置２０Ａは、データ候補（Ａ６〜Ａ８）のうち、アップロード条件２の「選択条件＝新しい方から５つ」を満たすデータを選択する。このとき選択されるデータは、画像データ画像データＡ６〜Ａ８である。そのため、クライアント装置２０Ａは、Ｓ２２２において、画像データＡ６〜Ａ８をサーバ装置３０に送信する。
【００４５】
画像データＡ６〜Ａ８を受信したサーバ装置３０は、画像データＡ６〜Ａ８を保存すると共に、管理テーブルで管理する時刻を更新し、さらにアップロード条件を再設定する。画像データＡ６〜Ａ８の時刻ｔ６〜ｔ８は、いずれも画像データＢ３の時刻Ｔ３よりも早い時刻である。したがって、管理テーブル４７は、新しい順に、画像データＢ２，Ｂ３，Ａ６，Ａ７，Ａ８の時刻を管理する。このように、管理テーブル４７内で最も古い時刻Ｔ（Ｎ−１）は時刻Ｔ２となり、管理テーブル４７内で最も新しい時刻Ｔ（０）は時刻ｔ８となる。そのため、サーバ装置３０は、アップロード条件１の時刻条件を「Ｔ２よりも新しい」に更新し、アップロード条件２の時刻条件を「ｔ８よりも新しい」に更新する。
【００４６】
クライアント装置２０Ａは、まだ送信すべきデータ（Ａ４，Ａ５）が存在するため、Ｓ２２３において、再度投稿要求をサーバ装置３０へ送信する。すると、サーバ装置３０は、Ｓ２２４において、クライアント装置２０Ａに対してアップロード条件を送信する。つまり、サーバ装置３０は、クライアント装置２０Ａに対して「時刻条件＝時刻Ｔ２よりも新しい、選択条件＝最新データを１つ、優先度＝２」というアップロード条件１を送信する。また同時に、サーバ装置３０は、クライアント装置２０Ａに対して「時刻条件＝時刻ｔ８よりも新しい、選択条件＝新しい方から５つ、優先度＝１」というアップロード条件２を送信する。
【００４７】
アップロード条件を受信したクライアント装置２０Ａは、先ず、優先度の高い方のアップロード条件２の「時刻条件＝ｔ８よりも新しい」を満たすデータ候補を選択する。しかしながら、画像データＡ４，Ａ５のうち、時刻ｔ８よりも新しい時刻を持つデータは存在しない。そのため、クライアント装置２０Ａは、優先度の低い方のアップロード条件１の「時刻条件＝Ｔ２よりも新しい」を満たすデータ候補を選択する。しかしながら、画像データＡ４，Ａ５のうち、時刻Ｔ２よりも新しい時刻を持つデータは存在しない。そのため、クライアント装置２０Ａは、Ｓ２２５において該当データなしと判断し、投稿を終了する。
このように、サーバ装置３０からのアップロード条件に優先度を付けて複数与えることにより、より新しいデータをまとめて早く送信することができる。したがって、サーバ装置３０が保持するデータを効率良く最新のデータにすることができる。
【００４８】
以上のように、本実施形態では、サーバ装置３０は、画像の撮像時刻や文字の入力時刻といったデータの作成時刻に関する時刻情報を有するデータを１以上のクライアント装置２０から受信し、保持する。また、サーバ装置３０は、クライアント装置２０から受信したデータのうち、時刻情報に基づき所定数のデータを、管理テーブルを用いて管理する。具体的には、サーバ装置３０は、クライアント装置から受信したデータを、時刻情報をもとに時系列にソートし、ソートした時系列データの中の一定範囲を管理対象とするデータの範囲とする。
【００４９】
さらに、サーバ装置３０は、管理テーブルにおいて管理するデータの時刻情報に基づいて、クライアント装置２０からサーバ装置３０へ送信可能なデータに関する条件（アップロード条件）を設定する。そして、サーバ装置３０は、クライアント装置２０からデータの投稿要求（アップロード条件の送信要求）を受信すると、上記の設定したアップロード条件を、投稿要求の応答としてクライアント装置２０に送信する。クライアント装置２０は、サーバ装置３０からアップロード条件を受信すると、受信したアップロード条件を満たすデータを選択し、選択したデータを時刻情報とともにサーバ装置３０に送信（投稿）する。
このように、サーバ装置３０は、管理テーブルによって管理しているデータの時刻情報に基づいてアップロード条件を設定し、クライアント装置２０は、アップロード条件を満たすデータをサーバ装置３０へ送信する。したがって、すぐに必要とされる可能性の高い時刻情報を有するデータを優先的にアップロードし、後でアップロードしても問題のないデータは後でアップロードすることができる。このように、アップロード処理を効率化することができる。
【００５０】
また、サーバ装置３０は、クライアント装置２０からサーバ装置３０へ送信した結果、管理テーブルの管理対象となる時刻情報を有するデータを、クライアント装置２０からサーバ装置３０へ送信可能なデータとするようなアップロード条件を設定する。したがって、サーバ装置３０が管理テーブルにて保持する所定期間のデータ群を効率的に最新の状態とすることができる。また、管理テーブルによる管理対象外となるデータはアップロードしないようにすることができる。あるクライアント装置２０が保持するデータの中で最新のデータであっても、サーバ装置３０の管理テーブルが管理するデータよりも古いデータである場合がある。この場合、このクライアント装置２０からサーバ装置３０へデータをアップロードしても、管理テーブルによる管理対象とはならず、アップロード処理が無駄になってしまうおそれがある。したがって、管理テーブルの管理対象となるデータをクライアント装置２０からサーバ装置３０へ送信可能なデータとすることで、不要なアップロード処理を確実に削減することができる。
【００５１】
さらに、サーバ装置３０は、アップロード条件として、時刻条件（第１条件）と選択条件（第２条件）とを設定する。ここで、第１条件は、クライアント装置２０からサーバ装置３０への送信を可能とするデータの時刻情報に関するである。また、第２条件は、第１条件を満たすデータの中からクライアント装置２０からサーバ装置３０へ送信するデータを選択するための条件である。これにより、どのような時刻情報を持つデータを、同時にいくつアップロード可能であるかを適切に設定することができる。
サーバ装置３０が、クライアント装置２０から受信したデータのうち、時刻が新しい順に所定数のデータを管理する場合、第１条件は、管理テーブルが管理するデータの時刻のうち、最も古い時刻よりも時刻が新しいデータとすることができる。この場合、第２条件を、上記の第１条件を満たすデータのうち、時刻が最も新しいデータとする。これにより、管理テーブルの管理対象となるデータを確実に１つアップロードすることができる。また、最新データを１つアップロードするため、リアルタイムでの画像閲覧において「新しいデータをできるだけ早く確認したい」という閲覧ユーザの要求を満たすことができる。
【００５２】
なお、第１条件が、管理テーブルが管理するデータの時刻のうち、最も古い時刻よりも時刻が新しいデータとした場合、第２条件を、第１条件を満たすデータのうち、時刻が新しい順に、上記の所定数までのデータとしてもよい。これにより、複数のデータをまとめてアップロードすることができる。ただし、この場合、アップロードした複数のデータの中から、管理テーブルの管理対象外となるデータが出るおそれがある。したがって、第２条件を、第１条件を満たすデータのうち、時刻が最も新しいデータとすることで、不要なアップロード処理を確実に削減することができる。
サーバ装置３０が、クライアント装置２０から受信したデータのうち、時刻が新しい順に所定数のデータを管理する場合、第１条件は、管理テーブルが管理するデータの時刻のうち、最も新しい時刻よりも時刻が新しいデータとすることもできる。この場合、第２条件を、上記の第１条件を満たすデータのうち、時刻が新しい順に、上記の所定数までのデータとする。これにより、確実に管理テーブルの管理対象となるデータについては、複数まとめてアップロードすることができる。したがって、より効率の良いアップロード処理が可能となる。
【００５３】
また、サーバ装置３０は、異なる複数のアップロード条件を設定する場合、各アップロード条件を優先度とともに設定する。これにより、アップロード可能なデータを重要度の高いデータからアップロードすることができる。したがって、より効率の良いアップロード処理が可能となる。
さらに、クライアント装置２０は、時刻情報を有するデータを生成したとき、生成したデータをサーバ装置３０へ送信するための投稿要求（アップロード条件の送信要求）をサーバ装置３０へ送信する。そのため、データをリアルタイムでサーバ装置３０へアップロードすることができる。
【００５４】
また、クライアント装置２０は、サーバ装置３０との通信状態を確認し、サーバ装置３０との通信が不可能な状態から通信が可能な状態へ回復したことを確認したとき、投稿要求（アップロード条件の送信要求）をサーバ装置３０へ送信する。そのため、通信が不可能である期間に生成したデータを迅速にサーバ装置３０へアップロードすることができる。
また、サーバ装置３０は、管理テーブルで管理するデータを１以上のクライアント装置２０で閲覧可能に公開するので、どのクライアント装置２０から投稿されたかにかかわらず、複数のクライアント装置２０でデータを共有することができる。したがって、イベントで撮像された画像を遠隔地からリアルタイムで確認することが可能となり、イベントに参加できなかったユーザによって大きなメリットとなる。
【００５５】
（第二の実施形態）
次に、本発明の第二の実施形態について説明する。
上述した第一の実施形態では、サーバ装置３０が管理する管理テーブル内のデータ数Ｎ（データ範囲）は固定値とした。これに対して、第二の実施形態では、管理テーブル内のデータ数Ｎを変更可能に構成した。具体的には、サーバ装置３０に接続する複数のクライアント装置２０がデータを表示する機能を有する場合、各クライアント装置２０の表示能力に応じて管理テーブル内のデータ数Ｎを変更する。
図１１は、第二の実施形態におけるデータ共有システム１０の一例を示す機能構成図である。本実施形態におけるデータ共有システム１０は、クライアント装置２０に、表示制御部２７と表示情報送信部２８とを追加し、サーバ装置３０に、データ範囲更新部３５を追加したことを除いては、図１に示すデータ共有システム１０と同様である。したがって、以下、構成の異なる部分を中心に説明する。
【００５６】
表示制御部２７は、クライアント装置２０で生成された、あるいは外部装置より取得したデータを表示部（モニタ）に表示することができる。つまり、表示制御部２７は、サーバ装置３０によって公開されたデータを表示部（モニタ）に表示可能である。表示情報送信部２８は、表示部による表示能力に関する情報（表示情報）をサーバ装置３０へ送信する。具体的には、クライアント装置２０の表示部で同時に表示可能なデータ数を示す情報を、表示情報としてサーバ装置３０へ送信する。本実施形態では、表示情報送信部２８は、クライアント装置２０がサーバ装置３０に接続されたタイミングで、サーバ装置３０への接続要求と共に表示情報を送信する。なお、接続要求及び表示情報の送信タイミングはこれに限定されない。
データ範囲更新部３５は、クライアント装置２０から送信された表示情報をもとに、サーバ装置３０が管理対象とするデータの範囲、具体的には、サーバ装置３０が管理する管理テーブルのデータ数Ｎを更新する。
【００５７】
図１２は、サーバ装置３０における全体処理を示すフローチャートである。この図１２の処理は、図７の処理と同様に、サーバ装置３０のＣＰＵ１０１が、必要なプログラムを読み出して実行することにより、実現される。ただし、図１２の処理の一部または全部が、専用のハードウェアにより実現されてもよい。図１２の処理は、サーバ装置３０の電源を投入したときに開始される。ただし、図１２の処理の開始タイミングは、上記のタイミングに限らない。
図１２の処理は、図７の処理にＳ３１及びＳ３２が追加されていることを除いては、図７の処理と同様である。したがって、以下、処理の異なる部分を中心に説明する。
サーバ装置３０は、Ｓ１２においてクライアント装置２０からの要求の種類を判定した結果、接続要求であると判定した場合に、Ｓ３１に移行する。Ｓ３１では、データ範囲更新部３５は、クライアント装置２０から送信される接続要求に含まれる表示情報を取得し、Ｓ３２に移行する。Ｓ３２では、データ範囲更新部３５は、Ｓ３１において取得した表示情報をもとに、図１３に示すデータ範囲更新処理を行い、管理テーブルのデータ数Ｎ（データ範囲）を更新する。
【００５８】
データ範囲更新処理では、図１３に示すように、先ずＳ３２１において、データ範囲更新部３５は、図１２のＳ３１において取得した表示情報をもとに、クライアント装置２０が表示可能なデータ数Ｎａを取得する。次にＳ３２２において、データ範囲更新部３５は、現在のサーバ装置３０における管理テーブルのデータ数Ｎを取得する。次にＳ３２３において、データ範囲更新部３５は、クライアント装置２０が表示可能なデータ数Ｎａが、サーバ装置３０の管理テーブルのデータ数Ｎよりも大きいか否かを判定する。そして、データ数Ｎａの方が大きい場合にはＳ３２４に移行し、サーバ装置３０の管理テーブルのデータ数Ｎ＝Ｎａとして更新する。一方、データ数Ｎａとデータ数Ｎとの比較の結果、データ数Ｎの方が大きいと判断した場合には、データ数Ｎの更新は行わない。以上の処理により、サーバ装置３０に接続される１以上のクライアント装置２０のうち、表示能力が最も高いクライアント装置２０が表示可能なデータ数Ｎａが、管理テーブルのデータ数Ｎとなる。
【００５９】
このように、サーバ装置３０は、サーバ装置３０によって公開されたデータを表示するクライアント装置２０の表示部の表示能力に関する情報（表示情報）を取得し、取得した情報に基づいて管理テーブルを設定する。具体的には、上記表示情報に基づいて、管理テーブルによる管理の対象とするデータの範囲を設定する。このように、サーバ装置３０は、クライアント装置２０において必要とされるデータの範囲に応じて、管理テーブルを動的に変更することができる。したがって、サーバ装置３０が保持するデータのうち、クライアント装置２０で必要とされる範囲のデータを、効率的に最新の状態にすることができる。
【００６０】
上記各実施形態においては、サーバ装置３０は、クライアント装置２０からの投稿要求の応答としてアップロード条件を送信する場合について説明した。しかしながら、サーバ装置３０は、クライアント装置２０からの投稿要求の応答として、アップロード条件の設定に必要な情報（アップロード条件基準や管理テーブルの情報）を送信してもよい。この場合、クライアント装置２０においてアップロード条件を設定し、アップロード条件を満たすデータを投稿するようにする。また、アップロード条件の設定処理は、サーバ装置３０及びクライアント装置２０とそれぞれ通信可能に接続された外部の情報処理装置で行ってもよい。
【００６１】
さらに、上記各実施形態においては、サーバ装置３０がアップロード条件設定部３１及びアップロード条件基準設定部３３を備える場合について説明したが、これに限定されるものではない。アップロード条件設定部３１及びアップロード条件基準設定部３３は、クライアント装置２０が備えてもよいし、サーバ装置３０及びクライアント装置２０に接続された別の情報処理装置が備えてもよい。このように、アップロード条件の設定処理は、クライアント装置２０において行ってもよいし、サーバ装置３０及びクライアント装置２０とは別の情報処理装置において行ってもよい。サーバ装置３０及びクライアント装置２０とは別の情報処理装置がアップロード条件の設定処理を行う場合、情報処理装置は、クライアント装置２０からサーバ装置３０への投稿要求を受け、サーバ装置３０から管理テーブル上のデータの時刻情報を取得する。そして、情報処理装置は、取得した時刻情報に基づいてアップロード条件を設定し、設定したアップロード条件を、サーバ装置３０へのデータの送信を要求しているクライアント装置２０へ通知する。この場合にも、上述した各実施形態と同様の効果が得られる。
【００６２】
また、上記各実施形態において、サーバ装置３０からクライアント装置２０に送られるアップロード条件は、サーバ装置３０に設定されているアップロード条件基準に従って、複数設定可能であることを示した。このアップロード条件基準は、サーバ装置３０において初期設定されているとしたが、この限りではない。アップロード条件基準は、クライアント装置２０の接続状況やサーバ装置３０の負荷状態などにより、データ共有システム１０の処理中に変更・追加・削除することが可能である。
また、上記各実施形態においては、アップロード条件に優先度を付与できることを示した。この優先度は、サーバ装置３０において、アップロード条件基準として初期設定されているとしたが、この限りではない。アップロード条件の優先度についても、クライアント装置２０の接続状況やサーバ装置３０の負荷状態などにより、データ共有システム１０の処理中に変更することが可能である。
【００６３】
さらに、上記第二の実施形態においては、管理テーブルのデータ範囲を、サーバ装置３０に接続するクライアント装置２０の表示情報によって更新する例を示した。また、表示機能を持ったクライアント装置２０がサーバ装置３０に対して接続要求を行うタイミングで、管理テーブルのデータ範囲の更新を行うとした。しかしながら、データ範囲の更新方法はこれらに限定されない。管理テーブルのデータ範囲の更新のタイミングとして、これまで接続していたクライント装置２０が接続を解除するタイミングを追加してもよい。例えば、これまで接続していたクライアント装置２０Ａの表示可能なデータ数Ｎａ＝５であったが、このクライアント装置２０Ａがサーバとの接続を切断した場合には、サーバの管理テーブルのデータ範囲を更新することができる。この場合、次に表示範囲が大きいクライアント装置２０Ｂの表示可能なデータ数Ｎａ＝３を、新たな管理テーブルのデータ範囲としてもよい。
【００６４】
また、上記第二の実施形態においては、表示機能を持ったクライアント装置２０が複数接続されている場合、表示できるデータ数が最も大きいクライアント装置２０のデータ数を、サーバの管理テーブルのデータ数とする例を示した。しかしながら、この限りではない。例えば、表示できるデータ数から管理テーブルのデータ範囲を設定するのではなく、各データの表示解像度から、管理テーブルのデータ範囲を決定してもよい。
また、上記各実施形態においては、サーバ装置３０がデータ共有サービスを提供する場合について説明したが、必ずしも複数のクライアント装置２０からデータが閲覧可能なように公開する必要はない。つまり、複数のクライアント装置２０から送信されたデータのうち、時刻情報に基づき所定数のデータ（作成時刻が所定期間内であるデータ）を管理するシステムであれば適用可能である。
【００６５】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体（または記録媒体）を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６６】
１０…データ共有システム、２０…クライアント装置、２１…データ生成部、２２…データ保管部、２３…データ検知部、２４…アップロード条件取得部、２５…データ選択部、２６…データ送信部、２７…表示制御部、２８…表示情報送信部、３０…サーバ装置、３１…アップロード条件設定部、３２…データ取得部、３３…アップロード条件基準設定部、３４…データ管理部、３５…データ範囲更新部
【図１】
2017054258.tif 000003
【図２】
2017054258.tif 000004
【図３】
2017054258.tif 000005
【図４】
2017054258.tif 000006
【図５】
2017054258.tif 000007
【図６】
2017054258.tif 000008
【図７】
2017054258.tif 000009
【図８】
2017054258.tif 000010
【図９】
2017054258.tif 000011
【図１０】
2017054258.tif 000012
【図１１】
2017054258.tif 000013
【図１２】
2017054258.tif 000014
【図１３】
2017054258.tif 000015