(57)【特許請求の範囲】
【請求項１】
ユーザ(2)のセッション(3)と、記憶書類を記憶するデータ記憶装置(1)と、少なくとも1つの外部システム(5、5')との間のデータ同期を提供する方法であって、少なくとも1つのデータ処理装置で実行される以下のステップ、すなわち、
-  少なくとも前記セッション(3)および前記データ記憶装置(1)と通信する同期装置(4)で、前記データ記憶装置(1)から前記記憶書類を取り出すための要求を前記セッション(3)から受け取るステップと、
-  前記同期装置(4)で、前記データ記憶装置(1)から前記記憶書類を取り出し、少なくとも前記記憶書類の内容を含む中間書類を前記記憶書類から作成し、前記ユーザ(2)による動作のために、前記中間書類を前記セッション(3)へセッション書類として送達するステップと、
-  前記少なくとも1つの外部システム(5、5')から第１の外部データを受け取るステップと、
-  前記同期装置(4)で、前記セッション書類上で実行されるユーザ更新を受け取るステップと、
-  前記同期装置(4)で、前記記憶書類が前記第１の外部データを含むように前記記憶書類を修正するステップと、
-  前記記憶書類を前記データ記憶装置(1)内に保存するステップと、
-  前記同期装置(4)で、前記ユーザ更新と前記記憶書類をマージすることによって前記セッション書類を更新し、次いで前記セッション書類を前記ユーザ(2)に提供するステップとを含むことを特徴とする方法。
【請求項２】
前記セッション(3)によって送られたリフレッシュに対する要求を前記同期装置(4)で受け取ったとき、前記同期装置(4)が、
-  前記記憶書類が前記第１の外部データを含むように前記記憶書類を修正する前記ステップを実行し、
-  前記ユーザ更新がマージされた前記記憶書類を前記セッション(3)へ送って前記セッション書類と取り替える、請求項1に記載の方法。
【請求項３】
前記外部システム(5)からの第２の外部データが前記データ記憶装置(1)によって受け取られ、前記データ記憶装置(1)によって前記第２の外部データを受け取ったとき、前記データ記憶装置(1)が、前記記憶書類が前記第２の外部データを含むように前記記憶書類を修正するステップと、前記記憶書類を前記データ記憶装置(1)内に保存するステップを実行する、請求項1または2に記載の方法。
【請求項４】
前記記憶書類が前記第１の外部データを含むように前記同期装置(4)でを修正する前記ステップが、前記記憶書類が前記第２の外部データを含むように前記記憶書類を修正する前記ステップおよび前記記憶書類を前記データ記憶装置(1)内に保存する前記ステップの後に行われ、前記同期装置(4)で前記データ記憶装置(1)から前記記憶書類を取り出し、前記ユーザ更新と前記記憶書類をマージするステップを含む、請求項3に記載の方法。
【請求項５】
前記外部システム(5')からの前記第１の外部データが、前記同期装置(4)と通信するイベントキュー(9)で受け取られ、前記記憶書類が前記第１の外部データを含むように前記同期装置(4)で前記記憶書類を更新する前記ステップが、前記同期装置(4)で前記イベントキュー(9)から前記第１の外部データを取り出し、前記データ記憶装置(1)から前記記憶書類を取り出し、次いで前記第１の外部データと前記記憶書類をマージすることによって前記記憶書類を更新するステップを含む、請求項1または2に記載の方法。
【請求項６】
前記記憶書類が前記第１の外部データを含むように前記記憶書類を修正する前記ステップおよび前記記憶書類を前記データ記憶装置(1)内に保存する前記ステップを実行するために、前記同期装置(4)が、前記データ記憶装置(1)内に前記中間書類を保存する、請求項4に記載の方法。
【請求項７】
前記外部システム(5、5')から第２の外部データを受け取るステップであって、前記データ記憶装置(1)によって前記第２の外部データを受け取るステップと、前記同期装置(4)と通信するイベントキュー(9)によって前記第１の外部データを受け取るステップとを含む、ステップを更に具備する、請求項1または2に記載の方法。
【請求項８】
前記データ記憶装置(1)によって前記第２の外部データを受け取ったとき、前記データ記憶装置(1)が、前記記憶書類が前記第２の外部データを含むように前記記憶書類を修正する前記ステップと、前記記憶書類を前記データ記憶装置(1)内に保存する前記ステップとを実行し、前記同期装置(4)が、前記イベントキュー(9)から前記第１の外部データを取り出し、前記データ記憶装置(1)から前記記憶書類を取り出し、前記第１の外部データと前記記憶書類をマージすることによって前記中間書類を更新する、請求項7に記載の方法。
【請求項９】
前記第１の外部データと前記記憶書類をマージすることによって前記同期装置(4)で前記中間書類を更新したとき、前記同期装置(4)が、前記データ記憶装置(1)内に前記中間書類を保存する、請求項8に記載の方法。
【請求項１０】
前記同期装置(4)が、前記セッション(3)から追加のユーザ更新を受け取り、次いで前記同期装置(4)が、前記データ記憶装置(1)から前記記憶書類を取り出し、前記記憶書類と前記セッション(3)からの前記追加のユーザ更新とをマージすることによって前記中間書類を更新し、前記中間書類を前記セッション(3)へ送って前記セッション書類と取り替える、請求項1から9のいずれか一項に記載の方法。
【請求項１１】
前記セッション(3)が、前記中間書類を前記データ記憶装置(1)内に保存する可能性を前記ユーザ(2)に提供する、請求項1から10のいずれか一項に記載の方法。
【請求項１２】
前記セッション書類を保存するか否かに関する質問を、前記セッション(3)のユーザインターフェースを通じて前記ユーザ(2)に尋ねることが可能であり、前記質問が、前記セッション(3)が前記セッション(3)を閉じる命令を受け取ったときに尋ねられる、請求項11に記載の方法。
【請求項１３】
前記セッション(3)が、前記セッション書類を保存する命令を受け取り、前記同期装置(4)へ保存要求を送り、前記保存要求を受け取ったとき、前記同期装置(4)が、前記外部システム(5、5')から受け取ったデータと、前記記憶書類と、前記セッション書類とをマージすることによって前記中間書類を更新し、更新された前記中間書類を前記データ記憶装置(1)内に保存する、請求項1から12のいずれか一項に記載の方法。
【請求項１４】
前記セッション(3)が前記セッション書類を保存する命令を受け取らなかった場合、または前記セッション(3)が前記セッション書類を削除する命令を受け取った場合、前記ユーザ更新が保存されず、前記セッション(3)が前記データ記憶装置(1)内の前記記憶書類を更新しない、請求項1から12のいずれか一項に記載の方法。
【請求項１５】
少なくとも1つの外部システムが前記ユーザによってアクセスされ、前記第１の外部データの少なくとも一部が前記ユーザによって生成される、請求項1から14のいずれか一項に記載の方法。
【請求項１６】
前記ユーザ(2)が、同じ処理デバイスを通じて、前記セッション(3)および少なくとも記外部システム(5、5')にアクセスする、請求項1から15のいずれか一項に記載の方法。
【請求項１７】
前記ユーザ(2)が、前記外部システム(5')のユーザインターフェースを通じて前記外部システム(5')にアクセスし、前記外部システム(5')の前記第１の外部データが、前記ユーザ(2)が前記外部システム(5')の前記ユーザインターフェースから前記セッション(3)のユーザインターフェースへ再び切り換えたとき、前記外部システム(5')から前記同期装置(4)と通信するイベントキュー(9)へ送られる、請求項1から16のいずれか一項に記載の方法。
【請求項１８】
前記ユーザ(2)が、前記外部システム(5)のユーザインターフェースを通じて前記外部システム(5)にアクセスし、前記外部システム(5)の前記第２の外部データが、前記ユーザ(2)が前記外部システム(5)の前記ユーザインターフェースから前記セッション(3)のユーザインターフェースへ再び切り換えたとき、前記外部システム(5)から前記データ記憶装置(1)へ送られる、請求項3、4、及び、6〜9のいずれか一項に記載の方法。
【請求項１９】
前記同期装置(4)が前記データ記憶装置(1)から前記記憶書類を取り出して前記中間書類を作成または更新する前に、少なくとも1つの追加の外部システム(5、5')が、前記データ記憶装置(1)へ追加の外部データを送り、前記追加の外部データが前記記憶書類を更新し、したがって前記中間書類を作成または更新するときに前記追加の外部データが前記記憶書類に含まれている、請求項1から18のいずれか一項に記載の方法。
【請求項２０】
様々なソースからのデータまたは更新で修正できる交差区間を前記記憶書類内で識別するステップを含み、前記ソースが、ユーザセッション(3)または前記少なくとも1つの外部システム(5、5')であり、各交差区間に対して優先権規則を規定するステップを含む、請求項1から19のいずれか一項に記載の方法。
【請求項２１】
外部データまたはユーザ更新が交差区間に関連するデータを含む場合、前記交差区間に対して規定された前記優先権規則を適用する、請求項20に記載の方法。
【請求項２２】
前記追加の外部システム(5、5')が前記データ記憶装置(1)とは独立している、請求項19に記載の方法。
【請求項２３】
前記外部システムと前記追加の外部システムが同じである、請求項19に記載の方法。
【請求項２４】
前記セッションが、旅行および観光に関連するサービスおよび製品、または余暇および娯楽業界に関連するサービスおよび製品、または芸術および文化に関連するサービスおよび製品の予約を可能にする、請求項1から23のいずれか一項に記載の方法。
【請求項２５】
前記セッションが、航空、列車、船旅、レンタカー、ホテルの客室に関連する予約を可能にする、請求項1から24のいずれか一項に記載の方法。
【請求項２６】
前記外部システムが、予約システムまたはグローバルディストリビューションシステムの少なくとも一部である、請求項1から25のいずれか一項に記載の方法。
【請求項２７】
前記外部システムが、手動で起動されることなく、前記データ記憶装置を自動的に更新する、請求項1から26のいずれか一項に記載の方法。
【請求項２８】
前記外部システムが、前記セッションの前記ユーザによって起動される、請求項1から24のいずれか一項に記載の方法。
【請求項２９】
前記データ記憶装置が乗客名簿(PNR)を含む、請求項1から28のいずれか一項に記載の方法。
【請求項３０】
前記外部システムからの外部データが乗客名簿に関連する、請求項29に記載の方法。
【請求項３１】
前記セッションからのユーザ更新が乗客名簿に関連する、請求項30に記載の方法。
【請求項３２】
一時的でないコンピュータ可読メモリ媒体内に記憶され、請求項1から31のいずれか一項に記載の方法を実行する、コンピュータプログラム。
【請求項３３】
データ記憶装置(1)と、ユーザインターフェースを含み、前記データ記憶装置(1)内に記憶された記憶書類にアクセスするように構成されたセッション(3)と、少なくとも1つの外部システム(5、5')とを備えるデータ同期を提供するシステムであって、少なくとも前記セッション(3)および前記データ記憶装置(1)と通信する同期装置(4)を備えることを特徴とし、少なくとも1つのデータ処理装置で以下のステップ、すなわち、
-  前記同期装置が、前記データ記憶装置(1)から前記記憶書類を取り出すための要求を前記セッション(3)から受け取るステップと、
-  前記同期装置(4)が、前記データ記憶装置(1)から前記記憶書類を取り出し、少なくとも前記記憶書類の内容を含む中間書類を前記記憶書類から作成し、ユーザ(2)による動作のために、前記中間書類を前記セッション(3)へセッション書類として送達するステップと、
-  前記外部システム(5、5')から外部データを受け取るステップと、
-  前記同期装置(4)が、前記セッション書類上で実行されるユーザ更新を受け取るステップと、
-  前記同期装置(4)が、前記記憶書類が前記外部データを含むように前記記憶書類を修正するステップと、
-  前記記憶書類を前記データ記憶装置(1)内に保存するステップと、
-  前記同期装置(4)が、前記ユーザ更新と前記記憶書類をマージすることによって前記記憶書類を更新し、次いで更新された前記記憶書類を前記ユーザ(2)に提供するステップとを実行するように構成されることを特徴とするシステム。
【請求項３４】
少なくとも1つの外部システムが、前記セッションを通じてアクセス可能である、請求項33に記載のシステム。
【請求項３５】
前記外部システムが前記データ記憶装置とは独立している、請求項34に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ処理システムに関し、詳細には、データベースアクセスに使用されるクライアントサーバおよびウェブサーバソフトウェアのアーキテクチャに関する。さらに詳細には、本発明は、基準システム上で動作されるトランザクションにおいて、独立し、場合によっては異種の外部システムからのデータ同期を最適化しながら、データ損失のリスクを最小にする方法およびシステムに関する。
【０００２】
本明細書では、独立した外部システムとは、基準システムとは独立して制御される外部システムとして理解されるべきである。基準システムは、エージェントもしくはユーザによって制御することができ、または自動式とすることができる。
【０００３】
本明細書では、異種の外部システムとは、基準システムのものとは異なりうるプロセス、アプリケーション、およびデータ構造がその中に定義された外部システムとして理解されるべきである。
【０００４】
アプリケーションの一例は、航空業界における旅行の予約および発券に関する。外部システムは、自動機構とすることができ、たとえばスペインのマドリードに本社を置くAmadeusという会社などのグローバルディストリビューションシステム(GDS)によって動作されるロボットとすることができる。自動機構は、たとえば、乗客名簿(PNR)などの記録を記憶装置内で直接更新するように構成することができる。更新は、発券されなかった予約を自動的に取り消すことから構成することができる。
【０００５】
別の例によれば、外部システムは、旅行業者によってアクセスされ、基準システムとは独立したシステム上で予約を可能にする。外部システムは、たとえば娯楽イベントの予約を可能にすることができ、基準システムは、旅行チケットの予約を可能にすることができる。
【背景技術】
【０００６】
データ同期とは、所与の基準データおよびそのようなデータの複製上で作業するシステムの様々な構成要素間で一貫したデータを維持するタスクとして定義することができる。その目的のため、各データ要素には、一般にバージョン番号が割り当てられる。データ要素は、データ構造および固有の識別子によって定義することができる。
【０００７】
共用データ環境における複数ユーザシステム内のデータ同期の問題は、そのようなシステムのシステムアーキテクチャ、支援アプリケーション、ならびに任意の特有の態様および要件に従って特有の解決策を指示する様々な文脈で対処されてきたよく知られている一般的な問題である。
【０００８】
関連技術で見られる大部分の同期方法は、同期データ上で作業する必要のある様々なユーザ、アプリケーション、プロセス、またはシステム間のコーディネータとして働く中心的な構成要素に依拠する。これは実際には、固有のマネージャに必要な調整を担当させることを提案する非常に包括的な概念である。
【０００９】
この解決策に基づいて、米国特許第7,539,778号は、クライアントとバックエンドデータ記憶装置(Back End data store)との間に中心的な同期サーバを導入することによって異なるクライアント間でデータを同期させるためのクライアントサーバアーキテクチャを開示している。入ってくる更新のそれぞれに固有のキャッシュ識別子を割り当てることによって、それらの更新を永久記憶装置内へ永久的に緩衝するキャッシュに基づく特定の同期方法が開示されている。キャッシュに新しい入力を書き込む同期サーバとバックエンドからキャッシュへ複製される更新との間の書込みの競合は、キャッシュ識別子に基づく阻止機構を使用することで解決される。したがって、この同期による解決策は、更新に関する書込みの競合を解決すること、ならびにバックエンドデータ記憶装置への接続および輸送を最小にすることという2つのタスクを実行するキャッシュ構成要素に基づく。
【００１０】
データ同期に関する米国特許第7,539,778号の特徴は、キャッシュ入力に対する識別子を使用して書込みの競合に対処することである。しかし、この方法は、データ記憶装置に基づくシステムおよび他の独立し、場合によっては異種の外部システム内でデータ同期を提供することを目的とするものではない。
【００１１】
独立し、場合によっては異種の外部システムからローカルプロセスおよび追加のプロセスのためのデータ記憶装置への並行アクセスの問題に対処するには、複数の特有の問題に対処しなければならない。
【００１２】
たとえば、電子商取引プラットホームなどのトランザクション処理システムでは、広い範囲の製品およびそのような製品の複数の提供者が存在することがある。一般に、製品およびそれらの提供者に関するデータは、処理システム内に設けられた1つの記憶設備内で維持される。しかし、これらの製品の一部は、外部システムから調達した追加の製品を含むパッケージに入った形で利用可能であることもある。
【００１３】
さらに、いくつかのユーザおよびいくつかのトランザクションアプリケーションが、システム全体に同時にアクセスすることがある。これは特に、量販市場向けの電子商取引プラットホームなどの固有の大量並行アクセスを行うシステムに当てはまる。所与のユーザによって開かれるトランザクションセッションに関するデータは、製品管理に伴う更新のため、ならびに他のユーザおよび他のアプリケーションによって動作されるトランザクションのため、利用可能性、価格設定などに関して古くなることがある。
【００１４】
製品の利用可能性および価格に影響を与える不測のイベント、提供者によって決定される営業方針の修正など、データが古くなるさらなる理由もありうる。
【００１５】
その結果としてそのようなシステムが直面する問題の概要を、図1Aに示す。図1Aのシーケンス図は、記憶されているユーザ書類と保存すべきユーザセッションとの間のバージョン競合を示す。記憶されている書類内の一部のデータは、場合によっては外部システムから、別のアプリケーションによって修正されているのに対して、ユーザAは、記憶されている以前のバージョンの前記書類から取り出したデータ上で作業していた。ユーザAは自身の作業を保存することに決めたものとする。保存すべきデータは、記憶されている古いバージョンの前記書類に基づいている。そのようなデータは、無効である可能性が高い。
【００１６】
従来のトランザクション処理システムでは、バージョン競合の問題に対処する3つのタイプのバージョン対処方法を定義することができる。
【００１７】
第1の選択肢は、バージョン競合を拒絶することである。これは、ユーザセッションによって保存すべきユーザ書類のバージョンが、記憶されているユーザ書類の現在のバージョンに整合しない場合、あらゆる保存命令を拒否することからなる簡単かつ強固な方法である。この方策では、記憶されている書類と記憶すべき書類との間でユーザセッションに起因する更新だけが異なるという理由で、あらゆる並行アクセスが発行されないようにする。この方法は実施するのが非常に簡単であり、かつ強固であるが、ユーザセッションまたは何らかの外部システムからの保存すべきデータが拒否されることがあり、ユーザの作業が失われる可能性があることは、明らかな制限である。競合の場合、可能な唯一の解決策は、次は記憶されている書類がしばらくの間更新されないことを期待しながら、現在の作業を無視し、記憶装置から新しいバージョンを取り出し、作業を再実行して、再び保存を試みることである。この手法は、大量の並行アクセスが行われるビジネスモデルにおいて、非常に大胆であるが非効果的である。
【００１８】
第2の選択肢は、すべてを保存する手法でバージョン競合に対処することである。セッションを使用して他のシステムと同期させる現在のシステムでは、同期されたデータソースは1つしか存在しない。外部システムからデータを追加することは、セッション内のすべてのデータをマージし、次いで何をすべきかを決めることを示唆する。これは、一部のデータが外部システムによって利用可能であったことをユーザセッションが信号伝達手段を介して認識できる場合、かつその場合に限り、実行可能である。第1の可能な選択肢は、このマージされたセッションをすぐに記憶装置内に保存することである。これは、進行中のユーザ作業のために一部の誤ったデータまたは一時的なデータがユーザセッション内に入ることがあり、これらのデータが、ユーザの制御がきかない状態で、記憶されている書類内に保存されるため、ユーザの観点からは完全な機構ではない。この選択肢では、セッションは、記憶装置から更新された表示を得ることができる。
【００１９】
別法として、第3の選択肢は、何も保存しない手法でバージョン競合に対処することである。これは、ユーザが保存すると決めるまでの間、外部システムからのデータが保存されないままセッションに入れられることを意味する。これでは、データ損失のリスクが増大する。ユーザが最終的に保存を省略した場合、外部システムからのデータを再び取り出すことはできず、このデータは失われるはずである。この問題を簡略化するために、実際のシステムは通常、外部システムと同期させる前にセッションデータを保存するようにユーザに依頼するが、これはユーザにとって強い制約である。第2の問題は、記憶されたユーザ書類内の新しいデータがユーザには見えないことである。
【００２０】
バージョン競合への3つの対処方法の関連する欠点および利益の概要を、図1Bに示す。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】米国特許第7,539,778号
【発明の概要】
【発明が解決しようとする課題】
【００２２】
したがって、本発明の全体的な目的は、データ記憶装置と、前記データ記憶装置にアクセスするクライアントサーバまたはウェブサーバシステムと、前記データ記憶装置の外部に位置する複数の独立し、場合によっては異種のシステムとを含むデータ処理アーキテクチャ内で、データ同期を改善する方法およびシステムを開示することである。
【００２３】
より詳細には、本発明は、独立し、場合によっては異種の外部ソースからのデータを取り出してデータ記憶装置内に集約することに関連する主な技術上の問題を解決することを目的とする。
【００２４】
本発明のさらなる特有の目的は、航空座席予約システム用に導入されるものなど、クライアント側からのトランザクションレベルが非常に高く、たとえば航空会社によって提供される運賃および利用可能性データベースならびに旅行および観光業界に関連する他の製品およびサービスの更新が非常に頻繁であることを特徴とするデータ処理アーキテクチャに適合しなければならないことである。
【００２５】
本発明のさらなる目的、特徴、および利点は、添付の図面を参照して以下の説明を考査すれば当業者には明らかになるであろう。本明細書には、任意の追加の利点が組み込まれるものとする。
【課題を解決するための手段】
【００２６】
本発明では、データ記憶装置と、前記データ記憶装置にアクセスするクライアントサーバまたはウェブサーバシステムと、前記データ記憶装置の外部に位置する複数の独立し、場合によっては異種のシステムとを含むデータ処理アーキテクチャ内で、データ同期を改善する方法およびシステムが開示される。
【００２７】
本発明は、独立し、場合によっては異種の外部ソースからのデータを取り出してデータ記憶装置内に集約することに関連する主な技術上の問題に対する解決策をもたらす。
【００２８】
さらに、本発明は、従来技術に見られるバージョン競合の管理方法を改善するバージョンマージ機構(version merge mechanism)を提供する。本発明の方法は、前記データ記憶装置内の所与のユーザデータにおいて、前記データがユーザおよび前記外部システム上で動作する他のプロセスによって同時に修正されるときに生じる並行更新に対処する。その目的のため、本発明は、2つのチャネルが書類内の同じデータを同時に更新しようとした場合にどちらの情報ソースに優先権が与えられているかを判定するために、数組の規則を規定および適用することを提案する。
【００２９】
この結果、ユーザセッションによって取り出されて修正されるデータと、取り出されたバージョンに整合しない更新されたバージョンの記憶データとの間のバージョン競合によって引き起こされるデータ損失のリスクを取り除く。より具体的には、本発明によって提供される利点は、ユーザがユーザセッションを開始し、そのユーザセッション上で依然として作業している場合でも、外部システムからのデータを含むユーザ関連データが、損失のリスクなく保存されることである。
【００３０】
得られるさらなる利点は、ユーザデータを強制的に保存させることなく、外部システムからのデータでユーザセッションを更新し、したがってまだ認証されていないデータが保存されるのを防止する方法である。
【００３１】
より具体的には、本発明は、ユーザのセッションと、記憶書類(stored dossier)を記憶するデータ記憶装置と、少なくとも1つの外部システムとの間のデータ同期を提供する方法を開示し、この方法は、少なくとも1つのデータ処理装置で実行される以下のステップ、すなわち、
-  少なくともセッションおよびデータ記憶装置と通信する同期装置が、データ記憶装置から記憶書類を取り出すための要求をセッションから受け取るステップと、
-  同期装置が、データ記憶装置から記憶書類を取り出し、少なくとも記憶書類の内容を含む中間書類(intermediate dossier)を記憶書類から作成し、ユーザによる動作のために、中間書類をセッションへセッション書類として送達するステップと、
-  少なくとも1つの外部システムから外部データを受け取るステップと、
-  同期装置が、セッション書類上で実行されるユーザ更新を受け取るステップと、
-  同期装置が、中間書類が前記外部データを含むように中間書類を更新するステップと、
-  記憶書類が前記外部データを含むように記憶書類を修正し、記憶書類をデータ記憶装置内に保存するステップと、
-  同期装置が、前記ユーザ更新と中間書類をマージすることによって中間書類を更新し、次いで中間書類をユーザに提供するステップと
を含む。
【００３２】
したがって、セッションは、外部システムによって送られたデータを含む更新された中間書類と、最新バージョンの記憶書類とを受け取る。したがって、ユーザは、最新バージョンの中間書類上で作業することがさらに可能である。この段階で、記憶書類はユーザによって修正されていない。外部システムによって受け取られたすべてのデータは、記憶書類内に保存され、したがって、セッションによって実行されるすべての変更は、データ記憶装置内にさらに保存することができ、またはデータ記憶装置内の記憶書類を修正することなく削除することができる。したがって、本発明は、ユーザにそのセッションの更新を強制的に保存させることなく、外部システムからのデータの損失を防止することによって、ユーザによって行われる作業を著しく容易にする。
【００３３】
本発明によるこの方法は、以下の任意選択の特徴およびステップのいずれか1つを含むことができる。
【００３４】
有利には、外部システムは、データ記憶装置とは異種のものとすることができる。これは、同期装置によって実行されるマージ機能のために可能である。
【００３５】
さらに具体的には、セッションによって送られたリフレッシュに対する要求を同期装置で受け取ったとき、同期装置は、
-  中間書類が前記外部データを含むように中間書類を更新するステップを実行し、
-  中間書類をセッションへ送ってセッション書類と取り替える。
【００３６】
本発明の一実施形態によれば、外部システムからの前記外部データは、データ記憶装置によって受け取られる。データ記憶装置によって前記外部データを受け取ったとき、データ記憶装置は、記憶書類が前記外部データを含むように記憶書類を修正するステップと、記憶書類をデータ記憶装置内に保存するステップとを実行する。
【００３７】
好ましくは、中間書類が前記外部データを含むように同期装置で中間書類を更新するステップは、記憶書類が前記外部データを含むように記憶書類を修正するステップおよび記憶書類をデータ記憶装置内に保存するステップの後に行われ、同期装置でデータ記憶装置から記憶書類を取り出し、記憶書類で中間書類を更新するステップを含む。
【００３８】
有利には、記憶書類が前記外部データを含むように記憶書類を修正するステップおよび記憶書類をデータ記憶装置内に保存するステップは、データ記憶装置によって外部データを受け取ったときに行われる。セッションによって送られたリフレッシュに対する要求を同期装置で受け取った後、同期装置が中間書類をセッションへ送ってセッション書類と取り替えるステップの前に、同期装置は記憶書類で中間書類を更新する。
【００３９】
本発明の別の実施形態によれば、外部システムからの前記外部データは、同期装置と通信するイベントキューで受け取られる。中間書類が前記外部データを含むように同期装置で中間書類を更新するステップは、同期装置でイベントキューから前記外部データを取り出し、データ記憶装置から記憶書類を取り出し、次いで前記外部データと記憶書類をマージすることによって中間書類を更新するステップを含む。
【００４０】
同期装置は、第1にイベントキューから前記外部データを取り出し、次いでデータ記憶装置から記憶書類を取り出すことができる。別法として、同期装置は、第1にデータ記憶装置から記憶書類を取り出し、次いでイベントキューから前記外部データを取り出す。
【００４１】
好ましくは、記憶書類が前記外部データを含むように記憶書類を修正するステップおよび記憶書類をデータ記憶装置内に保存するステップを実行するために、同期装置は、データ記憶装置内に中間書類を保存する。好ましくは、同期装置は次いで、データ記憶装置が中間書類を保存するステップを開始する。
【００４２】
外部システムから前記外部データを受け取ったとき、イベントキューは、前記データが適正に受け取られたという確認を前記外部システムへ送る。
【００４３】
セッションによって送られたリフレッシュに対する要求を同期装置で受け取るステップの後、同期装置が中間書類をセッションへ送ってセッション書類と取り替えるステップの前に、この方法は、前記外部データと記憶書類をマージすることによって同期装置で中間書類を更新するステップを実行する。
【００４４】
本発明の別の実施形態によれば、外部システムから外部データを受け取るステップは、データ記憶装置によって外部データを受け取るステップと、同期装置と通信するイベントキューによって追加の外部データを受け取るステップとを含む。好ましくは、データ記憶装置によって前記外部データを受け取ったとき、データ記憶装置は、記憶書類が前記外部データを含むように記憶書類を修正するステップと、記憶書類をデータ記憶装置内に保存するステップとを実行する。同期装置は、イベントキューから前記追加の外部データを取り出し、データ記憶装置から記憶書類を取り出し、前記追加の外部データと記憶書類をマージすることによって中間書類を更新し、記憶書類と中間書類を取り替える。
【００４５】
したがって、この段階で、記憶書類および中間書類は、データ記憶装置で受け取った外部データと、イベントキューで受け取った追加の外部データとを含む。
【００４６】
次いで、同期装置は、前記ユーザ更新と中間書類をマージすることによって中間書類を更新し、データ記憶装置で受け取った外部データ、イベントキューで受け取った追加の外部データ、およびユーザ更新を含む中間書類をユーザに提供することができる。
【００４７】
前記追加の外部データと記憶書類をマージすることによって同期装置で中間書類を更新したとき、同期装置は、データ記憶装置内に中間書類を保存する。したがって、この段階で、記憶書類は、データ記憶装置で受け取った外部データと、イベントキューで受け取った追加の外部データとを含む。
【００４８】
すべての実施形態で、データ記憶装置によって外部データを受け取るステップは、イベントキューによって追加の外部データを受け取るステップの前または後に行うことができる。
【００４９】
同期装置は、セッションから追加のユーザ更新を受け取り、次いで同期装置は、データ記憶装置から記憶書類を取り出し、記憶書類とセッションからの追加のユーザ更新とをマージすることによって中間書類を更新し、中間書類をセッションへ送ってセッション書類と取り替える。
【００５０】
好ましくは、セッションは、中間書類をデータ記憶装置内に保存する可能性をユーザに提供する。したがって、セッションは、外部システムから受け取った外部データ、記憶書類、およびセッション書類をマージすることによって中間書類を更新し、次いで更新された中間書類をデータ記憶装置内に保存する可能性をユーザに提供する。したがって、場合によってはセッションを通じてユーザによって実行される作業および場合によっては少なくとも1つの外部システムから受け取られるすべてのデータは、データ記憶装置内に保存される。したがって、同期装置が記憶書類を次に取り出すとき、その取り出されたバージョンは、セッションからの更新および少なくとも1つの外部システムからのデータを含む。
【００５１】
好ましい実施形態によれば、セッション書類を保存するか否かに関する質問を、セッションのユーザインターフェースを通じてユーザに尋ねることが可能であり、前記質問は、セッションがセッションを閉じる命令を受け取ったときに尋ねられる。
【００５２】
セッションは、セッション書類を保存する命令を受け取り、同期装置へ保存要求を送り、保存要求を受け取ったとき、同期装置は、外部システムから受け取ったデータと、記憶書類と、セッション書類とをマージすることによって中間書類を更新し、更新された中間書類をデータ記憶装置内に保存する。
【００５３】
別法として、セッションがセッション書類を保存する命令を受け取らなかった場合、またはセッションがセッション書類を削除する命令を受け取った場合、ユーザ更新は保存されず、セッションはデータ記憶装置内の記憶書類を更新しない。
【００５４】
特有の実施形態によれば、少なくとも1つの外部システムがユーザによってアクセスされ、外部データの少なくとも一部がユーザによって生成される。
【００５５】
特有の実施形態によれば、ユーザは、同じ処理デバイスを通じて、セッションおよび少なくとも外部システムにアクセスする。さらに、前記処理デバイスは、パーソナルコンピュータ、スマートフォン、またはパーソナルデジタルアシスタントである。
【００５６】
特有の実施形態によれば、ユーザは、外部システムのユーザインターフェースを通じて外部システムにアクセスする。前記外部データは、ユーザが外部システムのユーザインターフェースからセッションのユーザインターフェースへ再び切り換えたとき、外部システムから同期装置と通信するイベントキューへ送られる。
【００５７】
特有の実施形態によれば、ユーザは、外部システムのユーザインターフェースを通じて外部システムにアクセスする。前記外部データは、ユーザが外部システムのユーザインターフェースからセッションのユーザインターフェースへ再び切り換えたとき、外部システムからデータ記憶装置へ送られる。
【００５８】
特有の実施形態によれば、同期装置がデータ記憶装置から記憶書類を取り出して中間書類を作成または更新する前に、少なくとも1つの追加の外部システムが、データ記憶装置へ追加の外部データを送り、前記追加の外部データは記憶書類を更新し、したがって中間書類を作成または更新するときに同期装置によってこの記憶書類を後に取り出すことができる。
【００５９】
好ましくは、この方法は、様々なソースからのデータまたは更新で修正できる交差区間（intersection zone）を記憶書類内で識別するステップを含み、前記ソースは、ユーザセッションまたは少なくとも1つの外部システムであり、各交差区間に対して優先権規則を規定するステップを含む。
【００６０】
したがって、2つ以上の外部システムからの外部データで記憶書類の一区間を修正することができる場合、または少なくとも1つの外部システムからの外部データおよびユーザセッションからのデータで記憶書類を修正することができる場合、前記区間は、交差区間として識別される。
【００６１】
好ましくは、前記識別は、システム設定時に、またはアーキテクチャ内に新しい外部システムが組み込まれるときに実行される。
【００６２】
外部データまたはユーザ更新が同じ交差区間に関連するデータを含む場合、この方法は、前記区間に対して規定された優先権規則を適用する。
【００６３】
好ましくは、記憶書類が前記外部データを含むように記憶書類を修正するステップは、記憶書類の交差区間が外部データによる影響を受けているかどうかを識別するステップを含む。記憶書類の交差区間が外部データによる影響を受けている場合、前記区間に対して規定された優先権規則を適用する。
【００６４】
同様に、ユーザ更新とのマージ後に中間書類をデータ記憶装置内に保存するステップは、記憶書類の交差区間がユーザ更新による影響を受けているかどうかを識別するステップを含む。記憶書類の交差区間がユーザ更新による影響を受けている場合、前記区間に対して規定された優先権規則を適用する。
【００６５】
特有の実施形態によれば、外部システムと追加の外部システムは同じである。
【００６６】
特有の実施形態によれば、外部システムは、手動で起動されることなく、データ記憶装置を自動的に更新する。
【００６７】
外部システムは、セッションのユーザによって起動される。
【００６８】
データ記憶装置が追加の外部システムから追加のデータを受け取ったとき、データ記憶装置は、前記追加のデータが適正に受け取られたという確認を追加の外部システムへ送る。
【００６９】
したがって、同期装置がデータ記憶装置から記憶書類を取り出したとき、追加の外部システムによって送られるすべての追加のデータが考慮される。したがって、同期装置は、もしあれば外部システムからのデータと、追加の外部システムからの追加のデータを含む記憶書類とをマージすることによって、中間書類を作成または更新する。
【００７０】
同期装置が中間書類とマージして保存すべき更新をセッションから受け取らなかった場合、かつイベントキューが外部システムからデータを受け取らなかった場合、記憶されたユーザ書類は、中間書類およびセッション書類とのいかなる相互作用もなく、少なくとも1つの外部システムによって更新される。
【００７１】
好ましくは、この場合、イベントキューへ送られる外部システムからのデータは、ユーザが外部システムにアクセスすることによって生成され、データ記憶装置へ送られる追加の外部システムからのデータは、ユーザとは独立して生成される。
【００７２】
さらに、本発明は、追加の外部システムがデータ記憶装置とは独立している方法を提供する。
【００７３】
好ましくは、追加の外部システムは、セッションとは独立している。好ましくは、追加の外部システムは、データ記憶装置とは異種である。通常、追加の外部システムは、別のユーザ/システムによって制御される別のセッションである。
【００７４】
通常、データ記憶装置は、航空便の利用可能性などの輸送サービスに関連する利用可能性を追跡するeチケットデータ記憶装置または在庫データ記憶装置である。
【００７５】
特有の実施形態によれば、データ記憶装置は乗客名簿(PNR)を含む。外部システムからの外部データが乗客名簿に関連する。別の特有の実施形態によれば、セッションからのユーザ更新が乗客名簿に関連する。
【００７６】
通常、セッションは、旅行および観光業界に関連する予約システムを提供する。たとえば、この予約システムは航空座席予約システム、鉄道座席予約システムなどとすることができ、GDSによって提供することができる。
【００７７】
外部システムは、追加のサービスまたは製品を提供する。たとえば、この外部システムは、狩猟旅行、遊覧旅行、展覧会への入場、飲食店、演奏会などの余暇活動のための予約システムとすることができる。この外部システムはまた、ホテルの予約を提供することができる。
【００７８】
外部システムはまた、セッションの輸送サービス以外の輸送サービスを提供することができる。たとえば、外部システムは、セッションの輸送モードに類似しているが別の提供者による輸送モードまたは別の経路に対する輸送モードに関する輸送サービスを提供することができる。通常、セッションと外部システムは、2つの異なる航空会社によって運行される航空便を提供する。
【００７９】
外部システムはまた、セッションの輸送モードとは異なる輸送モードを提供することもできる。通常、セッションは航空券を提供し、外部システムは列車の乗車券、フェリーの乗船券、またはレンタカーを提供する。
【００８０】
さらに、特有の実施形態では、本発明の方法は、コンピュータ可読メモリ媒体内に記憶され、本発明の実施形態のいずれか1つによる方法を実行するように適合されたコンピュータプログラム製品によって動作することができる。
【００８１】
この方法は、少なくとも1つのデータ処理装置によるコンピュータソフトウェアの実行の結果として実行され、このコンピュータソフトウェアは、一時的でないコンピュータ可読メモリ媒体内に記憶される。
【００８２】
本発明の別の主題は、データ記憶装置と、ユーザインターフェースを含み、前記データ記憶装置内に記憶された記憶書類にアクセスするように構成されたセッションと、少なくとも1つの外部システムとを備えるデータ同期を提供するシステムであり、このシステムは、少なくともセッションおよびデータ記憶装置と通信する同期装置を備え、少なくとも1つのデータ処理装置で以下のステップ、すなわち、
-  同期装置が、データ記憶装置から記憶書類を取り出すための要求をセッションから受け取るステップと、
-  同期装置が、データ記憶装置から記憶書類を取り出し、少なくとも記憶書類の内容を含む中間書類を記憶書類から作成し、ユーザによる動作のために、中間書類をセッションへセッション書類として送達するステップと、
-  外部システムから外部データを受け取るステップと、
-  同期装置が、セッション書類上で実行されるユーザ更新を受け取るステップと、
-  同期装置が、中間書類が前記外部データを含むように中間書類を更新するステップと、
-  記憶書類が前記外部データを含むように記憶書類を修正し、記憶書類をデータ記憶装置内に保存するステップと、
-  同期装置が、前記ユーザ更新と中間書類をマージすることによって中間書類を更新し、次いで更新された中間書類をユーザに提供するステップとを実行するように構成されることを特徴とする。
【００８３】
好ましくは、少なくとも1つの外部システムが、セッションを通じてアクセス可能である。
【００８４】
好ましくは、前記外部システムは、前記データ記憶装置とは独立している。
【図面の簡単な説明】
【００８５】
【図１Ａ】データ記憶装置内の並行アクセスの一例を示す図である。
【図１Ｂ】バージョン競合への既存の対処方法の関連する欠点および利益について論じる図である。
【図２】本発明に有利に適用されるシステムの高レベルのソフトウェアアーキテクチャの一例を示す図である。
【図３】本発明に有利に適用される詳細なシステムアーキテクチャの一例を示す図である。
【図４】本発明に有利に適用される詳細なシステムアーキテクチャの一例を、実行すべき典型的なタスクのシーケンスに対する通信の流れとともに示す図である。
【図５】外部システムからのエンドユーザ要求およびアクションの処理に起因する様々な典型的なステップのシーケンス図の一例を提供する図である。
【図６】マージプロセスの概略を提供する図である。
【図７】外部データとセッションデータとの間でデータ交差上に1組の規則がどのように適用されるかについて、全体として2つの書類に関して説明する図である。
【図８】本発明に有利に適用される詳細なシステムアーキテクチャの一例を、非同期イベントへの対処が予定タスクによって強化されている場合に実行すべき典型的なタスクのシーケンスに対する通信の流れとともに示す図である。
【図９】非同期イベントへの対処が予定タスクによって強化されている場合に外部システムからのエンドユーザ要求およびアクションの処理に起因する様々な典型的なステップのシーケンス図の一例を提供する図である。
【図１０】本発明に有利に適用される詳細なシステムアーキテクチャの一例を、記憶装置の更新のみの場合に実行すべき典型的なタスクのシーケンスに対する通信の流れとともに示す図である。
【図１１】記憶装置の更新のみの場合に外部システムからのエンドユーザ要求およびアクションの処理に起因する様々な典型的なステップのシーケンス図の一例を提供する図である。
【図１２】本発明に有利に適用される詳細なシステムアーキテクチャの一例を、非同期の更新が外部システムによって行われ、ユーザセッションがない場合に実行すべき典型的なタスクのシーケンスに対する通信の流れとともに示す図である。
【図１３】非同期の更新が外部システムによって行われ、ユーザセッションがない場合に外部システムからのアクションの処理に起因する様々な典型的なステップのシーケンス図の一例を提供する図である。
【発明を実施するための形態】
【００８６】
本発明の以下の詳細な説明は、添付の図面を参照する。この説明は例示的な実施形態を含むが、他の実施形態も可能であり、本発明の精神および範囲から逸脱することなく、記載の実施形態に変更を加えることもできる。
【００８７】
図2は、本発明の高レベルのシステムアーキテクチャの一例を示し、データ記憶装置1とユーザセッション3との間に同期装置4の構成要素が位置し、少なくとも1つの外部システム5、5'からデータを受け取る。この同期装置4の機能は、データを集約およびマージすることである。所与のユーザセッション3に関してデータ記憶装置1から取り出した書類に対して、少なくとも1つの外部システム5、5'およびユーザセッション3から更新を受け取るために、同期装置4は中間書類を作成または更新する。中間書類は、セッション書類を現在の中間書類にマージすることによって、また更新が利用可能な場合は外部システムから受け取った書類更新を現在の中間書類にマージすることによって更新することができる。同期装置4は、事前定義された1組の規則に従って、または必要な場合はいつでもユーザを促すことによって、中間書類を更新する。
【００８８】
図3は、本発明に有利に適用される詳細なシステムアーキテクチャの一例を示す。このアーキテクチャを使用して、異なる当該シナリオを示し、その目的のため、そのようなシナリオのそれぞれに対する通信の流れについて詳述する。したがって、図3に示すすべての要素を、当該シナリオに関連する後の図にも示す。
【００８９】
図4は、本発明に有利に適用される詳細なシステムアーキテクチャの一例を示す。システムによって実行すべき典型的なタスクのシーケンスおよび関連する通信の流れも示す。このシーケンスは、以下のシナリオに対応する。
【００９０】
ステップ1で、ユーザ2はユーザセッション3内で作業しており、それについて、データ記憶装置1からユーザ書類が取り出されて表示される。そのステップでは、記憶書類は第1に、データ記憶装置1から同期装置4によって中間書類として取り出される。中間書類は次いで、ユーザセッション3へセッション書類として送られる。これは、書類ハンドラ12および記憶装置ハンドラ13を通じて行われる。記憶装置ハンドラは、データ記憶装置1から記憶書類を取り出し、更新書類をデータ記憶装置1内へ保存することを担当する。書類ハンドラは、ユーザセッション3から要求および更新を受け取り、中間書類をユーザセッション3へ送り、中間書類の取り出しおよび保存ならびに更新-マージ動作に関連する同期装置4のすべての内部タスクを管理することを担当する。
【００９１】
ステップ2で、パッケージの予約など、外部システム5'上で動作するトランザクションを行うために、ユーザは、たとえばユーザインターフェース内に設けられたタブを開くことによって、その外部システム5'に切り換え、そのトランザクションを実行する。
【００９２】
ステップ3で、外部システム5'は、トランザクションに対応するデータおよび現在の書類に対する基準を外部入力点6へ送る。外部入力点は、外部システム5'と同期装置4を接続する任意の適したチャネルとすることができる。外部入力点は、ウェブサービスまたは任意の特有の手段によって設けることができる。外部システム5'によって送られたデータは、通知ハンドラ7およびイベントハンドラ8を通じてイベントキュー9内に一時的に記憶される。イベントキュー9は、外部システムによって送られたデータを保持する設備である。通知ハンドラは、外部システムから通知を受け取ることを担当する設備である。イベントハンドラは、イベントをキューに入れること、イベントを取り出すこと、所与の書類に対する取り出すべきイベントを見つけることなどのタスクを含むイベントに対処することを担当する設備である。
【００９３】
ステップ4で、ユーザは、ユーザインターフェース内の書類タブに切り換えること、書類を保存すること、書類を更新することなどの任意のアクションを起動し、それによってセッション書類をリフレッシュする。その目的のため、中間書類は更新され、ユーザセッション3へ戻される。これは、ステップ5〜9で行われる。
【００９４】
ステップ5で、同期装置4は、現在の書類に対して処理すべきイベントに関してイベントキュー9を調べる。キュー内のすべてのイベントが取り出される。
【００９５】
ステップ6で、同期装置4は、データ記憶装置1内に保存されている最新の書類を取り出す。
【００９６】
ステップ7で、同期装置4は、最新の書類と、以前に取り出されたすべてのイベントからの更新とをマージする。これは、マージャ11によって、規則エンジン10によって供給される規則を用いて行われる。マージャによって実行される機能については、図6の説明で述べる。規則エンジンによって実行される機能については、図7の説明で述べる。
【００９７】
ステップ8で、同期装置4は、マージされた書類をデータ記憶装置1内に保存して、データ損失を回避する。
【００９８】
ステップ9で、同期装置4は、マージされた書類とセッション書類をマージし、その結果をユーザへ戻す。これが、ユーザに表示される書類である。
【００９９】
ステップ9の後、ユーザは作業を継続することができ、セッションの目的に従ってプロセスを完了した後、ユーザは、トランザクションの最終認証のために書類を保存することができ、またはプロセスを完了する前でも、ユーザは書類を保存して、後にその書類上で再び作業することができる。したがって、セッションは、セッション書類が最終的に保存されるまで、またはユーザがいかなる変更も保存することなくセッションを閉じることに決めるまで、以前のステップをステップ2またはステップ4から再実行することによって継続されるはずである。
【０１００】
したがって、本発明は、主システムおよび他の独立し、場合によっては異種の外部システムを備えるトランザクション指向のシステムに特に適したデータ集約方法を提供する。
【０１０１】
その方法は、すでに知られている方法を改善するシステムアーキテクチャおよびマージ機能に基づく。
【０１０２】
マージ機能は、ユーザセッション3内で取り出されて修正されるデータと、取り出されたバージョンに整合しない更新されたバージョンの記憶データとの間のバージョン競合によって引き起こされるデータ損失のリスクを取り除く機構に依拠する。
【０１０３】
より具体的には、ユーザがユーザセッション3を開始し、そのユーザセッション3上で依然として作業している場合でも、外部システムからのデータを含むユーザ関連データが、損失のリスクなく保存される。
【０１０４】
この方法のさらなる利点は、ユーザデータを強制的に保存させることなく、外部ソースからのデータでユーザセッション3を更新し、したがってまだ認証されていないデータが保存されるのを防止する方法である。
【０１０５】
図5は、典型的なシナリオにおける外部システム5、5'からのエンドユーザ要求および通知の処理に起因する様々なステップを示すシーケンス図の一例を提供する。この図では、外部システム5'から受け取った通知は、たとえばユーザがその外部システムに切り換えて、その外部システムにデータを中間書類へ送らせるアクションを実行したとき、ユーザによって起動されたものである可能性があることに留意されたい。
【０１０６】
ステップ1、2、2'、3、3'、4で、ユーザはユーザセッション3内で作業しており、それについて、データ記憶装置1からユーザ書類が取り出されて表示される。そのため、記憶書類は第1に、データ記憶装置1から同期装置4によって中間書類として取り出される。中間書類は次いで、ユーザセッション3へセッション書類として送られる。
【０１０７】
ステップ5、6で、パッケージの予約など、外部システム5'上で動作するトランザクションを行うために、ユーザは、たとえばユーザインターフェース内に設けられたタブを開くことによって、その外部システム5'に切り換え、そのトランザクションを実行し、開いたセッションへ再び切り換える。
【０１０８】
その結果、キューへイベントが送られる。これは、ここで重要な事実である。
【０１０９】
実際、外部システム5'からの更新は、ユーザがその外部システム5'に切り換えることによって、または外部システムの任意の独立した内部プロセスによって起動することができる。したがって、ステップ5およびステップ6は特定の実施形態に関し、本発明の範囲を限定するものではない。このようにステップ5およびステップ6は単に任意選択であり、点線で示す。これは、図9にも当てはまる。
【０１１０】
ステップ7、8で、外部システム5'は、ユーザ書類内のデータに関連する変更の通知を送る。同期装置4で、外部システム5'によって送られたデータは、通知ハンドラおよびイベントハンドラを通じてイベントキュー9内に一時的に記憶される。
【０１１１】
ステップ9、10で、外部システム5は、データ記憶装置1内のユーザ書類を直接更新する。
【０１１２】
ステップ11、12、13、14で、ユーザセッション3は、ユーザ作業のために更新される。
【０１１３】
ステップ15、16で、ユーザはユーザセッション3のリフレッシュを起動する。
【０１１４】
ステップ17、18で、ユーザセッション3のリフレッシュを開始するために、同期装置4は、データ記憶装置1内に保存されている最新の書類を取り出す。
【０１１５】
ステップ19、20で、同期装置4は、現在の書類に対して処理すべきイベントに関してイベントキュー9を調べる。キュー内のすべてのイベントが取り出される。
【０１１６】
ステップ21で、同期装置4は、最新の書類と、以前に取り出されたすべてのイベントからの更新とをマージする。
【０１１７】
ステップ22、23で、同期装置4は、マージされた書類をデータ記憶装置1内に保存して、データ損失を回避する。この時点で、外部システム5、5'によって行われた更新は保存および確保されている。
【０１１８】
ステップ24で、同期装置4は、マージされた書類とセッション書類をマージする。
【０１１９】
ステップ25、26で、同期装置4は、その結果をユーザへ戻す。これが、ユーザに表示される書類である。したがって、ユーザは次に、更新された記憶書類と同期されたリフレッシュ済みのセッション上で作業する。
【０１２０】
したがって、本発明は、独立し、場合によっては異種の外部ソースからのデータを取り出してデータ記憶装置1内に集約することに関連する技術上の問題に対する解決策を提供する。
【０１２１】
本発明はまた、ユーザセッション3によって取り出される記憶データと、取り出されたバージョンに整合しない更新されたバージョンの記憶データとの間のバージョン競合によって引き起こされるデータ損失のリスクに対処することができる。
【０１２２】
本発明による方法はまた、ユーザに一時的なデータを強制的に保存させることなく、外部ソースからのデータを受け取ってマージすることができる。
【０１２３】
図6は、マージプロセスの概略を提供する。本発明のバージョンマージ機構は、ユーザセッション3内で取り出されて修正されるデータと、取り出されたバージョンに整合しない更新されたバージョンの記憶データとの間のバージョン競合によって引き起こされるデータ損失のリスクを回避することを特に目的とする。本発明の方法の原理では、外部システム5、5'から受け取ったデータは直ちにマージして保存するが、ユーザセッション3からのデータは、ユーザセッション3によって要求されたときのみマージして保存する。マージプロセスでは、データ交差を識別し、データ交差に優先権規則を適用することを必要とする。これは2段階プロセスであり、以下のとおり実施される。
【０１２４】
マージプロセスの第1の段階は、データ記憶装置1および外部システム5、5'によって交換されるデータ間の交差区間を識別することである。これは、システム設定時に、すなわちアーキテクチャ内に新しい外部システムが組み込まれるたびに行われることが好ましい。組み込むべきデータが定義され、交差が定義される。次いで優先権規則が定義され、実行時の使用に対して設定される。
【０１２５】
第2の段階は、マージプロセスの実行時段階である。実行時、システムは、交換データの交差区間内にデータが存在するかどうかを調べる。存在する場合、交差区間内の各属性に対する規則が、設定に従って適用される。
【０１２６】
図7は、外部データとセッションデータとの間でデータ交差上に1組の規則がどのように適用されるかについて、全体として2つの書類に関して説明する。これは、実行時に所与のデータ交差に対して規則がどのように適用されるかである。
【０１２７】
セッション中のデータと外部データとの間の交差内で、3つのサブセットが識別されている。1組の規則が定義され、各サブセットに対する規則を提供する。2つの規則が、好ましいソースを第1および第2の標的サブセットに自動的に割り当てる。第3のサブセットに対する自動的な規則はない。このサブセットは、ユーザを促すことによって対処される。
【０１２８】
図8は、本発明に有利に適用される詳細なシステムアーキテクチャの一例を、非同期イベントへの対処が予定タスク14によって強化されている場合に実行すべき典型的なタスクのシーケンスに対する通信の流れとともに示す。
【０１２９】
ステップ1〜3は、図4のステップ1〜3と同一である。
【０１３０】
ステップ4で、いかなるセッションからも独立した予定タスク14が、現在の書類に対して処理すべきイベントに関してイベントキュー9を調べることを、同期装置4に要求する。もしあればキュー内のすべてのイベントが取り出される。
【０１３１】
ステップ5〜7は、図4のステップ6〜8と同一である。
【０１３２】
ステップ8は、図4のステップ4と同一である。
【０１３３】
ステップ9は、図4のステップ6と同一である。
【０１３４】
ステップ10は、図4のステップ9と同一である。
【０１３５】
したがって、本発明のさらなる利点は、外部システム5、5'で非同期通信を介して主システムに更新を通知して送ることが可能であることである。
【０１３６】
図9は、非同期イベントへの対処が予定タスク14によって強化されている場合に外部システム5、5'からのエンドユーザ要求およびアクションの処理に起因する様々な典型的なステップのシーケンス図の一例を提供する。このシーケンス図は、図8に示すシナリオおよび通信の流れに関連する。
【０１３７】
ステップ1〜14は、図5のステップ1〜14と同一である。
【０１３８】
ステップ15で、いかなるセッションからも独立した予定タスク14が、現在の書類に対して処理すべきイベントに関してイベントキュー9を調べることを、同期装置4に要求する。
【０１３９】
ステップ16、17で、もしあればキュー内のすべてのイベントが取り出される。
【０１４０】
ステップ18、19は、図5のステップ17、18と同一である。
【０１４１】
ステップ20、21、22は、図5のステップ21、22、23と同一である。
【０１４２】
ステップ23で、同期装置4は予定タスク14を完了しており、予定タスク14は閉じられている。
【０１４３】
ステップ24〜29は、図5のステップ15〜20と同一である。ステップ29の後、キュー内にそれ以上のデータがなかったため、同期装置4は、セッションデータと取り出したばかりの記憶書類とをマージするだけでよい。
【０１４４】
ステップ30〜32は、図5のステップ24〜26と同一である。
【０１４５】
図10は、本発明に有利に適用される詳細なシステムアーキテクチャの一例を、記憶装置の更新のみの場合に実行すべき典型的なタスクのシーケンスに対する通信の流れとともに示す。
【０１４６】
ステップ1は、図4のステップ1と同一である。
【０１４７】
ステップ2で、中間書類から独立して、記憶書類は、データ記憶装置1内で直接更新される。
【０１４８】
ステップ3は、図4のステップ4と同一である。
【０１４９】
ステップ4は、図4のステップ6と同一である。
【０１５０】
ステップ5は、図4のステップ9と同一である。
【０１５１】
したがって、本発明のさらなる利点は、外部システム5が更新を主システムへ直接送ることが可能であり、すなわちその更新を同期装置4に通知する必要がなく、またユーザセッション3を強制的に保存させる必要がないことである。更新は、ユーザセッション3がリフレッシュされたときに見えるようになる。
【０１５２】
図11は、記憶装置の更新のみの場合に外部システム5からのエンドユーザ要求およびアクションの処理に起因する様々な典型的なステップのシーケンス図の一例を提供する。このシーケンス図は、図10に示すシナリオおよび通信の流れに関連する。
【０１５３】
ステップ1〜4は、図5のステップ1〜4と同一である。
【０１５４】
ステップ5、6は、図5のステップ9、10と同一である。
【０１５５】
ステップ7〜10は、図5のステップ11〜14と同一である。
【０１５６】
ステップ11〜16は、図5のステップ15〜20と同一である。
【０１５７】
次のステップで、イベントキュー9内にデータがなかったため、同期装置4は、セッションデータと取り出したばかりの記憶書類とをマージするだけでよい。
【０１５８】
ステップ17〜19は、図5のステップ22〜24と同一である。
【０１５９】
図12は、本発明に有利に適用される詳細なシステムアーキテクチャの一例を、非同期の更新が外部システムによって行われ、ユーザセッション3がない場合に実行すべき典型的なタスクのシーケンスに対する通信の流れとともに示す。
【０１６０】
ステップ1で、トランザクションに対応するデータが外部システム内で更新される。外部システムは、トランザクションに対応するデータおよび対応する書類に対する基準を外部入力点へ送る。外部システムによって送られたデータは、通知ハンドラおよびイベントハンドラを通じてイベントキュー9内に一時的に記憶される。
【０１６１】
ステップ2は、図8のステップ4と同一である。
【０１６２】
ステップ3〜5は、図8のステップ5〜7と同一である。
【０１６３】
図12は、有効なユーザセッション3がない場合でも、予定タスク14を介して外部システムとの同期を行うことができることを示す。
【０１６４】
したがって、本発明のさらなる利点は、有効なユーザセッション3が存在するか否かに関わらず、外部システム5'が主システムへ更新を通知して送り、所与のユーザ書類をいつでも更新することが可能であることである。したがって、外部システム5'からのデータは、記憶書類内に自動的に保存される。
【０１６５】
図13は、非同期の更新が外部システムによって行われ、ユーザセッション3がない場合に外部システム5'からのエンドユーザ要求およびアクションの処理に起因する様々な典型的なステップのシーケンス図の一例を提供する。このシーケンス図は、図12に示すシナリオおよび通信の流れに関連する。
【０１６６】
ステップ1、2は、図9のステップ7、8と同一である。
【０１６７】
ステップ3〜11は、図9のステップ15〜23と同一である。
【０１６８】
したがって、開示の本発明は、外部システムから受け取ったデータを確保して、認証されていないセッションデータなどの望ましくないデータの保存を回避しながら、記憶装置の更新をユーザに見えるようにするための解決策を提供する。
【符号の説明】
【０１６９】
1  データ記憶装置
2  ユーザ
3  ユーザセッション
4  同期装置
5  外部システム
5'  外部システム
6  外部入力点
7  通知ハンドラ
8  イベントハンドラ
9  イベントキュー
10  規則エンジン
11  マージャ
12  書類ハンドラ
13  記憶装置ハンドラ
14  予定タスク
【図１Ａ】
0006050260.tif 000002
【図１Ｂ】
0006050260.tif 000003
【図３】
0006050260.tif 000004
【図４】
0006050260.tif 000005
【図５】
0006050260.tif 000006
【図６】
0006050260.tif 000007
【図７】
0006050260.tif 000008
【図８】
0006050260.tif 000009
【図９】
0006050260.tif 000010
【図１０】
0006050260.tif 000011
【図１１】
0006050260.tif 000012
【図１２】
0006050260.tif 000013
【図１３】
0006050260.tif 000014
【図２】
0006050260.tif 000015