(57)【特許請求の範囲】
【請求項１】
企業コンピュータネットワークへのオフサイトアクセスを容易にする方法であって、
企業ネットワーク上のファイアウォールの背後のコンピュータ上で実行されるエージェントから、前記ファイアウォールの外部のクラウドベースのゲートウェイとのハイパーテキスト伝送プロトコル（ＨＴＴＰ）接続を始動することと、
前記ＨＴＴＰ接続をＷｅｂＳｏｃｋｅｔプロトコル接続にアップグレードすることと、
前記エージェントで、前記ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、前記ゲートウェイからのデータの要求を受信することと、
前記エージェントで、前記要求をＨＴＴＰ要求へと再フォーマットすることと、
前記エージェントから、前記ＨＴＴＰ要求を前記企業ネットワーク上のサーバに送信することと、
前記エージェントで、前記サーバから前記ＨＴＴＰ要求に対する応答を受信することと、
前記エージェントで、前記サーバからの前記応答に基づいてＷｅｂＳｏｃｋｅｔ応答を作成することと、
前記エージェントから、前記ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、前記ゲートウェイに前記ＷｅｂＳｏｃｋｅｔ応答を送信することとを含む、方法。
【請求項２】
前記ＨＴＴＰ接続の前記ＷｅｂＳｏｃｋｅｔプロトコル接続へのアップグレードは、前記ＨＴＴＰ接続の始動によって自動的にトリガされる、請求項１に記載の方法。
【請求項３】
前記クラウドベースのゲートウェイで、モバイルデバイスからの要求を受信することと、
前記ゲートウェイで、前記モバイルデバイスからの前記要求を、ＷｅｂＳｏｃｋｅｔプロトコルに準拠した、データの要求へと再フォーマットすることと、
前記ゲートウェイで、前記エージェントからの前記ＷｅｂＳｏｃｋｅｔ応答を受信することと、
前記ゲートウェイで、前記エージェントからの前記ＷｅｂＳｏｃｋｅｔ応答からクラウド対応の応答を作成することと、
前記クラウド対応の応答を前記モバイルデバイスに送信することとをさらに含む、請求項１または２に記載の方法。
【請求項４】
前記エージェントによって、前記サーバからの前記応答を、前記ＷｅｂＳｏｃｋｅｔ応答の文字列、バイナリオブジェクト、またはアレイバッファへとパッケージ化してから、前記ＷｅｂＳｏｃｋｅｔ応答を送信することをさらに含む、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記サーバは、ローカルウェブサーバである、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記サーバは、企業アプリケーションを実行している、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記ＷｅｂＳｏｃｋｅｔプロトコル接続は、セキュアＷｅｂＳｏｃｋｅｔプロトコル接続である、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記エージェントにより、前記クラウドベースのゲートウェイに、エージェントソフトウェアの更新についてチェックすることと、
前記エージェントに、ソフトウェア更新をダウンロードすることと、
前記エージェントで、前記ダウンロードされたソフトウェア更新をインストールすることとをさらに含む、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記ソフトウェア更新のために受け入れ可能な、または受け入れられない時間窓を判断することと、
前記判断された時間窓に基づいて、チェック、ダウンロード、またはインストールを行なうこととをさらに含む、請求項８に記載の方法。
【請求項１０】
前記ダウンロードされたソフトウェア更新のインストールを、前記エージェントソフトウェアの前のバージョンに戻すことをさらに含む、請求項８または９に記載の方法。
【請求項１１】
１つ以上のマシンに以下の動作を行なわせるための命令を示す情報を含むマシン読取可能なプログラムであって、前記以下の動作は、
企業ネットワーク上のファイアウォールの背後のコンピュータ上で実行されるエージェントから、前記ファイアウォールの外部のクラウドベースのゲートウェイとのハイパーテキスト伝送プロトコル（ＨＴＴＰ）接続を始動することと、
前記ＨＴＴＰ接続をＷｅｂＳｏｃｋｅｔプロトコル接続にアップグレードすることと、
前記エージェントで、前記ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、前記ゲートウェイからのデータの要求を受信することと、
前記エージェントで、前記要求をＨＴＴＰ要求へと再フォーマットすることと、
前記エージェントから、前記ＨＴＴＰ要求を前記企業ネットワーク上のサーバに送信することと、
前記エージェントで、前記サーバから前記ＨＴＴＰ要求に対する応答を受信することと、
前記エージェントで、前記サーバからの前記応答に基づいてＷｅｂＳｏｃｋｅｔ応答を作成することと、
前記エージェントから、前記ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、前記ゲートウェイに前記ＷｅｂＳｏｃｋｅｔ応答を送信することとを含む、プログラム。
【請求項１２】
１つ以上のマシンに、請求項１〜１０のいずれか１項に記載の方法を実行させるためのプログラム。
【請求項１３】
企業コンピュータネットワークへのオフサイトアクセスを容易にするためのシステムであって、前記システムは、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサと作動的に結合されたメモリとを含み、
前記少なくとも１つのプロセッサは、
企業ネットワーク上のファイアウォールの背後のコンピュータ上で実行されるエージェントから、前記ファイアウォールの外部のクラウドベースのゲートウェイとのハイパーテキスト伝送プロトコル（ＨＴＴＰ）接続を始動し、
前記ＨＴＴＰ接続をＷｅｂＳｏｃｋｅｔプロトコル接続にアップグレードし、
前記エージェントで、前記ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、前記ゲートウェイからのデータの要求を受信し、
前記エージェントで、前記要求をＨＴＴＰ要求へと再フォーマットし、
前記エージェントから、前記ＨＴＴＰ要求を前記企業ネットワーク上のサーバに送信し、
前記エージェントで、前記サーバから前記ＨＴＴＰ要求に対する応答を受信し、
前記エージェントで、前記サーバからの前記応答に基づいてＷｅｂＳｏｃｋｅｔ応答を作成し、
前記エージェントから、前記ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、前記ゲートウェイに前記ＷｅｂＳｏｃｋｅｔ応答を送信する
ために、前記メモリからの命令を実行する、システム。
【請求項１４】
前記ＨＴＴＰ接続の前記ＷｅｂＳｏｃｋｅｔプロトコル接続へのアップグレードは、前記ＨＴＴＰ接続の始動によって自動的にトリガされるように構成される、請求項１３に記載のシステム。
【請求項１５】
前記メモリからの前記命令は、
前記クラウドベースのゲートウェイで、モバイルデバイスからの要求を受信することと、
前記ゲートウェイで、前記モバイルデバイスからの前記要求を、ＷｅｂＳｏｃｋｅｔプロトコルに準拠した、データの要求へと再フォーマットすることと、
前記ゲートウェイで、前記エージェントからの前記ＷｅｂＳｏｃｋｅｔ応答を受信することと、
前記ゲートウェイで、前記エージェントからの前記ＷｅｂＳｏｃｋｅｔ応答からクラウド対応の応答を作成することと、
前記クラウド対応の応答を前記モバイルデバイスに送信することとをさらに含む、請求項１３または１４に記載のシステム。
【請求項１６】
前記サーバは、ローカルウェブサーバである、請求項１３〜１５のいずれか１項に記載のシステム。
【請求項１７】
前記サーバは、企業アプリケーションを実行している、請求項１３〜１６のいずれか１項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願との相互参照
本願は、２０１４年２月７日に出願された米国仮特許出願第６１／９３７，３１６号の利益を主張し、当該仮出願はその全体が、あらゆる目的のためにここに引用により援用される。
【背景技術】
【０００２】
背景
会社のサーバ上で実行中の、その会社の企業アプリケーションは典型的には、従業員らのワークコンピュータによってアクセスされる。ワークコンピュータは会社の情報技術（ＩＴ）部門によって保守整備され、構成は厳重に管理される。ラップトップコンピュータまたはデスクトップワークステーションなどのワークコンピュータは、オフィスネットワークジャックに差し込まれ、または、暗号化された無線ネットワーキングハブにログインする。デバイス、コンピュータおよびサーバはすべて、１つ以上のファイアウォールによってインターネットから保護される。
【０００３】
ユーザらは、移動中に、家で、または会社のオフィス外部の他のエリアにいる間に会社のデータにアクセスすることをますます求めている。たとえば、ある会社の販売員は、移動中に、会社のサーバからの連絡先リストおよび他の厳重に守られた専用データにアクセスしたくなることがある。ＩＴ部門は、それらが保守整備する会社所有のモバイルデバイスを支給するまでになった。これらのデバイスは、それらがしばらくの間サポートしてきたラップトップコンピュータだけでなく、ネットブックおよびスマートフォンも含む。
【０００４】
一般に家電の価格低下により、ユーザらは、自分たちの会社が提供するものより新しいスマートフォンおよびコンピュータを購入することがしばしばある。その結果、ユーザらの個人用電子デバイスが、会社のＩＴ部門が提供するものより高性能であることがしばしばある。自分の会社が支給するものより大きい処理パワー、メモリ、および帯域幅が自分所有のデバイスで利用可能であるため、会社支給のデバイスで行なわれるであろう多くの会社用機能のために自分所有のデバイスを使用することを選ぶユーザもいる。
【０００５】
最高情報責任者（Chief information officer：ＣＩＯ）は、自分の従業員所有の個人用ＢＹＯＤ（bring your own device：個人所有のデバイスの持込み）モバイル電子デバイスに、会社のサーバにアクセスさせるのをためらうかもしれない。ユーザのマルウェアに感染したモバイルデバイスからの機密保持違反の脅威は、あまりに大きすぎる。にもかかわらず、ユーザがいずれにせよ使用したい別のユーザデバイスを購入したり保守整備したりする必要がないという魅力は、将来性がある。
【０００６】
従業員所有のモバイルデバイスを使用して、会社の企業アプリケーションサーバ上のデータに安全にアクセスすることについての要望が、当該技術分野において存在する。
【発明の概要】
【課題を解決するための手段】
【０００７】
簡単な概要
会社のファイアウォール内にあり、会社のサーバに内部接続されるとともに、モバイルデバイスが接続する外部のクラウドベースのゲートウェイにも安全に接続する、エージェントデバイスについて、概して説明する。内部制御されたエージェントは、ハイパーテキスト伝送プロトコル（hypertext transport protocol：ＨＴＴＰ）を使用して、外部のクラウドベースのゲートウェイとの通信を始動し、次に、より対話型の機能性のために、接続をＷｅｂＳｏｃｋｅｔプロトコルにアップグレードする。
【０００８】
エージェントは、時刻および他の設定に依存して、それ自体のソフトウェアをクラウドベースのゲートウェイから自動的に更新することができる。たとえば、更新が起こらない時間窓があってもよい。また、更新が起こったものの成功しなかった場合、それを前のバージョンに戻すことができる。
【０００９】
この発明のある実施形態は、企業コンピュータネットワークへのオフサイトアクセスを容易にする方法に関する。この方法は、企業ネットワーク上のファイアウォールの背後のコンピュータ上で実行されるエージェントから、ファイアウォールの外部のクラウドベースのゲートウェイとのハイパーテキスト伝送プロトコル（ＨＴＴＰ）接続を始動することと、ＨＴＴＰ接続をＷｅｂＳｏｃｋｅｔプロトコル接続にアップグレードすることと、エージェントで、ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、ゲートウェイからのデータの要求を受信することと、エージェントで、要求をＨＴＴＰ要求へと再フォーマットすることと、エージェントから、ＨＴＴＰ要求を企業ネットワーク上のサーバに送信することと、エージェントで、サーバからＨＴＴＰ要求に対する応答を受信することと、エージェントで、サーバからの応答に基づいてＷｅｂＳｏｃｋｅｔ応答を作成することと、エージェントから、ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、ゲートウェイにＷｅｂＳｏｃｋｅｔ応答を送信することとを含む。
【００１０】
ＨＴＴＰ接続のＷｅｂＳｏｃｋｅｔプロトコル接続へのアップグレードは、ＨＴＴＰ接続の始動によって自動的にトリガされ得る。この方法は、クラウドベースのゲートウェイで、モバイルデバイスからの要求を受信することと、ゲートウェイで、モバイルデバイスからの要求を、ＷｅｂＳｏｃｋｅｔプロトコルを通して、データの要求へと再フォーマットすることと、ゲートウェイで、エージェントからのＷｅｂＳｏｃｋｅｔ応答を受信することと、ゲートウェイで、エージェントからのＷｅｂＳｏｃｋｅｔ応答からクラウド対応の応答を作成することと、クラウド対応の応答をモバイルデバイスに送信することとを含み得る。
【００１１】
この方法は、エージェントによって、サーバからの応答を、ＷｅｂＳｏｃｋｅｔ応答の文字列、バイナリオブジェクト、またはアレイバッファ（ArrayBuffer）へとパッケージ化してから、ＷｅｂＳｏｃｋｅｔ応答を送信することを含み得る。サーバはローカルウェブサーバであり得、および／または、サーバは企業アプリケーションを実行可能である。ＷｅｂＳｏｃｋｅｔ接続は、セキュアＷｅｂＳｏｃｋｅｔ接続であり得る。
【００１２】
この方法は、エージェントにより、クラウドベースのゲートウェイに、エージェントソフトウェアの更新についてチェックすることと、エージェントに、ソフトウェア更新をダウンロードすることと、エージェントで、ダウンロードされたソフトウェア更新をインストールすることとを含み得る。この方法はさらに、ソフトウェア更新のために受け入れ可能な、または受け入れられない時間窓を判断することと、判断された時間窓に基づいて、チェック、ダウンロード、またはインストールを行なうこととを含み得る。この方法は、ダウンロードされたソフトウェア更新のインストールを、エージェントソフトウェアの前のバージョンに戻すことを含み得る。
【００１３】
さらに他の実施形態は、上述の方法のための命令を採用または格納するシステム、およびマシン読取可能な有形記憶媒体に関する。
【００１４】
この概要は、請求される主題の主なまたは基本的な特徴を識別するよう意図されてはおらず、また、請求される主題の範囲を定めるために単独で使用されるよう意図されてはいない。主題は、この特許の明細書全体の適切な部分、いずれかまたはすべての図面、および各請求項を参照することによって理解されるべきである。
【図面の簡単な説明】
【００１５】
【図１】一実施形態に従ったコンポーネントモデルを示す図である。
【図２】一実施形態に従った、モバイルクラウドサービスのコンポーネントとしてのインテグレーションサービスを示す図である。
【図３】一実施形態に従った、オンプレミス環境におけるアグリゲーションサービスを示す図である。
【図４】一実施形態に従ったシーケンス図である。
【図５】一実施形態に従ったプロセスを示す例示的なフローチャートである。
【図６】実施形態のうちの１つを実現するための分散型システムの簡略図である。
【図７】この開示の一実施形態に従った、実施形態システムのコンポーネントによって提供されるサービスをクラウドサービスとして提供し得るシステム環境のコンポーネントの簡略ブロック図である。
【図８】この発明のさまざまな実施形態が実現され得る例示的なコンピュータシステムを示す図である。
【図９】一実施形態に従ったエージェントのブロック図である。
【図１０】一実施形態に従った、クラウドベースのゲートウェイにおけるプロセスを示す例示的なフローチャートである。
【図１１】一実施形態に従ったクラウドベースのゲートウェイのブロック図である。
【発明を実施するための形態】
【００１６】
詳細な説明
概して、実施形態は、会社のファイアウォールの背後にあり、ＨＴＴＰプロトコル（典型的にはポート８０であるが、任意のポート範囲であり得る）を介して信頼されたクラウドにおけるゲートウェイサーバとの接続を始動し、次に接続をＷｅｂＳｏｃｋｅｔプロトコルにアップグレードする、エージェントサーバに関する。確立された双方向のＷｅｂＳｏｃｋｅｔ接続を使用して、会社のファイアウォールの外部にあるモバイルデバイスとの通信が、会社のサーバを用いて容易にされる。
【００１７】
「ＷｅｂＳｏｃｋｅｔプロトコル」は、インターネット・エンジニアリング・タスク・フォース（Internet Engineering Task Force：ＩＥＴＦ）によって、（リクエスト・フォー・コメンツ：Request For Comments）ＲＦＣ６４５５として、または当該技術分野において公知の他のものとして標準化されている。
【００１８】
他のプロトコルとは対照的に、ＷｅｂＳｏｃｋｅｔプロトコルを使用する技術的な利点は、それがＨＴＴＰと類似していることであり、それによってＷｅｂＳｏｃｋｅｔパケットが、ファイアウォール、ネットワークなどをさらに構成することなく、企業ネットワークのファイアウォールを通過できるようになる。最高技術責任者が、自分の従業員が（ユビキタスＨＴＴＰプロトコルを使用して）企業ネットワークコンピュータからウェブにアクセスすることを許可する場合、通信を可能にするためにＷｅｂＳｏｃｋｅｔを使用するのに大した飛躍はない。結局、ＨＴＴＰと類似しているものにトラフィックを制限することは、ハッカーが、保護されたネットワークサーバの十分な管理制御を容易に乗っ取れないようにする。ＷｅｂＳｏｃｋｅｔプロトコルは、集中型の大規模マルチプレーヤーオンライン（massively multiplayer online：ＭＭＯ）ゲーミングにおいて使用され、その場合、それは信頼でき、安全である。それは、コンピュータ間のほぼリアルタイムの通信を可能にするため、ビデオゲーミング産業によく適している。ほぼリアルタイムの通信は企業ネットワークには必要ではないかもしれないが、ＷｅｂＳｏｃｋｅｔが提示する、ファイアウォールの周りの多くの従来のハッキング手段を拒否するセキュリティは、企業ネットワークにとって有利である。
【００１９】
一般的使用事例
クラウドからアクセスされる企業アプリケーションは、オラクルのソフトウェア・アズ・ア・サービス(Software as a Service：ＳａａＳ)アセットおよびプラットフォーム・アズ・ア・サービス（Platform as a Service：ＰａａＳ）アセット、たとえば、カスタム拡張を有するオラクルのフュージョン（Fusion）顧客資源管理（Customer Resource Management：ＣＲＭ）、ライトナウ（RightNow）、タレオ（Taleo）、およびＳａａＳ人材管理（Human Capital Management：ＨＣＭ）を含み得る。ＳａａＳ  ＨＣＭは、社員名簿、従業員写真、承認、求人、履歴書審査、目標、および志願者審査を含み得る。
【００２０】
会社のオンプレミス・アセットは、複数のベンダーのアプリケーションを実行するサーバアプリケーションを含み得る。アセットによっては、サービスオーダー、輸送、アジャイル（Agile）製品ライフサイクル管理（Product Lifecycle Management：ＰＬＭ）、要求ステータス、およびオーダーを含む、オラクルのＥビジネススイートを含み得る。シーベル（Siebel）ＣＲＭは、医薬品販売ライフサイエンス、医薬品販売員、機会、サービスオーダーサービス要求ステータス、小売り実行消費財、ＴＰＭ消費財、連絡先、およびフィールドサービスを含む。ピープルソフト（PeopleSoft）アプリケーションは、経費、請求書、承認、および社員名簿用のものを含み得る。ＪＤエドワーズ（Edwards）アプリケーションは、経費、請求書、および発注書（purchase order：ＰＯ）承認用のものを含み得る。
【００２１】
第三者ＳａａＳアセットは、セールスフォース・ドットコム（salesforce.com）、Ａｍａｚｏｎホスト化サービス、たとえばＥＣ２（計算）、Ｓ３（格納）、簡易通知サービス（Simple Notification Service：ＳＮＳ）、およびビーンストーク（Beanstalk）など、Ｇｏｏｇｌｅ、たとえばアプリエンジン（AppEngine）／コンピュートエンジン（Compute Engine）、クラウドストレージ（Cloud Storage）、マップ（方向、距離行列、高度、ジオコーディング、時間帯、場所）、アプリ（カレンダー、タスク、ｇメール、連絡先、ドライブ、スプレッドシート、サイト）、Ｇｏｏｇｌｅ＋、およびコマース（ショッピング、支払い、およびウォレット）、ならびにＮＥＳＴなどからのものを含み得る。モバイル専用アセットまたはモバイル優先アセットを、リレーショナル、ファイル／ＬＯＢ、およびＮｏＳＱＬ／非構造化を含むデータ格納のために、ならびに、アプリケーションユーザプロファイル情報のために作成することができる。
【００２２】
接続性使用事例
あるモバイルクラウドサービスは、オンプレミス（on-premises）のＳＯＡＰ／ＸＭＬ（ＷＳＤＬ）サービスを呼び出すことができる。たとえば、そのモバイルクラウドサービスは、オンプレミスのＥビジネススイート受注機能性をモバイルクライアントに公開することができる。モバイルクライアントは、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）オブジェクト表記法）を使用して、モバイルクラウドサービスによって公開されたモバイルアプリケーションプログラミングインターフェイス（mobile application programming interface：ｍＡＰＩ）と対話することができ、それは、データ変換を行なってからオンプレミスを接続する。
【００２３】
あるモバイルクラウドサービスは、オンプレミスの表現状態転送（Representational State Transfer：ＲＥＳＴ）（ＪＳＯＮ／ＸＭＬ）サービスを呼び出すことができる。たとえば、従業員セルフサービスアプリケーションが、ＳＯＡアーキテクチャを使用してＲＥＳＴ対応となり得る。そのアプリケーションは、会社のイントラネットに接続されると、従業員によって実行され得る。モバイルクライアントはＪＳＯＮを使用して、モバイルクラウドサービスによって公開されたｍＡＰＩと対話することができ、それは、複数のＲＥＳＴコールを構成して、単一ページＵＩ（user interface：ユーザインターフェイス）をモバイルクライアントに提供する。
【００２４】
イベント（ＸＭＬなど）の伝搬は、オンプレミス・アプリケーションからモバイルクラウドサービスへと促進され得る。たとえば、イントラネットに接続されると、内部求人ポータルが従業員に利用可能となり得る。ある従業員がある仕事に志願する場合、通知が（その志願者の経験についての基本情報とともに）、採用するマネージャのモバイルデバイスに送信されてもよい。志願者のイベントは、オンプレミス求人アプリケーションからモバイルクラウドサービスに伝搬され、それは（たとえば、ＸＭＬからＪＳＯＮへの変換を行なった後に）マネージャのモバイルクライアントアプリケーションに通知する。
【００２５】
（拡張マークアップ言語（Extensible markup Language：ＸＭＬ）などによって定義された）イベントの伝搬は、（モバイルクライアントに加えて）クラウドからオンプレミス・アプリケーションへと促進され得る。たとえば、オラクルのセールスクラウドにおいて作成されたリードが、キャンペーン管理のために、オンプレミスのシーベルＣＲＭ（顧客関係管理）と（非同期的に）同期されてもよい。加えて、リードはまた、（サブスクリプションに基づいて）担当区域における販売員のモバイルデバイスにプッシュされ得る。
【００２６】
モバイルクラウドサービスからオンプレミス・アプリケーションへのファイル（たとえば文書、画像）の移動が促進され得る。たとえば、モバイルクライアント上でスキャンされ、経費報告モバイルアプリケーションに添付された請求書は、第三者プロバイダが既存のオンプレミスのウェブベースのアプリケーションを使用して請求書のファイルを確認できるように、オンプレミスで格納されてもよい。初期の経費報告は、イントラネットに接続された時のみ利用可能であるウェブベースのアプリケーションを使用して提出可能であったかもしれない。それはまた、添付物を有するＪＳＯＮとして、モバイルクライアントからモバイルクラウドサービス（Mobile Cloud Service：ＭＣＳ）にモデル化され得る。この場合、モバイルクラウドサービスは、クラウドベースの格納サービスを使用して添付物をファイルとして格納し、次にファイルをクラウドからオンプレミス格納サーバに移動させることができる。
【００２７】
他の接続性使用事例は、ファイルをオンプレミス・アプリケーションからモバイルクラウドサービスに移動させること、大量のファイルをモバイルクラウドサービスからオンプレミス・アプリケーションに移動させること、および大量のファイルをオンプレミス・アプリケーションからモバイルクラウドサービスに移動させることを含む。
【００２８】
実行フロー例
一例では、クラウドにおけるアプリケーションは、オンプレミス環境からＲＥＳＴ  ＷｅｂＳｅｒｖｉｃｅ（ウェブサービス）をコールすることができる。クラウドからのクライアントは、ゲートウェイから、ＲＥＳＴサービス、たとえば以下をコールする。
【００２９】
http://mygateway.oraclecloud.com/mypremise_com/service_name
コールはオンプレミスに転送され、エージェントは実際のサービス、たとえば以下をコールする。
【００３０】
http://mypremise.com/service_name
エージェントは応答を処理し、応答をクラウドに転送する。ゲートウェイは応答をクライアントに提供する。これらのステップは、サービスおよびクライアントの双方に呼び出しの透過性（transparency）を提供する。
【００３１】
別の例では、クラウドにおいてイベントが生成され、オンプレミス環境に伝搬される。オンプレミスサービスは、イベントの場合に呼び出されることが期待される以下をコールする。
【００３２】
http://mypremise.com/event_handler
このサービスのゲートウェイ表現である以下が、イベントハンドラとしてクラウドアプリに登録される。
【００３３】
http://mygateway.oraclecloud.com/mypremise_com/event_handler
イベントが起こると、以下のサービスが呼び出される。
【００３４】
http://mygateway.oraclecloud.com/mypremise_com/event_handler
さらに別の例では、オンプレミス環境においてイベントが生成され、クラウドに伝搬される。イベントが以下によって処理されると仮定する。
【００３５】
http://oraclecloud.com/event_from_enterprise_handler
オンプレミスのアプリケーションは以下をコールする。
【００３６】
http://myagent.mypremise.com/oraclecloud_com/event_from_enterprise_handler
このコールはクラウドに転送され、ゲートウェイは以下の実際のサービスをコールする。
【００３７】
http://oraclecloud.com/event_from_enterprise_handler
別の例では、大量のデータがクラウドからオンプレミスシステムに転送されることになっている。データが以下によって処理されると仮定する。
【００３８】
http://mypremise.com/upload_service
これらのステップは、ファイルアップロードにＨＴＴＰ  ＰＯＳＴが使用される以外は、上述の第１の例でのステップと同じである。
【００３９】
別の例は、オンプレミスからクラウドにストリーミングされるデータについてのものである。クラウドからのクライアントは、ゲートウェイから、サービス、たとえば以下をコールする。
【００４０】
http://mygateway.oraclecloud.com/mypremise_com/media_streaming
このコールは（ＷｅｂＳｏｃｋｅｔプロトコルを通して）オンプレミスに転送され、エージェントは以下の実際のサービスをコールする。
【００４１】
http://mypremise.com/media_streaming
エージェントは応答を処理し、それをクラウドに転送する。ゲートウェイは応答をクライアントに提供する。ＨＴＴＰの内部で作動するどのストリーミングプロトコルも、良好に機能し得る。
【００４２】
モバイルクラウドサービス（ＭＣＳ）
「接続性（connectivity）」という用語はここでは、インテグレーションの低レベルのベース部分、または当該技術分野において公知の他のものを示す。それはクラウド環境とオンプレミス環境との間の単純なブリッジであってもよく、それは双方向（たとえば、クラウドからオンプレミスへ、およびその逆）において同期していてもよく、トランザクション伝搬または補償アクション、プロトコル変換、データ変換、サービスオーケストレーション／アグリゲーション、およびメッセージ順序付け／並列化がすべて、接続性の一部であるとは限らない。
【００４３】
図１は、一実施形態に従ったコンポーネントモデルを示す。システム１００では、クラウドベースのシステム１０２が、ＨＴＴＰを使用して、インターネット１０４を通してオンプレミスシステム１０６と接続される。
【００４４】
ゲートウェイ１０８はクラウドサービスとして利用可能であり、一方、デプロイメントノードであるエージェント１１０は、ソフトウェア機器、仮想機器、またはハードウェア機器として、オンプレミス・デプロイメントのために利用可能である。
【００４５】
エージェント１１０からゲートウェイ１０８へのデプロイメント関係は、多対多として特徴付けられ得る。１つのクラウドベースのゲートウェイインスタンスが、いくつかのエージェントインスタンスからの接続を（並行して）受け入れてもよい。１つのエージェントインスタンスが、いくつかのゲートウェイインスタンスに（並行して）接続してもよい。
【００４６】
エージェントからサービスへのプロトコルスタック、およびゲートウェイからサービスへのプロトコルスタックは、対称的であってもよい（それらは同じトップレベルのプロトコルを有するため、必ずしも等しくなくてもよい）。設計によっては、すべての企業サービスがウェブサービスとして公開され得る。クラウドは、どの外部通信もＨＴＴＰ（Ｓ）（すなわち、セキュアＨＴＴＰ）に制限してもよい。
【００４７】
エージェントからゲートウェイへの通信プロトコルは、エージェントを、明示型および透過型双方のウェブプロキシを通して作動するように制限する。エージェントからゲートウェイへの通信チャネルは、公的ネットワーク（たとえば、インターネット１０４）を通過するため、保護されるべきである。純粋なＨＴＴＰに加えてコンテンツを保護することは可能であるが、業界標準ＨＴＴＰＳと比べて利点がないかもしれない。
【００４８】
ＷｅｂＳｏｃｋｅｔは、データとＨＴＴＰプロトコルとの間での使用にとって好適なプロトコルである。「ロングポーリング」および「ｈｔｔｐストリーミング」などのコメット（Comet）も作動し得る。
【００４９】
図では、転送チャネルリスナはクライアントモジュールであり、それは、ゲートウェイ１０８との接続を確立し、この双方向転送チャネルを通して非同期モードでデータのやりとりを行なう。
【００５０】
ＨＴＴＰリスナ１１６は、企業システムからの着信ＨＴＴＰ要求をリスニングし、ＨＴＴＰ要求をゲートウェイ１０８に送信する。それは、所与の応答を同期返送する。
【００５１】
ＨＴＴＰトランスレータ１１８は、ゲートウェイからＨＴＴＰ要求を受信し、ＨＴＴＰ要求を企業サービスに転送する。それは、所与の応答をゲートウェイに同期返送する。
【００５２】
同期モジュール１２０は、データパケットキュー作成に加えて同期論理を行なう。それは、ＨＴＴＰトランスレータに同期（要求／応答）ＡＰＩを提供し、転送チャネルクライアントに非同期ＡＰＩ（送信／受信）を提供する。
【００５３】
ライフサイクルマネージャ１２２は、自己保守タスク、監視タスクおよびリモート管理タスクを行ない、ゼロダウンタイム、ゼロ保守費などといったエージェント機能に関与している。
【００５４】
アクセス制御１２４および１２６は、クラウドからサービスへのアクセス制御のためのローカルポリシーストレージおよび機器である。
【００５５】
ゲートウェイ１０８で、転送チャネルリスナ１１４は、エージェント１１０からの着信接続をリスニングし、この双方向転送チャネルを通して非同期モードでデータのやりとりを行なう。
【００５６】
ＨＴＴＰリスナ１３０は、クラウドシステムからの着信ＨＴＴＰ要求をリスニングし、ＨＴＴＰ要求をエージェント１１０に送信する。それは、所与の応答を同期返送する。
【００５７】
ＨＴＴＰトランスレータ１２４は、エージェントからＨＴＴＰ要求を受信し、ＨＴＴＰ要求をクラウドサービス１０２に転送する。それは、所与の応答をエージェントに同期返送する。
【００５８】
同期モジュール１２０は、データパケットキュー作成に加えて同期論理を行なう。それは、ＨＴＴＰトランスレータに同期（要求／応答）ＡＰＩを提供し、転送チャネルリスナに非同期ＡＰＩ（送信／受信）を提供する。
【００５９】
アクセス制御１２６は、クラウドからサービスへの、および企業からサービスへのアクセス制御のためのリモートポリシーストレージおよび機器である。
【００６０】
構成マネージャ１２８は、接続性管理のためのクラウドストレージおよび管理インターフェイス（ＡＰＩまたはＵＩまたは双方）である。
【００６１】
図２は、一実施形態に従った、モバイルクラウドサービスのコンポーネントとしてのインテグレーションサービスを示す。システム２００では、モバイルクラウドサービス２０２はクラウド内にあり、ファイアウォールの背後にあり、それは、モバイルデバイス２２４とオンプレミス・レガシーシステム２１６との間のインターフェイスとして作用できる。
【００６２】
モバイルデバイス２２４はｍＡＰＩ（モバイルアプリケーションプログラミングインターフェイス）２０８を通して通信し、それは、そのメッセージをサポーティングサービス２０４に転送する。サポーティングサービス２０４はメッセージをインテグレーションサービス２０６に送信し、それはコネクタ２１０を含む。コネクタ２１０はゲートウェイ２１２と結合する。
【００６３】
モバイルクラウドサービス２０２は、ゲートウェイ２１２で、モバイルデバイス２２４からの要求を、ＷｅｂＳｏｃｋｅｔプロトコル準拠のメッセージへと再フォーマットする。ゲートウェイ２１２は、オンプレミス企業ネットワークからＷｅｂＳｏｃｋｅｔプロトコル準拠の応答を受信し、それらの応答からクラウド対応の応答を作成してモバイルデバイスに送信する。
【００６４】
レガシーシステムのオンプレミスの地理的場所で、エージェント２２２は、公的ネットワーク２１４に対するファイアウォールの背後のコンピュータ上で実行されてもよい。エージェント２２２は、ゲートウェイ２１２からデータの要求を受信し、要求をレガシーシステム２１６用のＨＴＴＰ要求へと再フォーマットし、サービス１  ２１８を使用して要求に対する応答を供給する。サービスからの応答がエージェント２２２でいったん受信されると、エージェント２２２は、サービスによって提供された情報を用いてＷｅｂＳｏｃｋｅｔプロトコル準拠の応答を作成し、ゲートウェイ２１２に返送する。ゲートウェイ２１２は次に、データをモバイルデバイス２２４に返送するために、データをＨＴＴＰフォーマットへと再変換することができる。サービス２  ２２０も、サービス１  ２１８とともに、または別々に使用可能である。
【００６５】
図３は、一実施形態に従った、オンプレミス環境におけるアグリゲーションサービスを示す。図はオンプレミス・アグリゲーションサービス３２６を含み、それを通して、エージェント２２２は、レガシーシステム２１６のサービス１  ２１８およびサービス２  ２２０と通信する。
【００６６】
提案されるアプローチは、ＨＴＴＰパケット（要求および応答）を「キャッチ」し、ＨＴＴＰパケット（要求および応答）を反対側に転送し、ＨＴＴＰパケット（要求および応答）を、以下の制限され明確に定義された一組の変更を加えて転送することである：
・要求ＵＲＬ（ユニフォームリソースロケータ）  −  選択されたデータルーティング構成設計に依存して、ＵＲＬの一部が書き直されてもよい（ホスト／ポート部分、または要求経路、または双方）。ＵＲＬの書き直しは、以下の要求の変換の主要メカニズムであるべきである：
ｏ  ゲートウェイに対するＨＴＴＰ要求から企業サービスに対するＨＴＴＰ要求
ｏ  エージェントに対するＨＴＴＰ要求からクラウドサービスに対するＨＴＴＰ要求
・要求／応答ヘッダ  −  そのまま転送され、転送されるべきである；
・要求／応答ボディ  −  そのまま転送され、転送されるべきである；
・要求クレデンシャル  −  コアＨＴＴＰ（主としてベーシック（Basic）アクセス認証）および関連する（オーオース（OAuth）のような）認証方法の各々について。
【００６７】
データ転送コンテナとして、性能が最も効率的なフォーマットを、それが最終的に選択されたエージェントからゲートウェイへの通信技術によって受け入れ可能であれば、自由に選択することができる（ＸＭＬ、ＪＳＯＮ、ＢＳＯＮ（バイナリＪＳＯＮ）など）（公知の選択肢のうちのいくつかは、公知の制限、すなわち、ＸＭＬのみのデータ転送を有する）。
【００６８】
サービスオーケストレーション・ソリューションを用いた使用
トランザクション伝搬または補償アクション、プロトコル変換、データ変換、サービスオーケストレーション／アグリゲーション、メッセージ順序付け／並列化のすべてが接続性の一部であるとは限らないが、それらは、提供されたソリューションを特定のソリューションと組合せることによって達成され得る。それらのソリューションは、クラウドおよびオンプロミスの双方でデプロイメントされ得る。
【００６９】
システム起動例
１．エージェントがオンプレミスシステムにおいて立ち上がると、それはＨＴＴＰ／ＨＴＴＰＳプロキシを使用してゲートウェイに接続し、エージェントとゲートウェイとの間のＷｅｂＳｏｃｋｅｔ接続を確立する。この接続は、データを双方向に転送するために使用されるであろう；
２．エージェントは、フィルタ、アクセス制御リスト、および更新利用可能性を含むそれ自体の構成をゲートウェイからダウンロードする；
３．起動後、クラウドにおいてゲートウェイは着信ＨＴＴＰコールをリスニングし、オンプレミス環境においてエージェントは着信ｈｔｔｐコールをリスニングする。
【００７０】
クラウドにおけるアプリケーションが、オンプレミス環境からＲＥＳＴウェブサービスをコールする：
１．クライアント（Ｃ）が、ゲートウェイ、エンドポイントＧａｔｅｗａｙ＿Ｅ１に対するｈｔｔｐコールを行なう；
２．リスナが、アドレスＧａｔｅｗａｙ＿Ｅ１に対する要求を受信する；
３．ＨＴＴＰトランスレータが、アドレスをＥ１に変換し、アドレス、ヘッダおよびボディを伝送チャネルを通して転送されるように準備する；
４．同期モジュールが、要求にユニークＩＤを割当て、元のスレッドを保留にし、要求を発信キューに追加する；
５．キューから、要求はエージェントに転送される；
６．エージェント側で、要求は、有効なＨＴＴＰ要求となるように、アドレス、ヘッダおよびボディが再構築される；
７．エンドポイントＥ１に対する発信コールが行なわれる；
８．応答がいったん受信されると、それはゲートウェイに転送される。
【００７１】
図４は、一実施形態に従ったシーケンス図である。プロセス４００では、クラウドベースのゲートウェイとオンプレミス・エージェントとの接続が実証される。
【００７２】
エージェント４０４はゲートウェイ４０３とのＨＴＴＰ接続を始動し（４０８）、ゲートウェイ４０３はサーバ接続４０９で応答する。「ＨＴＴＰ接続」は、セキュアＨＴＴＰＳ接続を含み得る。エージェント４０４は次に、ＷｅｂＳｏｃｋｅｔプロトコルへの接続のためのアップグレードを要求し（４１０）、ゲートウェイは接続４１１でアップグレードを確認する。
【００７３】
データグラムと呼ばれるユーザデータグラムプロトコル（User Datagram Protocol：ＵＤＰ）メッセージを、ＨＴＴＰ接続とともに使用して、クラウドにおけるゲートウェイ４０３と企業ネットワークにおけるファイアウォールの背後にあるエージェント４０４との間で情報をやりとりすることができる。
【００７４】
エージェント４０４は、最小限の保守しか必要としないスタンドアロンのＪａｖａ（登録商標）アプリケーションであり得る。エージェントは、それ自体のソフトウェアの更新についてチェックし、それをダウンロードし、それをソフトウェア更新としてインストールすることができる。
【００７５】
エージェント４０４は、それ自体のソフトウェアを更新するための受け入れ可能な（または受け入れられない）期間を探すかまたは他の態様で判断することができる。たとえば、日曜の朝２時は、システム上のユーザの数が最小である受け入れ可能な時間であり得る。別の例として、エージェントは、ソフトウェア更新を探すために、エージェント上のローディングの使用パターンを判断し、使用の一時的減少または最小がある時間を選択してもよい。
【００７６】
更新のインストールに関して問題がある場合、エージェントは、ダウンロードされたソフトウェア更新のインストールを、ソフトウェアの前の（または後の）バージョンに戻してもよい。たとえば、ソフトウェア更新直後にエージェントがクラウドベースのゲートウェイ４０３と接続できない場合、ソフトウェア更新を戻すことができる。
【００７７】
初期化後しばらくして、モバイルデバイス４０１は、データの要求４１２を、クラウドベースのシステム４０６のｍＡＰＩ４０２に送信する。要求はゲートウェイ４０３に転送され、それは要求を再フォーマットする。
【００７８】
再フォーマットされた要求４１４は、ゲートウェイ４０３から、会社の場所でオンプレミス４０７であるエージェント４０４に送信される。エージェント４０４は、ＷｅｂＳｏｃｋｅｔフォーマットをＨＴＴＰ要求に変換し、次にＨＴＴＰ要求４１５をレガシーサーバ４０５に送信し、それは企業アプリケーションを実行する。
【００７９】
レガシーサーバ４０５はＨＴＴＰ応答４１６をエージェント４０４に送信し、エージェント４０４はそれをＷｅｂＳｏｃｋｅｔ用に再フォーマットする。再フォーマットされた応答４１７はエージェントからゲートウェイ４０３に送信され、ゲートウェイ４０３はそれを元の要求のフォーマットに変換する。応答４１８がゲートウェイ４０３からｍＡＰＩに送信され、ｍＡＰＩはそれを応答４１９としてモバイルデバイス４０１に送信する。
【００８０】
図５は、一実施形態に従ったプロセスを示す例示的なフローチャートである。このプロセスは、コンピュータまたは他のマシンにおいて自動化され得る。プロセスは、ソフトウェア、ファームウェアでコード化され、またはマシン読取可能命令としてハードコード化されて、命令を実現できるプロセッサを通して実行され得る。動作５０１で、企業ネットワーク上のファイアウォールの背後のコンピュータ上で実行されるエージェントから、ファイアウォールの外部のクラウドベースのゲートウェイとのハイパーテキスト伝送プロトコル（ＨＴＴＰ）接続を始動する。動作５０２で、ＨＴＴＰ接続をＷｅｂＳｏｃｋｅｔプロトコル接続にアップグレードする。動作５０３で、エージェントで、ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、ゲートウェイからのデータの要求を受信する。動作５０４で、エージェントで、要求をＨＴＴＰ要求へと再フォーマットする。動作５０５で、エージェントから、ＨＴＴＰ要求を企業ネットワーク上のサーバに送信する。動作５０６で、エージェントで、サーバからＨＴＴＰ要求に対する応答を受信する。動作５０７で、エージェントで、サーバからの応答に基づいてＷｅｂＳｏｃｋｅｔ応答を作成する。動作５０８で、エージェントから、ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、ゲートウェイにＷｅｂＳｏｃｋｅｔ応答を送信する。
【００８１】
図６は、実施形態のうちの１つを実現するための分散型システム６００の簡略図を示す。図示された実施形態では、分散型システム６００は１つ以上のクライアントコンピューティングデバイス６０２、６０４、６０６および６０８を含み、それらは、１つ以上のネットワーク６１０を通して、ウェブブラウザ、専用クライアント（たとえば、オラクル・フォームズ（Oracle Forms））などのクライアントアプリケーションを実行し、動作させるように構成される。サーバ６１２は、ネットワーク６１０を介して、リモートクライアントコンピューティングデバイス６０２、６０４、６０６および６０８と通信可能に結合されてもよい。
【００８２】
さまざまな実施形態では、サーバ６１２は、システムのコンポーネントのうちの１つ以上によって提供される１つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。サービスまたはソフトウェアアプリケーションは、非仮想環境または仮想環境を含み得る。仮想環境は、二次元表現であれ三次元（３Ｄ）表現であれ、ページベースの論理環境、またはその他であれ、仮想のイベント、トレードショー、シミュレータ、教室、ショッピング交換、および企業に用いられるものを含み得る。ある実施形態では、これらのサービスは、ウェブベースのサービスまたはクラウドサービスとして、もしくはソフトウェア・アズ・ア・サービス（ＳａａＳ）モデルの下で、クライアントコンピュータデバイス６０２、６０４、６０６および／または６０８のユーザに提供されてもよい。クライアントコンピューティングデバイス６０２、６０４、６０６および／または６０８を動作させるユーザは、次いで、１つ以上のクライアントアプリケーションを利用してサーバ６１２と対話して、これらのコンポーネントによって提供されるサービスを利用してもよい。
【００８３】
図に示される構成では、システム６００のソフトウェアコンポーネント６１８、６２０および６２２は、サーバ６１２上で実現されるとして図示されている。他の実施形態では、システム６００のコンポーネントのうちの１つ以上、および／またはこれらのコンポーネントによって提供されるサービスも、クライアントコンピューティングデバイス６０２、６０４、６０６および／または６０８のうちの１つ以上によって実現されてもよい。クライアントコンピューティングデバイスを動作させるユーザは、次いで、１つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを用いてもよい。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せで実現されてもよい。さまざまな異なるシステム構成が可能であり、それらは分散型システム６００とは異なってもよい、ということが理解されるべきである。図に示される実施形態はしたがって、実施形態システムを実現するための分散型システムの一例であり、限定的であるよう意図されてはいない。
【００８４】
クライアントコンピューティングデバイス６０２、６０４、６０６および／または６０８は、携帯型ハンドヘルド装置（たとえば、ｉＰｈｏｎｅ（登録商標）、携帯電話、ｉＰａｄ（登録商標）、コンピューティングタブレット、携帯情報端末（personal digital assistant：ＰＤＡ））またはウェアラブルデバイス（たとえば、グーグル・グラス（Google Glass）（登録商標）頭部装着型ディスプレイ）であってもよく、マイクロソフト・ウィンドウズ・モバイル（Microsoft Windows Mobile）（登録商標）などのソフトウェア、および／またはｉＯＳ、ウィンドウズ（登録商標）フォン、アンドロイド（登録商標）、ブラックベリー（登録商標）１０、パームＯＳなどのさまざまなモバイルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス（short message service：ＳＭＳ）、ブラックベリー（登録商標）または他の通信プロトコルに対応している。クライアントコンピューティングデバイスは汎用パーソナルコンピュータであってもよく、たとえば、マイクロソフト・ウィンドウズ（登録商標）、アップル・マッキントッシュ（登録商標）、および／またはＬｉｎｕｘ（登録商標）オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび／またはラップトップコンピュータを含む。クライアントコンピューティングデバイスは、たとえばグーグル・クロームＯＳなどのさまざまなＧＮＵ／Ｌｉｎｕｘ（登録商標）オペレーティングシステムを何ら限定されることなく含む、商業的に入手可能なさまざまなＵＮＩＸ（登録商標）またはＵＮＩＸ（登録商標）系オペレーティングシステムのうちの任意のものを実行するワークステーションコンピュータであり得る。代替的に、または加えて、クライアントコンピューティングデバイス６０２、６０４、６０６および６０８は、ネットワーク６１０を通して通信することができる、シン・クライアント・コンピュータ、インターネット対応ゲーミングシステム（たとえば、Ｋｉｎｅｃｔ（登録商標）ジェスチャー入力装置を伴うかまたは伴わないマイクロソフトＸｂｏｘゲーミングコンソール）、および／またはパーソナルメッセージングデバイスといった、任意の他の電子装置であってもよい。
【００８５】
例示的な分散型システム６００は４つのクライアントコンピューティングデバイスとともに図示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを伴うデバイスなどの他のデバイスが、サーバ６１２と対話してもよい。
【００８６】
分散型システム６００におけるネットワーク６１０は、ＴＣＰ／ＩＰ（transmission control protocol/Internet protocol：伝送制御プロトコル／インターネットプロトコル）、ＳＮＡ（systems network architecture：システムネットワークアーキテクチャ）、ＩＰＸ（Internet packet exchange：インターネットパケット交換）、アップル・トーク（AppleTalk）などを何ら限定されることなく含む、商業的に入手可能なさまざまなプロトコルのうちの任意のものを用いてデータ通信をサポートできる、当業者にはよく知られた任意のタイプのネットワークであってもよい。単なる例として、ネットワーク６１０は、イーサネット（登録商標）、トークンリングなどに基づくものといった、ローカルエリアネットワーク（ＬＡＮ）であり得る。ネットワーク６１０は、ワイドエリアネットワークおよびインターネットであり得る。それは、仮想プライベートネットワーク（virtual private network：ＶＰＮ）を何ら限定されることなく含む仮想ネットワーク、イントラネット、エクストラネット、公衆交換電話網（public switched telephone network：ＰＳＴＮ）、赤外線ネットワーク、無線ネットワーク（たとえば、電気電子技術者協会（the Institute of Electrical and Electronics：ＩＥＥＥ）８０２．１１プロトコルスイート、Bluetooth（登録商標）、および／または任意の他の無線プロトコルのいずれかの下で動作するネットワーク）、ならびに／もしくは、これらのおよび／または他のネットワークの任意の組合せを含み得る。
【００８７】
サーバ６１２は、１つ以上の汎用コンピュータ、専用サーバコンピュータ（たとえば、ＰＣ（パーソナルコンピュータ）サーバ、ＵＮＩＸ（登録商標）サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウントサーバなどを含む）、サーバファーム、サーバクラスタ、もしくは任意の他の適切な構成および／または組合せから構成されてもよい。サーバ６１２は、仮想オペレーティングシステムを実行する１つ以上の仮想マシン、または仮想化を伴う他のコンピューティングアーキテクチャを含み得る。論理記憶装置の１つ以上のフレキシブルプールを仮想化して、サーバのための仮想記憶装置を維持することができる。仮想ネットワークを、サーバ６１２によって、ソフトウェア定義ネットワーキングを用いて制御することができる。さまざまな実施形態では、サーバ６１２は、前述の開示で説明された１つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。たとえば、サーバ６１２は、この開示の一実施形態に従った上述の処理を行なうためのサーバに対応していてもよい。
【００８８】
サーバ６１２は、上述のもののうちの任意のものを含むオペレーティングシステム、および商業的に入手可能な任意のサーバオペレーティングシステムを実行してもよい。サーバ６１２はまた、ＨＴＴＰ（ハイパーテキスト伝送プロトコル）サーバ、ＦＴＰ（file transfer protocol：ファイル転送プロトコル）サーバ、ＣＧＩ（common gateway interface：コモンゲートウェイインターフェイス）サーバ、ＪＡＶＡ（登録商標）サーバ、データベースサーバなどを含む、さまざまな追加のサーバアプリケーションおよび／または中間層アプリケーションのうちの任意のものを実行してもよい。例示的なデータベースサーバは、オラクル、マイクロソフト、サイベース（Sybase）、ＩＢＭ（International Business Machines：インターナショナル・ビジネス・マシーンズ）などから商業的に入手可能なものを、何ら限定されることなく含む。
【００８９】
ある実現化例では、サーバ６１２は、クライアントコンピューティングデバイス６０２、６０４、６０６および６０８のユーザから受信されたデータフィードおよび／またはイベント更新を解析し統合するための１つ以上のアプリケーションを含んでいてもよい。一例として、データフィードおよび／またはイベント更新は、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール（たとえば、ネットワーク監視およびトラフィック管理アプリケーション）、クリックストリーム解析ツール、自動車交通監視などに関連するリアルタイムイベントを含み得る、１つ以上の第三者情報源および連続データストリームから受信された、ツイッター（登録商標）フィード、フェースブック（登録商標）更新またはリアルタイム更新を含んでいてもよいが、それらに限定されない。サーバ６１２はまた、クライアントコンピューティングデバイス６０２、６０４、６０６および６０８の１つ以上の表示装置を介してデータフィードおよび／またはリアルタイムイベントを表示するための１つ以上のアプリケーションを含んでいてもよい。
【００９０】
分散型システム６００はまた、１つ以上のデータベース６１４および６１６を含んでいてもよい。データベース６１４および６１６は、さまざまな場所にあってもよい。例として、データベース６１４および６１６のうちの１つ以上は、サーバ６１２に対してローカルな（および／または、サーバ６１２に常駐する）非一時的記憶媒体上にあってもよい。代替的に、データベース６１４および６１６は、サーバ６１２からリモートであってもよく、ネットワークベースの接続または専用接続を介してサーバ６１２と通信状態にあってもよい。１組の実施形態では、データベース６１４および６１６は、ストレージエリアネットワーク（storage-area network：ＳＡＮ）にあってもよい。同様に、サーバ６１２に帰する機能を行なうための任意の必要なファイルが適宜、サーバ６１２上にローカルに格納されてもよく、および／またはリモートに格納されてもよい。１組の実施形態では、データベース６１４および６１６は、ＳＱＬフォーマットのコマンドに応答してデータを格納し、更新し、検索するように適合された、オラクルによって提供されるデータベースなどのリレーショナルデータベースを含んでいてもよい。
【００９１】
図７は、この開示の一実施形態に従った、実施形態システムの１つ以上のコンポーネントによって提供されるサービスをクラウドサービスとして提供し得るシステム環境７００の１つ以上のコンポーネントの簡略ブロック図である。図示された実施形態では、システム環境７００は、クラウドサービスを提供するクラウドインフラストラクチャシステム７０２と対話するためにユーザによって使用され得る１つ以上のクライアントコンピューティングデバイス７０４、７０６および７０８を含む。クライアントコンピューティングデバイスは、クラウドインフラストラクチャシステム７０２と対話してクラウドインフラストラクチャシステム７０２によって提供されるサービスを使用するためにクライアントコンピューティングデバイスのユーザによって使用され得る、ウェブブラウザ、専用クライアントアプリケーション（たとえばOracle Forms）、または何らかの他のアプリケーションといったクライアントアプリケーションを動作させるように構成されてもよい。
【００９２】
図に示されるクラウドインフラストラクチャシステム７０２は、図示されたもの以外のコンポーネントを有してもよい、ということが理解されるべきである。また、図に示される実施形態は、この発明の一実施形態を取入れ得るクラウドインフラストラクチャシステムの一例に過ぎない。ある他の実施形態では、クラウドインフラストラクチャシステム７０２は、図に示されるよりも多い、または少ないコンポーネントを有してもよく、２つ以上のコンポーネントを組合せてもよく、もしくは、異なる構成または配置のコンポーネントを有してもよい。
【００９３】
クライアントコンピューティングデバイス７０４、７０６および７０８は、６０２、６０４、６０６および６０８について上述されたものと同様のデバイスであってもよい。
【００９４】
例示的なシステム環境７００は３つのクライアントコンピューティングデバイスとともに図示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを伴うデバイスなどの他のデバイスが、クラウドインフラストラクチャシステム７０２と対話してもよい。
【００９５】
ネットワーク７１０は、クライアント７０４、７０６および７０８とクラウドインフラストラクチャシステム７０２との間のデータの通信および交換を容易にしてもよい。各ネットワークは、ネットワーク６１０について上述されたものを含む、商業的に入手可能なさまざまなプロトコルのうちの任意のものを用いてデータ通信をサポートできる、当業者にはよく知られた任意のタイプのネットワークであってもよい。
【００９６】
クラウドインフラストラクチャシステム７０２は、サーバ６１２について上述されたものを含み得る１つ以上のコンピュータおよび／またはサーバを含んでいてもよい。
【００９７】
ある実施形態では、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータストレージおよびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよび文書コラボレーションサービス、データベース処理、管理された技術サポートサービスといった、クラウドインフラストラクチャシステムのユーザにオンデマンドで利用可能にされる多数のサービスを含んでいてもよい。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすために動的にスケール変更され得る。クラウドインフラストラクチャシステムによって提供されるサービスの特定のインスタンス化は、ここに「サービスインスタンス」と称される。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザに利用可能にされる任意のサービスは、「クラウドサービス」と称される。典型的には、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを形成するサーバおよびシステムは、顧客自身のオンプレミスのサーバおよびシステムとは異なっている。たとえば、クラウドサービスプロバイダのシステムはアプリケーションをホストしてもよく、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドでアプリケーションをオーダーし、使用してもよい。
【００９８】
ある例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、クラウドベンダーによってユーザに提供されるかまたは他の態様で当該技術分野において公知であるような、ストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーション、もしくは他のサービスへの、保護されたコンピュータネットワークアクセスを含んでいてもよい。たとえば、サービスは、インターネットを介した、クラウド上のリモートストレージへの、パスワードで保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク接続された開発者による私的使用のための、ウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダーのウェブサイト上でホストされる電子メールソフトウェアアプリケーションへのアクセスを含み得る。
【００９９】
ある実施形態では、クラウドインフラストラクチャシステム７０２は、セルフサービスで、サブスクリプションベースで、弾力的にスケーラブルで、信頼性があり、高可用性で、かつ安全な態様で顧客に配信される、一式のアプリケーション、ミドルウェア、データベースサービス提供物を含んでいてもよい。そのようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクル・パブリック・クラウド（Oracle Public Cloud）である。
【０１００】
「ビッグデータ」は、多くのレベルで、および異なるスケールで、インフラストラクチャシステムによってホストされ、および／または操作され得る。大量のデータを視覚化し、傾向を検出し、および／または他の態様でデータと対話するために、極めて大きいデータセットが解析者および研究者によって格納され、操作され得る。並列にリンクされた何十、何百または何千ものプロセッサが、そのようなデータに作用して、それを提示し、もしくは、そのデータまたはそれが表わすものに対する外力をシミュレートすることができる。これらのデータセットは、データベースで編成されたもの、あるいは他の態様で構造化モデルに従って編成されたものといった構造化データ、および／または、非構造化データ（たとえば、ｅメール、画像、データｂｌｏｂ（binary large object：バイナリ・ラージ・オブジェクト）、ウェブページ、複雑なイベント処理）を伴い得る。より多い（またはより少ない）コンピューティングリソースを比較的迅速に目標に集中させるように一実施形態の能力を活用することにより、クラウドインフラストラクチャシステムは、ビジネス、政府機関、研究組織、私人、同志の個人もしくは組織のグループ、または他のエンティティからの要望に基づいて、大きいデータセットに対してタスクを実行するためにより良好に利用可能であってもよい。
【０１０１】
さまざまな実施形態では、クラウドインフラストラクチャシステム７０２は、クラウドインフラストラクチャシステム７０２によって提供されるサービスに顧客のサブスプリクションを自動的にプロビジョニングし、管理し、追跡するように適合されてもよい。クラウドインフラストラクチャシステム７０２は、異なるデプロイメントモデルを介してクラウドサービスを提供してもよい。たとえば、サービスは、クラウドインフラストラクチャシステム７０２がクラウドサービスを販売する組織によって所有され（たとえば、オラクルによって所有され）、サービスが一般大衆または異なる産業企業にとって利用可能とされる、パブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム７０２が単一の組織のためにのみ動作され、その組織内の１つ以上のエンティティのためのサービスを提供し得る、プライベートクラウドモデルの下で提供されてもよい。クラウドサービスはまた、クラウドインフラストラクチャシステム７０２、およびクラウドインフラストラクチャシステム７０２によって提供されるサービスが、関連するコミュニティにおけるいくつかの組織によって共有される、コミュニティクラウドモデルの下で提供されてもよい。クラウドサービスはまた、２つ以上の異なるモデルの組合せであるハイブリッドクラウドモデルの下で提供されてもよい。
【０１０２】
ある実施形態では、クラウドインフラストラクチャシステム７０２によって提供されるサービスは、ソフトウェア・アズ・ア・サービス（ＳａａＳ）カテゴリー、プラットフォーム・アズ・ア・サービス（ＰａａＳ）カテゴリー、インフラストラクチャ・アズ・ア・サービス（Infrastructure as a Service：ＩａａＳ）カテゴリー、またはハイブリッドサービスを含むサービスの他のカテゴリーの下で提供される、１つ以上のサービスを含んでいてもよい。顧客は、サブスプリクションオーダーを介して、クラウドインフラストラクチャシステム７０２によって提供される１つ以上のサービスをオーダーしてもよい。クラウドインフラストラクチャシステム７０２は、次いで、顧客のサブスクリプションオーダーにおけるサービスを提供するために処理を行なう。
【０１０３】
ある実施形態では、クラウドインフラストラクチャシステム７０２によって提供されるサービスは、アプリケーションサービス、プラットフォームサービス、およびインフラストラクチャサービスを、何ら限定されることなく含んでいてもよい。ある例では、アプリケーションサービスは、クラウドインフラストラクチャシステムによってＳａａＳプラットフォームを介して提供されてもよい。ＳａａＳプラットフォームは、ＳａａＳカテゴリーに該当するクラウドサービスを提供するように構成されてもよい。たとえば、ＳａａＳプラットフォームは、統合された開発およびデプロイメントプラットフォーム上に一式のオンデマンドアプリケーションを構築し、配信するための能力を提供してもよい。ＳａａＳプラットフォームは、ＳａａＳサービスを提供するための基本ソフトウェアおよびインフラストラクチャを管理し、制御してもよい。ＳａａＳプラットフォームによって提供されるサービスを利用することにより、顧客は、クラウドインフラストラクチャシステム上で実行されるアプリケーションを利用できる。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得できる。さまざまな異なるＳａａＳサービスが提供されてもよい。例は、大型組織のための販売実績管理、企業統合、およびビジネス柔軟性についてのソリューションを提供するサービスを、何ら限定されることなく含む。
【０１０４】
ある実施形態では、プラットフォームサービスは、クラウドインフラストラクチャシステムによってＰａａＳプラットフォームを介して提供されてもよい。ＰａａＳプラットフォームは、ＰａａＳカテゴリーに該当するクラウドサービスを提供するように構成されてもよい。プラットフォームサービスの例は、（オラクルなどの）組織が共有の共通アーキテクチャ上で既存のアプリケーションを統合できるようにするサービスと、プラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築するための能力とを、何ら限定されることなく含んでいてもよい。ＰａａＳプラットフォームは、ＰａａＳサービスを提供するための基本ソフトウェアおよびインフラストラクチャを管理し、制御してもよい。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステムによって提供されるＰａａＳサービスを取得できる。プラットフォームサービスの例は、オラクルＪａｖａ（登録商標）クラウドサービス（Java Cloud Service：ＪＣＳ）、オラクル・データベース・クラウド・サービス（Database Cloud Service：ＤＢＣＳ）などを、何ら限定されることなく含む。
【０１０５】
ＰａａＳプラットフォームによって提供されるサービスを利用することにより、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを採用するとともに、デプロイメントされたサービスを制御することができる。ある実施形態では、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス（たとえば、オラクル・フュージョン・ミドルウェア（Oracle Fusion Middleware）サービス）、およびＪａｖａ（登録商標）クラウドサービスを含んでいてもよい。一実施形態では、データベースクラウドサービスは、組織がデータベースリソースをプールし、データベースクラウドの形をしたデータベース・アズ・ア・サービスを顧客に提供することを可能にする共有のサービスデプロイメントモデルをサポートしてもよい。ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発してデプロイメントするためのプラットフォームを提供してもよく、Ｊａｖａ（登録商標）クラウドサービスは、顧客がクラウドインフラストラクチャシステムにおいてＪａｖａ（登録商標）アプリケーションをデプロイメントするためのプラットフォームを提供してもよい。
【０１０６】
クラウドインフラストラクチャシステムにおいて、さまざまな異なるインフラストラクチャサービスが、ＩａａＳプラットフォームによって提供されてもよい。インフラストラクチャサービスは、ＳａａＳプラットフォームおよびＰａａＳプラットフォームによって提供されるサービスを利用する顧客のための、ストレージ、ネットワーク、ならびに他の基礎的コンピューティングリソースなどの基本コンピューティングリソースの管理および制御を容易にする。
【０１０７】
ある実施形態では、クラウドインフラストラクチャシステム７０２はまた、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース７３０を含んでいてもよい。一実施形態では、インフラストラクチャリソース７３０は、ＰａａＳプラットフォームおよびＳａａＳプラットフォームによって提供されるサービスを実行するために、サーバ、ストレージ、およびネットワーキングリソースなどのハードウェアの予め統合され最適化された組合せを含んでいてもよい。
【０１０８】
ある実施形態では、クラウドインフラストラクチャシステム７０２におけるリソースは、複数のユーザによって共有され、要望ごとに動的に再割当てされてもよい。加えて、リソースは、異なる時間帯におけるユーザに割当てられてもよい。たとえば、クラウドインフラストラクチャシステム７３０は、第１の時間帯における第１の一組のユーザが、特定数の時間、クラウドインフラストラクチャシステムのリソースを利用することを可能にし、次いで、異なる時間帯に位置する別の一組のユーザへの同じリソースの再割当てを可能にして、それによりリソースの利用を最大化してもよい。
【０１０９】
ある実施形態では、クラウドインフラストラクチャシステム７０２の異なるコンポーネントまたはモジュールによって、およびクラウドインフラストラクチャシステム７０２によって提供されるサービスによって共有される、多くの内部共有サービス７３２が提供されてもよい。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよび復元サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを、何ら限定されることなく含んでいてもよい。
【０１１０】
ある実施形態では、クラウドインフラストラクチャシステム７０２は、クラウドインフラストラクチャシステムにおけるクラウドサービス（たとえば、ＳａａＳ、ＰａａＳ、およびＩａａＳサービス）の包括的管理を提供してもよい。一実施形態では、クラウド管理機能性は、クラウドインフラストラクチャシステム７０２によって受信された顧客のサブスクリプションをプロビジョニングし、管理し、追跡するための能力などを含んでいてもよい。
【０１１１】
一実施形態では、図に示されるように、クラウド管理機能性は、オーダー管理モジュール７２０、オーダーオーケストレーションモジュール７２２、オーダープロビジョニングモジュール７２４、オーダー管理および監視モジュール７２６、ならびにアイデンティティ管理モジュール７２８などの１つ以上のモジュールによって提供されてもよい。これらのモジュールは、１つ以上のコンピュータおよび／またはサービスを含んでいてもよく、もしくはそれらを用いて提供されてもよく、それらは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、もしくは任意の他の適切な構成および／または組合せであってもよい。
【０１１２】
例示的な動作７３４では、クライアントデバイス７０４、７０６または７０８などのクライアントデバイスを使用する顧客は、クラウドインフラストラクチャシステム７０２によって提供される１つ以上のサービスを要求し、クラウドインフラストラクチャシステム７０２によって提供される１つ以上のサービスについてサブスクリプションオーダーを出すことにより、クラウドインフラストラクチャシステム７０２と対話してもよい。ある実施形態では、顧客は、クラウドユーザインターフェイス（ＵＩ）であるクラウドＵＩ７１２、クラウドＵＩ７１４および／またはクラウドＵＩ７１６にアクセスし、これらのＵＩを介してサブスプリクションオーダーを出してもよい。顧客がオーダーを出したことに応答してクラウドインフラストラクチャシステム７０２が受信したオーダー情報は、顧客と、顧客が申し込むつもりである、クラウドインフラストラクチャシステム６０２によって提供される１つ以上のサービスとを識別する情報を含んでいてもよい。
【０１１３】
顧客によってオーダーが出された後で、オーダー情報がクラウドＵＩ７１２、７１４および／または７１６を介して受信される。
【０１１４】
動作７３６で、オーダーがオーダーデータベース７１８に格納される。オーダーデータベース７１８は、クラウドインフラストラクチャシステム７１８によって動作され、他のシステム要素とともに動作される、いくつかのデータベースのうちの１つであり得る。
【０１１５】
動作７３８で、オーダー情報はオーダー管理モジュール７２０に転送される。場合によっては、オーダー管理モジュール７２０は、オーダーを検証し、検証後にオーダーを予約するといった、オーダーに関連する請求および課金機能を行なうように構成されてもよい。
【０１１６】
動作７４０で、オーダーに関する情報がオーダーオーケストレーションモジュール７２２に通信される。オーダーオーケストレーションモジュール７２２は、顧客によって出されたオーダーのためのサービスおよびリソースのプロビジョニングをオーケストレーションするために、オーダー情報を利用してもよい。場合によっては、オーダーオーケストレーションモジュール７２２は、オーダープロビジョニングモジュール７２４のサービスを使用して、申し込まれたサービスをサポートするようにリソースのプロビジョニングをオーケストレーションしてもよい。
【０１１７】
ある実施形態では、オーダーオーケストレーションモジュール７２２は、各オーダーに関連付けられたビジネスプロセスの管理を可能にし、ビジネス論理を適用して、オーダーがプロビジョニングに進むべきかどうかを判断する。動作７４２で、新たなサブスプリクションのオーダーを受信すると、オーダーオーケストレーションモジュール７２２は、オーダープロビジョニングモジュール７２４に、リソースを割当ててサブスプリクションオーダーを遂行するために必要とされるリソースを構成するようにという要求を送信する。オーダープロビジョニングモジュール７２４は、顧客によってオーダーされたサービスのためのリソースの割当てを可能にする。オーダープロビジョニングモジュール７２４は、クラウドインフラストラクチャシステム７００によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理的実装層との間の抽象化のレベルを提供する。オーダーオーケストレーションモジュール７２２はしたがって、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか否か、または予めプロビジョニングされて要求時にのみ割当て／分配されるか否かといった実現詳細から切り離されてもよい。
【０１１８】
動作７４４で、サービスおよびリソースがいったんプロビジョニングされると、提供されるサービスの通知が、クラウドインフラストラクチャシステム７０２のオーダープロビジョニングモジュール７２４によって、クライアントデバイス７０４、７０６および／または７０８上の顧客に送信されてもよい。
【０１１９】
動作７４６で、顧客のサブスプリクションオーダーが、オーダー管理および監視モジュール７２６によって管理され、追跡されてもよい。場合によっては、オーダー管理および監視モジュール７２６は、使用されるストレージの量、転送されるデータの量、ユーザの数、システムアップタイムおよびシステムダウンタイムの量といった、サブスプリクションオーダーにおけるサービスについての使用統計を収集するように構成されてもよい。
【０１２０】
ある実施形態では、クラウドインフラストラクチャシステム７００は、アイデンティティ管理モジュール７２８を含んでいてもよい。アイデンティティ管理モジュール７２８は、クラウドインフラストラクチャシステム７００においてアクセス管理および認可サービスなどのようなアイデンティティサービスを提供するように構成されてもよい。ある実施形態では、アイデンティティ管理モジュール７２８は、クラウドインフラストラクチャシステム７０２によって提供されるサービスを利用したい顧客についての情報を制御してもよい。そのような情報は、そのような顧客のアイデンティティを認証する情報と、それらの顧客がさまざまなシステムリソース（たとえば、ファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど）に対してどのアクションを行なうことが認可されているかを記述する情報とを含み得る。アイデンティティ管理モジュール７２８はまた、各顧客についての記述的情報と、その記述的情報が誰によってどのようにアクセスされ、変更され得るかについての記述的情報との管理を含んでいてもよい。
【０１２１】
図８は、この発明のさまざまな実施形態が実現され得る例示的なコンピュータシステム８００を示す。システム８００は、上述のコンピュータシステムのうちの任意のものを実現するために使用されてもよい。図に示されるように、コンピュータシステム８００は、バスサブシステム８０２を介して多くの周辺サブシステムと通信する処理部８０４を含む。これらの周辺サブシステムは、処理加速部８０６と、Ｉ／Ｏサブシステム８０８と、ストレージサブシステム８１８と、通信サブシステム８２４とを含んでいてもよい。ストレージサブシステム８１８は、有形のコンピュータ読取可能記憶媒体８２２と、システムメモリ８１０とを含む。
【０１２２】
バスサブシステム８０２は、コンピュータシステム８００のさまざまなコンポーネントおよびサブシステムを意図されるように互いに通信させるためのメカニズムを提供する。バスサブシステム８０２は単一のバスとして概略的に図示されているが、バスサブシステムの代替的な実施形態は複数のバスを利用してもよい。バスサブシステム８０２は、さまざまなバスアーキテクチャのうちの任意のものを用いるメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、いくつかのタイプのバス構造のうちの任意のものであってもよい。たとえば、そのようなアーキテクチャは、ＩＥＥＥ  Ｐ１３８６．１規格で製造されるメザニンバスとして実現可能な、産業標準アーキテクチャ（Industry Standard Architecture：ＩＳＡ）バス、マイクロチャネルアーキテクチャ（Micro Channel Architecture：ＭＣＡ）バス、強化ＩＳＡ（ＥＩＳＡ）バス、ビデオエレクトロニクス標準組織（Video Electronics Standards Association：ＶＥＳＡ）ローカルバス、および周辺コンポーネント相互接続（Peripheral Component Interconnect：ＰＣＩ）バスを含んでいてもよい。
【０１２３】
１つ以上の集積回路（たとえば、従来のマイクロプロセッサまたはマイクロコントローラ）として実現され得る処理部８０４は、コンピュータシステム８００の動作を制御する。処理部８０４には、１つ以上のプロセッサが含まれていてもよい。これらのプロセッサは、シングルコアまたはマルチコアプロセッサを含んでいてもよい。ある実施形態では、処理部８０４は、各処理部にシングルまたはマルチコアプロセッサが含まれた、１つ以上の独立した処理部８３２および／または８３４として実現されてもよい。他の実施形態では、処理部８０４はまた、２つのデュアルコアプロセッサをシングルチップへと集積することによって形成されるクアッドコア処理部として実現されてもよい。
【０１２４】
さまざまな実施形態では、処理部８０４は、プログラムコードに応答してさまざまなプログラムを実行でき、同時に実行される複数のプログラムまたはプロセスを維持できる。任意の所与の時間において、実行されるべきプログラムコードの一部またはすべてが、プロセッサ８０４および／またはストレージサブシステム８１８に常駐することができる。好適なプログラミングを通して、プロセッサ８０４は、上述のさまざまな機能性を提供できる。コンピュータシステム８００は加えて処理加速部８０６を含んでいてもよく、それは、デジタル信号プロセッサ（digital signal processor：ＤＳＰ）、専用プロセッサなどを含み得る。
【０１２５】
Ｉ／Ｏサブシステム８０８は、ユーザインターフェイス入力装置と、ユーザインターフェイス出力装置とを含んでいてもよい。ユーザインターフェイス入力装置は、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組込まれたタッチパッドまたタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システム付き音声入力装置、マイクロホン、および他のタイプの入力装置を含んでいてもよい。ユーザインターフェイス入力装置は、たとえば、ジェスチャーおよび口頭コマンドを使用したナチュラルユーザインターフェイスを通して、マイクロソフトＸｂｏｘ（登録商標）３６０ゲームコントローラなどのような入力装置をユーザが制御し、それと対話することを可能にする、マイクロソフトＫｉｎｅｃｔ（登録商標）モーションセンサなどのモーション感知および／またはジェスチャー認識装置を含んでいてもよい。ユーザインターフェイス入力装置はまた、ユーザから目の活動（たとえば、写真撮影中および／またはメニュー選択中の「まばたき」）を検出し、アイジェスチャーを入力装置（たとえば、グーグル・グラス（登録商標））への入力として変換する、グーグル・グラス（登録商標）まばたき検出器などのアイジェスチャー認識装置を含んでいてもよい。加えて、ユーザインターフェイス入力装置は、ユーザが音声コマンドを通して音声認識システム（たとえば、Ｓｉｒｉ（登録商標）ナビゲータ）と対話することを可能にする音声認識感知装置を含んでいてもよい。
【０１２６】
ユーザインターフェイス入力装置はまた、三次元（３Ｄ）マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルビデオカメラ、携帯型メディアプレーヤ、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダ３Ｄスキャナ、３Ｄプリンタ、レーザ測距器、および視線追跡装置などの音声／視覚装置を、何ら限定されることなく含んでいてもよい。加えて、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影装置、磁気共鳴撮像装置、ポジトロン放出断層撮影装置、医療用超音波検査装置などの医療用撮像入力装置を含んでいてもよい。ユーザインターフェイス入力装置はまた、たとえば、ＭＩＤＩキーボード、デジタル楽器などの音声入力装置を含んでいてもよい。
【０１２７】
ユーザインターフェイス出力装置は、表示サブシステム、表示灯、または音声出力装置などの非視覚的ディスプレイなどを含んでいてもよい。表示サブシステムは、陰極線管（cathode ray tube：ＣＲＴ）、液晶ディスプレイ（liquid crystal display：ＬＣＤ）またはプラズマディスプレイを使用するものなどのフラットパネルデバイス、投影装置、タッチスクリーンなどであってもよい。一般に、「出力装置」という用語の使用は、コンピュータシステム８００からユーザまたは他のコンピュータに情報を出力するためのあらゆる可能なタイプの装置およびメカニズムを含むよう意図されている。たとえば、ユーザインターフェイス出力装置は、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力装置、およびモデムといった、テキスト、グラフィックスおよび音声／映像情報を視覚的に伝えるさまざまな表示装置を、何ら限定されることなく含んでいてもよい。
【０１２８】
コンピュータシステム８００は、現在システムメモリ８１０内に位置するとして図示されたソフトウェア要素を含むストレージサブシステム８１８を含んでいてもよい。システムメモリ８１０は、処理部８０４上でロード可能および実行可能なプログラム命令と、これらのプログラムの実行中に生成されたデータとを格納してもよい。
【０１２９】
コンピュータシステム８００の構成およびタイプに依存して、システムメモリ８１０は揮発性（ランダムアクセスメモリ（random access memory：ＲＡＭ）など）であってもよく、および／または不揮発性（読出専用メモリ（read-only memory：ＲＯＭ）、フラッシュメモリなど）であってもよい。ＲＡＭは典型的には、処理部８０４に直ちにアクセス可能であり、および／または処理部８０４によって現在動作および実行中のデータおよび／またはプログラムモジュールを含む。ある実現化例では、システムメモリ８１０は、スタティックランダムアクセスメモリ（static random access memory：ＳＲＡＭ）またはダイナミックランダムアクセスメモリ（dynamic random access memory：ＤＲＡＭ）などの複数の異なるタイプのメモリを含んでいてもよい。ある実現化例では、起動中などにコンピュータシステム８００内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入力／出力システム（basic input/output system：ＢＩＯＳ）が、典型的にはＲＯＭに格納されていてもよい。限定のためではなく例として、システムメモリ８１０はまた、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム（relational database management system：ＲＤＢＭＳ）などを含み得るアプリケーションプログラム８１２と、プログラムデータ８１４と、オペレーティングシステム８１６とを含んでいてもよい。例として、オペレーティングシステム８１６は、マイクロソフト・ウィンドウズ（登録商標）、アップル・マッキントッシュ（登録商標）、および／またはＬｉｎｕｘ（登録商標）オペレーティングシステムのさまざまなバージョン、商業的に入手可能なさまざまなＵＮＩＸ（登録商標）またはＵＮＩＸ（登録商標）系オペレーティングシステム（さまざまなＧＮＵ／Ｌｉｎｕｘ（登録商標）オペレーティングシステム、グーグル・クローム（登録商標）ＯＳなどを何ら限定されることなく含む）、および／または、ｉＯＳ、ウィンドウズ（登録商標）フォン、アンドロイド（登録商標）ＯＳ、ブラックベリー（登録商標）１０ＯＳ、およびパーム（登録商標）ＯＳオペレーティングシステムなどのモバイルオペレーティングシステムを含んでいてもよい。
【０１３０】
ストレージサブシステム８１８はまた、ある実施形態の機能性を提供する基本プログラミングおよびデータ構造を格納するための有形のコンピュータ読取可能記憶媒体を提供してもよい。プロセッサによって実行されると上述の機能性を提供するソフトウェア（プログラム、コードモジュール、命令）が、ストレージサブシステム８１８に格納されてもよい。これらのソフトウェアモジュールまたは命令は、処理部８０４によって実行されてもよい。ストレージサブシステム８１８はまた、この発明に従って使用されるデータを格納するためのリポジトリを提供してもよい。
【０１３１】
ストレージサブシステム８００はまた、コンピュータ読取可能記憶媒体８２２にさらに接続され得るコンピュータ読取可能記憶媒体リーダ８２０を含んでいてもよい。システムメモリ８１０とともに、およびオプションでシステムメモリ８１０と組合わされて、コンピュータ読取可能記憶媒体８２２は、リモート、ローカル、固定および／またはリムーバブルの記憶装置に加えて、コンピュータ読取可能情報を一時的におよび／またはより永続的に含み、格納し、送信し、検索するための記憶媒体を包括的に表わしてもよい。
【０１３２】
コードまたはコードの一部を含むコンピュータ読取可能記憶媒体８２２はまた、情報の格納および／または送信のための任意の方法または技術で実現される揮発性および不揮発性でリムーバブルおよび非リムーバブルの媒体を含むがそれらに限定されない記憶媒体および通信媒体を含む、当該技術分野において公知であるかまたは使用される任意の適切な媒体を含み得る。これは、ＲＡＭ、ＲＯＭ、電子的消去可能プログラマブルＲＯＭ（electronically erasable programmable ROM：ＥＥＰＲＯＭ）、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（digital versatile disk：ＤＶＤ）、または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、もしくは他の有形のコンピュータ読取可能媒体といった、有形の非一時的コンピュータ読取可能記憶媒体を含み得る。特定される場合、これは、所望の情報を送信するために使用可能であり、コンピュータシステム８００によってアクセスされ得るデータ信号、データ送信、または任意の他の媒体といった、非有形の一時的コンピュータ読取可能媒体も含み得る。
【０１３３】
例として、コンピュータ読取可能記憶媒体８２２は、非リムーバブルで不揮発性の磁気媒体において読出または書込を行なうハードディスクドライブ、リムーバブルで不揮発性の磁気ディスクにおいて読出または書込を行なう磁気ディスクドライブ、ならびに、ＣＤ  ＲＯＭ、ＤＶＤ、およびブルーレイ（登録商標）ディスク、または他の光学媒体といった、リムーバブルで不揮発性の光ディスクにおいて読出または書込を行なう光ディスクドライブを含んでいてもよい。コンピュータ読取可能記憶媒体８２２は、Ｚｉｐ（登録商標）ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス（universal serial bus：ＵＳＢ）フラッシュドライブ、セキュアデジタル（secure digital：ＳＤ）カード、ＤＶＤディスク、デジタルビデオテープなどを含んでいてもよいが、それらに限定されない。コンピュータ読取可能記憶媒体８２２はまた、フラッシュメモリベースのソリッドステートドライブ（solid-state drive：ＳＳＤ）、企業フラッシュドライブ、ソリッドステートＲＯＭといった、不揮発性メモリに基づいたＳＳＤ、ソリッドステートＲＡＭ、ダイナミックＲＡＭ、スタティックＲＡＭ、ＤＲＡＭベースのＳＳＤ、磁気抵抗ＲＡＭ（ＭＲＡＭ）ＳＳＤといった、揮発性メモリに基づいたＳＳＤ、および、ＤＲＡＭベースのＳＳＤとフラッシュメモリベースのＳＳＤとの組合せを使用するハイブリッドＳＳＤを含んでいてもよい。ディスクドライブおよびそれらの関連付けられたコンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュールおよび他のデータの不揮発性ストレージをコンピュータシステム８００に提供してもよい。
【０１３４】
通信サブシステム８２４は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム８２４は、コンピュータシステム８００とは別のシステムからデータを受信し、別のシステムにデータを送信するためのインターフェイスとして機能する。たとえば、通信サブシステム８２４は、コンピュータシステム８００がインターネットを介して１つ以上の装置に接続することを可能にしてもよい。ある実施形態では、通信サブシステム８２４は、（たとえば、３Ｇ、４Ｇ、またはＥＤＧＥ（enhanced data rates for global evolution：エンハンスト・データレート・フォー・グローバル・エボリューション）、ＷｉＦｉ（ＩＥＥＥ８０２．１１ファミリー規格）、または他の移動通信技術、またはそれらの任意の組合せといった、携帯電話技術、高度なデータネットワーク技術を使用した）無線音声および／またはデータネットワークにアクセスするための無線周波数（radio frequency：ＲＦ）送受信機コンポーネント、全地球測位システム（global positioning system：ＧＰＳ）受信機コンポーネント、および／または他のコンポーネントを含み得る。ある実施形態では、通信サブシステム８２４は無線インターフェイスに加えて、またはそれに代わって、有線ネットワーク接続（たとえば、イーサネット（登録商標））を提供できる。
【０１３５】
ある実施形態では、通信サブシステム８２４はまた、コンピュータシステム８００を使用し得る１人以上のユーザのために、構造化および／または非構造化データフィード８２６、イベントストリーム８２８、イベント更新８３０などの形をした入力通信を受信してもよい。
【０１３６】
例として、通信サブシステム８２４は、ツイッター（登録商標）フィード、フェースブック（登録商標）更新、リッチ・サイト・サマリー（Rich Site Summary：ＲＳＳ)フィードなどのウェブフィード、および／または１つ以上の第三者情報源からのリアルタイム更新といった、ソーシャルメディアネットワークおよび／または他の通信サービスのユーザからのデータフィード７２６をリアルタイムで受信するように構成されてもよい。
【０１３７】
加えて、通信サブシステム８２４はまた、リアルタイムイベントのイベントストリーム８２８および／またはイベント更新８３０を含み得る、明確な終わりがなく本質的に連続的または無限であり得る連続データストリームの形をしたデータを受信するように構成されてもよい。連続データを生成するアプリケーションの例は、たとえば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール（たとえば、ネットワーク監視およびトラフィック管理アプリケーション）、クリックストリーム解析ツール、自動車交通監視などを含んでいてもよい。
【０１３８】
通信サブシステム８２４はまた、構造化および／または非構造化データフィード８２６、イベントストリーム８２８、イベント更新８３０などを、コンピュータシステム８００に結合された１つ以上のストリーミングデータソースコンピュータと通信し得る１つ以上のデータベースに出力するように構成されてもよい。
【０１３９】
コンピュータシステム８００は、ハンドヘルド携帯装置（たとえば、ｉＰｈｏｎｅ（登録商標）携帯電話、ｉＰａｄ（登録商標）コンピューティングタブレット、ＰＤＡ）、ウェアラブルデバイス（たとえば、グーグル・グラス（登録商標）頭部装着型ディスプレイ）、ＰＣ、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含む、さまざまなタイプのうちの１つであり得る。
【０１４０】
コンピュータおよびネットワークの絶えず変化する性質により、図に示されるコンピュータシステム８００の説明は、単に特定の一例として意図される。図に示されるシステムより多いかまたは少ないコンポーネントを有する多くの他の構成が可能である。たとえば、カスタマイズされたハードウェアも使用されてもよく、および／または、特定の要素が、ハードウェア、ファームウェア、ソフトウェア（アプレットを含む）、またはある組合せで実現されてもよい。また、ネットワーク入力／出力装置などの他のコンピューティングデバイスへの接続が採用されてもよい。ここに提供される開示および教示に基づいて、当業者であれば、さまざまな実施形態を実現するための他のやり方および／または方法を理解するであろう。
【０１４１】
図９は、一実施形態に従ったエージェント９００のブロック図である。この発明の局面の原理を実行するために、エージェント９００のブロックは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合せによって実現されてもよい。上述のようなこの発明の原理を実現するために、図に説明されるブロックは、組合されてもよく、またはサブブロックに分離されてもよいということが、当業者には理解される。たとえば、第１の受信部９０３と第２の受信部９０６とは、１つの受信部に統合され得る。したがって、ここでの説明は、ここに説明される機能ブロックの任意の可能な組合せまたは分離またはさらなる定義をサポートしてもよい。
【０１４２】
図示されるように、企業コンピュータネットワークへのオフサイトアクセスを容易にするためのエージェント９００は、始動部９０１と、アップグレード部９０２と、第１の受信部９０３と、再フォーマット部９０４と、第１の送信部９０５と、第２の受信部９０６と、作成部９０７と、第２の送信部９０８とを含む。始動部９０１は、企業ネットワーク上のファイアウォールの外部のクラウドベースのゲートウェイとのハイパーテキスト伝送プロトコル（ＨＴＴＰ）接続を始動できる。エージェントは、ファイアウォールの背後のコンピュータ上で実行される。アップグレード部９０２は、ＨＴＴＰ接続をＷｅｂＳｏｃｋｅｔプロトコル接続にアップグレードできる。第１の受信部９０３は、ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、ゲートウェイからのデータの要求を受信できる。再フォーマット部９０４は、要求をＨＴＴＰ要求へと再フォーマットできる。第１の送信部９０５は、ＨＴＴＰ要求を企業ネットワーク上のサーバ（図示せず）に送信できる。第２の受信部９０６は、サーバからＨＴＴＰ要求に対する応答を受信できる。作成部９０７は、サーバからの応答に基づいてＷｅｂＳｏｃｋｅｔ応答を作成できる。第２の送信部９０８は、ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、ゲートウェイにＷｅｂＳｏｃｋｅｔ応答を送信する。
【０１４３】
この発明のある実施形態によれば、ＨＴＴＰ接続のＷｅｂＳｏｃｋｅｔプロトコル接続へのアップグレードは、ＨＴＴＰ接続の始動によって自動的にトリガされ得る。
【０１４４】
この発明のある実施形態によれば、エージェント９００はさらに、パッケージ部９０９を含み得る。パッケージ部９０９は、サーバからの応答を、ＷｅｂＳｏｃｋｅｔ応答の文字列、バイナリオブジェクト、またはアレイバッファへとパッケージ化してから、ＷｅｂＳｏｃｋｅｔ応答を送信することができる。
【０１４５】
この発明のある実施形態によれば、サーバは、ローカルウェブサーバであり得る。
この発明のある実施形態によれば、サーバは、企業アプリケーションを実行可能である。
【０１４６】
この発明のある実施形態によれば、ＷｅｂＳｏｃｋｅｔ接続は、セキュアＷｅｂＳｏｃｋｅｔ接続であり得る。
【０１４７】
この発明のある実施形態によれば、エージェント９００はさらに、チェック部９１０と、ダウンロード部９１１と、インストール部９１２とを含み得る。チェック部９１０は、クラウドベースのゲートウェイに、エージェントソフトウェアの更新についてチェックできる。ダウンロード部９１１は、ソフトウェア更新をダウンロードできる。インストール部９１２は、ダウンロードされたソフトウェア更新をインストールできる。
【０１４８】
この発明のある実施形態によれば、エージェント９００はさらに、判断部９１３を含み得る。判断部９１３は、ソフトウェア更新のために受け入れ可能な、または受け入れられない時間窓を判断できる。判断された時間窓に基づいて、チェック、ダウンロード、またはインストールを行なうことができる。
【０１４９】
この発明のある実施形態によれば、エージェント９００はさらに、戻し部９１４を含み得る。戻し部９１４は、ダウンロードされたソフトウェア更新のインストールを、エージェントソフトウェアの前のバージョンに戻すことができる。
【０１５０】
図１０は、一実施形態に従った、クラウドベースのゲートウェイにおけるプロセスを示す例示的なフローチャートである。このプロセスは、コンピュータまたは他のマシンにおいて自動化され得る。プロセスは、ソフトウェア、ファームウェアでコード化され、またはマシン読取可能命令としてハードコード化されて、命令を実現できるプロセッサを通して実行され得る。動作１００１で、クラウドベースのゲートウェイで、モバイルからの要求を受信する。動作１００２で、ゲートウェイで、モバイルデバイスからの要求を、ＷｅｂＳｏｃｋｅｔプロトコルを通して、データの要求へと再フォーマットする。動作１００３で、ゲートウェイから、ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、エージェントにデータの要求を送信する。動作１００４で、ゲートウェイで、エージェントからのＷｅｂＳｏｃｋｅｔ応答を受信する。動作１００５で、ゲートウェイで、エージェントからのＷｅｂＳｏｃｋｅｔ応答からクラウド対応の応答を作成する。動作１００６で、クラウド対応の応答をモバイルデバイスに送信する。
【０１５１】
この発明のある実施形態によれば、ＷｅｂＳｏｃｋｅｔプロトコル接続は、セキュアＷｅｂＳｏｃｋｅｔプロトコル接続であり得る。
【０１５２】
図１１は、一実施形態に従ったクラウドベースのゲートウェイ１１００のブロック図である。図に示されるように、クラウドベースのゲートウェイ１１００は、第１の受信部１１０１と、再フォーマット部１１０２と、第１の送信部１１０３と、第２の受信部１１０４と、作成部１１０５と、第２の送信部１１０６とを含む。第１の受信部１１０１は、モバイルデバイスからの要求を受信できる。再フォーマット部１１０２は、モバイルデバイスからの要求を、ＷｅｂＳｏｃｋｅｔプロトコルを通して、データの要求へと再フォーマットできる。第１の送信部１１０３は、ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、エージェントにデータの要求を送信できる。第２の受信部１１０４は、エージェントからのＷｅｂＳｏｃｋｅｔ応答を受信できる。作成部１１０５は、エージェントからのＷｅｂＳｏｃｋｅｔ応答からクラウド対応の応答を作成できる。第２の送信部１１０６は、クラウド対応の応答をモバイルデバイスに送信できる。
【０１５３】
この発明のある実施形態によれば、ＷｅｂＳｏｃｋｅｔプロトコル接続は、セキュアＷｅｂＳｏｃｋｅｔプロトコル接続であり得る。
【０１５４】
前述の明細書では、この発明の局面をその特定の実施形態を参照して説明しているが、当業者であれば、この発明がそれらに限定されないことを認識するであろう。上述の発明のさまざまな特徴および局面は、個々にまたはともに使用されてもよい。また、実施形態は、明細書のより広範な精神および範囲から逸脱することなく、ここに説明されたものを超える任意の数の環境および用途において利用され得る。したがって、明細書および図面は、限定的ではなく例示的であるとみなされるべきである。
【０１５５】
以下の項目は、装置を含む。
項目１．企業コンピュータネットワークへのオフサイトアクセスを容易にするためのエージェント（９００）であって、エージェントは、
企業ネットワーク上のファイアウォールの外部のクラウドベースのゲートウェイとのハイパーテキスト伝送プロトコル（ＨＴＴＰ）接続を始動するために構成された始動部（９０１）を含み、エージェントは、ファイアウォールの背後のコンピュータ上で実行され、エージェントはさらに、
ＨＴＴＰ接続をＷｅｂＳｏｃｋｅｔプロトコル接続にアップグレードするために構成されたアップグレード部（９０２）と、
ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、ゲートウェイからのデータの要求を受信するために構成された第１の受信部（９０３）と、
要求をＨＴＴＰ要求へと再フォーマットするために構成された再フォーマット部（９０４）と、
ＨＴＴＰ要求を企業ネットワーク上のサーバに送信するために構成された第１の送信部（９０５）と、
サーバからＨＴＴＰ要求に対する応答を受信するために構成された第２の受信部（９０６）と、
サーバからの応答に基づいてＷｅｂＳｏｃｋｅｔ応答を作成するために構成された作成部（９０７）と、
ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、ゲートウェイにＷｅｂＳｏｃｋｅｔ応答を送信するために構成された第２の送信部（９０８）とを含む、エージェント（９００）。
【０１５６】
項目２．ＨＴＴＰ接続のＷｅｂＳｏｃｋｅｔプロトコル接続へのアップグレードは、ＨＴＴＰ接続の始動によって自動的にトリガされる、項目１に記載のエージェント。
【０１５７】
項目３．サーバからの応答を、ＷｅｂＳｏｃｋｅｔ応答の文字列、バイナリオブジェクト、またはアレイバッファへとパッケージ化してから、ＷｅｂＳｏｃｋｅｔ応答を送信するために構成されたパッケージ部（９０９）をさらに含む、いずれかの前述の項目に記載のエージェント。
【０１５８】
項目４．サーバは、ローカルウェブサーバである、いずれかの前述の項目に記載のエージェント。
【０１５９】
項目５．サーバは、企業アプリケーションを実行している、いずれかの前述の項目に記載のエージェント。
【０１６０】
項目６．ＷｅｂＳｏｃｋｅｔプロトコル接続は、セキュアＷｅｂＳｏｃｋｅｔプロトコル接続である、いずれかの前述の項目に記載のエージェント。
【０１６１】
項目７．クラウドベースのゲートウェイに、エージェントソフトウェアの更新についてチェックするために構成されたチェック部（９１０）と、
ソフトウェア更新をダウンロードするために構成されたダウンロード部（９１１）と、
ダウンロードされたソフトウェア更新をインストールするために構成されたインストール部（９１２）とをさらに含む、いずれかの前述の項目に記載のエージェント。
【０１６２】
項目８．ソフトウェア更新のために受け入れ可能な、または受け入れられない時間窓を判断するために構成された判断部（９１３）をさらに含み、
判断された時間窓に基づいて、チェック、ダウンロード、またはインストールが行なわれる、項目７に記載のエージェント。
【０１６３】
項目９．ダウンロードされたソフトウェア更新のインストールを、エージェントソフトウェアの前のバージョンに戻すために構成された戻し部（９１４）をさらに含む、項目７または８に記載のエージェント。
【０１６４】
項目１０．企業コンピュータネットワークへのオフサイトアクセスを容易にする方法であって、方法は、
クラウドベースのゲートウェイで、モバイルデバイスからの要求を受信することと、
ゲートウェイで、モバイルデバイスからの要求を、ＷｅｂＳｏｃｋｅｔプロトコルを通して、データの要求へと再フォーマットすることと、
ゲートウェイから、ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、エージェントにデータの要求を送信することと、
ゲートウェイで、エージェントからのＷｅｂＳｏｃｋｅｔ応答を受信することと、
ゲートウェイで、エージェントからのＷｅｂＳｏｃｋｅｔ応答からクラウド対応の応答を作成することと、
クラウド対応の応答をモバイルデバイスに送信することとを含む、方法。
【０１６５】
項目１１．ＷｅｂＳｏｃｋｅｔプロトコル接続は、セキュアＷｅｂＳｏｃｋｅｔプロトコル接続である、項目１０に記載の方法。
【０１６６】
項目１２．モバイルデバイスからの要求を受信するために構成された、第１の受信部と、
モバイルデバイスからの要求を、ＷｅｂＳｏｃｋｅｔプロトコルを通して、データの要求へと再フォーマットするために構成された、再フォーマット部と、
ＷｅｂＳｏｃｋｅｔプロトコル接続を通して、エージェントにデータの要求を送信するために構成された、第１の送信部と、
エージェントからのＷｅｂＳｏｃｋｅｔ応答を受信するために構成された、第２の受信部と、
エージェントからのＷｅｂＳｏｃｋｅｔ応答からクラウド対応の応答を作成するために構成された、作成部と、
クラウド対応の応答をモバイルデバイスに送信するために構成された、第２の送信部とを含む、クラウドベースのゲートウェイ。
【０１６７】
項目１３．ＷｅｂＳｏｃｋｅｔプロトコル接続は、セキュアＷｅｂＳｏｃｋｅｔプロトコル接続である、項目１２に記載のクラウドベースのゲートウェイ。
【図１】
0006449896.tif 000002
【図２】
0006449896.tif 000003
【図３】
0006449896.tif 000004
【図４】
0006449896.tif 000005
【図５】
0006449896.tif 000006
【図６】
0006449896.tif 000007
【図７】
0006449896.tif 000008
【図８】
0006449896.tif 000009
【図９】
0006449896.tif 000010
【図１０】
0006449896.tif 000011
【図１１】
0006449896.tif 000012