(57)【要約】１またはそれ以上のサーバー（２３０、２４０、２５０）上で走るエンタープライズアプリケーション（３２０）によって使用されるアプリケーションデータを、他の位置から展開されたアプリケーションデータと同期させることができる。ウェブイネーブルドサーバーとの同期を容易にするために、アプリケーションデータはＨＴＴＰに従うＸＭＬファイルとして伝送することができる。複数のサービスデータリポジトリ（３７０、３７５）を、エンタープライズアプリケーション内で走るマスターデータリポジトリ（３４０）内に存在するアプリケーションデータと同期させることができる。プロキシデータリポジトリを使用することによって、サーバー間のデータ同期機能も遂行される。アプリケーションデータファイルは、オーサーシステム（２２０）から遠隔サーバーへ展開させることができる。新たにオーサリングされたアプリケーションデータファイルを、ソース制御システムを使用してオーサーシステム（２２０）においてバージョン化し、またプロダクションサーバーへのアプリケーションデータの展開の準備としての多段階試験プロセスと共にオーサーによって種々のサーバーへ選択的に展開させることができる。
2005507122.tif 000002
【特許請求の範囲】
【請求項１】
サーバー上のアプリケーションデータを同期させる方法であって、
同期させるアプリケーションデータを受信するステップと、
データベースを上記アプリケーションデータと同期させるステップと、
第１のデータリポジトリを上記アプリケーションデータと同期させるステップと、
を含むことを特徴とする方法。
【請求項２】
上記第１のデータリポジトリは、サービスデータリポジトリであることを特徴とする請求項１に記載の方法。
【請求項３】
少なくとも上記アプリケーションデータのサブセットを、第２のデータリポジトリに通知するステップと、
上記第２のデータリポジトリを上記アプリケーションデータのサブセットと同期させるステップと、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項４】
上記第２のデータリポジトリは、プロキシデータリポジトリであることを特徴とする請求項３に記載の方法。
【請求項５】
上記第２のデータリポジトリは、上記アプリケーションデータのサブセットを上記第１のデータリポジトリから受信することを予約している、
ことを特徴とする請求項３に記載の方法。
【請求項６】
上記第１のデータリポジトリは、上記アプリケーションデータのランタイム表現からなることを特徴とする請求項１に記載の方法。
【請求項７】
上記データベースは、上記アプリケーションでの持続性記憶装置を提供することを特徴とする請求項１に記載の方法。
【請求項８】
上記同期ステップは、Ｊ２ＥＥエンタプライズアプリケーションによって遂行されることを特徴とする請求項１に記載の方法。
【請求項９】
上記アプリケーションデータは、エンタプライズアプリケーション内で走るサービスによって使用されることを特徴とする請求項１に記載の方法。
【請求項１０】
上記サービスは、ウェブアプリケーションによって使用されることを特徴とする請求項９に記載の方法。
【請求項１１】
上記アプリケーションデータは、ウェブアプリケーションのビジネス論理を定義していることを特徴とする請求項１に記載の方法。
【請求項１２】
上記アプリケーションデータは、少なくとも１つのＸＭＬファイルからなることを特徴とする請求項１に記載の方法。
【請求項１３】
上記アプリケーションデータは、ＨＴＴＰに従って伝送されるアプリケーションデータファイルからなることを特徴とする請求項１に記載の方法。
【請求項１４】
上記方法は、上記アプリケーションデータをプロダクションサーバーへ展開する準備としての試験プロセスの一部として遂行される、
ことを特徴とする請求項１に記載の方法。
【請求項１５】
アプリケーションデータをネットワークを通して遠隔ウェブに展開する方法であって、
アプリケーションデータをオーサリングするステップと、
上記アプリケーションデータをソース制御システムに提示するステップと、
上記アプリケーションデータを受信するサーバーを識別するステップと、
上記アプリケーションデータを上記サーバーへ送るステップと、
を含み、
上記サーバーは、上記サーバーのデータリポジトリを上記アプリケーションデータと同期させることができる、
ことを特徴とする方法。
【請求項１６】
上記サーバーは、上記サーバーに関連するＵＲＬによって識別されることを特徴とする請求項１５に記載の方法。
【請求項１７】
上記アプリケーションデータは、少なくとも１つのＸＭＬファイルからなることを特徴とする請求項１５に記載の方法。
【請求項１８】
上記アプリケーションデータは、ＨＴＴＰに従って伝送されるアプリケーションデータファイルからなることを特徴とする請求項１５に記載の方法。
【請求項１９】
上記方法は、上記アプリケーションデータをプロダクションサーバーへ展開する準備としての試験プロセスの一部として遂行されることを特徴とする請求項１５に記載の方法。
【請求項２０】
アプリケーションデータを、エンタプライズアプリケーションの間で同期させる方法であって、
アプリケーションデータを受信するステップと、
上記アプリケーションデータを、第１のエンタプライズアプリケーション内で走るプロキシデータリポジトリに通知するステップと、
上記アプリケーションデータを上記プロキシデータリポジトリへ送るステップと、
上記アプリケーションデータを、上記プロキシデータリポジトリから第２のエンタプライズアプリケーションへ転送するステップと、
を含むことを特徴とする方法。
【請求項２１】
上記第１及び第２のエンタプライズアプリケーションは、単一のサーバー内に存在していることを特徴とする請求項２０に記載の方法。
【請求項２２】
上記第１及び第２のエンタプライズアプリケーションは、別個のサーバー内に存在していることを特徴とする請求項２０に記載の方法。
【請求項２３】
上記アプリケーションデータは、少なくとも１つのＸＭＬファイルからなることを特徴とする請求項２０に記載の方法。
【請求項２４】
上記アプリケーションデータは、ＨＴＴＰに従って伝送されるアプリケーションデータファイルからなることを特徴とする請求項２０に記載の方法。
【請求項２５】
上記方法は、上記アプリケーションデータをプロダクションサーバーへ展開する準備としての試験プロセスの一部として遂行されることを特徴とする請求項２０に記載の方法。
【請求項２６】
エンタプライズアプリケーションのデータリポジトリ内のデータを同期させる方法であって、
マスターデータリポジトリをポーリングするステップと、
予約済みのデータデポジトリ内に格納されているアプリケーションデータが、上記マスターデータデポジトリと同期しているか否かを決定するステップと、
上記決定ステップに応答して、上記予約済みのデータデポジトリを上記マスターデータデポジトリと同期させるステップと、
を含むことを特徴とする方法。
【請求項２７】
上記アプリケーションデータは、ＥＪＢランタイムフォーマットであることを特徴とする請求項２６に記載の方法。
【請求項２８】
上記方法は、上記アプリケーションデータをプロダクションサーバーへ展開する準備としての試験プロセスの一部として遂行されることを特徴とする請求項２６に記載の方法。
【請求項２９】
アプリケーションデータを同期させるシステムであって、
ウェブサーバーと、
上記ウェブサーバー上で走り、インターネット接続を通して送られるアプリケーションデータを受信することができるデータ同期アプリケーションと、
上記データ同期アプリケーションと通信するデータリポジトリと、
を備え、
上記データリポジトリは、上記アプリケーションデータのランタイム表現を維持するようになっており、
上記データ同期アプリケーションは、上記受信したアプリケーションデータを上記データリポジトリと同期させることができる、
ことを特徴とするシステム。
【請求項３０】
上記データ同期アプリケーションは、上記サーバーのエンタプライズアプリケーション内で走ることを特徴とする請求項２９に記載のシステム。
【請求項３１】
上記エンタプライズアプリケーションは、Ｊ２ＥＥエンタプライズアプリケーションであることを特徴とする請求項３０に記載のシステム。
【請求項３２】
上記サーバーは、開発サーバーであることを特徴とする請求項２９に記載のシステム。
【請求項３３】
上記サーバーは、試験サーバーであることを特徴とする請求項２９に記載のシステム。
【請求項３４】
上記サーバーは、プロダクションサーバーであることを特徴とする請求項２９に記載のシステム。
【請求項３５】
上記アプリケーションデータは、少なくとも１つのＸＭＬファイルからなることを特徴とする請求項２９に記載のシステム。
【請求項３６】
上記アプリケーションデータは、ＨＴＴＰに従って伝送されるアプリケーションデータファイルからなることを特徴とする請求項２９に記載のシステム。
【請求項３７】
アプリケーションデータを試験する方法であって、
複数のウェブサーバーと、
インターネットを通して上記サーバーと通信するオーサーシステムと、
上記サーバーの少なくとも１つの上で走り、上記オーサーシステムから受信したアプリケーションデータを上記サーバーのアプリケーションデータと同期させることができるデータ同期アプリケーションと、
を備えていることを特徴とするシステム。
【請求項３８】
上記アプリケーションデータは、少なくとも１つのＸＭＬファイルからなることを特徴とする請求項３７に記載のシステム。
【請求項３９】
上記アプリケーションデータは、ＨＴＴＰに従って伝送されるアプリケーションデータファイルからなることを特徴とする請求項３７に記載のシステム。
【請求項４０】
コンピュータ可読媒体であって、
記憶媒体と、
上記記憶媒体上に実現されているコンピュータ可読コードと、
を備え、
上記コンピュータ可読コードは、サーバー上のアプリケーションデータを同期させる方法を遂行するようにコンピュータをプログラムし、
上記方法は、
同期させるアプリケーションデータを受信するステップと、
データベースを上記アプリケーションデータと同期させるステップと、
第１のデータリポジトリを上記アプリケーションデータと同期させるステップと、
を含むことを特徴とするコンピュータ可読媒体。
【請求項４１】
上記アプリケーションデータは、少なくとも１つのＸＭＬファイルからなることを特徴とする請求項４０に記載のコンピュータ可読媒体。
【請求項４２】
上記アプリケーションデータは、ＨＴＴＰに従って伝送されるアプリケーションデータファイルからなることを特徴とする請求項４０に記載のコンピュータ可読媒体。
【請求項４３】
アプリケーションデータをサーバーのクラスタに同期させる方法であって、
管理サーバー上のエンタプライズアプリケーション内で走るプロキシデータリポジトリに、アプリケーションデータを通知するステップと、
上記アプリケーションデータを、上記プロキシデータリポジトリへ送るステップと、
上記アプリケーションデータを、上記プロキシデータリポジトリからサーバーのクラスタのサーバ上のエンタプライズアプリケーションへ転送するステップと、
上記クラスタサーバー上の上記エンタプライズアプリケーションを、上記アプリケーションデータと同期させるステップと、
上記転送及び同期ステップを、上記サーバーのクラスタ内の残余の全てのサーバーに関して遂行するステップと、
を含むことを特徴とする方法。
【請求項４４】
上記プロキシデータリポジトリは、上記アプリケーションデータを受信するように予約されていることを特徴とする請求項４３に記載の方法。
【請求項４５】
上記アプリケーションデータは、少なくとも１つのＸＭＬファイルからなることを特徴とする請求項４３に記載の方法。
【請求項４６】
上記アプリケーションデータは、ＨＴＴＰに従って伝送されるアプリケーションデータファイルからなることを特徴とする請求項４３に記載の方法。
【請求項４７】
上記方法は、上記アプリケーションデータをプロダクションサーバーへ展開する準備としての試験プロセスの一部として遂行されることを特徴とする請求項４３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権の通知
本特許明細書の開示の一部は、著作権保護を受ける資料を含んでいる。著作権所有者は、特許の開示の特許明細書の、いかなる者による複製にも異議を申し立てない。それは、特許商標局の特許ファイルまたは記録において見られるからであるが、そうでなければ、すべての著作権を保有する。
【０００２】
相互参照出願
本出願は、ここに参考として組み込まれる２００１年１０月２４日出願の米国特許仮出願第６０／３３５，６３３号（代理人整理番号BEANS-1112US0）の出願日の利益を主張する。
【０００３】
本発明は、データを展開させ、同期させる技術に関する。
【背景技術】
【０００４】
ウェブをベースとするソフトウェアアプリケーションは、売り主及び顧客に等しく貴重なサービスを提供するパワフルなツールとして出現した。電子ビジネスウェブアプリケーションは、電子商取引を容易にするいろいろなプロセスを実現するために、ビジネス論理に従って動作するように構成することができる。これらのアプリケーションは、遠隔インターネットクライアント及び／またはアプリケーションと対話するサービスをも提供することができる。
【０００５】
カリフォルニア州サンタクララのサンマイクロシステムズ社から入手可能なJAVA（登録商標）プラットフォームエンタプライズエディション（Ｊ２ＥＥ）は、マルチタイヤエンタプライズアプリケーションに関連して走る電子ビジネスウェブアプリケーションの開発を容易にする。このようなウェブアプリケーションの動作は、ウェブアプリケーションを構成するために使用されるデータ（“アプリケーションデータ”）によって支配される。その結果、ウェブアプリケーションが提供する機能は、それらのアプリケーションに関連するアプリケーションデータを更新することによって変更することができる。
【０００６】
不幸にも、新しい、または更新されたアプリケーションデータをＪ２ＥＥウェブアプリケーションへ展開及び同期させることは、厄介なプロセスであり得る。新たにオーサリングされたアプリケーションデータは、あるデータベースによって使用される特定スキーマに従ってそのデータベース内に格納されることが多い。もし開発者が実行中のプロダクションサーバーにこれらのアプリケーションデータを展開させることを望むのであれば、データをそのサーバーへ伝送するのに適する形状に変換する前に、データをデータベースから抽出しなければならない。アプリケーションデータをデータベースからファイルシステム内へエクスポートするためには、スクリプトが必要であることが多い。実行中のサーバーへアプリケーションデータをインポートするためにも、スクリプトが必要であることが多い。これらの理由から、アプリケーションデータの異なるバージョンを維持することも扱い難く且つ非現実的な努力であり得る。
【０００７】
更に、実行中のプロダクションサーバーへ新しいアプリケーションデータを移動させることができるようになる前に、多段階試験プロセスに従わせるためにアプリケーションデータを複数のサーバーへ展開させる必要があり得る。アプリケーションデータのこの転送は厄介な手動プロセスであり、そのため、アプリケーションデータがサーバーからサーバーへ転送され、より多くの人が介在するになるにつれて益々誤りが発生し易くなる。このように、従来技術によるＪ２ＥＥプラットフォームに関連付けてのアプリケーションデータの展開及び同期は、極めて特別であり、望ましくないものであり得る。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、概術すれば、１またはそれ以上のサーバー上で走っているエンタプライズアプリケーションによって使用されるアプリケーションデータを同期させることを指向している。
【課題を解決するための手段】
【０００９】
例えば、一実施の形態においては、アプリケーションデータを受信し、データベース及びデータリポジトリと同期させる。別の実施の形態においては、アプリケーションデータにオーサリングし、ソース制御システムへ提示し、そして遠隔サーバーへ送ってこのサーバーのデータリポジトリをデータと同期させることを可能にするアプリケーションデータ展開方法が提供される。
【００１０】
別の実施の形態においては、プロキシデータリポジトリを使用することによって、アプリケーションデータをエンタプライズアプリケーション間で同期させる。別の実施の形態においては、１つのデータリポジトリを別のデータリポジトリによってポーリングすることによって、アプリケーションデータをデータリポジトリ間で同期させる。
【００１１】
これらの方法の幾つかの部分、または変形を実現するためのシステム及びコンピュータ可読媒体も提供される。以下に説明するように、他の多くの実施の形態も可能である。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明の一実施の形態によりアプリケーションデータファイルを作成し、バージョン化するためのシステムの概念図である。オーサー１１０は、１またはそれ以上のウェブアプリケーション及び／またはサービスによって使用されるアプリケーションデータの作成に責を負う人である。さまざまな実施の形態においては、オーサー１１０は、ライン・オブ・ビジネス管理者、ビジネスエンジニア、デベロッパ、その他のアプリケーションデータにオーサリングする責を負う人であることができる。アプリケーションデータは、オーサー１１０によって識別されたビジネス論理に従って動作させるようにウェブアプリケーションを構成するために使用することができる。例えば、オーサー１１０が作成するアプリケーションデータは、キャンペ−ン定義、シナリオ、ビジネス規則セット、ポータル定義、及び／またはウェブアプリケーションによって使用される他の型のデータを含むことができる。
【００１３】
アプリケーションデータを作成するために、オーサー１１０は、制御センター１２０のようないろいろなソフトウェアツールとインタフェースできる。一実施の形態における制御センターは、カリフォルニア州サンノゼのＢＥＡシステムズ社から入手可能な電子ビジネス制御センターツールである。オーサー１１０が制御センター１２０を使用して作成したデータは、１組のアプリケーションデータファイルとしてローカル階層ファイルシステムで格納することができる。図１に、階層ファイルシステムで格納されているアプリケーションデータファイル１３０の例を示す。アプリケーションデータファイル１３０は、ウェブアプリケーション（それのためにアプリケーションデータファイル１３０が作成された）に従って編成することができる。一実施の形態においては、制御センター１２０を用いて作成されたアプリケーションデータは、データにオーサリングされたウェブアプリケーションによって翻訳することができるＸＭＬスキーマに従って、ＸＭＬファイル内に格納される。ＸＭＬは多重プラットフォームにまたがるいろいろなシステムによって読まれ、翻訳されることができるから、ＸＭＬアプリケーションデータを使用することによってデータベーススクリプティング向きアプローチに優る長所が得られる。
【００１４】
オーサー１１０と制御センター１２０との対話によって作成されたアプリケーションデータファイル１３０は、ソース制御システム１４０内に到着する。ソース制御システム１４０は、試験、展開、同期、及び／または他の目的のためにアプリケーションデータファイル１３０の異なるバージョンを容易に再現可能にする。例えば、もし故障アプリケーションデータをウェブアプリケーションへ展開させるのであれば、ソース制御システム１４０はアプリケーションデータの先行バージョンを再現し、そのデータをウェブアプリケーションへ再展開する。ソース制御システム１４０を使用すると、アプリケーションデータが同時にオーサリングされた時に、複数のオーサーが互いのファイルに重ね書きするのを防ぐこともできる。一実施の形態におけるソース制御システム１４０は、当分野において公知の何等かの適当なソース制御システムである。
【００１５】
作成されたアプリケーションデータは、典型的には、新たにオーサリングされたアプリケーションデータと、他のデータ及び／または他のオーサーが作成したアプリケーションとの対話を試験するために多段階承認プロセスを受ける。例えば、アプリケーションデータをプロダクションサーバーへ展開させる前に、分離した開発及び品質保証段階を受けさせることができる。これらの段階は、実行中のプロダクションサーバー上で走っているウェブアプリケーションが信頼可能に動作するのを保証するように支援する。
【００１６】
ウェブアプリケーションのこの共同開発中に、ソフトウェア開発者が、エンタプライズアプリケーション境界にまたがるアプリケーションデータを遠隔サーバーに同期させることを要望することがあり得る。以下に詳述するいろいろなデータ同期プロセスは、インターネットを介してアクセス可能な遠隔サーバー上のアプリケーションデータの同期を容易にするために、ＨＴＴＰによって提供される利点を導入している。本発明の若干の実施の形態によれば、新たに作成されたアプリケーションデータは、１またはそれ以上の実行中の遠隔サーバーと同期させることができる。あるサーバーに関連するＵＲＬを識別することによって、アプリケーションデータを、インターネットを通してＨＴＴＰに従ってアクセス可能な如何なるサーバーとも遠隔同期させることができる。
【００１７】
図２は、本発明の一実施の形態によるデータを同期させるためのシステムを、高レベルブロック図で示している。図２のシステムは、ウェブアプリケーションを最終的にプロダクションサーバー上に展開させる前に、それらを共同開発し、試験するために使用することができる。一実施の形態においては、図２のシステムは、カリフォルニア州サンノゼのＢＥＡシステムズ社から入手可能なＢＥＡウェブロジックプラットフォームTMの１またはそれ以上の成分を使用して実現されている。図２に示すように、複数のサーバーがネットワーク２１０と通信している。一実施の形態においては、図２のシステムは、ピア・トゥ・ピアネットワークとして実現されている。図２の各サーバーは、ウェブアプリケーションが使用するアプリケーションデータを格納することができるデータベース、及びまたはそのサーバー上で走るサービスに関連付けられている。図２に示すように、各サーバーは、多段階アプリケーションデータ承認プロセスにおいて異なる目的のために使用することができる。例えば、これらの目的は、開発（サーバー２３０及びデータベース２３５）、品質保証（サーバー２４０及びデータベース２４５）、生産（サーバー２５０及びデータベース２５５）、その他（図示してない）を含むことができる。
【００１８】
図２の各サーバーは、オーサーシステム２２０からネットワーク２１０を通してアプリケーションデータを受信することができる。オーサーシステム２２０から受信したアプリケーションデータは、さまざまなサーバー上で走っているウェブアプリケーションによって使用されるアプリケーションデータと同期させることができる（詳細は後述する）。一実施の形態においては、オーサーシステム２２０は図１に示すシステムである。
【００１９】
図２には、サーバーツール２６０及びデータベースツール２６５も示されている。これらのツールは、プロダクションサーバー２５０上のデータ及びプロダクションデータベース２５５の実時間変更を可能にする。一実施の形態においては、サーバーツール２６０はＪＳＰをベースとするツールであって、プロダクションサーバー２５０を直接変化させることを可能にする。
【００２０】
図３は、本発明の一実施の形態に従って同期させることができるデータを有するエンタプライズアプリケーションを走らせているサーバーを、ブロック図で示している。サーバー３１０は、オーサーシステム２２０からアプリケーションデータを受信可能な、図２に示すサーバーの何れかであることができる。図３に示すように、サーバー３１０上で走っているエンタプライズアプリケーション３２０内には、複数のウェブアプリケーション及びサービスが存在している。電子ビジネスウェブアプリケーション３５０は、サービスデータリポジトリ３７０、３７５、及び／または３７７内に格納されているアプリケーションデータに頼るサービス３６０を含む。エンタプライズアプリケーション３２０に関連して走っている付加的なサービス３６５も、サービスデータリポジトリ内に格納されているアプリケーションデータに頼ることができる。一実施の形態においては、サービスデータリポジトリは、展開されたサービスのクラスに関係しているデータアイテムのインメモリキャッシュとして機能するJavaオブジェクトである。
【００２１】
データ同期ウェブアプリケーション３３０もエンタプライズアプリケーション３２０内で走っており、本発明によるデータ同期動作を遂行する責を負っている。図３に示すように、データ同期アプリケーション３３０は、ネットワーク２１０を通して図２のオーサーシステム２２０と通信することができる。エンタプライズアプリケーション３２０内のマスターデータリポジトリ３４０は、データ同期アプリケーション３３０、データベース３８０、及びデータリポジトリ３７０及び３７５と通信することができる。
【００２２】
データ同期アプリケーション３３０は、ネットワーク２１０を通してオーサーシステム２２０から送られてきた同期要求を受信することができる。一実施の形態においては、これらの同期要求は遠隔プロトコルに従ってＨＴＴＰによるＸＭＬとして送られる。オーサーシステム２２０から同期要求を受信すると、データ同期アプリケーション３３０はオーサーシステム２２０から受信したアプリケーションデータを、そのアプリケーションデータのランタイム表現であるマスターデータリポジトリ３４０へ導く。またデータ同期アプリケーション３３０は、受信したアプリケーションデータを、そのアプリケーションデータのための持続的な格納位置であるデータベース３８０へ導く。一実施の形態におけるデータリポジトリ３４０は、到来アプリケーションデータをエンタプライズJavaビーンズ（ＥＪＢ）として格納する。別の実施の形態におけるデータベース３８０は、関係型データベース管理システムである。
【００２３】
一実施の形態においては、データ同期アプリケーション３３０は１組のＪＳＰを含む。これらは、マスターデータリポジトリ３４０の内容、マスターデータリポジトリ３４０と同期に成功したデータリポジトリ、及びエンタプライズアプリケーション３２０内の各データリポジトリの内容を報告することができる。
【００２４】
図３の各サービスデータリポジトリは、マスターデータリポジトリ３４０内に格納されているアプリケーションデータのサブセットを含んでいる。サービス３６０及び３６５は、サービスデータリポジトリ内のデータを使用してビジネスタスクを遂行する。例えば、規則サービスは、顧客が特定の顧客セグメントに適合しているか否かをデータを使用して評価することができる。図３のサービスデータリポジトリは、マスターデータリポジトリ３４０内のデータのサブセットだけを維持しているから、各サービスは、マスターデータリポジトリ３４０内に維持されている全てのアプリケーションデータのコピーを維持する必要がなく、サービスが必要とするアプリケーションデータの小さい特定のセットをパーズすることができる。
【００２５】
マスターデータリポジトリ３４０が同期する度に、マスターデータリポジトリ３４０はデータリポジトリ３７０及び３７５に通知する。次いで、これらのデータリポジトリはそれらのデータサブセットをマスター内のデータと同期させる。一実施の形態においては、アプリケーションデータは、バイナリプロトコルに従ってエンタプライズアプリケーション３２０の成分間で通信される。サーバー３１０上で走っている複数のエンタプライズアプリケーション（図示してない）も、各エンタプライズアプリケーション内で走っている分離したデータ同期アプリケーションを使用して同期させることができる。これらの同期を容易にするために、プロキシデータリポジトリを使用することができる。
【００２６】
若干の場合には、マスターデータリポジトリ３４０は、データをデータリポジトリと直接同期させない。そのようにはせずに、複数のデータリポジトリを使用する通知チェーンを使用することができる。図３においては、データリポジトリ３７５及び３７７が通知チェーンを形成している。データリポジトリ３７５は、マスターデータリポジトリ３４０から更新されたアプリケーションデータを受信するとデータリポジトリ３７７に通知する。それによりデータリポジトリ３７７は、データリポジトリ３７５が受信したアプリケーションデータと同期させることができる。その結果、マスターデータリポジトリ３４０が更新されたアプリケーションデータを両リポジトリへ送ることを必要とせずに、両リポジトリ３７５及び３７７を同期させることができる。
【００２７】
図４は、本発明の一実施の形態に従ってデータを同期させるためのプロセスを示すフローチャートである。オーサーシステム２２０から図２のサーバーの何れかにアプリケーションデータを同期させる場合、同期要求をオーサーシステム２２０から、同期させるサーバーのＵＲＬへ送る（データ同期アプリケーション３３０が受信する）ことによって同期プロセスを開始させることができる（ステップ４１０）。いろいろな実施の形態においては、オーサー１１０が、制御センター１２０の図形インタフェースまたはJavaコマンドラインを使用して同期プロセスを開始させることができる。
【００２８】
本発明の種々の実施の形態においては、異なる同期モードを使用することができる。リフレッシュ・フロム・クライアントモードにおいては、所与のアプリケーションのための全てのアプリケーションデータが同期される。このモードを使用した場合、データリポジトリから全てのデータがクリアされ、次いで全ての関連アプリケーションデータファイルがオーサーのローカルファイルシステムからデータ同期ウェブアプリケーションへ送られる。このモードは、インメモリデータを生き残ったデータと同期させるために、または同期誤差から回復させるために有用であり得る。ワン・ウェイ・フロム・クライアントモードにおいては、オーサーのローカルファイル上で除去された、更新された、または作成されたアプリケーションデータファイルだけが更新される。従って、オーサーシステムと、同期されるサーバーとの間に伝送されるデータの量を最小化させることができる。
【００２９】
ステップ４１０において同期プロセスが開始されると、同期させるアプリケーションデータがネットワーク２１０を通してオーサーシステム２２０からサーバー３１０へ送られる（ステップ４２０）。一実施の形態においては、アプリケーションデータは、ＰＯＳＴコマンドを使用してＨＴＴＰに従うＸＭＬファイルとして送られる。アプリケーションデータは、データ同期アプリケーション３３０によって受信される。データ同期アプリケーション３３０は、データベース３８０及びマスターデータリポジトリ３４０を、新たに受信されたアプリケーションデータと同期させる（ステップ４３０）。ステップ４３０の結果として、データベース３８０は持続的に記憶するためにデータベースフォーマットで格納された更新済みのアプリケーションデータを含み、マスターデータリポジトリ３４０はＥＪＢランタイムフォーマットで格納された更新済みのアプリケーションデータを含む。
【００３０】
前述したように、図３のいろいろなアプリケーション及びサービスは、サービスデータリポジトリ内に存在するアプリケーションデータに頼ることができる。従って、各サービスデータリポジトリは、更新されたアプリケーションデータを受信するように予約することができる。マスターデータリポジトリ３４０は、データリポジトリ３７０及び３７５内のアプリケーションデータを更新するために、何等かの更新がなされたアプリケーションデータを受信を予約している各サービスデータリポジトリ３７０及び３７５へ通知する（ステップ４４０）。前述したように、サービスデータリポジトリ３７７は、その通知を通知チェーンを介して受信する。マスターデータリポジトリ３４０は、後述するように、他のサーバー上で走っているエンタプライズアプリケーションのためのプロキシデータリポジトリ（図示してない）へも通知する。更新されたアプリケーションデータをサービスデータリポジトリが通知した後に、各リポジトリはそれ自体を、それが予約しているマスターデータリポジトリ３４０内の特定のアプリケーションデータと同期させる（ステップ４５０）。プロキシデータリポジトリも、後述するように、サーバー３１０または他の遠隔サーバー上の他のエンタプライズアプリケーション（図示してない）内で走っているリポジトリを同期させるために、ステップ４４０において送られた何等かの通知をそれらの遠隔データ同期ウェブアプリケーションへ転送する（ステップ４６０）。
【００３１】
サービスデータリポジトリ３７０及び／または３７５は、アプリケーションデータが更新されたか否かを調べるために、マスターデータリポジトリ３４０を周期的にポーリングすることもできる。もし更新されたデータが検出されれば、マスターデータリポジトリ３４０内に維持されているアプリケーションデータを、サービスデータリポジトリ３７０及び／または３７５と同期させることができる。
【００３２】
マスターデータリポジトリ３４０は各更新を記述するログを維持し、またどのデータリポジトリが更新に成功したか、及びどれが更新されなかったかの記述を含む。データ同期アプリケーション３３０は、どのアプリケーションデータファイルが同期に成功したかを識別する状態メッセージを、ＨＴＴＰまたはJavaコマンドシェルを介してオーサーシステム２２０へ戻すことができる。図３の各データリポジトリは、その現在の内容を記述するログを維持することもできる。
【００３３】
図３に示すように、アプリケーションデータは、オーサーシステムと単一のサーバー上で走っているエンタプライズアプリケーションとの間を同期させることができる。本発明のさまざまな実施の形態によれば、図４のステップ４１０において開始された単一の同期プロセスによって複数のサーバーを同期させることもできる。複数のサーバーのこの同期は、図５に基づいて以下に説明する付加的な要素を使用することによって容易にすることができる。
【００３４】
図５は、本発明の一実施の形態による複数のサーバーのブロック図であって、これらのサーバーは、プロキシデータリポジトリを使用して同期させることができるデータを有するエンタプライズアプリケーションを走らせている。サーバー６１０及び６５０上ではエンタプライズアプリケーション６２０及び６６０がそれぞれ走っている。エンタプライズアプリケーション６２０内で走っているマスターデータリポジトリ６３０は、前述したように、オーサーシステム（図示してない）と通信するデータ同期アプリケーション（図示してない）によって同期させることができる。マスターデータリポジトリ６３０は、これもエンタプライズアプリケーション６２０内で走っているプロキシデータリポジトリ６４０と通信する。プロキシデータリポジトリ６４０は、マスターデータリポジトリ６３０内に格納されている更新されたアプリケーションデータを受信するように予約することができる。
【００３５】
データ同期ウェブアプリケーション６８０は、遠隔サーバー６５０上で走るデータ同期アプリケーションの例である。しかしながら、更新をオーサーシステム２２０から直接受信する（図３のデータ同期アプリケーション３３０のように）のではなく、データ同期アプリケーション６８０はプロキシデータリポジトリ６４０から送られた更新を受信する。遠隔マスターデータリポジトリ６７０は、データ同期アプリケーション６８０が受信したアプリケーションデータに従って更新されるエンタプライズアプリケーション６６０のためのマスターデータリポジトリである。遠隔マスターデータリポジトリ６７０は、前述したように、更新されたアプリケーションデータを、他のプロキシデータリポジトリ及び／またはエンタプライズアプリケーション６６０内で走っているサービスデータリポジトリ（図示してない）へ引き渡すことができる。図５のサーバー上には、図３及び／または図６のサーバーで説明した１またはそれ以上の要素のような付加的な要素（図示してない）が存在し得ることを理解されたい。
【００３６】
動作を説明すると、マスターデータリポジトリ６３０は、図２のオーサーシステム２２０のようなオーサーシステム（図示してない）と通信するデータ同期ウェブアプリケーションから更新されたアプリケーションデータを受信する。プロキシデータリポジトリ６４０は、マスターデータリポジトリ６４０から更新されたアプリケーションデータを受信するように予約している。その結果、マスターデータリポジトリ６３０が受信した更新済みのアプリケーションデータは、プロキシデータリポジトリ６４０に引き渡される。次いで、プロキシデータリポジトリ６４０は、そのアプリケーションをサーバー６１０からサーバー６５０上で走っているデータ同期アプリケーションへ引き渡す。一実施の形態においては、アプリケーションデータは、バイナリプロトコルに従ってプロキシデータリポジトリ６４０によって受信される。従って、プロキシデータリポジトリ６４０は、アプリケーションデータをＨＴＴＰに従うＸＭＬとして遠隔サーバー６５０内のデータ同期アプリケーション６８０へ引き渡す前に、アプリケーションデータをＸＭＬフォーマットに整理する。
【００３７】
データ同期アプリケーション６８０は、更新されたアプリケーションデータを受信すると、その更新されたアプリケーションデータを用いて遠隔マスターデータリポジトリ６７０を更新するように動作する。図３に示すように持続的に記憶するデータベース（図５には示されていない）も同期され、更新されたアプリケーションデータは、更新されたアプリケーションデータの受信を予約しているエンタプライズアプリケーション６６０の全てのデータリポジトリ（図示してない）へ転送される。
【００３８】
以上のように、プロキシデータリポジトリがマスターデータリポジトリから更新を受信することを予約することによって、遠隔サーバー上で走っているエンタプライズアプリケーション内のアプリケーションデータを、マスターデータリポジトリが受信したアプリケーションデータと同期させることができる。同一サーバー上で走っている異なるエンタプライズアプリケーションにまたがるデータを同期させるために、プロキシも使用することができる。更に、遠隔サーバーと付加的な遠隔サーバーとをプロキシを通してリンクすることによって、複数のサーバーのチェーンを同期させることができる。これらの原理は、図６に関して説明するようなサーバーのクラスタにまたがるアプリケーションデータの同期にも適用することができる。
【００３９】
図６は、本発明の実施の形態によるサーバーのクラスタのブロック図であって、これらのクラスタは、管理サーバーによって同期させることができるデータを有するエンタプライズアプリケーションを走らせている。管理サーバー７１０上のエンタプライズアプリケーション７２０のデータ同期ウェブアプリケーション７３０及びマスターデータリポジトリ７４０は、クラスタ７９０の被管理サーバー７６０と通信することができる。前述したように、遠隔サーバー７６０上で走っているエンタプライズアプリケーション７７０のデータリポジトリ（図示してない）内に存在するアプリケーションデータは、マスターデータリポジトリ７４０内に格納されている更新されたアプリケーションデータと同期させることができる。マスターデータリポジトリ７４０は、更新されたアプリケーションデータをプロキシデータリポジトリ（図示してない）へ引き渡すことができ、プロキシデータリポジトリはそのデータを、エンタプライズアプリケーション７７０上で走っているデータ同期ウェブアプリケーション（図示してない）へ引き渡す。その結果、オーサーシステム（図示してない）から更新されたアプリケーションデータを受信する単一の管理サーバー７１０によって、複数のサーバー７６０を同期させることができる。図３及び／または図５のサーバーで説明した１またはそれ以上の要素のような付加的な要素（図示してない）が、図６のサーバー上に存在し得ることが理解されよう。
【００４０】
それが適切ならば、本発明は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合わせを使用して実現することができる。プログラムコード及び／またはデータのような本発明によるソフトウェアは、１またはそれ以上のコンピュータ可読媒体上に格納することができる。またそれが適切ならば、以上に説明した諸ハードウェア成分及び／またはソフトウェア成分は、本発明の思想から逸脱することなく、ソフトウェア、ハードウェア、または両者からなる複合成分に組合わせることができる。同様に、それが適切ならば、以上に説明した諸ハードウェア成分及び／またはソフトウェア成分は、本発明の思想から逸脱することなく、ソフトウェア、ハードウェア、または両者からなる副成分に分解することができる。更に、それが適切ならば、ソフトウェア成分はハードウェア成分として、またはその逆として実現できることをも意図している。また更に、それが適切ならば、以上に説明した諸ステップは、複合ステップに組合わせること、及び／またはサブステップに分解することができる。以上に説明したソフトウェア成分を、ネットワークされた及び／またはそれ以外の１またはそれ以上の汎用または専用コンピュータ及び／またはコンピュータシステムを使用して実現することをも意図している。
【００４１】
以上の説明は、本発明を開示した精密な形状に限定するものでも、または開示した特定の使用分野に限定するものでもない。また以上の説明から、本発明のいろいろな代替実施の形態及び／または変更が可能であることを理解されたい。
【図面の簡単な説明】
【００４２】
【図１】本発明の一実施の形態に従ってアプリケーションデータファイルを作成し、バージョン化するためのシステムの概念図である。
【図２】本発明の一実施の形態に従ってデータを同期させるためのシステムの高レベルブロック図である。
【図３】本発明の一実施の形態により同期させることができるデータを有するエンタプライズアプリケーションを走らせているサーバーのブロック図である。
【図４】本発明の一実施の形態に従ってデータを同期させるためのプロセスを示すフローチャートである。
【図５】本発明の一実施の形態に従ってプロキシデータリポジトリを使用して同期させることができるデータを有するエンタプライズアプリケーションを走らせている複数のサーバーのブロック図である。
【図６】本発明の一実施の形態に従って管理サーバーによって同期させることができるデータを有するエンタプライズアプリケーションを走らせているサーバーのクラスタのブロック図である。
【図１】
2005507122.tif 000003
【図２】
2005507122.tif 000004
【図３】
2005507122.tif 000005
【図４】
2005507122.tif 000006
【図５】
2005507122.tif 000007
【図６】
2005507122.tif 000008
【国際公開パンフレット】
2005507122.tif 000009
2005507122.tif 000010
2005507122.tif 000011
2005507122.tif 000012
2005507122.tif 000013
2005507122.tif 000014
2005507122.tif 000015
2005507122.tif 000016
2005507122.tif 000017
2005507122.tif 000018
2005507122.tif 000019
2005507122.tif 000020
2005507122.tif 000021
2005507122.tif 000022
2005507122.tif 000023
2005507122.tif 000024
2005507122.tif 000025
2005507122.tif 000026
2005507122.tif 000027
2005507122.tif 000028
2005507122.tif 000029
2005507122.tif 000030
2005507122.tif 000031
2005507122.tif 000032
2005507122.tif 000033
2005507122.tif 000034
2005507122.tif 000035
【国際調査報告】
2005507122.tif 000036
2005507122.tif 000037