(57)【要約】  スクリプトモデルは、各ウェブベースのサービスに関連付けられたインターフェイスを含むことによって、ウェブベースのサービスに対するリンクを含み得る。インターフェイスは、ウェブベースのサービスと情報を交換するのに使用される様々な機能を実行し得る。その様々な機能とは、発見、アドレス指定、接続、設定、認証、および他の機能等である。ウェブベースのサービスは、スクリプトモデル内のローカルサービスと同じように使用され、自動メモリ管理、境界チェック、データ変換、及びスクリプティングの他の特徴を含む。
2010525426.tif 000002
【特許請求の範囲】
【請求項１】
スクリプトインターフェイスを介して、ネットワーク接続を通じて提供されるサービスに対する機能コールを受信するステップ（３０２）と、
接続機能を実行して、前記サービスに接続するステップ（３０８）と、
前記スクリプトインターフェイスから入力データを受信するステップ（３１４）と、
前記入力データを前記サービスに送信するステップ（３１８）と、
前記サービスから出力データを受信するステップ（３２０）と、
前記スクリプトインターフェイスに前記出力データを送信するステップ（３２４）と
を含むことを特徴とする方法。
【請求項２】
前記サービスに対する発見機能を実行して、前記サービスに対するネットワークアドレスを決定するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記サービスを用いて認証機能を実行するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記ネットワーク接続は、インターネットを介した接続を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記サービスは、ウェブベースのサービスであることを特徴とする請求項１に記載の方法。
【請求項６】
前記スクリプトインターフェイスは、コマンドラインインターフェイスを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記スクリプトインターフェイスは、インタプリタを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記スクリプトインターフェイスは、定義済スクリプトを解釈するように構成されていることを特徴とする請求項１に記載の方法。
【請求項９】
前記入力データを、前記サービスに適合する第１のデータフォーマットに変換するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記出力データを、前記スクリプト可能インターフェイスに適合する第２のデータフォーマットに変換するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
請求項１に記載の前記方法を実行するよう構成されたコンピュータ実行可能命令を含むことを特徴とするコンピュータ可読媒体。
【請求項１２】
スクリプトを受信し且つ前記スクリプトを解釈するように構成され、且つ、クライアントデバイス上で動作可能なスクリプトインターフェース（１０２）と、
ネットワーク接続（１１６）上で動作可能なサービスであって、
第１の定義済フォーマットの入力データを受信するように構成された入力機能（２０４）と、
第２の定義済フォーマットの出力データを送信するように構成された出力機能（２０６）と
を含むサービスと、
前記クライアントデバイスを前記サービスに接続するように構成された接続モジュール（２１２）と
を含むことを特徴とするスクリプトシステム。
【請求項１３】
前記入力機能は、前記クライアントデバイス上で動作するように構成されたデータトランスレータを含むことを特徴とする請求項１２に記載のスクリプトシステム。
【請求項１４】
前記第１の定義済フォーマットと前記第２の定義済フォーマットとは、同一であることを特徴とする請求項１２に記載のスクリプトシステム。
【請求項１５】
ユーザを前記サービスに対して認証するように構成された認証モジュールをさらに含むことを特徴とする請求項１２に記載のスクリプトシステム。
【請求項１６】
ネットワークに対するインタフェース（２１０）と、
入力データを受信するように構成された入力機能（２０４）と、
出力データを送信するように構成された出力機能（２０６）と、
スクリプトインターフェイスに対するクライアントアダプタ（２０２）であって、
クライアントデバイス上で動作可能であり、且つ、
スクリプトインターフェイスを介してネットワーク接続で提供されるサービスに対する機能コールを受信し（３０２）、
接続機能を実行して、前記サービスに接続し（３０８）、
前記スクリプトインターフェイスから入力データを受信し（３１４）、
前記入力データを前記サービスに送信し（３１８）、
前記サービスから出力データを受信し（３２０）、
前記スクリプト可能ンタフェースに前記出力データを送信する（３２４）ように構成されたクライアントアダプタと
を含むことを特徴とするネットワークベースのサービス。
【請求項１７】
前記クライアントアダプタは、前記サービスに対する発見機能を実行して、前記サービスに対するネットワークアドレスを決定するように構成されたことを特徴とする請求項１２に記載のネットワークベースのサービス。
【請求項１８】
前記クライアントアダプタは、前記サービスを用いて認証機能を実行するように構成されたことを特徴とする請求項１２に記載のネットワークベースのサービス。
【請求項１９】
前記クライアントアダプタが、前記入力データを、前記サービスに適合する第１のデータフォーマットに変換するように構成されたことを特徴とする請求項１２に記載のネットワークベースのサービス。
【請求項２０】
前記クライアントアダプタが、前記出力データを、前記スクリプト可能インターフェイスに適合する第２のデータフォーマットに変換するように構成されたことを特徴とする請求項１２に記載のネットワークベースのサービス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークベースのサービスに対するスクリプト可能なオブジェクトモデルに関する。
【背景技術】
【０００２】
スクリプト言語は、コンピュータシステムにおいて多数の管理機能に対して使用され得る。スクリプト言語によって、多種多様な先在コンポーネントが新しい関連タスクを達成するように接続され得る。多くのオペレーティングシステムにおいて、コンピュータシステム内の様々なコンポーネント及びサービスが、スクリプトインターフェイス内で利用され得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ウェブベースのインターフェイスを通じて提供されたサービスを含む、コンピュータシステムの外部に設けられたサービスは、多くの場合、インターフェイスで接続するのが困難であり、簡単にはスクリプトインターフェイスには適さない。
【課題を解決するための手段】
【０００４】
スクリプトモデルは、各ウェブベースのサービス若しくは他のリモートサービスに関連付けられたインターフェイス又はアダプタを含むことによって、ウェブベースのサービスに対するリンクを含み得る。インターフェイスは、リモートサービスを用いて情報交換するのに使用される様々な機能を実行し得る。様々な機能とは、発見、アドレス指定、接続、設定、認証、他の機能等である。リモートサービスは、自動メモリ管理、境界チェック、データ変換、及びスクリプティングの他の特徴を含み、スクリプトモデル内のローカルサービスとして同じように使用され得る。
【０００５】
この発明の概要は、いくつかの概念を単純化した形態にて導入するために提供されており、その単純化された形態は、以下に詳細な説明でさらに説明する。この発明の概要は、特許請求の範囲に記載された発明の重要な特色若しくは本質的な特徴を特定することを目的としていないし、特許請求の範囲に記載された発明を限定することも目的とはしていない。
【図面の簡単な説明】
【０００６】
【図１】様々なサービスに対するスクリプトシステムを示す実施形態の図である。
【図２】使用され得るリモートサービス及び様々なコンポーネントに対する接続を示す実施形態の図である。
【図３】いくつかのアダプタ機能に対する方法を示す実施形態のフロー図である。
【図４】アダプタをインストールする方法を示す実施形態のフロー図である。
【発明を実施するための形態】
【０００７】
ウェブベースのサービス又は他のリモートサービスは、各リモートサービスに対してアダプタを提供することによって、管理タスク又は他のタスクのスクリプト環境に利用可能となっている。アダプタは、発見、接続、及び他のタスクを含み得、それらのタスクによって、ウェブベースのサービスは、スクリプト環境内においてローカルサービスのように振る舞うことが可能となる。
【０００８】
スクリプト環境は、コマンドラインインターフェイス、定義済スクリプトを解釈するインタプリタ、或いはその他のスクリプト可能なインターフェイスであり得る。
【０００９】
通信及びデータインターフェイス機能が、スクリプトインターフェイスで利用可能となっている各ウェブベースのサービス又は他のリモートサービスに提供されている。いくつかの実施形態においては、クライアントサイドのインターフェイスはスクリプト可能なインターフェイスと同じデバイスで動作し、通信及びデータインターフェイス機能のいくつか又はすべてをサービスに対して実行し得る。一方、他の実施形態においては、通信及びデータインターフェイス機能のいくつかは、リモートサービスによって実行され得る。
【００１０】
ネットワーク接続を介して提供されたウェブベースのサービス又は他のリモートサービスは、定義済のデータ形式を順守し得るので、データは、ローカルサービス及びネットワークベースのサービスの両方に対するサービス間において、円滑に転送され得る。
【００１１】
発明の特定の実施形態は、特定の独創的な態様を例示するのに利用される。実施形態は、一例であって、様々な変更及び代替形態を受け入れる余地がある。添付された特許請求の範囲が、特許請求の範囲によって画定された本発明の趣旨と範囲に含まれるすべての変更物、均等物及び代替物を含むことが意図されている。
【００１２】
本明細書中、同様の参照番号は、図面の説明文中、同じ要素を意味する。
【００１３】
要素が「接続される」又は「結合される」と称されるときは、要素は、直接接続又は結合され得るし、１つ以上の介在要素も存在し得る。対照的に、要素が「直接接続される」又は「直接結合される」と称されるときは、介在要素は存在しない。
【００１４】
本発明は、デバイス、システム、方法、及び／又は、コンピュータプログラムプロダクトとして実施され得る。従って、本発明のいくつか又は全ては、（ファームウェア、常駐ソフトウェア、マイクロコード、ステート・マシン、ゲートアレイ等を含む）ハードウェア内及び／又はソフトウェアにおいて実施され得る。また、本発明は、コンピュータ使用可能記憶媒体若しくはコンピュータ可読記憶媒体上のコンピュータプログラムプロダクトの形態を取り得、それら記憶媒体はその媒体内に、命令実行システムによって使用される、若しくは命令実行システムに接続して使用する具現化されたコンピュータ使用可能プログラムコード又はコンピュータ可読プログラムコードを有する。本明細書において、コンピュータ利用可能媒体若しくはコンピュータ可読媒体は、命令実行システム、装置、若しくはデバイスによって使用するためのプログラム、又は、命令実行システム、装置、若しくはデバイスに接続して使用するためのプログラムを含み、記憶し、伝達し、伝播し、又は転送することができるいかなる媒体であってよい。
【００１５】
コンピュータ利用可能媒体若しくはコンピュータ可読媒体は、電子的な、磁気的な、光学的な、電磁的な、赤外線の、半導体のシステム、装置、デバイス、又は伝搬媒体であり得るが、これらに限定されない。限定ではなく、例として、コンピュータ読取可能媒体はコンピュータ記憶媒体及び通信媒体を含んでもよい。
【００１６】
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、若しくは他のデータ等の情報を記憶する全ての方法若しくは技術において実装された揮発性若しくは不揮発性の脱着可能媒体及び脱着不可能媒体を含み得る。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）若しくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気記憶装置、又は他の任意の媒体を含むがこれらには限定されず、所望の情報を記憶するのに使用され、命令実行システムによってアクセスされ得る。尚、コンピュータ利用可能媒体若しくはコンピュータ可読媒体は、紙又は別の適切な媒体でもあり得、プログラムは、例えば、紙の光学スキャン若しくは他の媒体を介して電子的に取り込まれて、コンパイルされ、解読され又は必要であれば適切な方法によって処理され、且つコンピュータメモリに記憶され得る。
【００１７】
通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は、伝送波若しくは他の転送機構等の変調されたデータ信号における他のデータを典型的に具現化し、いかなる情報配信媒体をも含む。「変調されたデータ信号」という用語は、信号の情報をエンコードするような方法で設定され又は変化された特性のうち１つ以上を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体と、音響媒体、ＲＦ媒体、赤外線媒体及び他の無線媒体等の無線媒体とを含む。上記のいずれの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００１８】
本発明がコンピュータ実行命令に関する一般的内容で具現化される場合、実施形態は、１つ以上のシステム、コンピュータ、又は他のデバイスによって実行されたプログラムモジュールを含み得る。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象型データを実装するルーチン、プログラム、オブジェクト、データ構造等を含む。通常、プログラムモジュールの機能は、様々な実施形態において望まれているように、結合され又は分散され得る。
【００１９】
図１は、様々なサービスに対するスクリプトシステムを示す実施形態１００の図である。実施形態１００は、いくつかの異なるサービスがスクリプトインターフェイスにおいてどのように組み合わせられ、どのように操作され得るのかを図示している。これらサービスは、ローカルデバイス上で動作するサービス、及び、ウェブベースのサービスを含むインターネットを介して利用可能なサービスを含む。
【００２０】
スクリプトインターフェイス１０２は、コマンドライン又は他のインターフェイスであり得る。かかるコマンドライン又は他のインターフェイスは、単一のコマンドラインスクリプト又はより複雑な定義済スクリプト１０３を実行し得る。かかる単一のコマンドラインスクリプト又はより複雑な定義済スクリプト１０３は、分岐（branching）論理又は他の論理を含み得る。スクリプトインターフェイス１０２によって、異なるサービスがパイプラインコマンドライン等の様々な機構を利用して接続され得る。サービスを同時に使用するために、統一されたクエリ言語１０４又は統一されたオブジェクトモデルが各サービスに対して適用され得、或いは、各サービスによって利用され得る。統一されたクエリ言語１０４又は統一されたオブジェクトモデルは、入出力データの形式を定義し、自動メモリ管理、境界チェック及び他の機能を提供し得る。
【００２１】
多くの異なるスクリプト言語及びインターフェイスが使用され得る。いくつかの実施形態においては、単一のコマンドラインインターフェイスは、インタラクティブに個々のタスクを実行するのに使用され得る。他の実施形態は、コマンドラインインターフェイスを利用せずに定義済テキストに基づいたスクリプトを実行してもよい。また、様々な実装が、異なるコマンド記述法及びコマンド名を使用し得る。
【００２２】
いくつかのスクリプト環境は、シェルタイプのインターフェイス又は他のコマンドラインタイプのインターフェイスを有し得る。一方、他のスクリプト環境は言語を含み得る。かかる言語は、単独で動作をなすアプリケーションとして又はアプリケーションプログラムに組み込まれたものとして実行時に解釈される。いくつかのスクリプト環境は、アプリケーションに対して特有なものであってもよいし、別のアプリケーション内において様々な機能を実行し得る。かかるいくつかのスクリプト環境は、ウェブページ内のスクリプト、若しくは、ゲーム若しくはビジネスアプリケーションを拡張又は変更するのに使用され得るスクリプトを含む。
【００２３】
スクリプトインターフェイス１０２は、多種多用のサービスが接続されて有用な機能を提供し得る機構（mechanism）である。１つのサービスの出力が別のサービスに送信され、その２つのサービスを接続し且つ別な方法ではプログラムするのが困難であろう複雑な機能を実行し得る。共通のスクリプト言語はパイプラインコマンドを使用して、１つのサービスの出力を別のサービスの入力に誘導する。
【００２４】
ローカルサービス１０６は、スクリプトインターフェイス１０２によって直接コールされ得、スクリプトインターフェイス１０２を実行するホストデバイスにおいて利用可能なサービスであり得る。ある場合においては、ローカルサービス１０６は、コールされるとスクリプトインターフェイス１０２によって直接実行される実行可能なファイルであり得る。ローカルサービス１０６の一例として、ディレクトリのコンテンツを表示するディレクトリコマンドがあり得る。他の実施例においては、ローカルサービス１０６は、システム上で使用できるプロセスであり得るし、コマンドに応答し得る。一例として、ＳＱＬサーバアプリケーションがあり得る。かかるＳＱＬサーバアプリケーションは、スクリプトインターフェイス１０２を使用して直接問い合わせられ得る。
【００２５】
ローカルサービス１１０は、アダプタ１０８を介してスクリプトインターフェイスに接続され得る。アダプタ１０８は様々なタスクを実行し得るので、ローカルサービス１１０はスクリプトインターフェイス１０２で動作し得る。アダプタ１０８は、データ変換、ローカルサービス１１０、又は他の機能との通信等のタスクを実行し得る。かかる他の機能によって、ローカルサービス１１０は、統一されたクエリ言語１０４に応じることができる。
【００２６】
パイプラインコマンド又は他の接続機構は、リモートサービスを含む２つの異なるサービスを共に接続し得る。例えば、スクリプトコマンドは、ユーザのリストを返信する機能（function）をコールし得るし、リモート機能に対する入力に第１の機能の出力を接続し得る。例えば、ユーザのリストを新規ユーザとして、ウェブベースのアプリケーションであるリモート顧客リソース管理システムに追加することができる。パイプライン又は他の接続機構は、非常に単純なコマンド構造を使用して、一方はローカルサービスであり且つもう一方はリモートサービスである２つのサービスを接続し得る。２つのサービス間の複雑な多くの変換は、統一されたクエリ言語１０４で処理され得る。さらに、リモートサービスに対する接続の複雑さ、サービスの認証の複雑さ、及びスクリプトインターフェイス１０２及びリモートサービス間のデータ変換の複雑さは、ユーザに対して透過的で有り得る。
【００２７】
アダプタ１１２は、リモートサービス１１６に、インターネット１１４を介した接続を提供し得る。リモートサービス１１６は、ウェブベースのサービスを含むいかなるタイプのサービスであってもよい。アダプタ１１２は、リモートサービス１１６をスクリプトインターフェイス１０２に統合するいくつかの機能を提供し得る。かかる機能は、接続、認証、発見、及び様々な転送機能を含み得る。
【００２８】
ローカルサービス１０６の一例として、インターネット１１４上で提供される顧客リソース管理（ＣＲＭ：Customer Resource Management）システムがあり得る。ＣＲＭシステムは、ウェブインターフェースを有し得る。かかるウェブインターフェースを介して、ユーザはウェブブラウザを使用してシステムと情報のやり取りをし得る。また、ＣＲＭシステムは、インターフェイスを有し得、そのインターフェイスを介してアダプタ１１２は様々な機能を実行し得る。他の無数のサービス、機能、及び動作が、リモートサービス１１６によって実行され得る。
【００２９】
いくつかの実施形態においては、アダプタ１１２は、ウェブベースのインターフェイスが可能とするように、同一の一連の機能をスクリプトインターフェイス１０２に利用できるようにし得る。他の実施形態においては、アダプタ１１２は、より多数のコマンド及び機能を利用できるようにし得る一方、さらに他の実施形態においては、より少数の一連のコマンドを利用可能にし得る。いくつかの実施形態は、スクリプトインターフェイス１０２を介して利用可能であるが、他のインターフェイスを介しては利用できない、特定の一連のコマンドを有し得る。かかる特定のコマンドは、リモートサービス１１６の別のユーザが通常は利用できない様々な管理タスクを含み得る。
【００３０】
アダプタ１１２は、リモートサービス１１６を、同じツールを用いて且つサービスがローカルサービス１０６であったかのように、スクリプトインターフェイス１０２内で動作し且つ操作され得るようにすることができる。いくつかの実施形態において、リモートサービス１１６は、スクリプトインターフェイス１０２を介して実行され得るいくつかの異なる機能又はコマンドを有し得る。アダプタ１１２は、リモートサービス１１６を対象とするコマンドを認識し、且つそれらコマンドをリモートサービス１１６に伝達するように構成され得る。コマンドがアダプタ１１２によって認識されると、そのコマンドを処理するために、リモートサービス１１６とのセッションが確立され得る。
【００３１】
リモートサービス１１６は、ユーザ認証を含む様々な接続要求を有し得、そのユーザ認証は、パスワード、デジタル署名、又は特定のユーザ又はセッションを認証し得るデジタル証明書を含み得る。アダプタ１１２で調整される、サービス１１６内の付加機能は、ユーザが特定の機能を実行することを認可し得る。いくつかの実施形態においては、リモートサービス１１６は、匿名ログイン、若しくは、認証及び許可を必要としない他の接続機構を有し得る。
【００３２】
アダプタ１１８は、スクリプトインターフェイス１０２を、ローカルサービス１２０、及びインターネット１１４を介して利用可能であるリモートサービス１２２に接続し得る。アダプタ１１８は、ローカルコンポーネント及びリモートコンポーネントを有するハイブリッドサービスを提供し得る。スクリプトインターフェイス１０２を介して利用可能であるいくつかのコマンド又は機能は、ローカルサービス１２０によって実行される部分とリモートサービス１２２によって実行される別の部分とを伴い得る。かかるサービスの一例は、顧客名のローカルデータベースとインターネットデータベースのクロスリファレンスを返信する顧客リソース管理システムへのクエリ（query）を含み得る。
【００３３】
図２は、リモートサーバに接続するための機能的アーキテクチャを示す実施形態２００を示す図である。実施形態２００は、スクリプトインターフェイス１０２及びアダプタ１１２を、インターネットを介してリモートサービス１１６に接続するのに使用され得る機構の詳細な例を示している。
【００３４】
アダプタ１１２は、スクリプトインターフェイス１０２とリモートサービス１１６との間の入力データ及び出力データをそれぞれ変換し得る入力機能２０４と出力機能２０６を含む。入力機能２０４と出力機能２０６は、入力データ又は出力データを変換し、フォーマットし、任意の変更を提供し得る。ある場合においては、入力機能２０４及び出力機能２０６は、簡単なデータフォーマット又はデータの設定を提供し得る一方、他の実施例においては、複雑な操作、計算、又はその他の機能をデータに適用し得る。
【００３５】
いくつかの実施形態においては、入力機能２０４又は出力機能２０６は、２つ以上のソースからのデータを結合し得る。例えば、出力機能２０６は、リモートサーバ１１６に関する２つのデータベースクエリからのデータを組み合わせて、スクリプトインターフェイス１０２において使用されるデータフォーマットに変換し得る。別の例は、リモートサービス１１６の出力をローカルサービス２１８の出力に結合して、スクリプトインターフェイス１０２に対して、単一の一連の出力を生成する。別の実施例では、スクリプトインターフェイス１０２からの単一機能コールが２つ以上の別々のコマンドに転送され得る。その２つ以上の別々のコマンドの内のいくつかは、リモートサービス１１６によって実行され、且つ、それらの内のその他はローカルサービス２１８によって実行され得る。
【００３６】
いくつかの実施形態においては、入力機能２０４と出力機能２０６は、リモートサービス１１６のホストデバイス上又はインターネット１１４に接続された別のデバイス上で動作する、リモートアダプタ２２０に属し得る。スクリプトインターフェイス１０２とリモートサービス１１６との間で伝達するデータを変換し、解釈し、フォーマットし、操作する機能は、２つ以上の付加的変換機能によっても実行され得る。かかる実施形態において、入力機能２０４及び出力機能２０６の一部は、アダプタ１１２及びリモートアダプタ２２０の一部において、実行され得る。
【００３７】
いくつかの実施形態においては、リモートサービス１１６がスクリプトインターフェイスで動作するように設計され且つ変換又はフォーマットが使用されない場合、入力機能２０４及び出力機能２０６はリモートアダプタ１１６において固有のものであり得る。
【００３８】
アダプタエンジン２０８は、アダプタ１１２の様々な機能を調整し得る。アダプタエンジン２０８は、リモートサービス１１６に対するコマンドがスクリプトインターフェイス１０２からコールされていることを探知し得るし、リモートサービス１１６に接続し且つスクリプトインターフェイス１０２にデータを返信する様々なタスクを実行し得る。かかるタスクの例は、リモートサービス１１６の位置又はアドレスを発見すること、インターネット１１４を介した接続を行うこと、及びリモートサービス１１６で認証することを含み得る。
【００３９】
アダプタエンジン２０８は、ローカルサービスがするように、スクリプトインターフェイス１０２とのインターフェイスをとり得る。アダプタエンジン２０８は、定義済の一連のコマンドでスクリプトインターフェイス１０２に接続し得、その定義済の一連のコマンドを、認識し且つ処理するよう構成され得る。いくつかの実施形態においては、アダプタ２０８は、スクリプトインターフェイス内で他のローカルサービスによって認識されていないコマンドを受信し、且つ、そのコマンドを処理し得るリモートサービス１１６を見出すよう試み得る。
【００４０】
アダプタエンジン２０８は、アダプタ１１２がスクリプトインターフェイス１０２をホストするシステムにインストールされる場合に確立され得る、定義済の一連のコマンドを有し得る。いくつかの実施形態においては、アダプタ１１２は、各リモートサービス１１６に対してインストールされ得る。他の実施形態においては、アダプタ１１２は、２つ以上のリモートサービス１１６に対して使用され得る。かかる実施形態において、新しいリモートサービス１１６がインストールされる場合、各リモートサービス１１６に対してサポートされたコマンドが、既存のアダプタ１１２に追加され得る。
【００４１】
アダプタエンジン２０８がスクリプトインターフェイス１０２から未認識コマンドを受信するように指定されている場合、アダプタエンジンは、インターネット１１４の検索又はリモートサービスのデータベースの検索を実行して、コマンドがリモートサービスによって処理され得るか否かを決定し得る。いくつかの実施形態においては、アダプタ１１２は、いくつかのリモートサービスと、それらリモートサービスによってサポートされた様々なコマンドとを含み得る、ローカルデータベースを保持し得る。コマンドがアダプタ１１２によって受信されると、そのコマンドは、データベースへの問い合わせ（query）を実行するのに使用されて、そのコマンドを実行する適切なリモートサービスを決定し得る。同様の実施形態において、アダプタは、リモートサービスに接続するように構成され、特定のコマンドを実行し得るリモートサービスを決定し得る。
【００４２】
発見モジュール２１６は、発見動作を実行し得る。かかる発見動作の実行は、スクリプトインターフェイス１０２からのコマンドに先立って、且つ、スクリプトインターフェイス１０２からの機能コールに応じてなされ得る。
【００４３】
コマンドがスクリプトインターフェイス１０２によって出力される前に、発見モジュール２１６は、リモートサービス１１６に連絡し、リモートサービス１１６によってサポートされている一連のコマンドをダウンロードし得る。ある場合には、一連のコマンドは、リモートサービスが利用可能な標準的な一連のコマンドであり得る。一方、他の場合においては、一連のコマンドは、ユーザが許可された特定のコマンドであり得る。例えば、ユーザは、料金（subscription fee）を支払ってもよいし、ユーザがリモートサーバの一連のコマンドの限定的な部分にアクセスすることができるアカウントを有してもよい。ユーザが許可を有するこれらコマンドは、スクリプトインターフェイス内で利用可能であり得る。
【００４４】
機能コールがスクリプトインターフェイス１０２から受信されると、発見モジュール２１６は、リモートサービス１１６に連絡する適切な手段を決定し得る。ある場合においては、発見モジュール２１６は、機能コールに一致するサービスをインターネット１１４で検索し得る。
【００４５】
例えば、スクリプトインターフェイス１０２からのコマンドは、ローカルサービスとして利用できないサービスに対するリファレンスを含み得る。発見モジュール２１６は、リモートサービスに関するデータベースを検索して、リモートサービスが利用可能であるかどうか決定し得るし、アドレス、又はリモートサービスに接続するのに使用され得る他の情報を検索し得る。
【００４６】
別の実施例では、スクリプトインターフェイス１０２からのコマンドは、ウェブサイトのアドレス、リモートサーバＵＲＬ、固有名、又は、リモートサービス１１６を発見するために発見モジュール２１６によって使用され得る他の情報を含み得る。かかる一例において、発見モジュール２１６は、リモートサービス１１６に対するアドレス又は他のロケータ（locator）を受信して、リモートサービス１１６に対して適切なアドレス又は他の接続情報を決定し得る。ある場合においては、発見モジュール２１６は、更新されたアドレス又は特定のＵＲＬを特定のリモートサービスに提供し得る媒介装置（intermediary device）とコンタクトを取り得る。
【００４７】
ある場合においては、リモートサービス１１６は、多くの異なるコマンドに応答し得る単一のＵＲＬ又はアドレスを有し得る。他の実施例においては、各コマンドは、各コマンドに対して使用され得る特定のＵＲＬを有し得る。さらに、ＵＲＬは、構文（syntax）を有し得、それによってアダプタ１１２がリモートサービス１１６にデータを伝達し得る。
【００４８】
接続モジュール２１２は、リモートサービス１１６に、接続されたセッションを確立する機能を実行し得る。接続モジュール２１２は、実施形態に応じて、異なる手法でリモートサービス１１６との接続を確立し得る。接続モジュール２１２のいくつかの実施形態は、ダイアルアップ接続、ダイレクトインターネット接続、又は任意の他の機構を介して、リモートサービス１１６に接続し得る。各場合において、接続モジュール２１２は、適切なハードウェアを駆動し、ハンドシェイクを実行し、又は他のステップを実行することによって、通信セッションを確立し得る。また、接続モジュール２１２は、アダプタ１１２とリモートサービス１１６との間において、暗号化された接続又は安全な接続を確立し得る。
【００４９】
認証モジュール２１４は、自動化された認証機能をリモートサービス１１６に提供し得る。認証機能は、特定のユーザ識別を用いてリモートサービス１１６に署名すること、パスワードを提供すること、信頼性、信用証明、又は他の全てのセキュリティ若しくは識別指標に関するデジタル署名されたドキュメントを送信することを含み得る。リモートサービス１１６が購買サービス（purchased service）である、又は、極秘データを操作し得る実施形態においては、様々な形態の認証が使用され得る。ある場合においては、認証はリモートサービス１１６によって使用されて、もしあれば、どの機能がアダプタ１１２に提供され得るのかを決定し得る。
【００５０】
ネットワークインターフェイス２１０は、いかなるタイプのネットワークに対するいかなるタイプのインターフェイスであってもよい。いくつかの実施形態においては、ネットワークインターフェイス２１０は、ローカルエリアネットワークに対する有線のイーサネット接続に接続されてもよく、そのローカルエリアネットワークはインターネット１１４に対するゲートウェイを有し得る。他の実施形態においては、ネットワークインターフェイス２１０は、ワイヤレス・アクセスポイントに対する無線接続であり得、そのワイヤレス・アクセスポイントは、インターネット１１４に対して接続を提供し得る。かかるデバイスは、無線接続によるラップトップコンピュータであってもよいし、或いは、ネットワークに対する携帯電話接続を使用する携帯電話デバイスであってもよい。各実施形態は、ネットワーク接続に関する異なる実装を有し得る。
【００５１】
ある場合において、リモートサービス１１６は、ウェブベースのサービスであり得る。かかるサービスは、アプリケーションプログラミングインタフェイス（ＡＰＩ）を有し得、そのアプリケーションプログラミングインタフェイスは公開されて、アダプタ１１２を実行するデバイス等の１つのデバイスが、リモートサービス１１６と通信し且つリモートサービス１１６を用いて命令を実行することができる。
【００５２】
図３は、いくつかのアダプタ機能に関する方法を示す実施形態３００のフロー図である。実施形態３００は、機能コールを受信する処理、発見機能を実行する処理、リモートサービスに接続する処理、リモートサービスと通信していくつかの結果を受信する処理を示している。結果はスクリプトインターフェイスに戻される。他の実施形態では、異なる手法で構成されたアダプタ、及び、異なる操作を実行するように構成されたアダプタを有し得る。
【００５３】
ブロック３０２において、機能コールが、リモートサービスに対するスクリプトインターフェイスから受信される。アダプタは、スクリプトインターフェイスに対してローカルサービスとしてスクリプトインターフェイスと統合するように構成され得る。いくつかの実施形態において、アダプタは、アダプタに対するコマンドが出力されると起動される実行可能なプログラムであり得る。他の実施形態においては、アダプタは、デバイスで実行する処理であり得る。アダプタは、アダプタが実行し得る特定の一連のコマンドで構成され得る。他の実施形態においては、アダプタは、いかなるコマンド又は多数の一連のコマンドをも受信するように構成され得るし、コマンドに情報を提供し得るリモートサービスを発見し且つかかるリモートサービスに接続するよう構成され得る。
【００５４】
次いで、発見機能３３０が、実行され得、その発見機能３３０は、ブロック３０４においてリモートサービスに対する一般的ＵＲＬに接続すること、及びブロック３０６において現行の状況に対する特定のＵＲＬを要求することを含む。発見機能３３０は、異なるシナリオにおいて使用されて、異なるタスクを実行し得る。
【００５５】
第１のシナリオにおいて、アダプタは、特定のコマンドに応答するように予め設定され得る。コマンドが出力されると、アダプタはブロック３０４においてリモートサービスに対する一般的ＵＲＬに接続して、リモートサービスが存在することを判断し、且つ、ブロック３０６における異なるＵＲＬがコマンドに使用されるか否かを決定し得る。
【００５６】
第２のシナリオにおいて、アダプタは、特定のコマンドに応答するように予め設定され得る。ブロック３０２において受信されたコマンドは、任意のコマンドであってもよい。その任意のコマンドに対して、アダプタは、ブロック３０４においてコマンドに関するデータベースを検索して、コマンドに応答し得るリモートサービスに対するＵＲＬ又は他のアドレスを決定し得る。ブロック３０４における一般的ＵＲＬは、リモートサービスに対するインターネットを検索する検索エンジンであってもよい。他の場合において、ブロック３０４における一般的ＵＲＬは、リモートサービスに関するデータベースであってもよい。そのリモートサービスは、特定のコマンド又は一群のコマンドに対する特定のＵＲＬを含み得る。
【００５７】
ブロック３０８において、接続が、リモートサービスに対してなされる。アダプタとリモートサービスとの間の接続を確立することは、様々な因子に依存し、且つ、セッションを確立するために、低水準ハードウェアプロトコル並びに高水準プロトコルを使用して接続をセットアップすることを含み得る。セッションの一例は、オープン・システム・インターコネクション（ＯＳＩ：Open Systems Interconnection）レファレンスモデルにおいて定義されるようなセッションレイヤを使用して、設立されたものであってもよい。各実施形態の詳細は、各実施形態におけるハードウェアとソフトウェアとで大いに異なり得る。いくつかの実施形態においては、ブロック３０８において確立された接続は、アダプタとリモートサービスとの間で暗号化された接続又は安全な接続を形成することを含み得る。
【００５８】
ブロック３１０において、ユーザが、リモートサービスに対して認証され得る。ある場合において、ブロック３１０の認証は、ユーザＩＤ（identification）及びパスワードに接続すること、デジタル著名付き証明書を送信すること、暗号化キーを提供すること、様々な信用証明書を送信すること、或いは、アダプタのユーザが認証され得る他の任意の機構をも含み得る。認証は、機構を提供し得、その機構によって、リモートサービスは、ユーザが特定の機能に対して権限又はアクセスを有することを照合し得る。ある場合において、認証されていないユーザは、リモートサービスから一連の限定的な機能にアクセスし得る一方、認証されたユーザは、一連の全ての機能に対するアクセス権を与えられ得る。ある場合においては、ユーザは、会費価格（subscription value）又はいくつかの他の因子に基づいて、特定のサブセットの機能に対するアクセス権を認証され且つ与えられ得る。
【００５９】
ブロック３１２において、アダプタとリモートサービスとの間のセッションが開始される。ブロック３１４において、スクリプトインターフェイスからの入力が受信され、ブロック３１６において、リモートサービスに対するフォーマットに変換される。ブロック３１８において、データがリモートサービスに転送され、ブロック３２０において、データはリモートサービスから受信される。ブロック３２２において、受信データはスクリプトインターフェイスに対するフォーマットに変換され、ブロック３２４において、データは、スクリプトインターフェイスに送信される。
【００６０】
スクリプトインターフェイス及びリモートサービスの各実施形態は、特定の言語、特定の構文、特定のデータ形式、及び各コンポーネントに対するデータ転送のための特定のデータタイプを有し得る。ブロック３１６と３２２におけるデータ変換は、データに関していかなるタイプの変換、分析、フォーマット、集合処理、又は他の操作であってもよい。いくつかの実施形態においては、ブロック３１６及び３２２におけるデータ変換は、複雑な計算、複数のソースからのデータ集合処理、又は他の処理を包含し得る。
【００６１】
ブロック３２６において、より多数の通信が実行されることになっている場合、処理はブロック３１４に戻る。別の方法では、ブロック３２８において、通信セッションが停止され、処理はブロック３０２に戻り得る。いくつかの実施形態においては、通信セッションはしばらくの間確立され得るし、無操作期間の後にセッションが停止され得る。発見、接続、及び認証の処理が複雑であるか、又は多大な時間を必要とする場合、かかる実施形態は有用であり得る。
【００６２】
いくつかの実施形態においては、アダプタとリモートサービスとの間の各通信は、単一の通信セッションを形成し得る。いくつかの実施形態においては、通信セッションは、アダプタからリモートサービスに送信されたデータに対して確立され、その通信に対する別の通信セッションが、リモートサービスからアダプタに至る通信に対して確立され得る。
【００６３】
図４は、アダプタをインストールする方法を示す実施形態４００のフロー図である。実施形態４００によれば、リモートサービスが、スクリプトインターフェイスに対するリモートサービスのインストール処理の間に、多くの異なるコンポーネントを提供し得る方法が示される。
【００６４】
ブロック４０２において、プロセスは始まる。ブロック４０４において、リモートサービスがインストールのために選択され、ブロック４０６において、接続がリモートサービスに対してなされる。ブロック４０８において、ユーザは、任意のユーザＩＤ及びリモートサービスによって要求された認証を使用して、リモートサービスにログインし得る。
【００６５】
いくつかの実施形態においては、ブロック４０６及び４０８において、ユーザは、ウェブブラウザ又は他のアプリケーション等のインターフェイスを介して、リモートサービスに接続し且つリモートサービスを認証し得る。かかる実施形態において、ユーザはリモートサービスを用いていくつかの付加的な設定操作を実行し得る。かかる設定操作は、サービスに署名し、特定の機能又は他の機能を選択することを含む。他の実施形態においては、ブロック４０６及び４０８において、自動化された接続及び認証が実行され得る。
【００６６】
ログイン及び認証の後に、ブロック４１０においてアダプタがダウンロードされ、ブロック４１２においてスクリプトインターフェイスにインストールされ得る。いくつかの実施形態においては、スクリプトインターフェイスは、様々なサービスがインストールされ得る機構を有し得る。ある場合には、サービスをインストールすることは、アダプタを特定のディレクトリに対してコピーするか、或いは特定の名をアダプタに与えることから構成され得る。他の実施形態においては、リモートサービスは、様々なパラメータをスクリプトインターフェイス内で設定することによって、インストールされ得る。他の実施形態は異なる機構を有し得、その異なる機構によって、アダプタがシステムに追加され得、スクリプトインターフェイスが、アダプタを認識し又はアダプタにコマンドを送信し得る。
【００６７】
ブロック４１４において、一連の利用可能なコマンドがダウンロードされ、ブロック４１６においてスクリプトインターフェイスにインストールされ得る。いくつかの実施形態においては、スクリプトインターフェイスは定義された一連の機能又はコマンドで動作し得る。ブロック４１４及び４１６の処理は、それらコマンドを読み出し（retrieve）、それらをスクリプトインターフェイスに利用可能となし得る。各スクリプトインターフェイスは、異なる手法により、追加コマンドを処理し得る。いくつかの実施形態においては、ブロック４１４及び４１６は実行されなくてもよい。
【００６８】
ブロック４１８において、接続及び認証情報がダウンロードされ、ブロック４２０において接続モジュールを設定するのに使用され、ブロック４２２において認証モジュールを設定するのに使用され得る。ブロック４２４において、プロセスは終了し得る。
【００６９】
実施形態４００は、一般的な、アダプタをダウンロードするインストール処理と、利用可能なコマンド並びに接続及び認証情報の特定のリスト等の、ユーザ特有のカスタマイズとの一例である。かかるインストール処理は、ウェブブラウザを使用し且つサービスを設定し、アダプタ及びカスタマイズされたモジュールをダウンロードして、リモートサービスプロバイダーに接続することによって実行され得る。
【００７０】
本発明の前述の説明は、例示及び説明の目的にて提示されている。包括的であること又は本発明を開示された厳密な形態に限定することを目的とはしておらず、他の修正及び変更が上記の開示に照らして可能である。実施形態が、本発明の趣旨及びその実用的応用を最も良く説明するために選択され且つ説明され、当業者であれば、様々な実施形態において発明を最も良く利用することができるし、意図された特定の使用に合致するよう様々な変形をなすことができる。添付された特許請求の範囲は、従来技術によって限定される範囲を除いて、他の代替実施形態を含むよう解釈されるべきであることを意図している。
【図１】
2010525426.tif 000003
【図２】
2010525426.tif 000004
【図３】
2010525426.tif 000005
【図４】
2010525426.tif 000006
【国際調査報告】
2010525426.tif 000007
2010525426.tif 000008