ウェブベースのサービス又は他のリモートサービスは、各リモートサービスに対してアダプタを提供することによって、管理タスク又は他のタスクのスクリプト環境に利用可能となっている。アダプタは、発見、接続、及び他のタスクを含み得、それらのタスクによって、ウェブベースのサービスは、スクリプト環境内においてローカルサービスのように振る舞うことが可能となる。
スクリプト環境は、コマンドラインインターフェイス、定義済スクリプトを解釈するインタプリタ、或いはその他のスクリプト可能なインターフェイスであり得る。
通信及びデータインターフェイス機能が、スクリプトインターフェイスで利用可能となっている各ウェブベースのサービス又は他のリモートサービスに提供されている。いくつかの実施形態においては、クライアントサイドのインターフェイスはスクリプト可能なインターフェイスと同じデバイスで動作し、通信及びデータインターフェイス機能のいくつか又はすべてをサービスに対して実行し得る。一方、他の実施形態においては、通信及びデータインターフェイス機能のいくつかは、リモートサービスによって実行され得る。
ネットワーク接続を介して提供されたウェブベースのサービス又は他のリモートサービスは、定義済のデータ形式を順守し得るので、データは、ローカルサービス及びネットワークベースのサービスの両方に対するサービス間において、円滑に転送され得る。
発明の特定の実施形態は、特定の独創的な態様を例示するのに利用される。実施形態は、一例であって、様々な変更及び代替形態を受け入れる余地がある。添付された特許請求の範囲が、特許請求の範囲によって画定された本発明の趣旨と範囲に含まれるすべての変更物、均等物及び代替物を含むことが意図されている。
本明細書中、同様の参照番号は、図面の説明文中、同じ要素を意味する。
要素が「接続される」又は「結合される」と称されるときは、要素は、直接接続又は結合され得るし、1つ以上の介在要素も存在し得る。対照的に、要素が「直接接続される」又は「直接結合される」と称されるときは、介在要素は存在しない。
本発明は、デバイス、システム、方法、及び/又は、コンピュータプログラムプロダクトとして実施され得る。従って、本発明のいくつか又は全ては、(ファームウェア、常駐ソフトウェア、マイクロコード、ステート・マシン、ゲートアレイ等を含む)ハードウェア内及び/又はソフトウェアにおいて実施され得る。また、本発明は、コンピュータ使用可能記憶媒体若しくはコンピュータ可読記憶媒体上のコンピュータプログラムプロダクトの形態を取り得、それら記憶媒体はその媒体内に、命令実行システムによって使用される、若しくは命令実行システムに接続して使用する具現化されたコンピュータ使用可能プログラムコード又はコンピュータ可読プログラムコードを有する。本明細書において、コンピュータ利用可能媒体若しくはコンピュータ可読媒体は、命令実行システム、装置、若しくはデバイスによって使用するためのプログラム、又は、命令実行システム、装置、若しくはデバイスに接続して使用するためのプログラムを含み、記憶し、伝達し、伝播し、又は転送することができるいかなる媒体であってよい。
コンピュータ利用可能媒体若しくはコンピュータ可読媒体は、電子的な、磁気的な、光学的な、電磁的な、赤外線の、半導体のシステム、装置、デバイス、又は伝搬媒体であり得るが、これらに限定されない。限定ではなく、例として、コンピュータ読取可能媒体はコンピュータ記憶媒体及び通信媒体を含んでもよい。
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、若しくは他のデータ等の情報を記憶する全ての方法若しくは技術において実装された揮発性若しくは不揮発性の脱着可能媒体及び脱着不可能媒体を含み得る。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)若しくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気記憶装置、又は他の任意の媒体を含むがこれらには限定されず、所望の情報を記憶するのに使用され、命令実行システムによってアクセスされ得る。尚、コンピュータ利用可能媒体若しくはコンピュータ可読媒体は、紙又は別の適切な媒体でもあり得、プログラムは、例えば、紙の光学スキャン若しくは他の媒体を介して電子的に取り込まれて、コンパイルされ、解読され又は必要であれば適切な方法によって処理され、且つコンピュータメモリに記憶され得る。
通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は、伝送波若しくは他の転送機構等の変調されたデータ信号における他のデータを典型的に具現化し、いかなる情報配信媒体をも含む。「変調されたデータ信号」という用語は、信号の情報をエンコードするような方法で設定され又は変化された特性のうち1つ以上を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体と、音響媒体、RF媒体、赤外線媒体及び他の無線媒体等の無線媒体とを含む。上記のいずれの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
本発明がコンピュータ実行命令に関する一般的内容で具現化される場合、実施形態は、1つ以上のシステム、コンピュータ、又は他のデバイスによって実行されたプログラムモジュールを含み得る。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象型データを実装するルーチン、プログラム、オブジェクト、データ構造等を含む。通常、プログラムモジュールの機能は、様々な実施形態において望まれているように、結合され又は分散され得る。
図1は、様々なサービスに対するスクリプトシステムを示す実施形態100の図である。実施形態100は、いくつかの異なるサービスがスクリプトインターフェイスにおいてどのように組み合わせられ、どのように操作され得るのかを図示している。これらサービスは、ローカルデバイス上で動作するサービス、及び、ウェブベースのサービスを含むインターネットを介して利用可能なサービスを含む。
スクリプトインターフェイス102は、コマンドライン又は他のインターフェイスであり得る。かかるコマンドライン又は他のインターフェイスは、単一のコマンドラインスクリプト又はより複雑な定義済スクリプト103を実行し得る。かかる単一のコマンドラインスクリプト又はより複雑な定義済スクリプト103は、分岐(branching)論理又は他の論理を含み得る。スクリプトインターフェイス102によって、異なるサービスがパイプラインコマンドライン等の様々な機構を利用して接続され得る。サービスを同時に使用するために、統一されたクエリ言語104又は統一されたオブジェクトモデルが各サービスに対して適用され得、或いは、各サービスによって利用され得る。統一されたクエリ言語104又は統一されたオブジェクトモデルは、入出力データの形式を定義し、自動メモリ管理、境界チェック及び他の機能を提供し得る。
多くの異なるスクリプト言語及びインターフェイスが使用され得る。いくつかの実施形態においては、単一のコマンドラインインターフェイスは、インタラクティブに個々のタスクを実行するのに使用され得る。他の実施形態は、コマンドラインインターフェイスを利用せずに定義済テキストに基づいたスクリプトを実行してもよい。また、様々な実装が、異なるコマンド記述法及びコマンド名を使用し得る。
いくつかのスクリプト環境は、シェルタイプのインターフェイス又は他のコマンドラインタイプのインターフェイスを有し得る。一方、他のスクリプト環境は言語を含み得る。かかる言語は、単独で動作をなすアプリケーションとして又はアプリケーションプログラムに組み込まれたものとして実行時に解釈される。いくつかのスクリプト環境は、アプリケーションに対して特有なものであってもよいし、別のアプリケーション内において様々な機能を実行し得る。かかるいくつかのスクリプト環境は、ウェブページ内のスクリプト、若しくは、ゲーム若しくはビジネスアプリケーションを拡張又は変更するのに使用され得るスクリプトを含む。
スクリプトインターフェイス102は、多種多用のサービスが接続されて有用な機能を提供し得る機構(mechanism)である。1つのサービスの出力が別のサービスに送信され、その2つのサービスを接続し且つ別な方法ではプログラムするのが困難であろう複雑な機能を実行し得る。共通のスクリプト言語はパイプラインコマンドを使用して、1つのサービスの出力を別のサービスの入力に誘導する。
ローカルサービス106は、スクリプトインターフェイス102によって直接コールされ得、スクリプトインターフェイス102を実行するホストデバイスにおいて利用可能なサービスであり得る。ある場合においては、ローカルサービス106は、コールされるとスクリプトインターフェイス102によって直接実行される実行可能なファイルであり得る。ローカルサービス106の一例として、ディレクトリのコンテンツを表示するディレクトリコマンドがあり得る。他の実施例においては、ローカルサービス106は、システム上で使用できるプロセスであり得るし、コマンドに応答し得る。一例として、SQLサーバアプリケーションがあり得る。かかるSQLサーバアプリケーションは、スクリプトインターフェイス102を使用して直接問い合わせられ得る。
ローカルサービス110は、アダプタ108を介してスクリプトインターフェイスに接続され得る。アダプタ108は様々なタスクを実行し得るので、ローカルサービス110はスクリプトインターフェイス102で動作し得る。アダプタ108は、データ変換、ローカルサービス110、又は他の機能との通信等のタスクを実行し得る。かかる他の機能によって、ローカルサービス110は、統一されたクエリ言語104に応じることができる。
パイプラインコマンド又は他の接続機構は、リモートサービスを含む2つの異なるサービスを共に接続し得る。例えば、スクリプトコマンドは、ユーザのリストを返信する機能(function)をコールし得るし、リモート機能に対する入力に第1の機能の出力を接続し得る。例えば、ユーザのリストを新規ユーザとして、ウェブベースのアプリケーションであるリモート顧客リソース管理システムに追加することができる。パイプライン又は他の接続機構は、非常に単純なコマンド構造を使用して、一方はローカルサービスであり且つもう一方はリモートサービスである2つのサービスを接続し得る。2つのサービス間の複雑な多くの変換は、統一されたクエリ言語104で処理され得る。さらに、リモートサービスに対する接続の複雑さ、サービスの認証の複雑さ、及びスクリプトインターフェイス102及びリモートサービス間のデータ変換の複雑さは、ユーザに対して透過的で有り得る。
アダプタ112は、リモートサービス116に、インターネット114を介した接続を提供し得る。リモートサービス116は、ウェブベースのサービスを含むいかなるタイプのサービスであってもよい。アダプタ112は、リモートサービス116をスクリプトインターフェイス102に統合するいくつかの機能を提供し得る。かかる機能は、接続、認証、発見、及び様々な転送機能を含み得る。
ローカルサービス106の一例として、インターネット114上で提供される顧客リソース管理(CRM:Customer Resource Management)システムがあり得る。CRMシステムは、ウェブインターフェースを有し得る。かかるウェブインターフェースを介して、ユーザはウェブブラウザを使用してシステムと情報のやり取りをし得る。また、CRMシステムは、インターフェイスを有し得、そのインターフェイスを介してアダプタ112は様々な機能を実行し得る。他の無数のサービス、機能、及び動作が、リモートサービス116によって実行され得る。
いくつかの実施形態においては、アダプタ112は、ウェブベースのインターフェイスが可能とするように、同一の一連の機能をスクリプトインターフェイス102に利用できるようにし得る。他の実施形態においては、アダプタ112は、より多数のコマンド及び機能を利用できるようにし得る一方、さらに他の実施形態においては、より少数の一連のコマンドを利用可能にし得る。いくつかの実施形態は、スクリプトインターフェイス102を介して利用可能であるが、他のインターフェイスを介しては利用できない、特定の一連のコマンドを有し得る。かかる特定のコマンドは、リモートサービス116の別のユーザが通常は利用できない様々な管理タスクを含み得る。
アダプタ112は、リモートサービス116を、同じツールを用いて且つサービスがローカルサービス106であったかのように、スクリプトインターフェイス102内で動作し且つ操作され得るようにすることができる。いくつかの実施形態において、リモートサービス116は、スクリプトインターフェイス102を介して実行され得るいくつかの異なる機能又はコマンドを有し得る。アダプタ112は、リモートサービス116を対象とするコマンドを認識し、且つそれらコマンドをリモートサービス116に伝達するように構成され得る。コマンドがアダプタ112によって認識されると、そのコマンドを処理するために、リモートサービス116とのセッションが確立され得る。
リモートサービス116は、ユーザ認証を含む様々な接続要求を有し得、そのユーザ認証は、パスワード、デジタル署名、又は特定のユーザ又はセッションを認証し得るデジタル証明書を含み得る。アダプタ112で調整される、サービス116内の付加機能は、ユーザが特定の機能を実行することを認可し得る。いくつかの実施形態においては、リモートサービス116は、匿名ログイン、若しくは、認証及び許可を必要としない他の接続機構を有し得る。
アダプタ118は、スクリプトインターフェイス102を、ローカルサービス120、及びインターネット114を介して利用可能であるリモートサービス122に接続し得る。アダプタ118は、ローカルコンポーネント及びリモートコンポーネントを有するハイブリッドサービスを提供し得る。スクリプトインターフェイス102を介して利用可能であるいくつかのコマンド又は機能は、ローカルサービス120によって実行される部分とリモートサービス122によって実行される別の部分とを伴い得る。かかるサービスの一例は、顧客名のローカルデータベースとインターネットデータベースのクロスリファレンスを返信する顧客リソース管理システムへのクエリ(query)を含み得る。
図2は、リモートサーバに接続するための機能的アーキテクチャを示す実施形態200を示す図である。実施形態200は、スクリプトインターフェイス102及びアダプタ112を、インターネットを介してリモートサービス116に接続するのに使用され得る機構の詳細な例を示している。
アダプタ112は、スクリプトインターフェイス102とリモートサービス116との間の入力データ及び出力データをそれぞれ変換し得る入力機能204と出力機能206を含む。入力機能204と出力機能206は、入力データ又は出力データを変換し、フォーマットし、任意の変更を提供し得る。ある場合においては、入力機能204及び出力機能206は、簡単なデータフォーマット又はデータの設定を提供し得る一方、他の実施例においては、複雑な操作、計算、又はその他の機能をデータに適用し得る。
いくつかの実施形態においては、入力機能204又は出力機能206は、2つ以上のソースからのデータを結合し得る。例えば、出力機能206は、リモートサーバ116に関する2つのデータベースクエリからのデータを組み合わせて、スクリプトインターフェイス102において使用されるデータフォーマットに変換し得る。別の例は、リモートサービス116の出力をローカルサービス218の出力に結合して、スクリプトインターフェイス102に対して、単一の一連の出力を生成する。別の実施例では、スクリプトインターフェイス102からの単一機能コールが2つ以上の別々のコマンドに転送され得る。その2つ以上の別々のコマンドの内のいくつかは、リモートサービス116によって実行され、且つ、それらの内のその他はローカルサービス218によって実行され得る。
いくつかの実施形態においては、入力機能204と出力機能206は、リモートサービス116のホストデバイス上又はインターネット114に接続された別のデバイス上で動作する、リモートアダプタ220に属し得る。スクリプトインターフェイス102とリモートサービス116との間で伝達するデータを変換し、解釈し、フォーマットし、操作する機能は、2つ以上の付加的変換機能によっても実行され得る。かかる実施形態において、入力機能204及び出力機能206の一部は、アダプタ112及びリモートアダプタ220の一部において、実行され得る。
いくつかの実施形態においては、リモートサービス116がスクリプトインターフェイスで動作するように設計され且つ変換又はフォーマットが使用されない場合、入力機能204及び出力機能206はリモートアダプタ116において固有のものであり得る。
アダプタエンジン208は、アダプタ112の様々な機能を調整し得る。アダプタエンジン208は、リモートサービス116に対するコマンドがスクリプトインターフェイス102からコールされていることを探知し得るし、リモートサービス116に接続し且つスクリプトインターフェイス102にデータを返信する様々なタスクを実行し得る。かかるタスクの例は、リモートサービス116の位置又はアドレスを発見すること、インターネット114を介した接続を行うこと、及びリモートサービス116で認証することを含み得る。
アダプタエンジン208は、ローカルサービスがするように、スクリプトインターフェイス102とのインターフェイスをとり得る。アダプタエンジン208は、定義済の一連のコマンドでスクリプトインターフェイス102に接続し得、その定義済の一連のコマンドを、認識し且つ処理するよう構成され得る。いくつかの実施形態においては、アダプタ208は、スクリプトインターフェイス内で他のローカルサービスによって認識されていないコマンドを受信し、且つ、そのコマンドを処理し得るリモートサービス116を見出すよう試み得る。
アダプタエンジン208は、アダプタ112がスクリプトインターフェイス102をホストするシステムにインストールされる場合に確立され得る、定義済の一連のコマンドを有し得る。いくつかの実施形態においては、アダプタ112は、各リモートサービス116に対してインストールされ得る。他の実施形態においては、アダプタ112は、2つ以上のリモートサービス116に対して使用され得る。かかる実施形態において、新しいリモートサービス116がインストールされる場合、各リモートサービス116に対してサポートされたコマンドが、既存のアダプタ112に追加され得る。
アダプタエンジン208がスクリプトインターフェイス102から未認識コマンドを受信するように指定されている場合、アダプタエンジンは、インターネット114の検索又はリモートサービスのデータベースの検索を実行して、コマンドがリモートサービスによって処理され得るか否かを決定し得る。いくつかの実施形態においては、アダプタ112は、いくつかのリモートサービスと、それらリモートサービスによってサポートされた様々なコマンドとを含み得る、ローカルデータベースを保持し得る。コマンドがアダプタ112によって受信されると、そのコマンドは、データベースへの問い合わせ(query)を実行するのに使用されて、そのコマンドを実行する適切なリモートサービスを決定し得る。同様の実施形態において、アダプタは、リモートサービスに接続するように構成され、特定のコマンドを実行し得るリモートサービスを決定し得る。
発見モジュール216は、発見動作を実行し得る。かかる発見動作の実行は、スクリプトインターフェイス102からのコマンドに先立って、且つ、スクリプトインターフェイス102からの機能コールに応じてなされ得る。
コマンドがスクリプトインターフェイス102によって出力される前に、発見モジュール216は、リモートサービス116に連絡し、リモートサービス116によってサポートされている一連のコマンドをダウンロードし得る。ある場合には、一連のコマンドは、リモートサービスが利用可能な標準的な一連のコマンドであり得る。一方、他の場合においては、一連のコマンドは、ユーザが許可された特定のコマンドであり得る。例えば、ユーザは、料金(subscription fee)を支払ってもよいし、ユーザがリモートサーバの一連のコマンドの限定的な部分にアクセスすることができるアカウントを有してもよい。ユーザが許可を有するこれらコマンドは、スクリプトインターフェイス内で利用可能であり得る。
機能コールがスクリプトインターフェイス102から受信されると、発見モジュール216は、リモートサービス116に連絡する適切な手段を決定し得る。ある場合においては、発見モジュール216は、機能コールに一致するサービスをインターネット114で検索し得る。
例えば、スクリプトインターフェイス102からのコマンドは、ローカルサービスとして利用できないサービスに対するリファレンスを含み得る。発見モジュール216は、リモートサービスに関するデータベースを検索して、リモートサービスが利用可能であるかどうか決定し得るし、アドレス、又はリモートサービスに接続するのに使用され得る他の情報を検索し得る。
別の実施例では、スクリプトインターフェイス102からのコマンドは、ウェブサイトのアドレス、リモートサーバURL、固有名、又は、リモートサービス116を発見するために発見モジュール216によって使用され得る他の情報を含み得る。かかる一例において、発見モジュール216は、リモートサービス116に対するアドレス又は他のロケータ(locator)を受信して、リモートサービス116に対して適切なアドレス又は他の接続情報を決定し得る。ある場合においては、発見モジュール216は、更新されたアドレス又は特定のURLを特定のリモートサービスに提供し得る媒介装置(intermediary device)とコンタクトを取り得る。
ある場合においては、リモートサービス116は、多くの異なるコマンドに応答し得る単一のURL又はアドレスを有し得る。他の実施例においては、各コマンドは、各コマンドに対して使用され得る特定のURLを有し得る。さらに、URLは、構文(syntax)を有し得、それによってアダプタ112がリモートサービス116にデータを伝達し得る。
接続モジュール212は、リモートサービス116に、接続されたセッションを確立する機能を実行し得る。接続モジュール212は、実施形態に応じて、異なる手法でリモートサービス116との接続を確立し得る。接続モジュール212のいくつかの実施形態は、ダイアルアップ接続、ダイレクトインターネット接続、又は任意の他の機構を介して、リモートサービス116に接続し得る。各場合において、接続モジュール212は、適切なハードウェアを駆動し、ハンドシェイクを実行し、又は他のステップを実行することによって、通信セッションを確立し得る。また、接続モジュール212は、アダプタ112とリモートサービス116との間において、暗号化された接続又は安全な接続を確立し得る。
認証モジュール214は、自動化された認証機能をリモートサービス116に提供し得る。認証機能は、特定のユーザ識別を用いてリモートサービス116に署名すること、パスワードを提供すること、信頼性、信用証明、又は他の全てのセキュリティ若しくは識別指標に関するデジタル署名されたドキュメントを送信することを含み得る。リモートサービス116が購買サービス(purchased service)である、又は、極秘データを操作し得る実施形態においては、様々な形態の認証が使用され得る。ある場合においては、認証はリモートサービス116によって使用されて、もしあれば、どの機能がアダプタ112に提供され得るのかを決定し得る。
ネットワークインターフェイス210は、いかなるタイプのネットワークに対するいかなるタイプのインターフェイスであってもよい。いくつかの実施形態においては、ネットワークインターフェイス210は、ローカルエリアネットワークに対する有線のイーサネット接続に接続されてもよく、そのローカルエリアネットワークはインターネット114に対するゲートウェイを有し得る。他の実施形態においては、ネットワークインターフェイス210は、ワイヤレス・アクセスポイントに対する無線接続であり得、そのワイヤレス・アクセスポイントは、インターネット114に対して接続を提供し得る。かかるデバイスは、無線接続によるラップトップコンピュータであってもよいし、或いは、ネットワークに対する携帯電話接続を使用する携帯電話デバイスであってもよい。各実施形態は、ネットワーク接続に関する異なる実装を有し得る。
ある場合において、リモートサービス116は、ウェブベースのサービスであり得る。かかるサービスは、アプリケーションプログラミングインタフェイス(API)を有し得、そのアプリケーションプログラミングインタフェイスは公開されて、アダプタ112を実行するデバイス等の1つのデバイスが、リモートサービス116と通信し且つリモートサービス116を用いて命令を実行することができる。
図3は、いくつかのアダプタ機能に関する方法を示す実施形態300のフロー図である。実施形態300は、機能コールを受信する処理、発見機能を実行する処理、リモートサービスに接続する処理、リモートサービスと通信していくつかの結果を受信する処理を示している。結果はスクリプトインターフェイスに戻される。他の実施形態では、異なる手法で構成されたアダプタ、及び、異なる操作を実行するように構成されたアダプタを有し得る。
ブロック302において、機能コールが、リモートサービスに対するスクリプトインターフェイスから受信される。アダプタは、スクリプトインターフェイスに対してローカルサービスとしてスクリプトインターフェイスと統合するように構成され得る。いくつかの実施形態において、アダプタは、アダプタに対するコマンドが出力されると起動される実行可能なプログラムであり得る。他の実施形態においては、アダプタは、デバイスで実行する処理であり得る。アダプタは、アダプタが実行し得る特定の一連のコマンドで構成され得る。他の実施形態においては、アダプタは、いかなるコマンド又は多数の一連のコマンドをも受信するように構成され得るし、コマンドに情報を提供し得るリモートサービスを発見し且つかかるリモートサービスに接続するよう構成され得る。
次いで、発見機能330が、実行され得、その発見機能330は、ブロック304においてリモートサービスに対する一般的URLに接続すること、及びブロック306において現行の状況に対する特定のURLを要求することを含む。発見機能330は、異なるシナリオにおいて使用されて、異なるタスクを実行し得る。
第1のシナリオにおいて、アダプタは、特定のコマンドに応答するように予め設定され得る。コマンドが出力されると、アダプタはブロック304においてリモートサービスに対する一般的URLに接続して、リモートサービスが存在することを判断し、且つ、ブロック306における異なるURLがコマンドに使用されるか否かを決定し得る。
第2のシナリオにおいて、アダプタは、特定のコマンドに応答するように予め設定され得る。ブロック302において受信されたコマンドは、任意のコマンドであってもよい。その任意のコマンドに対して、アダプタは、ブロック304においてコマンドに関するデータベースを検索して、コマンドに応答し得るリモートサービスに対するURL又は他のアドレスを決定し得る。ブロック304における一般的URLは、リモートサービスに対するインターネットを検索する検索エンジンであってもよい。他の場合において、ブロック304における一般的URLは、リモートサービスに関するデータベースであってもよい。そのリモートサービスは、特定のコマンド又は一群のコマンドに対する特定のURLを含み得る。
ブロック308において、接続が、リモートサービスに対してなされる。アダプタとリモートサービスとの間の接続を確立することは、様々な因子に依存し、且つ、セッションを確立するために、低水準ハードウェアプロトコル並びに高水準プロトコルを使用して接続をセットアップすることを含み得る。セッションの一例は、オープン・システム・インターコネクション(OSI:Open Systems Interconnection)レファレンスモデルにおいて定義されるようなセッションレイヤを使用して、設立されたものであってもよい。各実施形態の詳細は、各実施形態におけるハードウェアとソフトウェアとで大いに異なり得る。いくつかの実施形態においては、ブロック308において確立された接続は、アダプタとリモートサービスとの間で暗号化された接続又は安全な接続を形成することを含み得る。
ブロック310において、ユーザが、リモートサービスに対して認証され得る。ある場合において、ブロック310の認証は、ユーザID(identification)及びパスワードに接続すること、デジタル著名付き証明書を送信すること、暗号化キーを提供すること、様々な信用証明書を送信すること、或いは、アダプタのユーザが認証され得る他の任意の機構をも含み得る。認証は、機構を提供し得、その機構によって、リモートサービスは、ユーザが特定の機能に対して権限又はアクセスを有することを照合し得る。ある場合において、認証されていないユーザは、リモートサービスから一連の限定的な機能にアクセスし得る一方、認証されたユーザは、一連の全ての機能に対するアクセス権を与えられ得る。ある場合においては、ユーザは、会費価格(subscription value)又はいくつかの他の因子に基づいて、特定のサブセットの機能に対するアクセス権を認証され且つ与えられ得る。
ブロック312において、アダプタとリモートサービスとの間のセッションが開始される。ブロック314において、スクリプトインターフェイスからの入力が受信され、ブロック316において、リモートサービスに対するフォーマットに変換される。ブロック318において、データがリモートサービスに転送され、ブロック320において、データはリモートサービスから受信される。ブロック322において、受信データはスクリプトインターフェイスに対するフォーマットに変換され、ブロック324において、データは、スクリプトインターフェイスに送信される。
スクリプトインターフェイス及びリモートサービスの各実施形態は、特定の言語、特定の構文、特定のデータ形式、及び各コンポーネントに対するデータ転送のための特定のデータタイプを有し得る。ブロック316と322におけるデータ変換は、データに関していかなるタイプの変換、分析、フォーマット、集合処理、又は他の操作であってもよい。いくつかの実施形態においては、ブロック316及び322におけるデータ変換は、複雑な計算、複数のソースからのデータ集合処理、又は他の処理を包含し得る。
ブロック326において、より多数の通信が実行されることになっている場合、処理はブロック314に戻る。別の方法では、ブロック328において、通信セッションが停止され、処理はブロック302に戻り得る。いくつかの実施形態においては、通信セッションはしばらくの間確立され得るし、無操作期間の後にセッションが停止され得る。発見、接続、及び認証の処理が複雑であるか、又は多大な時間を必要とする場合、かかる実施形態は有用であり得る。
いくつかの実施形態においては、アダプタとリモートサービスとの間の各通信は、単一の通信セッションを形成し得る。いくつかの実施形態においては、通信セッションは、アダプタからリモートサービスに送信されたデータに対して確立され、その通信に対する別の通信セッションが、リモートサービスからアダプタに至る通信に対して確立され得る。
図4は、アダプタをインストールする方法を示す実施形態400のフロー図である。実施形態400によれば、リモートサービスが、スクリプトインターフェイスに対するリモートサービスのインストール処理の間に、多くの異なるコンポーネントを提供し得る方法が示される。
ブロック402において、プロセスは始まる。ブロック404において、リモートサービスがインストールのために選択され、ブロック406において、接続がリモートサービスに対してなされる。ブロック408において、ユーザは、任意のユーザID及びリモートサービスによって要求された認証を使用して、リモートサービスにログインし得る。
いくつかの実施形態においては、ブロック406及び408において、ユーザは、ウェブブラウザ又は他のアプリケーション等のインターフェイスを介して、リモートサービスに接続し且つリモートサービスを認証し得る。かかる実施形態において、ユーザはリモートサービスを用いていくつかの付加的な設定操作を実行し得る。かかる設定操作は、サービスに署名し、特定の機能又は他の機能を選択することを含む。他の実施形態においては、ブロック406及び408において、自動化された接続及び認証が実行され得る。
ログイン及び認証の後に、ブロック410においてアダプタがダウンロードされ、ブロック412においてスクリプトインターフェイスにインストールされ得る。いくつかの実施形態においては、スクリプトインターフェイスは、様々なサービスがインストールされ得る機構を有し得る。ある場合には、サービスをインストールすることは、アダプタを特定のディレクトリに対してコピーするか、或いは特定の名をアダプタに与えることから構成され得る。他の実施形態においては、リモートサービスは、様々なパラメータをスクリプトインターフェイス内で設定することによって、インストールされ得る。他の実施形態は異なる機構を有し得、その異なる機構によって、アダプタがシステムに追加され得、スクリプトインターフェイスが、アダプタを認識し又はアダプタにコマンドを送信し得る。
ブロック414において、一連の利用可能なコマンドがダウンロードされ、ブロック416においてスクリプトインターフェイスにインストールされ得る。いくつかの実施形態においては、スクリプトインターフェイスは定義された一連の機能又はコマンドで動作し得る。ブロック414及び416の処理は、それらコマンドを読み出し(retrieve)、それらをスクリプトインターフェイスに利用可能となし得る。各スクリプトインターフェイスは、異なる手法により、追加コマンドを処理し得る。いくつかの実施形態においては、ブロック414及び416は実行されなくてもよい。
ブロック418において、接続及び認証情報がダウンロードされ、ブロック420において接続モジュールを設定するのに使用され、ブロック422において認証モジュールを設定するのに使用され得る。ブロック424において、プロセスは終了し得る。
実施形態400は、一般的な、アダプタをダウンロードするインストール処理と、利用可能なコマンド並びに接続及び認証情報の特定のリスト等の、ユーザ特有のカスタマイズとの一例である。かかるインストール処理は、ウェブブラウザを使用し且つサービスを設定し、アダプタ及びカスタマイズされたモジュールをダウンロードして、リモートサービスプロバイダーに接続することによって実行され得る。
本発明の前述の説明は、例示及び説明の目的にて提示されている。包括的であること又は本発明を開示された厳密な形態に限定することを目的とはしておらず、他の修正及び変更が上記の開示に照らして可能である。実施形態が、本発明の趣旨及びその実用的応用を最も良く説明するために選択され且つ説明され、当業者であれば、様々な実施形態において発明を最も良く利用することができるし、意図された特定の使用に合致するよう様々な変形をなすことができる。添付された特許請求の範囲は、従来技術によって限定される範囲を除いて、他の代替実施形態を含むよう解釈されるべきであることを意図している。