(57)【要約】トランザクション処理要求を発行するクライアント装置と、前記クライアント装置によって発行されたトランザクション処理要求に対応するトランザクション処理を実行するサーバ装置と、を備えた計算機システムであって、前記サーバ装置は、前記トランザクション処理要求の種別毎に、当該トランザクション処理要求の識別情報と、当該トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソースへの接続パスとを対応付けたトランザクション管理テーブルと、前記クライアント装置によって発行されたトランザクション処理要求を受信する受信部と、前記受信部によってトランザクション処理要求を受信する度に、前記トランザクション管理テーブルを参照し、受信したトランザクション処理要求の種別に対応する前記接続パスを用いて、当該接続パスに対応する他のリソースに接続する接続管理部とを備える。
2012063301.tif 000002
【特許請求の範囲】
【請求項１】
トランザクション処理要求を発行するクライアント装置と、前記クライアント装置によって発行されたトランザクション処理要求に対応するトランザクション処理を実行するサーバ装置と、を備えた計算機システムであって、
前記サーバ装置は、
前記トランザクション処理要求の種別毎に、当該トランザクション処理要求の識別情報と、当該トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソースへの接続パスとを対応付けたトランザクション管理テーブルと、
前記クライアント装置によって発行されたトランザクション処理要求を受信する受信部と、
前記受信部によってトランザクション処理要求を受信する度に、前記トランザクション管理テーブルを参照し、受信したトランザクション処理要求の種別に対応する前記接続パスを用いて、当該接続パスに対応する他のリソースに接続する接続管理部と、
を備えたことを特徴とする計算機システム。
【請求項２】
前記接続管理部は、前記他のリソースに接続する場合において、現在所定のリソースとの間で接続が確立していて、且つ、当該接続に係る接続パスが当該トランザクション処理要求の種別に対応しない場合、
現在確立している接続を破棄し、当該トランザクション処理要求の種別に対応する前記接続パスを用いて、当該接続パスに対応する他のリソースに接続することを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記接続管理部は、前記他のリソースに接続する場合において、現在所定のリソース群との間で複数の接続が確立していて、且つ、当該複数の接続に係る各々の接続パスが当該トランザクション処理要求の種別に対応しない場合、
現在確立している接続のうち、最後の利用からの経過時間が最も長い接続を破棄し、当該トランザクション処理要求の種別に対応する前記接続パスを用いて、当該接続パスに対応する他のリソースに接続することを特徴とする請求項１に記載の計算機システム。
【請求項４】
前記接続管理部は、前記他のリソースに接続する場合において、現在所定のリソースとの間で接続が確立していて、且つ、当該接続に係る接続パスが当該トランザクション処理要求の種別に対応しない場合、
現在確立している接続を保持し、当該トランザクション処理要求の種別に対応する前記接続パスを用いて、当該接続パスに対応する他のリソースに新たに接続することを特徴とする請求項１に記載の計算機システム。
【請求項５】
前記トランザクション管理テーブルは、前記接続すべき他のリソースが複数ある場合に、当該複数の他のリソースの各々の負荷情報を保持し、
前記接続管理部は、前記受信したトランザクション処理要求の種別に対応する複数の他のリソースのうちの、最も負荷が低い他のリソースへの接続パスを用いて、当該最も負荷が低い他のリソースに接続することを特徴とする請求項１に記載の計算機システム。
【請求項６】
前記トランザクション管理テーブルは、前記接続すべき他のリソースが複数ある場合に、当該複数の他のリソースの各々のリソース専有度情報を保持し、
前記接続管理部は、前記受信したトランザクション処理要求の種別に対応する複数の他のリソースのうちの、最もリソース専有度が小さい他のリソースへの接続パスを用いて、当該最もリソース専有度が小さい他のリソースに接続することを特徴とする請求項１に記載の計算機システム。
【請求項７】
前記トランザクション管理テーブルは、前記トランザクション処理要求の種別及び処理対象データ毎に、当該トランザクション処理要求の識別情報と、当該トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソースへの接続パスとを対応付け、
前記接続管理部は、前記受信したトランザクション処理要求の種別に対応し、且つ、当該トランザクション処理要求の処理対象データが格納されている他のリソースへの接続パスを用いて、当該接続パスに対応する他のリソースに接続することを特徴とする請求項１に記載の計算機システム。
【請求項８】
前記他のリソースは、データベースサーバであり、前記サーバ装置は、前記データベースサーバに接続してトランザクション処理を実行するアプリケーションサーバであることを特徴とする請求項１に記載の計算機システム。
【請求項９】
トランザクション処理要求を発行するクライアント装置と、前記クライアント装置によって発行されたトランザクション処理要求に対応するトランザクション処理を実行するサーバ装置と、を備えた計算機システムにおけるマルチテナント制御方法であって、
前記サーバ装置は、
前記トランザクション処理要求の種別毎に、当該トランザクション処理要求の識別情報と、当該トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソースへの接続パスとを対応付けたトランザクション管理テーブルを保持し、
前記方法は、
前記サーバ装置が、
前記クライアント装置によって発行されたトランザクション処理要求を受信する手順と、
前記受信する手順によってトランザクション処理要求を受信する度に、前記トランザクション管理テーブルを参照し、受信したトランザクション処理要求の種別に対応する前記接続パスを用いて、当該接続パスに対応する他のリソースに接続する手順と、
を含むことを特徴とするマルチテナント制御方法。
【請求項１０】
トランザクション処理要求を発行するクライアント装置と、前記クライアント装置によって発行されたトランザクション処理要求に対応するトランザクション処理を実行するサーバ装置と、を備えた計算機システムにおいて実行されるマルチテナント制御プログラムであって、
前記サーバ装置は、
前記トランザクション処理要求の種別毎に、当該トランザクション処理要求の識別情報と、当該トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソースへの接続パスとを対応付けたトランザクション管理テーブルを保持し、
前記プログラムは、
前記クライアント装置によって発行されたトランザクション処理要求を受信する手順と、
前記受信する手順によってトランザクション処理要求を受信する度に、前記トランザクション管理テーブルを参照し、受信したトランザクション処理要求の種別に対応する前記接続パスを用いて、当該接続パスに対応する他のリソースに接続する手順と、
を前記サーバ装置に実行させることを特徴とするマルチテナント制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム、マルチテナント制御方法及びマルチテナント制御プログラムに関する。
【背景技術】
【０００２】
複数のユーザ企業が同じ業務システムを共有して利用する、いわゆるマルチテナント方式のシステムが知られている（非特許文献１、非特許文献２参照）。【０００３】
マルチテナント方式のシステムを利用する各ユーザ企業は、他のユーザ企業と業務システムを共有することによって、単独で自身の業務システムを構築する場合に比べて、計算資源や運用に係るコストを抑えることができる。このようなマルチテナント方式のシステムに関連し、各種発明がなされている（特許文献１、特許文献２参照）。【０００４】
特許文献１には、複数のユーザ企業にそれぞれ独立なリソース（計算資源）を割り当て、負荷に応じてその割り当てを自動的にリアルタイムに変更する技術が開示されている。また特許文献２には、テスト環境を本番環境に適合させることを目的として、テスト用設定情報を本番用設定情報に変更する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２４１９２号公報
【特許文献２】特開２０１０−８６１１０号公報
【非特許文献】
【０００６】
【非特許文献１】Chang Jie Guo, Wei Sun, Ying Huang, Zhi Hu Wang, Bo Gao，"A Framework for Native Multi-Tenancy Application Development and Management"，The 9th IEEE International Conference on E-Commerce Technology and The 4th IEEE International Conference on Enterprise Computing, E-Commerce and E-Services(CEC-EEE 2007).
【非特許文献２】Harry Katzan,Jr，"Cloud Software Service: Concepts, Technology, Economics"，Service Science 1(4),pp.256-269(2009).
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、特許文献１に開示された技術では、例えば企業Ａから企業Ｂにリソースの割り当て先を変更する場合、企業Ａに割り当てていたリソースを一度未割り当て状態にした後、企業Ｂに割り当てる。【０００８】
しかしながら、このようにリソースを一度未割り当て状態にしているため、各ユーザ企業に対して柔軟かつ迅速にリソースを割り当てることができない課題があった。【０００９】
また、企業Ａに割り当てていたリソース（例えばアプリケーションサーバ、以下「ＡＰサーバ」という。）を、未割り当て状態にすることなく、企業Ｂに割り当てる場合、以下に説明する問題が生じる。すなわち、この場合、このＡＰサーバ上では、企業Ａ向けの処理要求と企業Ｂ向けの処理要求が混在し得る。そうすると、特に企業Ａ向けの処理と企業Ｂ向けの処理とがそれぞれ異なる他のリソース（例えばデータベースサーバ。以下「ＤＢサーバ」という。）に接続する場合、このＡＰサーバは企業Ａ向けの処理要求に対してエラー応答し、企業Ａ向けのサービスレベルを低下させてしまうことになる。【００１０】
その他、特許文献１に開示された技術では、ＡＰサーバとＤＢサーバの間に負荷分散機を設ける複雑な構成となっていた。【００１１】
本発明は、上述した課題を考慮したものであって、簡易な構成で柔軟かつ迅速にリソースの割り当てを変更することが可能な計算機システム、マルチテナント制御方法及びマルチテナント制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、トランザクション処理要求を発行するクライアント装置と、前記クライアント装置によって発行されたトランザクション処理要求に対応するトランザクション処理を実行するサーバ装置と、を備えた計算機システムであって、前記サーバ装置は、前記トランザクション処理要求の種別毎に、当該トランザクション処理要求の識別情報と、当該トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソースへの接続パスとを対応付けたトランザクション管理テーブルと、前記クライアント装置によって発行されたトランザクション処理要求を受信する受信部と、前記受信部によってトランザクション処理要求を受信する度に、前記トランザクション管理テーブルを参照し、受信したトランザクション処理要求の種別に対応する前記接続パスを用いて、当該接続パスに対応する他のリソースに接続する接続管理部と、を備えたことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、簡易な構成で柔軟かつ迅速にリソースの割り当てを変更することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態のＡＰサーバのアプリケーション共有方式における業務処理の概念図である。
【図２】本発明の第１の実施形態のマルチテナント方式の計算機システムの構成例を示す図である。
【図３】本発明の第１の実施形態のＡＰサーバの構成例を示すブロック図である。
【図４】本発明の第１の実施形態のＤＢサーバの構成例を示すブロック図である。
【図５】本発明の第１の実施形態のマルチテナント制御方法の原理を説明する図である。
【図６】本発明の第１の実施形態の計算機の構成例を示すブロック図である。
【図７Ａ】本発明の第１の実施形態のトランザクション管理テーブルの生成方法を説明する第１の図である。
【図７Ｂ】本発明の第１の実施形態のトランザクション管理テーブルの生成方法を説明する第２の図である。
【図７Ｃ】本発明の第１の実施形態のトランザクション管理テーブルの生成方法を説明する第３の図である。
【図７Ｄ】本発明の第１の実施形態のトランザクション管理テーブルの生成方法を説明する第４の図である。
【図８】本発明の第１の実施形態の業務ＵＡＰの処理手順を示すフローチャートである。
【図９】本発明の第１の実施形態のＤＢサーバ接続管理部の動作を説明するための図である。
【図１０Ａ】本発明の第１の実施形態のサーバ再接続の処理手順の第１の例を示すフローチャートである。
【図１０Ｂ】本発明の第１の実施形態のサーバ再接続の処理手順の第２の例を示すフローチャートである。
【図１０Ｃ】本発明の第１の実施形態のサーバ再接続の処理手順の第３の例を示すフローチャートである。
【図１１】本発明の第２の実施形態のマルチテナント方式の計算機システムの構成例を示す図である。
【図１２】本発明の第２の実施形態のＤＢサーバの構成例を示すブロック図である。
【図１３】本発明の第２の実施形態のＤＢサーバ接続管理部の動作を説明するための図である。
【図１４Ａ】本発明の第２の実施形態のトランザクション管理テーブルの別の例を示す図である。
【図１４Ｂ】本発明の第２の実施形態のトランザクション管理テーブルの別の例を示す図である。
【図１５Ａ】本発明の第２の実施形態のサーバ再接続の処理手順の第１の例を示すフローチャートである。
【図１５Ｂ】本発明の第２の実施形態のサーバ再接続の処理手順の第２の例を示すフローチャートである。
【図１５Ｃ】本発明の第２の実施形態のサーバ再接続の処理手順の第３の例を示すフローチャートである。
【図１６】本発明の第３の実施形態の計算機の構成例を示すブロック図である。
【図１７Ａ】本発明の各実施形態のトランザクション処理要求の種別の特定方法の第１の例を説明するための図である。
【図１７Ｂ】本発明の各実施形態のトランザクション処理要求の種別の特定方法の第２の例を説明するための図である。
【図１８Ａ】本発明の各実施形態のＤＢサーバ接続管理部の呼出方法の第１の例を説明するための図である。
【図１８Ｂ】本発明の各実施形態のＤＢサーバ接続管理部を呼出方法の第２の例を説明するための図である。
【図１９Ａ】本発明の各実施形態のＡＰサーバの構成の別の例を示すブロック図である。
【図１９Ｂ】本発明の各実施形態のＡＰサーバの構成の別の例を示すブロック図である。
【図２０Ａ】本発明の各実施形態のＤＢサーバの構成の別の例を示すブロック図である。
【図２０Ｂ】本発明の各実施形態のＤＢサーバの構成の別の例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、図面を参照して説明する。
【００１６】
図１は、本発明の実施形態のＡＰサーバ１０３のアプリケーション共有方式における業務処理の概念図である。このＡＰサーバ１０３は、複数のユーザ企業（以下、「テナント」という。）によって利用可能なマルチテナント方式のサーバ装置である。このＡＰサーバ１０３は、ＡＰ共通処理部１０４、カスタマイズ部１０５、ミドルウェア１０６、ＯＳ（Operating System）１０７を備える。
【００１７】
ＡＰ共通処理部１０４は、テナント間で共通の処理を実行するアプリケーションプログラムである。このＡＰ共通処理部１０４は、まず各テナント（不図示）からトランザクションの処理要求１０１を受信する。
【００１８】
カスタマイズ部１０５は、テナント毎にカスタマイズされ、各テナント向けの処理を実行するアプリケーションプログラムである。このカスタマイズ部１０５は、テナントα向けの処理を実行するテナントα向け処理部１０５ａ、テナントβ向けの処理を実行するテナントβ向け処理部１０５ｂを含む。
【００１９】
例えば処理要求１０１がテナントαによって発行された場合、テナントα向け処理部１０５ａが処理を実行する。一方、処理要求１０１がテナントβによって発行された場合、テナントβ向け処理部１０５ｂが処理を実行する。
【００２０】
ＡＰ共通処理部１０４は、カスタマイズ部１０５によって処理された結果（処理結果１０２）を、応答送信先に返す。
【００２１】
以上のようなＡＰ共通処理部１０４、カスタマイズ部１０５は、複数のテナントが共有して利用するミドルウェア１０６及びＯＳ１０７上で動作する。
【００２２】
（第１の実施形態）
図２は、本発明の第１の実施形態のマルチテナント方式の計算機システム１の構成例を示す図である。この計算機システム１は、テナントα、β用のマルチテナント環境である。
【００２３】
図２に示す計算機システム１は、端末２０６ａ、２０６ｂ、ロードバランサ２０９、複数のＷｅｂサーバ２１０ａ、２１０ｂ、複数のＡＰサーバ２１１ａ、２１１ｂ、複数のＤＢサーバ２１２ａ、２１２ｂを備える。
【００２４】
端末２０６ａは、テナントαのユーザが利用するクライアント端末（コンピュータ装置）である。一方、端末２０６ｂは、テナントβのユーザが利用するクライアント端末である。これら端末２０６ａ、２０６ｂは、ネットワーク回線２０７を介してＷＡＮ（Wide Area Network）２０８に接続される。端末２０６ａ、２０６ｂは、ユーザの指示に基づいて、トランザクションの処理要求（ＤＢサーバ２１２ａ、２１２ｂのデータ参照等の処理要求）を発行する。
【００２５】
ロードバランサ２０９は、端末２０６ａ、２０６ｂによって発行されたトランザクションの処理要求を、複数のＷｅｂサーバ２１０ａ、２１０ｂに対して均等に割り振る負荷分散装置である。
【００２６】
Ｗｅｂサーバ２１０ａは、テナントαのユーザによる要求を処理するテナントα用のＷｅｂサーバ装置である。一方、Ｗｅｂサーバ２１０ｂは、テナントβのユーザによる要求を処理するテナントβ用のＷｅｂサーバ装置である。
【００２７】
ＡＰサーバ２１１ａは、Ｗｅｂサーバ２１０ａの要求を処理するテナントα用のアプリケーションサーバ装置である。一方、ＡＰサーバ２１１ｂは、Ｗｅｂサーバ２１０ｂの要求を処理するテナントβ用のアプリケーションサーバ装置である。ＡＰサーバ２１１ａ、２１１ｂの構成については後述する。
【００２８】
ＤＢサーバ２１２ａは、テナントα用のデータベースサーバである。ＡＰサーバ２１１ａのみが、このＤＢサーバ２１２ａに接続可能である。一方、ＤＢサーバ２１２ｂは、テナントβ用のデータベースサーバである。ＡＰサーバ２１１ｂのみが、このＤＢサーバ２１２ｂに接続可能である。ＤＢサーバ２１２ａ、２１２ｂの構成については後述する。
【００２９】
以上に示す構成により、計算機システム１では、端末２０６ａ、２０６ｂがトランザクションの処理要求に係る電文を発行する。発行された電文は、ネットワーク回線２０７等を通って、対応するＷｅｂサーバ２１０ａ、２１０ｂに送信される。電文を受信したＷｅｂサーバ２１０ａ、２１０ｂは、対応するＡＰサーバ２１１ａ、２１１ｂに送信する。その後、ＡＰサーバ２１１ａ、２１１ｂは、それぞれＤＢサーバ２１２ａ、２１２ｂに接続して、受信した電文に対応するトランザクション処理を実行する。
【００３０】
図３は、本発明の第１の実施形態のＡＰサーバ２１１ａ（２１１ｂ）の構成例を示すブロック図である。
【００３１】
図３に示すように、ＡＰサーバ２１１ａ（２１１ｂ）は、ＯＳ１０７、ミドルウェア１０６を各テナント間で共有し、ＡＰ１０４の一部又は全部を各テナント間で共有する。ＡＰ１０４は、各テナントα、β向け処理部１０５ａ、１０５ｂを含む。このような構成は、コストメリットや、ＡＰの保守性の観点で有効である。
【００３２】
このような構成により、ＡＰサーバ２１１ａ（２１１ｂ）は、テナントα、βからのトランザクションの処理要求を受け付ける共通の入口として機能し、テナントα、β向けのトランザクションの処理要求の両方を実行することができる。つまり、ＡＰサーバ２１１ａ（２１１ｂ）は、テナントα用とテナントβ用とを切り替え可能になっている。
【００３３】
図４は、本発明の第１の実施形態のＤＢサーバ２１２ａ、２１２ｂの構成例を示すブロック図である。
【００３４】
図４において、ＤＢサーバ２１２ａは、ＤＢテーブル２０３ａ、ＤＢＭＳ（DataBase Management System）インスタンス２０４ａ、ＯＳ２０５ａを備える。同様に、ＤＢサーバ２１２ｂは、ＤＢテーブル２０３ｂ、ＤＢＭＳインスタンス２０４ｂ、ＯＳ２０５ｂを備える。
【００３５】
ＤＢテーブル２０３ａ、２０３ｂは、それぞれテナントα、テナントβが専有するデータベーステーブルである。ＤＢＭＳインスタンス２０４ａ、２０４ｂは、それぞれテナントα、テナントβが専有するデータベースマネジメントシステムのインスタンスである。ＯＳ２０５ａ、２０５ｂは、それぞれテナントα、テナントβが専有するオペレーティングシステムである。
【００３６】
このように、ＤＢサーバ２１２ａ、２１２ｂは、ＯＳ、ＤＢＭＳインスタンス、ＤＢテーブルの全てをテナント毎に分離する個別ＤＢ方式である。この個別ＤＢ方式は、各テナントが金融機関や医療機関等であって、ＤＢサーバ２１２ａ、２１２ｂに格納すべきデータが顧客管理データ等の高い機密性を必要とする場合に、特に有効である。
【００３７】
図５は、本発明の実施形態のマルチテナント制御方法の原理を説明する図である。本実施形態によれば、図１のＡＰサーバ１０３が、図５に示す業務ＵＡＰ処理部３０１、ＤＢサーバ接続管理部３０２を備える。
【００３８】
業務ＵＡＰ処理部３０１は、各テナント（不図示）によって発行されたトランザクション処理要求に応じて、ＵＡＰ（User Application Program）を処理する。この業務ＵＡＰ処理部３０１は、ＵＡＰを処理中に、ＤＢサーバ接続管理部３０２によって接続先のＤＢサーバが変更された場合、当該変更を反映する。
【００３９】
ＤＢサーバ接続管理部３０２は、トランザクション管理テーブル３０３を参照し、トランザクション処理要求の種別（例えばテナントα、βの種別）に対応する接続先のＤＢサーバ２１２ａ、２１２ｂを決定する。
【００４０】
これら業務ＵＡＰ処理部３０１、ＤＢサーバ接続管理部３０２の詳細については後述する。なお、これら業務ＵＡＰ処理部３０１、ＤＢサーバ接続管理部３０２により、簡易な構成で柔軟かつ迅速にリソース（ここでは接続先のＤＢサーバ２１２ａ、２１２ｂ）の割り当てを変更することができる。
【００４１】
図６は、本発明の第１の実施形態の計算機４０１の構成例を示すブロック図である。この計算機４０１は、図１のＡＰサーバ１０３に対応する。この計算機４０１は、それぞれバスで相互に接続された主記憶装置４０２、ＣＰＵ（Central Processing Unit）４０３、出力装置４０４、入力装置４０５、補助記憶装置４１９、ドライブ装置４２０を備えるコンピュータ装置である。
【００４２】
主記憶装置４０２は、計算機４０１の起動時に補助記憶装置４１９に記憶されたＯＳ４０６、オンラインシステム４０７等のプログラムを読み出して記憶するＲＡＭ（Random Access Memory）等の記憶装置である。この主記憶装置４０２は、プログラムの実行に必要なファイル等も記憶する。
【００４３】
ＣＰＵ４０３は、主記憶装置４０２に格納されたプログラムを実行する演算処理装置である。出力装置４０４は、ユーザインターフェースを提供する出力装置（例えばディスプレイ）である。入力装置４０５は、ユーザインターフェースを提供する入力装置（例えばキーボード、マウス）である。
【００４４】
補助記憶装置４１９は、プログラムやファイル、データ等を記憶するＨＤＤ（Hard Disk Drive）等の記憶装置である。ドライブ装置４２０は、記憶媒体４２１に記憶されたプログラムを読み出す装置である。ドライブ装置４２０によって読み出されたプログラムは、補助記憶装置４１９にインストールされる。記憶媒体４２１は、上記のプログラム等を記録したＵＳＢ（Universal Serial Bus）メモリ、ＳＤメモリカード等の記憶媒体である。
【００４５】
以下、オンラインシステム４０７について説明する。このオンラインシステム４０７は、電文受信部４０９、電文送信部４１１、ＵＡＰ制御部４１２、業務ＵＡＰ処理部３０１、ＤＢサーバ接続管理部３０２を備える。このオンラインシステム４０７は、図１のＡＰ共通処理部１０４、カスタマイズ部１０５及びミドルウェア１０６に対応する。
【００４６】
電文受信部４０９は、処理要求元である各テナントから送信された入力電文４０８を受信する。受信された入力電文４０８は、ＵＡＰ制御部４１２に送られる。実行ＵＡＰ判定部４１３は、この入力電文４０８に基づいて、実行すべきユーザアプリケーションを判定する。スケジューラ４１４は、この実行すべきユーザアプリケーションをスケジューリングする。
【００４７】
業務ＵＡＰ処理部３０１は、スケジューラ４１４によって生成されたスケジュールに従って、実行すべきユーザアプリケーションを実行する。
【００４８】
具体的には、まずＤＢサーバ接続管理部３０２を呼出し、入力電文４０８に対応したテナント情報（入力電文４０８を送信したテナントの情報）をＤＢサーバ接続管理部３０２に渡す。そうすると、テナント情報受取部４１５が、このテナント情報を受け取る。その後、対象サーバ検索部４１６が、トランザクション管理テーブル３０３を参照し、このテナント情報に対応したＤＢサーバを検索する。トランザクション管理テーブル３０３は、テナント情報と接続先のＤＢサーバとの対応情報を管理するテーブルである。その後、サーバ再接続部４１７は、対象サーバ検索部４１６によって検索されたＤＢサーバと、既に接続が確立しているＤＢサーバとが異なる場合、検索されたＤＢサーバに接続する。
【００４９】
このようにして、ＤＢサーバ接続管理部３０２は、入力電文４０８に応じて、接続先のＤＢサーバ（不図示）との間の接続を確立させる。その後、業務ＵＡＰ処理部３０１は、接続が確立されたＤＢサーバを参照し、実行すべきユーザアプリケーションを実行する。
【００５０】
なお、ＵＡＰ制御部４１２は、業務ＵＡＰ処理部３０１の処理結果に基づいて、応答送信先に送信すべき出力電文４１０を設定する。電文送信部４１１は、設定された出力電文４１０を、応答送信先に送信する。
【００５１】
図７Ａは、本発明の第１の実施形態のトランザクション管理テーブル３０３の生成方法を説明する第１の図である。
【００５２】
図７Ａに示す定義ファイル５０１は、テナントαからのトランザクション処理要求の場合には、ＤＢサーバＤ１に接続し、テナントβからのトランザクション処理要求の場合には、ＤＢサーバＤ２に接続する旨を定義するファイルである。
【００５３】
この定義ファイル５０１は、補助記憶装置４１９に格納される。ＣＰＵ４０３は、補助記憶装置４１９に格納された定義ファイル５０１に基づいて、トランザクション管理テーブル３０３を生成する。
【００５４】
図７Ｂは、本発明の第１の実施形態のトランザクション管理テーブル３０３の生成方法を説明する第２の図である。
【００５５】
図７Ｂに示すコマンド文５０２は、テナントαからのトランザクション処理要求の場合には、ＤＢサーバＤ１に接続し、テナントβからのトランザクション処理要求の場合には、ＤＢサーバＤ２に接続する旨を示す。
【００５６】
このコマンド文５０２は、入力装置４０５によって入力される。ＣＰＵ４０３は、入力されたコマンド文５０２に基づいて、トランザクション管理テーブル３０３を生成する。
【００５７】
図７Ｃは、本発明の第１の実施形態のトランザクション管理テーブル３０３の生成方法を説明する第３の図である。
【００５８】
図７Ｃに示すコマンド文５０３は、テナントαからのトランザクション処理要求の場合には、ＤＢサーバＤ１に接続し、テナントβからのトランザクション処理要求の場合には、ＤＢサーバＤ２に接続する旨を示す。
【００５９】
このコマンド文５０３は、出力装置４０４（ディスプレイ）に表示された画面上で、入力装置４０５によって対話形式で入力される。ＣＰＵ４０３は、入力されたコマンド文５０３に基づいて、トランザクション管理テーブル３０３を生成する。
【００６０】
図７Ｄは、本発明の第１の実施形態のトランザクション管理テーブル３０３の生成方法を説明する第４の図である。
【００６１】
図７Ｄに示すＧＵＩ（Graphical User Interface）５０４は、テナント（Key）と、接続先のＤＢサーバ（Host）との組み合わせをリストボックスによって選択可能にしている。
【００６２】
このＧＵＩ５０４は、出力装置４０４（ディスプレイ）に表示される。ユーザは、このＧＵＩ５０４の画面上で、入力装置４０５によってテナントとＤＢサーバとの対応付けを入力する。ＣＰＵ４０３は、ユーザ入力に基づいて、トランザクション管理テーブル３０３を生成する。
【００６３】
図８は、本発明の実施形態の業務ＵＡＰの処理手順を示すフローチャートである。ここでは、オンラインシステム４０７において実行される業務ＵＡＰの処理手順を説明する。
【００６４】
まずステップＳ６０１において、ＵＡＰ制御部４１２は、電文受信部４０９が受信した入力電文４０８を受け取る（Ｓ６０１）。次にステップＳ６０２において、ＵＡＰ制御部４１２は、入力電文４０８に対応するトランザクションを開始する（Ｓ６０２）。
【００６５】
その後ステップＳ６０３において、実行ＵＡＰ判定部４１３は、ステップＳ６０１で受け取った入力電文４０８に対応するテナント情報、すなわち、入力電文４０８がどのテナントから送信されたかを特定する（Ｓ６０３）。ステップＳ６０３の処理については、図１７Ａ、１７Ｂを用いて後述する。
【００６６】
その後ステップＳ６０４において、業務ＵＡＰ処理部３０１は、ＤＢサーバ接続管理部３０２を呼出す（Ｓ６０４）。このＳ６０４では、業務ＵＡＰ処理部３０１は、ＤＢサーバ接続管理部３０２を呼出すとともに、ステップＳ６０３で特定されたテナント情報をＤＢサーバ接続管理部３０２に渡す。ＤＢサーバ接続管理部３０２は、受信したテナント情報に基づいて、接続すべきＤＢサーバを決定する。ＤＢサーバ接続管理部３０２の呼出方法については、図１８Ａ、１８Ｂを用いて後述する。また、接続すべきＤＢサーバの決定方法は、図９、図１０Ａ〜１０Ｃを用いて説明する。
【００６７】
その後ステップＳ６０５〜Ｓ６０７において、業務ＵＡＰ処理部３０１は、ステップＳ６０４によって接続すべきＤＢサーバとして決定され、接続が確立されたＤＢサーバに対して、入力電文４０８内の各ＳＱＬ文を実行する（Ｓ６０５〜Ｓ６０７）。その後ステップＳ６０８において、ＵＡＰ制御部４１２は、ステップＳ６０２で開始したトランザクションをコミットする（Ｓ６０８）。
【００６８】
その後ステップＳ６０９において、ＵＡＰ制御部４１２は、業務ＵＡＰ処理部３０１の処理結果に基づいて、応答送信先に送信すべき出力電文４１０を設定する（Ｓ６０９）。なお、設定された出力電文４１０は、電文送信部４１１によって応答送信先に送信される。
【００６９】
以上の処理により、オンラインシステム４０７では、入力電文４０８、すなわちトランザクションの処理要求を受信する度に、受信した入力電文４０８に基づいて、接続すべきＤＢサーバを決定している。これにより、各ＡＰサーバ２１１ａ、２１１ｂにテナントα、βからのトランザクションの処理要求が混在した場合であっても、柔軟かつ迅速にＤＢサーバ２１３ａ、２１３ｂの割り当てを変更することができる。
【００７０】
なお、このオンラインシステム４０７では、各ＡＰサーバ２１１ａ、２１１ｂが、受信した入力電文４０８（トランザクションの処理要求）に基づいて、接続すべきＤＢサーバを決定するが、この場合には限らない。例えば、各Ｗｅｂサーバ２１０ａ、２１０ｂが、受信した入力電文４０８に基づいて、接続すべきＡＰサーバ２１１ａ、２１１ｂを決定する形態でもよいし、その他の形態にも応用可能である。
【００７１】
図９は、本発明の第１の実施形態のＤＢサーバ接続管理部３０２の動作を説明するための図である。図９の左側のフローチャートは、テナント情報受取部４１５、対象サーバ検索部４１６及びサーバ再接続部４１７の制御ロジックを示している。図９の右側のテーブルは、トランザクション管理テーブル３０３の一例を示している。
【００７２】
トランザクション管理テーブル３０３は、表７０１で示すように、テナントがαである場合の接続先ＤＢサーバはＤ１であり、テナントがβである場合の接続先ＤＢサーバはＤ２であることが対応付けられている。すなわち、このトランザクション管理テーブル３０３は、トランザクション処理要求を識別する情報であるテナントと、トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソース（ここでは、ＤＢサーバ）への接続パスであるホスト名と、の対応情報を管理する。以下、左側のフローチャートについて説明する。
【００７３】
まずステップＳ７０１において、テナント情報受取部４１５は、業務ＵＡＰ処理部３０１から、入力電文４０８に対応したテナント情報を受け取る（Ｓ７０１）。
【００７４】
次にステップＳ７０２において、対象サーバ検索部４１６は、トランザクション管理テーブル３０３を参照し、ステップＳ７０１で受け取ったテナントに対応する接続先ＤＢサーバを検索し、選択する（Ｓ７０２）。図７の例では、ステップＳ７０１で受け取ったテナント情報がテナントαを示す場合には、接続先ＤＢサーバＤ１を選択する。一方、ステップＳ７０１で受け取ったテナント情報がテナントβを示す場合には、接続先ＤＢサーバＤ２を選択する。
【００７５】
その後ステップＳ７０３において、サーバ再接続部４１７は、ステップＳ７０２で選択された接続先ＤＢサーバが、現在接続している接続先ＤＢサーバと異なるか否かを判定する（Ｓ７０３）。選択された接続先ＤＢサーバが、現在接続している接続先ＤＢサーバと異なる場合（Ｓ７０３でＹＥＳ）、サーバ再接続部４１７は、新しい接続先ＤＢサーバと接続する（Ｓ７０４）。このステップＳ７０４については、図１０Ａ〜１０Ｃを用いて詳細に後述する。一方、選択された接続先ＤＢサーバが、現在接続している接続先ＤＢサーバと同じ場合（Ｓ７０３でＮＯ）、接続先ＤＢサーバを変更する必要がないので、サーバ再接続部４１７は、何も実行せずに処理を終了する。
【００７６】
図１０Ａは、本発明の第１の実施形態のサーバ再接続の処理手順の第１の例を示すフローチャートである。ここでは、図９のステップＳ７０４の処理、すなわちサーバ再接続部４１７が新しい接続先ＤＢサーバと接続する処理の第１の例を説明する。
【００７７】
まずステップＳ８０１において、サーバ再接続部４１７は、現在確立している接続先ＤＢサーバとの接続を破棄する（Ｓ８０１）。次にステップＳ８０２において、サーバ再接続部４１７は、トランザクション処理要求の種別に対応する接続先ＤＢサーバとの接続を確立する（Ｓ８０２）。ここでは、図９のステップＳ７０２において選択された接続先ＤＢサーバとの接続を確立する。その後ステップＳ８０３において、サーバ再接続部４１７は、ステップＳ８０２で確立された接続を、実際に利用する接続として宣言する（Ｓ８０３）。
【００７８】
以上に示す処理により、サーバ再接続部４１７は、接続先ＤＢサーバの接続数を増加させることなく、新しい接続先ＤＢサーバと接続することができる。
【００７９】
図１０Ｂは、本発明の第１の実施形態のサーバ再接続の処理手順の第２の例を示すフローチャートである。ここでは、図９のステップＳ７０４の処理、すなわちサーバ再接続部４１７が新しい接続先ＤＢサーバと接続する処理の第２の例を説明する。
【００８０】
まずステップＳ８０４において、サーバ再接続部４１７は、現在確立している接続先ＤＢサーバとの接続を保持する（Ｓ８０４）。次にステップＳ８０５において、サーバ再接続部４１７は、ステップＳ８０４で保持される接続とは別に、トランザクション処理要求の種別に対応する接続先ＤＢサーバとの接続を確立する（Ｓ８０５）。ここでは、図９のステップＳ７０２において選択された接続先ＤＢサーバとの接続を新たに確立する。その後ステップＳ８０６において、サーバ再接続部４１７は、ステップＳ８０５で確立された接続を、実際に利用する接続として宣言する（Ｓ８０６）。
【００８１】
以上に示す処理により、サーバ再接続部４１７は、現在確立している接続先ＤＢサーバとの接続を保持したまま、新しい接続先ＤＢサーバと接続している。そのため、現在確立している接続先ＤＢサーバとの接続を再利用できる。
【００８２】
図１０Ｃは、本発明の第１の実施形態のサーバ再接続の処理手順の第３の例を示すフローチャートである。ここでは、図９のステップＳ７０４の処理、すなわちサーバ再接続部４１７が新しい接続先ＤＢサーバと接続する処理の第３の例を説明する。
【００８３】
まずステップＳ８０７において、サーバ再接続部４１７は、現在確立している複数の接続先ＤＢサーバ（接続先ＤＢサーバ群）との接続の中に、トランザクション処理要求の種別に対応する接続があるか否かを判定する（Ｓ８０７）。トランザクション処理要求の種別に対応する接続がない場合（Ｓ８０７でＮＯ）、ステップＳ８０８に進む。
【００８４】
ステップＳ８０８に進むと、サーバ再接続部４１７は、現在確立している接続数が所定の閾値より大きいか否かを判定する（Ｓ８０８）。ここでいう閾値とは、業務ＵＡＰ処理部３０１が許容できる接続数の最大値である。
【００８５】
現在確立している接続数が閾値よりも大きい場合（Ｓ８０８でＹＥＳ）、接続数を増やすことはできないので、ステップＳ８０９に進んで、サーバ再接続部４１７は、現在確立している複数の接続のうち、最後の利用からの経過時間が長い（ＬＲＵ：Least Recently Used）接続を破棄する（Ｓ８０９）。
【００８６】
一方、現在確立している接続数が閾値よりも小さい場合（Ｓ８０８でＮＯ）、接続数を増やすことができるので、ステップＳ８１０に進んで、まずサーバ再接続部４１７は、現在確立している接続を保持する（Ｓ８１０）。その後ステップＳ８１１に進んで、サーバ再接続部４１７は、トランザクション処理要求の種別に対応する接続先ＤＢサーバとの接続を確立する（Ｓ８１１）。ここでは、図９のステップＳ７０２において選択された接続先ＤＢサーバとの接続を新たに確立する。
【００８７】
また、ステップＳ８０７において、トランザクション処理要求の種別に対応する接続がある場合（Ｓ８０７でＹＥＳ）、ステップＳ８１２に進んで、サーバ再接続部４１７は、現在確立している接続を、トランザクション処理要求の種別に対応する接続に切り替える（Ｓ８０７）。ここでは、図９のステップＳ７０２において選択された接続先ＤＢサーバとの接続に切り替える。
【００８８】
ステップＳ８１３に進むと、サーバ再接続部４１７は、ステップＳ８１１で確立された接続又はステップＳ８１２で切り替えられた接続を、実際に利用する接続として宣言する（Ｓ８１３）。
【００８９】
以上に示す処理により、サーバ再接続部４１７は、接続先ＤＢサーバの接続数を一定数以上に増加させることなく、新しい接続先ＤＢサーバと接続することができる。また、現在確立している接続先ＤＢサーバとの接続を保持したまま、新しい接続先ＤＢサーバと接続している。そのため、現在確立している接続先ＤＢサーバとの接続を再利用できる。
【００９０】
以上説明してきた第１の実施形態によれば、各ＡＰサーバ２１１ａ（２１１ｂ）にテナントα向けの処理要求とテナントβ向けの処理要求が混在した場合であっても、簡易な構成で柔軟かつ迅速にＤＢサーバ２１３ａ、２１３ｂの割り当てを変更することができる。
【００９１】
（第２の実施形態）
前述の第１の実施形態では、テナント毎に１台のＤＢサーバ（図２参照、テナントαにはＤＢサーバ２１２ａ、テナントβにはＤＢサーバ２１２ｂ）が設けられる形態について説明してきた。ここでは、テナント毎に複数台のＤＢサーバが設けられる形態について説明する。なお、以下では前述の第１の実施形態と同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【００９２】
図１１は、本発明の第２の実施形態のマルチテナント方式の計算機システム１の構成例を示す図である。この計算機システム１は、テナントα、β用のマルチテナント環境である。なお、ここでは図２と同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【００９３】
図１１に示すように、複数のＤＢサーバ２１３ａ、２１３ｂが設けられている。各ＤＢサーバ２１３ａは、テナントα用のデータベースサーバである。ＡＰサーバ２１１ａのみが、各ＤＢサーバ２１３ａに接続可能である。一方、各ＤＢサーバ２１３ｂは、テナントβ用のデータベースサーバである。ＡＰサーバ２１１ｂのみが、各ＤＢサーバ２１２ｂに接続可能である。ＤＢサーバ２１３ａ、２１３ｂの構成については後述する。
【００９４】
以上に示す構成により、計算機システム１では、端末２０６ａ、２０６ｂがトランザクションの処理要求に係る電文を発行する。発行された電文は、ネットワーク回線２０７等を通って、対応するＷｅｂサーバ２１０ａ、２１０ｂに送信される。電文を受信したＷｅｂサーバ２１０ａ、２１０ｂは、対応するＡＰサーバ２１１ａ、２１１ｂに送信する。その後、ＡＰサーバ２１１ａ、２１１ｂは、それぞれＤＢサーバ２１３ａ、２１３ｂに接続して、受信した電文に対応するトランザクション処理を実行する。
【００９５】
本発明の第２の実施形態のＡＰサーバ２１１ａ、２１１ｂの構成は、前述の第１の実施形態（図３参照）と同様であるため、ここでは説明を省略する。
【００９６】
図１２は、本発明の第２の実施形態のＤＢサーバ２１３ａ、２１３ｂの構成例を示すブロック図である。なお、ここでは図４と同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【００９７】
図１２において、ＤＢサーバ２１３ａは、ＤＢテーブル２０３ａ、ＤＢＭＳインスタンス２０４ａ、ＯＳ２０５ａを備える。同様に、ＤＢサーバ２１３ｂは、ＤＢテーブル２０３ｂ、ＤＢＭＳインスタンス２０４ｂ、ＯＳ２０５ｂを備える。
【００９８】
このように、複数のＤＢサーバ２１３ａ、２１３ｂの各々は、ＯＳ、ＤＢＭＳのインスタンス、ＤＢテーブルの全てをテナント毎に分離する個別ＤＢ方式である。この個別ＤＢ方式は、各テナントが金融機関や医療機関等であって、ＤＢサーバ２１３ａ、２１３ｂに格納すべきデータが顧客管理データ等の高い機密性を必要とする場合に、特に有効である。
【００９９】
本発明の第２の実施形態の計算機４０１の構成は、前述の第１の実施形態（図６参照）と同様であるため、ここでは説明を省略する。
【０１００】
図１３は、本発明の第２の実施形態のＤＢサーバ接続管理部３０２の動作を説明するための図である。図１３の左側のフローチャートは、テナント情報受取部４１５、対象サーバ検索部４１６及びサーバ再接続部４１７の制御ロジックを示している。図１３の右側のテーブルは、トランザクション管理テーブル３０３の一例を示している。
【０１０１】
トランザクション管理テーブル３０３は、表１００１に示すように、テナントがαである場合の接続先ＤＢサーバはＤ１（負荷レベル０）、Ｄ２（負荷レベル２）、Ｄ３（負荷レベル２）であり、テナントがβである場合の接続先ＤＢサーバはＤ４（負荷レベル１）、Ｄ５（負荷レベル１）であることが対応付けられている。負荷レベルとは、各接続先ＤＢサーバに対する負荷の度合いを示す指標である。例えば、各接続先ＤＢサーバに送られる時間当たりのリクエスト数に基づいて定められる。
【０１０２】
すなわち、このトランザクション管理テーブル３０３は、トランザクション処理要求を識別する情報であるテナントと、トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソース（ここでは、ＤＢサーバ）への接続パスであるホスト名と、負荷レベルとの対応情報を管理する。なお、負荷レベルは、複数の接続パスから一つの接続パスを選択するために用いられる。詳細には後述する。左側のフローチャートは図９のフローチャートと同様であるため、ここでは説明を省略する。
【０１０３】
図１４Ａは、本発明の第２の実施形態のトランザクション管理テーブル３０３の別の例を示す図である。
【０１０４】
トランザクション管理テーブル３０３は、表１００２に示すように、トランザクション処理要求を識別する情報であるテナントと、トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソース（ここでは、ＤＢサーバ）への接続パスであるホスト名と、接続数との対応情報が管理される。接続数とは、各接続先ＤＢサーバにおけるリソースの専有度合い（ここでは同時接続数）を示す指標である。この接続数は、前述の負荷レベルと同様に、複数の接続パスから一つの接続パスを選択するために用いられる。詳細には後述する。
【０１０５】
図１４Ｂは、本発明の第２の実施形態のトランザクション管理テーブル３０３の別の例を示す図である。
【０１０６】
トランザクション管理テーブル３０３は、表１００３に示すように、トランザクション処理要求を識別する情報であるテナントと、トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソース（ここでは、ＤＢサーバ）への接続パスであるホスト名と、口座番号キーレンジとの対応情報が管理される。口座番号キーレンジとは、各接続先ＤＢサーバに格納されるデータの範囲を示す指標である。この口座番号キーレンジは、前述の負荷レベル及び接続数と同様に、複数の接続パスから一つの接続パスを選択するために用いられる。詳細には後述する。
【０１０７】
図１５Ａは、本発明の第２の実施形態のサーバ再接続の処理手順の第１の例を示すフローチャートである。ここでは、図１３のステップＳ７０４の処理、すなわちサーバ再接続部４１７が新しい接続先ＤＢサーバと接続する処理の第１の例を説明する。なお、ここでは図１０Ａと同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【０１０８】
ステップＳ１１０２では、サーバ再接続部４１７は、トランザクション管理テーブル３０３（図１３参照）を参照し、トランザクション処理要求の種別に対応する接続先ＤＢサーバのうち、負荷レベルの最も低い任意の一つの接続先ＤＢサーバとの接続を確立する（Ｓ１１０２）。ここでは、図１３のステップＳ７０２において選択された接続先ＤＢサーバのうち、負荷レベルの最も低い接続先ＤＢサーバとの接続を確立する。
【０１０９】
以上に示す処理により、サーバ再接続部４１７は、接続先ＤＢサーバの接続数を増加させることなく、複数の接続先ＤＢサーバから負荷レベルの最も低い一つの接続先ＤＢサーバを選択して接続することができる。
【０１１０】
図１５Ｂは、本発明の第２の実施形態のサーバ再接続の処理手順の第２の例を示すフローチャートである。ここでは、図１３のステップＳ７０４の処理、すなわちサーバ再接続部４１７が新しい接続先ＤＢサーバと接続する処理の第２の例を説明する。なお、ここでは図１０Ｂと同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【０１１１】
ステップＳ１１０５では、サーバ再接続部４１７は、トランザクション管理テーブル３０３（図１３参照）を参照し、ステップＳ８０４で保持される接続とは別に、トランザクション処理要求の種別に対応する接続先ＤＢサーバのうち、負荷レベルの最も低い任意の一つの接続先ＤＢサーバとの接続を確立する（Ｓ１１０５）。ここでは、図１３のステップＳ７０２において選択された接続先ＤＢサーバのうち、負荷レベルの最も低い接続先ＤＢサーバとの接続を新たに確立する。
【０１１２】
以上に示す処理により、サーバ再接続部４１７は、現在確立している接続先ＤＢサーバとの接続を保持したまま、複数の接続先ＤＢサーバから負荷レベルの最も低い一つの接続先ＤＢサーバを選択して接続している。そのため、現在確立している接続先ＤＢサーバとの接続を再利用できる。
【０１１３】
図１５Ｃは、本発明の第２の実施形態のサーバ再接続の処理手順の第３の例を示すフローチャートである。ここでは、図１３のステップＳ７０４の処理、すなわちサーバ再接続部４１７が新しい接続先ＤＢサーバと接続する処理の第３の例を説明する。なお、ここでは図１０Ｃと同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【０１１４】
ステップＳ１１１１では、サーバ再接続部４１７は、トランザクション管理テーブル３０３（図１３参照）を参照し、トランザクション処理要求の種別に対応する接続先ＤＢサーバのうち、負荷レベルの最も低い任意の一つの接続先ＤＢサーバとの接続を確立する（Ｓ１１１１）。ここでは、図１３のステップＳ７０２において選択された接続先ＤＢサーバのうち、負荷レベルの最も低い接続先ＤＢサーバとの接続を新たに確立する。
【０１１５】
以上に示す処理により、サーバ再接続部４１７は、接続先ＤＢサーバの接続数を一定数以上に増加させることなく、複数の接続先ＤＢサーバから負荷レベルの最も低い一つの接続先ＤＢサーバを選択して接続することができる。また、現在確立している接続先ＤＢサーバとの接続を保持したまま、新しい接続先ＤＢサーバと接続している。そのため、現在確立している接続先ＤＢサーバとの接続を再利用できる。
【０１１６】
なお、図１５Ａ〜図１５Ｃに示すフローチャートのステップＳ１１０２、Ｓ１１０５、Ｓ１１１１では、図１３のトランザクション管理テーブル３０３を参照したが、この場合に限らない。
【０１１７】
例えば図１４Ａのトランザクション管理テーブル３０３を参照し、トランザクション処理要求の種別に対応する複数の接続先ＤＢサーバから、接続数の最も少ない任意の一つの接続先ＤＢサーバとの接続を確立してもよい。これにより、各接続先ＤＢサーバにおけるリソースの専有状況に応じて、接続先ＤＢサーバとの接続を適切に変更することができる。
【０１１８】
また、図１４Ｂのトランザクション管理テーブル３０３を参照し、トランザクション処理要求の種別に対応する複数の接続先サーバから、当該トランザクション処理要求に係る口座番号を含む口座番号キーレンジの接続先サーバとの接続を確立してもよい。これにより、各接続先ＤＢサーバに格納されたデータの範囲に応じて、接続先ＤＢサーバとの接続を適切に変更することができる。
【０１１９】
（第３の実施形態）
前述の第１の実施形態及び第２の実施形態では、業務ＵＡＰ処理部３０１（図６参照）がＤＢサーバ接続管理部３０２と連携する形態について説明してきた。ここでは、ＵＡＰ制御部４１２がＤＢサーバ接続管理部３０２と連携する形態について説明する。
【０１２０】
図１６は、本発明の第３の実施形態の計算機４０１の構成例を示すブロック図である。この計算機４０１は、図１のＡＰサーバ１０３に対応する。この計算機４０１は、それぞれバスで相互に接続された主記憶装置４０２、ＣＰＵ４０３、出力装置４０４、入力装置４０５、補助記憶装置４１９、ドライブ装置４２０を備えるコンピュータ装置である。
【０１２１】
なお、ここでは図６と同様の構成要素には同一の符号を付して重複する説明を適宜省略する。
【０１２２】
以下、図１６に示すオンラインシステム４０７について説明する。このオンラインシステム４０７は、前述の第１の実施形態及び第２の実施形態と異なり、ＵＡＰ制御部４１２がＤＢ接続部４１８を備え、ＵＡＰ制御部４１２とＤＢサーバ接続管理部３０２とが連携する。
【０１２３】
電文受信部４０９は、処理要求元である各テナントから送信された入力電文４０８を受信する。受信された入力電文４０８は、ＵＡＰ制御部４１２に送られる。実行ＵＡＰ判定部４１３は、この入力電文４０８に基づいて、実行すべきユーザアプリケーションを判定する。このとき、ＤＢ接続部４１８が、ＤＢサーバ接続管理部３０２を呼出し、入力電文４０８に対応したテナントの情報を、ＤＢサーバ接続管理部３０２に渡す。一方、スケジューラ４１４は、実行すべきユーザアプリケーションをスケジューリングする。
【０１２４】
そうすると、テナント情報受取部４１５が、このテナント情報を受け取る。その後、対象サーバ検索部４１６が、トランザクション管理テーブル３０３を参照し、このテナント情報に対応したＤＢサーバを検索する。その後、サーバ再接続部４１７は、対象サーバ検索部４１６によって検索されたＤＢサーバと、既に接続が確立しているＤＢサーバとが異なる場合、検索されたＤＢサーバに接続する。
【０１２５】
このようにして、ＤＢサーバ接続管理部３０２は、入力電文４０８に応じて、接続先のＤＢサーバ（不図示）との間の接続を確立させる。その後、ＤＢサーバ接続管理部３０２によってＤＢサーバとの間の接続が確立すると、ＤＢ接続部４１８は、接続が確立された旨の情報を業務ＵＡＰ処理部３０１に渡す。その後、業務ＵＡＰ処理部３０１は、接続が確立されたＤＢサーバを参照し、スケジューラ４１４によって生成されたスケジュールに従って、実行すべきユーザアプリケーションを実行する。
【０１２６】
なお、ＵＡＰ制御部４１２は、業務ＵＡＰ処理部３０１の処理結果に基づいて、応答送信先に送信すべき出力電文４１０を設定する。電文送信部４１１は、設定された出力電文４１０を、応答送信先に送信する。
【０１２７】
図１７Ａは、本発明の各実施形態のトランザクション処理要求の種別の特定方法の第１の例を説明するための図である。ここでは、図８のステップＳ６０３において、実行ＵＡＰ判定部４１３が、入力電文４０８中の特定フィールドに基づいて、送信元のテナントを特定する方法（１３０１）を説明する。
【０１２８】
図１７Ａに示す例では、実行ＵＡＰ判定部４１３は、入力電文４０８中の銀行コードのフィールド値が銀行コード１の場合、送信元のテナントがαであることを特定する。一方、入力電文４０８中の銀行コードのフィールド値が銀行コード２の場合、送信元のテナントがβであることを特定する。
【０１２９】
図１７Ｂは、本発明の各実施形態のトランザクション処理要求の種別の特定方法の第２の例を説明するための図である。ここでは、図８のステップＳ６０３において、実行ＵＡＰ判定部４１３が、入力電文４０８に含まれるＵＲＬ（Universal Resource Location）に基づいて、送信元のテナントを特定する方法（１３０２）を説明する。
【０１３０】
図１７Ｂに示す例では、実行ＵＡＰ判定部４１３は、入力電文４０８に含まれるＵＲＬが"alpha-bank"の文字列を含む場合、送信元のテナントがαであることを特定する。一方、入力電文４０８に含まれるＵＲＬが"beta-bank"の文字列を含む場合、送信元のテナントがβであることを特定する。
【０１３１】
図１８Ａは、本発明の各実施形態のＤＢサーバ接続管理部３０２の呼出方法の第１の例を説明するための図である。ここでは、図８のステップＳ６０４において、業務ＵＡＰ処理部３０１が、ＤＢサーバ接続管理部３０２を呼出すとともに、テナント情報をＤＢサーバ接続管理部３０２に渡す方法を説明する。
【０１３２】
図１８Ａに示す例では、業務ＵＡＰ処理部３０１は、テナント情報を引数keyとしてＤＢサーバ接続管理部３０２を呼出す（１４０１）。
【０１３３】
図１８Ｂは、本発明の各実施形態のＤＢサーバ接続管理部３０２の呼出方法の第２の例を説明するための図である。ここでは、図８のステップＳ６０４において、業務ＵＡＰ処理部３０１が、ＤＢサーバ接続管理部３０２を呼出すとともに、テナント情報をＤＢサーバ接続管理部３０２に渡す方法を説明する。
【０１３４】
図１８Ｂに示す例では、業務ＵＡＰ処理部３０１は、入力電文４０８を引数としてＤＢサーバ接続管理部３０２を呼出す。この場合、呼び出されたＤＢサーバ接続管理部３０２が、入力電文４０８を解析し、入力電文４０８に対応するテナント情報を抽出する（１４０２）。
【０１３５】
図１９Ａ、１９Ｂは、本発明の各実施形態のＡＰサーバ２１１ａ（２１１ｂ）の構成の別の例を示す図である。
【０１３６】
図１９Ａに示すように、ＯＳ１５０５ａ、１５０５ｂ、ミドルウェア１５０４ａ、１５０４ｂ、ＡＰ１５０３ａ、１５０３ｂの全てをテナント毎に分離してもよい（１５０２ａ、１５０２ｂ）。また、図１９Ｂに示すように、ＯＳ１０７を各テナント間で共有し、ミドルウェア１５０４ａ、１５０４ｂ、ＡＰ１５０３ａ、１５０３ｂをテナント毎に分離してもよい（１５０２ａ、１５０２ｂ）。
【０１３７】
図２０Ａ、２０Ｂは、本発明の各実施形態のＤＢサーバ２１２ａ、２１２ｂの構成の別の例を示すブロック図である。
【０１３８】
図２０Ａに示すように、ＯＳ１６０８、ＤＢＭＳインスタンス１６０５を各テナント間で共有し、ＤＢテーブル２０３ａ、２０３ｂをテナント毎に分離する個別スキーマ方式の構成にしてもよい。また、図２０Ｂに示すように、ＯＳ１６０８、ＤＢＭＳインスタンス１６０５、ＤＢテーブル１６０７の全てを各テナント間で共有する共有スキーマ方式の構成にしてもよい。
【０１３９】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【産業上の利用可能性】
【０１４０】
本発明は、計算機システムに関し、特に、複数のユーザ企業が同じ業務システムを共有して利用する、いわゆるマルチテナント方式のシステムに対して有用である。
【図１】
2012063301.tif 000003
【図２】
2012063301.tif 000004
【図３】
2012063301.tif 000005
【図４】
2012063301.tif 000006
【図５】
2012063301.tif 000007
【図６】
2012063301.tif 000008
【図７Ａ】
2012063301.tif 000009
【図７Ｂ】
2012063301.tif 000010
【図７Ｃ】
2012063301.tif 000011
【図７Ｄ】
2012063301.tif 000012
【図８】
2012063301.tif 000013
【図９】
2012063301.tif 000014
【図１０Ａ】
2012063301.tif 000015
【図１０Ｂ】
2012063301.tif 000016
【図１０Ｃ】
2012063301.tif 000017
【図１１】
2012063301.tif 000018
【図１２】
2012063301.tif 000019
【図１３】
2012063301.tif 000020
【図１４Ａ】
2012063301.tif 000021
【図１４Ｂ】
2012063301.tif 000022
【図１５Ａ】
2012063301.tif 000023
【図１５Ｂ】
2012063301.tif 000024
【図１５Ｃ】
2012063301.tif 000025
【図１６】
2012063301.tif 000026
【図１７Ａ】
2012063301.tif 000027
【図１７Ｂ】
2012063301.tif 000028
【図１８Ａ】
2012063301.tif 000029
【図１８Ｂ】
2012063301.tif 000030
【図１９Ａ】
2012063301.tif 000031
【図１９Ｂ】
2012063301.tif 000032
【図２０Ａ】
2012063301.tif 000033
【図２０Ｂ】
2012063301.tif 000034
【手続補正書】
【提出日】平成25年8月16日(2013.8.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
トランザクション処理要求を発行するクライアント装置と、前記クライアント装置によって発行されたトランザクション処理要求に対応するトランザクション処理を実行するサーバ装置と、を備えた計算機システムであって、
前記サーバ装置は、
前記トランザクション処理要求の種別と、当該トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソースへの接続パスとを対応付けたトランザクション管理テーブルと、
前記クライアント装置によって発行されたトランザクション処理要求を受信する受信部と、
前記受信部によってトランザクション処理要求を受信する度に、受信したトランザクション処理要求に含まれる情報からトランザクション処理要求の種別を特定し、前記トランザクション管理テーブルを参照し、特定されたトランザクション処理要求の種別に対応する前記接続パスを用いて、当該接続パスに対応する他のリソースに接続する接続管理部と、
を備えたことを特徴とする計算機システム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項７
【補正方法】変更
【補正の内容】
【請求項７】
前記トランザクション管理テーブルは、前記接続すべき他のリソースが複数ある場合に、当該複数の他のリソースの各々に格納されるデータの範囲を保持し、
前記接続管理部は、前記受信したトランザクション処理要求の種別に対応する複数の他のリソースのうちの、当該トランザクション処理要求の処理対象データが格納されている他のリソースへの接続パスを用いて、当該接続パスに対応する他のリソースに接続することを特徴とする請求項１に記載の計算機システム。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
トランザクション処理要求を発行するクライアント装置と、前記クライアント装置によって発行されたトランザクション処理要求に対応するトランザクション処理を実行するサーバ装置と、を備えた計算機システムにおけるマルチテナント制御方法であって、
前記サーバ装置は、
前記トランザクション処理要求の種別と、当該トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソースへの接続パスとを対応付けたトランザクション管理テーブルを保持し、
前記方法は、
前記サーバ装置が、
前記クライアント装置によって発行されたトランザクション処理要求を受信する手順と、
前記受信する手順によってトランザクション処理要求を受信する度に、受信したトランザクション処理要求に含まれる情報からトランザクション処理要求の種別を特定し、前記トランザクション管理テーブルを参照し、特定されたトランザクション処理要求の種別に対応する前記接続パスを用いて、当該接続パスに対応する他のリソースに接続する手順と、
を含むことを特徴とするマルチテナント制御方法。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
トランザクション処理要求を発行するクライアント装置と、前記クライアント装置によって発行されたトランザクション処理要求に対応するトランザクション処理を実行するサーバ装置と、を備えた計算機システムにおいて実行されるマルチテナント制御プログラムであって、
前記サーバ装置は、
前記トランザクション処理要求の種別と、当該トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソースへの接続パスとを対応付けたトランザクション管理テーブルを保持し、
前記プログラムは、
前記クライアント装置によって発行されたトランザクション処理要求を受信する手順と、
前記受信する手順によってトランザクション処理要求を受信する度に、受信したトランザクション処理要求に含まれる情報からトランザクション処理要求の種別を特定し、前記トランザクション管理テーブルを参照し、特定されたトランザクション処理要求の種別に対応する前記接続パスを用いて、当該接続パスに対応する他のリソースに接続する手順と、
を前記サーバ装置に実行させることを特徴とするマルチテナント制御プログラム。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、トランザクション処理要求を発行するクライアント装置と、前記クライアント装置によって発行されたトランザクション処理要求に対応するトランザクション処理を実行するサーバ装置と、を備えた計算機システムであって、前記サーバ装置は、前記トランザクション処理要求の種別と、当該トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソースへの接続パスとを対応付けたトランザクション管理テーブルと、前記クライアント装置によって発行されたトランザクション処理要求を受信する受信部と、前記受信部によってトランザクション処理要求を受信する度に、受信したトランザクション処理要求に含まれる情報からトランザクション処理要求の種別を特定し、前記トランザクション管理テーブルを参照し、特定されたトランザクション処理要求の種別に対応する前記接続パスを用いて、当該接続パスに対応する他のリソースに接続する接続管理部と、を備えたことを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
ＤＢサーバ接続管理部３０２は、トランザクション管理テーブル３０３を参照し、トランザクション処理要求の種別（例えばテナントα、β）に対応する接続先のＤＢサーバ２１２ａ、２１２ｂを決定する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
トランザクション管理テーブル３０３は、表７０１で示すように、テナントがαである場合の接続先ＤＢサーバはＤ１であり、テナントがβである場合の接続先ＤＢサーバはＤ２であることが対応付けられている。すなわち、このトランザクション管理テーブル３０３は、トランザクション処理要求の種別を識別する情報であるテナントと、トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソース（ここでは、ＤＢサーバ）への接続パスであるホスト名と、の対応情報を管理する。以下、左側のフローチャートについて説明する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
すなわち、このトランザクション管理テーブル３０３は、トランザクション処理要求の種別を識別する情報であるテナントと、トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソース（ここでは、ＤＢサーバ）への接続パスであるホスト名と、負荷レベルとの対応情報を管理する。なお、負荷レベルは、複数の接続パスから一つの接続パスを選択するために用いられる。詳細には後述する。左側のフローチャートは図９のフローチャートと同様であるため、ここでは説明を省略する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１０４
【補正方法】変更
【補正の内容】
【０１０４】
トランザクション管理テーブル３０３は、表１００２に示すように、トランザクション処理要求の種別を識別する情報であるテナントと、トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソース（ここでは、ＤＢサーバ）への接続パスであるホスト名と、接続数との対応情報が管理される。接続数とは、各接続先ＤＢサーバにおけるリソースの専有度合い（ここでは同時接続数）を示す指標である。この接続数は、前述の負荷レベルと同様に、複数の接続パスから一つの接続パスを選択するために用いられる。詳細には後述する。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１０６
【補正方法】変更
【補正の内容】
【０１０６】
トランザクション管理テーブル３０３は、表１００３に示すように、トランザクション処理要求の種別を識別する情報であるテナントと、トランザクション処理要求に対応するトランザクション処理を実行する際に接続すべき他のリソース（ここでは、ＤＢサーバ）への接続パスであるホスト名と、口座番号キーレンジとの対応情報が管理される。口座番号キーレンジとは、各接続先ＤＢサーバに格納されるデータの範囲を示す指標である。この口座番号キーレンジは、前述の負荷レベル及び接続数と同様に、複数の接続パスから一つの接続パスを選択するために用いられる。詳細には後述する。
【国際調査報告】
2012063301.tif 000035
2012063301.tif 000036
2012063301.tif 000037
2012063301.tif 000038