(57)【要約】  システムの開示であって、システムは装置のデータ変更を表すリクエストを受信するサーバを備える。サーバと接続する装置からリクエストを受信する。サーバはｗｅｂサービス記述を介し変更を識別する第一のシンクロナイザーを備える。サーバはさらに第２のシンクロナイザーも備え、識別した変更を装置のデータと同期させて、装置におけるデータを更新する。【特許請求の範囲】
【請求項１】
データを有する装置と、
前記装置からリクエストを受信するサーバであって、
前記リクエストは前記データの変更を表し、ｗｅｂサービス記述を介して前記変更を識別する第１のシンクロナイザーと、
識別した前記変更を前記装置における前記データと同期させて、前記データを更新する第２のシンクロナイザーを有する前記サーバと、
を備えるシステム。
【請求項２】
前記第１のシンクロナイザーはレコード・シンクロナイザーを備え、
前記第２のシンクロナイザーはデータ・シンクロナイザーを備えることを特徴とする請求項１に記載のシステム。
【請求項３】
ｗｅｂサービス・サーバに備わるｗｅｂサービス記述言語（ＷＳＤＬ）を介して前記ｗｅｂサービス記述を提供し、
前記ｗｅｂサービス・サーバはネットワークを介し前記サーバと接続することを特徴とする請求項１に記載のシステム。
【請求項４】
前記ｗｅｂサービス記述は前記変更の前記識別を容易にする情報を含み、
前記情報には前記データに対して実行する前記変更を表す操作がさらに記述されていることを特徴とする請求項３に記載のシステム。
【請求項５】
前記操作は、一又は二以上の検索操作、作成操作、更新操作、削除操作を含み、
ｗｅｂサービス・インターフェースを介して前記操作を実行することを特徴とする請求項４に記載のシステム。
【請求項６】
前記第１のシンクロナイザーは前記変更を追跡し、前記第２のシンクロナイザーに前記変更を通知し、前記装置に前記変更のダウンロードを行い、
前記変更の前記ダウンロードは前記変更を前記装置における前記データと同期することを特徴とする請求項１に記載のシステム。
【請求項７】
前記第１のシンクロナイザーは、一又は二以上のキャッシュ及びデータベースにおける一又は二以上の変更の識別と変更の同期状態を管理することを特徴とする請求項６に記載のシステム。
【請求項８】
前記サーバは通知登録管理機能を備え、前記装置のｗｅｂサービス検索要求通知登録を管理し、
定義済み検索操作を介してデータ・オブジェクトのポーリングを容易にし、
前記サーバにおけるｗｅｂサービス管理機能を介してレコード毎に定期的に問い合わせを行うことを特徴とする請求項１に記載のシステム。
【請求項９】
前記ｗｅｂサービス管理機能は前記ＷＳＤＬによって表されるような前記レコードを前記通知登録管理機能に提供し、
所定のレコード境界を介して前記レコードを識別及び抽出することを特徴とする請求項８に記載のシステム。
【請求項１０】
前記ｗｅｂサービス管理機能が前記ｗｅｂサービス・サーバに前記変更をアップロードする場合、前記変更の前記アップロードは前記変更を前記ｗｅｂサービス・サーバ及び前記第１のシンクロナイザーと同期することを特徴とする請求項９に記載のシステム。
【請求項１１】
前記ｗｅｂサービス管理機能は前記ｗｅｂサービス・サーバを起動して、
前記データの取り出し、
前記第１のシンクロナイザーの更新、
前記サーバと前記装置に代わる前記ｗｅｂサービス・サーバ間のｗｅｂサービス・リクエスト及びｗｅｂサービス・レスポンスの管理、
を行うことを特徴とする請求項９に記載のシステム。
【請求項１２】
データを有する装置から、前記データに対する変更を表すリクエストを受信する段階と、
ｗｅｂサービス記述を介して前記変更を識別する段階と、
識別した前記変更を前記装置における前記データと同期させて、前記データを更新する段階と、
を含む方法。
【請求項１３】
レコード・シンクロナイザーを備える第１のシンクロナイザーを介して前記変更の前記識別を実行し、
データ・シンクロナイザーを備える第２のシンクロナイザーを介して識別した前記変更の前記同期を実行することを特徴とする請求項１２に記載の方法。
【請求項１４】
ｗｅｂサービス・サーバに備わるｗｅｂサービス記述言語（ＷＳＤＬ）を介して前記ｗｅｂサービス記述を提供し、
前記ｗｅｂサービス・サーバはネットワークを介し前記サーバと接続することを特徴とする請求項１２に記載の方法。
【請求項１５】
前記ｗｅｂサービス記述は前記変更の前記識別を容易にする情報を含み、
前記情報には前記データに対して実行する前記変更を表す操作がさらに記述されていることを特徴とする請求項１４に記載のシステム。
【請求項１６】
ｗｅｂサービス管理機能を介して前記ｗｅｂサービス・サーバに前記変更をアップロードし、
前記変更の前記アップロードは前記変更を前記ｗｅｂサービス・サーバ及び前記第１のシンクロナイザーと同期することを特徴とする請求項１２に記載の方法。
【請求項１７】
リクエストはデータに対する変更を表しており、機械が前記データを有する装置から前記リクエストを受信することと、
ｗｅｂサービス記述を介して前記変更を識別することと、
識別した前記変更を前記装置における前記データと同期させて、前記データを更新することと、
を実行する指示のセットであって、前記指示のセットを表すデータを記憶する機械が読み取り可能な媒体。
【請求項１８】
ｗｅｂサービス・サーバに備わるｗｅｂサービス記述言語（ＷＳＤＬ）を介して前記ｗｅｂサービス記述を提供し、
前記ｗｅｂサービス・サーバはネットワークを介し前記サーバと接続することを特徴とする請求項１７に記載の機械が読み取り可能な媒体。
【請求項１９】
前記機械が第１のシンクロナイザーを介して前記変更を追跡するようにし、
前記第１のシンクロナイザーが第２のシンクロナイザーに前記変更を通知し、前記装置に前記変更のダウンロードを行うようにし、
前記変更の前記ダウンロードは前記変更を前記装置における前記データと同期するよう前記機械が実行する指示のセットを含むことを特徴とする請求項１７に記載の機械が読み取り可能な媒体。
【請求項２０】
前記機械がｗｅｂサービス管理機能を介して前記ｗｅｂサービス・サーバに前記変更をアップロードするようにし、
前記変更の前記アップロードは前記変更を前記ｗｅｂサービス・サーバ及び前記第１のシンクロナイザーと同期するよう前記機械が実行する指示のセットを含むことを特徴とする請求項１７に記載の機械が読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にネットワークデータサービスの分野に関する。より詳細には、本発明は無線装置の最新データを維持するための方法及びシステムに関する。
【背景技術】
【０００２】
ここ数年、さまざまな無線データ処理装置が紹介されている。これらにはハンドヘルド・コンピュータＴｒｅｏ６５０のような携帯情報端末（ＰＤＡｓ）やデータ処理機能を備えた携帯電話（例えば、ワイヤレス・アプリケーション・プロトコル（ＷＡＰ）をサポートするような機器）、最近では、無線メッセージング装置などが含まれる。
【０００３】
無線装置の使用の増加に伴い、無線装置上の重要データは可能な限り最新であることの重要性が増加しており、さらに扱いにくくなっている。従来の無線装置のデータを更新する方法は、同期した全てのデータを更新することや、データベースを直接変更する必要があった。そのようなデータベースへの変更は無線装置がオンラインである必要がある。変更はトリガーやプロシージャー呼び出し、検索要求などを用いて、データベースに直接行う。その変更はシステム（サーバなど）を不安定にする可能性があり。極めて重要なシステムが問題を含んだ状態となる可能性がある。更新したデータ量はエンタープライズ・ビジネス・データを扱う場合のように比較的大きくなっており、問題をさらに悪化させている。
【発明の開示】
【課題を解決するための手段】
【０００４】
本発明の概要
一つの実施例では、システムが無線装置の最新データを維持するために開示される。システムはリクエストを受信するサーバを備え、そのリクエストは装置に存在するデータの変更を表す。リクエストは装置から受信し、その装置は無線ネットワーク上でサーバと接続する。サーバは第１のシンクロナイザーを備え、ｗｅｂサービス記述を介し変更を識別する。第１のシンクロナイザーはビジネス・レコード・シンクロナイザーを備える。サーバはさらに第２のシンクロナイザーを備え、識別した変更を装置にダウンロードし、装置でデータを更新する。変更のダウンロードは識別した変更を装置のデータと同期することを含み、装置が有するデータを更新する。
【０００５】
他の実施例では、方法が開示される。該方法は本装置からリクエストを受信することを含む。リクエストは本装置に存在するデータの変更を表す。この方法はｗｅｂサービス記述を介し変更を識別することと、識別した変更を本装置のデータと同期することをさらに含み、本装置のデータを更新する。
【０００６】
以下の図面に関連した詳細な説明から、本発明のさらなる理解を得ることができる。
【発明を実施するための最良の形態】
【０００７】
無線装置と通信するためにデータを圧縮、解凍するためのメカニズムである一つの実施例に従い、以下の説明において、本発明を完全に理解するために種々の詳細な説明が説明される。しかし、具体的な詳細の一部が無くても、当業者であれば本発明を実施できることは明白であろう。他の例では、本発明の基本原理が曖昧にならないよう、既知の構造及び装置をブロック図に示す。
【０００８】
実施例に関連する特定の特徴や構造または特徴的な説明は少なくとも一つの実施例を含み、「一つの実施例」及び「実施例」によって、詳細な説明を行う。詳細な説明の多くで「一つの実施例」という用語が記載されているが、必ずしも同じ実施例を参照するものではない。
【０００９】
図１はネットワーク構成の一実施例を示す。「カスタマー・サイト」１２０は図１に示され、ローカル・エリア・ネットワークまたはワイド・エリア・ネットワークを用いることができ、そのネットワーク上で複数のサーバ１０３やクライアント１１０が通信する。例えば、カスタマー・サイト１２０は単一の会社が維持する全てのサーバやクライアントを含むことができる。
【００１０】
サーバ１０３はネットワークの利用者に対して、さまざまなメッセージング、グループウェアサービス１０２を備える（例えば、ｅメール、インスタント・メッセージング、カレンダーなど）。しかし、本発明の基本原理は特定のメッセージング／グループウェアのプラットフォームに限定するものではない。
【００１１】
一つの実施例では、インターフェース１００は、サービス１０２が保持するデータ・オブジェクト（例えば、ｅメールのメッセージ、インスタント・メッセージ、カレンダー・データなど）を複数の無線データ処理装置（図１では装置１３０）に転送し、その転送は外部データネットワーク１７０及び／または無線サービス提供者のネットワーク１７１を介して行われる。例えば、サーバ１０３はｗｅｂサービスの代用としての機能を果たし、そのサーバは無線ネットワークの様々な携帯装置１３０にデータを送信する。
【００１２】
一つの実施例では、インターフェース１００はソフトウエア・モジュールであって、特定のサービス１０２によって機能する。ここで、注意すべきは、インターフェース１００は、単一または複数構成のハードウエアやソフトウエアに実装することができる。そして、それらは本発明の基本原理と整合する。
【００１３】
一つの実施例では、外部データネットワーク１７０には、インターフェース１００と装置１３０間にデータを送信するために複数の機器などが含まれる。その機器はデータベースやサーバ／クライアント（図示せず）そして、他のネットワーク・ハードウエア（例えば、ルーター、ハブなど）などである。一つの実施例では、インターフェース１００はデータを一つまたはそれより多いパケットにカプセル化する。そのパケットには装置１３０を識別するアドレスが含まれる（例えば、３２ビット・モビテックス・アクセス番号（ＭＡＮ＃））。
【００１４】
外部データネットワーク１７０はパケットを無線サービス提供者のネットワーク１７１に送信する。それは言い換えると、パケット（又はこの時点で含んでいるデータ）を無線通信リンク上で装置１３０に送信する。一つの実施例では、無線サービス提供者のネットワークはＣＤＭＡ２０００ネットワークである。また一方、さまざまなネットワークタイプを採用することができる（例えば、モビテックス、ＧＰＲＳ、ＰＣＳなどである）。そして、それらは本発明の基本原理と整合する。
【００１５】
ここで注意すべきは、ネットワーク・サービス提供者のネットワーク１７１及び外部データネットワーク１７０（かつインターフェース１００と通信する）は同一の組織による所有、運営または、無線サービス提供者のネットワークから無線サービスを借りた所有者、運営者の一方による所有、運営とすることもできる。本発明の基本原理は特定のサービス構成には限定しない。
【００１６】
図２は無線装置２０２の最新データを維持するためのアーキテクチャーの実施例を示す。実施例の説明において、無線処理装置（装置）２０２はサーバ２０４と接続し、通信する。装置２０２はモバイル・コンピュータ・システムまたはモバイル・コンピュータ装置を含む。それらは、例えば、ノート型コンピュータ、携帯電話（例えば、スマートホンなど）、携帯情報端末（ＰＤＡ）、ポケット・コンピュータなどである。サーバ２０４はエンタープライズ・サーバ２２０とさらに通信する。そのエンタープライズ・サーバはｗｅｂサービスを提供する。サーバ２０４及びエンタープライズｗｅｂサービス・サーバ（ＷＳサーバ）２２０はネットワークを介して互いに通信することを目的とする。装置２０２はオンライン又はオフラインとすることができ、装置２０２及びサーバ２０４はＷＳサーバ２２０のバックエンドと通信し、その通信はｗｅｂサービス及びｗｅｂサービス・アプリケーションを介して行われる。ネットワークの例としてはローカル・エリア・ネットワーク（ＬＡＮ）やワイド・エリア・ネットワーク（ＷＡＮ）、都市規模ネットワーク（ＭＡＮ）、インターネット、そしてそれらと同様なネットワークとすることができる。さらに、ネットワークは無線ネットワークと接続し、通信する。サーバ２０４はＧｏｏｄｌｉｎｋ（商標）サーバ、Ｇｏｏｄ  Ａｃｃｅｓｓ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ（ＧＡＷＳ）サーバなどとすることができる。それらは、米国カリフォルニア州、サンタクララ、Ｇｏｏｄ Ｔｅｃｈｎｏｌｏｇｙ社が提供する。ｗｅｂサービス・エンタープライズ・サーバの例は、ドイツ、ヴァルドルフ、ＳＡＰ  ＡＧ社のＷｅｂアプリケーション・サーバ、や米国ニューヨーク州、アーモンクのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ社（ＩＢＭ（商標））のＷｅｂＳｐｈｅｒｅアプリケーション・サーバなどである。
【００１７】
一つの実施例では、サーバ２０４は通知登録管理機能２１０、ｗｅｂサービス管理機能（ＷＳ管理機能）２１２、ビジネス・レコード・シンクロナイザー（ビジネス・レコード・シンク）２１４、データ・シンクロナイザー（データ・シンク）２１６を含む。データ・シンク２１６はジェネリック・データ・シンクロナイザーを含む。装置２０２に対応するｗｅｂサービス検索要求通知登録を管理するよう通知登録管理機能２１０を用いる。例えば、定義済み検索要求ｗｅｂサービス操作を介してデータ・オブジェクトをポーリングするために通知登録管理機能２１０を用いる。各検索要求通知登録は引数を伴ってｗｅｂサービス呼び出しを行い、ビジネス・データのグループを識別する。例えば、ある検索要求を高優先度の販売口座のグループと定義することができる。さらに複数の検索要求通知登録は異なる引数を用いた同一のｗｅｂサービス・メソッド呼び出しを共用することができる。また、アプリケーションにおいて、各ユーザ及び／又は装置２０２のために、複数の検索要求通知登録を定義できる。つまり、使用の度にそれぞれの状態が異なるビジネス・レコードのグループを採用できる。
【００１８】
ＷＳ管理機能２１２は、装置２０２に代わってｗｅｂサービス・リクエスト及びｗｅｂサービス・レスポンスを扱う（リクエスト生成の際の認証を含む）。通知登録管理機能２１０がコマンドを受信すると、ＷＳ管理機能２１２はｗｅｂサービスを起動し、ビジネス・レコードを取り出す。そして、ビジネス・レコード・シンク２１４を更新する。各装置２０２のために、ビジネス・レコード・シンク２１４はレコード識別及び同期状態の情報（冗長レコードの重複を含む）を管理する。ビジネス・レコード・シンク２１４はデータ・シンク２１６を用いて、装置２０２のデータの追跡及び同期を直接行う。ビジネス・レコードの識別及び通知登録のための変更を管理するためにビジネス・レコード・シンク２１４を用いる。データ・シンク２１６はデータベース２０６を用いて、装置２０２のデータを追跡して同期する。
【００１９】
装置２０２がオンライン又はオフラインである場合、利用者は装置２０２のデータを変更することができる。変更は既存データの修正、削除、そして、新しいデータの追加を行うことができる。各装置２０２毎に、変更はサーバ２０４において認識され、データ・シンク２１６によってデータベース２０６と同期が行われる。サーバ・プロセスはＸＭＬ（Extensible Markup Language）と、シンプル・オブジェクト・アクセス・プロトコル（ＳＯＡＰ）ｗｅｂサービス変更操作（更新、削除、追加、作成など）を呼び出す。その呼び出しは、適切なＸＭＬ  ｗｅｂサービス・ペイロードのような利用者の変更を用いて、サーバ・データベース２０６で行われる。例えば、ｗｅｂサービスがサーバ２０４におけるデータ管理機能２１４を用いるための準備プロセスの間、管理者又は開発者はｗｅｂサービス変更操作を識別できる。通知登録管理機能２１０を実行すると、それら変更は最終的に、ビジネス・レコード・シンク２１４及びキャッシュ２０８におよぶ。
【００２０】
ｗｅｂサービスを用いると、ＸＭＬ  ｗｅｂサービスで利用可能なビジネス操作はデータ記述／メタデータを含み、そのビジネス操作は、ＷＳサーバ２２０におけるｗｅｂサービス記述言語（ＷＳＤＬ）になどよって表される。そして、必要なビジネス・ロジックを取得する。そのビジネス・ロジックは通常ビジネス操作でラップされている。ｗｅｂサービスは操作を提供する。その操作はＷＳＤＬ２２４によって表され、ＷＳ管理機能２１２によって用いられる。それら操作は、ＷＳＤＬ２２４によって表され、検索操作、作成操作、更新操作、削除操作を含むことができ、全体でＱＣＵＤ操作と呼ばれる。検索は通知登録管理機能２１０が定期的にデータに問い合わせできることを示し、さらに、作成操作、更新操作、削除操作も選択可能である。さらに、ｗｅｂサービス・インターフェース２２２を介して、ｗｅｂサービスＱＣＵＤ操作を実行できる。
【００２１】
一つの実施例では、変更はデータベース２０６に報告され、作成される。その後、変更はサーバ２０４のシンクロザイザー２１６を介して装置２０２と同期する。このメカニズムはデータ変更のダウンロードとすることができる。データ・シンク２１６を介した装置２０２に対するデータ変更のダウンロードは、装置２０２がオンライン又は非接続の状態で実行できる。データベース２０６は複数の装置２０２に対応するデータを含む。一方、キャッシュ２０８は一つの装置２０２に対応するデータを含む。時折、非接続となる装置２０２であっても最新を保つことができる。これは、ＷＳサーバ２２０のｗｅｂサービスを介して、公開されたバックエンドのアプリケーションからデータを頻繁に変更するからである。
【００２２】
一つの実施例では、既存データがＷＳサーバ２２０で変更されているとすると、通知登録管理機能２１０はＷＳ管理機能２１２を定期的に用いて、ｗｅｂサービスへデータについての問い合わせを行う。このレスポンスはＷＳＤＬ２２４が表すレコードを含む。レスポンスからこれらレコードの識別及び抽出を行う。その識別及び抽出には所定のレコード境界ＸＭＬパス（ＸＰａｔｈ）を用いる。ＸＰａｔｈはＸＳＬ（Extensible Stylesheet Language）スタイル・シートの下位言語を参照し、そのスタイル・シートを処理のためにＸＭＬ要素の識別に用いる。また、数値及び多様な文字列を計算するのに用いる。可能であれば、レコードのプライマリー・キー又はユニーク識別子をＸＰａｔｈが識別する。他の方法では、レコード内容のハッシュによってプライマリー・キーを計算する。ビジネス・レコード・シンク２１４にレコードを送り、認識される。そして装置２０２のためにレコードを変更する。キャッシュ２０８を用いると、装置２０２が現在、どのようなデータを有しているかや、どのような変更がされているかを、ビジネス・レコード・シンク２１４は検知することができる。ビジネス・レコード・シンク２１４はデータ・シンク２１６を用いて、装置２０２へ直近の変更をダウンロードする。
【００２３】
一つの実施例では、サーバ２０４のデータ・シンク２１６を用いて、データの変更を装置２０２と同期させて、装置２０２へデータ変更をダウンロードする。アップロードによって、データ変更のみをダウンロードし、装置２０２へ全データをダウンロードする必要性を排除する。このメカニズムによって、装置２０２が最新データ又は更新データを維持し続けることを可能にする。これはｗｅｂサービスのバックエンドからの大きいＸＭＬ検索要求レスポンスを連続的に処理しても、装置のプロセッサや帯域幅を独占することなく実行することを示し、データ変更のみについてアップロードやダウンロードを行う。時間を消費し、遅延の原因となる大きな全データ更新や小さな追加変更の双方を排除する。さらに、サーバ２０４及び構成要素（通知登録管理機能２１０、ＷＳ管理機能２１２、ビジネス・レコード・シンク２１４、データ・シンク２１６など）は装置２０２の最新データ及び更新データを維持する。その維持にはプログラムをカスタマイズすることなく任意のエンタープライズ・データのみを用いることで行われる。
【００２４】
図３はビジネス・レコード・シンク２１４の内部構造の実施例を示す。ビジネス・レコード・シンク２１４はキャッシュ２０８、データ・シンク２１６及びデータベース２０６と通信する。データ・シンク２１６はジェネリック・データ・シンク（generic data sync）３１２を備え、そのジェネリック・データ・シンク３１２はデータ・シンク・ネットワーク（data sync network）３１４、データベース２０６のデータ・シンク記憶（data sync storage）３１６及びビジネス・レコード・シンク２１４のレコード管理機能（record manager）３０２と通信する。キャッシュ２０８はビジネス・レコード・キャッシュ（BRCache）３１８を備え、ビジネス・レコード・シンク２１４と通信する。これらは各装置毎に構成する一つのビジネス・レコード・キャッシュ３１８とすることができる。
【００２５】
ＷＳビジネス・レコード（WS business record）３０６はｗｅｂサービス・レスポンスから抽出する。そのＷＳビジネス・レコード３０６は無線装置上に表示又は記憶されているようなレコードを表し、エンタープライズ・データ（アカウント・データ、製品データ、顧客データ、問い合わせ、備考など）の一部を表す。キーはデータベースのプライマリー・キーと同じとみなされ、データベースの各行はビジネス・レコードを表すレコードとすることができる。ｗｅｂサービス検索要求通知登録から、ＷＳビジネス・レコード３０６を識別するキーを抽出する。その識別は、管理者が設定するようなｗｅｂサービス・レスポンス内のｘｐａｔｈによって行うことがきる。設定されていない場合はＷＳビジネス・レコード３０６の内容のハッシュとすることができる。ＷＳビジネス・レコード３０６にインデックスを付けるようキーを用いることができる。
【００２６】
ビジネス・レコード３０６をキャッシュするためにキャッシュ２０８を用いる。そのキャッシュには、各装置又は利用者毎のデータが新規、更新、削除といった状態を維持できる情報を含む。その維持は既存データと変更データを比較することによって行うことができる。そして、キャッシュ・データ内の変更を決定することができる。さらに、ビジネス・レコード３０６のキャッシュはビジネス・レコード３０６を一時的に保存し、パフォーマンスの向上に寄与する。ビジネス・レコード・キャッシュ３１８を優先的に読み取る（遅延生成など）からである。また、ビジネス・レコード３０６を一定時間（管理者によって設定可能）使わないことで、メモリの内容を消去することができるからである。さらに、既に同期済みの内容を含まない代理レコードであることをキャッシュ２０８に記憶できることで、ビジネス・レコード・キャッシュ３１８からビジネス・レコード３０６を消去する必要が無くなる。
【００２７】
利用者は装置によって、検索要求指定を登録できる。その登録は通知登録管理機能を通じて、ビジネス・レコード・グループ関連付け（business record group association）３０４を用いて行い、関連するＷＳビジネス・レコード３０６のグループを識別する。レコード・グループ関連付け３０４はレコード・データの複製防止に役立たせることができ、そのレコード・データは装置に対応する各キャッシュ２０８内に存在する。そして、その対応は特定のレコード３０６に保存又は関連しているグループを決定することによって行われる。通知登録管理機能は各装置毎の多くのグループを管理するのに用いることができる。レコード３０６に対するグループのレコード・グループ関連付け３０４を更新するためにインターフェースを用いる。
【００２８】
各利用者の空間のために、ＷＳビジネス・レコード・キー・マップ（WS business record key map）３０８はマッピングを行い、そのマッピングはデータ・シンク２１６におけるレコード・キーとそれに関連するデータ識別子（ｄａｔａＩＤ）の双方の関係について行う。マッピングは固定の記憶装置内に保存され、開始時に読み取られる。一つの実施例では、レコード・グループ関連付け３０４、レコード・キャッシュ３１０及びＷＳレコード・キー・マップ３０８はレコード管理機能パッケージの外部に対して非公開とすることができる。
【００２９】
一つの実施例では、開始時又は初期化時において、レコード管理機能３０２は各装置に記憶されているレコード３０６を検知する。また、初期化時にジェネリック・データ・シンク３１２において利用可能な内容の一部を読み取る。例えば、以下のような動作を省略したままか回避することができる。（１）各シンクロナイザーのｄａｔａＩＤと各装置毎のレコード・キーの間のマッピングを読み込む（２）開始時にレコードをいくらか読み取るが、ｄａｔａＩＤとキーのマッピングを信頼することによって読み取りを要求しないことで、シンクロナイザーからの遅延読み取りに役立つ。ハイブリッド・スキーマを採用することができ、シンクロナイザーに書き込まれるまでメモリ内に保持した新規又は更新したレコード内容をハイブリッド・スキーマに保有する。（３）要求に応じて、レコード・グループ関連付け３０４を生成することができる。例えば、利用者の検索要求通知登録の一部ではないＷＳビジネス・レコード３０６をシンクロナイザーから削除できる場合、レコード管理機能３０２は問題無く動作が可能である。さらに、ｄａｔａＩＤとキーのマッピングはそれに応じて分離する。しかし、レコード管理機能３０２はｗｅｂサービスからレコード３０６を直接削除できない。
【００３０】
操作に関して、無線装置にＷＳビジネス・レコード３０６を複製することができる。その複製は、それぞれの対応する装置に基づいてメモリ内の情報を維持するように行うことができる。そのようなレコード３０６の複製はより単純な実行及びレコード３０６の同期を可能にすることができる。そして、潜在的な不一致を回避するのに役立つことができる。レコード管理機能３０２は以下のような操作計画をサポートすることができる。（１）作成（ｄａｔａＩＤの作成及び／又は割り当て、そして、ｄａｔａＩＤによって識別されるようなＷＳビジネス・レコード３０６を作成すること）（２）読み取り（各装置毎におけるレコード３０６の直近ヴァージョンにアクセスする）（３）更新（レコード３０６を更新する）（４）グループ更新（ＷＳビジネス・グループ３０６のグループ全体を更新する）。レコード管理機能３０２はレコード３０６の削除操作をサポートするようにもしないようにもできる。例えば、レコード・グループ関連付け３１０を用いて、シンクロナイザーから削除するために、適切なＷＳレコード３０６を識別することができる。さらに、個々のレコード作成又は更新ではレコード３０６を残すことができ、その残されたレコード３０６は通知登録されていないシステム・グループとして関連付けし、自動削除を回避する。グループ更新（例えば、UpdateGroup（））メソッドがレコード・グループ関連付け３１０のグループに存在するレコード３０６であると識別した場合、利用者が定義したグループに対して、レコード３０６を自動的に転送することができる。
【００３１】
一つの実施例では、各通知登録のために、通知登録管理機能（図２においては通知登録管理機能２１０として示した）はＷＳ管理機能（図２においては２１２）を用いることができ、登録した検索要求ｗｅｂサービスを呼び出す。ＷＳ管理機能によって、結果はレコードのグループに変換され、レコード管理機能３０２に対してグループ更新操作を発行する。レコード・グループ関連付け３１０を通じて、レコード管理機能３０２は、一又は二以上のグループ内の各ＷＳビジネス・レコード３０６のマッピングを保持する。グループを更新する場合、各装置毎のレコード・キャッシュ３１８は各レコード３０６毎の以下の一又は二以上の状態を利用者が意識することなく有する。（１）新規（サーバに対して、レコード３０６は新規である）（２）更新（変更したレコード３０６の内容はキャッシュ２０８に記憶したものとは異なる）（３）削除（レコード管理機能３０２はレコード３０６が装置に関連するいずれのグループにも存在しないことを決定する）（４）同期（ＩＮ＿ＳＹＮＣはビジネス・レコードが既に装置と同期済みであることを示す）
【００３２】
一つの実施例では、実行の際、グループ更新を発行すると、シンクロナイザーの定期更新又は即時更新を実行することができる。キャッシュのために、遅延読み取りを行うと、ＷＳレコード・キー・マップ３０８を参照して、レコードが新しいか新しくないかを決定する。そのＷＳレコード・キー・マップ３０８はレコードを有しているのが装置であるのかキャッシュであるのかを示すことができる。装置が既に特定のレコードを有している場合、レコードを読み取り、比較する。そして、レコードが新規であるか、同一であるか又は、更新するかを決定する。レコードが同一である場合、ＩＮ＿ＳＹＮＣ状態であることをキャッシュに書き込むことができる。その他の場合、レコードを更新し、装置にレコードを送信する。
【００３３】
新しいグループ識別子（ｇｒｏｕｐＩＤなど）でグループ更新を呼出す場合、レコード・グループを自動的に作成する。その後の、同一ｇｒｏｕｐＩＤへの更新は、必要又は要求に応じて装置に対して自動的に実行される。グループを削除すると、レコードを伴わずにグループ更新を呼び出すことで、装置上のデータ削除が実行される。レコード管理機能３０２はシンクロナイザーの代わりの役割を果たすことができ、その役割はＷＳビジネス・レコード３０６の作成操作、読み取り操作、更新操作である。レコード管理機能３０２は様々な構成要素３０６乃至３１０及びそれらの操作を用いることができ、その機能を実行するのに役立つ。
【００３４】
更新を表すデータ変更については、レコード・シンク２１４は即時に更新を行う。レコード・シンク２１４は非同期の作成操作及び非同期の更新操作も提供する。削除を表すデータ変更については、レコード・シンク２１４は即時に更新を行わない可能性がある。なぜならば、装置は、いずれかのレコード３０６を意味する複数の検索要求通知登録を有しており、グループとは別にレコードが生成される。よって、レコードは既に他の通知登録によって生成されている可能性があるからである。したがって、削除操作のレコードを取得するため、遅延ガーベジコレクションが採用でき、いずれのグループにも関連していないレコード３０６は即時に削除することができる。
【００３５】
レコード・シンク２１４はレコード・キーの世代の実装に依存しないようにすることができる。整合性に関するサーバのために、一つの標準的な実装を用いることができる。レコード・キーの世代のために複数のパラメータを用いることができる。例えば、型（ｔｙｐｅ＝Ａｃｃｏｕｎｔとするなど）及びキー内容（ｋｅｙ  ｃｏｎｔｅｎｔ  ＝  ＜ＡｃｃｏｕｎｔＩＤ＞３４５３４０９７３４５＜／ＡｃｃｏｕｎｔＩＤ＞とするなど）を採用することができる。あるいは型及びキー内容を結合して一つにしてもちいることができる（ｋｅｙ＝Ａｃｃｏｕｎｔ： ３４５３４０９７３４５とするなど）。さらに、レコード内容が利用可能であることから、全てのデータ内容に基づいたハッシュ・コードをキーとして作成できる。その場合、レコード内容の変更は、シンクロナイザーにおいて一組の追加操作と削除操作を行う。それは、新しいレコードを作成し、古いレコードを削除することである。また、ハッシュ・コードはキーを用いて生成することができ、利用者の定義したキー内容及び他のレコード内容を含む。このメカニズムは、さらに同一の効果と効率を維持しつつ、単純なキーマップデータベースを持つことを可能にする。開発者／管理者は妥当なキー・サイズを持たせて、キーの定義を選択できる。
【００３６】
ＷＳビジネス・レコード・キー・マップ３０８は各装置毎のレコード・キー及びｄａｔａＩＤ間の関連を保持することができ、ＷＳビジネス・レコード・キー・マップ・インターフェース３２０を介して保持する。初期化時にＷＳレコード・キー・マップ３０８を保存し読み取る。シンクロナイザーは利用者が意識することなくこのマッピングを保持し、シンクロナイザー内の実データと一致する適切な追加及び削除を行う。レコード・キー・マップ３０８のサイズはサーバ利用毎のマップ・サイズに基づく方法を用いて決定することができる。例えば、装置の数、利用者が定義するキー・サイズの平均、ハッシュベースのキー・サイズ、各装置が保持するレコード数の平均、各マップ登録のｄｅｔａＩＤサイズ及びそれらと同等なもの。さらに、このメカニズムは柔軟にすることができ、それは、効果的な性能水準を落とすことなく要求又は目標にシームレスに対応できる。また、互換性及び調和性を有するデータベースのサーバを用いる。ＷＳビジネス・レコード３０６はインターフェース３２２を備え、レコードへのアクセスを可能にする。インターフェースはまた他の構成要素へのアクセスを可能にする。それらはジェネリック・データ・シンク３１２のインターフェース３２４、データ・シンク記憶装置３１６のインターフェースなどである。
【００３７】
図４はデータ変更のダウンロード及びアップロードのためのプロセスを示す。処理ブロック４０２において、データ変更又はデータ変更のためのリクエストをサーバで受け取る。データ変更はデータ処理装置における利用者によって処理が開始され、ネットワーク上でサーバに送信される。一つの実施例では、サーバにおいて、データ変更のためのリクエストを受信する。装置の既存データを変更する利用者の操作によって、データ変更のためのリクエストが開始する。サーバで受信したリクエストは利用者が装置で要求したデータ変更を表す。処理ブロック４０４では、サーバにおいてデータ変更を個々に識別する。各レコードの識別はレコード毎のキーによって行われ、ＷＳＤＬに含まれる記述又はメタデータを用いる。そして、ｗｅｂサービス検索要求も用いる。既存データに対して、変更するタイプを識別する（追加、削除、変更、作成など）。例えば、既存データに対して新しいデータを作成するか、追加するか及び／又は変更するかなどである。それら変更はＱＣＵＤ操作として表すことができ（検索操作、作成操作、更新操作、削除操作など）、ｗｅｂサービスによって提供され、ｗｅｂサービス・サーバのＷＳＤＬに記載されている。サーバのＷＳ管理機能によって、これらＱＣＵＤ操作を用いる。サーバ・キャッシュにデータ変更を記憶する。
【００３８】
判断ブロック４０６において、識別はデータ変更においてサーバで解決できない不一致が存在するか否かを決定する。他のデータ変更及び／又は一又は二以上のサーバ・キャッシュに既存データ、データベース・サーバー及び／又は装置と調整することができないデータ変更を不一致とすることができる。不一致が存在する場合、処理ブロック４１２において、装置の既存データを手動で調整するために装置へダウンロードする。例えば、一又は二以上の不適切な変更、不正確な変更、受け入れられない変更、理解不能な変更、時期が不当である変更（例として、データの一部が存在しない変更、システムの制限によって登録できない変更など）などに起因するデータ変化（レコードなど）を不一致とすることができる。例えば、利用者Ａ及びＢがそれぞれの装置で共通の既存データに対して異なる変更をした場合などである。
【００３９】
ここで、装置Ａが２時間オフラインで、利用者Ａがデンバーからロスアンジェルスに飛行機で移動したとする。一方、装置Ｂがオンラインで利用者Ｂが使用したとする。そして、明らかとなるように、他の複雑な問題又は他のリクエストの実行が無いと仮定すると、この場合、利用者Ｂによるデータ変更はサーバで受信され、装置Ｂにダウンロードされる。そして、装置Ａは不一致又は不一致の通知を受信する。利用者Ａは装置Ａ上の変更を組み入れることを選択でき、以前に変更した利用者Ｂのデータ変更又は新しい変更を上書きする、又は装置Ａにおいて装置Ｂの変更を単純に手入力することを選択できる。
【００４０】
判断ブロック４０６を参照すると、不一致が存在しない場合、一つの実施例では、データ変更をアップロードする４０８。データ変更のアップロードはｗｅｂサービス・サーバと調整したデータ変更を含む。そのｗｅｂサービス・サーバにはＱＣＵＤ操作が考慮されており、ＱＣＵＤ操作はｗｅｂサービス及びＷＳＤＬの記述によって用いる。ｗｅｂサービス・サーバへのアップロードと調整したデータ変更は装置の既存データの変更のみを示し、全てのデータをアップロードする必要は無い。データ変更はサーバ・データベースと調整し、記憶される。一つの実施例では、一つのサーバのキャッシュを一つの無線装置に配置し、対応させることができる。そして、その一つのサーバのキャッシュは装置に存在するデータを含むことができる。一つの実施例では、幾つかの無線装置又は全ての無線装置とサーバ・データベースを一致させることができ、その無線装置はサーバと通信する。そして、サーバ・データベースはそれら全ての装置に存在する全てのデータを含むことができる。
【００４１】
一つの実施例では、処理ブロック４１０においてデータ変更をダウンロードする。装置へのデータ変更ダウンロードはオンライン、オフライン、接続、非接続の間、実行することができる。ダウンロードは装置の既存データとデータ変更を同期することを含み、既存データを更新し、最新にする。装置とのデータ変更の同期はデータ・シンクロナイザーを用いて行い、レコード・シンクロナイザーによってデータ変更をデータ・シンクロナイザーに通知する。さらに、装置へのデータ変更、データ変更の受け入れ、データ変更の識別、不一致の決定、データ変更のアップロード、キャッシュ及びデータベースにおけるデータ変更の記憶、及び不一致の際のダウンロードはまた、オンライン、オフライン、接続、非接続の間、実行することができる。例えば、装置がオンラインの場合、装置を介し利用者によって、データ変更のリクエストを実行できる。しかし、装置へのデータ変更のダウンロード又は同期は装置がオフライン又は非接続の間に行うことができる。同様に、不一致は装置がオンラインであるときに利用者が手動で行えるが、装置がオフライン又は非接続である場合、装置に対して不一致であることを事前に通知することで対応できる。
【００４２】
図５は装置１３０及び／又はサーバ１３０を実装するコンピュータ・システム５００を示す。コンピュータ・システム５００は情報通信のためシステム・バス５２０を備え、情報処理のためバス５２０に接続するプロセッサ５１０も備える。一つの実施例によると、多数のプロセッサの一つを用いて、プロセッサ５１０を実装する。そのプロセッサはマイクロプロセッサであるモトローラＡＲＭファミリーのプロセッサとすることができる。他のプロセッサを用いることが可能であることは、当業者であれば容易に理解できる。
【００４３】
コンピュータ・システム５００はさらに、ランダム・アクセス・メモリ（ＲＡＭ）又は動的記憶装置５２５（ここではメイン・メモリとして示す）を備え、そのメモリはバス５２０に接続され、プロセッサ５１０が実行する情報及び指示を記憶する。プロセッサ５１０が処理を実行する間、メイン・メモリ５２５は一時的な変更情報又は他の中間情報を保存するためにも用いることができる。コンピュータ・システム５００はまた、読み出し専用メモリ（ＲＯＭ）及び／又は他の静的記憶装置５２６を備えることができる。そのメモリはバス５２０に接続され、プロセッサ５１０が用いる静的情報及び指示を記憶する。
【００４４】
データ記憶装置５２５はコンピュータ・システム５００に接続することができ、情報及び指示を記憶する。そのデータ記憶装置５２５は磁気ディスクや光学ディスクそして、それらに相当するドライブとすることができる。コンピュータ・システム５００は、Ｉ／Ｏインターフェース５３０を介して、第２のＩ／Ｏバス５５０に接続することができる。複数のＩ／Ｏ装置はＩ／Ｏバス５５０に接続することができ、表示装置５２４や入力装置（英数字入力装置５２３及び／又はカーソル制御装置５２２）を備える。
【００４５】
通信装置５２１はネットワーク１７０を介して他のコンピュータ（サーバ又はクライアント）にアクセスする。通信装置５２１はモデム、ネットワーク・インターフェース・カード又は他の既知のインターフェース装置を備えることができ、イーサネット（登録商標）、トークン・リングやその他のネットワークに接続する。
【００４６】
本発明の実施例は上記で説明したような様々なステップを備えることができる。そのステップは指示を実行可能な機械で用いることができる。汎用目的のプロセッサや特定の目的のプロセッサが特定のステップを処理するよう、その指示を用いることができる。そして、特定のハードウエア構成要素によって、それらステップを実行することができ、そのハードウエア構成要素はステップを実行するためのハードウエア・ロジックやプログラム済みコンピュータ構成要素の組み合わせ、カスタマイズしたハードウエア構成要素を含む。
【００４７】
本発明の要素は機械が読み取り可能な媒体によって提供することができ、その媒体は機械が実行可能な指示を記憶する。機械が読み取り可能な媒体にはフロッピー（登録商標）・ディスクや光学ディスク、ＣＤ−ＲＯＭ、磁気光学ディスク、ロム、ラム、ＥＰＲＯＭ、ＥＥＰＲＯＭ，磁気または光学カード、伝播メディア、その他電子的な指示を記憶するのに適したメディア／媒体を含み、これらに制限もしない。例えば、本発明はコンピュータ・プログラムによってダウンロードすることができ、そのコンピュータ・プログラムはリモート・コンピュータ（サーバ）からリクエストしたコンピュータ（クライアント）に送信することができる。その送信は通信リンク（モデム、ネットワーク接続など）を介して通信搬送波又は他の伝播メディアを用いたデータ信号を通じて行われる。
【００４８】
上記説明を通して、説明の目的のために、本発明を理解する目的のために、多くの特定の説明を用いた。しかし、当業者であれば、いくつかの特定の説明を用いることなく実施することは可能である。例えば、サーバ１０３で実行するサービス１０２にインターフェース１００を説明したが（図１参照）、本発明の原理の理解では、クライアントがネットワーク上にデータを送信し、単一クライアント上に実装できることが分かる。そして、本発明の範囲及び思想は請求項の用語で判断すべきである。
【図面の簡単な説明】
【００４９】
【図１】本発明の要素を実装するネットワークの実施例を示す。
【図２】無線装置の最新データを維持するためのアーキテクチャーの実施例を示す。
【図３】ビジネス・レコード・シンクロナイザーの内部構造の実施例を示す。
【図４】データ変更のダウンロード及びアップロードのための処理を示す。
【図５】コンピュータ・システムの実施例を示す。
【図１】
2009518757.tif 000002
【図２】
2009518757.tif 000003
【図３】
2009518757.tif 000004
【図４】
2009518757.tif 000005
【図５】
2009518757.tif 000006
【国際調査報告】
2009518757.tif 000007