(57)【要約】コンピューティング装置との直接サーバ同期（100）のための方法およびシステムが開示される。一つの実施例において、本方法は、ハンドヘルド装置（110）と企業サーバ（130）とで直接に同期を取ることを含む。この方法は、サーバからレコード抽出シーケンスを検索し、レコード抽出シーケンスにしたがってデータベース上に記憶されたレコードを抽出する、ことを含み、抽出されたレコードは、まだコンピューティング装置上に記憶されたものではない。
2004533679.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング装置および企業サーバを直接同期化（synchronizing directly）するステップを含む方法であって、
当該ステップが、
前記サーバからレコード抽出シーケンスを検索するサブステップ、そして、
前記レコード抽出シーケンスに従って、データベースに記憶されたレコードを抽出する、サブステップであって、前記抽出されたレコードが、まだ（already）コンピューティング装置に記憶されていないものである、当該サブステップ、を含む方法。
【請求項２】
前記コンピューティング装置から前記サーバにログインするサブステップであって、当該コンピューティング装置がハンドヘルド装置である当該サブステップと、
前記サーバから、前記ハンドヘルドに対しての永続（persistent）ノードＩＤを検索するサブステップ、を更に含む、請求項１に記載の方法。
【請求項３】
前記サーバから、まだ前記ハンドヘルド装置にない、一つあるいはそれ以上のビューを検索し、そして、
前記サーバから、まだ前記ハンドヘルド装置にない、一つあるいはそれ以上のビジネス・オブジェクトを検索するサブステップを更に含む、請求項２に記載の方法。
【請求項４】
前記サーバのトランザクションを処理し、そして、
前記サーバから、まだ前記ハンドヘルド装置にない、一つあるいはそれ以上のイベントを検索する、サブステップを更に含む、
請求項３に記載の方法。
【請求項５】
前記ハンドヘルド装置に対応付けられたＰＤＡリポジトリを、前記サーバから検索するサブステップを更に含む、請求項４に記載の方法。
【請求項６】
ハンドヘルド装置と企業サーバを直接同期化するステップを含む方法であって、
当該ステップが、
レコード抽出シーケンスをハンドヘルドに提供するサブステップ、
前記レコード抽出シーケンスに従って、データベースに記憶されたレコードを抽出するサブステップであって、前記抽出されたレコードが、まだ前記ハンドヘルド装置に記憶されていないものである、当該サブステップ、および、
前記レコードを、前記ハンドヘルド装置に提供するサブステップ、を含む方法。
【請求項７】
前記ハンドヘルド装置が、有効なログオンＩＤを持つことを確認（verify）し、そして、
永続（persistent）ノードＩＤを、前記ハンドヘルドに提供する、サブステップを更に含む、請求項６に記載の方法。
【請求項８】
まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のビューを、前記ハンドヘルドに提供し、そして、
まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のビジネス・オブジェクトを、前記ハンドヘルドに提供する、サブステップを更に含む、請求項７に記載の方法。
【請求項９】
前記サーバのトランザクションを処理し、そして、
まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のイベントを、前記ハンドヘルドに提供する、サブステップを更に含む、請求項８に記載の方法。
【請求項１０】
前記ハンドヘルド装置に対応付けられたＰＤＡリポジトリを、前記ハンドヘルド装置に提供するサブステップを更に含む、請求項９に記載の方法。
【請求項１１】
サーバからレコード抽出シーケンスを検索するための手段、および、
前記レコード抽出シーケンスに従って、データベースに記憶されたレコードを抽出するための手段であって、当該抽出されたレコードが、まだハンドヘルド装置に記憶されていないものである、当該手段、を含む、
ハンドヘルド装置と企業サーバを直接同期化するための手段、を備えるシステム。
【請求項１２】
前記ハンドヘルドから前記サーバにログインするための手段、および、
前記サーバから、前記ハンドヘルドに対しての永続（persistent）ノードＩＤを検索するための手段、を更に含む、請求項１１に記載のシステム。
【請求項１３】
前記サーバから、まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のビューを検索するための手段、および、
前記サーバから、まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のビジネス・オブジェクトを検索するための手段、を更に含む、請求項１２に記載のシステム。
【請求項１４】
前記サーバのトランザクションを処理するための手段、および、
前記サーバから、まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のイベントを検索するための手段、を更に含む、請求項１３に記載のシステム。
【請求項１５】
前記サーバから、前記ハンドヘルド装置に対応付けられた、ＰＤＡリポジトリを検索するための手段、を更に含む、請求項１４に記載のシステム。
【請求項１６】
レコード抽出シーケンスを、ハンドヘルドに提供するための手段、
前記レコード抽出シーケンスに従って、データベースに記憶されたレコードを抽出するための手段であって、当該抽出されたレコードが、まだ前記ハンドヘルド装置に記憶されていない、当該手段、および、
前記レコードを、前記ハンドヘルド装置に提供するための手段、を含む、
ハンドヘルド装置と企業サーバを直接同期化するための手段、を備えるシステム。
【請求項１７】
前記ハンドヘルド装置が、有効なログオンＩＤを持つことを確認（verify）するための手段、および、
永続（persistent）ノードＩＤを、前記ハンドヘルドに提供するための手段、を更に含む、請求項１６に記載のシステム。
【請求項１８】
まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のビューを、前記ハンドヘルドに提供するための手段、および、
まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のビジネス・オブジェクトを、前記ハンドヘルドに提供するための手段、を更に含む、請求項１７に記載のシステム。
【請求項１９】
前記サーバのトランザクションを処理するための手段、および、
まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のイベントを、前記ハンドヘルドに提供するための手段、を更に含む、請求項１８に記載のシステム。
【請求項２０】
前記ハンドヘルド装置と対応付けられた、ＰＤＡリポジトリを、前記ハンドヘルド装置に提供するための手段、を更に含む、請求項１９に記載のシステム。
【請求項２１】
コンピュータにより読取り可能な媒体に記憶された複数の命令を有する、当該媒体であって、
前記複数の命令が、コンピュータによって実行されたときに、当該コンピュータに、
ハンドヘルド装置と企業サーバを直接同期化するステップを実行させ、
当該ステップが、
前記サーバからレコード抽出シーケンスを検索するサブステップ、そして、
前記レコード抽出シーケンスに従って、データベースに記憶されたレコードを抽出するサブステップであって、当該抽出されたレコードが、まだ前記ハンドヘルド装置に記憶されていないものである、当該サブステップ、を含む、媒体。
【請求項２２】
請求項２１記載のコンピュータにより読取り可能な媒体であって、当該媒体上に追加の命令を有し、
前記追加の命令が、コンピュータによって実行されたときに、当該コンピュータに更に、
前記ハンドヘルドから前記サーバにログインし、そして、
前記サーバから、前記ハンドヘルドに対する永続（persistent）ノードＩＤを検索する、サブステップを実行させる、媒体。
【請求項２３】
請求項２２に記載のコンピュータにより読取り可能な媒体であって、当該媒体上に追加の命令を有し、
前記追加の命令が、コンピュータにより実行されたときに、当該コンピュータに更に、
前記サーバから、まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のビューを検索し、
前記サーバから、まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のビジネス・オブジェクトを検索する、サブステップを実行させる、媒体。
【請求項２４】
請求項２３に記載のコンピュータにより読取り可能な媒体であって、当該媒体上に追加の命令を有し、
前記追加の命令が、コンピュータにより実行されたときに、当該コンピュータに更に、
前記サーバのトランザクションを処理し、そして、
前記サーバから、まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のイベントを検索する、サブステップを実行させる、媒体。
【請求項２５】
請求項２４に記載のコンピュータにより読取り可能な媒体であって、当該媒体上に追加の命令を有し、
前記追加の命令が、コンピュータにより実行されたときに、当該コンピュータに更に、
前記サーバから、前記ハンドヘルド装置に対応付けられた、ＰＤＡリポジトリを検索する、サブステップを実行させる、媒体。
【請求項２６】
コンピュータにより読取り可能な媒体であって、当該媒体上に複数の命令が記憶され、
前記複数の命令が、コンピュータにより実行されたときに、当該コンピュータに、
ハンドヘルド装置と企業サーバを直接同期化するステップであって、
レコード抽出シーケンスを、前記ハンドヘルドに提供するサブ・ステップ、
前記レコード抽出シーケンスに従って、データベースに記憶されたレコードを抽出するサブ・ステップであって、当該抽出されたレコードが、前記ハンドヘルド装置にまだ記憶されていないものである、当該サブ・ステップ、および、
前記レコードを、前記ハンドヘルド装置に提供するサブ・ステップを含むステップを実行させる、媒体。
【請求項２７】
請求項２６に記載のコンピュータにより読取り可能な媒体であって、当該媒体上に追加の命令が記憶され、
前記追加の命令が、コンピュータにより実行されたときに、当該コンピュータに更に、
前記ハンドヘルド装置が、有効なログオンＩＤを持つことを確認し、そして、
永続（persistent）ノードＩＤを、前記ハンドヘルドに提供する、サブステップを実行させる、媒体。
【請求項２８】
請求項２７に記載のコンピュータにより読取り可能な媒体であって、当該媒体上に追加の命令が記憶され、
前記追加の命令が、コンピュータにより実行されたときに、当該コンピュータに更に、
まだ前記ハンドヘルドに無い、一つあるいはそれ以上のビューを、前記ハンドヘルドに提供し、そして、
まだ前記ハンドヘルド装置に無い、一つあるいはそれ以上のビジネス・オブジェクトを、前記ハンドヘルドに提供する、サブステップを実行させる、媒体。
【請求項２９】
請求項２８に記載のコンピュータにより読取り可能な媒体であって、当該媒体上に追加の命令が記憶され、
前記追加の命令が、コンピュータにより実行されたときに、当該コンピュータに更に、
前記サーバのトランザクションを処理し、そして、
まだ前記ハンドヘルドに無い、一つあるいはそれ以上のイベントを、前記ハンドヘルドに提供する、サブステップを実行させる、媒体。
【請求項３０】
請求項２９に記載のコンピュータにより読取り可能な媒体であって、当該媒体上に追加の命令が記憶され、
前記追加の命令が、コンピュータにより実行されたときに、当該コンピュータに更に、
前記ハンドヘルド装置に対応付けられた、ＰＤＡリポジトリを、前記ハンドヘルド装置に提供する、サブステップを実行させる、媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・システムに関連し、更に詳細には、コンピューティング装置との直接サーバ同期のための方法およびシステムに関連する。
【背景技術】
【０００２】
パーム・コンピュータ（palm computer）、またはハンドヘルド・コンピュータは、非常に限定的な機能を提供してきた。そして、個人オルガナイザー（organizers）に制限されてきた。これらの 水で割った（watered-down）コンピュータは、より大規模なデスクトップおよびノート・コンピュータ上のプログラムとコンパチブルではなかったが、小さいメモリフットプリントおよび迅速な応答を保証するために、低電力マイクロプロセッサにおいてさえ、独自のオペレーティング・システムおよびプログラムに依存する。これらの制限は、個人オルガナイザーが、スタンドアロンで仕事をするに際して、個人オルガナイザーの能力を限定し、直にはデータを他のコンピュータと共有出来なかった。
【０００３】
いくつかのハンドヘルド装置は、遠隔地で、企業サーバ上で動作している、企業ビジネス・アプリケーションと、インターネットのようなネットワークを介して相互動作する能力を持つ。２つのプラットフォームは、通常ホストサーバを通じて、一つまたはそれ以上の通信パス（モデム、パラレル・ポート、シリアル・ポート、またはクレードル・アセンブリ（cradle assembly）を通じたパスを含む）を介して、リンクされた。更に、無線または赤外線通信のような種々のワイヤレス通信技術が使用され得る。クレードル（cradle）が使用された場合には、ハンドヘルド・コンピュータがクレードル内にあってアクティブにホスト・コンピュータに接続される際に、ハンドヘルドコンピュータは一般的に、ホストコンピュータ内のデータおよび自分のデータを更新するモードに入る。
【０００４】
企業サーバとパームトップまたはハンドヘルド・コンピュータの間でデータの同期を取る現在の方法において、主要な問題が存在する。例えば、種々のデータの中でも、カレンダ情報、予定情報、およびノート（notes）のような一定のデータは、他のハンドヘルドまたはワークステーションが遠隔的にカレンダー情報、予定情報、およびノートを更新出来るように、一般的に、ネットワーク化され得るサーバ上に維持される。同じ情報は、移動中である際にユーザが検討して更新するために、パームトップまたはハンドヘルド・コンピュータ上にも保持された。しかし、もしユーザが旅行していて、ユーザが彼または彼女のオフィスに居ない間に、情報がサーバ上、またはネットワーク・サーバ・マシン上の遠隔ステーションに入力されたならば、或いは、もしユーザが情報を、パームトップまたはハンドヘルド・コンピュータ内のデータのローカル・バージョンに入力したならば、サーバまたはパームトップもしくはハンドヘルド・コンピュータに含まれる情報は、非固有となり、ミーティング・コンフリクト（meeting conflict）やミスコミュニケーション（miscommunications）のような非所望の問題を引き起こすであろう。
【０００５】
従来技術は、連絡（contacts）や予定（appointments）のような、レコードのリストの同期を取る。それらは、異なったユーザ及び／又はユーザ・アカウントの間で共有されず、所有者に対してのみ可視的であり、所有者によってのみ修正可能である。
【０００６】
いくつかの企業アプリケーションは、異なるエリア（例えば、フィールド・サービス（Field Service）、およびセールス・フォース自動化（Sales Force Automation）、およびその他）を対象とする企業のための非常に複雑なデータを取り扱える。アプリケーションにおけるこのデータ・モデルは、レコードによって代表されるデータ・モデルに比して、より更に豊富（rich）である。それに加えて、データは、以下の可視化をもたらし得る。
１）特定の人に対してのみ可視的、
２）特定の位置（各々の人は、一つあるいはそれ以上の位置を組織内に持ち得る）に対してのみ可視的、
３）人のグループ（例えば、同じセールス・チーム内の人、または、同じアカウント・チーム（account team））に対して可視的、
４）マネジメント・ポジションに対して可視的、
５）会社内の特定の組織に対して可視的、
６）会社内の全ての組織を通じて可視的、
データの特定の部分の可視性における変更は、それを見ることができ、それを変更出来る人々の、視野の変更に繋がる。もし一人以上の人がそれを変更出来るならば、従来技術の同期化方法は、それを見て修正出来る全ての人々の中でのデータの統一（coherency）を維持することが出来なかった。
【０００７】
データ同期問題についての従来技術のソリューション（solutions）は、一般的に非常に時間がかかり、退屈であり、したがってパームトップ／デスクトップの組み合わせの効率を削減する。一つのソリューションは、ユーザの場所に物理的に駐在するファイルだけがマスタとなるように、ファイルのアクセス可能性を制限することであった。しかしこのソリューションは、他のシステムに対しての変更を喪失する危険無しには、他のシステムに対して変更が為され得ないことを要求する。したがって、パームトップ／デスクトップのコンピュータの組み合わせ（combination）が存在した一方、ユーザがマニュアルで、双方のプラットフォーム上のデータの同期を取らねばならなかったという必要性のために、その組み合わせの使用はポピュラーではなかった。それゆえ、同期化の問題は、パームトップまたはハンドヘルド・コンピュータ市場の潜在力を制限した。
【０００８】
ハンドヘルド装置の現在の世代、および、それらのアッド・オン接続ソリューション（add-on connectivity solutions）によって遭遇された一つの問題は、接続性のソリューションが、データ統一（data coherency）に対しての、実時間オリエンテッドなアプローチではなく、むしろバッチ・モードに依存することである。ユーザが移動状態となった（user goes mobile）時に、サーバとハンドヘルド装置は一般的に非接続で、連絡を絶たれた状態になるので、データ同期問題は手に負えなくなる。移動状態の期間中の、データの生成（creation）、削除および修正は、しばしば、ユーザによるマニュアルの介入を通じてのみ一致させることのできるコンフリクト（conflicts）をもたらす、非統一（incoherency）を引き起こす。サーバとハンドヘルド装置が、それらが、シリアル、パラレル、またはモデム接続を用いて再接続されるまで、それらのデータにおける変化を通信出来なかったために、これらのコンフリクトが発生することになる。
【発明の開示】
【課題を解決するための手段】
【０００９】
一つの実施例において、本方法は、サーバからのレコード抽出シーケンス（record extraction sequence）を検索し、レコード抽出シーケンスに従ってデータベース上に記憶されたレコードを抽出し、ステップを含み、抽出されたレコードがコンピューティング装置上にまだ記憶されていない、コンピューティング装置および企業サーバの直接的な同期化を含む。
【発明を実施するための最良の形態】
【００１０】
本明細書の一部分に含まれる添付の図面は、現時点で好ましい、本発明の実施例を示す。そして、上述の一般的記述および以下の好ましい実施例の詳細な記述とともに、本発明の原理の説明および教示に供される。
【００１１】
ハンドヘルド装置とのサーバ同期のための方法およびシステムが開示される。一つの実施例において、本方法は、サーバからレコード抽出シーケンスを検索し、レコード抽出シーケンスに従ってデータベース上に記憶されたレコードを抽出する、ステップを含み、抽出されたレコードがまだハンドヘルド装置上に記憶されたものでない、ハンドヘルド装置と企業サーバとの直接同期を含む。
【００１２】
以下の記述において、説明の目的のために、本発明の完全な理解を提供するために、特定の命名（nomenclature）が為される。しかし、当業者にとって、これらの特定の詳細は、本発明を実施するためには必要とされないことが明白である。
【００１３】
以下の詳細な記述のいくつかの部分は、コンピュータメモリ内のデータビットについてのオペレーションのアルゴリズムおよびシンボル表現（symbolic representation）に関して提供される。これらのアルゴリズム記述および表現は、それらの作業の実体（substance of their work）を他の当業者に最も効果的に運ぶ（convey）ために、データ処理技術の当業者によって用いられる手段である。アルゴリズムはここにあり、そして一般的に、所望の結果に繋がるステップの自己無矛盾（self-consistent）シーケンスと考えられる。このステップは、物理量の物理的操作が必要とされるものである。必ずしも常にではないが、通常、これらの量は、記憶、移動、結合、比較、および、さもなければ操作、され得る、電気または磁気信号の形式を採る。時として、普通の利用の理由のために原則として、これらの信号を、ビット、値、要素、シンボル、キャラクター（文字）、用語、等、と呼ぶことが便宜となってきた。
【００１４】
しかし、これら、および類似の用語の全てが、適切な物理量と関連つけられ、これらは、単に、これらの量に対応付けられた便利なラベル（label）であることを頭に置いて欲しい。以下の議論から明白であるように、特に別異に言明しない限り、記述を通じて、「処理」、または「コンピューティング」または「計算」または「判断」または「表示」等のような用語を用いる議論は、コンピュータシステムのレジスタおよびメモリ内で物理（電子）量として表現されたデータを操作して、同様に、コンピュータシステムメモリまたはレジスタまたは他のそのような情報記憶装置、伝送装置、または表示装置内で、物理量として表現された他のデータに変換する、コンピュータ・システム、または類似の電子コンピューティング装置の動作および工程を意味することを理解して欲しい。
【００１５】
本発明はまた、ここに記載されるオペレーションを実行するための装置にも関連する。この装置は、必要な目的のために特別に構築されたものであり得るし、または、コンピュータに記憶されたコンピュータ・プログラムによって選択的に作動または再構築される一般目的のコンピュ−タを備え得る。そのようなコンピュータ・プログラムは、フロッピー・ディスク（登録商標）、光ディスク、ＣＤ−ＲＯＭ、および磁気光ディスク、リード・オンリー・メモリ（ＲＯＭｓ）、ランダム・アクセス・メモリ（ＲＡＭｓ）、ＥＰＲＯＭｓ、ＥＥＰＲＯＭｓ、磁気または光カード、または、電気的命令の記憶に適した何らかのタイプの媒体を含む何らかのタイプのディスクのような、しかしこれに限定されない、コンピュータ読取り可能な記憶媒体（これらは、コンピュータ・システム・バスにカップルされる）に記憶され得る。
【００１６】
ここに示されるアルゴリズムおよびディスプレイは、本質的に何らかの特定のコンピュータまたは他の装置に関連するものでない。種々の一般目的のシステムが、ここでの教示に従ってプログラムとともに使用され得る。または、必要な方法のステップを実行するために、より特定化された装置を構築することが便宜であり得る。種々のこれらのシステムのための、必要とされた構造は、以下の説明から明らかになる。更に、本発明は、何らかの特定のプログラミング言語を参照して記述されない。ここに説明される本発明の教示を実行するために、種々のプログラミング言語が使用され得ることが理解されるであろう。
【００１７】
図１は、直接サーバ同期システム100のブロック図を示す。システム100は、ハンドヘルド装置110を含む。本方法およびシステムは、ハンドヘルド装置110に限定されない。それは、パーソナル・コンピュータおよび、それに加えてラップトップ、のようなコンピューティング機器の直接サーバ同期に応用され得る。ハンドヘルド110は、Santa Clara, CaliforniaのPalm Inc.によって製造されるもののようなPalmTMオペレーティング・システム装置、または、New JerseyのCasio of Doverによって製造されるもののようなMicrosoft CETMオペレーティング・システム装置、または、類似のPalmおよびＣＥ装置で有り得る。ハンドヘルド110に含まれるものは、同期クライアント111（Sync Client）である。同期クライアント111は、
ａ）ユーザに同期インターフェースを提供し、
ｂ）ハンドヘルド・データベース・ジェネレータ、ハンドヘルド・トランザクション・マネジャ、およびデータ・インテグリティ・マネジャ、のようなモジュールとインターフェースをとり、
ｃ）以前の同期化（previous synchronization）の後に、完全にトランザクションをロールバックし、
ｄ）同期クライアント111上のローカル・データ・モデルがデータベース140の状態と同じ状態に到達（reach）するように、ハンドヘルド110にダウンロードされたネット変更（net changes）をインポートし、
ｅ）ログオフ・リクエストをサーバ130に送り、
ｆ）もしそれがハンドヘルド110の最初のサーバ130との同期化であるなら、デバイスＩＤのためにリクエストをサーバ130に送り、
ｇ）もしそれが以前に、サーバ130と同期化しているならば、そのデバイスＩＤをサーバ130に送り、そして、
ｈ）もしそれが最初の同期化ならば、アプリケーション定義（メタ・データ）をダウンロードするために、リクエストをサーバ130に送る。レスポンシビリティ変更によって引き起こされたメタデータ更新、サーバ130がアプリケーションを新規のメタデータでアップグレードする（状態）、または、同期クライアント111上にメタデータが見つからない（状態）、が存在する。
【００１８】
企業アプリケーションをホスティングしているサーバ130と同期化している各装置110は、特有のＩＤを持つ。サーバ130は装置ＩＤを使用して、動作要求、セキュリティー、およびライセンシング管理を識別する。
【００１９】
ウェブ・エンジン（ＷＥ）120は、ハンドヘルド110に結合される。ＷＥ121は、ＷＥプロキシ・プラグイン121を含む。プラグイン121は、ＨＴＴＰリクエストを翻訳して、ＳＩＳＮＡＰＩのような、異なるネットワーキング・プロトコルにする、ハイパー・テキスト・トランスポート・プロトコル（ＨＴＴＰ）エクステンションである。ＳＩＳＮＡＰＩは、（ＨＴＴＰと類似するが、データ・トランスポート、セキュリティ、およびスケーラビリティにおける追加のパフォーマンスを提供する）ＴＣＰ／ＩＰで動作するプロトコルである。
【００２０】
サーバ130は、ＷＥ120に接続され、企業アプリケーションを動作させている企業サーバまたは類似のサーバで有り得る。サーバ130は、プラグイン121と通信する同期化エンジン131（Sync Engine）を含む。同期エンジン131は、
ａ）同期クライアント111へのログインおよび、そこからのログアウトのためのリクエストを取り扱い、
ｂ）ハンドヘルド110からのトランザクションをアップロードし、それらのトランザクションを処理し、
ｃ）ビジネス要素（business components）のためのレコードをデータベース140から抽出し、
ｄ）レコードを詰めこみ（packs）、そして、ハンドヘルド110に送り、
ｅ）同期の完全性（integrity）をチェックするためにデジタル署名（signature）を生成し、そして、
ｆ）その同期化ヒストリー（synchronization history）に基づいて同期クライアント111のネット変更（net changes）を発見する。
【００２１】
同期化エンジン131は、サーバ同期マネージャ（ＳＳＭ）を含む。ＳＳＭは、トランザクション処理マネージャ、レポート・マネージャ、データ抽出マネージャ、トランザクション・ヒストリー・マネージャ（ＴＨＭ）、ユーザ・プロファイル・マネージャ（ＵＰＭ）、コンフリクト・レゾリューション・マネージャ（ＣＲＭ）、メタデータ同期マネージャ（ＭＳＭ）、および、同期ビジビリティー・マネージャ（ＳＶＭ）を含む多くのサブマネージャを備える。
【００２２】
トランザクション処理マネジャーは、ＳＳＭから送られたトランザクションをパーシング（parses）し、トランザクションを一つ一つ実行する。レポート・マネージャは、コンフリクト、トランザクション・エラー、および同期化結果（synchronization results）をレポート（reports）する。データ抽出マネージャは、生データを抽出するためにレクエストを受け入れ、データを、オブジェクトの形式でテキスト・ファイルに詰めこむ。オブジェクトは、各オブジェクトをユニークに識別するユニバーサル・オブジェクト・ロケータによって定義される。
【００２３】
データ抽出マネージャは、同期化された生データの統一性（integrity）および一貫性（consistency）を管理する。ＴＨＭは、トランザクション・ヒストリーを記憶して、各同期セッションに関して結果を比較する。ＴＨＭは結果を記憶し、レポート・マネージャおよびデータ抽出マネージャとともに作業する。
【００２４】
ＵＰＭは、ユーザ名、アプリケーション名、装置、オブジェクト・マネージャ名、および、ユーザによって使用される同期フィルタ、のようなユーザ・プロファイルを管理する。ＣＲＭは、レポート・マネージャおよびトランザクション処理マネージャと協動して、コンフリクト発生の際に、フィードバックおよび確認を求める。
【００２５】
ＭＳＭは、（スクリーン、ビュー、およびフィールド定義のような）メタデータを抽出し、メタデータをＸＭＬフォーマットに詰めこむ（packs）。メタデータは、サーバ130にローカルに記憶される。更にＭＳＭは、サーバ130とハンドヘルド110の間のメタデータの一貫性および統一性をモニターする。ＭＳＭは、レポジトリのアップグレード、およびメタデータの更新に繋がるモニターのレスポンシビリティー変更をサポートする。
【００２６】
ＳＶＭは、サーバ130とハンドヘルド110の間で同期化されたデータの総量を低下させる（cut down）ためのルールを適用する。
【００２７】
サーバ130はまた、オブジェクトを、データベース140の中に、および、その外にロードするオブジェクト・マネージャ132を含む。システム100に更に含まれるものに、データベース140がある。データベース140は、OracleTMデータベース、または類似の記憶装置のようなリレーショナル・データベースでありうる。
【００２８】
システム100は、ハンドヘルド100が、マルチプル・リレーションシップを持つ企業データを含む、インターネット、シリアル接続ダイアルアップ、イーサーネット、赤外線ワイヤレス、または、他の類似のネットワークを通じて直接、サーバ130と同期化することを可能とする。本システムおよび方法は、同期化（synchronization）中に発生する、サーバ130とハンドヘルド110の間のコンフリクトを解決する。本技術は、同期化されたデータが、ハンドヘルド110とサーバ130の双方で信頼性を持つことを保証する。
【００２９】
図２Ａおよび２Ｂは、直接サーバ130同期化のための、ハンドヘルド110とサーバ130の間の、ウェブ・エンジン120を介したデータ交換の模範的フロー図を示す。工程は、スタート・ブロック200から開始する。処理ブロック201において、ハンドヘルド110は、サーバ130にログインする。ログインは、ハンドヘルド110上の同期化ボタンを選択するユーザによって初期化され得る。判断ブロック202においてサーバ130は、ハンドヘルドが、サーバ130へのアクセスを許可されたことを確認する。もしログインが有効でないならば、次にフローは、ストップ・ブロック299において終了する。もしログインが有効ならば、フローは、処理ブロック203に続く。
【００３０】
ハンドヘルド110は、ブロック203において、サーバ130から同期化識別子（Sync ID）を受け取る。同期ＩＤは、ハンドヘルド110に割り当てられた特有の（unique）識別子である。企業中の新規の２つの装置は、同じ同期ＩＤを持たない。同期ＩＤは、決して再使用、再割当、リサイクル、されない。最後に、同期ＩＤは、ハンドヘルド110に記憶される。フローは、処理ブロック204に続く。
【００３１】
ハンドヘルド110は、サーバ130から、リポジトリ・バージョン・ナンバーまたはコードをリクエストし、検索する。リポジトリ・バージョンは、リポジトリ・バージョンを、それ以前の同期セッションから検索されたローカルに記憶されたリポジトリ・バージョンと比較することによって、ハンドヘルド110が同期化されることが必要か否かを、ハンドヘルド110が判断することを可能とする。処理ブロック205において、ハンドヘルド110は、サーバ130からビューを検索する。ビューは、必要に応じて生成される、特別のデータのディスプレイである。結合されたファイルが表示、印刷、または問合せされ得るように、ビューは一時的に、２つまたはそれ以上のファイルを一緒に結び付ける。ハンドヘルド110のユーザのための、全てのアクセス可能なビューおよびデフォールトのビューが検索される。
【００３２】
デフォールトのビューは、同期化され、ハンドヘルド110に移動されるべきアプリケーション内のビューを特定する。ハンドヘルド110で作動しているアプリケーションは、共通のアプリケーション定義を、デスクトップやラップトップのような、他のプラットフォーム上で走っているアプリケーションと共有しうる。デフォールトのビューは、ハンドヘルド110に移動されるデータの量を制限するための方法を提供する。
【００３３】
更にデフォールトのビューは、サーバ130がデータベース140から抽出して、ダウンロードし、ハンドヘルド110と同期化する、全てのビューを指定する。各ビューは、それと対応付けられた一つのビジネス・オブジェクトを持つ。各ビューは、複数のアプレットを持ち得、各アプレットは、それと対応するビジネス要素（business component）を持つ。
【００３４】
アクセス可能なビューは、特定のユーザ・アカウントが見ることができるビューを指定する。それは、レスポンシビリティー（responsibilities）（オブジェクトによって実行される処理ステップ）によって制御される。各ユーザアカウントは、一つまたはそれ以上のレスポンシビリティーを持ち得る。そして、各レスポンシビリティーは、複数の割り当てられたビュー（それは、アプリケーションによって構成され得る）を持つ。アクセス可能なビューのリストは、ハンドヘルド110のビューを更に制限する。
【００３５】
デフォールトのビジネス・オブジェクト・リストは、アプリケーション・レベルで、及び／又は、ビジネス要素レベ（business component level）におけるビジネス論理（business logics）の特別のカスタマイゼーション（customization）において、ハンドヘルド110によって使用された全ての余分の（extra）データを指定する。
【００３６】
ＰＤＱビューは、ハンドヘルド110に移動されるデータの量を制限するための同期化フィルタの役目を果すＰＤＱに起因する。ＰＤＱは、システム・アドミニストレータによって定義される。
【００３７】
フローは、処理ブロック206に続く。ここで、ハンドヘルド110は、サーバ130からのビジネス・オブジェクトのリストを検索する。もし、リスト内のオブジェクトが、ハンドヘルド110から見つからないならば、それらは、サーバ130から検索される。
【００３８】
処理ブロック207においてハンドヘルド110は、サーバ130から、以前のトランザクションのリストを検索する。以前のトランザクション・リストは、ハンドヘルド110で以前に同期化されたトランザクションを列挙する。ハンドヘルド110は、サーバ130が実際にそれを受け取ったか否かを証明するために、サーバ130から、以前のトランザクションのリストを検索する。ハンドヘルド110は、ローカルのリストが、サーバ130から検索されたものとは異なる場合に備えて、リストをローカルに記憶する。これは、サーバ130は、（リストを）完全には受け取らず、ハンドヘルド110が以前のトランザクションのリストを再度サーバ130に送らねばならないことを意味する。後に、ハンドヘルド110は、ローカルのデータベースからトランザクションを受け取り、トランザクションを詰めこみ、ローカルのリストを置換するためにそれらを使用する。これは、次の同期化セッションで用いられ、サーバ130に送られる。
【００３９】
リストを参考にして、ハンドヘルド110は、どのトランザクションが処理される必要があるかを判断し得る。フローは、処理ブロック208に係属する。ここで、サーバ130は、処理ブロック207で決定された、何らかの必要なトランザクションを処理する。各トランザクションは、個々に処理され、全てのトランザクションが処理されるまで、各トランザクションについて確認（confirmation）がハンドヘルド110に送られる。
【００４０】
処理ブロック209において、ハンドヘルド110は、サーバ130からイベント・リストを検索する。イベント・リスト（event list）は、ハンドヘルド110が、最後のサーバ130との同期化（の時点）から発生した全てのイベントを同期化することを可能にする。フローは、処理ブロック210に続く。ここで、ハンドヘルド110は、サーバ130からＰＤＡリポジトリを検索する。リポジトリ・アップグレード、およびレスポンシビリティー変更が、検知され得る。もしリポジトリがアップグレードされると、新規のＰＤＡマスタ・リポジトリが、ハンドヘルド110からサーバ130にダウンロードされる。サーバ130で、ＰＤＡリポジトリが、新規のＰＤＡリポジトリに基づいて再生成される。
【００４１】
処理ブロック211においてハンドヘルド110は、サーバ130上のＰＤＱｓを設定する。したがって、一旦サーバ130がハンドヘルド110に確認（confirmation）を送ると、ＰＤＱｓは、双方の側で同期化される。フローは、処理ブロック212に続く。ここで、ハンドヘルド110は、サーバ130から抽出シーケンスＩＤを検索する。抽出シーケンスＩＤは、ハンドヘルド110に、サーバ130と同期化されるために、どのデータベース・レコードが、データベース140から抽出される必要があるかを知ることを可能とする。
【００４２】
フローは、処理ブロック213に続く。ここで、ハンドヘルド110は、データベース140から必要なレコードを抽出し、確認をサーバ130に戻す。判断ブロック214において、ハンドヘルド110は、処理ブロック212で得られた抽出シーケンスＩＤが、以前に得られた抽出シーケンスＩＤと一致するか否かを判断する。もしシーケンスＩＤｓが一致すれば、次にフローは、処理ブロック215に続く。もしシーケンスＩＤｓが一致しないならば、次にフローは処理ブロック216に続く。処理ブロック215において、ハンドヘルド110は、サーバ130から「ネット」データ抽出を実行する。ネット変更は、直近の同期化以後のデータベース140内の変更（これは、ハンドヘルド110と関係する）のみを含む。サーバ130からの完全なデータ抽出は、データベース140のスナップショット（これは、ハンドヘルド110と関連する）を含む。完全なデータ抽出が、処理ブロック216において検索される。
【００４３】
フローは、処理ブロック215、216の双方から処理ブロック217に続く。ここで、ハンドヘルド110は、直近の同期化に引き続いて発生したトランザクションを完全にロールバックする。
【００４４】
処理ブロック218において、同期クライアント111上のローカルのデータ・モデルが、データベース140の状態と同じ状態に到達するように、ハンドヘルド110は、装置にダウンロードされた変更をインポートする。
【００４５】
フローは、処理ブロック219に続く。ここで、ハンドヘルド110は、サーバ130をログオフし、直接サーバ同期工程は、ストップ・ブロック299において完了する。
【００４６】
全てのリクエストは、ハンドヘルド110とサーバ130の間を、ＨＴＴＰを用いて送られる。サーバ130が（ログインのためのユーザ名およびパスワード、歩調合わせされたトランザクション（paced transactions）、アプリケーション名および同期フィルタのような）ＨＴＴＰポスト・パラメータを使用出来るように、パラメータはハンドヘルド110から渡された。
【００４７】
図３は、統合されたマルチ・プロセッサ（この中で、本発明の要素が実装され得る）を表すコンピュータシステム300を示す。例えば、システム300は、サーバ130またはハンドヘルド110のアーキテクチャで有り得る。コンピュータ・システム300の一つの実施例は、情報を通信するためのシステム・バス320、および、バス320に結合された（coupled to）情報処理のためのプロセッサ310を備える。コンピュータ・システム300は更に、バス320に結合された、情報およびプロセッサ310によって実行されるべき命令を記憶するための、ランダム・アクセス・メモリ（ＲＡＭ）または他のダイナミック記憶装置325（以後「メイン・メモリ」と呼ぶ）を備える。メイン・メモリ325は、プロセッサ310による命令の実行中に、一時的な変数または他の中間情報を記憶するためにも使用され得る。コンピュータ・システム300は、バスに結合された、プロセッサ310によって使用される静的情報および命令を記憶するための、リード・オンリー・メモリ（ＲＯＭ）及び／又は他の静的記憶装置326をも含み得る。
【００４８】
磁気ディスクまたは光ディスクおよびそれに対応するドライブのようなデータ記憶装置327も、情報および命令を記憶するために、コンピュータ・システム300に結合され得る。コンピュータ・システム300は、Ｉ／Ｏインターフェース330を介して第２のＩ／Ｏバス350にも結合され得る。複数のＩ／Ｏ装置（ディスプレイ装置343、入力装置（例えば英数字入力装置342及び／又はカーソル制御装置341）を含む）が、Ｉ／Ｏバス350に結合され得る。
【００４９】
通信装置340は、ネットワークを介して他のコンピュータ（サーバまたはクライアント）にアクセスするためのものである。通信装置ドライブ340は、モデム、ネットワーク・インターフェ−ス・カード、または、（イーサーネット、トークン・リング、または他のタイプのネットワークに結合するために使用されるもののような）他の周知のインターフェ−ス・ドライブを備え得る。
【００５０】
ハンドヘルド装置との直接サーバ同期のための方法およびシステムが開示された。本発明は、特定の例およびサブシステムとの関係で説明されて来たが、当業者にとって、本発明が、これらの特定の例またはサブシステムに限定されず、他の実施例にも拡張されることは明白であろう。本発明は、添付の特許請求の範囲に記載されたような、全てのこれらの他の実施例を含む。
【図面の簡単な説明】
【００５１】
【図１】直接サーバ同期システム100のブロック図。
【図２Ａ】ハンドヘルド110およびサーバ130の間の、ウェブ・エンジン120を介した、直接サーバ130同期のためのデータ交換の模範的フロー図。
【図２Ｂ】ハンドヘルド110およびサーバ130の間の、ウェブ・エンジン120を介した、直接サーバ130同期のためのデータ交換の模範的フロー図。
【図３】統合されたマルチ・プロセッサ（その中で本発明の要素が実施され得る）を表すコンピュータシステム300。
【図１】
2004533679.tif 000003
【図２Ａ】
2004533679.tif 000004
【図２Ｂ】
2004533679.tif 000005
【図３】
2004533679.tif 000006
【国際公開パンフレット】
2004533679.tif 000007
2004533679.tif 000008
2004533679.tif 000009
2004533679.tif 000010
2004533679.tif 000011
2004533679.tif 000012
2004533679.tif 000013
2004533679.tif 000014
2004533679.tif 000015
2004533679.tif 000016
2004533679.tif 000017
2004533679.tif 000018
2004533679.tif 000019
2004533679.tif 000020
2004533679.tif 000021
2004533679.tif 000022
2004533679.tif 000023
2004533679.tif 000024
2004533679.tif 000025
2004533679.tif 000026
2004533679.tif 000027
2004533679.tif 000028
2004533679.tif 000029
【国際調査報告】
2004533679.tif 000030
2004533679.tif 000031