JP4351636B2 - 同期方法 - Google Patents

同期方法 Download PDF

Info

Publication number
JP4351636B2
JP4351636B2 JP2004556455A JP2004556455A JP4351636B2 JP 4351636 B2 JP4351636 B2 JP 4351636B2 JP 2004556455 A JP2004556455 A JP 2004556455A JP 2004556455 A JP2004556455 A JP 2004556455A JP 4351636 B2 JP4351636 B2 JP 4351636B2
Authority
JP
Japan
Prior art keywords
legacy computer
data
master version
layer
copy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004556455A
Other languages
English (en)
Other versions
JP2006509281A (ja
Inventor
ヒンデレ、ガイ、パトリック
ポーター、ローレンス、レオン
スミス、リチャード、トーマス
ウオールズ、グラハム、デリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2006509281A publication Critical patent/JP2006509281A/ja
Application granted granted Critical
Publication of JP4351636B2 publication Critical patent/JP4351636B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、同期の分野に関し、より詳細には、n層アーキテクチャにおける同期に関する。
インターネットは、我々の生活の多くの局面に変化をもたらしているが、インタネットによって事業を運営する方法ほど急速かつ著しい変化をこうむった分野はない。今日の事業にとって、インターネット技術は、事業戦略が形成された後で考慮する事柄ではなく、戦略形成の推進力になっている。多くの組織は、eビジネスのことを、インターネット技術の利用による主要事業プロセスの転換であると定義づけている。eビジネスは、中枢的な事業システムを、顧客、従業員、納入業者、および流通業者にインターネットを介して直接結びつけて、商品の市場投入時期、ならびにより広範な顧客および納入業者へのアクセスに要する時間を改善し、能率を向上させ、コストを削減する。
eビジネス・モデルを実施する企業の例として、オンライン・サプライ・チェーン管理、または取引にかかる高いコストを削減する一方で、顧客口座への改善されたアクセスを提供する電子金融サービス組織と一体化された、オンライン購入を提供する小売り業者がある。eビジネスは、一定の事業機能を自動化する手段から、競争力のある事業にとっての必須要素になるまで発展してきた。
フレームワークとは、1組の抽象パターン、およびそれらのインタフェースが協力する方法として表現された再利用可能な設計のことである。フレームワークは、ソフトウェア・システムの全部または一部のための再利用可能な設計であり、ユーザ・インタフェース・フレームワークは、システムのユーザ・インタフェース用の設計だけを提供し、一方、アプリケーション・フレームワークは、アプリケーション全般用の設計を提供する。
アプリケーション・フレームワークは、複雑なアプリケーションを開発する上で、その重要性をますます増してきている。アプリケーション・フレームワークは、アプリケーションが利用可能な1組の対話コンポーネントおよびサービス、コンポーネントおよびサービスの担当範囲、ならびにそれらの間の対話について記述する。開発者は、アプリケーション・フレームワーク内で利用可能なようにコンポーネントおよびサービスを構成し、拡張することによって、アプリケーションを作成する。アプリケーション・フレームワークは一般に、製造または財務など、特定の事業領域に対応している。
オブジェクト指向(OO)設計フレームワークなど初期のフレームワークは、プログラミング言語を中心に展開した。アプリケーション・フレームワークは、オブジェクト指向言語で実施する必要はないが、フレームワークの各コンポーネントが、定義されたインタフェースおよび挙動を有するという点で、オブジェクト指向設計と類似する特性を有している。アプリケーション・フレームワークは、複雑なeビジネス・アプリケーションを作成し、配備し、管理する必要があるソフトウェア、サーバ、およびサービスに、コンテキストを提供する。
eビジネス用にインターナショナル・ビジネス・マシーンズ・コーポレーションによって使用されるアプリケーション・フレームワークは、eビジネス・ソリューションを設計するためのモデルを提供する。このモデルは、従来のクライアント/サーバ・コンピューティング・モデルから進化したものであり、アプリケーション・ロジックおよびビジネス・サービスの階層が、ネットワークを介して互いに通信を行うコンポーネントから構成される、「n層」分散環境に基づいている。
その最も基本的な形態において、フレームワークは、必ずしも物理的でなくてもよい、論理的なプロセスの分離が存在することを意味する、論理的な3層コンピューティング・モデルとして表すことができる。図1を参照すると、クライアント層(105)、中間層(110)、および第3層(115)を含む、3層モデル(100)の例が示されている。
クライアント層(105)は、リクエストを(例えば、ブラウザまたはJavaアプレットを介して)アプリケーションに送信し、アプリケーションによって生成された情報および結果を(グラフィカル・ユーザ・インタフェースを介して)ユーザに提示することに関するロジックを有する、クライアント(例えば、スマートカード、デジタル無線電話、携帯情報端末(PDA))を含む。クライアントは、「シン(thin)」クライアントと呼ばれることがあるが、これは、そのクライアント上では、アプリケーション・ロジックが僅かしか、または全く実行されず、そのため、そのクライアントには、比較的僅かなソフトウェアしかインストールする必要がないことを意味する。一般に、そのようなクライアント上では、ユーザ対話および入力検査機能だけが実行される。クライアントは、ユーザとの対話、中間層との通信、ならびに標準データ形式の送信および受信を可能にする、業界標準技術および業界標準プロトコル(例えば、TCP/IP、HTTP、HTML/DHTML/XML、およびJava(JavaおよびすべてのJavaベースの商標は、米国、その他の国、またはその両方に所在するサン・マイクロシステムズ・インコーポレイテッドの商標である))を用いて実装される。
シン・クライアントの利用は、管理容易性、柔軟性、および商品の売買に要する時間を改善する。有利な点としては、装置性能に対する依存性が低下するので、より広範囲なクライアント装置をサポートすることができる。さらに、ユーザ・アプリケーション環境を集中的に管理しながら、異なる場所にある異なるタイプのクライアント装置に分散させて、移動ユーザに対してサポートを提供することができる。
中間層(110)は、シングル・アプリケーションまたはマルチ・アプリケーション・サーバであるアプリケーション・サーバを含む。eビジネス環境では、サーバは、インターネット・アプリケーション用に最適化されたウェブ・アプリケーション・サーバである。アプリケーション・サーバは、アプリケーションのビジネス・ロジックにランタイム環境を提供するプラットフォームである。ビジネス・ロジックは、クライアント・タイプおよびユーザ・インタフェース・スタイルとは無関係に実行される。提示ロジックをアプリケーション・ロジックから分離することによって、数々の異なるスタイルのユーザ・インタフェースから利用できる再利用可能なアプリケーション・コンポーネントの作成が可能になる。
中間層サーバは、他の層のアプリケーション、データ、およびサービスと通信を行うための複数のアプリケーション統合技術を含んでいる。オンライン・トランザクションの数が激しい増加を見せているので、ウェブ・アプリケーション・トランザクション・サーバは、eビジネス基盤に欠かすことができない。顧客は、基幹アプリケーションの高速トランザクション処理、堅牢なシステム信頼性、バックアップ、および速やかな復旧を必要とする。ウェブ・アプリケーション・サーバは、他のシステムとの包括的な統合機能も提供しなければならない。ウェブ・アプリケーション・サーバは、これらの新しい事業プロセスを可能にするため、バックエンドの第3層ばかりでなく、相互にも接続しなければならない。
ウェブ・アプリケーション・サーバは、HTTPサーバおよびプラットフォーム独立のエンタープライズJavaプログラミング環境を含む、様々なインターネットおよびJava技術を利用して実装される。エンタープライズJavaプログラミング環境は、下層のハードウェア、オペレーティング・システム、およびネットワーク基盤に対するビジネス・ロジックの依存性をなくし、それによって、移植性を高め、開発および保守コストを低下させる。中間層は、分散ネットワーク環境におけるアプリケーションの速やかな開発および配備を可能にする、ネットワーク基盤および基礎サービスを含む。アプリケーション(120)は、ウェブ・アプリケーション・サーバおよびJava仮想マシンにおいて、サーブレット、サーバサイド・スクリプト、およびエンタープライズJavaBeans(EJB)の組み合わせとして動作する。EJBは、アプリケーションの多くのビジネス・ロジック、特にデータベースおよびトランザクション・サービスへのアクセスを提供する。EJBは、下層のデータベースおよびトランザクション・サービスの独特な特性から開発者を隔離し、プラットフォーム独立のビジネス・ロジックの開発を簡単にする。
第3層(115)は、新規および既存の内部アプリケーション、サービス、およびデータ、ならびに新規および既存の事業パートナからの外部アプリケーション、サービス、およびデータをサポートする、長年にわたって使用されてきた(故に「レガシー(遺産)」という語を冠する)レガシー・システムを含む。これらのサービスに接続することで、顧客、事業パートナ、および従業員にとっての価値が高まる。外部サービスおよびレガシー・システムは、企業の長年にわたる情報技術投資の結果であるので、ウェブ・アプリケーション・モデルの出現の基礎をなしている。これらは、皆が日々頼っている基幹アプリケーションおよびデータであり、企業がイントラネットおよびエクストラネット内の顧客、従業員、および納入業者にとっての企業価値を高めることができるよう、安全かつ統制された方法によってウェブから利用可能にする必要がある事業資産である。この層のサーバは、ウェブ・アプリケーション・サーバ・プロセスによって使用されるデータ記憶およびトランザクション・アプリケーションを提供する。
これら3つの論理層に存在するアプリケーション要素は、業界標準プロトコル、サービス、およびソフトウェア・コネクタの組によって接続される。コネクタ(125、126、127)は、中間層に存在する新しい付加価値を有する事業ロジックを、バックエンド層に存在する企業の既存のアプリケーションおよびデータ・システムの莫大な蓄積資産に結びつける。中間層で動作するビジネス・ロジックは、クライアントからリクエスト(例えば、HTTPリクエスト)を受け取ると、コネクタを起動して、クライアントの代わりに、バックエンド層のサービスと安全に通信を行う。
代替モデルに、「データ同期」モデルがある。図2の分散システム(200)を参照すると、アプリケーションが、サーバ(215)(例えば、記憶装置(220)内など)に存在し、同じアプリケーションの複製が、(例えば、パーソナル・コンピュータなどの)「ファット(fat)・クライアント」(205)(例えば、記憶装置(210)内など)に存在する。ファット・クライアントは自ら、アプリケーションの大部分またはすべての処理を実行する。ユーザがオフラインにある場合、ファット・クライアントは、複製データ上でローカルに作業を行うことができ、周期的に、ユーザがネットワーク(225)を介してサーバ(215)に接続すると、複製データとサーバ(215)に存在するマスタ・データとの同期がとられる。このモデルは、カレンダ、eメールなどの個人情報管理(PIM)アプリケーション用にしばしば使用され、断続的にのみネットワークに接続される移動クライアントにとって特に有用である。
現在、多くの組織が、eビジネス・アプリケーションを配布する方法として、データ同期を取り入れることを望んでいる。例えば、銀行は、PDA上のローカル・データとバックエンド層のマスタ・データとの同期を定期的に維持し、顧客がPDAアプリケーションで自分の口座を調べ、操作できるようにすることを望んでいる。しかし、データ同期モデルは、eビジネスの3層モデルとはうまく適合しない。具体的には、組織は、複雑な高度に保護されたバックエンド・データベースを、クライアントと直接的に同期させることを望んでおらず、または同期させることができない。別の複雑さは、ウェブ・アプリケーション・サーバ上で動作するアプリケーションのビジネス・ロジックが、HTTPリクエストによって駆動され、HTTPレスポンスを生成する点にある。また、クライアントとバックエンド層との間で必要とされる同期プロトコルを、ビジネス・ロジックは理解しない。
可能な解決策の1つは、データのコピーをバックエンド層から中間層に抽出することである。その場合、クライアントは、中間層に接続し、データを更新することができる。更新したデータは、その後、中間層を介して、バックエンド層に保存されているデータと同期させることができる。
しかし、この解決策には不都合な点がある。第1に、クライアントが作業するデータは、いつも最新ではなく、データが夜間バッチで抽出されたものである場合は特にそうである。さらに、バックエンド層で一貫性のあるデータを維持するためには、更新したデータをバックエンド層のデータと同期させる新しいアプリケーション機能を開発しなければならない。その結果、分散トランザクション処理が必要になるが、これにはよく知られた短所が存在する。例えば、トランザクション・コーディネータが、(例えば、銀行Aがある金額を口座Aの借方に記帳し、銀行Bが同じ金額を口座Bの貸方に記帳する)トランザクションを、そのトランザクションに関与するすべてのリソース・マネージャに「コミット」したが、その時、ネットワークが停止中であったとすると、トランザクションの状態の一貫性を期待することはできない。いくつかのリソース・マネージャは、そのトランザクションを完了として登録するが、他のリソース・マネージャは、そうすることができない。一般に、トランザクションの結果を明確にする必要があるリソース・マネージャは、トランザクション・コーディネータに照会する必要がある。しかし、ネットワークが再び稼動を始めるまで、それは不可能であり、その間、口座AおよびBは、しばらくの間、ロックされる場合がある。別の不都合は、この解決策を複数のシン・クライアントに拡大するには、中間層は一般に、複数のウェブ・アプリケーション・サーバを含まなければならない点にある。したがって、一貫性を維持する問題は、動的にその難しさを増す。
米国特許第6023684号は、クライアント・プログラムとの論理セッションの開始時に、アプリケーション・サービスが、バックエンド処理システムからホスト・インタフェースを介して取得したデータを使用して、クライアント・プログラムに関連づけられた顧客用のデータをリフレッシュする、3層モデルを開示している。データは、アプリケーション・サービスに関連づけられたローカル・データ・メモリに保存され、その後、このデータは、論理セッション中、クライアント・リクエストを処理するために、アプリケーション・サービスによって使用される。ローカル・データ・メモリは、クライアント・リクエストの処理を、バックエンド処理システムの更新から切り離すことを可能にする。
米国特許第6023684号
したがって、「n層」モデルに大掛かりな変更を施す必要なく、データ同期モデルと「n層」モデルの利点を提供するモデルが必要とされている。
本発明の第1の態様によれば、マスタ版のデータを保存する手段を有する少なくとも1つのレガシー・コンピュータと、同期をサポートする手段を有する第1の非レガシー・コンピュータと、前記マスタ版のデータのコピーを保存する手段、および前記コピーに対して少なくとも1つの操作を実行する手段を有する第2の非レガシー・コンピュータとを含む分散データ処理システムで利用される同期方法が提供され、前記方法は、前記第2の非レガシー・コンピュータによって、前記コピーに対して前記少なくとも1つの操作を実行するステップと、前記第2の非レガシー・コンピュータによって、前記少なくとも1つの操作を前記第1の非レガシー・コンピュータに送信するステップと、前記第1の非レガシー・コンピュータによって、前記少なくとも1つのレガシー・コンピュータの前記マスタ版に対して前記少なくとも1つの操作を実行するステップと、前記実行ステップが成功したかどうかを決定するステップと、実行ステップの成功に応答して、前記少なくとも1つの操作を適用することによって、前記マスタ版を同期させるステップと、前記第1の非レガシー・コンピュータによって、前記マスタ版に対して前記少なくとも1つの操作を実行する前記ステップの結果、および前記マスタ版のデータの新しいコピーを送信するステップとを含む。
したがって、レガシー・コンピュータ上で少なくとも1つの操作が実行された後、第1の非レガシー・コンピュータは、結果(すなわち、成功/失敗の通知と、結果データ自体)と、マスタ版のデータの新しいコピーとを、第2の非レガシー・コンピュータに送信する。
一例として、レガシー・コンピュータは、メインフレーム・コンピュータであり、第1の非レガシー・コンピュータは、ウェブ・アプリケーション・サーバであり、第2の非レガシー・コンピュータは、PDAである。好ましくは、前記方法はさらに、第2の非レガシー・コンピュータによって、同期プロトコルを第1の非レガシー・コンピュータに送信するステップを含む。前記プロトコルは一般に、第2の非レガシー・コンピュータのタイプに特有なものである。本発明の好ましい一実施形態では、レガシー・コンピュータ上で実行される操作が2以上存在する場合、それらの操作は、順々に実行される。好ましくは、少なくとも1つの操作が、(例えば、同時発生した操作と競合したために)マスタ版に対して実行できない場合は、マスタ版を同期させない。
本発明の第2の態様によれば、マスタ版のデータを保存する手段を有する少なくとも1つのレガシー・コンピュータと、同期をサポートする手段を有する第1の非レガシー・コンピュータと、前記マスタ版のデータのコピーを保存する手段、および前記コピーに対して少なくとも1つの操作を実行する手段を有する第2の非レガシー・コンピュータとを含む同期用の分散データ処理システムが提供され、前記システムはさらに、前記第2の非レガシー・コンピュータによって、前記コピーに対して前記少なくとも1つの操作を実行する手段と、前記第2の非レガシー・コンピュータによって、前記少なくとも1つの操作を前記第1の非レガシー・コンピュータに送信する手段と、前記第1の非レガシー・コンピュータによって、前記少なくとも1つのレガシー・コンピュータの前記マスタ版に対して前記少なくとも1つの操作を実行する手段と、前記実行ステップが成功したかどうかを決定する手段と、成功したとの決定に応答して、前記少なくとも1つの操作を適用することによって、前記マスタ版を同期させる手段と、前記第1の非レガシー・コンピュータによって、前記マスタ版に対して前記少なくとも1つの操作を実行する前記手段の結果、および前記マスタ版のデータの新しいコピーを送信する手段とを含む。
本発明の第3の態様によれば、コンピュータ・プログラム・コード手段を含むコンピュータ・プログラムが提供され、コンピュータ・プログラム・コード手段は、前記プログラムがコンピュータ上で実行される時に上記の方法のすべてのステップを実行するように適合される。
次に、添付の図面に示される本発明の好ましい実施形態を参照しながら、本発明を例としてのみ説明する。
図3に、本発明を実施できる3層モデル(300)の絵図を示す。関連する記憶手段(それぞれ、310、320、330)を有する、クライアント層(305)、中間層(315)、およびバックエンド層(325)が示されている。クライアント層(305)と中間層(315)は、ソフトウェア・コネクタ(331)によって接続され、中間層(315)とバックエンド層(325)は、ソフトウェア・コネクタ(332、333)によって接続される。バックエンド層(325)のアプリケーションおよびサービスは、ファイアウォール(335)によって保護される。
次に、本発明の一実施形態を、図3、図4、および図5を参照しながら説明する。シン・クライアント(305)をPDA、中間層(315)をウェブ・アプリケーション・サーバ、バックエンド層(325)を銀行口座データのマスタ版を保存するデータ・リポジトリとするバンキング・アプリケーションを例にして説明する。
好ましくは、シン・クライアント(305)は、実行すると、バックエンド層(325)の記憶手段(330)からユーザの銀行口座データのコピーを取得する機能を含む。好ましくは、前記コピーは、シン・クライアント(305)に関連づけられた記憶手段(310)にローカルに保存される。この例では、残高が£300の銀行口座データが、ローカルに保存される。ユーザは、ローカル・データに対して操作(例えば、変更/更新)を実行する(ステップ400、ステップ500)。この実施形態では、操作は以下のようになる。
・口座に£50を入金する。
・口座からの£100の自動振替を設定する。
・口座から£75の1回限りの支払いを行う。
しかし、ローカル・データは、バックエンド層(325)に存在するマスタ版に関して最新ではなくなりやすい。これは、ユーザが開始した操作のいくつかが、バックエンド層(325)のユーザの銀行口座のマスタ版に適用される同時発生した操作と衝突を起こすことがあるためである。例えば、自動振替の支払い、貯蓄口座への振替、ローンの支払いなどがある。この実施形態では、同時発生した操作が、ユーザの銀行口座のマスタ版に適用される。この例では、£200の1回限りの支払いが、ユーザの銀行口座から引き落とされ、その結果、実際の残高は、£100(すなわち、£300−£200=£100)になっている。
ユーザが開始した操作は、マスタ版に適用された同時発生した操作とまだ矛盾なく調整されていないので、好ましくは、ユーザの操作は、リスト内に保持される。したがって、シン・クライアント(305)は、2つのタイプのデータ、すなわち、(おそらく、僅かにマスタ版とは異なっている)「現在の」データのコピー(すなわち、ユーザの銀行口座データ)と、保留中の操作のリスト(すなわち、上記の操作1、2、3のリスト)とを保存する。
次に、シン・クライアント(305)のユーザは、更新したローカル・データをマスタ版と同期させるためのリクエスト(リクエストA)を、HTTPリクエストによって中間層(315)に送信する(ステップ405、ステップ505)。中間層(315)は、同期に着手するようシン・クライアント(305)に指示するHTTPレスポンス(レスポンスA’)を返信することによって(ステップ410、ステップ510)、「リクエストA」を正常に受信したことを通知する。このリクエスト/レスポンス交換は、任意選択ステージであることを理解されたい。次に、シン・クライアント(305)のユーザは、同期を開始するため、HTTPリクエスト(リクエストB)を中間層(315)に送信する(ステップ415、ステップ515)。シン・クライアントの標準的な同期プロトコルも、中間層(315)に送信される。有利には、ビジネス・アプリケーション・ロジックをHTTPリクエスト/レスポンス・モデルを使用することによって中間層で利用するのに加えて、ネイティブなシン・クライアント同期プロトコルを実行できる中間層の機能も利用される。
次に、同期プロセスが開始される(ステップ420)。具体的には、同期させるデータは、シン・クライアント(305)のユーザが実行を求める操作(上記の1、2、3)のリストである。同期ステップにおいて、操作のリストは、シン・クライアント(305)から中間層(315)にロードされる。その後、中間層(315)は、リスト内の操作をバックエンド層(325)上で再現する(520)。すなわち、£50を口座に入金し、口座からの£100の自動振替を設定し、口座から£75の1回限りの支払いを行う。競合の機会が減少するように、好ましくは、再現ステップは素早く行われることを理解されたい。また、好ましくは、操作のリストは、順を追って再現される。
競合する同時発生操作が、バックエンド層(325)に存在するマスタ版に適用されたかどうかに応じて、ユーザが開始した操作には、成功するものと失敗するものがあることを理解されたい。同時発生操作がマスタ版に適用されたならば、これらは、シン・クライアント(305)がデータの「現在の」コピーを受信した後で適用されたものである。ステップ425で、各操作について、それが成功したがどうかが決定される。肯定的な結果の場合は、成功したユーザ開始操作を反映するように、マスタ版のデータを同期させ(ステップ430)、否定的な結果の場合は、マスタ版のデータを同期させない(ステップ435)。この例では、実際の銀行口座残高は、£100になっている。したがって、操作1は成功し(操作1の後、実際の銀行口座残高=£150となり)、操作2も成功し(操作2の後、実際の銀行口座残高=£50となり)、操作3は失敗する(実際の銀行口座残高=£−25となるため)。
次に、バックエンド層(325)が、ユーザ開始操作の結果と、銀行口座の新しい(更新された)マスタ版のコピー(この例では、実際の銀行口座残高=£50)を、中間層(315)に送信する(525)。
中間層(315)は、これらの操作の結果を監視し(ステップ440)、結果と、さらに銀行口座の新しいマスタ版のコピーを、シン・クライアント(305)に送信する(ステップ445、ステップ530)。ステップ400でユーザが使用したローカル・コピーは、銀行口座の新しいマスタ版のコピーで置き換えられる。
これで、同期プロセスは終了し、そのことが、中間層(315)からシン・クライアント(305)にHTTPレスポンス(レスポンスB’)を送信することによって(ステップ450、ステップ535)、ユーザに通知される。好ましくは、その後、銀行口座の更新状況を示すビュー、成功した操作のリスト、および失敗した操作のリストを、ユーザに提示することができる。図6に、ビュー(600)の一例を示す。操作がもう実行されないのであれば、ステップ455で、プロセスは終了する。しかし、まだ操作を実行する場合は、プロセスはステップ400に戻り、例えば、ユーザは、操作の取り消し、修正、延期などによって、失敗した操作に対処することができる。
有利な点として、中間層は、新しいマスタ版のデータの最新コピーをシン・クライアントに送信するには、同期がとられた後に、マスタ版のデータにアクセスしさえすればよい。さらに、本発明の好ましい実施形態は、同時発生操作がマスタ版のデータに適用された可能性にも対処することができる。このシナリオは、シン・クライアントとバックエンド層とで食い違いのないデータのコピーを必要とせずに実施することができる。
別の利点は、データ同期モデルの利点が、3層モデルに大掛かりな変更を施す必要なしに提供される点にある。したがって、本発明は、今日すでに多くの組織によって運営されているシステムで利用することができる。例えば、シン・クライアントと中間層の既存の関係、すなわち、現在利用可能なHTTPおよびPDA同期プロトコルを使用することができる。しかし、本発明は、その他のプロトコルを用いても実施できることを理解されたい。さらに、3層モデルについて説明してきたが、本発明は、「n」層のモデルにおいても実施することができる。また、PDA、ウェブ・アプリケーション・サーバ、およびバックエンド・ホストについて説明してきたが、各層は、その他の任意のコンピュータ・マシンを含み得ることを理解されたい。
従来技術の「n層」モデルの概略図である。 従来技術のデータ同期モデルの概略図である。 本発明による「n層」モデルの概略図である。 図3に示すようなモデルにおいて実施されるデータ同期プロセスに含まれる操作ステップを示したフローチャートである。 図3に示すようなモデルのコンポーネント間でのデータ同期プロセスに含まれるフローのシーケンス図である。 データ同期の結果の図である。

Claims (4)

  1. マスタ版のデータを保存する手段を有する少なくとも1つのレガシー・コンピュータと、
    同期をサポートする手段を有する第1の非レガシー・コンピュータと、
    前記レガシー・コンピュータから取得した前記マスタ版のデータのコピーを保存する手段、および前記コピーに対して少なくとも1つの変更/更新操作を実行する手段を有する第2の非レガシー・コンピュータと
    を含む分散データ処理システムで利用される同期方法であって、
    前記第2の非レガシー・コンピュータによって、前記コピーに対して前記変更/更新操作を実行する第1の実行ステップと、
    前記第2の非レガシー・コンピュータによって、前記変更/更新操作のリストを前記第1の非レガシー・コンピュータに送信するステップと、
    前記第1の非レガシー・コンピュータによって、前記レガシー・コンピュータの前記マスタ版に対して前記変更/更新操作を実行する第2の実行ステップと、
    競合する同時発生操作が前記マスタ版に適用されたかどうかを考慮して前記第2の実行ステップが成功したかどうかを決定するステップと、
    前記第2の実行ステップの成功に応答して、前記マスタ版に対して前記変更/更新操作を適用することによって、前記マスタ版を同期させるステップと、
    前記第1の非レガシー・コンピュータによって、前記決定の内容を含む、前記第2の実行ステップの結果、および前記マスタ版のデータの新しいコピーを前記第2の非レガシー・コンピュータに送信するステップと
    を含む方法。
  2. 前記第2の非レガシー・コンピュータによって、同期プロトコルを前記第1の非レガシー・コンピュータに送信するステップをさらに含む、請求項1に記載の方法。
  3. 前記変更/更新操作が、2以上の変更/更新操作を含み、各変更/更新操作が、前記第1の非レガシー・コンピュータによって順々に実行される、請求項1または2に記載の方法。
  4. 前記第2の実行ステップの不成功に応答して、前記マスタ版を同期させない、請求項1に記載の方法。
JP2004556455A 2002-12-04 2003-04-08 同期方法 Expired - Fee Related JP4351636B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0228279.6A GB0228279D0 (en) 2002-12-04 2002-12-04 A synchronization method
PCT/GB2003/001504 WO2004051472A1 (en) 2002-12-04 2003-04-08 A synchronization method in an n-tier transaction

Publications (2)

Publication Number Publication Date
JP2006509281A JP2006509281A (ja) 2006-03-16
JP4351636B2 true JP4351636B2 (ja) 2009-10-28

Family

ID=9949054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004556455A Expired - Fee Related JP4351636B2 (ja) 2002-12-04 2003-04-08 同期方法

Country Status (7)

Country Link
US (1) US7930269B2 (ja)
EP (1) EP1570350A1 (ja)
JP (1) JP4351636B2 (ja)
CN (1) CN1714341A (ja)
AU (1) AU2003219317A1 (ja)
GB (1) GB0228279D0 (ja)
WO (1) WO2004051472A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822741B2 (en) 2004-06-21 2010-10-26 Microsoft Corporation API for programmatic retrieval and replay of database trace
US8290898B2 (en) * 2005-01-13 2012-10-16 Efficient Collaborative Retail Marketing Company Interactive database systems and methods for environments with high concentrations of mobile users
EP1760610A1 (en) * 2005-08-31 2007-03-07 France Telecom Method for managing shared data and related device
US20070061381A1 (en) * 2005-09-15 2007-03-15 Gregory Newton Methods, systems and computer program products for managing user information across multiple devices associated with the user
CN100454302C (zh) * 2005-10-24 2009-01-21 中兴通讯股份有限公司 一种文件管理系统及管理方法
US20070234306A1 (en) * 2006-03-31 2007-10-04 Klinger Uwe D Tracing performance of machine-readable instructions
CA2565847A1 (en) * 2006-10-27 2008-04-27 Cognos Incorporated System and method for controlling model editing and merging
US8762327B2 (en) * 2007-02-28 2014-06-24 Red Hat, Inc. Synchronizing disributed online collaboration content
US8527995B2 (en) * 2008-02-27 2013-09-03 Microsoft Corporation Synchronization system for entities maintained by multiple applications
JP2012510118A (ja) * 2008-11-26 2012-04-26 カルガリー・サイエンティフィック・インコーポレイテッド アプリケーションプログラムの状態への遠隔アクセスを提供するための方法およびシステム
US10055105B2 (en) 2009-02-03 2018-08-21 Calgary Scientific Inc. Method and system for enabling interaction with a plurality of applications using a single user interface
KR20110125647A (ko) * 2009-02-03 2011-11-21 캘거리 싸이언티픽 인코포레이티드 단일 사용자 인터페이스를 사용하여 복수의 애플리케이션과 상호작용하기 위한 방법 및 시스템
US9741084B2 (en) 2011-01-04 2017-08-22 Calgary Scientific Inc. Method and system for providing remote access to data for display on a mobile device
CA2734860A1 (en) 2011-03-21 2012-09-21 Calgary Scientific Inc. Method and system for providing a state model of an application program
RU2625525C2 (ru) 2011-08-15 2017-07-14 Калгари Сайентифик Инк. Бесконтактный удаленный доступ к программному приложению
CA2844851A1 (en) 2011-08-15 2013-02-21 Calgary Scientific Inc. Method for flow control and for reliable communication in a collaborative environment
CN103959708B (zh) 2011-09-30 2017-10-17 卡尔加里科学公司 包括用于协作远程应用共享和注释的交互式数字表层的非耦合应用扩展
CN104040946B (zh) 2011-11-23 2017-07-14 卡尔加里科学公司 用于协作远程应用程序共享和会议的方法和系统
US9602581B2 (en) 2012-03-02 2017-03-21 Calgary Scientific Inc. Remote control of an application using dynamic-linked library (DLL) injection
US9535755B2 (en) * 2012-03-09 2017-01-03 Google Inc. Tiers of data storage for web applications and browser extensions
US9729673B2 (en) 2012-06-21 2017-08-08 Calgary Scientific Inc. Method and system for providing synchronized views of multiple applications for display on a remote computing device
US9633098B2 (en) 2012-09-25 2017-04-25 Visa International Service Association System and method for maintaining device state coherency
EP3075111B1 (en) 2013-11-29 2017-12-20 Calgary Scientific Inc. Method for providing a connection of a client to an unmanaged service in a client-server remote access system
CN107431630B (zh) 2015-01-30 2021-06-25 卡尔加里科学公司 高度可扩展、容错的远程访问架构和与之连接的方法
US10015264B2 (en) 2015-01-30 2018-07-03 Calgary Scientific Inc. Generalized proxy architecture to provide remote access to an application framework
CN106933823B (zh) * 2015-12-29 2020-11-27 北京国双科技有限公司 数据同步方法及装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023684A (en) * 1997-10-01 2000-02-08 Security First Technologies, Inc. Three tier financial transaction system with cache memory
GB2339622A (en) * 1998-07-15 2000-02-02 Ibm Client/server computing with transactional interface between legacy and non-legacy systems
US6546437B1 (en) * 1999-03-18 2003-04-08 Intel Corporation Communication between a computer and a peripheral with legacy failure control mechanism
AU5025600A (en) * 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
US6810429B1 (en) * 2000-02-03 2004-10-26 Mitsubishi Electric Research Laboratories, Inc. Enterprise integration system
US6950848B1 (en) * 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
US6505200B1 (en) * 2000-07-06 2003-01-07 International Business Machines Corporation Application-independent data synchronization technique
US6920458B1 (en) * 2000-09-22 2005-07-19 Sas Institute Inc. Model repository
US7136881B2 (en) * 2000-12-15 2006-11-14 International Business Machines Corporation Method and system for processing directory events
US7421430B2 (en) * 2001-05-14 2008-09-02 International Business Machines Corporation Method for processing real-time mobile transactions in a three-tier distributed database system
US20020178223A1 (en) * 2001-05-23 2002-11-28 Arthur A. Bushkin System and method for disseminating knowledge over a global computer network
US6952708B2 (en) * 2001-06-27 2005-10-04 Microsoft Corporation Method and system for using a sync key
US20030046266A1 (en) * 2001-07-26 2003-03-06 Ward Mullins System, method and software for creating or maintaining distributed transparent persistence of complex data objects and their data relationships
US20030212578A1 (en) * 2001-11-20 2003-11-13 Applied Surgical Data Corporation Method for obtaining dynamic informed consent
US7054910B1 (en) * 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
US7185317B2 (en) * 2002-02-14 2007-02-27 Hubbard & Wells Logical data modeling and integrated application framework
US20040153445A1 (en) * 2003-02-04 2004-08-05 Horvitz Eric J. Systems and methods for constructing and using models of memorability in computing and communications applications

Also Published As

Publication number Publication date
WO2004051472A1 (en) 2004-06-17
GB0228279D0 (en) 2003-01-08
CN1714341A (zh) 2005-12-28
EP1570350A1 (en) 2005-09-07
US20060026006A1 (en) 2006-02-02
JP2006509281A (ja) 2006-03-16
AU2003219317A1 (en) 2004-06-23
US7930269B2 (en) 2011-04-19

Similar Documents

Publication Publication Date Title
JP4351636B2 (ja) 同期方法
JP4550411B2 (ja) 同期されたコールバック処理特徴をもったトランザクション処理システム及び方法
US7072913B2 (en) Method, system and computer program for executing hot migrate operation using migration plug-ins
Srinivasan et al. An overview of service-oriented architecture, web services and grid computing
US7213049B2 (en) System and method for transaction processing with transaction property feature
AU2002322495A1 (en) System and method for transaction processing with synchronized callback processing feature
WO2002033545A2 (en) Pluggable instantiable distributed objects
TW201229795A (en) Web service patterns for globally distributed service fabric
JP2002531893A (ja) 小型軽量クライアントアーキテクチャーを有するクライアントサーバシステム
AU2002318249A1 (en) System and method for transaction processing with transaction property feature
US20080040418A1 (en) Accessing existing data using a service oriented architecture gateway
JP3409308B2 (ja) クライアント/サーバ・コンピューティング・システム及びサーバ処理方法
JP2002510084A (ja) クライアント/サーバ・コンピューティング・システム
JP3548030B2 (ja) サーバ処理装置及びサーバ処理方法
Limprecht Microsoft transaction server
US20060010026A1 (en) Transaction polymorphism
EP1267263A2 (en) Hot migration through incremental roll-over using migration plug-ins for conversion during upgrade
Leff et al. Programming model alternatives for disconnected business applications
Leff et al. Projecting a Connected Programming-Model for Business Applications onto Disconnected Devices: A Practical Approach
Alonso et al. Distributed information systems
McCaffery Transactional Application Servers: Providing the Scalability for Global Electronic Business
Ahmad Migration from client/server architecture to internet computing architecture
Yu SpiderNet: A multi-server code service model design for computational grid support.
GB2339621A (en) Client/server computing system provides extension to basic transaction service
Woolley Enterprise Application Integration (EAI) Briefing Paper

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20050803

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060324

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090406

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090714

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090724

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120731

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees