(57)【要約】【課題】複数のサービス提供システムを簡単に使用すること。【解決手段】連携サーバ１００は、１つの実施形態において、ユーザインタフェースにて用いられるコマンドであるユーザインタフェースコマンドに対応付けて、サービスを提供するサービス提供システム４００において用いられるコマンドであってユーザインタフェースコマンドに相当する複数のサービス提供システム４００ごとのシステムコマンド各々を記憶する変換テーブルを有する。また、連携サーバ１００は、１つの実施形態において、ユーザインタフェースコマンドを受信すると、受信したユーザインタフェースコマンドを変換テーブルに基づいてシステムコマンドに変換する。また、連携サーバ１００は、１つの実施形態において、変換された後のシステムコマンドをサービス提供システムに送信する。【選択図】図１
2014092853.tif 000002
【特許請求の範囲】
【請求項１】
ユーザインタフェースにて用いられるコマンドであるユーザインタフェースコマンドに対応付けて、サービスを提供するサービス提供システムにおいて用いられるコマンドであって前記ユーザインタフェースコマンドに相当する複数の前記サービス提供システムごとのシステムコマンド各々を記憶する変換テーブルと、
前記ユーザインタフェースコマンドを受信すると、受信したユーザインタフェースコマンドを前記変換テーブルに基づいて前記システムコマンドに変換する変換部と、
前記変換部により変換された後のシステムコマンドを前記サービス提供システムに送信する送信部と
を備えることを特徴とする連携サーバ。
【請求項２】
前記変換テーブルは、前記ユーザインタフェースコマンドに対応付けて、前記サービス提供システムを識別するシステム識別情報と前記システムコマンドとの組み合わせを複数記憶し、
前記変換部は、前記システム識別情報と前記ユーザインタフェースコマンドとを受信すると、受信したユーザインタフェースコマンドを、受信したユーザインタフェースコマンドに対応付けられた組み合わせのうち、受信したシステム識別情報を含む組み合わせのシステムコマンドに変換することを特徴とする請求項１に記載の連携サーバ。
【請求項３】
前記変換テーブルは、前記ユーザインタフェースコマンドに相当する前記システムコマンドとして、前記サービス提供システムにおいて用いられる１つ又は複数のコマンドを記憶することを特徴とする請求項１又は２に記載の連携サーバ。
【請求項４】
前記変換部は、複数のサービス提供システムに対するユーザインタフェースコマンドを受信すると、受信したユーザインタフェースコマンドを前記変換テーブルに基づいて前記システムコマンド各々に変換し、
前記送信部は、前記変換部により変換されたシステムコマンド各々を前記サービス提供システム各々にそれぞれ送信することを特徴とする請求項１〜３のいずれか一項に記載の連携サーバ。
【請求項５】
前記連携サーバは、前記サービス提供システムにより提供されるサービスを用いて実現されることを特徴とする請求項１〜４のいずれか一項に記載の連携サーバ。
【請求項６】
サーバで実効される連携方法であって、
ユーザインタフェースにて用いられるコマンドであるユーザインタフェースコマンドを受信すると、前記ユーザインタフェースコマンドに対応付けてサービスを提供するサービス提供システムにおいて用いられるコマンドであって前記ユーザインタフェースコマンドに相当する複数の前記サービス提供システムごとのシステムコマンド各々を記憶する変換テーブルに基づいて、受信したユーザインタフェースコマンドを前記システムコマンドに変換する変換工程と、
前記変換工程により変換された後のシステムコマンドを前記サービス提供システムに送信する送信工程と
を含んだことを特徴とする連携方法。
【請求項７】
ユーザインタフェースにて用いられるコマンドであるユーザインタフェースコマンドを受信すると、前記ユーザインタフェースコマンドに対応付けてサービスを提供するサービス提供システムにおいて用いられるコマンドであって前記ユーザインタフェースコマンドに相当する複数の前記サービス提供システムごとのシステムコマンド各々を記憶する変換テーブルに基づいて、受信したユーザインタフェースコマンドを前記システムコマンドに変換する変換ステップと、
前記変換ステップにより変換された後のシステムコマンドを前記サービス提供システムに送信する送信ステップと
をコンピュータに実行させるための連携プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連携サーバ、連携方法及び連携プログラムに関する。
【背景技術】
【０００２】
近年、各種のサービスを提供するサービス提供システムがある。例えば、コンピュータシステムを構築するためのインフラをネットワークを介して提供するシステムや、端末のデスクトップ環境をネットワークを介して提供するシステムがある。より詳細な一例をあげて説明すると、ＩａａＳ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）やＤａａＳ（Ｄｅｓｋｔｏｐ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）などがある。なお、ＩａａＳやＤａａＳは、異なるサービス事業者によって提供されている。また、異なるサービス提供システムでは、それぞれ、異なるインタフェースを用いられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２４８５２１号公報
【非特許文献】
【０００４】
【非特許文献１】Eric  Y.  Chen，Mitsutaka  Itoh,  Virtual  Smartphone  over  IP,  In  Proceedings  of  The  11th  IEEE  International  Symposium  on  a  World  of  Wireless,  Mobile  and  Multimedia  Networks  (WoWMoM  2010),  6  pages,  14-17  June  2010,  IEEE  Computer  Society  Washington,  DC,  USA,  2010.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、異なるサービス提供システムを利用する場合手間がかかるという問題がある。例えば、運用者は、サービス提供システムごとのインタフェースの使用法を習得する必要がある。この結果、利用するサービス提供システムが増える程、取得する必要のある使用法が増加する。
【０００６】
開示の技術は、上述に鑑みてなされたものであって、複数のサービス提供システムを簡単に使用可能となる連携サーバ、連携方法及び連携プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
開示する連携サーバは、１つの態様において、ユーザインタフェースにて用いられるコマンドであるユーザインタフェースコマンドに対応付けて、サービスを提供するサービス提供システムにおいて用いられるコマンドであって前記ユーザインタフェースコマンドに相当する複数の前記サービス提供システムごとのシステムコマンド各々を記憶する変換テーブルを有する。また、連携サーバは、１つの態様において、前記ユーザインタフェースコマンドを受信すると、受信したユーザインタフェースコマンドを前記変換テーブルに基づいて前記システムコマンドに変換する変換部を有する。また、連携サーバは、１つの態様において、前記変換部により変換された後のシステムコマンドを前記サービス提供システムに送信する送信部を有する。
【発明の効果】
【０００８】
開示する連携サーバの１つの態様によれば、複数のサービス提供システムを簡単に使用可能となる効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１の実施形態における連携サーバの構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態におけるサービス提供システムの構成の一例を示すブロック図である。
【図３】図３は、第１の実施形態におけるソフトウェアイメージ管理機能部が持つソフトウェアイメージの管理情報テーブルの例を示す図である。
【図４Ａ】図４Ａは、第１の実施形態における変換テーブルに記憶された情報の一例を示す図である。
【図４Ｂ】図４Ｂは、第１の実施形態における変換テーブルに記憶された情報の一例を示す図である。
【図５】図５は、第１の実施形態におけるクライアントＩＰアドレステーブルに記憶された情報の一例を示す図である。
【図６】図６は、第１の実施形態におけるユーザを追加する場合における処理の流れの一例を示すシーケンス図である。
【図７】図７は、第１の実施形態におけるユーザを削除する場合における処理の流れの一例を示すシーケンス図である。
【図８】図８は、第１の実施形態におけるクライアント端末をサービス提供システムに接続する処理の流れの一例を示すシーケンス図である。
【図９】図９は、第１の実施形態におけるサービス提供システムの仮想マシンを再起動する処理の流れの一例を示すシーケンス図である。
【図１０】図１０は、第１の実施形態における効果の一例を示す図である。
【図１１】図１１は、第１の実施形態における効果の一例を示す図である。
【図１２】図１２は、連携サーバの実現方法の一例を示す図である。
【図１３】図１３は、連携サーバによる処理を実行するための連携プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。
【発明を実施するための形態】
【００１０】
以下に、開示する連携サーバ、連携方法及び連携プログラムの実施例について、図面に基づいて詳細に説明する。なお、本実施例により開示する発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００１１】
（第１の実施形態）
（連携サーバの構成）
図１は、第１の実施形態における連携サーバの構成の一例を示すブロック図である。図１に示す例では、連携サーバ１００と併せて、運用ネットワーク１０と、サービスネットワーク２０と、運用者端末２００と、クライアント端末３００と、サービス提供システム４００とを示した。連携サーバ１００と運用者端末２００とクライアント端末３００とサービス提供システム４００との間における処理の流れについては、後述するため、構成について説明する際には適宜説明を省略する。
【００１２】
以下に詳細に説明するように、連携サーバ１００は、連携サーバ１００により提供されるユーザインタフェースにて用いられるコマンドであるユーザインタフェースコマンドに対応付けて、サービス提供システム４００において用いられるコマンドであってユーザインタフェースコマンドに相当する複数のサービス提供システム４００ごとのシステムコマンド各々を記憶している。連携サーバ１００は、ユーザインタフェースコマンドを受信すると、受信したユーザインタフェースコマンドをコマンド変換テーブルに基づいてシステムコマンドに変換し、変換された後のシステムコマンドをサービス提供システム４００に送信する。この結果、複数のサービス提供システムを簡単に使用可能となる。
【００１３】
以下では、連携サーバ１００の構成の一例について説明する前に、運用ネットワーク１０と、サービスネットワーク２０と、運用者端末２００と、クライアント端末３００と、サービス提供システム４００とについて簡単に説明する。なお、以下に説明する運用ネットワーク１０と、サービスネットワーク２０と、運用者端末２００と、クライアント端末３００と、サービス提供システム４００とは、一例であり、これに限定されるものではない。
【００１４】
運用ネットワーク１０は、運用者端末２００と連携サーバ１００とを接続する任意のネットワークである。サービスネットワーク２０は、クライアント端末３００と連携サーバ１００とを接続する任意のネットワークである。図１に示す例では、運用ネットワーク１０とサービスネットワーク２０とが別のネットワークである場合を例に示したが、これに限定されるものではなく、同一のネットワークであっても良い。
【００１５】
複数のサービス提供システム４００は、サービスを提供する。例えば、サービス提供システム４００は、コンピュータシステムを構築するためのインフラをネットワークを介して提供したり、端末のデスクトップ環境をネットワークを介して提供したりする。より詳細な一例をあげて説明すると、サービス提供システム４００は、ＩａａＳやＤａａＳなどを提供する。なお、図１に示す例では、サービス提供システム４００が４つある場合を例に示したが、これに限定されるものではなく、任意の数であって良い。また、サービス提供システム４００各々は、例えば、セキュリティポリシが異なり、利用可能なＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）が異なる。なお、ＤａａＳとしては、例えば、Ａｎｄｒｏｉｄ  ＤａａＳである。
【００１６】
図２は、第１の実施形態におけるサービス提供システムの構成の一例を示すブロック図である。図２に示す例では、サービス提供システム４００は、計算資源が集約されているリソースプールを有し、計算資源を管理する機能部であるクラウドコントローラ４１０を有する。リソースプールとクラウドコントローラ４１０とは管理ネットワーク４０１で接続される。ここで、リソースプールに集約されている計算資源は、１つ又は複数のテナント４２０に配分される。テナント４２０では、例えば、１つ又は複数の仮想マシン４２１が実行される。以下では、クラウドコントローラ４１０とテナント４２０の構成の一例について順に簡単に説明する。
【００１７】
図２に示す例では、クラウドコントローラ４１０は、管理インタフェース４１１と、ソフトウェアイメージ管理機能部４１２と、サーバ状態管理機能部４１３と、サーバ起動処理機能部４１４と、サーバ状態監視機能部４１５と、ユーザ情報管理機能部４１６と、テナント情報管理機能部４１７とを有する。
【００１８】
管理インタフェース４１１は、連携サーバ１００とのインタフェースを担い、連携サーバ１００からのコマンドを受け付けて、適切な処理を他の機能部と連携して実行する。ソフトウェアイメージは、サービスの提供に必要なソフトウェア構成を含んだファイルであり、サービス提供時にテナント４２０に転送される。
【００１９】
ソフトウェアイメージ管理機能部４１２は、所定のサービス実行に必要なソフトウェアイメージの種別、格納場所を管理する。図３は、第１の実施形態におけるソフトウェアイメージ管理機能部が持つソフトウェアイメージの管理情報テーブルの例を示す図である。ソフトウェアイメージは、サービスごとに１つ又は複数存在し、図３に示す例では、ソフトウェアイメージ管理機能部４１２は、サービス「Ａ」について、イメージ「Ａ−１」や「Ａ−２」などを用いて提供されることを記憶し、サービス「Ｂ」について、イメージ「Ｂ−１」や「Ｂ−２」などを用いて提供されることを記憶する。また、図３に示す例では、ソフトウェアイメージ管理機能部４１２は、イメージ「Ａ−１」「Ａ−２」やイメージ「Ｂ−１」「Ｂ−２」の格納場所は、クラウドコントローラ４１０のファイルシステム上の”／ｐａｔｈ／ｔｏ／ｉｍａｇｅＤｉｒ”であることを記憶する。第１の実施形態では、格納場所はクラウドコントローラ４１０上のディスク等を想定しているが、クラウドコントローラ４１０からアクセス可能であれば、実際の格納場所は外部ストレージなどでも良い。
【００２０】
サーバ状態管理機能部４１３は、リソースプール内の計算資源がどのテナント４２０に用いられているか、テナント４２０において実行される仮想マシン４２１の状態などの状態情報を管理する。
【００２１】
サーバ起動処理機能部４１４は、仮想マシンの起動要求があった場合、サーバ状態監視機能部４１５の情報を参照し、リソースプール内のどの仮想マシンを用いるかを決定すると共に、ソフトウェアイメージ管理機能部４１２が管理するソフトウェアイメージを転送し、起動する機能を持つ。また、サーバ起動処理機能部４１４は、スケールアウトの要求があった場合、サーバ状態監視機能部４１５の情報を参照し、リソースプール内のどの仮想マシンをスケールアウトに用いるかを決定すると共に、同一のサービスを既に行っている仮想マシンに、スケールアウトに用いる仮想マシン４２１に対してソフトウェアイメージの断片の転送を要求し、起動する機能を持つ。
【００２２】
例えば、サーバ起動処理機能部４１４は、仮想マシンを生成・デプロイを行い、また、ネットワーク設定や、仮想マシン用のＩＰアドレスの払い出しも行う。より詳細な一例をあげて説明すると、サーバ起動処理機能部４１４は、ＩＰアドレスやネットマスク、ＤＮＳサーバなどのＩＰアドレスなどのネットワーク設定、バッファサイズや同時接続数などミドルウェアやＯＳのパラメータなど、仮想マシン４２１の起動前に変更する必要がある個別設定情報を、起動エージェント４２２に渡すことで、起動エージェント４２２に仮想マシン４２１を生成させる。
【００２３】
サーバ状態監視機能部４１５は、常にリソースプール内の仮想マシンの状態を監視し、サーバ状態管理機能部４１３を更新する機能を持つ。例えば、サーバ状態監視機能部４１５は、リソースプール内にある仮想マシン各々について、待機中であるか、いずれかのテナント４２０に割り当てられているか、テナント４２０により用いられているかなどを記憶する。
【００２４】
ユーザ情報管理機能部４１６は、テナント４２０により提供されるサービスを利用するユーザについての情報を管理する。例えば、ユーザ情報管理機能部４１６は、ユーザを認証する際に用いるユーザＩＤとパスワードとを対応付けて記憶する。テナント情報管理機能部４１７は、リソースプールに集約されて計算資源を利用するテナントについての情報を記憶する。例えば、テナント情報管理機能部４１７は、テナント名のリストを管理する。
【００２５】
テナント４２０の構成について説明する。図２に示すように、サービス提供システム４００では、リソースプールに集約されたリソースが１つ又は複数のテナント４２０に割り当てられる。また、テナント４２０には、１つ又は複数の仮想マシン４２１が実行される。図２に示す例では、仮想マシン４２１は、起動エージェント４２２と、ソフトウェアイメージ格納部４２３と、個別設定・データ格納部４２４と、計算処理機能部４２５とから構成される。
【００２６】
起動エージェント４２２は、クラウドコントローラ４１０と仮想マシン４２１間の通信を行う。具体的には、サーバ起動処理機能部４１４からの起動指示を受け付けてソフトウェアイメージを取得する。また、サーバ状態監視機能部４１５からの状態問い合わせに対し、仮想マシン４２１上で実行中のサービス種別や待機中であることを伝える。また、サーバ起動処理機能部４１４からソフトウェアイメージの転送指示があると、他の仮想マシン４２１にソフトウェアイメージの断片を転送する。
【００２７】
ソフトウェアイメージ格納部４２３は、起動エージェント４２２が取得してきたソフトウェアイメージを格納する機能部である。ソフトウェアイメージは、サービスごとに存在するものであるが、仮想マシン４２１を起動してサービスを実行するために必要な設定情報は、個々の仮想マシン４２１ごとに異なる場合がある。例えば、サービス提供システム４００では、仮想マシン４２１個別の設定情報は取得したソフトウェアイメージを書き換えて保存するのではなく、個別設定・データ格納部４２４に格納する。また、仮想マシン４２１ごとに違う出力を行うログ情報などのような個別データも、個別設定・データ格納部４２４に配置する。
【００２８】
計算処理機能部４２５は、通常の汎用仮想マシン４２１が持つＣＰＵ、主記憶などの演算装置であり、ソフトウェアイメージ格納部４２３と個別設定・データ格納部４２４をディスクとしてシステムをブートし、サービス提供処理を行う。
【００２９】
図１の説明に戻る。運用者端末２００は、サービス提供システム４００により提供されるサービスを利用してクライアントに提供するサービスの運用者により用いられる。運用者端末２００は、例えば、ユーザを追加するユーザインタフェースコマンドを運用者から受け付けたり、ユーザを削除するユーザインタフェースコマンドを運用者から受け付けたりする。例えば、運用者端末２００は、運用者がＤａａＳをクライアント端末３００に提供する際に用いられる。例えば、運用者端末２００は、ＤａａＳをクライアント端末３００に提供する上で、ＩａａＳにより提供されるリソースを管理したり、ＩａａＳにより提供されるリソースに仮想マシンを作成したりする際に用いられる。ＤａａＳとしては、任意のＤａａＳで良く、例えば、ＰＣのイメージを提供しても良く、スマートフォンのイメージを提供しても良い。
【００３０】
ここで、運用者端末２００により受け付けられるユーザインタフェースコマンドは、複数あってそれぞれが独自のインタフェースを有するサービス提供システム４００のいずれに対するコマンドであっても、同一のユーザインタフェースコマンドを受け付ける。具体的には、連携サーバ１００により提供されるユーザインタフェースにて用いられるコマンドを受け付ける。
【００３１】
クライアント端末３００は、サービス提供システム４００により提供されるサービスを利用するユーザにより用いられる。言い換えると、ユーザは、クライアント端末３００を介してサービス提供システム４００により提供されるサービスを利用する。また、例えば、クライアント端末３００は、仮想マシンの再起動要求をユーザから受け付けたりする。
【００３２】
ここで、運用者端末２００やクライアント端末３００により受け付けられたコマンドの送信先について説明する。第１の実施形態では、以下に詳細に説明する連携サーバ１００が、運用者端末２００及びクライアント端末３００と、サービス提供システム４００との間のコマンドの送受信を中継する。言い換えると、運用者端末２００及びクライアント端末３００は、運用者やユーザから受信した指示を連携サーバ１００に送信することになる。
【００３３】
連携サーバ１００の構成の一例について説明する。図１に示す例では、連携サーバ１００は、通信部１０１と、記憶部１１０と、制御部１２０とを有する。通信部１０１は、運用ネットワーク１０を介して運用者端末２００と通信を行う。また、通信部１０１は、サービスネットワーク２０を介してクライアント端末３００と通信を行う。また、通信部１０１は、任意のネットワークを介して複数のサービス提供システム４００各々と通信を行う。
【００３４】
記憶部１１０は、制御部１２０と接続される。記憶部１１０は、制御部１２０による各種処理に用いるデータを記憶する。記憶部１１０は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）などの半導体メモリ素子、又は、ハードディスクや光ディスクなどである。図１に示す例では、記憶部１１０は、変換テーブル１１１と、クライアントＩＰアドレステーブル１１２とを有する。
【００３５】
変換テーブル１１１は、ユーザインタフェースにて用いられるコマンドであるユーザインタフェースコマンドに対応付けて、サービスを提供するサービス提供システム４００において用いられるコマンドであってユーザインタフェースコマンドに相当する複数のサービス提供システム４００ごとのシステムコマンド各々を記憶する。
【００３６】
具体的には、変換テーブル１１１は、ユーザインタフェースコマンドに対応付けて、サービス提供システム４００を識別するシステム識別情報とシステムコマンドとの組み合わせを１つ又は複数記憶する。また、変換テーブル１１１は、ユーザインタフェースコマンドに相当するシステムコマンドとして、サービス提供システム４００において用いられる１つ又は複数のコマンドを記憶する。
【００３７】
図４Ａ及び図４Ｂは、第１の実施形態における変換テーブルに記憶された情報の一例を示す図である。図４Ａに示す例では、変換テーブル１１１は、「コマンドＩＤ」と「ユーザインタフェースコマンド」と「ユーザインタフェースコマンド引数」とを対応付けて記憶する。また、図４Ｂに示す例では、変換テーブル１１１は、「ＩａａＳ＿ＩＤ」と「システムコマンド」と「システムコマンド引数」とを対応付けて記憶する。「コマンドＩＤ」は、変換テーブル１１１に記憶されたレコードを識別するための識別情報である。「コマンドＩＤ」は、図４Ａに示す「コマンドＩＤ」と「ユーザインタフェースコマンド」と「ユーザインタフェースコマンド引数」との対応付けと、図４Ｂに示す「ＩａａＳ＿ＩＤ」と「システムコマンド」と「システムコマンド引数」とを対応付けとを紐付ける。「ユーザインタフェースコマンド」は、ユーザインタフェースコマンドを示す。「ユーザインタフェースコマンド引数」は、ユーザインタフェースコマンドにて用いられる引数を示す。「ＩａａＳ＿ＩＤ」は、システムコマンドを識別するためのシステムコマンドである。「システムコマンド」は、システムコマンドである。「システムコマンド引数」は、システムコマンドにて用いられる引数を示す。ただし、これに限定されるものではなく、変換テーブル１１１は、「コマンドＩＤ」と「ユーザインタフェースコマンド」と「ユーザインタフェースコマンド引数」と「ＩａａＳ＿ＩＤ」と「システムコマンド」と「システムコマンド引数」とを対応付けて１つのテーブルにて記憶しても良い。
【００３８】
図４Ａに示す例では、変換テーブル１１１は、コマンドＩＤ「ＩＤ１」について、ユーザインタフェースコマンド「ａｄｄ＿ｕｓｅｒ」と、ユーザインタフェースコマンド引数「ＩａａＳ＿ＩＤ，ｕｓｅｒ＿ＩＤ，ｐａｓｓｗｏｒｄ，ｔｅｎａｎｔ＿ｎａｍｅ」とを記憶する。言い換えると、変換テーブル１１１は、コマンドＩＤ「ＩＤ１」として、ユーザを追加するユーザインタフェースコマンド「ａｄｄ＿ｕｓｅｒ」を記憶する。
【００３９】
また、図４Ａに示す例では、ユーザインタフェースコマンド「ａｄｄ＿ｕｓｅｒ」において、引数が、「ＩａａＳ＿ＩＤ」と「ｕｓｅｒ＿ＩＤ」と「ｐａｓｓｗｏｒｄ」と「ｔｅｎａｎｔ＿ｎａｍｅ」とであることを記憶する。
【００４０】
また、図４Ｂに示す例では、変換テーブル１１１は、コマンドＩＤ「ＩＤ１」に対応付けて、ＩａａＳ＿ＩＤ「クラウドシステム１」についてのシステムコマンドやＩａａＳ＿ＩＤ「クラウドシステム２」についてのシステムコマンドを記憶する。言い換えると、図４Ｂに示す例では、ユーザインタフェースコマンド「ａｄｄ＿ｕｓｅｒ」に相当するシステムコマンドとして、サービス提供システム「クラウドシステム１」におけるシステムコマンドと、サービス提供システム「クラウドシステム２」におけるシステムコマンドなどを記憶する。
【００４１】
また、図４Ｂに示す例では、変換テーブル１１１は、ＩａａＳ＿ＩＤ「クラウドシステム１」に対応付けて、システムコマンドとして、引数が「ｕｓｅｒ＿ＩＤ」となるコマンド「ｎｏｖａ−ｍａｎａｇｅ  ｕｓｅｒ  ｃｒｅａｔｅ」と、引数が「ｕｓｅｒ＿ＩＤ，ｔｅｎａｎｔ＿ｎａｍｅ」となるコマンド「ｎｏｖａ−ｍａｎａｇｅ  ｐｒｏｊｅｃｔ  ａｄｄ  −−ｕｓｅｒ＝  −ｐｒｏｊｅｃｔ＝」とを記憶する。言い換えると、図４Ｂに示す例では、変換テーブル１１１は、ユーザインタフェースコマンド「ａｄｄ＿ｕｓｅｒ」に相当する処理をサービス提供システム「クラウドシステム１」が実行する際には、引数が「ｕｓｅｒ＿ＩＤ」となるコマンド「ｎｏｖａ−ｍａｎａｇｅ  ｕｓｅｒ  ｃｒｅａｔｅ」と、引数が「ｕｓｅｒ＿ＩＤ，ｔｅｎａｎｔ＿ｎａｍｅ」となるコマンド「ｎｏｖａ−ｍａｎａｇｅ  ｐｒｏｊｅｃｔ  ａｄｄ  −−ｕｓｅｒ＝  −ｐｒｏｊｅｃｔ＝」とを実行することを記憶する。
【００４２】
なお、図４Ａ及び図４Ｂに示す例は一例であり、変換テーブル１１１に記憶される情報がこれに限定されるものではない。例えば、図４Ａ及び図４Ｂに示す例では、変換テーブル１１１は、２つのテーブルを有し、１つのテーブルに「コマンドＩＤ」と「ユーザインタフェースコマンド」と「ユーザインタフェースコマンド引数」とを対応付けて記憶し、他方のテーブルに「コマンドＩＤ」と「ＩａａＳ＿ＩＤ」と「システムコマンド」と「システムコマンド引数」とを対応付けて記憶する場合を例に説明した。言い換えると、ユーザインタフェースコマンドについての情報と、システムコマンドについての情報とを別のテーブルに記憶して上で、共通の識別情報を用いて紐付けされる場合を用いて説明した。ただし、これに限定されるものではなく、変換テーブル１１１は、「コマンドＩＤ」と「ユーザインタフェースコマンド」と「ユーザインタフェースコマンド引数」と「ＩａａＳ＿ＩＤ」と「システムコマンド」と「システムコマンド引数」とを対応付けて１つのテーブルにて記憶しても良い。
【００４３】
クライアントＩＰアドレステーブル１１２は、クライアント端末３００に払い出されたＩＰアドレスを記憶する。例えば、クライアントＩＰアドレステーブル１１２は、クライアント端末３００に払い出されたクライアント払出ＩＰアドレスと、ユーザを識別するユーザＩＤとを対応付けて記憶する。
【００４４】
図５は、第１の実施形態におけるクライアントＩＰアドレステーブルに記憶された情報の一例を示す図である。図５に示す例では、クライアントＩＰアドレステーブル１１２は、クライアント払出ＩＰアドレス「ＩＰアドレスＡ」とユーザＩＤ「ユーザＡ」とを対応付けて記憶する。言い換えると、図５に示す例では、クライアントＩＰアドレステーブル１１２は、ユーザＩＤ「ユーザＡ」により用いられているクライアント端末３００に対して、ＩＰアドレス「Ａ」を払い出すことを記憶する。
【００４５】
制御部１２０は、通信部１０１及び記憶部１１０と接続される。制御部１２０は、各種の処理手順などを規定したプログラムを記憶する内部メモリを有し、種々の処理を制御する。制御部１２０は、例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などである。
【００４６】
図１に示す例では、制御部１２０は、ユーザインタフェース提供部１２１と、変換部１２２と、ユーザ追加・削除処理機能部１２３と、クライアントＩＰアドレス管理機能部１２４と、クライアントＩＰアドレスアタッチ機能部１２５と、クライアント通信部１２６と、仮想マシン操作機能部１２７とを有する。以下では、制御部１２０の各部について簡単に説明するに留め、各部による処理の詳細な一例についてはシーケンス図を用いて後述する。
【００４７】
ユーザインタフェース提供部１２１は、運用者端末２００やクライアント端末３００にユーザインタフェースを提供する。ここで、運用者端末２００に提供されるユーザインタフェースは、それぞれ独自のシステムコマンドを用いる複数のサービス提供システム４００に関係なく、同一となる。ユーザインタフェース提供部１２１により提供されるユーザインタフェースでは、ユーザインタフェースコマンドが用いられる。
【００４８】
変換部１２２は、ユーザインタフェースコマンドを受信すると、受信したユーザインタフェースコマンドを変換テーブル１１１に基づいてシステムコマンドに変換する。具体的には、変換部１２２は、システム識別情報とユーザインタフェースコマンドとを受信すると、受信したユーザインタフェースコマンドに対応付けられた組み合わせのうち、受信した識別情報を含む組み合わせのシステムコマンドに変換する。
【００４９】
例えば、変換部１２２は、ユーザインタフェースコマンドであるadd＿userとユーザインタフェースコマンド引数とを受信すると、図４Ａに示すテーブルからコマンドＩＤの列を参照し、ユーザインタフェースコマンド「add＿user」に紐付けられているコマンドＩＤ「ＩＤ１」を取得する。そして、変換部１２２は、図４Ｂに示すテーブルのコマンドＩＤの列にて、コマンドＩＤ「ＩＤ１」を参照し、ＩａａＳ＿ＩＤを参照することで、実行するシステムコマンドを取得する。
【００５０】
ユーザ追加・削除処理機能部１２３は、サービス提供システム４００にユーザを追加するためのコマンドや削除するためのコマンドを送信する。なお、ユーザ追加・削除処理機能部１２３によりサービス提供システム４００に送信されるコマンドは、変換部１２２により変換された後のシステムコマンドである。
【００５１】
クライアントＩＰアドレス管理機能部１２４は、クライアント端末３００に払い出されるクライアントＩＰアドレスを管理する。また、クライアントＩＰアドレスアタッチ機能部１２５は、クライアント端末３００にクライアントＩＰアドレスを払い出す。
【００５２】
クライアント通信部１２６は、クライアント端末３００との通信を制御する。具体的には、クライアント端末３００からのコマンドを受信し、受信したコマンドに応じた処理を実行する。
【００５３】
仮想マシン操作機能部１２７は、サービス提供システム４００にて実行される仮想マシン４２１に関するコマンドをサービス提供システム４００に送信する。例えば、仮想マシン操作機能部１２７は、仮想マシン４２１を再起動するコマンドをサービス提供システム４００に送信する。なお、仮想マシン操作機能部１２７によりサービス提供システム４００に送信されるコマンドは、変換部１２２により変換された後のシステムコマンドである。
【００５４】
（処理の流れについて）
以下では、シーケンス図を用いて、連携サーバ１００による処理の流れについて、具体的な状況を用いて説明する。具体的には、ユーザを追加する場合、ユーザを削除する場合、クライアント端末３００をサービス提供システム４００と接続する場合、サービス提供システム４００の仮想マシン４２１を再起動する場合についてそれぞれ説明する。なお、説明の便宜上、シーケンス図を用いて説明する際には、運用者端末２００と、クライアント端末３００と、サービス提供システム４００とを併せて示す。なお、以下に説明する一連の処理手順は、以下に説明する一連の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
【００５５】
なお、以下に示すシーケンス図では、説明の便宜上、ユーザインタフェース提供部１２１について特に言及しないが、運用者端末２００やクライアント端末３００は、ユーザインタフェース提供部により提供されるユーザインタフェースにおいて用いられるユーザインタフェースコマンドを連携サーバ１００に送信する。
【００５６】
（ユーザを追加する場合における処理）
図６は、第１の実施形態におけるユーザを追加する場合における処理の流れの一例を示すシーケンス図である。以下では、運用者端末２００がサービス提供システム４００にユーザを追加する場合における処理の流れの一例について説明する。
【００５７】
図６に示すように、運用者端末２００は、ユーザ追加コマンドを送信する（ステップＳ１０１）。つまり、運用者端末２００は、ユーザを追加するためのコマンドを連携サーバ１００に送信する。例えば、運用者端末２００は、新たに追加するユーザのユーザＩＤとパスワード、テナント名、追加先となるサービス提供システム４００のＩａａＳ＿ＩＤとが運用者から入力され、ユーザを追加するためのコマンドを連携サーバ１００に送信する。なお、運用者端末２００は、ユーザインタフェースコマンドを送信する。
【００５８】
そして、ユーザ追加・削除処理機能部１２３は、ユーザ追加コマンドを変換部１２２に送信する（ステップＳ１０２）。つまり、ユーザインタフェースコマンドをそのままサービス提供システム４００に送信してもコマンドが機能しないことを踏まえ、ユーザ追加・削除処理機能部１２３は、ユーザインタフェースコマンドを変換部１２２に転送する。
【００５９】
そして、変換部１２２は、ユーザインタフェースコマンドをシステムコマンドに変換する（ステップＳ１０３）。具体的には、変換部１２２は、システム識別情報とユーザインタフェースコマンドとを受信すると、受信したユーザインタフェースコマンドに対応付けられた組み合わせのうち、受信した識別情報を含む組み合わせのシステムコマンドに変換する。
【００６０】
ここで、変換部１２２による処理について、ユーザインタフェースコマンド「ａｄｄ＿ｕｓｅｒ」とＩａａＳ＿ＩＤ「クラウドシステム１」とを含むユーザインタフェースコマンドを受信した場合を例にさらに説明する。この場合、変換部１２２は、変換テーブル１１１に含まれているレコードのうち、ユーザインタフェースコマンド「ａｄｄ＿ｕｓｅｒ」を含むレコードを識別し、ユーザインタフェースコマンド「ａｄｄ＿ｕｓｅｒ」に対応付けられたシステムコマンドのうち、ＩａａＳ＿ＩＤ「クラウドシステム１」に紐付けられたシステムコマンド「ｎｏｖａ−ｍａｎａｇｅ  ｕｓｅｒ  ｃｒｅａｔｅ」「ｎｏｖａ−ｍａｎａｇｅ  ｐｒｏｊｅｃｔ  ａｄｄ  −−ｕｓｅｒ＝  −ｐｒｏｊｅｃｔ＝」を取得し、変換後のシステムコマンドとする。
【００６１】
言い換えると、変換部１２２は、変換テーブル１１１に基づいて、ユーザインタフェースコマンド「ａｄｄ＿ｕｓｅｒ」をシステムコマンド「ｎｏｖａ−ｍａｎａｇｅ  ｕｓｅｒ  ｃｒｅａｔｅ」「ｎｏｖａ−ｍａｎａｇｅ  ｐｒｏｊｅｃｔ  ａｄｄ  −−ｕｓｅｒ＝  −ｐｒｏｊｅｃｔ＝」に変換する。
【００６２】
さらに詳細に説明すると、変換部１２２は、システムコマンドとして、「ｕｓｅｒ＿ＩＤ」と「ｐａｓｓｗｏｒｄ」とを引数とするコマンド「ｎｏｖａ−ｍａｎａｇｅ  ｕｓｅｒ  ｃｒｅａｔｅ」と、「ｕｓｅｒ＿ＩＤ」と「ｔｅｎａｎｔ＿ｎａｍｅ」とを引数とするコマンド「ｎｏｖａ−ｍａｎａｇｅ  ｐｒｏｊｅｃｔ  ａｄｄ  −−ｕｓｅｒ＝  −ｐｒｏｊｅｃｔ＝」とに変換する。この場合、サービス提供システム４００において、コマンド「ｎｏｖａ−ｍａｎａｇｅ  ｕｓｅｒ  ｃｒｅａｔｅ」とコマンド「ｎｏｖａ−ｍａｎａｇｅ  ｐｒｏｊｅｃｔ  ａｄｄ  −−ｕｓｅｒ＝  −ｐｒｏｊｅｃｔ＝」とが実行されることで、ユーザが追加されることになる。
【００６３】
なお、上述した説明では、変換部１２２が、ユーザインタフェースコマンドを２つのコマンドを含むシステムコマンドに変換される場合を例に示したが、これに限定されるものではない。例えば、変換部１２２は、ユーザインタフェースコマンドを１つのコマンドを含むシステムコマンドに変換することもあれば、３つ以上のコマンドを含むシステムコマンドに変換することもある。
【００６４】
図６の説明に戻る。その後、変換部１２２は、変換後のシステムコマンドをユーザ追加・削除処理機能部１２３に送信する（ステップＳ１０４）。例えば、変換部１２２は、システムコマンド「ｎｏｖａ−ｍａｎａｇｅ  ｕｓｅｒ  ｃｒｅａｔｅ」「ｎｏｖａ−ｍａｎａｇｅ  ｐｒｏｊｅｃｔ  ａｄｄ  −−ｕｓｅｒ＝  −ｐｒｏｊｅｃｔ＝」を送信する。
【００６５】
そして、ユーザ追加・削除処理機能部１２３は、ユーザ追加コマンドをサービス提供システム４００に送信する（ステップＳ１０５）。具体的には、ユーザ追加・削除処理機能部１２３は、変換部１２２により変換された後のシステムコマンドをサービス提供システム４００に送信する。例えば、ユーザ追加・削除処理機能部１２３は、システムコマンド「ｎｏｖａ−ｍａｎａｇｅ  ｕｓｅｒ  ｃｒｅａｔｅ」「ｎｏｖａ−ｍａｎａｇｅ  ｐｒｏｊｅｃｔ  ａｄｄ  −−ｕｓｅｒ＝  −ｐｒｏｊｅｃｔ＝」を送信する。
【００６６】
このようにして、連携サーバ１００の制御部１２０は、運用者端末２００からのコマンドを受信し、サービス提供システム４００のＡＰＩにシステムコマンドを送信する。すなわち、連携サーバ１００は、運用者端末２００に代理してコマンドをサービス提供システム４００に送信する。
【００６７】
その後、サービス提供システム４００では、クラウドコントローラ４１０がユーザを追加する一連の処理を実行する（ステップＳ１０６〜Ｓ１０９）。例えば、ユーザ情報管理機能部４１６が受信したユーザＩＤとパスワードとを対応付けて記憶し、テナント情報管理機能部４１７が受信したテナント名を記憶することで、ユーザ追加を行う（ステップＳ１０６）。また、例えば、サーバ起動処理機能部４１４は、仮想マシンを生成・デプロイを行い（ステップＳ１０７）、また、ネットワーク設定や（ステップＳ１０８）、仮想マシン用のＩＰアドレスの払い出しも行う（ステップＳ１０９）。そして、サービス提供システム４００は、ユーザ追加が完了した旨の通知を連携サーバ１００に送信する（ステップＳ１１０）。
【００６８】
そして、連携サーバ１００では、ユーザ追加・削除処理機能部１２３が、クライアント端末３００に払い出すためのクライアントＩＰを生成するための生成要求をクライアントＩＰアドレス管理機能部１２４に送信し（ステップＳ１１１）、クライアントＩＰアドレス管理機能部１２４がクライアントＩＰアドレスを生成する（ステップＳ１１２）。例えば、クライアントＩＰアドレスと、ユーザＩＤとを対応付けてクライアントＩＰアドレステーブル１１２に格納する。
【００６９】
そして、クライアントＩＰアドレス管理機能部１２４は、クライアントＩＰアドレスの生成が完了した旨の通知をユーザ追加・削除処理機能部１２３に送信し（ステップＳ１１３）、ユーザ追加・削除処理機能部１２３が、ユーザ追加処理が完了した旨の通知を運用者端末２００に送信する（ステップＳ１１４）。
【００７０】
（ユーザを削除する場合における処理）
図７は、第１の実施形態におけるユーザを削除する場合における処理の流れの一例を示すシーケンス図である。以下では、運用者端末２００がサービス提供システム４００からユーザを削除する場合における処理の流れの一例について説明する。
【００７１】
図７に示すように、運用者端末２００は、ユーザ削除コマンドを送信する（ステップＳ２０１）。つまり、運用者端末２００は、ユーザを削除するためのコマンドを連携サーバ１００に送信する。例えば、運用者端末２００は、削除するユーザのユーザＩＤとパスワード、テナント名、削除先となるサービス提供システム４００のＩａａＳ＿ＩＤとが運用者から入力され、ユーザを削除するためのコマンドを連携サーバ１００に送信する。なお、運用者端末２００は、ユーザインタフェースコマンドを送信する。
【００７２】
そして、ユーザ追加・削除処理機能部１２３は、ユーザ削除コマンドを変換部１２２に送信する（ステップＳ２０２）。そして、変換部１２２は、ユーザインタフェースコマンドをシステムコマンドに変換する（ステップＳ２０３）。具体的には、変換部１２２は、システム識別情報とユーザインタフェースコマンドとを受信すると、受信したユーザインタフェースコマンドを、受信したユーザインタフェースコマンドに対応付けられた組み合わせのうち、受信した識別情報を含む組み合わせのシステムコマンドに変換する。
【００７３】
そして、変換部１２２は、変換後のシステムコマンドをユーザ追加・削除処理機能部１２３に送信し（ステップＳ２０４）、ユーザ追加・削除処理機能部１２３が、ユーザ削除コマンドをサービス提供システム４００に送信する（ステップＳ２０５）。
【００７４】
その後、サービス提供システム４００では、クラウドコントローラ４１０がユーザを削除する一連の処理を実行する（ステップＳ２０６〜Ｓ２０９）。例えば、ユーザ情報管理機能部４１６が受信したユーザＩＤとパスワードとの対応付けを削除し、テナント情報管理機能部４１７が受信したテナント名を削除することで、ユーザ削除を行う（ステップＳ２０６）。また、例えば、サーバ起動処理機能部４１４は、仮想マシンを削除し（ステップＳ２０７）、ネットワーク設定を解除し（ステップＳ２０８）、仮想マシン用のＩＰアドレスを削除する（ステップＳ２０９）。そして、サービス提供システム４００は、ユーザ削除が完了した旨の通知を連携サーバ１００に送信する（ステップＳ２１０）。
【００７５】
そして、連携サーバ１００では、ユーザ追加・削除処理機能部１２３が、クライアント端末３００に払い出すためのクライアントＩＰを削除するための削除要求をクライアントＩＰアドレス管理機能部１２４に送信し（ステップＳ２１１）、クライアントＩＰアドレス管理機能部１２４がクライアントＩＰアドレスを削除する（ステップＳ２１２）。例えば、クライアントＩＰアドレスとユーザＩＤとの対応付けをクライアントＩＰアドレステーブル１１２から削除する。
【００７６】
そして、クライアントＩＰアドレス管理機能部１２４は、クライアントＩＰアドレスの削除が完了した旨の通知をユーザ追加・削除処理機能部１２３に送信し（ステップＳ２１３）、ユーザ追加・削除処理機能部１２３が、ユーザ削除処理が完了した旨の通知を運用者端末２００に送信する（ステップＳ２１４）。
【００７７】
（クライアント端末をサービス提供システムに接続する処理）
図８は、第１の実施形態におけるクライアント端末をサービス提供システムに接続する処理の流れの一例を示すシーケンス図である。以下では、クライアント端末３００をサービス提供システム４００に接続する場合における処理の流れの一例について説明する。以下では、サービス提供システム４００がユーザを認証した場合を例に説明する。
【００７８】
図８に示すように、クライアント端末３００は、サービス提供システム４００への接続要求を認証情報と併せて連携サーバ１００に送信する（ステップＳ３０１）。例えば、クライアント端末３００は、ユーザＩＤとパスワードとを連携サーバ１００に送信する。
【００７９】
そして、連携サーバ１００は、クライアント通信部１２６が、認証情報をサービス提供システム４００に転送する（ステップＳ３０２）。例えば、クライアント通信部１２６は、ユーザＩＤとパスワードとをサービス提供システム４００に転送する。
【００８０】
そして、サービス提供システム４００では、クラウドコントローラ４１０が、ユーザ認証を行う（ステップＳ３０３）。例えば、ユーザ情報管理機能部４１６がユーザ認証を行う。そして、クラウドコントローラ４１０は、ユーザを承認した場合には、ユーザを承認した旨の通知を送信する（ステップＳ３０４）。なお、ユーザが承認されなかった場合には、エラーとなり、その後、連携サーバ１００が承認されなかった旨の通知をサービス提供システム４００から受信し、処理が終了する。
【００８１】
なお、クライアント通信部１２６は、ＩａａＳ＿ＩＤをクライアント端末３００から受信した場合には、受信したＩａａＳ＿ＩＤにより識別されるサービス提供システム４００に転送する。また、クライアント端末３００は、ＩａａＳ＿ＩＤをクライアント端末３００から受信しなかった場合には、すべてのサービス提供システム４００に対して認証情報を送信し、ユーザを承認した旨の通知を受信すると、通知の送信元となるサービス提供システム４００と以降の処理を継続する。
【００８２】
図８の説明に戻る。連携サーバ１００は、ユーザを承認した旨の通知を受信すると、クライアント通信部１２６は、ユーザが承認された旨の通知をクライアント端末３００に送信し（ステップＳ３０５）、クライアントＩＰの払い出し要求をクライアントＩＰアドレスアタッチ機能部１２５に送信する（ステップＳ３０６）。
【００８３】
そして、クライアントＩＰアドレスアタッチ機能部１２５は、クライアントＩＰを取得する要求をクライアントＩＰアドレス管理機能部１２４に送信し（ステップＳ３０７）、クライアントＩＰアドレス管理機能部１２４が、ユーザＩＤに対応付けられたクライアント払出ＩＰアドレスを通知する（ステップＳ３０８）。ここでクライアントＩＰアドレス管理機能部１２４により通知されるのは、例えば、ユーザ追加時にクライアント端末３００に払い出されたクライアントＩＰアドレスである。
【００８４】
そして、クライアントＩＰアドレスアタッチ機能部１２５は、クライアントＩＰアドレスをクライアント端末３００に払い出し（ステップＳ３０９）、その後、クライアント端末３００から応答を受信する（ステップＳ３１０）。
【００８５】
そして、クライアントＩＰアドレスアタッチ機能部１２５は、クライアントＩＰアドレスの払い出しが完了した旨の通知をクライアント通信部１２６に送信し（ステップＳ３１１）、クライアント通信部１２６が、クライアント端末３００に接続が完了した旨の通知を行う（ステップＳ３１２）。
【００８６】
（サービス提供システムの仮想マシンを再起動する処理）
図９は、第１の実施形態におけるサービス提供システムの仮想マシンを再起動する処理の流れの一例を示すシーケンス図である。以下では、サービス提供システム４００の仮想マシン４２１を再起動する場合における処理の流れの一例について説明する。言い換えると、連携サーバ１００が、仮想マシン４２１を停止させる一連の処理を行った後に、仮想マシン４２１を起動させる一連の処理を行う場合について説明する。
【００８７】
図９に示すように、クライアント端末３００は、カオスマシンを再起動するためのコマンドを連携サーバ１００に送信すると（ステップＳ４０１）、連携サーバ１００のクライアント通信部１２６が、受信した仮想マシンを再起動するためのコマンドを仮想マシン操作機能部１２７に転送する（ステップＳ４０２）。なお、ここで、クライアント端末３００により送信されたコマンドは、ＩａａＳ＿ＩＤを含むユーザインタフェースコマンドであるものとする。
【００８８】
すると、連携サーバ１００では、仮想マシン操作機能部１２７が、受信した仮想マシンを停止するためのコマンドを変換部１２２に送信する（ステップＳ４０３）。そして、変換部１２２は、受信したユーザインタフェースコマンドをシステムコマンドに変換し（ステップＳ４０４）、仮想マシン４２１を停止するためのシステムコマンドを仮想マシン操作機能部１２７に送信する（ステップＳ４０５）。そして、仮想マシン操作機能部１２７が、仮想マシンの停止コマンドを送信する（ステップＳ４０６）。つまり、仮想マシン操作機能部１２７は、変換部１２２により変換された後のシステムコマンドをサービス提供システム４００に送信する。
【００８９】
その後、サービス提供システム４００では、クラウドコントローラ４１０が、仮想マシン４２１を停止し（ステップＳ４０７）、仮想マシンを停止した旨の通知を連携サーバ１００に送信する（ステップＳ４０８）。
【００９０】
そして、次に、仮想マシン操作機能部１２７は、受信した仮想マシンを起動するためのコマンドを変換部１２２に送信する（ステップＳ４０９）。そして、変換部１２２は、受信したユーザインタフェースコマンドをシステムコマンドに変換し（ステップＳ４１０）、仮想マシン４２１を起動するためのシステムコマンドを仮想マシン操作機能部１２７に送信する（ステップＳ４１１）。そして、仮想マシン操作機能部１２７が、仮想マシンの起動コマンドを送信する（ステップＳ４１２）。つまり、仮想マシン操作機能部１２７は、変換部１２２により変換された後のシステムコマンドをサービス提供システム４００に送信する。
【００９１】
その後、サービス提供システム４００では、クラウドコントローラ４１０が、仮想マシン４２１を起動し（ステップＳ４１３）、仮想マシンを停止した旨の通知を連携サーバ１００に送信する（ステップＳ４１４）。
【００９２】
そして、連携サーバ１００では、仮想マシン操作機能部１２７が、仮想マシンの再起動が完了した旨の通知をクライアント通信部１２６に送信し（ステップＳ４１５）、クライアント通信部１２６が、仮想マシンの再起動が完了した旨の通知をクライアント端末３００に送信する（ステップＳ４１６）。
【００９３】
（第１の実施形態による効果）
上述したように、第１の実施形態によれば、連携サーバ１００は、ユーザインタフェースコマンドに対応付けて複数のサービス提供システム４００ごとのシステムコマンド各々を記憶する。また、連携サーバ１００は、ユーザインタフェースコマンドを受信すると、受信したユーザインタフェースコマンドを変換テーブルに基づいてシステムコマンドに変換し、変換された後のシステムコマンドをサービス提供システム４００に送信する。この結果、複数のサービス提供システム４００を簡単に使用可能となる。
【００９４】
すなわち、今後、クラウドサービス等の浸透に伴い、ＩａａＳやＤａａＳの普及が見込まれる。例えば、スマートフォンやモバイル向けのＤａａＳの登場や、その他新規なＤａａＳの登場も予想される。第１の実施形態に係る連携サーバ１００によれば、ユーザインタフェースコマンドとシステムコマンドとを対応付けて格納して用いる。すなわち、共通化された「連携インタフェース」を新たに設け、連携インタフェース上の変換テーブル１１１に各サービス提供システム４００独自の操作コマンド仕様と対応する連携インタフェース上のラップコマンドを予め対応付けて追加しておき、運用管理者等の操作に伴い実行されたラップコマンドを、変換テーブル１１１に追加済みのサービス提供システム４００におけるシステムコマンドの仕様に基づき、サービス提供システム４００に適したコマンドに変換して実行する。この結果、スマートフォンやモバイル向けのＤａａＳの登場や、その他新規なＤａａＳが登場し、これらのＤａａＳやＩａａＳについての専用の管理ツールがなかったとしても、簡単に運用管理を行うことが可能となる。
【００９５】
このように、複数のサービス提供システム４００を簡単に運用管理することが可能となり、個々のサービス提供システム４００を手動にて管理する手法と比較して簡単に運用可能となる。手動にて運用するのではなく、管理ツールを用いて運用管理可能となることで、サービス構築段階においては、例えば、ネットワーク設計や仮想マシンの配置設計を手動にて行う必要がなくなる。また、サービス運用段階においては、例えば、テンプレート仮想マシン管理（例えば、仮想マシンイメージ追加やユーザへの割り当て）、ネットワーク管理（ユーザ追加・削除時のネットワーク設定）、仮想マシン管理（例えば、ＶＭ選択（ＶＭ配置設計に集約される）、ＶＭデプロイ）などを手動にて行う必要がなくなる。この結果、作業時間を大幅に削減可能となる。
【００９６】
また、個々のサービス提供システム４００のＡＰＩや操作性について習得する必要がなく、連携サーバ１００により提供されるユーザインタフェースについて習得すればよくなり、簡単に運用可能となる。
【００９７】
図１０は、第１の実施形態における効果の一例を示す図である。複数のサービス提供システム４００は、それぞれ異なる操作インタフェースを有する場合がある。このことを踏まえ、連携サーバ１００は、複数のサービス提供システム４００を一括して利用可能なユーザインタフェースコマンドを運用者に提供する。この結果、サービス提供システム４００ごとに異なる操作性の差異を運用者に感じさせることなく、効率的な利用が可能となる。例えば、運用者は、それぞれ操作性の異なるＩａａＳを複数用いて、操作性の差異を感じることなく、ＤａａＳサービスを運用することが可能となる。
【００９８】
図１１は、第１の実施形態における効果の一例を示す図である。図１１に示す例では、サービス提供システム４００各々がＩａａＳであり、それぞれ異なるＡＰＩを用いる場合を例に示す。また、図１１に示すように、クライアント端末３００がＤａａＳを用いる場合、クライアント端末３００から見たインタフェースが連携サーバ１００となる。この場合、第１の実施形態では、連携サーバ１００は、各ＩａａＳにて用いられるＡＰＩ各々について、ユーザインタフェースにて用いられるユーザインタフェースコマンドと対応付けて記憶する。言い換えると、各ＩａａＳにて用いられるＡＰＩ各々をラッピングする一連のコマンドとして、ユーザインタフェースコマンドを用いる。また、ここで、ユーザインタフェースコマンドに対応付けられるコマンドは任意の数で良い結果、独自のＡＰＩを有する新たなサービス提供システム４００が登場したとしても、新たにユーザインタフェースコマンドに対応付けて新たなサービス提供システム４００のシステムコマンドを紐付けることで、簡単に対応可能となる。なお、図１１に示す例では、ＤａａＳがＡｎｄｒｏｉｄ  ＤａａＳである場合を例にしめしたが、これに限定されるものではない。
【００９９】
また、第１の実施形態によれば、サービス提供システム４００に特段変更を加えることなく、連携サーバ１００を設けることで実現可能であり、簡単に実現可能となる。
【０１００】
また、第１の実施形態によれば、変換テーブル１１１は、ユーザインタフェースコマンドに対応付けて、サービス提供システム４００を識別するシステム識別情報とシステムコマンドとの組み合わせを１つ又は複数記憶する。また、連携サーバ１００は、システム識別情報とユーザインタフェースコマンドとを受信すると、受信したユーザインタフェースコマンドを、受信したユーザインタフェースコマンドに対応付けられた組み合わせのうち、受信したシステム識別情報を含む組み合わせのシステムコマンドに変換する。この結果、１つのユーザインタフェースを用いて複数のサービス提供システム４００各々を簡単に扱うことが可能となる。
【０１０１】
また、第１の実施形態によれば、変換テーブル１１１は、ユーザインタフェースコマンドに相当するシステムコマンドとして、サービス提供システム４００において用いられる１つ又は複数のコマンドを記憶する。この結果、ユーザインタフェースにて用いられるユーザインタフェースコマンドとシステムコマンドとを確実に対応付け可能となる。すなわち、サービス提供システム４００において用いられているコマンド各々と、ユーザインタフェースコマンドとが１対１で対応しているとは限らない場合が想定されるが、第１の実施形態によれば、変換テーブル１１１は、ユーザインタフェースコマンドに相当するシステムコマンドとして、サービス提供システム４００において用いられる１つ又は複数のコマンドを記憶することで、ユーザインタフェースコマンドとシステムコマンドとを確実に対応付け可能となる。
【０１０２】
（第２の実施形態）
さて、これまで第１の実施形態について説明したが、本発明は上述した実施形態以外にも、その他の実施形態にて実施されても良い。そこで、以下では、その他の実施例を示す。
【０１０３】
（一括送信）
例えば、連携サーバ１００は、複数のサービス提供システムに対するユーザインタフェースコマンドを受信すると、受信したユーザインタフェースコマンドを変換テーブル１１１に基づいてシステムコマンド各々に変換し、変換されたシステムコマンド各々をサービス提供システム各々にそれぞれ送信しても良い。
【０１０４】
例えば、複数のサービス提供システム４００各々が利用可能かを把握したい場合に、連携サーバ１００から各サービス提供システム４００各々にコマンドを送信することで、サービス提供システム４００を１つずつ手動にて利用可能かを調べる手法と比較して、簡単かつ迅速に把握することが可能となる。また、同様に、複数のサービス提供システム４００各々が利用可能かを把握したい場合に限定されることはない。例えば、サービス提供システム４００ごとに利用可能なＡＰＩが異なることを踏まえ、任意のコマンドが各サービス提供システム４００において実行可能かを把握したりしても良い。
【０１０５】
（システム構成）
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については（例えば、図１〜図１１）、特記する場合を除いて任意に変更することができる。
【０１０６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。図１に示す例では、クライアントＩＰアドレステーブル１１２を連携サーバ１００の外部装置としてネットワーク経由で接続するようにしても良い。
【０１０７】
図１２は、連携サーバの実現方法の一例を示す図である。図１２に示すように、連携サーバ１００は、サービス提供システム４００により提供されるサービスを用いて実現されても良い。例えば、連携サーバ１００は、ＩａａＳにより提供されるハードウェアリソースを用いて、仮想マシンとして実現されても良い。図１３に示す例では、連携サーバ１００が、ＤａａＳレイヤとＩａａＳレイヤとの間に介在する形で仮想マシンとして実現される場合を例に示した。
【０１０８】
（プログラム）
図１３は、連携サーバによる処理を実行するための連携プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図１３に例示するように、コンピュータ３０００は、例えば、メモリ３０１０と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０２０と、ネットワークインタフェース３０７０とを有する。コンピュータ３０００の各部はバス３１００によって接続される。
【０１０９】
メモリ３０１０は、図１３に例示するように、ＲＯＭ３０１１及びＲＡＭ３０１２を含む。ＲＯＭ３０１１は、例えば、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）等のブートプログラムを記憶する。
【０１１０】
ここで、図１３に例示するように、ハードディスクドライブ３０８０は、例えば、ＯＳ３０８１、アプリケーションプログラム３０８２、プログラムモジュール３０８３、プログラムデータ３０８４を記憶する。すなわち、開示の技術に係る更新プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール３０８３として、例えばハードディスクドライブ３０８０に記憶される。具体的には、上記実施例で説明した制御部１２０の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュールが、ハードディスクドライブ３０８０に記憶される。
【０１１１】
また、上記実施例で説明した記憶部１１０に記憶されるデータのように、連携プログラムによる情報処理に用いられるデータは、プログラムデータ３０８４として、例えばハードディスクドライブ３０８０に記憶される。そして、ＣＰＵ３０２０が、ハードディスクドライブ３０８０に記憶されたプログラムモジュール３０８３やプログラムデータ３０８４を必要に応じてＲＡＭ３０１２に読み出し、各種の手順を実行する。
【０１１２】
なお、連携プログラムに係るプログラムモジュール３０８３やプログラムデータ３０８４は、ハードディスクドライブ３０８０に記憶される場合に限られない。例えば、プログラムモジュール３０８３やプログラムデータ３０８４は、着脱可能な記憶媒体に記憶されても良い。この場合、ＣＰＵ３０２０は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、連携プログラムに係るプログラムモジュール３０８３やプログラムデータ３０８４は、ネットワーク（ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等）を介して接続された他のコンピュータに記憶されても良い。この場合、ＣＰＵ３０２０は、ネットワークインタフェースを介して他のコンピュータにアクセスすることで各種データを読み出す。
【０１１３】
（その他）
なお、本実施例で説明した連携プログラムは、インターネットなどのネットワークを介して配布することができる。また、連携プログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０１１４】
１００    連携サーバ
１０１    通信部
１１０    記憶部
１１１    変換テーブル
１１２    クライアントＩＰアドレステーブル
１２０    制御部
１２１    ユーザインタフェース提供部
１２２    変換部
１２３    ユーザ追加・削除処理機能部
１２４    クライアントＩＰアドレス管理機能部
１２５    クライアントＩＰアドレスアタッチ機能部
１２６    クライアント通信部
１２７    仮想マシン操作機能部
２００    運用者端末
３００    クライアント端末
４００    サービス提供システム
４０１    管理ネットワーク
４１０    クラウドコントローラ
４１１    管理インタフェース
４１２    ソフトウェアイメージ管理機能部
４１３    サーバ状態管理機能部
４１４    サーバ起動処理機能部
４１５    サーバ状態監視機能部
４１６    ユーザ情報管理機能部
４１７    テナント情報管理機能部
４２０    テナント
４２１    仮想マシン
４２２    起動エージェント
４２３    ソフトウェアイメージ格納部
４２４    個別設定・データ格納部
４２５    計算処理機能部
【図１】
2014092853.tif 000003
【図２】
2014092853.tif 000004
【図３】
2014092853.tif 000005
【図４Ａ】
2014092853.tif 000006
【図４Ｂ】
2014092853.tif 000007
【図５】
2014092853.tif 000008
【図６】
2014092853.tif 000009
【図７】
2014092853.tif 000010
【図８】
2014092853.tif 000011
【図９】
2014092853.tif 000012
【図１０】
2014092853.tif 000013
【図１１】
2014092853.tif 000014
【図１２】
2014092853.tif 000015
【図１３】
2014092853.tif 000016