(57)【要約】全ての配備対象物の配備が完了する前に、クライアントリクエストを処理可能とする。  アプリケーション構成システムは、第２のアプリケーションがテナント共通データの複製を第１のアプリケーションから取得した段階で、端末から入力した要求情報を第２のアプリケーションへ転送し、要求情報に応じて処理を実行してテナント固有情報を参照する際、テナント固有情報が第２のアプリケーションに複製済みである場合には複製済みのテナント固有情報を取得し、複製済みでない場合には第１のアプリケーションのテナント固有情報を取得する。
2012033110.tif 000002
【特許請求の範囲】
【請求項１】
第１のアプリケーション実行手段から第２のアプリケーション実行手段に複製されるテナント共通データとテナント固有情報とを記憶手段に保存させる複製受信制御手段が前記テナント共通データの複製を前記第１のアプリケーション実行手段から取得した以降、リクエスト制御手段から前記第２のアプリケーション実行手段へ転送される、端末から入力した要求情報に応じて処理を実行する実行手段と、
前記実行手段が前記テナント固有情報を参照する際、前記テナント固有情報が前記第２のアプリケーション実行手段に複製済みである場合には複製済みの前記テナント固有情報を取得し、複製済みでない場合には前記第１のアプリケーション実行手段の前記テナント固有情報を取得して前記実行手段に出力するデータ取得手段と、
を備える前記第２のアプリケーション実行手段を含むアプリケーション構成システム。
【請求項２】
前記要求情報に含まれるテナントの情報に基づいて、前記テナント固有情報のうち前記複製を行なう順序を決定するリクエスト記憶手段と、
前記リクエスト記憶手段が決定した順序で前記テナント固有情報の複製を保存する前記複製受信制御手段と、
を備える請求項１に記載のアプリケーション構成システム。
【請求項３】
前記第２のアプリケーション実行手段から要求された前記テナント固有情報を前記第２のアプリケーション実行手段へ送信するデータ取得受信手段と、
前記データ取得受信手段が前記第２のアプリケーション実行手段へ送信したテナント固有情報の履歴を保存し、テナント固有情報のうち、前記履歴に保存されたテナント固有情報以外のテナント固有情報を抽出するデータ差分管理手段と、
を備える前記第１のアプリケーション実行手段を含み、
前記複製受信制御手段は、前記データ差分管理手段から抽出された前記テナント固有情報の複製を受信する請求項１乃至２のいずれか１項に記載のアプリケーション構成システム。
【請求項４】
前記複製受信制御手段は、特定のテナントのテナント固有情報を全て受信した時点で、前記リクエスト制御手段に該当テナントのテナント固有情報複製完了を通知し、
前記リクエスト制御手段は、テナント固有情報複製が完了したテナントへの要求情報のみを前記第２のアプリケーション実行手段に転送する請求項１乃至３のいずれか１項に記載のアプリケーション構成システム。
【請求項５】
第１のアプリケーション実行手段から第２のアプリケーション実行手段に複製される実行プログラム、テナント共通データ、テナント固有情報のうち、前記実行プログラムの複製と前記テナント共通データの複製を前記第１のアプリケーション実行手段から取得した以降、端末から入力した要求情報を前記第２のアプリケーション実行手段へ転送し、前記要求情報に応じて前記実行プログラムを実行し、前記テナント固有情報を参照する際、前記テナント固有情報が前記第２のアプリケーション実行手段に複製済みである場合には複製済みの前記テナント固有情報を取得し、複製済みでない場合には前記第１のアプリケーション実行手段の前記テナント固有情報を取得して前記実行プログラムに出力するアプリケーション構成方法。
【請求項６】
前記要求情報に含まれるテナントの情報に基づいて、前記テナント固有情報のうち前記複製を行なう順序を決定し、決定した順序で前記テナント固有情報の複製を保存する請求項５に記載のアプリケーション構成方法。
【請求項７】
前記テナント固有情報を前記第２のアプリケーション実行手段へ送信し、該送信されたテナント固有情報の履歴を保存し、テナント固有情報のうち、前記履歴に保存されたテナント固有情報以外のテナント固有情報を抽出し、抽出された前記テナント固有情報の複製を受信する請求項５乃至６のいずれか１項に記載のアプリケーション構成方法。
【請求項８】
特定のテナントのテナント固有情報を全て受信した時点で、該当テナントのテナント固有情報複製完了を通知し、テナント固有情報複製が完了したテナントへの要求情報のみを前記第２のアプリケーション実行手段に転送する請求項５乃至７のいずれか１項に記載のアプリケーション構成方法。
【請求項９】
第１のコンピュータから第２のコンピュータに複製される実行プログラム、テナント共通データ、テナント固有情報を記憶手段に保存させる複製受信制御ステップと、
前記複製受信制御ステップにおいて、前記実行プログラムの複製と前記テナント共通データの複製を前記第１のコンピュータから取得した以降、前記第２のコンピュータへ転送される、端末から入力した要求情報に応じて前記実行プログラムを実行する実行ステップと、
前記実行ステップにおいて、前記テナント固有情報を参照する際、前記テナント固有情報が前記第２のコンピュータに複製済みである場合には複製済みの前記テナント固有情報を取得し、複製済みでない場合には前記第１のコンピュータの前記テナント固有情報を取得して前記実行ステップに参照させるデータ取得ステップと、
を前記第２のコンピュータに実行させるアプリケーション構成プログラム。
【請求項１０】
前記要求情報に含まれるテナントの情報に基づいて、前記テナント固有情報のうち前記複製を行なう順序を決定し、該決定した順序で前記テナント固有情報の複製を保存する前記複製受信制御ステップを、前記第２のコンピュータに実行させる請求項９に記載のアプリケーション構成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアプリケーション構成システム、方法、及び、プログラムに関する。
【背景技術】
【０００２】
近年、Ｗｅｂ技術を活用したアプリケーションが数多く登場している。これまで各クライアント端末がそれぞれ専用のアプリケーションをインストールして利用していたのに対して、このアプリケーションはＷｅｂサービスとしてＷｅｂブラウザを通して利用されるスタイルのアプリケーションである。
一方で、このようなＷｅｂサービス形式のアプリケーションは、大量のクライアント端末で同時に利用される場合が多く、接続するクライアント端末の数、リクエストの数の増減に同期して、いかにアプリケーションの規模を増減させるかが課題となる。
このような接続するクライアント端末の数やリクエストの数は、事前に予測することが難しく、突発的にこれらの数が増加した際に、システムは、アプリケーションの規模を拡張させることで対応している。この作業は、一般的には複雑な作業をともない、かつサービスレベルの低下に直結するため迅速に実施する必要があるため、この作業を自動化するアプローチが考案されてきた。
例えば、特許文献１においては、アプリケーションを状況に応じて自動的に配備して規模拡張させるために、サーバコンピュータをグループに分割して配備対象物を管理する手法が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】再特ＷＯ２００６／０４３３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載の方法は、あらかじめ管理されたアプリケーションを構成する配備対象物を全て配備先サーバコンピュータに配備してからサービスを開始する必要があるため、全ての配備対象物の配備が完了するまで該当サーバコンピュータはクライアントリクエストを処理できないという制約がある。システムは、マルチテナントアプリケーションのような非常に多くのデータを保持するようなアプリケーションの場合には、配備完了まで長時間かかる。そのため負荷分散の即効性の面で問題がある。
本発明は、このような課題を解決するために、全ての配備対象物の配備が完了する前に、クライアントリクエストを処理可能とするアプリケーション構成システム、方法、及び、プログラムの提供を目的とする。
【課題を解決するための手段】
【０００５】
かかる目的を達成するため、本発明の一形態は、アプリケーション構成システムであって、第１のアプリケーション実行手段から第２のアプリケーション実行手段に複製されるテナント共通データとテナント固有情報とを記憶手段に保存させる複製受信制御手段が前記テナント共通データの複製を前記第１のアプリケーション実行手段から取得した以降、リクエスト制御手段から前記第２のアプリケーション実行手段へ転送される、端末から入力した要求情報に応じて処理を実行する実行手段と、前記実行手段が前記テナント固有情報を参照する際、前記テナント固有情報が前記第２のアプリケーション実行手段に複製済みである場合には複製済みの前記テナント固有情報を取得し、複製済みでない場合には前記第１のアプリケーション実行手段の前記テナント固有情報を取得して前記実行手段に出力するデータ取得手段と、を備える前記第２のアプリケーション実行手段を含むアプリケーション構成システムを提供する。
また、本発明によれば、第１のアプリケーション実行手段から第２のアプリケーション実行手段に複製される実行プログラム、テナント共通データ、テナント固有情報のうち、前記実行プログラムの複製と前記テナント共通データの複製を前記第１のアプリケーション実行手段から取得した以降、端末から入力した要求情報を前記第２のアプリケーション実行手段へ転送し、前記要求情報に応じて前記実行プログラムを実行し、前記テナント固有情報を参照する際、前記テナント固有情報が前記第２のアプリケーション実行手段に複製済みである場合には複製済みの前記テナント固有情報を取得し、複製済みでない場合には前記第１のアプリケーション実行手段の前記テナント固有情報を取得して前記実行プログラムに出力するアプリケーション構成方法が提供される。
また、本発明によれば、第１のコンピュータから第２のコンピュータに複製される実行プログラム、テナント共通データ、テナント固有情報を記憶手段に保存させる複製受信制御ステップと、前記複製受信制御ステップにおいて、前記実行プログラムの複製と前記テナント共通データの複製を前記第１のコンピュータから取得した以降、前記第２のコンピュータへ転送される、端末から入力した要求情報に応じて前記実行プログラムを実行する実行ステップと、前記実行ステップにおいて、前記テナント固有情報を参照する際、前記テナント固有情報が前記第２のコンピュータに複製済みである場合には複製済みの前記テナント固有情報を取得し、複製済みでない場合には前記第１のコンピュータの前記テナント固有情報を取得して前記実行ステップに参照させるデータ取得ステップと、を前記第２のコンピュータに実行させるアプリケーション構成プログラムが提供される。
【発明の効果】
【０００６】
本発明は、全ての配備対象物の配備が完了する前に、クライアントリクエストを処理可能とするアプリケーション構成システム、方法、及び、プログラムを提供する。
【図面の簡単な説明】
【０００７】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１の実施の形態の動作における、アプリケーションの共通部分を複製、転送する動作を示す流れ図である。
【図３】本発明の第１の実施の形態の動作における、クライアントリクエストの複製先アプリケーション実行部２への振り分けを開始する動作を示す流れ図である。
【図４】本発明の第１の実施の形態の動作における、アプリケーションのテナント固有情報を複製、転送する動作を示す流れ図である。
【図５】本発明の第１の実施の形態の動作における、複製先アプリケーション実行部２がクライアントリクエストを受信し、テナント毎に異なる処理をする際の動作を示す流れ図である。
【図６】本発明の第１の実施の形態の動作における、複製先アプリケーション実行部２がクライアントリクエストを受信し、テナント毎に異なる処理をする際の動作を示す流れ図である。
【図７】本発明の第１の実施の形態の動作における、実行部２００が処理中にテナント固有データを取得する場合の動作を示す流れ図である。
【図８】本発明の第１の実施の形態の動作における、実行部２００が処理中にテナント固有データを取得する場合の動作を示す流れ図である。
【図９】本発明の第２の実施の形態の構成を示すブロック図である。
【図１０】本発明の第２の実施の形態の動作における、クライアントリクエストをリクエスト制御部２０が受信する際の動作を示す流れ図である。
【図１１】本発明の第２の実施の形態の動作における、複製先アプリケーション実行部２がクライアントリクエストを受信し、テナント毎に異なる処理をする際の動作を示す流れ図である。
【図１２】本発明の第３の実施の形態の構成を示すブロック図である。
【図１３】本発明の第３の実施の形態の動作における、複製先アプリケーション実行部２がクライアントリクエストを受信し、テナント毎に異なる処理をする際の動作を示す流れ図である。
【図１４】本発明の第３の実施の形態の動作における、実行部２００が処理中にテナント固有データを取得する場合の動作を示す流れ図である。
【図１５】本発明の第３の実施の形態の動作における、アプリケーションのテナント固有情報を複製、転送する動作を示す流れ図である。
【図１６】本発明の第３の実施の形態の動作における、アプリケーションのテナント固有情報を複製、転送する動作を示す流れ図である。
【図１７】本発明の第４の実施の形態の構成を示すブロック図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施の形態について、図面を用いて説明する。すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
なお、各実施形態のアプリケーション構成システム１０００等を構成する各部は、制御部、メモリ、メモリにロードされたプログラム、プログラムを格納するハードディスク等の記憶ユニット、ネットワーク接続用インターフェースなどからなり、ハードウェアとソフトウェアの任意の組合せによって実現される。そして特に断りのない限り、その実現方法、装置は限定されない。
また、制御部はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などからなり、オペレーティングシステムを動作させてアプリケーション構成システム１０００等の全体を制御するとともに、例えばドライブ装置などに装着された記録媒体からメモリにプログラムやデータを読み出し、これに従って各種の処理を実行する。
記録媒体は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、半導体メモリ等であって、コンピュータプログラムをコンピュータが読み取り可能に記録する。また、コンピュータプログラムは、通信網に接続されている図示しない外部コンピュータからダウンロードされても良い。ここで、特に断りの無い限り、通信網とは、インターネットＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、公衆回線網、無線通信網、または、これらの組み合わせ等によって構成されるネットワーク等であって良い。
また、各実施形態の説明において利用するブロック図は、ハードウェア単位の構成ではなく、機能単位の構成を示している。これらの機能ブロックはハードウェア、ソフトウェアの任意の組み合わせによって実現される。また、これらの図においては、各実施形態の構成部は物理的に結合した一つの装置により実現されるよう記載されている場合もあるが、その実現手段はこれに限定されない。すなわち、アプリケーション構成システム１０００は、二つ以上の物理的に分離した装置を有線または無線で接続した複数の装置により実現されても良い。また、各構成部が物理的に分離した２つ以上の装置等として記載されている場合もあるが、その実現手段はこれに限定されない。すなわち、アプリケーション構成システム１０００は、ハードウェア、ソフトウェアを任意に組み合わせて物理的に結合した一つの装置により実現されても良い。
＜実施形態１＞
本発明の第１の実施の形態では、アプリケーションを複製して処理容量を増加させる必要が発生した際に、アプリケーションを構成する各要素を段階的に複製させていくアプリケーション構成システム１０００について説明する。
まず、第１の実施の形態の構成について説明する。
図１は、本実施の形態の構成を示すブロック図である。図１に示されるように、本発明の第１の実施の形態におけるアプリケーション構成システム１０００は、リクエスト制御部２０と、複製元アプリケーション実行部１と、複製先アプリケーション実行部２と、それらを接続するネットワーク１０とを備える。
リクエスト制御部２０は、クライアントリクエストを受信し、クライアントリクエストの対象テナントを判別して複製先アプリケーション実行部２へリクエストを振り分ける機能を有する。
複製元アプリケーション実行部１は、実行部１００と、データ取得部１０１と、複製送信制御部１０２と、データ取得受信部１０３と、テナント共通データ１１０と、テナント設定１２０と、テナント固有データ１３０と、を備える。尚、複製元アプリケーション実行部１は、コンピュータである複製元アプリケーション実行部１によって実行される実行部１００、データ取得部１０１、複製送信制御部１０２、データ取得受信部１０３の各機能を実現するアプリケーションプログラム（複製元アプリケーション１）を指す場合もある。
実行部１００は、複製元アプリケーション実行部１の業務処理が実装されているプログラムを実行する機能を有する。実行部１００は、例えばコンピュータとしての複製元アプリケーション実行部１のプロセッサである。尚、実行部１００は、プロセッサで実行されるプログラム（実行プログラム１００）を指す場合もある。
データ取得部１０１は、実行部１００が業務処理を実行するために必要な各データを取得する機能を有する。
テナント共通データ１１０は、テナントに依らず共通的に利用される業務データを保持する記憶装置であるが、以下では、テナントに依らず共通的に利用される業務データ自体を表すこともある。
テナント設定１２０は、アプリケーションのテナント毎のカスタマイズ管理情報など、テナントにより異なる処理を実行するために必要となる各設定情報を保持する記憶装置であるが、以下では、設定情報自体を表すこともある。テナント設定１２０は、例えばテナント毎に、テナントＡ用テナント設定１２１、テナントＸ用テナント設定１２２、などの設定情報を保持する。
テナント固有データ１３０は、テナント毎の業務処理の過程で参照、生成される業務データを保持する記憶装置であるが、以下ではデータ自体を表すこともある。テナント固有データ１３０は、例えばテナント毎に、テナントＡ用テナント固有データ１３１、テナントＸ用テナント固有データ１３２、などの業務データを保持する。
複製送信制御部１０２は、実行部１００と、データ取得部１０１と、テナント共通データ１１０と、テナント設定１２０と、テナント固有データ１３０とを、複製先アプリケーション２が動作する機器までネットワーク１０を介して転送する機能を有する。
データ取得受信部１０３は、複製先アプリケーション実行部２からのデータ取得要求を受信し、データ取得部１０１を使用してテナント設定１２０とテナント固有データ１３０とを取得し、取得したデータを複製先アプリケーション実行部２に送信する機能を有する。
複製先アプリケーション実行部２は、実行部２００と、データ取得部２０１と、テナント共通データ２１０と、テナント設定２２０と、テナント固有データ２３０と、複製受信制御部２０２と、データ転送判定部２０３と、データ取得転送部２０４と、を備える。尚、複製先アプリケーション実行部２は、コンピュータである複製先アプリケーション実行部２によって実行される実行部２００、データ取得部２０１、複製受信制御部２０２、データ取得判定部２０３、データ取得転送部２０４の各機能を実現するアプリケーションプログラム（複製先アプリケーション２）を指す場合もある。
実行部２００は、複製元アプリケーション実行部１によって複製され、業務処理が実装されたプログラムを実行する機能を有する。実行部２００は、例えばコンピュータとしての複製先アプリケーション実行部２のプロセッサである。尚、実行部２００は、プロセッサで実行されるプログラム（実行プログラム２００）を指す場合もある。
データ取得部２０１は、実行部２００が業務処理を実行するために必要な、複製元アプリケーション実行部１によって複製された各データを取得する機能を有する。
テナント共通データ２１０は、複製元アプリケーション実行部１によって複製され、テナントに依らず共通的に利用される業務データである。
テナント設定２２０は、複製元アプリケーション実行部１によって複製され、アプリケーションのテナント毎のカスタマイズ管理情報等、テナントにより異なる処理を実行するために必要となる各設定情報を記憶する記憶装置であるが、以下では、各設定情報自体を表すこともある。テナント設定２２０は例えば、テナント毎に、テナントＡ用テナント設定２２１、テナントＸ用テナント設定２２２、などの設定情報を保持する。
テナント固有データ２３０は、複製元アプリケーション実行部１によって複製され、テナント毎の業務処理の過程で参照、生成される業務データを記憶する記憶装置であるが、以下では、データ自体を表すこともある。テナント固有データ２３０は、例えばテナント毎に、テナントＡ用テナント固有データ２３１、テナントＸ用テナント固有データ２３２、などの業務データを保持する。テナント設定１２０、２２０、テナント固有データ１３０、２３０をまとめてテナント固有情報と呼ぶ。
複製受信制御部２０２は、実行部１００と、データ取得部１０１と、テナント共通データ１１０と、テナント設定１２０と、テナント固有データ１３０とを、複製元アプリケーション実行部１から受信し、機器に保存、実行する機能を有する。
データ転送判定部２０３は、データ取得部２０１に対するテナントＡ用テナント設定２２１やテナントＸ用テナント設定２２２への、実行部２００からのアクセス要求が、複製済みのデータに対するものか否かを判定する機能を有する。また、データ転送判定部２０３は、テナントＡ用テナント固有データ２３１やテナントＸ用テナント固有データ２３２への、実行部２００からのアクセス要求が、複製済みのデータに対するものか否かを判定する機能を有する。
データ取得転送部２０４は、未だ複製されていないデータへのアクセス要求をデータ取得受信部１０３に転送し、テナント設定１２０、テナント固有データ１３０を取得する機能を有する。
なお、ここで複製元アプリケーション１が動作する機器と、複製先アプリケーション実行部２が動作する機器は、同一機器内で、論理的に隔離された仮想マシンなどの仮想環境にそれぞれのアプリケーションが搭載されていてもよいし、異なる機器であってもよい。
次に、図２、図３、図４、図５、図６、図７、及び、図８を用いて第１の実施の形態における動作を説明する。
まず、図２を用いて、アプリケーションの共通部分を複製、転送する動作を説明する。
まず、複製送信制御部１０２は、実行部１００の複製を複製受信制御部２０２に送信する（ステップＳ１００）。次に、複製受信制御部２０２は、実行部１００の複製を受信する（ステップＳ１０１）。次に、複製受信制御部２０２は、受信した実行部１００の複製を実行部２００として図示しない記憶装置に保存する（ステップＳ１０２）。
また、複製送信制御部１０２は、データ取得部１０１の複製を複製受信制御部２０２に送信する（ステップＳ１０３）。次に、複製受信制御部２０２は、データ取得部１０１の複製を受信する（ステップＳ１０４）。次に、複製受信部２０２は、受信したデータ取得部１０１の複製をデータ取得部２０１として図示しない記憶装置に保存する（ステップＳ１０５）。
また、複製送信制御部１０２は、テナント共通データ１１０の複製を複製受信制御部２０２に送信する（ステップＳ１０６）。次に、複製受信制御部２０２は、テナント共通データ１１０の複製を受信する（ステップＳ１０７）。次に、複製受信部２０２は、受信したテナント共通データ１１０の複製を図１に示すテナント共通データ２１０として記憶装置に保存する（ステップＳ１０８）。
以上で、アプリケーションの共通部分を複製、転送する動作が終了する。ここで、ステップＳ１００からステップＳ１０２、ステップＳ１０３からステップＳ１０５、ステップＳ１０６からステップＳ１０８の３つのステップの集合は、同時に実行されても良いし、実行順番が変更されても良い。
次に、図３を用いてクライアントリクエストの複製先アプリケーション実行部２への振り分けを開始する動作について説明する。
まず、複製送信制御部１０２は、複製受信制御部２０２に、共通部転送完了メッセージを送信する（ステップＳ２００）。共通部転送完了メッセージとは、図２のフローが完了し、アプリケーションの共通部分の転送が完了したことを通知するメッセージである。共通部転送完了メッセージは、データ取得受信部１０３のポインタ情報を含む。ポインタ情報とは、データ取得受信部１０３と通信するための情報（例えばＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ））である。複製受信制御部２０２は、共通部転送完了メッセージを受信する（ステップＳ２０１）。次に、複製受信制御部２０２は、共通部転送完了メッセージに含まれるデータ取得受信部１０３の位置を示すポインタ情報をデータ取得転送部２０４に通知する（ステップＳ２０２）。
次に、データ取得転送部２０４は、データ取得受信部１０３の位置を示すポインタ情報を受信し、図１に示すデータ取得部ポインタ情報２４０として記憶装置に保存する（ステップＳ２０３）。
次に、複製受信制御部２０２は、リクエスト制御部２０にリクエスト受信可能通知を送信する（ステップＳ２０４）。リクエスト受信可能通知とは、複製先アプリケーション実行部２が、クライアントリクエストを受信可能な状態になったため、クライアントリクエストを複製先アプリケーション実行部２に振り分けるように依頼するメッセージである。リクエスト制御部２０は、リクエスト受信可能通知を受信する（ステップＳ２０５）。
次に、リクエスト制御部２０は、複製先アプリケーション実行部２（複製先のアプリケーション）をリクエスト振り分けリストに追加する（ステップＳ２０６）。ここで、リクエスト振り分けリストに追加された複製先アプリケーション実行部２（複製先のアプリケーション）は、リクエスト制御部２０が、クライアントリクエストを受信した際、負荷分散先としてリクエストを転送する候補となるアプリケーションである。
以上で、クライアントリクエストの複製先アプリケーション実行部２への振り分けを開始する動作が終了する。
次に、図４を用いてアプリケーションのテナント固有情報を複製、転送する動作を説明する。
まず、複製送信制御部１０２は、テナント設定１２０の複製を複製受信制御部２０２に送信する（ステップＳ３００）。次に、複製受信制御部２０２は、テナント設定１２０の複製を受信する（ステップＳ３０１）。次に、複製受信部２０２は、受信したテナント設定１２０の複製を図１に示すテナント設定２２０として記憶装置に保存する（ステップＳ３０２）。
次に、複製送信制御部１０２は、テナント固有データ１３０の複製を複製受信制御部２０２に送信する（ステップＳ３０３）。次に、複製受信制御部２０２は、テナント固有データ１３０の複製を受信する（ステップＳ３０４）。次に、複製受信部２０２は、受信したテナント固有データ１３０の複製を図１に示すテナント固有データ２３０として記憶装置に保存する（ステップＳ３０５）。
アプリケーション構成システム１０００は、ステップＳ３００からステップＳ３０５までのステップをテナント数分繰り返し、全てのテナント固有情報を転送する。次に、複製送信制御部１０２は、複製受信制御部２０２に、テナント固有情報転送完了メッセージを送信する（ステップＳ３０６）。テナント固有情報転送完了メッセージとは、全てのテナントについてステップＳ３００からステップＳ３０５までのフローが完了し、アプリケーションのテナント固有情報の転送が完了したことを通知するメッセージである。なお、複製送信制御部１０２は、複製受信制御部２０２が特定のテナント固有情報を全て受信した時点でリクエスト制御部２０に特定テナント固有情報転送完了メッセージを送信してもよい。ここで、どのテナント固有情報を特定のテナント固有情報とするかは、ユーザが予め決定しても良いし、テナントを特定の評価基準で重みづけし、より利用頻度が高い順に所定個のテナントのテナント固有情報としてもよい。次に、複製受信制御部２０２は、テナント固有情報転送完了メッセージを受信する（ステップＳ３０７）。
以上で、アプリケーションのテナント固有情報を複製、転送する動作を終了する。
次に、図５、図６を用いて複製先アプリケーション実行部２がクライアントリクエストを受信し、テナント毎に異なる処理をする際の動作を説明する。この動作は、図４のフローと並行して開始される。
まず、実行部２００は、あるテナントに対するクライアントリクエストを受信する（ステップＳ４００）。このクライアントリクエストは、リクエスト制御部２０によって振り分けられたものである。次に、実行部２００は、データ取得部２０１に「該当テナントのテナント設定」（テナントＡ用テナント設定２２１やテナントＸ用テナント設定２２２など）の取得を要求する（ステップＳ４０１）。次に、データ取得部２０１は、データ転送判定部２０３に該当テナントのテナント設定の有無を確認する（ステップＳ４０２）。次に、データ転送判定部２０３は、該当テナントのテナント設定が転送済みか否かを判定する（ステップＳ４０３）。該当テナントのテナント設定が未転送の場合、データ転送判定部２０３は、データ取得部２０１に「未転送」を送信し（ステップＳ４０４）、図６の処理フローを実行する。
一方、該当テナントのテナント設定が転送済みの場合、データ転送判定部２０３は、データ取得部２０１に「転送済」を送信する（ステップＳ４１０）。データ取得部２０１は、テナント設定２２０から、該当テナントのテナント設定を取得する（ステップＳ４１１）。次に、データ取得部２０１は、実行部２００に、該当テナントのテナント設定を送信する（ステップＳ４１２）。
次に、図６を用いて図５のステップＳ４０４を実行後の動作を説明する。
まず、データ取得転送部２０４は、該当テナントのテナント設定取得要求をデータ取得受信部１０３に転送する（ステップＳ５００）。次に、データ取得受信部１０３は、データ取得部１０１に該当テナントのテナント設定の取得を要求する（ステップＳ５０１）。次に、データ取得部１０１は、テナント設定１２０から、該当テナントのテナント設定を取得する（ステップＳ５０２）。次に、データ取得部１０１は、該当テナントのテナント設定をデータ取得受信部１０３に送信する（ステップＳ５０３）。次に、データ取得受信部１０３は、該当テナントのテナント設定をデータ取得転送部２０４に送信する（ステップＳ５０４）。次に、データ取得転送部２０４は、データ取得部２０１に該当テナントのテナント設定を送信し、データ取得部２０１は実行部２００に、該当テナントのテナント設定を送信する（ステップＳ５０５）。
以上で、複製先アプリケーション実行部２がクライアントリクエストを受信し、テナント毎に異なる処理をする際の動作を終了する。
次に、図７、図８を用いて、実行部２００が、その処理中にテナント固有データを取得する場合の動作を説明する。
この動作は、図５、６のフローが実行された後であれば、図４のフローと同時に実行されてもよい。
まず、実行部２００は、データ取得部２０１に「該当テナントのテナント固有データ」（テナントＡ用固有データ２３１やテナントＸ用固有データ２３２など）の取得を要求する（ステップＳ６００）。次に、データ取得部２０１は、データ転送判定部２０３に該当テナントのテナント固有データの有無を確認する（ステップＳ６０１）。次に、データ転送判定部２０３は、該当テナントのテナント固有データが転送済みか否かを判定する（ステップＳ６０２）。該当テナントのテナント固有データが未転送の場合、データ転送判定部２０３は、データ取得部２０１に「未転送」を送信し（ステップＳ６０３）、図８の処理フローを実行する。
一方、該当テナントのテナント固有データが転送済みの場合、データ転送判定部２０３は、データ取得部２０１に「転送済」を送信する（ステップＳ６１０）。
次に、データ取得部２０１は、テナント固有データ２３０から、該当テナントのテナント固有データを取得する（ステップＳ６１１）。次に、データ取得部２０１は、実行部２００に、該当テナントのテナント固有データを送信する（ステップＳ６１２）。
次に、図８を用いてステップＳ６０３を実行後の動作を説明する。
まず、データ取得転送部２０４は、該当テナントのテナント固有データ取得要求をデータ取得受信部１０３に転送する（ステップＳ７００）。この時、データ取得転送部２０４は、データ取得受信部１０３への通信先をデータ取得部ポインタ情報２４０から取得する。次に、データ取得受信部１０３は、データ取得部１０１に該当テナントのテナント固有データ取得を要求する（ステップＳ７０１）。次に、データ取得部１０１は、テナント固有データ１３０から、該当テナントのテナント固有データを取得する（ステップＳ７０２）。次に、データ取得部１０１は、該当テナントのテナント固有データをデータ取得受信部１０３に送信する（ステップＳ７０３）。次に、データ取得受信部１０３は、該当テナントのテナント固有データをデータ取得転送部２０４に送信する（ステップＳ７０４）。次に、データ取得部２０１は、実行部２００に、該当テナントのテナント固有データを送信する（ステップＳ７０５）。
以上で、実行部２００が、その処理中にテナント固有データを取得する場合の動作を終了する。
本実施の形態では、アプリケーション構成システム１０００は、負荷分散のために複製した全てのテナント固有情報の転送完了を待たずリクエスト受信を開始する。そのため、アプリケーション構成システム１０００は、大量のテナントをホストし、そのテナント固有情報であるテナント設定、テナント固有データ量が膨大となった場合でも即時性の高い負荷分散が可能となる。
＜実施形態２＞
次に、本発明の第２の実施の形態について説明する。本発明の第２の実施の形態では、テナント固有情報の複製において、その利用頻度から重みづけを行い、複製順序を変化させるアプリケーション構成システム１０００について説明する。
図９を参照して、本実施の形態における構成を説明する。本実施の形態におけるアプリケーション構成システム１０００は、第１の実施の形態の構成に加え、リクエスト記憶部３０を有する。
リクエスト記録部３０は、クライアントリクエストがどのテナントに対するものであるかを記録する機能を有する。
本実施の形態における動作を説明する。
まず、図１０を用いて、クライアントリクエストをリクエスト制御部２０が受信する際の動作について説明する。
まず、リクエスト制御部２０は、クライアントリクエストを受信する（ステップＳ８００）。次に、リクエスト制御部２０は、クライアントリクエストの対象テナントを判別する（ステップＳ８０１）。次に、リクエスト制御部２０は、リクエスト情報をリクエスト記録部３０に通知する（ステップＳ８０２）。ここで、リクエスト情報とは、クライアントリクエストに含まれる情報で、例えば、対象テナント、時間、リクエストのＵＲＬ、リクエスト元の機器のＩＰアドレス、リクエストの認証情報などである。次に、リクエスト記録部３０は、リクエスト情報を、例えば図９に示すリクエスト情報３１として記録装置に保存する（ステップＳ８０３）。次に、リクエスト制御部２０は、クライアントリクエストを複製先アプリケーション実行部２に転送する（ステップＳ８０４）。なお、ステップＳ８０３とステップＳ８０４は、同時に実行されてもよい。
以上で、クライアントリクエストをリクエスト制御部２０が受信する際の動作を終了する。
次に、第１の実施の形態において図４を用いて説明した、複製先アプリケーション実行部２がクライアントリクエストを受信し、テナント毎に異なる処理をする際の動作に対応する本実施の形態の動作について図１１を用いて説明する。
まず、複製送信制御部１０２は、リクエスト記録部３０にテナントのリストを要求する（ステップＳ９００）。リクエスト記録部３０は、テナントのリストを送信する（ステップＳ９０１）。このときに送信するテナントのリストは、リクエスト記録部３０がリクエスト情報３１を用いて生成する順序付リストである。リクエスト情報３１には、過去に蓄積されたクライアントリクエストが含まれていても良い。テナントのリストの生成方法は、テナントを特定の評価基準で重みづけし、より利用頻度が高い順にソートする方法が知られている。リクエスト記録部３０は、例えばテナントに対する過去のリクエストの受信数を用いてテナントをソートしても良いし、あわせて時間の情報なども用いることにより、より正確にテナントの利用頻度を評価する手法を用いてテナントをソートしても良い。リクエスト記録部３０は、この重み付けの手法としてその他の既存の方法を用いてもよい。
以降の動作と第１の実施の形態における動作との相違点を説明する。第１の実施の形態では、順序付けせずにテナント数分、図４のステップＳ３００からステップＳ３０５の動作を繰り返していた。一方、本実施の形態では、図１１のステップＳ９０１で得た、順序付きテナントのリストの順でステップＳ３００からステップＳ３０５を繰り返し実行する。
複製送信制御部１０２は、複製受信制御部２０２が特定のテナント固有情報を全て受信した時点でリクエスト制御部２０に特定テナント固有情報転送完了メッセージを送信してもよい。ここで、どのテナント固有情報を特定のテナント固有情報とするかは、ユーザが予め定めても良いし、上述したように、テナントを特定の評価基準で重みづけし、より利用頻度が高い順に所定個のテナントを選択する方法を用いて決定しても良い。また、リクエスト制御部２０は、特定テナント固有情報転送完了メッセージを受信すると、テナント固有情報複製が完了したテナントへのクライアントリクエストのみを複製先アプリケーション実行部２へ転送するようにしてもよい。
本実施の形態におけるアプリケーション構成システム１０００は、頻繁に利用されるテナントのテナント固有情報を優先して複製することにより、より負荷が集中しやすいテナントを早く負荷分散できるようになる。
また、本実施の形態におけるアプリケーション構成システム１０００は、特定のテナント固有情報を複製先アプリケーション実行部に転送した時点でクライアントリクエストを処理できる。そのため、全ての配備対象物の配備が完了するまでクライアントリクエストを処理できないという問題点を解決することができる。
＜実施形態３＞
次に、本発明の第３の実施の形態について説明する。本発明の第３の実施の形態におけるアプリケーション構成システム１０００は、複製先アプリケーション実行部２でテナント固有データが未複製の場合、複製元アプリケーション実行部１からテナント固有データ１３０を取得すると同時に、取得したテナント固有データ１３０の一部を複製済みとして管理し、段階的にテナント固有データを複製する。
まず、本実施の形態の構成について説明する。図１２は、本実施の形態の構成を示すブロック図である。図１２では、アプリケーション構成システム１０００は、第１の実施の形態の構成に加え、データ差分管理部１４０を備える。
データ差分管理部１４０は、実行部２００が、その処理中にテナント設定１２０を取得する場合の動作（図６参照）によって複製された、テナント設定１２０の一部のデータ（テナント設定１２０の部分データ）の複製履歴を記録する機能を有する。また、データ差分管理部１４０は、アプリケーションのテナント固有情報を複製、転送する動作（図４のステップＳ３００からステップＳ３０５）によってテナント設定１２０全体を複製する際に、既に複製済みのテナント設定１２０の部分データを除いたテナント設定１２０を抽出する機能を有する。また、データ差分管理部１４０は、実行部２００が、その処理中にテナント固有データ１３０を取得する場合の動作（図８参照）によって複製された、テナント固有データ１３０の一部のデータ（テナント固有データ１３０の部分データ）の複製履歴を記録する機能を有する。また、データ差分管理部１４０は、アプリケーションのテナント固有情報を複製、転送する動作（図４のステップＳ３００からステップＳ３０５）によってテナント固有データ１３０全体を複製する際に、既に複製済みのテナント固有データ１３０の部分データを除いたテナント固有データ１３０を抽出する機能を有する。
次に、本実施の形態における動作を説明する。
図１３を用いて、複製先アプリケーション実行部２がクライアントリクエストを受信し、テナント毎に異なる処理をする際の動作について説明する。
まず、図１３におけるステップＳ５００からステップＳ５０４までの動作は、上述した第１の実施の形態における図６のステップＳ５００からステップＳ５０４までの動作と同一であるから説明を省略する。次に、データ取得受信部１０３は、データ取得転送部２０４に送信したテナント設定１２０の部分データのキー情報（テナント設定１２０のキー情報）を、差分管理部１４０に通知する（ステップＳ１０００）。ここでテナント設定１２０の部分データのキー情報（テナント設定１２０のキー情報）とは、テナント設定１２０全体から該当する部分データを一意に抽出できる情報であり、多くの場合、テナント設定１２０はデータベースに格納されるため、そのレコードキー等である。
次に、差分管理部１４０は、通知されたテナント設定のキー情報を、例えばデータ差分情報１４１として記録装置に保存する（ステップＳ１００１）。その後は、図６のステップＳ５０５と同様に、データ取得部２０１は、実行部２００に、該当テナントのテナント設定を送信する（ステップＳ５０５）。
次に、図１４を用いて、実行部２００が、その処理中にテナント固有データ１３０を取得する場合の動作について説明する。
まず、ステップＳ７００からステップＳ７０４までの動作は第１の実施の形態における図８のステップＳ７００からステップＳ７０４までの動作と同一であるから説明を省略する。次に、データ取得受信部１０３は、データ取得部２０４に送信したテナント固有データ１３０の部分データのキー情報（テナント固有データ１３０のキー情報）を、差分管理部１４０に通知する（ステップＳ１１００）。ここでテナント固有データ１３０の部分データのキー情報（テナント固有データ１３０のキー情報）とは、テナント固有データ全体から該当する部分データを一意に抽出できる情報であり、例えば、データベースに格納していたデータであれば、そのレコードキーであり、画像ファイル等のリソースであればそのファイル名などである。
次に、差分管理部１４０は、通知されたテナント固有データのキー情報を、例えばデータ差分情報１４１として記録装置に保存する（ステップＳ１１０１）。その後は、図８のステップＳ７０５と同様に、データ取得部２０１は、実行部２００に、該当テナントのテナント固有データを送信する（ステップＳ７０５）。
次に、図１５、図１６を用いて、アプリケーションのテナント固有情報を複製、転送する動作について説明する。
まず、複製送信制御部１０２は、テナント設定１２０のキー情報をデータ差分管理部１４０に送信し、送信対象データを問い合わせる（ステップＳ１２００）。ここで、複製送信制御部１０２は、テナント設定１２０のキー情報を含む、テナント毎に必要な固有情報の一覧あるいは全テナントのテナント固有情報を保持している図示しない記憶部から、テナント設定１２０のキー情報を取得してデータ差分管理部１４０に送信してもよい。次に、データ差分管理部１４０は、テナント設定１２０のキー情報を受信する（ステップＳ１２０１）。次に、データ差分管理部１４０は、データ差分情報１４１に記録された複製済みテナント設定１２０の部分データを除く複製対象のテナント設定のキー情報を抽出する（ステップＳ１２０２）。次に、データ差分管理部１４０は、複製対象のテナント設定１２０のキー情報を複製送信制御部１０２に送信する（ステップＳ１２０３）。次に、複製送信制御部１０２は、複製対象のテナント設定１２０のキー情報を受信する（ステップＳ１２０４）。次に、複製送信制御部１０２は、テナント設定１２０のうち複製対象のデータ（未複製のデータ）のみを複製受信制御部２０２に送信する（ステップＳ１２０５）。次に、複製受信制御部２０２は、テナント設定１２０の複製を受信し（ステップＳ３０１）、受信したテナント設定１２０の複製をテナント設定２２０として記憶装置に保存する（ステップＳ３０２）。
次に、複製送信制御部１０２は、テナント固有データ１３０のキー情報をデータ差分管理部１４０に送信し、送信対象データを問い合わせる（ステップＳ１２０６）。次に、データ差分管理部１４０は、テナント固有データ１３０のキー情報を受信する（ステップＳ１２０７）。次に、データ差分管理部１４０は、データ差分情報１４１に記録された複製済みテナント固有データ１３０の部分データを除く複製対象のテナント固有データ１３０のキー情報を抽出する（ステップＳ１２０８）。次に、データ差分管理部１４０は、複製対象のテナント固有データ１３０のキー情報を複製送信制御部１０２に送信する（ステップＳ１２０９）。次に、複製送信制御部１０２は、複製対象のテナント固有データ１３０のキー情報を受信する（ステップＳ１２１０）。次に、複製送信制御部１０２は、テナント固有データ１３０のうち複製対象のデータ（未複製のデータ）のみを複製受信制御部２０２に送信する（ステップＳ１２１１）。次に、複製受信制御部２０２は、テナント固有データ１３０のうち複製対象データのみを受信し（ステップＳ３０４）、複製受信部２０２は、当該データをテナント固有データ２３０として記憶装置に保存する（ステップＳ３０５）。以下は第１の実施の形態の動作（図４参照）と同様に複製送信制御部１０２は複製受信制御部２０２にテナント固有情報転送完了メッセージを送信し（ステップＳ３０６）、複製受信制御部２０２はテナント固有情報転送完了メッセージを受信する（ステップＳ３０７）。
本実施の形態におけるアプリケーション構成システム１０００は、複製先アプリケーション実行部２にテナント毎に異なるテナント設定１２０やテナント固有データ１３０が未複製の場合、複製元アプリケーション実行部１にそれらのデータの取得を依頼すると同時に、取得した部分データを複製済みデータとして記録して利用することにより、アプリケーション実行部間の通信回数を削減することができる。
＜実施形態４＞
次に、本発明の第４の実施の形態について説明する。本発明の第４の実施の形態におけるアプリケーション構成システム１０００は、実行部２００とデータ取得部２０１とを含む複製先アプリケーション実行部２を有する。これらの構成、動作については上述したとおりであるから説明を省略する。
本実施の形態によれば、第１のアプリケーション実行手段から第２のアプリケーション実行手段に複製されるテナント共通データとテナント固有情報とを記憶手段に保存させる複製受信制御手段が前記テナント共通データの複製を前記第１のアプリケーション実行手段から取得した以降、リクエスト制御手段から前記第２のアプリケーション実行手段へ転送される、端末から入力した要求情報に応じて処理を実行する実行手段と、前記実行手段が前記テナント固有情報を参照する際、前記テナント固有情報が前記第２のアプリケーション実行手段に複製済みである場合には複製済みの前記テナント固有情報を取得し、複製済みでない場合には前記第１のアプリケーション実行手段の前記テナント固有情報を取得して前記実行手段に出力するデータ取得手段と、を備える前記第２のアプリケーション実行手段を含むアプリケーション構成システムが提供される。
本実施の形態のアプリケーション構成システム１０００は、負荷分散のために複製した全てのテナント固有情報の転送完了を待たずリクエスト受信を開始する。したがって、全ての配備対象物の配備が完了する前に、クライアントリクエストを処理可能とするアプリケーション構成システム、方法、及び、プログラムが提供される。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
この出願は、２０１０年９月６日に出願された日本出願特願２０１０−１９８９５６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０００９】
２０      リクエスト制御部
３０      リクエスト記録部
１００    実行部
１０１    データ取得部
１０２    複製送信制御部
１０３    データ取得受信部
１１０    テナント共通データ
１２０    テナント設定
１３０    テナント固有データ
１４０    データ差分管理部
１４１    データ差分情報
２００    実行部
２０１    データ取得部
２０２    複製受信制御部
２０３    データ転送判定部
２０４    データ取得転送部
２１０    テナント共通データ
２２０    テナント設定
２３０    テナント固有データ
１０００  アプリケーション構成システム
【図１】
2012033110.tif 000003
【図２】
2012033110.tif 000004
【図３】
2012033110.tif 000005
【図４】
2012033110.tif 000006
【図５】
2012033110.tif 000007
【図６】
2012033110.tif 000008
【図７】
2012033110.tif 000009
【図８】
2012033110.tif 000010
【図９】
2012033110.tif 000011
【図１０】
2012033110.tif 000012
【図１１】
2012033110.tif 000013
【図１２】
2012033110.tif 000014
【図１３】
2012033110.tif 000015
【図１４】
2012033110.tif 000016
【図１５】
2012033110.tif 000017
【図１６】
2012033110.tif 000018
【図１７】
2012033110.tif 000019
【国際調査報告】
2012033110.tif 000020
2012033110.tif 000021
2012033110.tif 000022
2012033110.tif 000023