先ず、本発明の概要について説明する。図1は、本発明の原理を説明するための端末キャッシュ管理サーバ(以下、データ管理サーバという。)を示す図である。データ管理サーバ1は、携帯端末とネットワークを介して接続され、携帯端末のキャッシュの状態を管理可能に構成される。
このデータ管理サーバ1は、データ管理ソフトウェア11とデータベース12とを有する。データ管理ソフトウェア11は、携帯端末と通信する通信部111と、携帯端末からユーザデータのアクセスに関する要求を受け付けるデータアクセス管理部112と、携帯端末のキャッシュ状態を管理するキャッシュ状態管理部115を有する。データベース12は、携帯端末で使用するユーザデータを格納するユーザデータテーブル123と、携帯端末毎にキャッシュ状態を管理するキャッシュ状態管理テーブル124とを有する。
このデータ管理サーバ1は、携帯端末からユーザデータのアクセスに関する要求を受け付けとり、キャッシュ状態管理テーブル124を参照し、携帯端末のキャッシュのユーザデータを最新のユーザデータに更新する必要があるか否かのチェックをする。そして、最新のユーザデータに更新する必要がある場合は、携帯端末のキャッシュデータを最新の状態に更新するべく、データアクセス管理部112がユーザデータテーブル123から読み出したユーザデータを、通信部111を介して携帯端末に送信する。以上により、データ管理サーバ1のキャッシュ状態管理テーブル124には、携帯端末の最新のキャッシュ状態が格納されることとなる。
以下、本発明を適用した具体的な実施例について、図面を参照しながら詳細に説明する。この実施例は、本発明を、携帯端末でキャッシュしているユーザデータの状態をサーバ側で管理できるデータ管理サーバに適用したものである。
本実施例においては、上述の構成を有するので、メールアドレス、スケジュール等のユーザデータ(項目)が携帯端末にキャッシュされているかどうかをデータ管理サーバ側で把握することが可能になり、ある携帯端末によるユーザデータの変更内容を、該当データをキャッシュしている同一ユーザが使用する他の携帯端末に自動的に反映することが可能となる。また、サーバ側の判断でユーザデータを携帯端末のキャッシュに格納させることも可能となる。
[第1の実施例]
図2は、本発明の第1の実施例にかかる端末キャッシュ状態管理システムを示す図である。図2を参照すると端末キャッシュ状態管理システム100は、データ管理サーバ1と、同一ユーザが使用する携帯端末2及び携帯端末3とから構成されている。データ管理サーバ1、携帯端末2及び携帯端末3はインターネットなどの通信回線4を介して接続され通信を行う。
データ管理サーバ1は、データ管理ソフトウェア11と、データベース12とを含む。
携帯端末2は、パケット通信などの通信機能を有していてインターネットなどの通信回線4に接続可能な携帯電話等であり、データ利用ソフトウェア21と、データアクセスソフトウェア22と、データアクセスソフトウェア22が利用可能なストレージ23とを含む。
携帯端末3は、携帯端末2と同一の構成であり、パケット通信などの通信機能を有していてインターネットなどの通信回線4に接続可能な携帯電話等であり、データ利用ソフトウェア31と、データアクセスソフトウェア32と、データアクセスソフトウェア32が利用可能なストレージ33とを含む。
図3は、データ管理サーバを示すブロック図である。図3を参照するとデータ管理ソフトウェア11は通信部111と、データアクセス管理部112と、データ参照部113と、データ変更部114と、キャッシュ状態管理部115と、プッシュ配信要求部116とを含む。
データベース12は、ユーザ情報テーブル121と、端末情報テーブル122と、ユーザデータテーブル123と、キャッシュ状態管理テーブル124とを含む。ユーザ情報テーブル121は、ユーザ毎にユーザIDやパスワード等のユーザ情報を管理する。ユーザデータには、項目ID、ユーザデータ種別が対応づけられる。項目IDは、個々のメールアドレスや、個々のスケジュールなどのユーザデータ毎にユーザデータを識別するためのIDである。ユーザデータ種別は、ユーザデータの種類を示し、メールアドレスやスケジュールなどが該当する。端末情報テーブル122は、ユーザを識別するユーザID及び同一ユーザが使用する1以上の携帯端末を識別する端末ID(以下、紐付け情報ともいう。)を管理する。ユーザデータテーブル123は、携帯端末が使用するユーザデータを、項目IDをキーとして格納する。キャッシュ状態管理テーブル124は、前述のユーザデータの携帯端末でのキャッシュ状態を管理する。
キャッシュ状態管理テーブル124には、同期済/未登録/未更新/未削除/削除/キャッシュ削除/プッシュ配信のいずれかの状態が記録されている。同期済は、携帯端末のキャッシュに最新のデータが格納されていることを示す。未登録は、携帯端末側にユーザデータが登録されていない状態であることを示す。未更新は、携帯端末のキャッシュのユーザデータがまだ更新されていない状態を示す。未削除は、データ管理サーバ1上では削除されているが、携帯端末のキャッシュにデータが残っている状態を示す。削除は、携帯端末のキャッシュからユーザデータが削除されている状態を示す。キャッシュ削除は、データ管理サーバ1上にはデータがあるが、例えばメモリ不足など携帯端末側の事情で携帯端末のキャッシュからデータが削除された状態を示す。プッシュ配信は、データ管理サーバ1側からデータを送信したい状態であることを示す。
なお、ユーザデータテーブル123とキャッシュ状態管理テーブル124はアドレスデータやスケジュールデータ等のユーザデータ種別毎に別々に用意するものであるが、キャッシュに関する処理は共通のものを使用する。図3においてユーザデータテーブル123とキャッシュ状態管理テーブル124は1セットしか記載していないが、ユーザデータ種別が複数であれば複数のセットが存在する。
図4は、携帯端末を示すブロック図である。図4を参照するとデータ利用ソフトウェア21は、アドレス帳やスケジューラ等のアプリケーションであり、データアクセスソフトウェア22を介してサーバで管理しているユーザデータにアクセスする。データアクセスソフトウェア22は、データアクセス部221と、サーバ通信部222と、キャッシュ管理部223とを含む。
ストレージ23は、ユーザ情報231と、ユーザデータキャッシュ232とを含む。ユーザ情報231は、ユーザIDや認証に使用するパスワードや端末IDを格納する。ユーザデータキャッシュ232は、サーバから取得したユーザデータをキャッシュする。なお、ユーザデータキャッシュ232はアドレスデータやスケジュールデータ等のユーザデータ種別毎に別々に用意するものであるが、キャッシュに関する処理は共通のものを使用する。図4においてユーザデータキャッシュ232は1つしか記載していないが、ユーザデータ種別が複数であれば複数のユーザデータキャッシュが存在する。図5は、携帯端末3を示すブロック図である。携帯端末3の構成は、携帯端末2と同一の構成である。
データ管理ソフトウェア11の各ブロックはそれぞれ概略つぎのように動作する。通信部111は、携帯端末2、3のデータアクセスソフトウェア22、32との通信に関する処理を行う。データアクセスソフトウェア22、32からメッセージを受信した場合、メッセージからユーザデータのアクセスに関する要求を取り出してデータアクセス管理部112に渡す。また、要求に対する応答をデータアクセス管理部112から受け取り送信元の携帯端末のデータアクセスソフトウェアに返信する。また、通信部111はメッセージに含まれるユーザ情報とデータベース12のユーザ情報テーブル121を使用して認証処理を行う。認証処理の方法に関しては、APサーバ(アプリケーションサーバ)で提供する既知の認証機能の利用や独自ソフトウェアの実装など特に手段を問わない。また、通信部111はメッセージに含まれるユーザ情報、端末ID及びデータベース12の端末情報テーブル122を使用してユーザIDと端末IDからなる紐付け情報の登録チェックも行う。
データアクセス管理部112は、通信部111から渡された要求から端末IDとユーザIDを取得しそれらをキーとしてデータベース12のキャッシュ状態管理テーブル124の検索を行い、同期が必要(最新のデータに更新が必要)なユーザデータが存在するかチェックする。また、受信した要求がデータ参照要求の場合はデータ参照部113に、データ変更要求、データ同期開始要求、及びデータ同期応答の場合はデータ変更部114に振り分ける。それ以外の要求の場合、その内容に基づいてデータ管理ソフトウェア11内のデータアクセスに関係のない他の手段(図示せず)に振り分ける。呼び出したブロックの処理が完了したら、処理結果から応答を生成して通信部111に返す。なお、上述したように、データアクセス管理部112がユーザデータテーブル123にアクセスしてデータを登録、更新又は削除するようにしてもよいが、本実施例のように、データ参照部113及びデータ変更部114を設けてユーザデータテーブル123にアクセスするようにしてもよい。
データ参照部113は、データ参照要求から取得したユーザデータ種別及び項目ID又は検索条件を使用してユーザデータテーブル123を検索してユーザデータを取得する。そして端末ID、ユーザID、ユーザデータ種別、項目ID及びアクセス種別をセットにしてキャッシュ状態管理部115に渡してキャッシュ状態管理テーブル124の該当レコードのキャッシュ状態の更新を依頼する。アクセス種別には参照(読込や検索)/登録/更新/削除/キャッシュ削除があり、データ参照部113は、データ参照要求からアクセス種別=参照を取得する。アクセス種別は、携帯端末がデータ管理サーバに対してどのような目的で要求を送信しているかを示し、キャッシュ状態管理部115の更新判断に使用される。キャッシュ状態管理部115の処理が終わったら、データアクセス管理部112に取得したユーザデータを返す。
データ変更部114は、データ変更要求からを受信した場合、キャッシュ状態管理部115に衝突発生有無の問合せを行い、衝突が発生していなければデータ変更要求の内容に応じてユーザデータテーブル123を変更し、キャッシュ状態管理テーブル124のキャッシュ状態の更新をキャッシュ状態管理部115に依頼する。衝突とは、携帯端末側2のユーザデータが、データ管理サーバ1のユーザデータテーブル123のユーザデータより古くなった状態で、携帯端末2において、該当ユーザデータの更新や削除などの変更が行われた場合を示す。また、データ変更部114は、データ同期開始要求を受信した場合、キャッシュ状態管理部115に同期が必要なユーザデータ問合せを行い、渡された項目ID及びアクセス種別に応じて同期情報を生成する。また、データ変更部114は、データ同期応答を受信した場合、キャッシュ状態管理部115にデータ同期応答の内容に応じてキャッシュ状態管理テーブル124のキャッシュ状態の変更をキャッシュ状態管理部115に依頼する。
キャッシュ状態管理部115は、データ参照部113やデータ変更部114から同期が必要なデータの有無を問い合わせされた場合、渡された端末IDとユーザIDとユーザデータ種別でキャッシュ状態管理テーブル124を検索して同期が必要なユーザデータが存在するかチェックして処理結果を返す。同期が必要なデータとは、処理対象のユーザデータと端末ID及びユーザIDが同じでかつキャッシュの状態が、未登録、未更新、未削除又はプッシュ配信である場合である。また、キャッシュ状態管理部115は、データ変更部114から衝突発生の有無を問い合わせされた場合、渡された端末ID、ユーザID、ユーザデータ種別及び項目IDでキャッシュ状態管理テーブル124を検索してアクセス種別に応じた衝突判定をして処理結果を返す。衝突は、処理対象のユーザデータのキャッシュ状態が、端末ID、ユーザID、ユーザデータ種別及び項目IDより検索した結果、未登録、未更新、又は未削除となっている場合である。また、キャッシュ状態管理部115は、キャッシュ状態管理テーブル124のキャッシュ状態の変更を要求された場合、渡された端末ID、ユーザID、ユーザデータ種別、項目ID、及びアクセス種別に応じてキャッシュ状態管理テーブル124の該当レコードのキャッシュ状態の変更を行う。
プッシュ配信要求部116は、サーバ側の判断でユーザデータを携帯端末のキャッシュに格納したい場合に使用する。データ管理ソフトウェア11内の管理者向け機能等の手段(図示せず)から要求を受けて、指定された端末ID、ユーザID、ユーザデータ種別、及び項目IDをセットにしてキャッシュ状態管理部115に渡してキャッシュ状態管理テーブル124の該当レコードのキャッシュ状態の更新を依頼する。
データアクセスソフトウェア22の手段はそれぞれ概略つぎのように動作する。データアクセス部221は、データ利用ソフトウェア21からのユーザデータへのアクセス要求を受け付ける。データ参照の場合、キャッシュ管理部223にユーザデータ種別と項目IDを渡してストレージ23のユーザデータキャッシュ232からのユーザデータ取得を試みる。そして、データを取得できない場合はサーバ通信部212を介してデータ管理サーバ1へデータ参照要求を行い、データ参照応答を受信したらキャッシュ管理部223にユーザデータキャッシュ232への反映を依頼する。なお、データ参照応答の処理結果が要データ同期の場合は、元のデータ参照要求を保留してデータ管理サーバ1にデータ同期開始要求を行い、データ同期要求を受信したらキャッシュ管理部223にユーザデータキャッシュ232への反映を依頼する。データ変更の場合、キャッシュ管理部223にユーザデータキャッシュ232の変更を依頼し、さらにサーバ通信部212を介してデータ管理サーバへデータ変更要求を行う。
サーバ通信部212は、他の手段から受信した処理要求の内容に基づいてデータ管理サーバ1のデータ管理ソフトウェア11に対して処理要求を送信し、返信されてきた応答を要求元の手段に返す。
キャッシュ管理部223は、ストレージ23のユーザデータキャッシュ232へのアクセス要求を処理する。データ参照の場合、渡されたユーザデータ種別と項目IDで該当するユーザデータを検索し、存在の有無と存在する場合のみユーザデータを返す。データ変更の場合、アクセス種別が登録の場合は渡されたユーザデータ種別、項目ID、及びユーザデータをキャッシュに格納し、アクセス種別が更新の場合は渡されたユーザデータ種別、項目ID及びユーザデータでキャッシュを更新し、アクセス種別が削除の場合は渡されたユーザデータ種別及び項目IDでキャッシュを削除する。
次に、本発明の第1の実施例の動作について詳細に説明する。まず、準備段階のシステムの動作について説明する。最初に、データ管理サーバ1において利用するユーザのユーザIDやパスワード等の情報をユーザ情報テーブル121に登録する。また、ユーザIDとユーザが使用する携帯端末の端末IDを紐付けて端末情報テーブル122に登録する。また、ユーザが使用するユーザデータ種別のスキーマ情報(データベースの構成情報)に従ってユーザデータテーブル123を生成し、ユーザデータテーブル123とセットでキャッシュ状態管理テーブル124を生成する。
次に、携帯端末2にはデータ利用ソフトウェア21とデータアクセスソフトウェア22を事前にインストールしておく。インストールはインターネットなどの通信回線4経由でデータ管理サーバ1からダウンロードしたり、図2には記載していないPCとケーブルで接続してダウンロードしたり、携帯端末2でインストールに使用可能な外部媒体を使用して行うものとする。
次に、データアクセスソフトウェア22はインストール時又はデータ利用ソフトウェア21による初期化要求時などに図示していない手段でユーザID、パスワード、及び端末ID等のユーザ情報を受け取り、ストレージ23のユーザ情報231として格納する。なお、ユーザ情報の入力手段としてユーザによる画面からの手入力、ソフトウェアと同時に情報をダウンロード等、手段を特に問わないものとする。また、携帯端末で提供するライブラリから端末IDを直接取得することが可能な場合、データアクセスソフトウェア22がライブラリを使用して端末IDを取得してユーザ情報231に格納する。携帯端末3は、携帯端末2と同一構成である。
(1)携帯端末のデータ利用ソフトウェアがユーザデータを参照する時のシステムの動作
図6は、携帯端末のデータ利用ソフトウェアがデータを参照する際の動作を示すフローチャートである。最初に、携帯端末2のデータ利用ソフトウェア21を起動して、ユーザが画面表示を確認してユーザデータの参照が必要となる操作を行う。そして、データ利用ソフトウェア21は参照したいユーザデータをユーザデータ種別及び項目ID又は検索条件で指定して、データアクセスソフトウェア22のデータアクセス部221に要求する(ステップS1)。
次に、データアクセス部221はキャッシュ管理部223に指定されたユーザデータ種別及び項目ID又は検索条件を渡す。そして、キャッシュ管理部223はストレージ23のユーザデータキャッシュ232にユーザデータが存在するかチェックする(ステップS2)。存在する場合、ユーザデータキャッシュ232からユーザデータを取得してデータアクセス部221に渡し、データアクセス部221はデータ利用ソフトウェア21にユーザデータを返して処理を終了する(ステップS3)。存在しない場合、データアクセス部221はサーバ通信部222を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ参照要求を行う。データ参照要求には端末ID、ユーザID、パスワード、指定されたユーザデータ種別及び項目ID又は検索条件を設定する(ステップS4)。
次に、データ管理ソフトウェア11の通信部111はデータ参照要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ参照要求をデータアクセス管理部112に渡す。データアクセス管理部112は、データ参照要求から端末ID、ユーザID及びユーザデータ種別を取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末IDとユーザIDが同じでかつキャッシュ状態が未登録/未更新/未削除/プッシュ配信の条件を満たすレコードを検索する。これらは、上述したように同期が必要なユーザデータである。そして、同期が必要なユーザデータの有無をデータアクセス管理部112に返す。同期が不要であればデータアクセス管理部112は、データ参照部113にデータ参照要求を渡す。同期が必要な場合の動作に関しては、後述する別のパターンにて説明する。データ参照部113は、データ参照要求からユーザデータ種別及び項目ID又は検索条件を取得する。そして、ユーザデータ種別が合致するユーザデータテーブル123から項目ID又は検索条件を使用してユーザデータを取得する。検索条件を使用した場合は、ユーザデータと共に項目IDも取得する(ステップS5)。
次に、データ参照部113は、端末ID、ユーザID、ユーザデータ種別、項目ID、及びアクセス種別=参照をセットにしてキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別が合致するキャッシュ状態管理テーブル124を端末ID、ユーザID及び項目IDをキーとして検索して該当レコードを取得する。該当レコードのキャッシュ状態が同期済の場合はキャッシュ状態の更新を行わずにデータ参照部113に処理結果を正常として返す。該当レコードのキャッシュ状態がキャッシュ削除の場合は、キャッシュ状態を同期済に更新してデータ参照部113に処理結果を正常として返す。なお、アクセス種別が参照の場合、キャッシュ状態が未削除/削除となる項目IDは、既にユーザデータテーブル123から削除されているためキャッシュ状態管理部115に渡されることはない。図7は、キャッシュ状態管理テーブル124においてキャッシュ状態をキャッシュ削除から同期済に更新する例を示している(ステップS6、S7)。なお、処理中フラグは、携帯端末に反映されていないユーザデータがデータ管理サーバ1側にあり、変更情報を携帯端末に送ったときONになり、携帯端末側でデータを更新した場合にOFFになるフラグである。
次に、データ参照部113は取得したユーザデータをデータアクセス管理部112に返す。データアクセス管理部112は渡されたユーザデータと元のデータ参照要求からデータ参照応答を生成して通信部111に返す。通信部111は渡されたデータ参照応答を携帯端末2のデータアクセスソフトウェア22のサーバ通信部222に返信する。(ステップS8)。
次に、データアクセスソフトウェア22のサーバ通信部222は受け取ったデータ参照応答をデータアクセス部221に渡す。データアクセス部221はデータ参照応答からユーザデータ種別、項目ID及びユーザデータを取り出してキャッシュ管理部223に渡す。キャッシュ管理部223は渡されたユーザデータ種別と合致するユーザデータキャッシュ232に項目IDとユーザデータを格納し、データアクセス部221に正常として返す。(ステップS9)。
次に、データアクセス部221はデータ利用ソフトウェア21にユーザデータ種別、項目ID及びユーザデータを返す。データ利用ソフトウェア21は渡されたユーザデータを画面表示や操作等に利用する(ステップS10)。
(2)携帯端末のデータ利用ソフトウェアがユーザデータを登録する時のシステムの動作
図8は、携帯端末のデータ利用ソフトウェアがユーザデータを登録する際の動作を示すフローチャートである。最初に、携帯端末2のデータ利用ソフトウェア21を起動して、ユーザが画面表示を確認してユーザデータの登録操作を行う。そして、データ利用ソフトウェア21はユーザデータ種別と共にユーザデータの登録をデータアクセスソフトウェア22のデータアクセス部221に要求する(ステップS11)。
次に、データアクセス部221はキャッシュ管理部223に指定されたユーザデータ種別及びユーザデータを渡す。そして、キャッシュ管理部223は一時IDを採番してストレージ23のユーザデータ種別が合致するユーザデータキャッシュ232に一時IDとユーザデータを格納し、処理結果と一時IDを返す(ステップS12)。一時IDとは、携帯端末側でユーザデータに付される一時的な仮のIDである。当該一時IDが付されたユーザデータは、データ管理サーバ1にて項目IDを付される。データアクセス部221は一時IDを、後で項目IDに書き換えるために、内部のメモリ等に内部退避した後、サーバ通信部222を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ変更要求を行う。データ変更要求には端末ID、ユーザID、パスワード、指定されたユーザデータ種別、ユーザデータ、及びアクセス種別=登録を設定する(ステップS13)。
次に、データ管理ソフトウェア11の通信部111はデータ変更要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ変更要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112はデータ変更要求をデータ変更部114に渡す。データ変更部114は、データ変更要求から取得したユーザデータ種別の項目IDを新たに採番し、その項目IDでユーザデータ種別と合致するユーザデータテーブル123にデータ変更要求から取得したユーザデータを登録する(ステップS14、S15)
次に、データ変更部114は端末ID、ユーザID、ユーザデータ種別、項目ID及びアクセス種別=登録をセットにしてキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124に端末ID、ユーザID及び項目IDをキーとしてキャッシュ状態を同期済でレコードを登録する。そして、ユーザIDをキーとして端末情報テーブル122の検索を行い、同一ユーザが使用する別の端末IDが存在するかチェックする。存在しない場合、データ変更部114に処理結果を正常として返す。存在する場合、キャッシュ状態管理テーブル124に別の端末ID、ユーザID及び項目IDをキーとしてキャッシュ状態を未登録でレコードを登録し、データ変更部114に処理結果を正常として返す。同一ユーザの別の携帯端末のキャッシュ状態を未登録としておくことで、当該別の携帯端末からデータ管理サーバにアクセスがあった際にこのキャッシュ状態に応じて別の携帯端末のキャッシュも更新されることになる。図9は、キャッシュ状態管理テーブル124において要求元の端末IDでキャッシュ状態を同期済でレコードを登録、及び同一ユーザが使用する別の端末IDでキャッシュ状態を未登録でレコードを登録する例を示している(ステップS16〜S18)
次に、データ変更部114は処理結果と採番した項目IDをデータアクセス管理部112に返す。データアクセス管理部112は渡された処理結果と項目IDと元のデータ変更要求からデータ変更応答を生成して通信部111に返す。通信部111は渡されたデータ変更応答を携帯端末2のデータアクセスソフトウェア22のサーバ通信部222に返信する(ステップS19)。
次に、データアクセスソフトウェア22のサーバ通信部222は受け取ったデータ変更応答をデータアクセス部221に渡す。データアクセス部221は、データ変更応答からユーザデータ種別と項目IDを取得し、内部退避していた一時IDと共にキャッシュ管理部223に渡す。キャッシュ管理部223は渡されたユーザデータ種別と合致するユーザデータキャッシュ232に格納されている一時IDを項目IDに更新し、データアクセス部221に正常として返す(ステップS20)。次に、データアクセス部221はデータ利用ソフトウェア21に処理結果を返す。データ利用ソフトウェア21は渡された処理結果を画面表示や操作等に利用する(ステップS21)。
(3)登録されたユーザデータを同一ユーザの別の携帯端末に反映する時のシステムの動作
図10は、登録されたユーザデータを同一ユーザの別の携帯端末に反映する際の動作を示すフローチャートである。最初に、携帯端末3のデータ利用ソフトウェア31を起動して、ユーザが画面表示を確認してユーザデータの参照が必要となる操作を行う。そして、データ利用ソフトウェア31は参照したいユーザデータをユーザデータ種別及び項目ID又は検索条件で指定して、データアクセスソフトウェア32のデータアクセス部321に要求する。データアクセス部321は、キャッシュ管理部323への問い合わせの結果、データ利用ソフトウェア31から渡されたユーザデータ種別及び項目ID又は検索条件に合致するユーザデータがユーザデータキャッシュ332に存在しないため、サーバ通信部322を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ参照要求を行う。データ参照要求には端末ID、ユーザID、パスワード、指定されたユーザデータ種別及び項目ID又は検索条件を設定する(ステップS31)。
次に、データ管理ソフトウェア11の通信部111はデータ参照要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ参照要求をデータアクセス管理部112に渡す。データアクセス管理部112は、データ参照要求から端末ID、ユーザID、及びユーザデータ種別を取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末ID及びユーザIDが同じでかつキャッシュ状態が未登録/未更新/未削除/プッシュ配信の条件を満たすレコードを検索する。これらは同期が必要なデータである。こうして同期が必要なユーザデータの有無をデータアクセス管理部112に返す(ステップS32、S33)。同期が不要であればデータアクセス管理部112は、データ参照部113にデータ参照要求を渡してステップS5〜S10と同一の処理を行い、以降に記載する処理は行わない。同期が必要であればデータアクセス管理部112は、データ同期要の処理結果と元のデータ参照要求からデータ参照応答を生成して通信部111に返す。通信部111は渡されたデータ参照応答を携帯端末3のデータアクセスソフトウェア32のサーバ通信部322に返信する(ステップS34)。
次に、データアクセスソフトウェア32のサーバ通信部322は受け取ったデータ参照応答を取り出してデータアクセス部321に渡す。データアクセス部321は、データ参照応答から取得した処理結果が、データ同期が必要なため、元のデータ参照要求を内部退避して保留中にし、サーバ通信部322を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ同期開始要求を行う。データ同期開始要求には端末ID、ユーザID、パスワード、及び同期するユーザデータ種別を設定する(ステップS35)。
次に、データ管理ソフトウェア11の通信部111はデータ同期開始要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ同期開始要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112はデータ同期開始要求をデータ変更部114に渡す。データ変更部114は、データ同期開始要求から端末ID、ユーザID及び同期するユーザデータ種別を取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末ID及びユーザIDが同じでかつキャッシュ状態が未登録/未更新/未削除/プッシュ配信の条件を満たすレコードを検索する。本例においては、登録されたユーザデータを同一ユーザの別の携帯端末に反映する際の動作であるので、キャッシュ状態が未登録のレコードを取得する。キャッシュ状態管理部115は、該当レコードの処理中フラグをONに設定し、項目ID及びアクセス種別=登録をセットでデータ変更部114に返す(ステップS36)。
そしてデータ変更部114は、ユーザデータ種別が合致するユーザデータテーブル123から項目IDのユーザデータを取得し、ユーザデータ種別、項目ID、ユーザデータ及びアクセス種別=登録をセットにして同期情報としてデータアクセス管理部112に返す。データアクセス管理部112は、渡された同期情報と元のデータ同期開始要求からデータ同期要求を生成して通信部111に返す。通信部111は渡されたデータ同期要求を携帯端末3のデータアクセスソフトウェア32のサーバ通信部322に返信する(ステップS37)。
次に、データアクセスソフトウェア32のサーバ通信部322は受け取ったデータ同期要求をデータアクセス部321に渡す。データアクセス部321は、データ同期要求から同期情報を取得し、同期情報からユーザデータ種別、項目ID及びユーザデータを取り出してキャッシュ管理部323に渡す。キャッシュ管理部323は、渡されたユーザデータ種別と合致するユーザデータキャッシュ331に項目ID及びユーザデータを格納し、データアクセス部321に正常として返す。データアクセス部321は、サーバ通信部322を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ同期応答と共に保留していたデータ参照要求を行う。データ同期応答には端末ID、ユーザID、認証に使用するパスワード、ユーザデータ種別、項目ID、及び処理結果を設定する。データ参照要求はステップS31と同一の内容である(ステップS38)。
次に、データ管理ソフトウェア11の通信部111はデータ同期応答のユーザ情報とデータベース12のユーザ情報テーブル121を使用して認証処理を行い、認証結果が正常であればデータ同期応答とデータ参照応答をデータアクセス管理部112に渡す。そして、データアクセス管理部112はデータ同期応答をデータ変更部114に渡す。データ変更部114は、データ同期応答から端末ID、ユーザID、ユーザデータ種別、及び項目IDを取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別が合致するキャッシュ状態管理テーブル124から端末ID、ユーザID及び項目IDをキーとして検索し、該当レコードのキャッシュ状態を同期済、処理中フラグをOFFに更新し、処理結果を正常でデータ変更部114に返す。そして、データ変更部114は、処理結果を正常でデータアクセス管理部112に返す。図11は、キャッシュ状態管理テーブル124においてキャッシュ状態が未登録のレコードを同期済に更新する例を示している(ステップS39)。次に、データアクセス管理部112は、データ同期応答と共に渡されたデータ参照要求の処理を開始し、以降はステップS5〜S10と同一の処理を行う(ステップS40)。
(4)携帯端末のデータ利用ソフトウェアがユーザデータを更新する時のシステムの動作
図12は、携帯端末のデータ利用ソフトウェアがユーザデータを更新する際の動作を示すフローチャートである。最初に、携帯端末2のデータ利用ソフトウェア21を起動して、ユーザが画面表示を確認してユーザデータの更新操作を行う。そして、データ利用ソフトウェア21はユーザデータ種別と共にユーザデータの更新をデータアクセスソフトウェア22のデータアクセス部221に要求する(ステップS41)。
次に、データアクセス部221はキャッシュ管理部223に指定されたユーザデータ種別、項目ID及びユーザデータを渡す。そして、キャッシュ管理部223はストレージ23のユーザデータ種別が合致するユーザデータキャッシュ232の項目IDに対応するユーザデータを更新し、処理結果を返す(ステップS42)。そして、データアクセス部221は、サーバ通信部222を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ変更要求を行う。データ変更要求には端末ID、ユーザID、パスワード、指定されたユーザデータ種別、項目ID、ユーザデータ、及びアクセス種別=更新を設定する(ステップS43)。
次に、データ管理ソフトウェア11の通信部111はデータ変更要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ変更要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112はデータ変更要求をデータ変更部114に渡す。データ変更部114は、データ変更要求から端末ID、ユーザID、ユーザデータ種別、項目ID及びアクセス種別=更新を取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末ID、ユーザID及び項目IDをキーとしてレコードを取得し、キャッシュ状態が未登録/未更新/未削除の場合は衝突発生、それ以外の場合は正常でデータ変更部114に返す(ステップS44、S45)。
次に、衝突が発生していた場合、データ変更部114はユーザデータ種別が合致するユーザデータテーブル123から項目IDを使用してユーザデータを取得する(ステップS46)。データ変更部114は、衝突発生の処理結果と取得したユーザデータをデータアクセス管理部112に返す。データアクセス管理部112は渡された衝突発生の処理結果、ユーザデータ及び元のデータ変更要求からデータ変更応答を生成して通信部111に返す。通信部111は渡されたデータ変更応答を携帯端末2のデータアクセスソフトウェア22のサーバ通信部222に返信する(ステップS47)。データアクセスソフトウェア22のサーバ通信部222は受け取ったデータ変更応答をデータアクセス部221に渡す。データアクセス部221は、データ変更応答から処理結果を取得する。データアクセス部221は、処理結果が衝突発生なのでデータ変更応答からユーザデータ種別、項目ID及びユーザデータを取得してキャッシュ管理部223に渡す。キャッシュ管理部223は渡されたユーザデータ種別と合致するユーザデータキャッシュ232の項目IDに対応するユーザデータを更新し、データアクセス部221に正常として返す。データアクセス部221はデータ利用ソフトウェア21に処理結果を衝突発生で返す。データ利用ソフトウェア21は渡された処理結果を画面表示や操作等に利用し、以降に記載するステップS49〜S52の処理は行わない(ステップS48、S53)。
次に、衝突が発生していない場合、データ変更部114はデータ変更要求からユーザデータ種別、項目ID及びユーザデータを取得し、ユーザデータ種別と合致するユーザデータテーブル123の項目IDをキーとしてユーザデータを更新する(ステップS49)。次に、データ変更部114は端末ID、ユーザID、ユーザデータ種別、項目ID及びアクセス種別=更新をセットにしてキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124を端末ID、ユーザID及び項目IDをキーとして検索し、キャッシュ状態を同期済でレコードを更新する。そして、ユーザIDをキーとして端末情報テーブル122の検索を行い、同一ユーザが使用する別の端末IDが存在するかチェックする。存在しない場合、データ変更部114に処理結果を正常として返す。存在する場合、キャッシュ状態管理テーブル124を別の端末ID、ユーザID及び項目IDをキーとして検索し、キャッシュ状態を未更新に更新し、データ変更部114に処理結果を正常として返す。同一ユーザの別の携帯端末のキャッシュ状態の未更新としておくことで、当該別の携帯端末からデータ管理サーバにアクセスがあった場合、このキャッシュ状態に応じて、別の携帯端末のキャッシュを更新することができる。図13は、キャッシュ状態管理テーブル124において同一ユーザが使用する別の端末IDでャッシュ状態を未更新に更新する例を示している(ステップS50、S51)。
次に、データ変更部114は処理結果をデータアクセス管理部112に返す。データアクセス管理部112は渡された処理結果と元のデータ変更要求からデータ変更応答を生成して通信部111に返す。通信部111は渡されたデータ変更応答を携帯端末2のデータアクセスソフトウェア22のサーバ通信部222に返信する(ステップS52)。
次に、データアクセスソフトウェア22のサーバ通信部222は受け取ったデータ変更応答をデータアクセス部221に渡す。データアクセス部221は、データ変更応答からから取得した処理結果をデータ利用ソフトウェア21に返す。データ利用ソフトウェア21は渡された処理結果を画面表示や操作等に利用する(ステップS53)。
(5)更新されたユーザデータを同一ユーザの別の携帯端末に反映する時のシステムの動作
図14は、更新されたユーザデータを同一ユーザの別の携帯端末に反映する際の動作を示すフローチャートである。最初に、携帯端末3のデータ利用ソフトウェア31を起動して、ユーザが画面表示を確認してユーザデータの参照が必要となる操作を行う。そして、データ利用ソフトウェア31は参照したいユーザデータをユーザデータ種別及び項目ID又は検索条件で指定して、データアクセスソフトウェア32のデータアクセス部321に要求する。データアクセス部321は、キャッシュ管理部323への問い合わせの結果、データ利用ソフトウェア31から渡されたユーザデータ種別及び項目ID又は検索条件に合致するユーザデータがユーザデータキャッシュ332に存在しないため、サーバ通信部322を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ参照要求を行う。データ参照要求には端末ID、ユーザID、認証のためのパスワード、指定されたユーザデータ種別及び項目ID又は検索条件を設定する(ステップS61)。
次に、データ管理ソフトウェア11の通信部111はデータ参照要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ参照要求をデータアクセス管理部112に渡す。データアクセス管理部112は、データ参照要求から端末ID、ユーザID及びユーザデータ種別を取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末ID及びユーザIDが同じでかつキャッシュ状態が未登録/未更新/未削除/プッシュ配信の条件を満たすレコード(同期が必要なレコード)を検索して、同期が必要なユーザデータの有無をデータアクセス管理部112に返す(ステップS62、S63)。同期が不要であればデータアクセス管理部112は、データ参照部113にデータ参照要求を渡してステップS5〜S10と同一の処理を行い、以降に記載する処理は行わない。同期が必要であればデータアクセス管理部112は、データ同期要の処理結果と元のデータ参照要求からデータ参照応答を生成して通信部111に返す。通信部111は渡されたデータ参照応答を携帯端末3のデータアクセスソフトウェア32のサーバ通信部322に返信する。(ステップS64)。
次に、データアクセスソフトウェア32のサーバ通信部322は受け取ったデータ参照応答を取り出してデータアクセス部321に渡す。データアクセス部321は、データ参照応答から取得した処理結果が、データ同期が必要なので、元のデータ参照要求を内部退避して保留中にし、サーバ通信部322を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ同期開始要求を行う。データ同期開始要求には端末ID、ユーザID、パスワード、及び同期するユーザデータ種別を設定する(ステップS65)。
次に、データ管理ソフトウェア11の通信部111はデータ同期開始要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ同期開始要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112はデータ同期開始要求をデータ変更部114に渡す。データ変更部114は、データ同期開始要求から端末ID、ユーザID及び同期するユーザデータ種別を取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末ID及びユーザIDが同じでかつキャッシュ状態が未登録/未更新/未削除/プッシュ配信の条件を満たすレコードを検索する。本例は、更新されたユーザデータを同一ユーザの別の携帯端末に反映する際の動作であるのでキャッシュ状態が未更新のレコードを取得する。キャッシュ状態管理部115は、該当レコードの処理中フラグをONに設定し、項目ID及びアクセス種別=更新をセットでデータ変更部114に返す(ステップS66)。
そしてデータ変更部114は、ユーザデータ種別が合致するユーザデータテーブル123から項目IDのユーザデータを取得し、ユーザデータ種別、項目ID、ユーザデータ、及びアクセス種別=更新をセットにして同期情報としてデータアクセス管理部112に返す。データアクセス管理部112は、渡された同期情報と元のデータ同期開始要求からデータ同期要求を生成して通信部111に返す。通信部111は渡されたデータ同期要求を携帯端末3のデータアクセスソフトウェア32のサーバ通信部322に返信する。(ステップE7)
次に、データアクセスソフトウェア32のサーバ通信部322は受け取ったデータ同期要求をデータアクセス部321に渡す。データアクセス部321は、データ同期要求から同期情報を取得し、同期情報からユーザデータ種別と項目ID及びユーザデータを取り出してキャッシュ管理部323に渡す。キャッシュ管理部323は、渡されたユーザデータ種別と合致するユーザデータキャッシュ331に項目IDに対応するユーザデータを更新し、データアクセス部321に正常として返す。データアクセス部321は、サーバ通信部322を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ同期応答と共に保留していたデータ参照要求を行う。データ同期応答には端末ID、ユーザID、パスワード、ユーザデータ種別、項目ID及び処理結果を設定する。データ参照要求はステップS61と同一の内容である(ステップS68)。
次に、データ管理ソフトウェア11の通信部111はデータ同期応答のユーザ情報とデータベース12のユーザ情報テーブル121を使用して認証処理を行い、認証結果が正常であればデータ同期応答とデータ参照要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112はデータ同期応答をデータ変更部114に渡す。データ変更部114は、データ同期応答から端末ID、ユーザID、ユーザデータ種別及び項目IDを取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別が合致するキャッシュ状態管理テーブル124から端末ID、ユーザID及び項目IDをキーとして検索し、該当レコードのキャッシュ状態を同期済、処理中フラグをOFFに更新し、処理結果を正常でデータ変更部114に返す。そして、データ変更部114は、処理結果を正常でデータアクセス管理部112に返す。図15は、キャッシュ状態管理テーブル124においてキャッシュ状態が未更新のレコードを同期済に更新する例を示している(ステップS69)。次に、データアクセス管理部112は、データ同期応答と共に渡されたデータ参照要求の処理を開始し、以降はステップS5〜S10と同一の処理を行う(ステップS70)。
(6)携帯端末のデータ利用ソフトウェアがユーザデータを削除する時のシステムの動作
図16は、携帯端末のデータ利用ソフトウェアがユーザデータを削除する際の動作を示すフローチャートである。最初に、携帯端末2のデータ利用ソフトウェア21を起動して、ユーザが画面表示を確認してユーザデータの削除操作を行う。そして、データ利用ソフトウェア21はユーザデータ種別と共にユーザデータの削除をデータアクセスソフトウェア22のデータアクセス部221に要求する(ステップS71)。
次に、データアクセス部221はキャッシュ管理部223に指定されたユーザデータ種別と項目IDを渡す。そして、キャッシュ管理部223はストレージ23のユーザデータ種別が合致するユーザデータキャッシュ232の項目ID及びユーザデータを削除し、処理結果を返す(ステップS72)。そして、データアクセス部221は、サーバ通信部222を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ変更要求を行う。データ変更要求には端末ID、ユーザID、パスワード、指定されたユーザデータ種別と項目ID、及びアクセス種別=削除を設定する(ステップS73)。
次に、データ管理ソフトウェア11の通信部111はデータ変更要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ変更要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112はデータ変更要求をデータ変更部114に渡す。データ変更部114は、データ変更要求から端末ID、ユーザID、ユーザデータ種別、項目ID及びアクセス種別=削除を取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末ID、ユーザID、及び項目IDをキーとしてレコードを取得し、キャッシュ状態が未登録/未更新/未削除の場合は衝突発生、それ以外の場合は正常でデータ変更部114に返す(ステップS74、S75)。
次に、衝突が発生していた場合、データ変更部114はユーザデータ種別が合致するユーザデータテーブル123から項目IDを使用してユーザデータを取得する(ステップS76)。データ変更部114は、衝突発生の処理結果と取得したユーザデータをデータアクセス管理部112に返す。データアクセス管理部112は渡された衝突発生の処理結果とユーザデータと元のデータ変更要求からデータ変更応答を生成して通信部111に返す。通信部111は渡されたデータ変更応答を携帯端末2のデータアクセスソフトウェア22のサーバ通信部222に返信する(ステップS77)。データアクセスソフトウェア22のサーバ通信部222は受け取ったデータ変更応答をデータアクセス部221に渡す。データアクセス部221は、データ変更応答から処理結果を取得する。データアクセス部221は、処理結果が衝突発生なのでデータ変更応答からユーザデータ種別、項目ID及びユーザデータを取得してキャッシュ管理部223に渡す。キャッシュ管理部223は渡されたユーザデータ種別と合致するユーザデータキャッシュ232の項目ID及びユーザデータを格納し、データアクセス部221に正常として返す。データアクセス部221はデータ利用ソフトウェア21に処理結果を衝突発生で返す。データ利用ソフトウェア21は渡された処理結果を画面表示や操作等に利用し、以降に記載するステップS79〜S83の処理は行わない(ステップS78、S84)。
次に、衝突が発生していない場合、データ変更部114はデータ変更要求からユーザデータ種別と項目IDを取得し、ユーザデータ種別と合致するユーザデータテーブル123の項目IDをキーとして検索し、レコードを削除する(ステップS79)。次に、データ変更部114は端末ID、ユーザID、ユーザデータ種別、項目ID及びアクセス種別=削除をセットにしてキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザIDをキーとして端末情報テーブル122の検索を行い、同一ユーザが使用する別の端末IDが存在するかチェックする。存在しない場合、キャッシュ状態管理部115はユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末IDとユーザIDと項目IDをキーとして検索してレコードを削除し、データ変更部114に処理結果を正常として返す。存在する場合、キャッシュ状態管理部115はキャッシュ状態管理テーブル124を要求元の端末ID、ユーザID及び項目IDをキーとして検索し、キャッシュ状態を削除でレコードを更新する。そして、キャッシュ状態管理部115はキャッシュ状態管理テーブル124を別の端末ID、ユーザID及び項目IDをキーとして検索し、キャッシュ状態を未削除でレコードを更新し、データ変更部114に処理結果を正常として返す。当該別の携帯端末のキャッシュ状態を未削除としておくことで、当該別の携帯端末がデータ管理サーバにアクセスした場合、キャッシュが更新される。
図17は、キャッシュ状態管理テーブル124において要求元の端末IDでキャッシュ状態を削除でレコードを更新、及び同一ユーザが使用する別の端末IDでキャッシュ状態を未削除でレコードを更新する例を示している(ステップS80〜S82)。
次に、データ変更部114は処理結果をデータアクセス管理部112に返す。データアクセス管理部112は渡された処理結果と元のデータ変更要求からデータ変更応答を生成して通信部111に返す。通信部111は渡されたデータ変更応答を携帯端末2のデータアクセスソフトウェア22のサーバ通信部222に返信する(ステップS83)。
次に、データアクセスソフトウェア22のサーバ通信部222は受け取ったデータ変更応答をデータアクセス部221に渡す。データアクセス部221は、データ変更応答から取得した処理結果をデータ利用ソフトウェア21に返す。データ利用ソフトウェア21は渡された処理結果を画面表示や操作等に利用する(ステップS84)。
(7)削除されたユーザデータを同一ユーザの別の携帯端末に反映する時のシステムの動作
図18は、削除されたユーザデータを同一ユーザの別の携帯端末に反映する際の動作を示すフローチャートである。最初に、携帯端末3のデータ利用ソフトウェア31を起動して、ユーザが画面表示を確認してユーザデータの参照が必要となる操作を行う。そして、データ利用ソフトウェア31は参照したいユーザデータをユーザデータ種別及び項目ID又は検索条件で指定して、データアクセスソフトウェア32のデータアクセス部321に要求する。データアクセス部321は、キャッシュ管理部323への問い合わせの結果、データ利用ソフトウェア31から渡されたユーザデータ種別及び項目ID又は検索条件に合致するユーザデータがユーザデータキャッシュ332に存在しないため、サーバ通信部322を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ参照要求を行う。データ参照要求には端末ID、ユーザID、パスワード、指定されたユーザデータ種別及び項目ID又は検索条件を設定する(ステップS91)。
次に、データ管理ソフトウェア11の通信部111はデータ参照要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ参照要求をデータアクセス管理部112に渡す。データアクセス管理部112は、データ参照要求から端末ID、ユーザID及びユーザデータ種別を取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末ID及びユーザIDが同じでかつキャッシュ状態が未登録/未更新/未削除/プッシュ配信の条件を満たすレコードを検索して、同期が必要なユーザデータの有無をデータアクセス管理部112に返す(ステップS92、S93)。同期が不要であればデータアクセス管理部112は、データ参照部113にデータ参照要求を渡してステップS5〜S10と同一の処理を行い、以降に記載する処理は行わない。同期が必要であればデータアクセス管理部112は、データ同期が必要の処理結果と元のデータ参照要求からデータ参照応答を生成して通信部111に返す。通信部111は渡されたデータ参照応答を携帯端末3のデータアクセスソフトウェア32のサーバ通信部322に返信する(ステップS94)。
次に、データアクセスソフトウェア32のサーバ通信部322は受け取ったデータ参照応答を取り出してデータアクセス部321に渡す。データアクセス部321は、データ参照応答から取得した処理結果が、データ同期が必要のため、元のデータ参照要求を内部退避して保留中にし、サーバ通信部322を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ同期開始要求を行う。データ同期開始要求には端末ID、ユーザID、パスワード、及び同期するユーザデータ種別を設定する(ステップS95)。
次に、データ管理ソフトウェア11の通信部111はデータ同期開始要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ同期開始要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112はデータ同期開始要求をデータ変更部114に渡す。データ変更部114は、データ同期開始要求から端末ID及びユーザIDと同期するユーザデータ種別を取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末IDとユーザIDが同じでかつキャッシュ状態が未登録/未更新/未削除/プッシュ配信の条件を満たすレコードを検索する。本例は、削除されたユーザデータを同一ユーザの別の携帯端末に反映する際の動作であるのでキャッシュ状態が未削除のレコードを取得する。キャッシュ状態管理部115は、該当レコードの処理中フラグをONに設定し、項目ID及びアクセス種別=削除をセットでデータ変更部114に返す(ステップS96)。そしてデータ変更部114は、ユーザデータ種別及び項目IDとアクセス種別=削除をセットにして同期情報としてデータアクセス管理部112に返す。データアクセス管理部112は、渡された同期情報と元のデータ同期開始要求からデータ同期要求を生成して通信部111に返す。通信部111は渡されたデータ同期要求を携帯端末3のデータアクセスソフトウェア32のサーバ通信部322に返信する(ステップS97)。
次に、データアクセスソフトウェア32のサーバ通信部322は受け取ったデータ同期要求をデータアクセス部321に渡す。データアクセス部321は、データ同期要求から同期情報を取得し、同期情報からユーザデータ種別及び項目IDを取り出してキャッシュ管理部323に渡す。キャッシュ管理部323は、渡されたユーザデータ種別と合致するユーザデータキャッシュ331から項目IDに対応するユーザデータを削除し、データアクセス部321に正常として返す。データアクセス部321は、サーバ通信部322を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ同期応答と共に保留していたデータ参照要求を行う。データ同期応答には端末ID、ユーザID、パスワード、ユーザデータ種別、項目ID、及び処理結果を設定する。データ参照要求はステップG1と同一の内容である(ステップS98)。
次に、データ管理ソフトウェア11の通信部111はデータ同期応答のユーザ情報とデータベース12のユーザ情報テーブル121を使用して認証処理を行い、認証結果が正常であればデータ同期応答及びデータ参照要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112はデータ同期応答をデータ変更部114に渡す。データ変更部114は、データ同期応答から端末ID、ユーザID、ユーザデータ種別及び項目IDを取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別が合致するキャッシュ状態管理テーブル124から端末ID、ユーザID及び項目IDをキーとして検索し、該当レコードのキャッシュ状態を削除、処理中フラグをOFFに更新する。そして、キャッシュ状態管理部115はユーザデータ種別が合致するキャッシュ状態管理テーブル124からユーザIDと項目IDをキーとして検索し、キャッシュ状態が未削除のレコードが存在するかチェックする。
存在する場合、キャッシュ状態管理部115はそのまま処理結果を正常でデータ変更部114に返す。存在しない場合、キャッシュ状態管理部115はユーザデータ種別が合致するキャッシュ状態管理テーブル124からユーザIDと項目IDをキーとして検索し、該当するレコードを全て削除し、処理結果を正常でデータ変更部114に返す。そして、データ変更部114は、処理結果を正常でデータアクセス管理部112に返す。図19は、別端末のユーザデータキャッシュ331のユーザデータの削除が完了してキャッシュ状態管理テーブル124の全端末のレコードを削除する例を示している(ステップS99〜S101)。次に、データアクセス管理部112は、データ同期応答と共に渡されたデータ参照要求の処理を開始し、以降はステップS5〜S10と同一の処理を行う(ステップS102)。
(8)携帯端末のデータアクセスソフトウェアがユーザデータをキャッシュから削除する時のシステムの動作
図20は、携帯端末のデータアクセスソフトウェアがユーザデータをキャッシュから削除する際の動作を示すフローチャートである。最初に、携帯端末2のデータ利用ソフトウェア21を起動して、ユーザが画面表示を確認してユーザデータの参照が必要となる操作を行う。そして、データ利用ソフトウェア21は参照したいユーザデータをユーザデータ種別及び項目ID又は検索条件で指定して、データアクセスソフトウェア22のデータアクセス部221に要求する(ステップS111)。
次に、データアクセスソフトウェア22及びデータ管理ソフトウェアはステップS2〜S9の処理を行う。その時に、データアクセスソフトウェア22のストレージ23の容量不足等の要因でデータアクセスソフトウェア22のキャッシュ管理部223はユーザデータキャッシュ232から一部のユーザデータを削除する。ユーザデータのキャッシュ削除の判断方法に関しては、既知のLRUアルゴリズムの利用や独自アルゴリズムなど特に手法を問わない。そして、キャッシュ管理部223はデータアクセス部221にキャッシュから削除したユーザデータ種別及び項目IDを渡す。データアクセス部221は、キャッシュから削除されたユーザデータ種別及び項目IDを内部メモリ等に内部退避しておく(ステップS112)。
次に、データアクセス部221はデータ利用ソフトウェア21にユーザデータ種別、項目ID及びユーザデータを返す。データ利用ソフトウェア21は渡されたユーザデータを画面表示や操作等に利用する(ステップS113)。
次に、データアクセス部221は、サーバ通信部222を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ変更要求を行う。データ変更要求には端末ID、ユーザID、パスワード、内部退避していたユーザデータ種別と項目ID、及びアクセス種別=キャッシュ削除を設定する(ステップS114)。
次に、データ管理ソフトウェア11の通信部111はデータ変更要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ変更要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112はデータ変更要求をデータ変更部114に渡す。データ変更部114は、データ変更要求から端末ID、ユーザID、ユーザデータ種別、項目ID及びアクセス種別=キャッシュ削除を取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末ID、ユーザID及び項目IDをキーとしてレコードを取得し、キャッシュ状態をキャッシュ削除に更新し、処理結果をデータ変更部114に返す。図21は、キャッシュ状態管理テーブル124において要求元の端末IDのレコードのキャッシュ状態をキャッシュ削除で更新する例を示している(ステップS115)。
次に、データ変更部114は処理結果をデータアクセス管理部112に返す。データアクセス管理部112は渡された処理結果と元のデータ変更要求からデータ変更応答を生成して通信部111に返す。通信部111は渡されたデータ変更応答を携帯端末2のデータアクセスソフトウェア22のサーバ通信部222に返信する(ステップS116)。次に、データアクセスソフトウェア22のサーバ通信部222は受け取ったデータ変更応答をデータアクセス部221に渡す。データアクセス部221は、データ変更応答から処理結果を取得する(ステップS117)。
(9)携帯端末へユーザデータをプッシュ配信する要求する時のシステムの動作
図22は、データ管理サーバのデータ管理ソフトがユーザデータのプッシュ配信を設定する際の動作を示すフローチャートである。最初に、データ管理ソフトウェア11内の管理者向け機能手段(図示せず)がプッシュ配信要求部116に携帯端末へプッシュ配信したい端末ID、ユーザID、ユーザデータ種別及び項目IDを渡す(ステップS121)。
次に、プッシュ配信要求部116は端末ID、ユーザID、ユーザデータ種別、項目ID及びアクセス種別=プッシュ配信をセットにしてキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124に端末ID、ユーザID及び項目IDをキーとして検索し、キャッシュ状態がキャッシュ削除のレコードが存在するかチェックする。存在しない場合、プッシュ配信要求部116に処理結果を正常として返す。存在する場合、該当レコードのキャッシュ状態をプッシュ配信で更新し、プッシュ配信要求部116に処理結果を正常として返す。図23は、キャッシュ状態管理テーブル124においてプッシュ配信対象の端末IDのレコードのキャッシュ状態をプッシュ配信で更新する例を示している(ステップS122〜S124)。
次に、プッシュ配信要求部116はデータ管理ソフトウェア11内の管理者向け機能手段(図示せず)へ処理結果を返す。以降は、プッシュ配信対象の携帯端末からのアクセスを待つ(ステップS125)。
(10)プッシュ配信が設定されたユーザデータを携帯端末に反映する時のシステムの動作
図24は、プッシュ配信が設定されたユーザデータを携帯端末に反映する際の動作を示すフローチャートである。最初に、携帯端末2のデータ利用ソフトウェア21を起動して、ユーザが画面表示を確認してユーザデータの参照が必要となる操作を行う。そして、データ利用ソフトウェア31は参照したいユーザデータをユーザデータ種別及び項目ID又は検索条件で指定して、データアクセスソフトウェア22のデータアクセス部221に要求する。データアクセス部221は、キャッシュ管理部223への問い合わせの結果、データ利用ソフトウェア21から渡されたユーザデータ種別及び項目ID又は検索条件に合致するユーザデータがユーザデータキャッシュ232に存在しないため、サーバ通信部222を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ参照要求を行う。データ参照要求には端末ID、ユーザID、パスワード、指定されたユーザデータ種別及び項目ID又は検索条件を設定する(ステップS131)。
次に、データ管理ソフトウェア11の通信部111はデータ参照要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ参照要求をデータアクセス管理部112に渡す。データアクセス管理部112は、データ参照要求から端末IDとユーザIDとユーザデータ種別を取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末ID及びユーザIDが同じでかつキャッシュ状態が未登録/未更新/未削除/プッシュ配信の条件を満たすレコードを検索して、同期が必要なユーザデータの有無をデータアクセス管理部112に返す(ステップS132、S133)。同期が不要であればデータアクセス管理部112は、データ参照部113にデータ参照要求を渡してステップS5〜S10と同一の処理を行い、以降に記載する処理は行わない。同期が必要であればデータアクセス管理部112は、データ同期が必要の処理結果と元のデータ参照要求からデータ参照応答を生成して通信部111に返す。通信部111は渡されたデータ参照応答を携帯端末3のデータアクセスソフトウェア22のサーバ通信部222に返信する(ステップS134)。
次に、データアクセスソフトウェア22のサーバ通信部222は受け取ったデータ参照応答を取り出してデータアクセス部221に渡す。データアクセス部221は、データ参照応答から取得した処理結果が、データ同期が必要なため、元のデータ参照要求を内部退避して保留中にし、サーバ通信部222を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ同期開始要求を行う。データ同期開始要求には端末ID、ユーザID、パスワード、及び同期するユーザデータ種別を設定する(ステップS135)。
次に、データ管理ソフトウェア11の通信部111はデータ同期開始要求のユーザ情報とデータベース12のユーザ情報テーブル121及び端末情報テーブル122を使用して認証処理を行い、認証結果が正常であればデータ同期開始要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112はデータ同期開始要求をデータ変更部114に渡す。データ変更部114は、データ同期開始要求から端末IDとユーザIDと同期するユーザデータ種別を取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別と合致するキャッシュ状態管理テーブル124から端末IDとユーザIDが同じでかつキャッシュ状態が未登録/未更新/未削除/プッシュ配信の条件を満たすレコードを検索する。本例においては、プッシュ配信が設定されたユーザデータを携帯端末に反映する際の動作であるのでキャッシュ状態がプッシュ配信のレコードを取得する。
キャッシュ状態管理部115は、該当レコードの処理中フラグをONに設定し、項目IDとアクセス種別=プッシュ配信をセットでデータ変更部114に返す(ステップS136)。そしてデータ変更部114は、ユーザデータ種別が合致するユーザデータテーブル123から項目IDのユーザデータを取得し、ユーザデータ種別及び項目IDとユーザデータとアクセス種別=プッシュ配信をセットにして同期情報としてデータアクセス管理部112に返す。データアクセス管理部112は、渡された同期情報と元のデータ同期開始要求からデータ同期要求を生成して通信部111に返す。通信部111は渡されたデータ同期要求を携帯端末2のデータアクセスソフトウェア22のサーバ通信部222に返信する(ステップS137)。
次に、データアクセスソフトウェア22のサーバ通信部222は受け取ったデータ同期要求をデータアクセス部221に渡す。データアクセス部221は、データ同期要求から同期情報を取得し、同期情報からユーザデータ種別と項目ID及びユーザデータを取り出してキャッシュ管理部223に渡す。キャッシュ管理部223は、渡されたユーザデータ種別と合致するユーザデータキャッシュ232に項目ID及びユーザデータを格納し、データアクセス部221に正常として返す。データアクセス部221は、サーバ通信部222を介してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ同期応答と共に保留していたデータ参照要求を行う。データ同期応答には端末ID、ユーザID、パスワード、ユーザデータ種別、項目ID及び処理結果を設定する。データ参照要求はステップS131と同一の内容である(ステップS138)。
次に、データ管理ソフトウェア11の通信部111はデータ同期応答のユーザ情報とデータベース12のユーザ情報テーブル121を使用して認証処理を行い、認証結果が正常であればデータ同期応答とデータ参照要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112はデータ同期応答をデータ変更部114に渡す。データ変更部114は、データ同期応答から端末ID、ユーザID、ユーザデータ種別、及び項目IDを取得してキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザデータ種別が合致するキャッシュ状態管理テーブル124から端末ID、ユーザID及び項目IDをキーとして検索し、該当レコードのキャッシュ状態を同期済、処理中フラグをOFFに更新し、処理結果を正常でデータ変更部114に返す。そして、データ変更部114は、処理結果を正常でデータアクセス管理部112に返す。図25は、キャッシュ状態管理テーブル124においてキャッシュ状態がプッシュ配信のレコードを同期済に更新する例を示している(ステップS139)。
次に、データアクセス管理部112は、データ同期応答と共に渡されたデータ参照要求の処理を開始し、以降はステップS5〜S10と同一の処理を行う(ステップS140)。
本第1の実施例では、携帯端末2、3として携帯電話を使用する場合について説明したが、PDA等の携帯可能、かつ通信機能を有していてインターネットなどの通信回線4に接続可能な端末についても適用可能である。
また、データ管理サーバ1と携帯端末2、3がインターネットなどの通信回線4で接続される場合について説明したが、セキュリティを高めるためにデータ管理サーバ1とインターネットとの間にファイアウォールを設置するように構成してもよい。
さらに、ユーザデータの格納にデータ管理サーバ1のデータベース12を利用する場合について説明したが、ファイルシステムを利用するように構成してもよい。
さらにまた、第1の実施例ではデータアクセスソフトウェア22、32からデータ管理サーバ1へ要求の都度、データ管理サーバ1のデータ管理ソフトウェア11の通信部111で認証処理を行う場合について説明したが、一度認証結果が正常であれば以降はAPサーバが提供する既知のセッション管理機能を利用して、セッションが有効な期間は認証処理を省略するように構成してもよい。
また、ユーザデータ種別毎にユーザデータテーブル123及びキャッシュ状態管理テーブル124をセットで用意する場合について説明したが、複数のユーザデータ種別を一組のユーザデータテーブル123とキャッシュ状態管理テーブル124で利用するように構成してもよい。その場合、ユーザデータテーブル123及びキャッシュ状態管理テーブル124にはユーザデータ種別がキーとして追加されることになる。
さらに、データ参照要求、データ変更要求、データ同期要求、及びデータ同期応答は一つの項目に関して処理を行う場合について説明したが、複数の項目に関する情報を処理するよう構成してもよい。
さらにまた、第1の実施例ではデータ参照要求、データ変更要求、データ同期開始要求、データ同期要求、及びデータ同期応答は1つのユーザデータ種別に関して処理を行う場合について説明したが、複数のユーザデータ種別を処理するよう構成してもよい。
また、変更されたユーザデータを同一ユーザの別の携帯端末に反映する時にデータアクセスソフトウェアからデータ参照要求を送信する場合について説明したが、特にデータ参照要求である必要はなく、例えば周期的なポーリング要求などの別のメッセージを利用するよう構成してもよい。
さらに、データ変更要求はユーザデータの変更が行われたタイミングでデータ管理サーバに送信する場合について説明したが、回線断等の理由で携帯端末とデータ管理サーバ間の通信が行えない場合はデータ変更要求を内部退避しておいて回線復旧後にデータ管理サーバへ送信するように構成してもよい。
次に、本実施例の効果について説明する。第1の効果は、サーバ側で携帯端末のユーザデータのキャッシュ状態を管理できることにある。例えば、ある携帯端末にはAさんのアドレスデータは最新のデータが格納されており、Bさんのアドレスデータはキャッシュから削除されているなどのキャッシュ状態をサーバ側で管理することができる。
その理由は、データ管理サーバのキャッシュ状態管理テーブルには端末、ユーザ、項目毎にキャッシュ状態の格納エリアを用意し、携帯端末からのユーザデータへのアクセス毎にキャッシュ状態テーブルのキャッシュ状態を更新して情報を最新に保っているためである。
第2の効果は、携帯端末によりユーザデータを変更した時に古いユーザデータをキャッシュに格納している同一ユーザが使用する別の携帯端末に変更の反映を行えることにある。例えば、携帯端末でスケジュールを更新した場合、古いスケジュールをキャッシュに格納している同一ユーザが使用する別の携帯端末がサーバにアクセスしたタイミングで別の携帯端末のキャッシュに変更を反映できる。
その理由は、キャッシュ状態管理テーブルのキャッシュ状態を、ユーザデータを変更した携帯端末だけでなく、同一ユーザが使用する別の携帯端末に関しても更新し、かつ別の携帯端末からサーバにアクセス時にキャッシュ状態管理テーブルをチェックしてデータ同期を行うことができるためである。
第3の効果は、サーバ側の判断によって携帯端末のキャッシュにユーザデータの格納が行えることにある。例えば、サーバに新しいスケジュールが登録されたが、スケジュールに関連するAさんのアドレスデータが携帯端末からキャッシュ削除されている場合、新しいスケジュールデータと共にAさんのアドレスデータを携帯端末のキャッシュに格納することができる。
その理由は、キャッシュ状態管理テーブルのキャッシュ状態をプッシュ配信に設定することにより、ユーザデータの変更が行われていなくてもデータ同期の対象として処理することができるためである。
[第2の実施例.]
次に、本発明の第2の実施例の構成について図面を参照して詳細に説明する。図26は、本発明の第2の実施例にかかる端末キャッシュ状態管理システムを示す図である。図26を参照すると端末キャッシュ状態管理システム101は、データ管理サーバ1と、同一ユーザが使用する携帯端末2と、携帯端末3と、PC5から構成されている。データ管理サーバ1、携帯端末2、携帯端末3、及びPC5はインターネットなどの通信回線4を介して接続され通信を行う。
データ管理サーバ1は、第1の実施例と同じ構成でありPC5からデータアクセスに関する要求を受信する点のみ異なる。携帯端末2、3は、第1の実施例と同一の構成である。PC5は、Webブラウザ51を含む。
図27は、本実施例にかかるデータ管理サーバを示すブロック図である。図27を参照するとデータ管理ソフトウェア11は、図3に示す第1の実施例に対してコンテンツ提供部117が追加されている。本実施例で追加されたデータ管理ソフトウェア11のコンテンツ提供部117は概略つぎのように動作する。
コンテンツ提供部117は、通信部111から渡されたPC5のWebブラウザ51からのコンテンツ取得要求に基づいてユーザデータの参照、登録、更新、及び削除の機能を利用でき、コンテンツを動的に生成して返す。コンテンツを動的に生成する機能はAPサーバの既知の手法を利用する。
次に、本発明の第2の実施例の動作について詳細に説明する。まず、準備段階のシステムの動作について説明する。データ管理サーバ1、携帯端末2、及び携帯端末3は第1の実施例と同様の動作となる。PC5にはWebブラウザ51を事前にインストールする。もしくは既にPC5にインストール済のWebブラウザを使用する。また、PC5の利用者にはデータ管理サーバ1のデータ管理ソフトウェア11にアクセスするためのURLを予め通知しておく。
携帯端末のデータ利用ソフトウェアがユーザデータを参照する時のシステムの動作については第1の実施例と同じ動作となる。
(11)PCのWebブラウザがユーザデータを参照する時のシステムの動作
図28は、PCのWebブラウザがユーザデータを参照する際の動作を示すフローチャートである。最初に、PC5のWebブラウザ51を起動してユーザデータへのアクセスに関するコンテンツをデータ管理サーバ1からダウンロードして表示し、データ参照と関連付けた画面部品を操作してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ参照要求を行う。データ参照要求にはユーザID、パスワード、指定されたユーザデータ種別及び項目ID又は検索条件を設定する(ステップS141)。
次に、データ管理ソフトウェア11の通信部111はデータ参照要求のユーザ情報とデータベース12のユーザ情報テーブル121を使用して認証処理を行い、認証結果が正常であればデータ参照要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112は、データ参照部113にデータ参照要求を渡す。データ参照部113は、データ参照要求からユーザデータ種別及び項目ID又は検索条件を取得する。そして、ユーザデータ種別が合致するユーザデータテーブル123から項目ID又は検索条件を使用してユーザデータを取得する。検索条件を使用した場合は、ユーザデータと共に項目IDも取得する(ステップS142)。
次に、データ参照部113は取得したユーザデータをデータアクセス管理部112に返す。データアクセス管理部112は渡されたユーザデータと元のデータ参照要求からデータ参照応答を生成して通信部111に返す。通信部111は渡されたデータ参照応答をPC5のWebブラウザ51に返信する(ステップS143)。
携帯端末のデータ利用ソフトウェアがユーザデータを登録する時のシステムの動作については第1の実施例と同じ動作となる。
(12)PCのWebブラウザがユーザデータを登録する時のシステムの動作
図29は、PCのWebブラウザがユーザデータを登録する際の動作を示すフローチャートである。最初に、PC5のWebブラウザ51を起動してユーザデータへのアクセスに関するコンテンツをデータ管理サーバ1からダウンロードして表示し、データ登録と関連付けた画面部品を操作してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ変更要求を行う。データ変更要求にはユーザID、パスワード、指定されたユーザデータ種別、ユーザデータ、及びアクセス種別=登録を設定する(ステップ151)。
次に、データ管理ソフトウェア11の通信部111はデータ変更要求のユーザ情報とデータベース12のユーザ情報テーブル121を使用して認証処理を行い、認証結果が正常であればデータ変更要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112は、データ変更部114にデータ変更要求を渡す。データ変更部114は、データ変更要求から取得したユーザデータ種別の項目IDを新たに採番し、その項目IDでユーザデータ種別と合致するユーザデータテーブル123にデータ変更要求から取得したユーザデータを登録する(ステップS152)。
次に、データ変更部114はユーザID、ユーザデータ種別、項目ID及びアクセス種別=登録をセットにしてキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザIDをキーとして端末情報テーブル122の検索を行い、ユーザIDが使用する端末IDが存在するかチェックする。存在しない場合、データ変更部114に処理結果を正常として返す。存在する場合、キャッシュ状態管理テーブル124に全端末に関して端末IDとユーザIDと項目IDをキーとしてキャッシュ状態を未登録でレコードを登録し、データ変更部114に処理結果を正常として返す。同一ユーザの携帯端末のキャッシュ状態を更新しておくことで、同様にキャッシュ管理ができ、また、当該携帯端末がデータ管理サーバにアクセスした際にデータ同期を行うことができる。図30は、キャッシュ状態管理テーブル124において同一ユーザが使用する全端末の端末IDでキャッシュ状態を未登録として登録する例を示している(ステップS153)。
次に、データ変更部114は処理結果と採番した項目IDをデータアクセス管理部112に返す。データアクセス管理部112は渡された処理結果と項目IDと元のデータ変更要求からデータ変更応答を生成して通信部111に返す。通信部111は渡されたデータ変更応答をPC5のWebブラウザ51に返信する(ステップS154)。
登録されたユーザデータを同一ユーザの別の携帯端末に反映する時のシステムの動作については第1の実施例と同じ動作となる。
携帯端末のデータ利用ソフトウェアがユーザデータを更新する時のシステムの動作については第1の実施例と同じ動作となる。
(13)PCのWebブラウザがユーザデータを更新する時のシステムの動作
図31は、PCのWebブラウザがユーザデータを更新する際の動作を示すフローチャートである。最初に、PC5のWebブラウザ51を起動してユーザデータへのアクセスに関するコンテンツをデータ管理サーバ1からダウンロードして表示し、データ更新と関連付けた画面部品を操作してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ変更要求を行う。データ変更要求にはユーザID、パスワード、指定されたユーザデータ種別と項目ID、ユーザデータ、及びアクセス種別=更新を設定する(ステップS161)。
次に、データ管理ソフトウェア11の通信部111はデータ変更要求のユーザ情報とデータベース12のユーザ情報テーブル121を使用して認証処理を行い、認証結果が正常であればデータ変更要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112は、データ変更部114にデータ変更要求を渡す。データ変更部114はデータ変更要求からユーザデータ種別、項目ID及びユーザデータを取得し、ユーザデータ種別と合致するユーザデータテーブル123の項目IDをキーとしてユーザデータを更新する(ステップS162)。
次に、データ変更部114はユーザID、ユーザデータ種別、項目ID、及びアクセス種別=更新をセットにしてキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザIDをキーとして端末情報テーブル122の検索を行い、ユーザIDが使用する端末IDが存在するかチェックする。存在しない場合、データ変更部114に処理結果を正常として返す。存在する場合、キャッシュ状態管理テーブル124に全端末に関して端末ID、ユーザID及び項目IDをキーとしてキャッシュ状態を未更新でレコードを更新し、データ変更部114に処理結果を正常として返す。同一ユーザの携帯端末のキャッシュ状態を更新しておくことで、同様にキャッシュ管理ができ、また、当該携帯端末がデータ管理サーバにアクセスした際にデータ同期を行うことができる。図32は、キャッシュ状態管理テーブル124において同一ユーザが使用する全端末の端末IDでキャッシュ状態を未更新でレコードを更新する例を示している(ステップS163)。
次に、データ変更部114は処理結果をデータアクセス管理部112に返す。データアクセス管理部112は渡された処理結果と元のデータ変更要求からデータ変更応答を生成して通信部111に返す。通信部111は渡されたデータ変更応答をPC5のWebブラウザ51に返信する(ステップS164)。
更新されたユーザデータを同一ユーザの別の携帯端末に反映する時のシステムの動作については第1の実施例と同じ動作となる。
携帯端末のデータ利用ソフトウェアがユーザデータを削除する時のシステムの動作については第1の実施例と同じ動作となる。
(14)PCのWebブラウザがユーザデータを削除する時のシステムの動作
図33は、PCのWebブラウザがユーザデータを削除する際の動作を示すフローチャートである。最初に、PC5のWebブラウザ51を起動してユーザデータへのアクセスに関するコンテンツをデータ管理サーバ1からダウンロードして表示し、データ削除と関連付けた画面部品を操作してデータ管理サーバ1のデータ管理ソフトウェア11の通信部111へデータ変更要求を行う。データ変更要求にはユーザID、パスワード、指定されたユーザデータ種別と項目ID、及びアクセス種別=削除を設定する(ステップS171)。
次に、データ管理ソフトウェア11の通信部111はデータ変更要求のユーザ情報とデータベース12のユーザ情報テーブル121を使用して認証処理を行い、認証結果が正常であればデータ変更要求をデータアクセス管理部112に渡す。そして、データアクセス管理部112は、データ変更部114にデータ変更要求を渡す。データ変更部114はデータ変更要求からユーザデータ種別及び項目IDを取得し、ユーザデータ種別と合致するユーザデータテーブル123の項目IDをキーとして検索し、レコードを削除する(ステップS172)。
次に、データ変更部114はユーザID、ユーザデータ種別、項目ID、及びアクセス種別=削除をセットにしてキャッシュ状態管理部115に渡す。キャッシュ状態管理部115は、ユーザIDをキーとして端末情報テーブル122の検索を行い、ユーザIDが使用する端末IDが存在するかチェックする。存在しない場合、データ変更部114に処理結果を正常として返す。存在する場合、キャッシュ状態管理テーブル124に全端末に関して端末ID、ユーザID、及び項目IDをキーとしてキャッシュ状態を未削除でレコードを更新し、データ変更部114に処理結果を正常として返す。同一ユーザの携帯端末のキャッシュ状態を更新しておくことで、同様にキャッシュ管理ができ、また、当該携帯端末がデータ管理サーバにアクセスした際にデータ同期を行うことができる。図34は、キャッシュ状態管理テーブル124において同一ユーザが使用する全端末の端末IDでキャッシュ状態を未削除でレコードを更新する例を示している(ステップS173)。
次に、データ変更部114は処理結果をデータアクセス管理部112に返す。データアクセス管理部112は渡された処理結果と元のデータ変更要求からデータ変更応答を生成して通信部111に返す。通信部111は渡されたデータ変更応答をPC5のWebブラウザ51に返信する(ステップS174)。
削除されたユーザデータを同一ユーザの別の携帯端末に反映する時のシステムの動作については第1の実施例と同じ動作となる。
携帯端末のデータアクセスソフトウェアがユーザデータをキャッシュから削除する時のシステムの動作については第1の実施例と同じ動作となる。
携帯端末へユーザデータをプッシュ配信する要求する時のシステムの動作については第1の実施例と同じ動作となる。
プッシュ配信が設定されたユーザデータを携帯端末に反映する時のシステムの動作については第1の実施例と同じ動作となる。
本発明の第2の実施例では、PC5のWebブラウザ51を利用しているが、データ管理サーバ1のコンテンツ提供部117からダウンロードするコンテンツの処理が可能な専用アプリケーションを利用するように構成してもよい。
また、第2の実施例では、コンテンツ提供部117をデータ管理サーバ1のデータ管理ソフトウェア11内に配置しているが、コンテンツ提供部117のみ別サーバに配置して、データ管理サーバ1のデータ管理ソフトウェア11との通信を行うように構成してもよい。
なお、第1の実施例に他の構成として記載した内容は第2の実施例にも適用可能である。
本実施例においても、第1の実施例と同一の効果を奏する。さらに、コンテンツ提供部117は、通信部111から渡されたPC5のWebブラウザ51からのコンテンツ取得要求に基づいてユーザデータの参照、登録、更新、及び削除の機能を利用でき、コンテンツを動的に生成し、ユーザデータを更新する。この場合も、データ管理サーバ1から携帯端末のキャッシュの状態を適宜更新し、携帯端末のキャッシュのデータを更新すべき場合は更新することで、データ管理サーバ1にて携帯端末のキャッシュデータを管理することができる。
なお、本発明は上述した実施例のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施例では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の伝送媒体を介して伝送することにより提供することも可能である。