(57)【要約】【課題】ＰａａＳ上で複数のアプリケーションを連携させる際のセキュリティの向上を図る。【解決手段】デプロイ装置１がアプリケーションデプロイ設定ファイルを入力して解析し、アプリケーション間で通信が行われる場合、デプロイ装置１がアプリケーション実行プラットフォーム５内部にアプリケーション間の通信経路を形成する。これにより、共用の仮想ルータ５１を介することなくアプリケーション間で通信が可能となり、さらに、利用者から直接アクセスされないアプリケーションに対して公開されたエンドポイントを発行する必要がなくなる。その結果、セキュリティの向上を図ることができる。【選択図】図１
2018022364.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション実行プラットフォームにアプリケーションをデプロイするコンピュータによる情報処理方法であって、
設定ファイルを入力するステップと、
前記設定ファイルを解析して複数のアプリケーション間の依存関係を特定するステップと、
前記複数のアプリケーション間で通信が行われる場合は、前記複数のアプリケーション及び前記アプリケーション実行プラットフォーム内部でアプリケーション間の通信を可能にするコネクタアプリケーションを前記アプリケーション実行プラットフォームにデプロイするとともに、前記コネクタアプリケーションを介する前記複数のアプリケーション間の通信経路を作成するステップと、
を有することを特徴とする情報処理方法。
【請求項２】
前記複数のアプリケーション間の通信経路を作成するステップは、前記複数のアプリケーションのうちの接続先の第１アプリケーションを前記アプリケーション実行プラットフォームにデプロイした後、接続先として前記第１アプリケーションを指定した前記コネクタアプリケーションを前記アプリケーション実行プラットフォームにデプロイし、接続先として前記コネクタアプリケーションを指定した接続元の第２アプリケーションを前記アプリケーション実行プラットフォームにデプロイすることを特徴とする請求項１記載の情報処理方法。
【請求項３】
アプリケーション実行プラットフォームにアプリケーションをデプロイする情報処理装置であって、
設定ファイルを入力する入力手段と、
前記設定ファイルを解析して複数のアプリケーション間の依存関係を特定する解析手段と、
前記複数のアプリケーション間で通信が行われる場合は、前記複数のアプリケーション及び前記アプリケーション実行プラットフォーム内部でアプリケーション間の通信を可能にするコネクタアプリケーションを前記アプリケーション実行プラットフォームにデプロイするとともに、前記コネクタアプリケーションを介する前記複数のアプリケーション間の通信経路を作成するデプロイ手段と、
を有することを特徴とする情報処理装置。
【請求項４】
前記デプロイ手段は、前記複数のアプリケーションのうちの接続先の第１アプリケーションを前記アプリケーション実行プラットフォームにデプロイした後、接続先として前記第１アプリケーションを指定した前記コネクタアプリケーションを前記アプリケーション実行プラットフォームにデプロイし、接続先として前記コネクタアプリケーションを指定した接続元の第２アプリケーションを前記アプリケーション実行プラットフォームにデプロイすることを特徴とする請求項３記載の情報処理装置。
【請求項５】
請求項１又は２に記載の情報処理方法をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバにアプリケーションをデプロイする技術に関する。
【背景技術】
【０００２】
ＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）は、アプリケーションを構築及び可動させるためのプラットフォームをインターネット上で提供するサービスである。非特許文献１のＣｌｏｕｄ  Ｆｏｕｎｄｒｙは、オープンソースのＰａａＳソフトウェアである。
【０００３】
Ｃｌｏｕｄ  Ｆｏｕｎｄｒｙでは、アプリケーションデプロイ設定ファイルを用いることにより、複数アプリケーションの一括デプロイを行うことが可能である。複数のアプリケーションは互いにＨＴＴＰ通信を行うことで連携できる。複数のアプリケーションを連携させる場合は、接続先のアプリケーションに外部に公開されたＵＲＬを作成し、接続元のアプリケーションがそのＵＲＬに対してＨＴＴＰアクセスすることで連携する。連携するアプリケーション間の通信は、システム全体で共用されている仮想ルータ・仮想ロードバランサを介して行われる。つまり、アプリケーション間の通信は、図５に示すように、パブリックなＵＲＬを用いた外部を経由した経路で行うことになる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“Cloud Foundry | The Industry Standard For Cloud Applications”, [online], インターネット〈 URL：http://www.cloudfoundry.org/ 〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のパブリックなＵＲＬを用いた連携方法には以下に示す２つのセキュリティ上の課題があると考える。
【０００６】
第１に、所有者が同じアプリケーション間の通信であっても、他のユーザと共用している仮想ルータを仲介して通信が行われる。
【０００７】
第２に、不要に公開されたエンドポイント（ＵＲＬ）を発行する必要がある。特定のアプリケーションのみからアクセスされれば良いだけのアプリケーションも他のアプリケーションと同様に扱われるため、本来不要であるはずのパブリックなＵＲＬを持つ必要がある。つまり、外部からアクセスされることを想定していないアプリケーションが外部からのアクセスを受けることがある。
【０００８】
本発明は、上記に鑑みてなされたものであり、ＰａａＳ上で複数のアプリケーションを連携させる際のセキュリティの向上を図ることを目的とする。
【課題を解決するための手段】
【０００９】
第１の本発明に係る情報処理方法は、アプリケーション実行プラットフォームにアプリケーションをデプロイするコンピュータによる情報処理方法であって、設定ファイルを入力するステップと、前記設定ファイルを解析して複数のアプリケーション間の連携関係を特定するステップと、前記複数のアプリケーション間で通信が行われる場合は、前記複数のアプリケーション及び前記アプリケーション実行プラットフォーム内部でアプリケーション間の通信を可能にするコネクタアプリケーションを前記アプリケーション実行プラットフォームにデプロイするとともに、前記コネクタアプリケーションを介する前記複数のアプリケーション間の通信経路を作成するステップと、を有することを特徴とする。
【００１０】
第２の本発明に係る情報処理装置は、アプリケーション実行プラットフォームにアプリケーションをデプロイする情報処理装置であって、設定ファイルを入力する入力手段と、前記設定ファイルを解析して複数のアプリケーション間の連携関係を特定する解析手段と、前記複数のアプリケーション間で通信が行われる場合は、前記複数のアプリケーション及び前記アプリケーション実行プラットフォーム内部でアプリケーション間の通信を可能にするコネクタアプリケーションを前記アプリケーション実行プラットフォームにデプロイするとともに、前記コネクタアプリケーションを介する前記複数のアプリケーション間の通信経路を作成するデプロイ手段と、を有することを特徴とする。
【００１１】
第３の本発明に係る情報処理プログラムは、上記情報処理方法をコンピュータに実行させることを特徴とする
【発明の効果】
【００１２】
本発明によれば、ＰａａＳ上で複数のアプリケーションを連携させる際のセキュリティの向上を図ることができる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態におけるデプロイ装置を含むシステムの全体構成図である。
【図２】アプリケーションデプロイ設定ファイルの例を示す図である。
【図３】アプリケーションが連携して動作する様子を示す図である。
【図４】本実施の形態におけるデプロイ処理の流れを示すシーケンス図である。
【図５】従来の連携するアプリケーションの通信経路を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を用いて説明する。
【００１５】
図１は、本実施の形態におけるデプロイ装置１を含むシステムの全体構成図である。デプロイ装置１は、アプリケーション実行プラットフォーム５にネットワークを介して接続される。デプロイ装置１は、アプリケーション実行プラットフォーム５にアプリケーションを配置し、設定を行う。アプリケーション実行プラットフォーム５としては、例えば、Ｃｌｏｕｄ  Ｆｏｕｎｄｒｙを用いることができる。アプリケーション実行プラットフォーム５にデプロイして動作させたアプリケーションは、仮想ルータ５１を介してアクセスされる。
【００１６】
デプロイ装置１は、入力部１１、解析部１２、及びデプロイ部１３を備える。入力部１１は、アプリケーションデプロイ設定ファイルを入力する。解析部１２は、アプリケーションデプロイ設定ファイルを解析し、連携するアプリケーションの依存関係を解決する。デプロイ部１３は、アプリケーションデプロイ設定ファイルに基づき、アプリケーションをアプリケーション実行プラットフォーム５に配置し、設定する。アプリケーション間で通信が行われる場合、デプロイ部１３は、アプリケーション実行プラットフォーム５内部にアプリケーション間の専用の通信経路を作成する。本実施の形態では、アプリケーション実行プラットフォーム５内部でのアプリケーション間のＨＴＴＰ通信を可能にするコネクタと呼ばれるアプリケーションを介して、アプリケーション間の専用の通信経路を作成する。
【００１７】
デプロイ装置１が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムはデプロイ装置１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００１８】
デプロイ装置１として、Ｃｌｏｕｄ  Ｆｏｕｎｄｒｙ  ＣＬＩ（Ｃｏｍｍａｎｄ  Ｌｉｎｅ  Ｉｎｔｅｒｆａｃｅ）をインストールしたコンピュータを用いることができる。Ｃｌｏｕｄ  Ｆｏｕｎｄｒｙ  ＣＬＩは、Ｃｌｏｕｄ  Ｆｏｕｎｄｒｙのコンポーネントの１つであり、Ｃｌｏｕｄ  ＦｏｕｎｄｒｙのＡＰＩを用いてＣｌｏｕｄ  Ｆｏｕｎｄｒｙを操作するためのコマンドラインツールである。本実施の形態では、Ｃｌｏｕｄ  Ｆｏｕｎｄｒｙ  ＣＬＩに機能を追加できるプラグイン機能（Ｃｌｏｕｄ  Ｆｏｕｎｄｒｙ  ＣＬＩ  Ｐｌｕｇｉｎ）を用いてＣｌｏｕｄ  Ｆｏｕｎｄｒｙ  ＣＬＩの機能を拡張してデプロイ装置１を構成した。Ｃｌｏｕｄ  Ｆｏｕｎｄｒｙ  ＣＬＩ  Ｐｌｕｇｉｎは、Ｇｏ言語で記述されたバイナリファイルである。ユーザは、サードパーティ製のＰｌｕｇｉｎのバイナリファイルをインストールして使用できる。
【００１９】
ここで、デプロイ装置１に入力するアプリケーションデプロイ設定ファイルについて説明する。図２は、アプリケーションデプロイ設定ファイルの例を示す図である。
【００２０】
アプリケーションデプロイ設定ファイルは、アプリケーション実行プラットフォーム５上にデプロイするアプリケーションのプロパティ及び連携するアプリケーションの依存関係を記述したＹＡＭＬ形式のテキストファイルである。図２の例では、デプロイするアプリケーションとしてａｐｐＡとａｐｐＢが記載されている。また、アプリケーションの依存関係として、ａｐｐＡには、ａｐｐＢに接続することを示す連携先のアプリケーション名が記載されている。この場合、図３に示すように、ａｐｐＡはａｐｐＢに対してＨＴＴＰ通信を行い、ａｐｐＡはａｐｐＢを利用する。デプロイ装置１は、アプリケーションをデプロイする際に、利用される順、つまりａｐｐＢ，ａｐｐＡの順でアプリケーションをデプロイするとともに、ａｐｐＡからａｐｐＢに対してＨＴＴＰ通信を開始できる経路をアプリケーション実行プラットフォーム５内部に作成する。
【００２１】
次に、本実施の形態におけるデプロイ処理の流れについて説明する。
【００２２】
図４は、本実施の形態におけるデプロイ処理の流れを示すシーケンス図である。
【００２３】
ユーザがデプロイ装置１にアプリケーションデプロイ設定ファイルを入力すると（ステップＳ１１）、デプロイ装置１はアプリケーションデプロイ設定ファイルを解析し、連携するアプリケーションの依存関係を解決する。ここで、アプリケーションデプロイ設定ファイルには、デプロイするアプリケーションとしてアプリＡとアプリＢが記載されており、アプリＡがアプリＢを利用することが記載されているものとする。アプリＡとアプリＢは、アプリケーション実行プラットフォーム５上で動作可能であり、ＨＴＴＰで通信することで連携動作するアプリケーションである。
【００２４】
デプロイ装置１は、アプリＢをアプリケーション実行プラットフォーム５にデプロイし（ステップＳ１２）、アプリＢのＩＰアドレスとポート番号を取得する（ステップＳ１３）。具体的には、デプロイ装置１は、アプリＢのアプリケーションソースコードなどの必要なファイルをアプリケーション実行プラットフォーム５へ送信し、アプリケーションデプロイ設定ファイルのプロパティに従って必要な設定を行い、アプリＢをアプリケーション実行プラットフォーム５上で動作させる。そして、アプリＢのＩＰアドレス及びポート番号を取得する。アプリＡ及びアプリＢのソースコード等は、予めデプロイ装置１に格納されていてもよいし、別の装置や記憶媒体から取得してもよい。
【００２５】
デプロイ装置１は、ステップＳ１３で取得したアプリＢのＩＰアドレスとポート番号を環境変数としてコネクタをデプロイし（ステップＳ１４）、コネクタのＩＰアドレスとポート番号を取得する（ステップＳ１５）。コネクタは、アプリケーション実行プラットフォーム５内部でアプリケーション間のＨＴＴＰ通信を可能にするアプリケーションである。コネクタは、環境変数として通知されたアプリＢのＩＰアドレスとポート番号にアクセスするように設定される。コネクタに接続先と接続元を指定すると、アプリケーション実行プラットフォーム５内部にＨＴＴＰ通信経路が形成される。図４の例では、接続先がアプリＢであり、接続元がアプリＡである。
【００２６】
デプロイ装置１は、ステップＳ１５で取得したコネクタのＩＰアドレスとポート番号を環境変数としてアプリＡをデプロイする（ステップＳ１６）。アプリＡは、環境変数として通知されたコネクタのＩＰアドレスとポート番号にアクセスするように設定される。これにより、アプリＡからアプリＢに対するＨＴＴＰ通信はコネクタでプロキシされるので、アプリケーション実行プラットフォーム５の外部を通ることがなくなり、アプリＢのパブリックなＵＲＬも必要なくなる。
【００２７】
アプリＡのパブリックなＵＲＬが発行されると、仮想ルータ５１は、そのＵＲＬにアプリＡのＩＰアドレスとポート番号をバインドし、アプリＡは外部からのアクセスを受け付け可能になる（ステップＳ１７）。例えば、ＵＲＬとしてａｐｐ１．ｃｏｍがアプリＡにバインドされると、利用者はａｐｐ１．ｃｏｍに対してＨＴＴＰ通信によりアクセスすることで、アプリＡとアプリＢを利用することが可能となる。
【００２８】
以上の処理によって、連携するアプリＡとアプリＢがアプリケーション実行プラットフォーム５上で動作を開始する。従来の方法でデプロイした場合は図５に示すように外部を経由して連携していたアプリケーションであっても、アプリケーションデプロイ設定ファイルに連携するアプリケーション間の依存関係を指定し、本実施の形態のデプロイ装置１によってアプリケーションをデプロイすることで、アプリケーション実行プラットフォーム５の内部でアプリケーション間の通信を可能にする通信経路が作成される。
【００２９】
以上説明したように、本実施の形態によれば、デプロイ装置１がアプリケーションデプロイ設定ファイルを入力して解析し、アプリケーション間で通信が行われる場合、デプロイ装置１がアプリケーション実行プラットフォーム５内部にアプリケーション間の通信経路を形成することにより、共用の仮想ルータ５１を介することなくアプリケーション間で通信が可能となり、さらに、利用者から直接アクセスされないアプリケーションに対して公開されたエンドポイントを発行する必要がなくなるので、セキュリティの向上を図ることができる。
【符号の説明】
【００３０】
１…デプロイ装置
１１…入力部
１２…解析部
１３…デプロイ部
５…アプリケーション実行プラットフォーム
５１…仮想ルータ
【図１】
2018022364.tif 000003
【図２】
2018022364.tif 000004
【図３】
2018022364.tif 000005
【図４】
2018022364.tif 000006
【図５】
2018022364.tif 000007