(57)【要約】【課題】オンプレミスとクラウドプラットフォーム間のハイブリッドアプリケーションオペレーティングを提供する。【解決手段】クラウドリソースを消費する要求がオンプレミスアプリケーションから受信される。前記オンプレミスアプリケーションは、クラウドアプリケーションランタイムのローカルバージョンに展開されている。前記クラウドアプリケーションランタイムの前記ローカルバージョンは、オンプレミスプラットフォームにおいてローカルにインストールされている。前記要求は、セキュアトンネルを介して前記オンプレミスプラットフォームから前記要求されたクラウドリソースにフォワードされる。前記要求されたクラウドリソースからの前記要求は、前記セキュアトンネルを介して前記要求しているオンプレミスアプリケーションにフォワードバックされる。【選択図】図１
2018101445.tif 000002
【特許請求の範囲】
【請求項１】
オンプレミスプラットフォームに展開されたオンプレミスアプリケーションによりクラウドプラットフォームのクラウドリソースを消費するコンピュータ実施方法であって、前記方法は、
前記クラウドプラットフォーム内で実行されている接続エージェントにおいて、前記クラウドリソースを消費する要求を前記オンプレミスアプリケーションから受信するステップであって、前記オンプレミスアプリケーションは、前記オンプレミスプラットフォーム上にインストールされているクラウドアプリケーションランタイムのローカルバージョンに展開され、前記要求は、セキュアトンネルを介して、前記オンプレミスプラットフォームから前記接続エージェントへフォワードされる、ステップと、
前記クラウドリソースから前記要求しているオンプレミスアプリケーションへ応答をフォワードするステップであって、前記応答は、セキュアトンネルを介して前記接続エージェントによりフォワードされる、ステップと、
を具備することを特徴とするコンピュータ実施方法。
【請求項２】
前記接続エージェントにより、前記要求を前記クラウドリソースへフォワードするステップと、
前記接続エージェントにおいて、前記要求されたクラウドリソースから応答を受信するステップと、
をさらに具備することを特徴とする請求項１に記載の方法。
【請求項３】
前記オンプレミスプラットフォームにインストールされているクラウドコネクタにおいて、前記要求を受信するステップと、
前記セキュアトンネルを介して前記クラウドコネクタにより、前記要求を前記接続エージェントにフォワードするステップと、
をさらに具備することを特徴とする請求項１に記載の方法。
【請求項４】
前記オンプレミスアプリケーションと、前記クラウドプラットフォームとの間の通信を可能にするために、前記オンプレミスプラットフォームにインストールされているクラウドコネクタと、前記接続エージェントにインスタンスとの間に前記セキュアトンネルを確立するステップをさらに具備することを特徴とする請求項１に記載の方法。
【請求項５】
プロキシを介して、前記クラウドアプリケーションランタイムの前記ローカルバージョンから前記接続エージェントの第１インスタンスへの第１接続を開始するステップと、
前記第１接続を介して、前記オンプレミスアプリケーションにより前記クラウドリソースを消費するステップと、
をさらに具備することを特徴とする請求項１に記載の方法。
【請求項６】
クラウドコネクタから前記クラウドアプリケーションランタイム内で実行されている前記接続エージェントの第２インスタンスへの第２接続を開始するステップと、
前記第２接続を介して、前記クラウドプラットフォームに展開されているクラウドアプリケーションにオンプレミスリソースを提供するステップと、
をさらに具備することを特徴とする請求項１に記載の方法。
【請求項７】
前記接続エージェントを前記オンプレミスアプリケーションの所定のクラウドアカウントと関連付けるステップをさらに具備することを特徴とする請求項１に記載の方法。
【請求項８】
前記接続エージェントで前記要求を受信すると、所定のクラウドアカウントの証明書を検証するステップをさらに具備することを特徴とする請求項６に記載の方法。
【請求項９】
クラウドプラットフォームに展開されたクラウドアプリケーションによりオンプレミスプラットフォームのオンプレミスリソースを消費するコンピュータ実施方法であって、前記方法は、
前記クラウドプラットフォーム内で実行されている接続エージェントにおいて、前記オンプレミスリソースを消費する要求を前記クラウドアプリケーションから受信するステップであって、前記クラウドアプリケーションは、前記クラウドプラットフォーム上にインストールされているクラウドアプリケーションランタイムに展開される、ステップと、
セキュアトンネルを介して、前記オンプレミスリソースから前記要求しているクラウドアプリケーションに応答をフォワードするステップであって、前記応答は、前記接続エージェントによりフォワードされる、ステップと、
を具備することを特徴とするコンピュータ実施方法。
【請求項１０】
前記応答を前記接続エージェントに前記セキュアトンネルを介してフォワードするステップをさらに具備することを特徴とする請求項９に記載の方法。
【請求項１１】
前記オンプレミスプラットフォームにインストールされているクラウドコネクタにおいて前記要求を受信するステップであって、前記要求は、前記セキュアトンネルを介してフォワードされる、ステップと、
前記要求を前記オンプレミスリソースに前記クラウドコネクタによりフォワードするステップと、
をさらに具備することを特徴とする請求項９に記載の方法。
【請求項１２】
前記クラウドコネクタにおいて、前記要求したオンプレミスリソースから前記応答を受信するステップをさらに具備することを特徴とする請求項１１に記載の方法。
【請求項１３】
クラウドコネクタと、前記クラウドアプリケーションと前記オンプレミスプラットフォーム間の通信を許可する前記接続エージェントのインスタンスとの間の前記セキュアトンネルを確立するステップをさらに具備することを特徴とする請求項９に記載の方法。
【請求項１４】
クラウドコネクタから前記クラウドアプリケーションランタイムで実行されている前記接続エージェントへの接続を開始するステップと、
前記クラウドアプリケーションにより前記接続を介して前記オンプレミスリソースを消費するステップと、
をさらに具備することを特徴とする請求項９に記載の方法。
【請求項１５】
オンプレミスプラットフォームに展開されたオンプレミスアプリケーションによりクラウドリソースを消費するコンピュータシステムであって、
前記システムは、
コンピュータ実行可能命令を格納するメモリと、
前記命令を実行する、前記メモリに結合されている少なくとも１つのコンピュータプロセッサと、
を具備し、
前記命令の実行により行われる動作は、
クラウドプラットフォーム内で実行されている接続エージェントにおいて、前記オンプレミスアプリケーションから要求を受信して前記クラウドリソースを消費するステップであって、前記オンプレミスアプリケーションは、前記オンプレミスプラットフォーム上にインストールされているクラウドアプリケーションランタイムのローカルバージョンに展開され、前記要求は、セキュアトンネルを介して、前記オンプレミスプラットフォームから前記接続エージェントへフォワードされる、ステップと、  前記クラウドリソースから前記要求しているオンプレミスアプリケーションへ応答をフォワードするステップであって、前記応答は、前記セキュアトンネルを介して前記接続エージェントによりフォワードされる、ステップと、
を具備することを特徴とするコンピュータシステム。
【請求項１６】
前記動作は、
前記接続エージェントにより、前記クラウドリソースへ前記要求をフォワードするステップと、
前記接続エージェントにおいて、前記要求されたクラウドリソースから応答を受信するステップと、
をさらに具備することを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記動作は、
前記オンプレミスプラットフォームにインストールされているクラウドコネクタにおいて前記要求を受信するステップと、
前記要求を前記接続エージェントへ前記クラウドコネクタにより前記セキュアトンネルを介してフォワードするステップと、
をさらに具備することを特徴とする請求項１５に記載のシステム。
【請求項１８】
前記動作は、
クラウドコネクタと、前記接続エージェントとの間の前記セキュアトンネルを確立し、前記オンプレミスアプリケーションと前記クラウドプラットフォームの間の通信を許可するステップ
をさらに具備することを特徴とする請求項１５に記載のシステム。
【請求項１９】
前記動作は、
プロキシを介して、前記クラウドアプリケーションランタイムの前記ローカルバージョンから前記接続エージェントの第１インスタンスへの第１接続を開始するステップと、
前記第１接続を介して、前記オンプレミスアプリケーションにより、前記クラウドリソースを消費するステップと、
をさらに具備することを特徴とする請求項１５に記載のシステム。
【請求項２０】
前記動作は、
クラウドコネクタから前記クラウドアプリケーションランタイムにおいて実行されている前記接続エージェントの第２インスタンスへの第２接続を開始するステップと、
前記第２接続を介して、前記クラウドプラットフォームに展開されているクラウドアプリケーションに、オンプレミスリソースを提供するステップと、
をさらに具備することを特徴とする請求項１５に記載のシステム。
【請求項２１】
前記動作は、
前記接続エージェントを前記オンプレミスアプリケーションの所定のクラウドアカウントと関連付けるステップと、
前記接続エージェントにおいて前記要求を受信すると、前記所定のクラウドアカウントの証明書を検証するステップと、
をさらに具備することを特徴とする請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンプレミスとクラウドプラットフォーム間のハイブリッドアプリケーション動作に関する。
【背景技術】
【０００２】
オンプレミス(自社運用)ソフトウェア納入(delivery)モデルは、企業が、サーバのようなハードウェアを購入すること、ソフトウェアライセンスに資産を投資すること、メンテナンスやサポートのための専用のITスタッフに投資すること、などを必要とする、ソフトウェア展開（deployment）のモデルである。オンプレミスは、例えば企業構内(premises)のような、企業が組織内でアプリケーションを展開する、ソフトウェア展開の伝統的なモデルである。オンプレミスコンピューティング基盤のための初期投資は、一般的に高いが、長期間利益を生むことができる。オンプレミスモデルの一つの強み(advantage)は、企業がシステムとデータを管理することである。オンプレミスプラットフォームは、企業データが、例えば内部のプライベートネットワークの中のように内部で格納され、処理されるように、クラウドプラットフォームより安全だと考えられている。
クラウドコンピューティングは、広く採用され、発展している(evolving)コンセプトである。一般に、クラウドコンピューティングは、インターネット経由でネットワーク、サーバ、ストレージ、アプリケーション、機能性、それと同様なもののような、設定可能なコンピューティングリソースのプールを共有する、ユビキタス、便利さ(convenient)、そしてオンデマンドアクセスを可能にするモデルのことを指す。コンピューティングリソースのプロバイダと、それらの顧客の双方にとって、クラウドコンピューティングに連携する多くの利益がある。例えば顧客は、アプリケーションを実行するのに必要なハードウェアとソフトウェアを生成し管理することのコストと複雑性なしにクラウドプロバイダによって供給されるクラウド基盤で、いろいろなビジネスアプリケーションを発展させ(develop)、展開し得る。顧客は、例えばネットワーク、サーバ、オペレーティングシステム、ストレージ等を含む、基になる(underlying)クラウド基盤を管理または制御する必要はないが、展開された(deploy)アプリケーションをいまだ制御(control over)している。一方で、プロバイダのコンピューティングリソースは、クライアントの負荷に応じて、動的に割り当て(assigned)や再割り当てされた(reassigned)異なる物理的、仮想的なリソースを多数の顧客に提供することが可能である。その上、クラウドリソースとアプリケーションは、インターネット経由でアクセス可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１２／０１２４１２９号明細書
【特許文献２】特表２００２−５０５４７１号公報
【特許文献３】特開２０１３−１４５４５７号公報
【非特許文献】
【０００４】
【非特許文献１】清水航，Ｊａｖａ２コンピューティングの可能性  Ｊａｖａ２  ＳＤＫ  ｖ１．２，Ｃｏｍｐｕｔｏｐｉａ，日本，株式会社コンピュータ・エージ社，１９９９年  ４月  １日，第34巻，第391号，p.34-38
【発明の概要】
【課題を解決するための手段】
【０００５】
オンプレミスプラットフォームに展開されたオンプレミスアプリケーションによりクラウドプラットフォームのクラウドリソースを消費するコンピュータ実施方法は、前記クラウドプラットフォーム内で実行されている接続エージェントにおいて、前記クラウドリソースを消費する要求を前記オンプレミスアプリケーションから受信するステップであって、前記オンプレミスアプリケーションは、前記オンプレミスプラットフォーム上にインストールされているクラウドアプリケーションランタイムのローカルバージョンに展開され、前記要求は、セキュアトンネルを介して、前記オンプレミスプラットフォームから前記接続エージェントへフォワードされる、ステップと、前記クラウドリソースから前記要求しているオンプレミスアプリケーションへ応答をフォワードするステップであって、前記応答は、セキュアトンネルを介して前記接続エージェントによりフォワードされる、ステップと、を具備する。
クラウドプラットフォームに展開されたクラウドアプリケーションによりオンプレミスプラットフォームのオンプレミスリソースを消費するコンピュータ実施方法は、前記クラウドプラットフォーム内で実行されている接続エージェントにおいて、前記オンプレミスリソースを消費する要求を前記クラウドアプリケーションから受信するステップであって、前記クラウドアプリケーションは、前記クラウドプラットフォーム上にインストールされているクラウドアプリケーションランタイムに展開される、ステップと、セキュアトンネルを介して、前記オンプレミスリソースから前記要求しているクラウドアプリケーションに応答をフォワードするステップであって、前記応答は、前記接続エージェントによりフォワードされる、ステップと、を具備する。
オンプレミスプラットフォームに展開されたオンプレミスアプリケーションによりクラウドリソースを消費するコンピュータシステムは、コンピュータ実行可能命令を格納するメモリと、前記命令を実行する、前記メモリに結合されている少なくとも１つのコンピュータプロセッサと、を具備し、前記命令の実行により行われる動作は、前記クラウドプラットフォーム内で実行されている接続エージェントにおいて、前記オンプレミスアプリケーションから前記要求を受信して前記クラウドリソースを消費するステップであって、前記オンプレミスアプリケーションは、前記オンプレミスプラットフォーム上にインストールされているクラウドアプリケーションランタイムのローカルバージョンに展開され、前記要求は、セキュアトンネルを介して、前記オンプレミスプラットフォームから前記接続エージェントへフォワードされる、ステップと、前記クラウドリソースから前記要求しているオンプレミスアプリケーションへ応答をフォワードするステップであって、前記応答は、前記セキュアトンネルを介して前記接続エージェントによりフォワードされる、ステップと、を具備する。
【０００６】
請求項は、実施形態を詳細に説明する。前記実施形態は、同じ参照符号は、類似した要素を示している、添付の図面において限定されるのではなく、あくまで例として例示されている。実施形態は、その利点と共に、添付されている図面と併せた以下の詳細な説明から最もよく理解し得る。
【図面の簡単な説明】
【０００７】
【図１】一つの実施形態に従う、オンプレミスプラットフォームとクラウドプラットフォーム間で動作する１つまたは複数のハイブリッドアプリケーションをイネーブルする典型的なコンピュータシステム構成を、例示しているブロック図である。
【図２】一つの実施形態に従う、オンプレミスプラットフォームに展開されたアプリケーションによってクラウドリソースを消費するための手順を例示しているフロー図表である。
【図３】一つの実施形態に従うクラウドプラットフォームに展開されたアプリケーションから、オンプレミスリソースを消費するための手順を例示しているフロー図表である。
【図４】一つの実施形態に従う、オンプレミスプラットフォームとクラウドプラットフォーム間のアプリケーションのための相互運用性(interoperability)を構成するための手順を例示しているフロー図表である。
【図５】一つの実施形態に従う、オンプレミスプラットフォームとクラウドプラットフォーム間のアプリケーションの相互運用性を許可する典型的な構成を例示している。
【図６】一つの実施形態に従う、典型的なコンピュータシステムを例示しているブロック図表である。
【発明を実施するための形態】
【０００８】
オンプレミス（自社運用）とクラウドプラットフォーム間のハイブリッドアプリケーション動作のための手法の実施形態が、本明細書で説明される。以下の説明において、多数の具体的な詳細が明らかにされることで、実施形態が十分に理解される。しかし、前記実施形態は、１またはより多くの具体的な詳細なしに、または他の、方法、構成要素(components)、マテリアルなどにより実行され得ることを、当業者であれば理解しうる。他のインスタンスにおいて、既知の構造、マテリアル、または動作は、示されておらず又詳細に説明しない。
【０００９】
本明細書を通じて「１つの実施形態(one embodiment)」、「この実施形態(this embodiment)」や類似の句は、実施形態に関連して説明されている特定の特徴、構造、又は特性が１つまたは複数の実施形態のうちの少なくとも１つに含まれていることを意味している。したがって、この明細書のいたる所にある句は、必ずしも同一の実施形態を参照しているわけではない。さらに、特定の特徴、構造、または特性は、１つまたは複数の実施形態において任意の適切な方法統合され得る。
【００１０】
会社は、アプリケーションの実行を、完全にオンプレミスか、または完全にクラウドプラットフォーム上で行うかを選び得る。しかし、クラウドプラットフォームとオンプレミスプラットフォームのどちらにも有利な点と不利な点がある。クラウドプラットフォームの安全性とコンプライアンスに関連する問題は、１つの不利な点になり得る。一方で、オンプレミスプラットフォームにとって、コストは不利な点になり得る。オンプレミス基盤の初期投資が高くなり得るため、仮にそうなったとしても、既にオンプレミスプラットフォームに投資をしている会社は、リターンを最大限にして、それらの初期投資を守るためにクラウドプラットフォームの段階的な採用を好む。それゆえ、ハイブリッドソフトウェア納入モデルはそのような会社により多くの価値をもたらし得る。ハイブリッド納入モデルは、例えばオンデマンド式の、オンプレミスとクラウド間のハイブリッドモデルである。例えば、アプリケーションが敏感な(sensitive)データと共にオンプレミスプラットフォームで動作する場合において、そのようなデータがクラウドプラットフォームに格納されるとともにインターネット経由でアクセスされることは望ましくないであろう。そのような場合には、ハイブリッドソフトウェア納入が、オンプレミスプラットフォーム上で動作しているアプリケーション動作によって消費され得るクラウドサービスで使用され得る。ハイブリッドソフトウェア納入モデルが適切であり得る別の局面は、会社が彼らの現存のオンプレミスアプリケーションをクラウドプラットフォーム上で実行することを好むときである。例えば、あるときにオンプレミスを実行し、動作しているビジネスアプリケーションは、例えば、機能性と、前記クラウドプラットフォームで提供される現代的な開発環境及びモデルを消費するように、クラウドプラットフォームに向かって拡張され(extended)、または移行され(migrated)得る。しかし、オンプレミスで動作するアプリケーションをイネーブルし、クラウド上で動作するために、会社は、新しいアプリケーションの開発と同等のコストを負担しなければならなくなり、オンプレミス投資のより悪い保護という結果になりうる。また、アプリケーションがクラウドプラットフォームに移行されるとき、前記アプリケーションの２つのバージョンがオンプレミスとクラウドプラットフォームのために維持される必要があり得、そのアプリケーションのために維持費用が増加する。
【００１１】
オンプレミスか、又はクラウドのどちらかのソフトウェア納入モデルを適用する会社は、通常、安全と費用の間でバランスを取らなければならないであろう。１つの実施形態において、１つまたは複数のアプリケーションを修正せずに、オンプレミスとクラウドプラットフォームの両方で展開された１つまたは複数のアプリケーションを可能にするようにハイブリッド納入モデルが、実装される。アプリケーションのオリジナルソースコードを修正せずに、オンプレミスとクラウドプラットフォームの双方上で展開され、実行されることが可能なアプリケーションは、ここでは、ハイブリッドアプリケーションと呼ばれる。例えば、ハイブリッドアプリケーションは、オンプレミスプラットフォーム上で展開され、及び／又は、実行され得、クラウドプラットフォーム(例えば、公共の、または、仮想の非公開のクラウド)によって提供されるサービスまたは他のリソースを消費する。さらに、ハイブリッドアプリケーションは、クラウドプラットフォーム上で展開され、及び／又は、実行され得、バックエンドシステムなどのオンプレミスプラットフォームのリソースを消費する。
【００１２】
図１は、一つの実施形態に従う、オンプレミスプラットフォーム120とクラウドプラットフォーム110間で動作する１つまたは複数のハイブリッドアプリケーションを可能にするコンピュータシステム構成100を例示している。さまざまな実施形態において、クラウドプラットフォーム110は、他の構成要素間で、アプリケーションランタイム150のような１つまたは複数のオンデマンドランタイムプラットフォームを具備する。クラウドプラットフォーム110は、クラウド基盤プロバイダのコンピューティングリソースがマルチテナント型のモデルを使用して複数の消費者に役立つためにプールされる、
リソースプールのような機能性を提供し得る。クラウドプラットフォーム110が提供し得る他の機能性は、順応性(elasticity)である。順応性とは、コンピューティングリソースを弾力的に提供し又は解放して需要に見合うように調整するためのクラウドプラットフォーム110の能力(capability)を指す。クラウドプラットフォーム110はまた、例えば、ストレージ、処理、帯域幅、そしてアクティブユーザーアカウントなどのサービスのタイプに適切な抽象度のいくつかのレベルにおいて、クラウドプラットフォーム110が自動的に制御、監視、報告、リソースの使用の最適化する能力(capability)を指す計量特性(metering characteristic)を持ち得る。
【００１３】
クラウドプラットフォーム110は、物理層と抽象化層の両方を含んでいると見られ得る。物理層は、提供されるクラウドサービスを支えるためのハードウェアリソースから成り得、一般に、サーバ、ストレージユニット、ネットワーク構成要素などを含み得る。抽象化層は、クラウドプラットフォーム110によって提供される必須の機能を現す(manifests)物理層に展開されたソフトウェアを含み得る。例えば、クラウドプラットフォーム110はアプリケーションランタイム150のようなアプリケーションランタイム、ユーザーインターフェイス(UI)開発ツールキット、内部構成、クラウドサービス135のようなクラウドサービスを提供し得る。代表的なクラウドサービス135は、接続サービス、パーシステンスサービス、識別サービス、フィードバックサービス139、文書サービス137、翻訳サービス、コラボレーションサービス、モバイルサービスなどを含み得る。クラウドプラットフォーム110により提供される機能は、クラウドプラットフォーム110のアプリケーションランタイム150上のソフトウェアアプリケーションを開発し、展開するために顧客によって使用され得る。さまざまな実施形態において、クラウドプラットフォーム110は例えば、配置、導入、提供（provisioning）およびアプリケーションの保守のようなアプリケーションライフサイクルプロセスのためのサポートもまた提供し得る１つの実施形態において、クラウドプラットフォーム110は、Java(登録商標)で実装されたプラットフォーム・アズ・ア・サービス（サービスとしてのプラットフォーム：PaaS）ソリューションになり得る。そのようなPaaSの提供物（offering）の例は、SAP HANA クラウドプラットフォームであろう。
【００１４】
オンプレミスプラットフォーム120は、オンプレミスプラットフォーム120の顧客のようなエンティティの構内(premises)上でインストールされ、動作される、コンピューティングプラットフォームである。オンプレミスプラットフォーム120は、アプリケーションサーバ140とツール125のような機能を提供し得る。ツール125は、ソフトウェアライフサイクル管理、ソフトウェアモニタリングなどのための機能を提供し得る。
【００１５】
１つの実施形態において、クラウディフィア(cloudifier)130構成要素が、実装されている。クラウディフィア130は、オンプレミスプラットフォーム120の拡張であり、オンプレミスプラットフォーム120とクラウドプラットフォーム110の間のアプリケーションの移行(migration)のための環境を提供する。クラウディフィア130は、ハイブリッドアプリケーションを開発、展開、そして実行するための環境をさらに提供する。クラウディフィア130は、ツール125またはアプリケーションサーバ140のようなオンプレミスプラットフォーム120内のシステムとモジュールに、１つまたは複数のクラウドアプリケーションランタイムを公開する(expose)。したがって、クラウディフィア130は、オンプレミスプラットフォーム120に、クラウドアプリケーションランタイム132、136を組み込んでいる（integrate）。例えば、クラウディフィア130は、アプリケーションサーバ140と、ツール125が組み込まれている。クラウディフィア130は、クラウドプラットフォーム110にオンプレミスプラットフォーム120の内部システムを接続する。例えば、クラウディフィア130を通してクラウドプラットフォーム110に接続され得るオンプレミスプラットフォーム120のシステムは、統合型(業務横断型)業務ソフトウェア(ERP)システム、顧客関係管理(CRM)システム、プライベートクラウド等になり得る。一度クラウディフィア130を通じて接続されると、オンプレミスプラットフォーム120のシステムは、他のオンデマンドサービス間でクラウドサービス135を使用し得る。
【００１６】
クラウディフィア130は、クラウドアプリケーションランタイム132やクラウドアプリケーションランタイム136のような、１つまたは複数のアプリケーションランタイムを含み得る。一つの実施形態において、クラウドアプリケーションランタイム132とクラウドアプリケーションランタイム136は、アプリケーションランタイム150に対応するが、オンプレミスプラットフォーム120上にインストールされている。クラウドアプリケーションランタイム132とクラウドアプリケーションランタイム136は、それ自体、クラウドプラットフォーム110上にインストールされているアプリケーションランタイムのローカルバージョンである。クラウドアプリケーションランタイム132とクラウドアプリケーションランタイム136は、オンプレミスプラットフォーム120に、アプリケーションが、同じまたは対応するアプリケーションプログラミングインターフェイス(API)を含むクラウドプラットフォーム110で実行されるのと同じまたは対応する環境を提供する。クラウディフィア130は、クラウドプラットフォーム110でも提供される１つまたは複数のAPIを含み得る。一つの実施形態において、クラウドアプリケーションランタイム132またはクラウドアプリケーションランタイム136は、オンプレミスプラットフォーム120にアプリケーションサーバ140とともにインストールされたエンティティであり得る。
【００１７】
ハイブリッドアプリケーションは、クラウドアプリケーションランタイム132またはクラウドアプリケーションランタイム136上で展開されるとともに、ローカルで実行し得る。例えば、ハイブリッドアプリケーション「Ａ」134とハイブリッドアプリケーション「Ｚ」138は、クラウドアプリケーションランタイム132とクラウドアプリケーションランタイム136上で展開されるとともに、ローカルで実行されることが可能なハイブリッドアプリケーションである。同時に、ハイブリッドアプリケーション「Ａ」134とハイブリッドアプリケーション「Ｚ」138は、それぞれ、ハイブリッドアプリケーション「Ａ」134とハイブリッドアプリケーション「Ｚ」138の修正なしに、クラウドプラットフォーム110においてアプリケーションランタイム150に展開され得る。同様に、アプリケーションランタイム150で展開されたアプリケーション「Ｘ」157はまた、クラウドアプリケーションランタイム132またはクラウドアプリケーションランタイム136上で展開され得る。ハイブリッドアプリケーションは、クラウドプラットフォーム110またはローカルのオンプレミスプラットフォーム120に展開されたまま変わらない。その上、ハイブリッドアプリケーション「Ａ」134と「Ｚ」138は、オンプレミスプラットフォーム120またはクラウドプラットフォーム110によって提供される両方のリソースを消費し得る。一つの実施形態において、ハイブリッドアプリケーションは、オンプレミスプラットフォーム120のアプリケーションサーバ140上にあらかじめインストールされており、そのあと、クラウディフィア130のローカルのクラウドアプリケーションランタイム(132及び136)上で再インストールされる、すでに開発されたアプリケーションでありうる。また、ハイブリッドアプリケーションの第１の部分は、オンプレミスプラットフォームでローカルにインストールされているクラウドアプリケーションランタイム上でインストールされてよく、そしてハイブリッドアプリケーションの第２の部分は、クラウドプラットフォームによって提供されるアプリケーションランタイム上にインストールされ得る。さらに、アプリケーション「Ｘ」157は、クラウドプラットフォーム110のアプリケーションランタイム150上にインストールさ
れているが、オンプレミスプラットフォーム120のクラウドアプリケーションランタイム132またはクラウドアプリケーションランタイム136に再インストールされてもよい。さまざまな実施形態において、クラウドアプリケーションランタイム132、クラウドアプリケーションランタイム136、及びアプリケーションランタイム150は、Apache Tomcat (TomEE)のJava(登録商標) Enterprise Edition、Lean Java(登録商標)サーバ(LJS)などのようなJava(登録商標)コンテナであり得る。
【００１８】
さらに、クラウディフィア130は、クラウドコネクタ145を含み、接続エージェント155とともに、オンプレミスプラットフォーム120とクラウドプラットフォーム110の間の接続を提供する。アプリケーションとオンプレミスプラットフォーム120のバックエンドシステムは、顧客のプライベートネットワークで動作する。ところが、アプリケーション、データベース、及びクラウドプラットフォーム110のサービスは、インターネット経由でアクセスされ、要求され得る。クラウドコネクタ145は、接続エージェント155と共に、クラウドプラットフォーム110で実行しているアプリケーションを、バックエンドシステムとオンプレミスプラットフォーム120のリソースに組み込む。さらに、クラウドコネクタ145は、接続エージェント155と共に、オンプレミスプラットフォーム120で実行しているアプリケーションを、クラウドプラットフォーム110のサービス、アプリケーション、及びリソースに組み込む。一つの実施形態において、オンプレミスアプリケーションからクラウドプラットフォーム110への要求は、接続エージェント155によってあたかも、その要求がクラウドプラットフォーム110から送られたかのように仮想的に表される。オンプレミスアプリケーションからクラウドプラットフォーム110への要求は、接続エージェント155の証明書と共に、認証される。さらに、クラウドコネクタ145は、接続エージェント155を介してクラウドプラットフォーム100に接続する。
【００１９】
１つの実施形態において、クラウドコネクタ145は、オンプレミスプラットフォーム120のネットワークからクラウドアカウント115と関連する接続エージェント155への持続的で（persistent）セキュアな通信トンネルを確立する。一般に、クラウドプラットフォーム110の顧客または顧客グループは、クラウドアプリケーションを発展させ、展開し、実行し、構成するために認証されるクラウドアカウント115のようなクラウドアカウントを割り当てられる。一度確立されると、オンプレミスプラットフォーム120のイントラネットのシステムおよびリソースと遠隔通信を行うために、前記セキュアトンネルが、クラウドアカウント115に割り当てられたアプリケーションによって使用され得る。１つの実施形態において、持続的なトンネルはまた、双方向（bidirectional）通信のために、複数の仮想接続によって使用される。オンプレミスプラットフォーム120のアプリケーションとシステムは、クラウドプラットフォーム110のリソースとサービスを消費するためにそのトンネルを使用し得る。例えば、ハイブリッドアプリケーション「Ａ」134は、クラウドコネクタ145によって確立された前記トンネルを通してクラウドサービス135からの１つまたは複数のサービスを消費し得る。
【００２０】
さまざまな実施形態において、クラウドプラットフォーム110はサンドボックス手法が使用される。クラウドプラットフォーム110は、クラウドアプリケーションがクラウドプラットフォームのサービス及び基盤からと同様に、互いに分離されるように、サンドボックスされた（sandboxed）環境において特定のアカウントのアプリケーションを開始する。クラウドアプリケーションとクラウドサービス135の間の通信は、発信者と受信者の相互認証と共に暗号化される。前記確立されたトンネルを介して納入される、クラウドアプリケーションからオンプレミスプラットフォーム120のバックエンドシステムへの呼び出しのため、呼び出し側アカウントとアプリケーションは、アプリケーションが開始されている間に提供され得る証明書によって識別され認証され得る。
【００２１】
クラウドプラットフォーム110において、クラウドサービス135からのサービスを消費するアプリケーション「Ｘ」157のために、アプリケーションがインストールされた仮想マシン、例えば、仮想マシン170から、１つまたは複数のクラウドサービスがインストールされた仮想マシン、例えば、仮想マシン175に遠隔接続が開始され得る。同様の方法において、接続エージェント155は、サンドボックス環境に置いて仮想マシン170上でホストされ得る。ハイブリッドアプリケーション「Ａ」134と「Ｚ」138からの要求は、接続エージェント155がインストールされている仮想マシン170により提供される証明書と共に認証される。したがって、接続エージェント155を通じて受信される、クラウドサービス135のためのアプリケーションからの要求は、アプリケーションがオンプレミスプラットフォーム120の代わりにクラウドプラットフォーム110上で実行されているかのように認証される。したがって、ハイブリッドアプリケーション「Ａ」134と「Ｚ」138の観点から、仮想クラウドは、オンプレミスプラットフォーム120のイントラネットにおいて利用可能である。同様に、アプリケーションからバックエンド160又は他のオンプレミスシステムにクラウドコネクタ145を通じて受信される要求は、アプリケーションがクラウドプラットフォーム110の代わりにオンプレミスプラットフォーム120上で実行されているかのように、ローカルアドレスとポートが使用されうる。したがって、クラウドプラットフォーム110で実行されているアプリケーションは、仮想の前記オンプレミスリソースがインターネットを介して利用可能であるかのように、オンプレミスリソースを使用する。
【００２２】
図２は、１つの実施形態に従う、オンプレミスプラットフォーム上に展開されたアプリケーションによりクラウドリソースを消費する処理２００を例示している。ステップ２１０において、ハイブリッドアプリケーションからのクラウドプラットフォームのリソースを消費するための要求が受信される。例えば図１におけるアプリケーション「Ａ」134又はアプリケーション「Ｚ」138。クラウドリソースの例は、これに限定されないが、クラウドサービス135のような１つまたは複数のクラウドサービス、ストレージ、アプリケーションなどである。ローカルクラウドアプリケーションランタイムは、前記オンプレミスプラットフォーム上にインストールされている。前記要求が送信されてくる元であるハイブリッドアプリケーションは、ローカルクラウドアプリケーションランタイム上に展開されている。前記オンプレミスプラットフォームは、非公開の企業イントラネットなどの非公開の内部ネットワーク内に駐在している。
【００２３】
一実施形態において、前記要求は、クラウドコネクタ、例えば図１のクラウドコネクタ145、で受信される。前記クラウドコネクタは、前記オンプレミスプラットフォーム上に展開され、インストールされている。前記クラウドコネクタは、オンプレミスとクラウドの接続性のために使用される。前記要求は、ローカルクラウドアプリケーションランタイムにより前記クラウドコネクタにフォワードされ得る。一実施形態において、前記クラウドコネクタは、クラウドプラットフォームへのセキュアトンネルが確立されている。例えば、前記セキュアトンネルは、前記クラウドプラットフォームの所定の仮想マシン(例えば、図１の仮想マシン170)へ確立され得る。一実施形態において、前記セキュアトンネルは、前記クラウドプラットフォームの仮想マシン上にインストールされている接続エージェント、例えば、図１の接続エージェント155、との通信を確立する。
【００２４】
ステップ２２０において、要求が、前記接続エージェントで受信される。前記接続エージェントは、仮想マシン内で実行されており、所定のクラウドアカウントのためにインストールされている。要求は、前記クラウドコネクタにより、前記トンネルを介して前記接続エージェントに自動的にフォワードされる。一実施形態において、前記セキュアトンネルの確立の前に、前記接続エージェントは、インストールされるとともに実行されている。前記接続エージェントは、前記クラウドプラットフォームにおけるローカルホストからのみならず、前記オンプレミスプラットフォームの前記クラウドコネクタなどの外部ソースからの接続を受け入れる。前記要求を受信すると、前記クラウドコネクタは、前記セキュアトンネルを介して前記要求を前記接続エージェントにフォワードする。
【００２５】
ステップ２３０において、前記接続エージェントは、対応する消費されるリソースに要求をフォワードする。ステップ２４０において、前記接続エージェントがインストールされている仮想マシンに関連する前記クラウドアカウントの証明書が検証される。例えば、クラウドサービスが、仮想マシンと接続エージェントのそれぞれに関連する前記クラウドアカウントが、前記要求されたクラウドリソースにアクセスするために認証されているかどうかどうかを検証する。したがって、オンプレミスハイブリッドアプリケーションからのクラウド内のサービスの要求が前記クラウドアカウントを介してフォワードされるとともに処理される。要求がクラウドアカウントを介して処理されるので、クラウドサービスと、オンプレミスプラットフォームからの他のクラウドリソースの消費が追跡され、把握され、そして安全になる。ステップ２５０において、前記クラウドプラットフォームの要求されたリソースからの応答は、前記接続エージェントで受信される。ステップ２６０において、前記要求は、前記セキュアトンネルを介して前記接続エージェントにより要求しているハイブリッドアプリケーションにフォワードされる。
【００２６】
図３は、一実施形態に従う、クラウドプラットフォームに展開されているアプリケーションからオンプレミスリソースを消費する処理３００を例示している。ステップ３１０において、オンプレミスプラットフォームのリソースを消費するための、ハイブリッドアプリケーションからの要求が、接続エージェントにおいて受信される。ハイブリッドアプリケーションは、クラウドプラットフォーム上にインストールされている前記クラウドアプリケーションランタイムに展開されているクラウドアプリケーションでありうる。例えば、前記クラウドアプリケーションランタイムは、前記クラウドプラットフォームの仮想マシン上に、例えば図１における仮想マシン170上に、インストールされうる。前記クラウドプラットフォーム上で実行されているアプリケーションから要求され得る、オンプレミスリソースの例は、これらに限定されないが、バックエンドシステム、ストレージ、他のアプリケーション、等を含む。前記オンプレミスプラットフォームは、非公開の内部ネットワーク内に駐在するが、前記クラウドプラットフォームは、インターネットにおいてアクセス可能である。
【００２７】
一実施形態に従う、前記要求が受信されるところの前記接続エージェントは、前記クラウドアプリケーションランタイムがインストールされている、前記クラウドプラットフォームの仮想マシンにおいて実行されている。前記接続エージェントは、所定のクラウドアカウントのためにインストールされる。要求は、前記クラウドアプリケーションランタイムにより前記接続エージェントにフォワードされ得る。ステップ３２０において、要求は、前記オンプレミスプラットフォームにインストールされているクラウドコネクタで受信される。要求は、セキュアトンネルを介して前記接続エージェントにより前記クラウドコネクタにフォワードされる。一実施形態において、要求がフォワードされる前に、前記クラウドコネクタにより前記接続エージェントへのトンネルが確立される。
【００２８】
ステップ３３０において、対応する消費されるリソースに要求がフォワードされる。消費されるリソースは、前記オンプレミスプラットフォームの非公開の内部ネットワーク内にある。例えば、要求は、図１のバックエンド160などのようなバックエンドシステムにフォワードされうる。要求は、ERPシステム、データベース、などのような他のオンプレミスシステムにフォワードされ得る。要求は、前記クラウドコネクタにより前記リソースにフォワードされる。一実施形態において、ステップ３４０において、応答は要求されたリソースから受信される。例えば、データは、前記要求に応答して、バックエンドシステムによりフェッチされ得る。前記応答は、前記クラウドコネクタにおいて受信される。ステップ３５０においても、前記クラウドコネクタは、確立されたセキュアトンネルを介して前記応答を前記接続エージェントにフォワードする。ステップ３６０においても、前記接続エージェントは、前記クラウドアプリケーションランタイムで実行している要求しているハイブリッドアプリケーションに前記応答をフォワードする。
【００２９】
図４は、一実施形態に従う、オンプレミスプラットフォームとクラウドプラットフォーム間のアプリケーションの相互運用性を構成する処理４００を例示している。ステップ４１０において、オンプレミスアプリケーションは、前記オンプレミスプラットフォームのオンプレミスローカル開発環境において開発される。例えば、図１のアプリケーション「Ａ」134又は「Ｚ」138。一実施形態において、クラウドアプリケーションランタイムの技術に対応する技術でアプリケーションは開発される。そのような技術の例は、Java(登録商標) Enterprise Edition 6である。前記クラウドアプリケーションランタイム、例えば、図１のアプリケーションランタイム150は、前記クラウドプラットフォーム上にインストールされる。ステップ４２０において、クラウドアプリケーションが開発される。前記クラウドアプリケーションは、前記クラウドアプリケーションランタイムに展開される。前記クラウドアプリケーションランタイムは、前記クラウドアプリケーションのための仮想マシン上にインストールされうる。
【００３０】
ステップ４３０において、前記クラウドアプリケーションランタイムのローカルバージョンは、前記オンプレミスプラットフォーム上にインストールされる。クラウドアプリケーションランタイムのローカルバージョンの例は、図１において、前記オンプレミスプラットフォーム上でローカルにインストールされているクラウドアプリケーションランタイム132及び136である。前記クラウドプラットフォームの前記ローカルバージョンは、前記オンプレミスプラットフォームの内部ネットワーク内にある。前記クラウドアプリケーションランタイムの前記ローカルバージョンは、クラウドサービスのＡＰＩ又はロギングモジュール、ユーザ管理、監視モジュール等といった、他のクラウド特有のモジュールも含みうる。ステップ４４０において、前記オンプレミスアプリケーションは、前記クラウドアプリケーションランタイムの前記ローカルバージョンに展開される。ステップ４５０において、前記クラウドアプリケーションランタイムの前記ローカルバージョンは、前記オンプレミスプラットフォームに組み込まれる。例えば、前記オンプレミスプラットフォーム上にインストールされ、実行されているクラウディフィアランタイムは、前記クラウドアプリケーションランタイムを前記オンプレミスプラットフォームの他のシステムにさらす(expose)。ステップ４６０において、クラウドコネクタ、例えば図１のクラウドコネクタ145は、前記オンプレミスプラットフォームにおけるクラウディフィアランタイム上の別々の処理としてインストールされている。ステップ４７０において、ローカルアプリケーションランタイムから接続エージェントの第１インスタンスの第１接続は、第１プロキシを介して開始される。前記第１プロキシは、前記クラウドコネクタ上で実行されている。前記第１接続は、前記クラウドプラットフォームのリソースの消費のために、前記オンプレミスアプリケーションにより使用され得る。一実施形態において、前記クラウドコネクタのトンネルクライアントは、前記第１接続を開始する。前記前記接続エージェントの第１インスタンスは、所定のクラウドアカウントのためにインストールされている仮想マシンで実行されている。したがって、前記オンプレミスアプリケーションは、前記接続エージェントを介して前記クラウドと接続され、第１プロキシを介してクラウドリソースとサービスを消費できる。さらに、前記オンプレミスアプリケーション消費活動は、前記前記接続エージェントの第１インスタンスに関連する前記クラウドアカウントを通じて、説明される(accounted)。また、前記オンプレミス接続は、前記クラウドアカウントを通じて前記接続エージェントを介してクラウドリソースと通信するため、前記オンプレミスアプリケーションは、前記クラウドプラットフォームに展開されているかのように仮想的に動作する。
【００３１】
ステップ４８０において、前記接続エージェントの第２インスタンスへの第２接続が開始される。前記第２接続は、前記オンプレミスプラットフォームのリソースの消費のための前記クラウドアプリケーションランタイムに展開されているクラウドアプリケーションにより使用され得る。前記前記接続エージェントの第２インスタンスは、前記クラウドプラットフォームで、前記クラウドアプリケーションランタイムにおいて実行されている。一実施形態において、前記クラウドコネクタのトンネルクライアントは、前記第２接続を開始し、前記クラウドアプリケーションランタイムから、オンプレミスシステム、ストレージ、等を含むオンプレミスプラットフォームまでのポートをオープンする。ステップ４９０において、前記オンプレミスアプリケーションから１つまたは複数のオンプレミスシステムへの第３接続は、第２プロキシを介して開始される。オンプレミスシステムの第２プロキシは、前記クラウドコネクタ上で実行され得る。最新のクラウド技術により開発された前記オンプレミスアプリケーションは、プロキシを通じて、レガシーシステムなどの１つまたは複数のオンプレミスシステムにループバックできる。したがって、種々の実施形態において、処理４００は、オンプレミスコンピューティングプラットフォームとクラウドコンピューティングプラットフォーム間で相互動作するようにオンプレミスアプリケーションと、クラウドアプリケーションの双方を設定できる。
【００３２】
図５は、一実施形態に従う、オンプレミスプラットフォーム520とクラウドプラットフォーム510間のアプリケーションの相互運用性のためのシステム構成500を例示している。クラウドコネクタ580は、クラウディフィア560のランタイムプラットフォーム570にアプリケーションとして展開されている。クラウドコネクタ580は、一度インストールされると、接続エージェント545へのトンネルを確立するように設定され得る。一実施形態において、クラウドコネクタ580は、ポートフォワーディングプロキシ582のような所定のローカルホスト上でプロキシリスニング(listening)を開始する。ポートフォワーディングプロキシ582は、オンプレミスアプリケーション575からの要求を含む、入ってくる要求をリスン(listen)し得る。一実施形態において、ポートフォワーディングプロキシ582により、トンネルプロトコルを使用し得る。
【００３３】
一実施形態において、クラウドプラットフォーム510のリソースを消費するオンプレミスアプリケーション575からの要求は、ポートフォワーディングプロキシ582により受信され、その後確立されたトンネルを介して前記接続エージェント545にフォワードされる。接続エージェント545は、クラウディフィアプロキシ仮想マシン(VM)540において実行されており、外部ソースからの要求を受け入れる。一実施形態において、クラウドアカウントは、一つのクラウディフィアプロキシVMに関連し得る。接続エージェント545において、オンプレミスアプリケーションからの要求が一度受信されると、前記要求は、前記要求されたクラウドリソースにフォワードされる。例えば、オンプレミスアプリケーション575が文書サービス接続エージェント545といったクラウドサービスの消費を要求する場合には、文書サービスVM550上にインストールされている文書サーバ555に前記要求をフォワードしうる。一実施形態において、オンプレミスアプリケーション575は、クラウドプラットフォーム510のストレージを消費する要求をしてもよい。そのような場合、接続エージェント545は、前記要求を例えばインメモリデータベース565にフォワードしてよい。
【００３４】
オンプレミスアプリケーション575は、オンプレミスリソースもまた消費しうる。一実施形態において、クラウドコネクタ580は、オンプレミスシステム584のためのプロキシを開始する。オンプレミスシステム584のためのプロキシは、オンプレミスアプリケーション575からオンプレミスシステム590に要求をフォワードする。したがって、オンプレミスアプリケーション575は、オンプレミスプラットフォーム520のリソースの消費をループバックしうる。オンプレミスシステム584のためのプロキシは、HTTPプロキシ、socksプロキシなどであってよい。
【００３５】
一実施形態において、オンプレミスリソースは、クラウドアプリケーションにより消費されうる。例えば、アプリケーションVM505において実行されているクラウドアプリケーション515は、１つまたは複数のオンプレミスシステム590を消費する要求をしてもよい。前記要求は、アプリケーションVM505上にインストールされている接続エージェント530において実行されているオンプレミスシステム535のためのプロキシにフォワードされる。オンプレミスシステム535のためのプロキシは、HTTP又はRFCフォワーダ586などのポートプロキシフォワーダに前記要求をフォワードする。フォワーダ586は、クラウドコネクタ580において実行されていてよい。クラウドアプリケーション515からの前記要求がフォワーダ586において一度受信されると、フォワーダ586は、オンプレミスシステム590からのそれぞれのオンプレミスシステムに前記要求をフォワードする。
【００３６】
いくつかの実施形態は、１つまたは複数のソフトウェア構成要素として記述される、先に説明した方法を含みうる。これらの構成要素、及び互いに関連する機能性は、クライアント、サーバ、分散型、又はピアコンピュータシステムにより使用されてよい。これらの構成要素は、関数型、宣言型、手順、オブジェクト指向型、低レベル言語、などといった、１つまたは複数のプログラミング言語に対応するコンピュータ言語において記述される。それらは、種々のアプリケーションプログラミングインターフェースを介して、他の構成要素とリンクされ、そしてサーバ又はクライアントのための１つの完全なアプリケーションにコンパイルされてもよい。あるいは、構成要素は、サーバ及びクライアントアプリケーションにおいて実施されてもよい。さらに、これらの構成要素は、種々の分散型プログラミングプロトコルを介して一緒にリンクされてもよい。いくつかの例の実施形態は、分散型プログラミング環境において１つまたは複数のこれらの構成要素を実装するために使用される遠隔手続呼出しを含みうる。例えば、論理レベルは、インターフェースレベル(例えば、グラフィカル・ユーザ・インターフェース)を含んでいる第２コンピュータシステムから遠隔に離れている第１コンピュータシステム上に駐在しうる。これらの第１及び第２コンピュータシステムは、サーバ-クライアント、ピアツーピア、又はいくつかの他の設定において設定することが可能である。クライアントは、携帯やハンドヘルドデバイスから薄いクライアント及び厚いクライアント又は他のサーバにさえ、複雑に変更できる。
【００３７】
上記の例示したソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体上に命令として実体的に格納される。用語「コンピュータ読み取り可能な記録媒体」は、１つまたは複数の命令セットを格納する単一媒体又は複数媒体を含みうる。用語「コンピュータ読み取り可能な記録媒体」は、物理的に変化することができるセットで、物理的に格納し、エンコードでき、又はそうでなければ、本明細書で説明され、提示され、又は例示された任意の方法又は処理ステップをコンピュータシステムに実行させるコンピュータシステムにより実行されるための命令のセットを搬送することができる任意の物理的な物(article)を含みうる。コンピュータ読み取り可能な記録媒体は、非一時的なコンピュータ読み取り可能な記録媒体でありうる。非一時的なコンピュータ読み取り可能な記録媒体の例は、これらに限定されないが、ハードディスク、フロッピー（登録商標）ディスク、及び磁気テープなどの磁気メディア、CD-ROM、DVD、及びホログラフィックデバイスなどの光学メディア、光磁気メディア、及び特定用途向けＩＣ（「ASIC」）、プログラマブルロジックデバイス（「PLD」）、及びROM、RAMデバイス、といった格納し実行するように特に構成されたハードウェアデバイスを含む。コンピュータ読み取り可能な命令の例は、コンパイラにより生成されるような機械コード、及びインタープリタを使用してコンピュータにより実行される高レベルコードを含むファイルを含む。例えば、実施形態は、Java(登録商標)、C++、又は他のオブジェクト指向型プログラミング言語及び開発ツールを使用して実装されうる。他の実施形態は、機械読み取り可能なソフトウェア命令の代わりに配線回路、又は機械読み取り可能なソフトウェア命令の組み合わせにおいて実装されうる。
【００３８】
図６は、コンピュータシステム600の典型例のブロック図である。コンピュータシステム600は、先に例示した方法を実行する、コンピュータ読み取り可能な記録媒体655に格納されているソフトウェア命令又はコードを実行するプロセッサ605を具備する。プロセッサ605は、複数のコアを備えていてよい。コンピュータシステム600は、コンピュータ読み取り可能な記録媒体655から命令を読み、命令をストレージ610又はランダムアクセスメモリ(RAM)615内に格納するメディアリーダ640を含む。ストレージ610は、スタティックデータを保持するための巨大な空間を提供し、後の実行のために少なくともいくつかの命令が格納されうる。いくつかのインメモリコンピューティングシステムの実施形態などのいくつかの実施形態に従って、RAM615は、ストレージ610の代わりにRAM615における処理に要求される多くのデータを格納するための十分なストレージ容量を備え得る。いくつかの実施形態において、処理のために要求されるすべてのデータは、RAM615に格納されてもよい。格納された命令は、命令の他の表現を生成するためにさらにコンパイルされてよく、動的にRAM615に格納されうる。プロセッサ605は、RAM615から命令を読み出し、命令通りに動作を実行する。一実施形態に従う、コンピュータシステム600は、実行の結果の少なくともいくつかをユーザへの視覚情報を含む出力として提供する出力デバイス625(例えばディスプレイ)と、ユーザに又は他のデバイスとともにデータを入力するための及び／又はそうでなければコンピュータシステム600と対話するための手段を提供する入力デバイス630とをさらに含む。これらの出力デバイス625と入力デバイス630のそれぞれは、コンピュータシステム600の能力をさらに拡張するために、１つまたは複数の追加的な周辺装置により結合されうる。ネットワークコミュニケータ635は、コンピュータシステム600のネットワーク650への接続を提供でき、順にネットワーク650に接続されているクライアント、サーバ、データストア、インターフェース等を含む他のデバイスに接続される。コンピュータシステム600のモジュールは、バス645を介して内部接続されている。コンピュータシステム600は、データソース660にアクセスするため
のデータソースインターフェース620を具備する。データソース660は、ハードウェア又はソフトウェアにおいて実装される１つまたは複数の中層化レイヤを介してアクセスし得る。例えば、データソース660は、ネットワーク650によりアクセスし得る。いくつかの実施形態において、データソース660は、セマンティックレイヤなどの抽象化レイヤを介してアクセスされ得る。
【００３９】
データソースは、情報リソースである。データソースは、データを格納及び読み出すことが可能なデータのソースを含む。データソースは、リレーショナル、トランザクショナル、階層、多次元(例えばOLAP)、オブジェクト指向型データベースなどのデータベースを含みうる。さらに、データソースは、表形式データ（例えばスプレッドシート、区切りテキストファイル）、マーク付け言語によりタグ付けされたデータ（例えばXMLデータ）、トランザクショナルデータ、非構造化データ(例えばテキストファイル、スクリーンスクレイピング)、階層データ（例えばファイルシステムにおけるデータ、XMLデータ）、ファイル、複数の報告、及び確立されたプロトコルを介してアクセス可能な任意の他のデータソース、ODBC(Open Data Base Connectivity)など、基礎をなすソフトウェアシステム(例えばERPシステム)により生成されたものなどを含む。データソースは、データが、有形で格納されていないか、そうでなければデータストリーム、ブロードキャストデータなどの一時的な(ephemeral)であるデータソースもまた含む。これらのデータソースは、これに関連するデータ基盤(data foundations)、セマンティックレイヤ、管理システム、セキュリティシステムなどを含みうる。
【００４０】
上の説明において、多くの具体的な詳細が実施形態の理解を通じて説明された。しかし、前記実施形態は、１つまたは複数の具体的な詳細無しに又は他の方法、構成要素、技術などとともに行うことが可能であることは、当業者であれば理解し得る。他のインスタンスにおいては、既知の動作又は構造は示しておらず、また詳細に説明していない。
【００４１】
本明細書で連続したステップを含む処理が例示されるとともに説明されたが、異なる実施形態は、本明細書で示し説明したのとは別の、いくつかのステップが異なる順序であったり、他のステップと同時であったりするように、前記例示されたステップの順序により限定されないことが理解し得る。加えて、例示されたすべてのステップが１つまたは複数の実施形態に従う方法を実施するのに必要なわけでない。さらに、プロセスは、明細書で例示され、説明された装置及びシステムに関連するのみならず、例示されていない他のシステムに関連しても実施され得ることは理解し得る。
【００４２】
上記説明され、例示され、また要約においても説明された実施形態は、網羅的ではなく、また、開示された１つまたは複数の実施形態の正確な形態に限定されるものではない。
具体的な実施形態及び例が明細書で例証を目的として説明されたが、種々の等価な修正が可能であることは当業者であれば理解し得る。これらの修正は、先の詳細な説明を考慮し成し得る。範囲は、クレーム解釈の確立された原則に従って解釈される以下の特許請求の範囲によって決定されるべきである。
【符号の説明】
【００４３】
１２０  オンプレミスプラットフォーム
１２５  ツール（例えば、モニタリング／SL）
１４０  アプリケーションサーバ
１３０  クラウディフィア
１３２  クラウドアプリケーションランタイム
１３４  アプリケーション「Ａ」
１３６  クラウドアプリケーションランタイム
１３８  アプリケーション「Ｚ」
１４５  クラウドコネクタ
１６０  バックエンド
１１０  クラウドプラットフォーム
１７０  仮想マシン
１５０  アプリケーションランタイム
１５７  アプリケーション「Ｘ」
１５５  接続エージェント
１１５  クラウドアカウント
１７５  仮想マシン
１３５  クラウドサービス
１３７  ドキュメント
１３９  フィードバック
５６５  メモリ内データベース
５５０  文書サービスＶＭ
５５５  文書サーバ
５４０  クラウディフィアプロキシＶＭ
５４５  接続エージェント
５１０  クラウドプラットフォーム
５０５  アプリケーションＶＭ
５１５  クラウドアプリケーション
５３０  接続エージェント
５３５  ＯＰシステムのHTTP/SOCKプロキシ
５２０  オンプレミスプラットフォーム
５６０  クラウディフィア
５７５  オンプレミスアプリケーション
５８２  ポートフォワードプロキシ
５８４  オンプレミスシステムのHTTP/SOCKプロキシ
５８６  HTTP/RFCフォワーダ
５８０  クラウドコネクタ
５７０  ランタイムプラットフォーム
５９０  ＯＰシステム
６５０  ネットワーク
６０５  プロセッサ
６１０  ストレージ
６２５  出力デバイス
６４５  バス
６３５  ネットワークコミュニケータ
６３０  入力デバイス
６２０  データソースインターフェース
６４０  メディアリーダ
６６０  データソース
【図１】
2018101445.tif 000003
【図２】
2018101445.tif 000004
【図３】
2018101445.tif 000005
【図４】
2018101445.tif 000006
【図５】
2018101445.tif 000007
【図６】
2018101445.tif 000008
【手続補正書】
【提出日】平成30年3月20日(2018.3.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
オンプレミスプラットフォームに展開されたオンプレミスアプリケーションによりクラウドプラットフォームのクラウドリソースを消費するコンピュータ実施方法であって、前記方法は、
前記クラウドプラットフォーム内で実行されている接続エージェントにおいて、前記クラウドリソースを消費する要求を前記オンプレミスアプリケーションから受信するステップであって、前記オンプレミスアプリケーションは、前記オンプレミスプラットフォーム上にインストールされているクラウドアプリケーションランタイムのローカルバージョンに展開され、前記要求は、セキュアトンネルを介して、前記オンプレミスプラットフォームから前記接続エージェントへフォワードされる、ステップと、
前記クラウドリソースから前記要求しているオンプレミスアプリケーションへ応答をフォワードするステップであって、前記応答は、セキュアトンネルを介して前記接続エージェントによりフォワードされる、ステップと、
を具備することを特徴とするコンピュータ実施方法。
【外国語明細書】
2018101445000001.pdf