(57)【要約】  スクリプトにアクセスしスクリプトを解釈して、実行可能コンポーネントを識別する。次いで、処理コンテキスト設定ファイルを使用して、識別された実行可能コンポーネントに関する適切な処理コンテキストを識別することができる。処理コンテキストの例には、識別された実行可能コンポーネントが実行されるプロセス、コンポーネントに対して実行前に実施される１つまたは複数の適応、および／または、コンポーネントが実行されるセキュリティコンテキストが含まれるが、これらに限定されない。したがって、処理コンテキストを実際のスクリプト自体の中で指定する必要はない。次いで、識別されたコンポーネントを、識別された処理コンテキスト中で実行することができる。
2009524876.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステムにおいてスクリプトを実行するための特定の処理コンテキストを識別する方法であって、
スクリプトを解釈するアクトであって、呼び出すべき実行可能コンポーネントを識別する、解釈するアクトと、
前記識別された実行可能コンポーネントに関連する１つまたは複数の処理コンテキスト設定ファイルを識別するアクトと、
前記１つまたは複数の処理コンテキスト設定ファイルを使用して、前記識別された実行可能コンポーネントに関する処理コンテキストを識別するアクトとを含むことを特徴とする方法。
【請求項２】
前記処理コンテキストは、前記識別された実行可能コンポーネントが実行されるプロセスの識別を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記処理コンテキストは、前記識別された実行可能コンポーネントに対して実行前に実施される１つまたは複数の適応を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記処理コンテキストは、前記識別された実行可能コンポーネントが実行されるセキュリティコンテキストを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記セキュリティコンテキストはユーザセキュリティコンテキストの識別を含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記解釈するアクトは、実行可能解釈コンポーネントによって実施されることを特徴とする請求項１に記載の方法。
【請求項７】
前記識別された実行可能コンポーネントに関連する１つまたは複数の処理コンテキスト設定ファイルを識別する前記アクトは、
前記識別された実行可能コンポーネントの１つまたは複数のプロパティと１つまたは複数の設定ファイルとの間の相関関係を識別するアクトと、
前記相関関係が示された１つまたは複数の設定ファイルを前記１つまたは複数の処理コンテキスト設定ファイルとして識別するアクトとを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記１つまたは複数のプロパティは前記識別された実行可能コンポーネントの名前を少なくとも含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記１つまたは複数のプロパティは前記識別された実行可能コンポーネントの依存関係を少なくとも含むことを特徴とする請求項７に記載の方法。
【請求項１０】
前記識別された実行可能コンポーネントを前記識別された処理コンテキスト中で呼び出すアクトをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記識別された実行可能コンポーネントを前記識別された処理コンテキスト中で呼び出す前記アクトは、解釈する前記アクトを実施したコンピューティングシステムとは異なるコンピューティングシステム上で実施されることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記識別された実行可能コンポーネントを前記識別された処理コンテキスト中で呼び出すアクトは、解釈する前記アクトを実施したコンピューティングシステムと同じコンピューティングシステム上で実施されることを特徴とする請求項１０に記載の方法。
【請求項１３】
コンピューティングシステムにおいてスクリプトを実行するための特定の処理コンテキストを識別する方法を実施するためのコンピュータ実行可能命令を内部に有する１つまたは複数のコンピュータ可読媒体を含むコンピュータプログラム製品であって、前記コンピュータ実行可能命令は、
スクリプトにアクセスするための少なくとも１つのコンピュータ実行可能命令と、
前記スクリプトを解釈して実行可能コンポーネントを識別するための少なくとも１つのコンピュータ実行可能命令と、
前記スクリプトが実行されるべき処理コンテキストを１つまたは複数の処理コンテキスト設定ファイルに少なくとも基づいて発見するための少なくとも１つのコンピュータ実行可能命令とを含むことを特徴とするコンピュータプログラム製品。
【請求項１４】
前記処理コンテキストは、
前記識別された実行可能コンポーネントが実行されるプロセスの識別と、
前記識別された実行可能コンポーネントに対して実行前に実施される１つまたは複数の適応と、
前記識別された実行可能コンポーネントが実行されるセキュリティコンテキストとのうちの少なくとも１つを含むことを特徴とする請求項１３に記載のコンピュータプログラム製品。
【請求項１５】
前記処理コンテキストは、
前記識別された実行可能コンポーネントが実行されるプロセスの識別と、
前記識別された実行可能コンポーネントに対して実行前に実施される１つまたは複数の適応と、
前記識別された実行可能コンポーネントが実行されるセキュリティコンテキストとのうちの少なくとも２つを含むことを特徴とする請求項１３に記載のコンピュータプログラム製品。
【請求項１６】
前記コンピュータ実行可能命令はさらに、
前記識別された実行可能コンポーネントを前記発見された処理コンテキスト中で呼び出すための少なくとも１つのコンピュータ実行可能命令を含むことを特徴とする請求項１３に記載のコンピュータプログラム製品。
【請求項１７】
前記１つまたは複数のコンピュータ可読媒体は物理メモリおよび／または記憶媒体であることを特徴とする請求項１３に記載のコンピュータプログラム製品。
【請求項１８】
コンピュータ実行可能命令を内部に有する１つまたは複数のコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、コンピューティングシステムのプロセッサによって実行されたとき、
スクリプトにアクセスし前記スクリプトを解釈して実行可能コンポーネントを識別するように構成された解釈コンポーネントと、
前記識別された実行可能コンポーネントとの相関関係を有する１つまたは複数の処理コンテキスト設定ファイルを使用して、前記識別された実行可能コンポーネントに関する処理コンテキストを識別するように構成された処理コンテキスト決定モジュールとを、
前記コンピューティングシステムのシステムメモリ中で前記コンピューティングシステムにインスタンス化させることを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項１９】
前記処理コンテキストは、
前記識別された実行可能コンポーネントが実行されるプロセスの識別と、
前記識別された実行可能コンポーネントに対して実行前に実施される１つまたは複数の適応と、
前記識別された実行可能コンポーネントが実行されるセキュリティコンテキストとのうちの少なくとも１つを含むことを特徴とする請求項１８に記載の１つまたは複数のコンピュータ可読媒体。
【請求項２０】
前記１つまたは複数のコンピュータ可読媒体は、物理メモリおよび／または記憶媒体であることを特徴とする請求項１８に記載の１つまたは複数のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スクリプトの処理に関する。
【背景技術】
【０００２】
コンピューティングシステムは、我々の仕事および遊びの仕方に大変革を起こした。コンピューティングシステムは、ラップトップコンピュータ、デスクトップコンピュータ、パーソナルディジタルアシスタント、電話機、さらには、従来ならコンピューティングシステムと関連付けられていなかったデバイス、例えば冷蔵庫や自動車さえをも含めて、幅広い種類の形で提供されている。コンピューティングシステムは、ネットワークを介して相互接続されたいくつかの構成コンピューティングシステムを含むことすらある。したがって、コンピューティングシステムのいくつかは手のひらに納まるほど十分に小さい場合があり、その他は地球の大部分に広がる。
【０００３】
コンピューティングシステムは、その物理的な形にかかわらず、ハードウェアおよびソフトウェアで構成される。ハードウェアは、最も基本的には、少なくとも１つのプロセッサ、およびメモリを含む。ソフトウェアは命令を含むが、これらの命令は、メモリまたは記憶装置に組み入れられている場合があり、プロセッサ（１つまたは複数）によってアクセスされ実行されて、コンピューティングシステムの機能全体を指示することができる。したがって、ソフトウェアは、コンピューティングシステムの機能を可能にすることや指示することにおいて、クリティカルである。
【０００４】
典型的なコンピューティングシステム中のソフトウェアは、通常、オペレーティングシステムおよびアプリケーションプログラムを含むことになる。オペレーティングシステムは通常、複数のアプリケーションプログラムに共通の、コア機能を提供する。例えば、オペレーティングシステムは、アプリケーションプログラムインタフェース（しばしば「ＡＰＩ」と呼ばれる）を提供するが、ＡＰＩは、基本的なファイルシステム、メモリ管理、セキュリティ、ネットワーキング、ユーザインタフェーシング、および他のコア機能をアプリケーションプログラムに提供する。オペレーティングシステムはまた、単一のコンピューティングシステム上で複数のプロセスを開始、管理、および終了する。
【０００５】
「プロセス」は、そのプロセスに含まれる１つまたは複数の実行中の実行可能コンポーネントによって共有することのできるリソースの集まりを含む仮想アドレス空間を述べるのに使用される技術用語である。リソースは、プロセス識別子、１つまたは複数の実行スレッド、ファイルハンドル、共有メモリ、および共有プロセッサ時間を含むことができる。プロセスはまた、秩序を正しく維持できるように、そのプロセス中で実行される実行可能コンポーネント（１つまたは複数）に対して制約を課す場合がある。例えば、プロセスは、特定のタイプのデータ構造またはオブジェクトが特有の構造を有するものと予期する場合があり、また、プロセス中で実行される各コンポーネントが一貫性のある方式でメモリを使用することを必要とする場合がある。
【０００６】
「スクリプト」は、ランタイムの間、実際にプロセッサ（１つまたは複数）によってコンピュータ実行可能命令が実行される直前に解釈されてコンピュータ実行可能命令の形をとることのできるコマンドのシーケンスを述べるのに使用される用語である。しばしば、これらのコマンドは、特定のコンポーネントを実行するのに使用されることになる。スクリプトによって呼び出されたコンポーネントは、コンポーネントを呼び出すスクリプト中で暗示または明示される、ある種の処理コンテキスト中で実行される。処理コンテキストは、コンポーネントが実行されるプロセスと、コンポーネントが実行されるセキュリティコンテキストとを含むことができる。例えば、セキュリティコンテキストは、コンポーネントに関するセキュリティ機構がユーザを特定のエンティティとして扱うべきであること、および／または、コンポーネントに関するセキュリティ機構がコンポーネントを特定のマシン上で実行すべきであることを指定する場合がある。コンポーネントが特定の処理コンテキスト中で実行されることが、必要または有利である場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
具体的な例として、デフォルトで、スクリプトは、特定のプロセス内で実行されるコンポーネントを呼び出すことができる。しかし、コンポーネントは、目下のプロセスと適合しないことがある。例えば、コンポーネントは、そのプロセスに利用可能でない関数ライブラリに依拠する場合があり、あるいはおそらくコンポーネントは、そのプロセスのコンテキスト内では意図されたように機能しない場合がある。あるいは、またはさらに、スクリプトは、そのプロセスのコンテキスト内では信用されない作者によって起草されている場合がある。これらの場合のいずれでも、スクリプト言語は、コンポーネントが異なるプロセス中で実行されるべきであると指定するように改変されることがある。さらに、コンポーネントがデフォルトのセキュリティコンテキストの外で実行されることになる場合、そのセキュリティコンテキストもスクリプト言語中で識別されることになる。
【０００８】
したがって、スクリプトのコンポーネントの処理コンテキストがデフォルトの処理コンテキストの外であるときは常に、スクリプトも、新しい処理コンテキストを反映するように変更される。スクリプトをこのようにして改変することは、厄介なプロセスである可能性がある。
【課題を解決するための手段】
【０００９】
スクリプトにアクセスしスクリプトを解釈して、実行可能コンポーネントを識別する。次いで、処理コンテキスト設定ファイル（processing context configuration files）を使用して、識別された実行可能コンポーネントに関する適切な処理コンテキストを識別することができる。処理コンテキストの例には、識別された実行可能コンポーネントが実行されるプロセス、コンポーネントに対して実行前に実施される１つまたは複数の適応（adaptation）、および／または、コンポーネントが実行されるセキュリティコンテキストが含まれるが、これらに限定されない。したがって、処理コンテキストを実際のスクリプト自体の中で指定する必要はない。
【００１０】
この概要は、「発明を実施するための最良の形態」でさらに後述するコンセプトの中から選択したものを、単純化した形で紹介するために提供するものである。この概要は、特許請求される主題の鍵となる特徴または必須の特徴を識別することを意図せず、また、特許請求される主題の範囲を決定する際の助けとして使用されることを意図するものでもない。
【００１１】
本発明に関する前述のおよび他の利点および特徴を得ることのできる方式について述べるために、上に簡単に述べた本発明のより具体的な記述を、添付の図面に示す本発明の特定の実施形態を参照して提供する。これらの図面は本発明の典型的な実施形態を示すに過ぎず、したがって本発明の範囲を限定するものと考えるべきではないことを理解した上で、添付の図面を使用して本発明をさらに具体的かつ詳細に述べる。
【発明を実施するための最良の形態】
【００１２】
本発明は、スクリプトそのものの中にある処理コンテキストの識別（identification）を参照する必要なしに、スクリプトによって実行される１つまたは複数のコンポーネントに関連する処理コンテキストを識別することに及ぶ。したがって、処理コンテキストが変化した場合に、スクリプト自体が変化する必要はない。そうではなく、処理コンテキストを識別する際、各コンポーネントに関連付けられた１つまたは複数の処理コンテキスト設定ファイルが参照される。スクリプトコンポーネントに関する処理コンテキストが変化した場合、このコンポーネントを呼び出すいずれかのスクリプトを変更するのではなく、単にその設定ファイルが改変される。
【００１３】
最初に、図１を参照して、本発明の原理が動作することのできる例示的なコンピューティングシステムを述べる。次いで、後続の図２、３、４、５Ａ、５Ｂ、および５Ｃを参照して、本発明の原理をさらに詳細に述べる。本発明の実施形態は、後でより詳細に論じるように、様々なコンピュータハードウェアを備えた専用または汎用コンピュータを含むことができる。
【００１４】
図１に、本発明の特徴（feature）を実現するのに使用することのできる例示的なコンピューティングシステム１００の概略図を示す。述べるコンピューティングシステムは、そのような適したコンピューティングシステムの一例に過ぎず、本発明の使用または機能の範囲についてどんな限定を意味するものともしない。また本発明は、図１に示すコンポーネントのいずれか１つまたは組合せに関するどんな依存性または必要性を有するものとも解釈すべきではない。
【００１５】
コンピューティングシステムは今や、ますます幅広い種類の形をとりつつある。コンピューティングシステムは、例えばハンドヘルドデバイス、アプライアンス、ラップトップコンピュータ、デスクトップコンピュータ、メインフレーム、または分散コンピューティングシステムである場合がある。本明細書および特許請求の範囲では、用語「コンピューティングシステム」は、少なくとも１つのプロセッサと、プロセッサによって実行できるコンピュータ実行可能命令を内部に有することのできるメモリとを備えた任意のデバイスまたはシステム（あるいはこれらの組合せ）を含むものとして、広く定義される。メモリはどんな形をとってもよく、コンピューティングシステムの性質および形に依存する場合がある。１つのコンピューティングシステムが、ネットワーク環境にわたって分散されている場合があり、複数の構成コンピューティングシステムを含む場合がある。
【００１６】
図１を参照すると、コンピューティングシステム１００は通常、その最も基本的な構成では、少なくとも１つの処理ユニット１０２およびメモリ１０４を備える。メモリ１０４は、揮発性、不揮発性、またはこの２つの何らかの組合せであってよい。揮発性メモリの例は、ランダムアクセスメモリ（ＲＡＭ）を含む。不揮発性メモリの例は、読取り専用メモリ（ＲＯＭ）、フラッシュメモリなどを含む。用語「メモリ」はまた、本明細書では、不揮発性の大容量記憶装置を指すのに使用されることもある。このような記憶装置は、取外し可能または取外し不可能とすることができ、ＰＣＭＣＩＡカード、磁気および光学ディスク、磁気テープなどを含むことができる（ただしこれらに限定されない）。
【００１７】
本明細書では、用語「モジュール」または「コンポーネント」は、コンピューティングシステム上で実行されるソフトウェアオブジェクトまたはルーチンを指すことができる。本明細書に述べる種々のコンポーネント、モジュール、エンジン、およびサービスは、プロトコルの一部としてコンピューティングシステム上で（例えば別々のスレッドとして）実行されるオブジェクトまたはプロセスとして実現することができる。本明細書に述べるシステムおよび方法はソフトウェア中で実現することができるが、ハードウェア中、およびソフトウェアとハードウェアの組合せにおける実現も、可能であり企図される。
【００１８】
後続の記述では、本発明の実施形態を、１つまたは複数のコンピューティングシステムによって実施されるアクトに関して述べる。このようなアクトがソフトウェア中で実施される場合、そのアクトを実施する関連コンピューティングシステムの１つまたは複数のプロセッサは、コンピュータ実行可能命令を実行したことに応答して、コンピューティングシステムの動作を指示する。このような動作の例は、データの操作を伴う。コンピュータ実行可能命令（および操作されたデータ）は、コンピューティングシステム１００のメモリ１０４に記憶することができる。
【００１９】
コンピューティングシステム１００は通信チャネル１０８を含むこともでき、通信チャネル１０８は、コンピューティングシステム１００が他のコンピューティングシステムと例えばネットワーク１１０を介して通信できるようにする。通信チャネル１０８は、通信媒体の例である。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波や他のトランスポート機構などの被変調データ信号の形態で具現化するものであり、任意の情報送達媒体を含む。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などの有線媒体と、音響、無線、赤外線などの無線媒体および他の無線媒体とを含む。コンピュータ可読媒体という用語は、本明細書では、記憶媒体と通信媒体の両方を含む。
【００２０】
本発明の範囲内の実施形態はまた、コンピュータ実行可能命令またはデータ構造を搬送するための、あるいはこれらを記憶したコンピュータ可読媒体も含む。このようなコンピュータ可読媒体は、汎用または専用コンピュータによってアクセスすることのできる任意の利用可能な媒体とすることができる。限定ではなく例として、このようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、または他の光学ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶デバイスを含むことができ、あるいは、所望のプログラムコード手段をコンピュータ実行可能命令またはデータ構造の形で搬送または記憶するのに使用でき、汎用または専用コンピュータによってアクセスできる、任意の他の媒体を含むことができる。情報がネットワークまたは別の通信接続（ハードワイヤード、ワイヤレス、またはハードワイヤードとワイヤレスの組合せ）を介してコンピュータに転送または提供されるとき、コンピュータはこの接続を、コンピュータ可読媒体として適切に見なす。したがって、こうしたどんな接続も、コンピュータ可読媒体として適切に呼ばれる。以上の組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
【００２１】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに、ある種の機能または機能群を実施させる命令およびデータを含む。構造上の特徴および／または方法上のアクトに特有の文言で本主題を述べたが、添付の特許請求の範囲に定義される本主題は、前述の特有の特徴またはアクトに必ずしも限定されないことを理解されたい。そうではなく、前述の特有の特徴およびアクトは、特許請求の範囲を実現する例示的な形態として開示する。
【００２２】
図２に、コンピューティングシステム中でスクリプトを実行するための特定の処理コンテキストを識別する方法２００のフローチャートを示す。コンピューティングシステムは、図１のコンピューティングシステム１００について上述したように構築され得るが、スクリプトを実行することのできる任意のコンピューティングシステム、また他の方法で本発明の原理を実施するように適応可能な任意のコンピューティングシステムであれば十分であろう。図４に、図２の方法２００を実施するのに使用することのできる様々なコンポーネントおよびデータを含む処理フロー４００を示す。したがって、図４の処理フロー４００をしばしば参照しながら、図２の方法２００を述べる。
【００２３】
最初に、実行すべきスクリプトにアクセスする（アクト２０１）。スクリプトは、別のコンピューティングシステムからスクリプトを受け取ることによって、またはコンピューティングシステム内部のソースからスクリプトにアクセスすることによって、呼び出す（access）ことができる。例えば、方法２００が図１のコンピューティングシステム１００のコンテキストで実施される場合、メモリ１０４からスクリプトを呼び出すことができる。図４を参照すると、アクセスモジュール４０１がスクリプト４１１を呼び出し、さらに処理フロー４００に沿ってスクリプト４１１をコンポーネントに提供する。スクリプト呼び出すための機構は当技術分野で知られており、したがってここでは詳細に述べない。スクリプト４１１は、１つのスクリプトコマンドライン、複数のスクリプトコマンドライン、および／または、おそらく１つまたは複数のコマンドラインの一部のみを含むことすらできる。例えば、スクリプト４１１は、スクリプトパイプラインコマンドの一部のみであってよい。
【００２４】
次に、スクリプトを解釈して（アクト２０２）、１つまたは複数の呼び出すべき実行可能コンポーネントを識別する（アクト２０３）。スクリプトを解釈し、それによって１つまたは複数の呼び出すべきコンポーネントを識別する従来方式は、いくつかある。本発明の原理は、それらの従来方法のいずれとも調和し、また、まだ開発されていないスクリプト解釈技術であっても、そのスクリプトによって呼び出されているコンポーネントを識別することがそのスクリプト解釈によって可能である限りは、それらの解釈技術とも適合する可能性が高い。図４を参照すると、コンポーネント識別モジュール４０２が、スクリプトアクセスモジュール４０１からスクリプト４１１の制御を受け取って、さらに処理フロー４００に沿ってコンポーネント識別子および関連パラメータ（要素４１２と総称する）が提供されるのを可能にする。
【００２５】
再び図２を参照すると、１つまたは複数の処理コンテキスト設定ファイルに少なくとも基づいてスクリプトが実行されるべき処理コンテキストを発見するための、機能的かつ結果指向（result-oriented）のステップが、識別された各実行可能コンポーネントにつき実施される（ステップ２１０）。このステップは、この目的を達成する対応する複数のアクトの任意の組合せによって実施することができるが、図２では、ステップ２１０は、構成アクト（constituent act）２１１および２１２を使用して達成されるものとして示す。
【００２６】
具体的には、識別された実行可能コンポーネントに関連する１つまたは複数の処理コンテキスト設定ファイルを識別する（アクト２１１）。図３に、識別された１つの実行可能コンポーネントに関連する１つまたは複数の処理コンテキスト設定ファイルを識別するための、企図される一方法３００を示す。識別された実行可能コンポーネントの１つまたは複数のプロパティと、１つまたは複数の設定ファイルとの間の相関関係を識別する（アクト３０１）。次いで、相互関係が示された１つまたは複数の設定ファイルを、１つまたは複数の処理コンテキスト設定ファイルとして識別する（アクト３０２）。
【００２７】
例えば、１つまたは複数の関連する処理コンテキスト設定ファイルを識別するには、おそらく実行可能コンポーネントの名前のみで十分である。コンポーネント依存関係もまた、関連する処理コンテキスト設定ファイルを識別する際に有用であることがある。例えば、コンポーネントは、正しく実行されるために特定の関数ライブラリに依存する場合がある。作者、作成日、バージョン番号などもまた、１つまたは複数の関連する設定ファイルを識別するのに使用される適切なプロパティとすることができる。図４を参照すると、処理コンテキスト識別およびアクセスモジュール４０３が、コンポーネント識別モジュール４０２から提供されたコンポーネント識別子およびパラメータ（１つまたは複数）を使用して、設定ファイル４１３Ａおよび関連するコンポーネント識別子４１３Ｂ（いくつかの実施形態では設定ファイル（１つまたは複数）に含まれている場合がある）を処理フロー４００のさらに下流に提供する。
【００２８】
次いで、処理コンテキスト設定ファイルを使用して、関連するコンポーネントの処理コンテキストを識別する。コンポーネントの処理コンテキストは、例えば以下のいずれか１つまたは複数を含むことができる。すなわち、識別された実行可能コンポーネントが実行されるプロセスの識別、識別された実行可能コンポーネントに対して実行前に実施される１つまたは複数の適応（例えば、フィールドの名前またはタイプの変更、あるいは何らかの計算の実施）、識別された実行可能コンポーネントが実行されるセキュリティコンテキスト（例えば、ユーザセキュリティコンテキストの識別、またはコンポーネントが実行されるマシンの識別）である。図４を参照すると、処理コンテキスト決定モジュール４０４が、設定ファイル４１３Ａおよびコンポーネント識別子４１３Ｂを使用して、各コンポーネントに関する処理コンテキスト４１４Ａを識別する。
【００２９】
次に、より一般的に上述した原理を明確にするために、いくつかの具体例を提供する。第１の例では、Ｃ１とそれに続くＣ２とそれに続くＣ３の、３つのコンポーネントの逐次的な実行を含むスクリプトを考えてみる。これは、シーケンスＣ１｜Ｃ２｜Ｃ３で表すことができる。ここで、コンポーネントＣ２に何らかの変更があったと仮定する。この変更により、もはやこのコンポーネントをコンポーネントＣ１およびＣ３と同じプロセス中で実行させることは賢明または可能ではなくなる。この場合、処理コンテキスト設定ファイルは、ある拡張可能マークアップ言語（ＸＭＬ）フォーマットで表すと、コンポーネントＣ２について以下のように書くことができる。
【００３０】
【表１】
2009524876.tif 000003
【００３１】
このような設定ファイルを使用することで、設定ファイルの処理コンテキストを変更することがずっと容易になる。例えば、コンポーネントＣ２をコンポーネントＣ１およびＣ３と同じプロセス中で実行することが再び有利であるようにコンポーネントＣ２が変更された場合、コンポーネントＣ２を参照するすべてのスクリプトを変更するのとは反対に、この変更を反映するように処理コンテキスト設定ファイルを再び変更することができる。例えば、設定ファイルは、以下のように書かれるように変更することができる。
【００３２】
【表２】
2009524876.tif 000004
【００３３】
この例では、設定ファイルは、コンポーネントの名前で識別可能である。しかし前述のように、設定ファイル（１つまたは複数）は、作者、作成日、またはその他など、コンポーネントの他のプロパティで識別されてもよい。
【００３４】
前述のように、処理コンテキストは、コンポーネントがプロセス内で実行されるかプロセス外で実行されるかということよりもずっと多くのことを含む場合がある。例えば、コンポーネントＣ２についてはるかに複雑な処理コンテキストを指定する以下の設定ファイルを例にとってみる。
【００３５】
【表３】
2009524876.tif 000005
【００３６】
ここで、コンポーネントＣ２に関する処理コンテキスト設定ファイルは、どのバージョンのインタープリタをプロセス中で実行する必要があるかを指定している。したがって、コンポーネントＣ２がコンポーネントＣ１およびＣ３とは異なるバージョンのインタープリタを必要とする場合、コンポーネントＣ２は、同じプロセス中で異なるバージョンのインタープリタが可能でない限り、プロセス外で実行されることになる。
【００３７】
「Ａｄａｐｔｏｒ」要素は、コンポーネントの実行前に実施すべき適応を指定する。ここでは、ＬＭＤ（最終修正日）フィールドがＭＤ（修正日）フィールドに変更される。これにより、コンポーネントＣ２をコンポーネント実行シーケンス内で実行できるような方式で、このコンポーネントを修正することができる。図４を参照すると、適応コンポーネント４０５が、処理コンテキスト４１４Ａ中で指定される任意の適応に従って、コンポーネント識別子４１４Ｂで識別されるコンポーネントを修正することができる。次いで、適応モジュール４０５は、処理コンテキスト４１５Ａおよび適応させたコンポーネント４１５Ｂを、呼出しコンポーネント４０６に提供する。
【００３８】
「ＯｕｔＯｆＰｒｏｃｅｓｓ」フィールドは、コンポーネントＣ２がプロセス外で実行されるべきであることを指定する。「ＲｕｎＡｓＵｓｅｒ」フィールドは、識別されたユーザが同じ要求をしている場合に許容されるのと同じセキュリティコンテキストを、コンポーネントＣ２が有するべきであることを指定する。この例示的な場合では、システムは、コンポーネントＣ２によって実施されているすべての動作を、その動作がＢｏｂによって要求された場合にシステムが許容する限り、許容することになる。
【００３９】
「ＨｏｓｔＣｏｍｐｕｔｅｒ」フィールドは、コンポーネントＣ２が実行されるべきホストコンピュータを指定する。この場合、コンポーネントＣ２は、「Ｂｏｂｓ」として識別されるホストコンピュータ上で実行されるべきである。前述のように、「ＲｕｎＡｓＵｓｅｒ」フィールドが「Ｂｏｂ」を指定しているので、実行は、このホストコンピュータ上でＢｏｂに関するセキュリティコンテキストを使用して実施される。
【００４０】
再び図２を参照すると、次いで呼出しコンポーネントは、識別された実行可能コンポーネントを、識別された処理コンテキスト中で呼び出す（アクト２１３）。この呼出しは、スクリプトを解釈したコンピューティングシステムと同じコンピューティングシステム上または異なるコンピューティングシステム上で実施することができる。例えば上の例で、ホストコンピュータ「Ｂｏｂｓ」が、呼出しモジュール４０６を実行するコンピュータと同じコンピュータでない場合は、呼出しモジュール４０６は、「Ｂｏｂｓ」として識別される正しいホストコンピュータ上でコンポーネントＣ２をリモートにするのに有用な、任意のアクションを実施することができる。コンポーネントがリモート呼出しされるか否かにかかわらず、呼出しモジュール４０６は、コンポーネントＣ２の実行の結果を返すことができる。
【００４１】
図５Ａに、３つのコンポーネントＣ１、Ｃ２、Ｃ３がすべて同じプロセス中で実行されるが、コンポーネントＣ２はコンポーネントＣ１およびＣ３と同じプロセス中での実行に適合するように適応させた例を示す。各プロセスは、スクリプトを解釈するためにそれ自体のインタープリタをインスタンス化する。図５Ｂに、コンポーネントＣ２がプロセス外で実行される例を示す。この場合、コンポーネントＣ２はまた、設定ファイル中で指定されるように適応させることができる。
【００４２】
図５Ｃに、シーケンスＣ１｜Ｃ２｜Ｃ３｜Ｃ４で表されるように４つのシーケンスが逐次的に実行される別の例を示す。この場合、コンポーネントＣ１およびＣ４はプロセスＡ中で実行され、コンポーネントＣ２およびＣ３はプロセスＢ中で実行される。この場合、処理コンテキスト決定モジュール４０４は、コンポーネントＣ２およびＣ３に関する処理コンテキスト設定ファイルを使用して、これらのコンポーネントがプロセスＡにおいてプロセス内実行されるべきでないと識別することができる。次いで、処理コンテキスト決定モジュール４０４は、コンポーネントＣ２とＣ３とがプロセスＡの外の同じプロセス中で実行できるように適合するか否かについて、別の決定を行う。例えば、コンポーネントＣ２とＣ３とが、同じプロセス中で実行することのできない異なる関数ライブラリに依存する場合、コンポーネントＣ２とＣ３とは、プロセスＡの外の異なるプロセス中で実行されなければならないことになる。
【００４３】
しかしこの場合、処理コンテキスト決定モジュール４０４は、コンポーネントＣ２とＣ３とがプロセスＢ内で同じプロセス中で実行できると決定した。このような場合は処理効率がある。というのは、処理制御をコンポーネントＣ２から再びプロセスＡに返した後でＣ３の実行のために処理制御を再びプロセスＢに返す必要がないからである。そうではなく、同じプロセスＢ内で、コンポーネントＣ２の実行がコンポーネントＣ３の実行にスムーズに移行することができる。
【００４４】
したがって、本発明の原理は、スクリプト自体を改変して処理コンテキストを指定する必要なしに、スクリプトコンポーネントが実行される処理コンテキストを指定および改変するための、フレキシブルな機構を提供する。
【００４５】
本発明は、その要旨または必須の特徴を逸脱することなく、他の特定の形態に組み入れることもできる。述べた実施形態は、あらゆる点で、例示に過ぎず限定ではないものと考えるべきである。したがって本発明の範囲は、以上の記述によってではなく添付の特許請求の範囲によって示される。特許請求の範囲の均等の意味および範囲に入るあらゆる変更は、それらの範囲内に包含されるべきである。
【図面の簡単な説明】
【００４６】
【図１】本発明の原理を利用することのできる適切なコンピューティング環境を示す図である。
【図２】コンピューティングシステム中でスクリプトを実行するための特定の処理コンテキストを識別する方法のフローチャートである。
【図３】識別された実行可能コンポーネントに関連する１つまたは複数の処理コンテキスト設定ファイルを識別する方法のフローチャートである。
【図４】図２の特定の処理コンテキストを識別する方法に関連する処理フローを示す図である。
【図５Ａ】スクリプトの複数のコンポーネントが単一のプロセス内で実行されるが、第２のコンポーネントの何らかの適応が実行前に行われることを反映するように第２のコンポーネントの処理コンテキストが変更される処理を、概略的に示す図である。
【図５Ｂ】スクリプトの複数のコンポーネントが別々のプロセス中で実行され、何らかの前処理適応または他の処理コンテキストが実行前にコンポーネントのうちの１つに対して実施される可能性がある処理を、概略的に示す図である。
【図５Ｃ】複数のコンポーネントが別々のプロセス内で実行され、処理制御を親プロセスに戻さずに子プロセス中の後続のコンポーネント間で渡すことができる処理を、概略的に示す図である。
【図１】
2009524876.tif 000006
【図２】
2009524876.tif 000007
【図３】
2009524876.tif 000008
【図４】
2009524876.tif 000009
【図５Ａ】
2009524876.tif 000010
【図５Ｂ】
2009524876.tif 000011
【図５Ｃ】
2009524876.tif 000012
【国際調査報告】
2009524876.tif 000013
2009524876.tif 000014