JP5026430B2 - ソフトウェア・アドイン・コンポーネントの発見、資格認定、および起動すること - Google Patents

ソフトウェア・アドイン・コンポーネントの発見、資格認定、および起動すること Download PDF

Info

Publication number
JP5026430B2
JP5026430B2 JP2008535535A JP2008535535A JP5026430B2 JP 5026430 B2 JP5026430 B2 JP 5026430B2 JP 2008535535 A JP2008535535 A JP 2008535535A JP 2008535535 A JP2008535535 A JP 2008535535A JP 5026430 B2 JP5026430 B2 JP 5026430B2
Authority
JP
Japan
Prior art keywords
component
add
application
candidate
properties
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008535535A
Other languages
English (en)
Other versions
JP2009512063A5 (ja
JP2009512063A (ja
Inventor
ペピン ブライアン
スロカム ミラー ジェームズ
エドワード クイン ジュニア トーマス
マーク リクター ジェフリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009512063A publication Critical patent/JP2009512063A/ja
Publication of JP2009512063A5 publication Critical patent/JP2009512063A5/ja
Application granted granted Critical
Publication of JP5026430B2 publication Critical patent/JP5026430B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

コンピュータ・システムおよび関連技術は社会の多数の側面に影響を及ぼす。実際、コンピュータ・システムの情報を処理する能力は、我々の生活および仕事の仕方に変換されてきた。コンピュータ・システムは、今や、コンピュータが出現する以前は手操作で行っていた多数のタスク(例えば、ワード・プロセッシング、スケジューリング、およびデータベース管理)を普通に実施している。最近では、複数のコンピュータ・システムは互いに、および他の電子装置と接続され、コンピュータ・システムおよび他の電子装置が電子データを転送可能な有線および無線のコンピュータ・ネットワークの両方を形成している。結果として、コンピュータ・システムで実施される多数のタスク(例えば、音声通信、電子メールのアクセス、家電製品の制御、ウェブの閲覧、および文書の印刷)には、有線および/または無線のコンビュータ・ネットワークを通した、多数のコンピュータ・システムおよび/または他の電子装置との間の電子メッセージ交換が含まれる。
ソフトウェア・アプリケーション(例えば、ワード・プロセッサ、電子メール・クライアント、等)は、異なるアプリケーション・ソフトウェア・コンポーネントが相互に動作して所望の機能を与えるように、モジュール形式で設計されることがよくある。従って、アプリケーション・モジュールを、エンドユーザが実行時にアセンブルすることができ、異なるベンダが異なる時点に提供することがよくある。このモジュール性により、アプリケーションの機能(feature)を動的に変化させることができ、大規模アプリケーションの効率的な分散開発が推進される。
例えば、異なる複数の開発チームが、別々に、アプリケーションの様々なモジュールに従事し、それらのモジュールを後で結合することができる。開発期間中において、実行時に様々なモジュールが互いに相互に動作するよう設計することができる。ソフトウェア開発チームのメンバーが互いを認識することがよくあり、それらメンバー全てが(例えば、特定のアプリケーション開発に特に割り当てた)同一会社の従業員である場合がある。他方、個々の開発チームは、所与の複数のソフトウェア仕様を与えられ、或る複数のモジュールを提供することができる。ここで、前記の個々の開発チームは、互いを認識しない。
アプリケーション開発は、他の(および将来的に後に開発される)モジュール(例えば、アドイン)と相互に運用するためのインターフェースを開発することを含む可能性がある。そしてそのインターフェースは、アプリケーションに、元々は設計されていない追加の機能性および/または異なる機能性を与える。例えば、ウェブ・ブラウザは一般にプラグインをロードする機能性を含み、例えば、それがなければ処理できないフォーマット済みコンテンツ(例えば、フラッシュ・アニメーシヨン、ポータブル文書形式の文書)の正確な処理を容易にする。ターゲット・アプリケーションの開発者が開発することもできるが、プラグインおよびアドインはサード・パーティの開発者によって開発されることがよくある。すなわち、アドインの開発者は、そのアドインがアプリケーションと共に動作するよう設計したアプリケーションの開発者ではないことがよくある。
結果として、アプリケーションおよび対応するアドインは異なる時点でコンピュータ・システムにインストール(または格納)されることがよくある。アドインをロードするため、アプリケーションはアドイン名でアプリケーション・インターフェースを呼び出す。しかしながら、アプリケーションがアドインをロードするためには、アプリケーションは一般に、アドインの(例えば、ファイル・システム内の)位置(location)および名前を知らなければならない。従って、アドイン・ディレクトリのパスは一般にアプリケーション内にハード・コーディングされる。アプリケーションがアドインを利用するためには、アドインを適切なアドイン・ディレクトリに格納しなければならない。
それぞれのアプリケーションは、個々のアドイン・ディレクトリにハード・コーディングしたパスを有することができるので、一つのコンピュータ・システムには多数のアドイン・ディレクトリが存在する可能性がある。幾つかのアドインは、多数の異なるアプリケーション(例えば、ワード・プロセッサ、電子メール・クライアント、スプレッドシート・アプリケーション、等)に対して同様な機能性(例えば、ディクショナリ)を与えるよう設計されている可能性がある。しかしながら、多数の異なるアプリケーションに同様な機能を与えるため、アドインのそれぞれのコピーを、それぞれのアプリケーション用のアドイン・ロケーションに格納しなければならない。結果として、アドインは、一つのコンピュータ・システムの多数の位置に冗長に格納される可能性がある。幾つかの環境では、所望の機能性を有するアドインをコンピュータ・システムに格納することができるが、アドインが別のアプリケーションのアドイン・ディレクトリに格納されるので、そのアドインは、あるアプリケーションに対して未知であり、および/またはアクセス不能である。
アドインの開発には一般に、アドインをロードするためにアプリケーションが使用するインターフェースを、アドイン開発者が知ることが必要である。従って、アドイン開発者が同様なアドインの機能性を多数の異なるアプリケーションに与えたい場合、アドイン開発者は、前述の異なるアプリケーションの各々に対して適切なインターフェースでアドインを開発しなければならない。さらに、アプリケーションの更新がアプリケーション・インターフェースを変更する場合、互換性のためにアドインも更新する必要がある可能性がある。従って、アドイン開発者は互換性のために、アドインに含まれる新規の機能性がないときでも、アドインの新規バージョンを頻繁にリリースする必要がありうる。
前述のように、アドインの機能性へのアクセスには、一般に、アプリケーション固有のアドイン・ディレクトリから名前でアドインをロードすることが含まれる。しかしながら、アドインのロード前に、アプリケーションは、アドインが意図した通り動作することおよびアドインが安全であることをほとんど保証できない。一般に、アドインの動作の仕方を決定するために使用できる唯一の仕組みは、アドインをロードして実行時にアドインをテストすることである。従って、アプリケーションは、アドインが不適切に構成されていることを決定するために、不適切に構成されたアドインを強制的にロードおよび実行することを余儀なくされる場合がある。不適切に構成されたアドインをアプリケーションが使用することは、コンピュータ・システムを誤動作させる可能性がある。
アドインの使用はセキュリティ・リスクももたらす。その理由は、アドイン内の悪意のあるコードが、アプリケーションと相互作用することにより、保護されたシステム機能へのアクセスを取得しうる可能性があるからである。しかしながら、アプリケーションは、アドインをロードおよび実行せずに、アドインに悪意のあるコードが含まれることを決定することに対して、あったとしても限定的な仕組みしか有さない。1つの解決法は、アプリケーションがアドインを利用することを防止することである。しかしながらこの解決法では、アプリケーションの機能性を高める適切に構成したアドインをアプリケーションが利用することを妨げる。
本発明は、ソフトウェア・アドイン・コンポーネントを発見する、資格認定する(qualifying)、および起動する方法、システム、およびコンピュータ・プログラム製品に関する。幾つかの実施形態では、コンピュータ・システムは、アドインがアプリケーションに利用可能であることを発見する。アドイン・コンポーネント・マネージャが、利用可能なアドイン・コンポーネントへの要求をアプリケーションから受信する。前述の要求には、アプリケーションが要求している特定のタイプのアドイン・コンポーネントを示す、選択可能なアドイン・コンポーネント・プロパティが含まれる。
アドイン・コンポーネント・マネージャは選択可能なアドイン・コンポーネント・プロパティを、アドイン・コンポーネントに対するアドイン・コンポーネント・エントリのコンテンツと比較する。アドイン・コンポーネント・エントリは、コンピュータ・システムの他のアドイン・コンポーネントに対するアドイン・コンポーネント・エントリも含むアドイン・コンポーネント・インデックスに含まれる。アドイン・コンポーネント・エントリには、アドイン・コンポーネント・マネージャでの登録処理中に識別したアドイン・コンポーネントの機能性を示す1つまたは複数のプロパティが含まれる。アドイン・コンポーネント・マネージャは前述の比較結果に基づいて、アドイン・コンポーネントが、アプリケーションが要求する特定のタイプであることを決定する。アドイン・コンポーネント・マネージャはアプリケーションに対し、アドイン・コンポーネントが、アプリケーションに利用可能な特定のタイプのアドイン・コンポーネントであることを示す。
他の実施形態では、コンピュータ・システムは、アプリケーションに利用可能なアドイン・コンポーネントが、アプリケーションでの使用に関して資格認定されるかどうかを決定する。アドイン・コンポーネント・マネージャは、アプリケーションに利用可能な候補アドイン・コンポーネントに対する1つまたは複数の識別したプロパティにアクセスする。前述の1つまたは複数の識別したプロパティは、前述の候補アドイン・コンポーネントに関連付けられた機能性を示す。アドイン・コンポーネントは、アドイン・コンポーネント・インデックス内のアドイン・コンポーネント・エントリにおいて示される。アドイン・コンポーネント・インデックスは、コンピュータ・システムの他のアドイン・コンポーネントに対するアドイン・コンポーネント・エントリも含む。
コンポーネント・マネージャは、1つまたは複数の資格認定条件(qualification constraints)を満たすアドイン・コンポーネントへの要求をアプリケーションから受信する。それぞれの資格認定条件は、アドイン・コンポーネントがアプリケーションと適切に動作するためにアドイン・コンポーネントに関連付けられるべき機能性を表す。コンポーネント・マネージャは1つまたは複数の資格認定条件と1つまたは複数の識別したプロパティとを比較する。コンポーネント・マネージャは、前述の1つまたは複数の資格認定条件と前述の1つまたは複数の識別したプロパティとの比較結果に基づいて、コンポーネント内の候補アドインがアプリケーションでの使用に関して資格認定されるかどうかを決定する。
更なる実施形態では、要求されたアドイン・コンポーネントの機能性に基づいて、コンピュータ・システムはアプリケーションで使用するアドイン・コンポーネントをロードする。アドイン・コンポーネント・マネージャは、コンピュータ・システムにある1つまたは複数のアドイン・コンポーネントが、アプリケーションが要求した特定のタイプのアドイン・コンポーネントであることを発見する。アドイン・コンポーネント・マネージャは少なくとも1つの発見したアドイン・コンポーネントを、その少なくとも1つの発見したアドイン・コンポーネントが1つまたは複数の資格認定条件を満たすことに基づいて、資格認定する。前述の1つまたは複数の資格認定条件は、希望する形でアドイン・コンポーネントがアプリケーションと相互に動作するためにアドイン・コンポーネントに関連付けられるべき機能性を表す。アドイン・コンポーネント・マネージャは、アプリケーションで使用するための1つまたは複数の資格認定条件に従って、資格認定されたアドイン・コンポーネントを起動する。
本要約は、選択した概念を簡潔な形で紹介するために提供される。これらの概念は以下の「発明を実施するための最良の形態」でさらに説明される。本要約は、請求の範囲の主題についての主要な特徴または本質的な特徴を特定するようには意図しておらず、請求の範囲の主題についての範囲を決定する手がかりとして使用されることを意図していない。
本発明の更なる特徴および利点は、以下の記述で説明され、それらは、以下の記述から部分的に明らかになり、あるいは、本発明を実践することで習得することができる。本発明の特徴および利点は、請求の範囲で特に指摘した手段(instruments)および組合せにより実現され、獲得することができる。本発明のこれらおよび他の特徴は、以下の説明および求の範囲からより完全に明らかになり、以降で説明する本発明の実践により習得することができる。
本発明の上述した利点および他の利点および特徴を獲得することが可能な方法を説明するため、上で簡単に説明した本発明のより詳細な説明が、付属図面において示すその具体的な実施形態を参照して、提供される。これらの図面は、本発明の本発明の一般的な実施形態を示すに過ぎず、従って本発明の範囲を限定すると見なされるべきではないことを理解して、付属図面の使用を通して、本発明が、を更なる具体性および詳細を以て記述され、説明される。
本発明は、ソフトウェア・アドイン・コンポーネントを発見する、資格認定する、および起動する方法、システム、およびコンピュータ・プログラム製品に関する。幾つかの実施形態では、コンピュータ・システムは、アドインがアプリケーションに利用可能であることを発見する。アドイン・コンポーネント・マネージャが、利用可能なアドイン・コンポーネントへの要求をアプリケーションから受信する。その要求には、アプリケーションが要求している特定のタイプのアドイン・コンポーネントを示す、選択可能なアドイン・コンポーネント・プロパティが含まれる。
アドイン・コンポーネント・マネージャは選択可能なアドイン・コンポーネント・プロパティを、アドイン・コンポーネントに対するアドイン・コンポーネント・エントリのコンテンツと比較する。アドイン・コンポーネント・エントリは、コンピュータ・システムの他のアドイン・コンポーネントに対するアドイン・コンポーネント・エントリも含むアドイン・コンポーネント・インデックスに含まれる。アドイン・コンポーネント・エントリには、アドイン・コンポーネント・マネージャでの登録処理中に識別したアドイン・コンポーネントの機能性を示す1つまたは複数のプロパティが含まれる。アドイン・コンポーネント・マネージャは前述の比較結果に基づいて、アドイン・コンポーネントが、アプリケーションが要求する特定のタイプであることを決定する。アドイン・コンポーネント・マネージャは、アプリケーションに対し、アドイン・コンポーネントが、アプリケーションに利用可能な特定のタイプのアドイン・コンポーネントであることを示す。
他の実施形態では、コンピュータ・システムは、アプリケーションに利用可能なアドイン・コンポーネントがアプリケーションでの使用に関して資格認定されるかどうかを決定する。アドイン・コンポーネント・マネージャは、アプリケーションに利用可能な候補アドイン・コンポーネントに対する1つまたは複数の識別したプロパティにアクセスする。前述の1つまたは複数の識別したプロパティは、前記の候補アドイン・コンポーネントに関連付けられた機能性を示す。アドイン・コンポーネントは、アドイン・コンポーネント・インデックス内のアドイン・コンポーネント・エントリにおいて示される。そのアドイン・コンポーネント・インデックスは、コンピュータ・システムの他のアドイン・コンポーネントに対するアドイン・コンポーネント・エントリも含む。
コンポーネント・マネージャは、1つまたは複数の資格認定条件を満たすアドイン・コンポーネントへの要求をアプリケーションから受信する。それぞれの資格認定条件は、アドイン・コンポーネントがアプリケーションと適切に動作するためにアドイン・コンポーネントに関連付けられるべき機能性を表す。コンポーネント・マネージャは前述の1つまたは複数の資格認定条件と前述の1つまたは複数の識別したプロパティを比較する。コンポーネント・マネージャは、前述の1つまたは複数の資格認定条件と前述の1つまたは複数の識別したプロパティとの比較結果に基づいて、候補アドイン・コンポーネントがアプリケーションでの使用に関して資格認定されるかどうかを決定する。
更なる実施形態では、要求されたアドイン・コンポーネントの機能性に基づいて、コンピュータ・システムはアプリケーションで使用するアドイン・コンポーネントをロードする。アドイン・コンポーネント・マネージャは、コンピュータ・システムにある1つまたは複数のコンポーネントが、アプリケーションが要求した特定のタイプのアドイン・コンポーネントであることを発見する。アドイン・コンポーネント・マネージャは少なくとも1つの発見したアドイン・コンポーネントを、その少なくとも1つの発見したアドイン・コンポーネントが1つまたは複数の資格認定条件を満たすことに基づいて資格認定する。前述の1つまたは複数の資格認定条件は、希望する形でアドイン・コンポーネントがアプリケーションと相互に動作するためにアドイン・コンポーネントに関連付けられるべき機能性を表す。アドイン・コンポーネント・マネージャは、アプリケーションで使用する1つまたは複数の資格認定条件に従って、資格認定されたアドイン・コンポーネントを起動する。
本発明の実施形態は、以下でさらに詳細に議論するように、コンピュータハードウェアを含む特殊目的または汎用のコンピュータを備えることができる。本発明の範囲内にある実施形態には、自身の上に記憶したコンピュータ実行可能命令またはデータ構造を運搬または有するコンピュータ読取可能媒体も含まれる。上記のコンピュータ読取可能媒体は、汎用目的または特殊目的のコンピュータによりアクセス可能な任意の利用可能な媒体であることができる。限定ではなく例として、コンピュータ読取可能媒体はコンピュータ読取可能記憶媒体を備えることができる。そのコンピュータ読取可能記憶媒体には、例えば、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶装置、あるいは任意の他の媒体がある。前述の任意の他の媒体を使用して、コンピュータ実行可能命令またはデータ構造の形で所望のプログラムコード手段を記憶することができ、汎用目的または特殊目的のコンピュータにより前述の任意の他の媒体にアクセスすることができる。
本説明および添付請求項では、“ネットワーク”を、コンピュータ・システムおよび/またはモジュール間の電子データを送信可能な1つまたは複数のデータリンクとして定義する。情報をネットワークまたは別の通信接続(ハード・ワイヤード、ワイヤレス、あるいはハード・ワイヤードまたはワイヤレスの組み合わせのいずれか)上でコンピュータに転送または提供するとき、コンピュータは正しくその通信をコンピュータ読取可能媒体と捉える。従って、限定ではなく例として、コンピュータ読取可能媒体はネットワークまたはデータリンクを備えることができる。前述のネットワークまたはデータリンクを使用して、所望のプログラムコード手段を、汎用目的または特殊目的のコンピュータによりアクセス可能なコンピュータ実行可能命令またはデータ構造の形で搬送または記憶することができる。
コンピュータ実行可能命令は例えば、汎用コンピュータ、特殊目的コンピュータ、または特殊目的処理装置に或る特定の機能または機能グループを実施させる命令およびデータを備える。コンピュータ実行可能命令は例えば、バイナリ、アセンブリ言語のような中間形式の命令であることができ、ソースコードであってもよい。発明の主題を構造的な特徴および/または方法論的動作に固有な言葉で説明するが、添付請求項で定義する発明の主題は上述した特徴または動作に必ずしも限定されないことは理解されるべきである。むしろ、説明した特徴および動作は、請求項を実装する例示的な形態として開示してある。
当業界の技術者は、多種のコンピュータ・システム構成を有するネットワーク・コンピューティング環境で本発明を実践できることを理解するであろう。前述のコンピュータ・システム構成には、パーソナル・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド装置、マルチプロセッサ・システム、マイクロ・プロセッサ・ベースまたはプログラム可能民生用電子機器、ネットワークPC、ミニ・コンピュータ、メインフレーム・コンピュータ、携帯電話、PDA、ページャ、等が含まれる。本発明を分散システム環境で実践することもできる。この分散システム環境では、(ハード・ワイヤード・データリンク、ワイヤレス・データリンクによって、またはハード・ワイヤードおよびワイヤレス・データリンクの組み合わせによってのいずれかにより)ネットワークを通して接続したローカルおよびリモート・コンピュータ・システムの両方がタスクを実施する。分散システム環境では、プログラム・モジュールをローカルおよびリモート・メモリ記憶装置の両方に配置することができる。
図1は、ソフトウェア・アドイン・コンポーネントの発見する、資格認定する、および起動を促進するコンピュータ・アーキテクチャ100の例を示す。コンピュータ・アーキテクチャ100内にコンピュータ・システムのコンポーネントを示してある。コンピュータ・システムを、例えばローカル・エリア・ネットワーク(“LAN”)、広域ネットワーク(“WAN”)、またはインターネットのようなネットワークに接続することができる。従って、コンピュータ・システムおよび他のネットワーク接続コンピュータ・システムは、ネットワークに接続した他のコンピュータ・システムに対してデータを送受信することができる。従って、コンピュータ、および他の接続されたコンピュータ・システム(示さず)は、メッセージ関連データを生成し、メッセージ関連データ(例えば、インターネット・プロトコル(“IP”)データグラムおよび、送信制御プロトコル(“TCP”)、ハイパー・テキスト転送プロトコル(“HTTP”)、シンプル・メール転送プロトコル(“SMTP”)、等のようなIPデータグラムを利用する他の上位層プロトコル)をネットワーク上で交換することができる。
コンピュータ・システム・アーキテクチャ100にはアプリケーション101、コンポーネント・マネージャ102、および記憶装置103が含まれる。コンピュータ・アーキテクチャ100内部では、システム・メモリ内に存在する(またはシステム・メモリと相互作用する)項目を実線で囲ってある。例えば、アプリケーション101およびコンポーネント・マネージャ102はシステム・メモリ内にロードされる。他方、記憶装置103内に存在する項目を点線で囲ってある。例えば、コンポーネント121、122、および123ならびにコンポーネント・インデックス104のコンポーネント・エントリは記憶装置103内に存在する。異なる時点で、同じ項目がシステム・メモリおよび/または記憶装置103内に存在することができる。例えば、コンポーネント122を起動して、コンポーネント122の一部を記憶装置103からシステム・メモリにロードすることができる(が、なお記憶装置103内にも存在する)。
一般に、アプリケーション101は、ソフトウェア・アドイン・コンポーネントを利用して機能性を高めるよう構成したアプリケーショである。例えば、アプリケーション101は外部ディクショナリをロード可能なワード・プロセッサ・アプリケーション、または特定のタイプのコンテンツに対してプラグインをロード可能なウェブ・ブラウザであることができる。アプリケーション101は、ソフトウェア・アドイン・コンポーネントと相互に動作するためのプログラム・インターフェースを有することができる。アプリケーション101は、アプリケーション101のユーザがソフトウェア・アドイン・コンポーネントのタイプおよび、アプリケーション101と相互に動作するためにソフトウェア・アドイン・コンポーネントが従うべき条件(constraint)を指定できるユーザ・インターフェースを含むこともできる。
コンポーネント・マネージャ102は一般に、利用可能なソフトウェア・アドイン・コンポーネントをアプリケーションに与えるように構成する。コンポーネント・マネージャ102をオペレーティング・システム内に含めることができ、および/またはコンポーネント・マネージャ102はアプリケーションに関するソフトウェア・アドイン・コンポーネントを管理するミドルウェアの一部であることができる。コンポーネント・マネージャ102には、ソフトウェア・アドイン・コンポーネントに対するアプリケーションの要求を受信し、その要求を満たすソフトウェア・アドイン・コンポーネントを識別し、識別したソフトウェア・アドイン・コンポーネントをアプリケーションに返す機能性が含まれる。
また、登録処理の一部として、ソフトウェア・アドイン・コンポーネントをコンピュータ・アーキテクチャ100にインストールするとき、コンポーネント・マネージャ102は前述のソフトウェア・アドイン・コンポーネントにアクセスすることができる。例えば、コンポーネント・マネージャ102はコンポーネント122にアクセスすることができる。コンポーネント・マネージャ102はアクセスしたソフトウェア・アドイン・コンポーネントを(例えば、インストール情報に基づいて)分析して、例えばファイル・パスまたはファイル名のような、コンポーネント122を記憶装置103に記憶すべき位置を識別することができる。
コンポーネント・マネージャ102は、アクセスしたソフトウェア・アドイン・コンポーネントを分析して、ソフトウェア・アドイン・コンポーネントのタイプとソフトウェア・アドイン・コンポーネントの動作能力(operational capabilities)とを(例えば、リフレクションを通して)識別することもできる。例えば、コンポーネント・マネージャ102はコンポーネント122上で属性を分析して、コンポーネント122のタイプと動作能力とを識別することができる。ソフトウェア・アドイン・コンポーネントのタイプは例えば、ディクショナリ、コンテンツ・プロセッサ、等を含むことができる。ソフトウェア・アドイン・コンポーネントの動作能力は、ソフトウェア・アドイン・コンポーネントに対するエントリ・ポイント、ソフトウェア・アドイン・コンポーネントが必要またはサポートする分離境界、およびソフトウェア・アドイン・コンポーネントに関連付けたセキュリティ設定を含むことができる。
コンポーネント・マネージャ102は、ソフトウェア・アドイン・コンポーネントの識別した機能性(例えば、タイプおよび動作能力)を示す1つまたは複数のプロパティを含むコンポーネント・エントリを構築することができる。例えば、コンポーネント・マネージャ102は、少なくともプロパティ141および151を含むコンポーネント122に対するコンポーネント・エントリ131を構築することができる。コンポーネント・エントリ内のプロパティは、例えばディクショナリ、コンテンツ・プロセッサ、等のようなソフトウェア・アドイン・コンポーネントのタイプを示すことができる。コンポーネント・エントリ内のプロパティは、ソフトウェア・アドイン・コンポーネントを記憶する(例えば、ファイル・システム内の)位置(location)を示すこともできる。
コンポーネント・エントリ内のプロパティは、ソフトウェア・アドイン・コンポーネントに対するインターフェースの実装に使用されるコントラクト(contract)(またはエントリ・ポイント・プロトコル)を示すこともできる。エントリ・ポイントを表すプロパティを拡張可能マークアップ言語(“XML”)マニフェストに含めることができる。拡張可能マークアップ言語(“XML”)マニフェストは、特定のマニフェスト・スキーマに従い、ソフトウェア・アドイン・コンポーネントに含まれる1つまたは複数のアセンブリを定義する。コンポーネント・マネージャ102はソフトウェア・アドイン・コンポーネントを分析してエントリ・ポイントを識別し、これをコンポーネント・エントリ内のプロパティで表すことができる。エントリ・ポイントはアセンブリ内のインスタンス化可能なクラスであることができる。クラスは、ソフトウェア・アドイン・コンポーネントを初期フックアップおよび制御するための、ホスト・アプリケーションが用いる標準プロトコルを実装することができる。以下のコード例はエントリ・ポイント・プロトコルを表す。
Public interface IEntryPoint Protocol: IProtocol
{
void Startup(IProtocol hostObject);
void Shutdown();
}
プロパティは、ソフトウェア・アドイン・コンポーネントを実行する位置(または分離境界)を示すこともできる。位置は、ソフトウェア・アドイン・コンポーネントが要求しているアプリケーションとのインプロセスまたはアウトプロセスでの実行に適合するかどうか、または要求しているアプリケーションと同一または別のアプリケーション・ドメインにあるかどうかを示すことができる。サポートされる分離境界または必要な分離境界は、ローカル・アプリケーション・ドメイン、共有アプリケーション・ドメイン、プライベート・アプリケーション・ドメイン、および他のプロセスを含むことができる。
プロパティはソフトウェア・アドイン・コンポーネントと関連付けたセキュリティ設定を示すこともできる。例えば、プロパティはソフトウェア・アドイン・コンポーネントを実行するための一連のパーミッション(permissions)を示すことができる。
コンポーネント・マネージャ102は、ソフトウェア・アドイン・コンポーネントに対して構築したコンポーネント・エントリをコンポーネント・インデックス104に格納することができる。コンポーネント・インデックス104は、例えばシステム・レジストリ、共有SQLサーバ、XMLファイル、アクティブ・ディレクトリ・サーバ、インターネット、またはファイル・システム・ディレクトリのような、事実上任意のデータ・リポジトリであることができる。
コンポーネント・マネージャ102のソフトウェア・アドイン・コンポーネントの分析に続いて、またはそれと並行して、ソフトウェア・アドイン・コンポーネントを記憶装置103に格納することができる。例えば、コンポーネント122をコンポーネント121および123(および垂直な楕円で表した他のソフトウェア・アドイン・コンポーネント)とともに記憶装置103に格納することができる。従って、記憶装置103内のそれぞれのソフトウェア・アドイン・コンポーネントは、コンポーネント・インデックス104内に(機能性を示す1つまたは複数のプロパティを有する)対応するコンポーネント・エントリを有することができる。例えば、コンポーネント・エントリ131は、コンポーネント122に対応することができ、コンポーネント・エントリ132はコンポーネント121に対応することができる、等である。
コンポーネント・マネージャ102は、コンポーネント・インデックス104を、例えばアドインの開発者、アプリケーションの開発者、等のコンポーネント・マネージャ102に既知の基準でソートすることができる。インデックスをソートすることで、例えば探索中に、これらの基準を用いて抽出(検索)することがより効率的になる。
前述のように、コンポーネント・エントリ内のプロパティは、対応するソフトウェア・アドイン・コンポーネントの機能性を示す。従って、プロパティ141および151はコンポーネント122の機能性を示すことができ、プロパティ142および152はコンポーネント121の機能性を示すことができる。記憶装置103にあるコンポーネント123および他のコンポーネントは、1つまたは複数の指示プロパティを収容するコンポーネント・インデックス104内に対応コンポーネント・エントリを有することもできる。コンポーネント・エントリ131および132はそれぞれ2つのプロパティを示すが、対応するソフトウェア・アドイン・コンポーネントについてのコンポーネント・マネージャ102の分析に少なくとも部分的に基づいて、事実上任意数のプロパティをコンポーネント・エントリ内に含めることができる。
図2は、アプリケーションに利用可能なアドイン・コンポーネントを発見する方法200のフローチャートを示す。方法200を、コンピュータ・システム・アーキテクチャ100内のコンポーネントおよびデータに関して説明する。
方法200には、利用可能なアドイン・コンポーネントに対する要求をアプリケーションから受信する動作(動作201)が含まれる。その要求には、アプリケーションが要求している特定のタイプのアドイン・コンポーネントを示す、選択可能なアドイン・コンポーネント・プロパティが含まれる。例えば、コンポーネント・マネージャ102は、プロパティ112を含む要求111をアプリケーション101から受信することができる。プロパティ112は、アプリケーション101が要求している特定のタイプのソフトウェア・アドイン・コンポーネントを示すことができる。幾つかの実施形態では、プロパティ112は、アプリケーション101内に予め構成されている。他の代替実施形態では、アプリケーション101は、ユーザが選択したプロパティ112(または幾つかの他の選択可能なプロパティ)を受信する。
方法200には、選択可能なアドイン・コンポーネント・プロパティと、アドイン・コンポーネントに対するアドイン・コンポーネント・エントリのコンテンツとを比較する動作(動作202)が含まれる。アドイン・コンポーネント・エントリは、コンピュータ・システムの他のアドイン・コンポーネントに対するアドイン・コンポーネント・エントリも含むアドイン・コンポーネント・インデックスに含まれる。アドイン・コンポーネント・エントリには、アドイン・コンポーネント・マネージャでの登録処理中に識別したアドイン・コンポーネントの機能性を示す1つまたは複数のプロパティが含まれる。例えば、コンポーネント・マネージャ102は、問い合わせ113を、コンポーネント・インデックス104内のコンポーネント・エントリに対して発行することができる。従って、プロパティ112が、コンポーネント・エントリ131内の(コンポーネント122の機能性を示す)プロパティ141および151に対して比較されることが可能である。
方法200には、アドイン・コンポーネントが、アプリケーションが要求する特定のタイプであることを比較結果に基づいて決定する動作が含まれる(動作203)。例えば、コンポーネント・マネージャ102は、プロパティ112をプロパティ141(またはコンポーネント・エントリ131内の幾つかの他のプロパティ)と比較した結果に基づいて、コンポーネント122が、アプリケーション101が要求したタイプのソフトウェア・アドイン・コンポーネントであることを決定することができる。コンポーネント・マネージャ102が、1つまたは複数の他のコンポーネントも特定のタイプのコンポーネントであることも決定することが可能である。コンポーネント・マネージャ102は、例えばコンポーネント・リスト114のような、特定のタイプの任意のコンポーネントを識別するリストを編集することができる。コンポーネント・リスト114は、(タイプに加えて)、例えばソフトウェア・アドイン・コンポーネントの動作能力を示すプロパティのような、コンポーネント・エントリからの他のプロパティを含むこともできる。
方法200には、アドイン・コンポーネントが、アプリケーションに利用可能な特定のタイプのアドイン・コンポーネントであることをアプリケーションに対して示す動作(動作204)が含まれる。例えば、コンポーネント・マネージャ102はアプリケーション101に対して、コンポーネント122が、プロパティ112が示すタイプのコンポーネントであることを示すことができる。特定のタイプのコンポーネントのリスト、例えばコンポーネント・リスト114を編集すると、コンポーネント・マネージャは少なくともリストの一部をアプリケーション101に送信することができる。例えば、コンポーネント・マネージャ102は、部分リスト114Pをアプリケーション101に送信することができる。
部分リスト114Pは、特定のタイプの各ソフトウェア・アドイン・コンポーネントを識別するプロパティを含むことができる。コンポーネント・マネージャ102は、ソフトウェア・アドイン・コンポーネントの動作能力を示す他のプロパティを、それらをアプリケーション101に送信せずに、維持することができる。または、コンポーネント・マネージャ102は、ソフトウェア・アドイン・コンポーネントの動作能力を示すプロパティをアプリケーション101に送信することができる。従って、アプリケーション101に、要求した特定のタイプの任意の利用可能なソフトウェア・アドイン・コンポーネント(および、潜在的に、ソフトウェア・アドイン・コンポーネントの他の機能性)を認識させることができる。
方法200を、アドイン・コンポーネント・インデックス内のそれぞれのエントリ(例えば、コンポーネント・インデックス104内のそれぞれのエントリ)に対して繰り返し、特定のタイプの他のアドイン(例えば、コンポーネント121および123)を潜在的に識別することができる。従って、特定のタイプの多数のアドイン(例えば、登録されたアドイン全体のサブセット)を発見することができる。従って、アドインの登録時に、アドイン・マネージャ(例えば、コンポーネント・マネージャ102)に与えた情報に基づいてアドイン・コンポーネントを識別(発見)することができる。方法200を使用して、アプリケーションを使用して特定の機能性を潜在的に実装可能なアドイン・コンポーネントを粗く選択することができる。
図3は、アプリケーションに利用可能なアドイン・コンポーネントがアプリケーションでの使用に関して資格認定されるかどうかを決定する方法300のフローチャートを示す。方法300を、コンピュータ・システム・アーキテクチャ100内のコンポーネントおよびデータに関して説明する。
方法300には、アプリケーションに利用可能な候補アドイン・コンポーネントに対する1つまたは複数の識別したプロパティへアクセスする動作(動作301)が含まれる。前述の1つまたは複数の識別したプロパティは、候補アドイン・コンポーネントに関連付けた機能性を示す。アドイン・コンポーネントは、アドイン・コンポーネント・インデックス内のアドイン・コンポーネント・エントリにおいて示される。前述のアドイン・コンポーネント・インデックスは、コンピュータ・システムの他のアドイン・コンポーネントに対するアドイン・コンポーネント・エントリも含む。例えば、コンポーネント・マネージャ102は、コンポーネント・エントリ131から(コンポーネント122の機能性を示す)プロパティ141および151にアクセスすることができる。または、コンポーネント・マネージャ102は、特定のタイプのソフトウェア・アドイン・コンポーネントの発見に応じて予め編集したコンポーネント・リスト114から、プロパティ141および151にアクセスすることができる。
他の実施形態では、コンポーネント・マネージャ102は、コンポーネント・エントリ・インデックス104に格納されないコンポーネント122に関連付けた他の情報にアクセスする。コンポーネント・インデックス104に含まれる情報と独立して、および/または一緒に他の関連情報にアクセスすることができる。他の関連情報は、コンポーネント122に対してアクセス可能または利用可能であったり、そうでなかったり、登録処理中にコンポーネント・マネージャ102に与えられたり、与えられなかったりする。さらに、コンポーネント・マネージャ102は、登録処理中にコンポーネントから受信した情報を廃棄または無視することを選択することができる。従って、コンポーネント122が関連情報をコンポーネント・マネージャ102に与える場合でも、前述の関連情報はコンポーネント・エントリ131に含まれない可能性がある(および、コンポーネント・インデックス104内に全く存在しない可能性がある)。
方法300には、1つまたは複数の資格認定条件を満たすアドイン・コンポーネントに対する要求をアプリケーションから受信する動作(動作302)が含まれる。それぞれの資格認定条件は、アドイン・コンポーネントが適切にアプリケーションと動作するためにアドイン・コンポーネントに関連付けられるべき機能性を表す。例えば、コンポーネント・マネージャ102は、条件(constraint)116をアプリケーション101から受信することができる。条件116は、ソフトウェア・アドイン・コンポーネントが適切にアプリケーション101と動作するためにソフトウェア・アドイン・コンポーネントに関連付けられるべきアドイン・コンポーネントの機能性を表すことができる。例えば、条件116は、アプリケーション101と動作する際にソフトウェア・アドイン・コンポーネントが特定のエントリ・ポイント・プロトコルを利用すること、プライベート・アプリケーション・ドメインで実行すること、を示すことができる。
幾つかの実施形態では、アドイン・コンポーネントは1つまたは複数の条件をコンポーネント・インデックスに登録する。前述の1つまたは複数の条件は、アプリケーションがアドイン・コンポーネントと相互に動作できる前に、アプリケーションが満足すべき、対応する1つまたは複数のプロパティを指定する。従ってコンポーネント122は、コンポーネント122と相互に動作するためにアプリケーション101が満足すべきプロパティを示す、1つまたは複数の条件を登録することがある。コンポーネント・マネージャ102は、アドイン・コンポーネントに対する条件をアプリケーションに送信することができる。例えば、コンポーネント・マネージャは(例えば、コンポーネント122に対する)条件116をアプリケーション101に送信することができる。
アドイン・コンポーネントの条件は、挙動に関してアプリケーションをチェックすること、またはアドイン・コンポーネントと相互に動作するためにアプリケーションが自身の挙動を変更するよう要求することに、使用されることができる。例えば、アプリケーション101は、デフォルトで同一のアプリケーション・ドメイン内の全てのアドイン・コンポーネントを実行することができる。しかしながら、コンポーネント122は、コンポーネント122を(例えば、コンポーネント122によってのみ使用される)別々のアプリケーション・ドメインで実行するようにアプリケーション101を制限することができる。従って、幾つかの実施形態では資格認定プロセスを、アプリケーションとアドイン・コンポーネントとの間の交渉と考えることができる。すなわち、アドイン・コンポーネントはアプリケーションの条件を満たす必要がある場合があり、アプリケーションはアプリケーションとアドイン・コンポーネントとの間の適切な相互動作のためにアドイン・コンポーネントの条件を満たす必要がある場合がある。コンポーネント116に対して示した双方向矢印は、交渉(negotiation)を表す。
方法300には、1つまたは複数の資格認定条件と1つまたは複数の識別したプロパティとを比較する動作(動作303)が含まれる。例えば、コンポーネント・マネージャ102は、条件116をプロパティ141および151と比較することができる。方法300には、前述の1つまたは複数の資格認定条件と前述の1つまたは複数の識別したプロパティを比較した結果に基づいて、候補アドイン・コンポーネントがアプリケーションでの使用に関して資格認定されるかどうかを決定する動作(動作304)が含まれる。例えば、コンポーネント・マネージャ102は、条件116をプロパティ141および151と比較した結果に基づいて、コンポーネント122がアプリケーション101での使用に関して資格認定されるかどうかを決定することができる。
すなわちコンポーネント・マネージャ102は、条件116が示す動作能力が、(プロパティ141および151が示すように)コンポーネント122によって実装されることが可能な動作能力であることを決定することができる。例えば、ソフトウェア・アドイン・コンポーネントが、プライベート・アプリケーション・ドメイン内で実行することすべきと条件が示し、ソフトウェア・アドイン・コンポーネントのプロパティが自身はプライベート・アプリケーション・ドメイン内で実行可能であることを示す場合、ソフトウェア・アドイン・コンポーネントは前述の条件を満たす。他方、ソフトウェア・アドイン・コンポーネントが特定のエントリ・ポイント・プロトコルを実装すると条件が示すが、ソフトウェア・アドイン・コンポーネントのプロパティが自身は特定のエントリ・ポイント・プロトコルを実装できないことを示す場合、このソフトウェア・アドイン・コンポーネントは前述の条件を満たさない。
方法300を多数の(以前に発見した)アドイン・コンポーネントに対して繰り返して、アプリケーションでの使用に関して資格認定される潜在的なアドイン・コンポーネントのリストを生成することができる。従って、資格認定条件を満たす多数のアドインを、アプリケーションでの使用に関して資格認定することができる。前述したように、アドインの登録時にアドイン・マネージャ(例えば、コンポーネント・マネージャ102)に提供された情報と、アドイン・マネージャにより提供または維持されない他の情報とに基づいて、アドイン・コンポーネントは、資格認定されることができる。方法300を使用して、アプリケーションによって潜在的に使用可能な(以前に発見した)アドイン・コンポーネントを精度良く選択することができる。
条件、プロパティ、比較、および条件を満たすことは、例に過ぎないことは理解されるべきである。本説明を検討すると、明示的に説明したものに加えて、本発明の実施形態は、他の条件、プロパティ、および比較を利用できること、および条件を他の方法で満たすことができることは当業界の技術者には明らかであろう。
幾つかの実施形態では、方法200および方法300が組み合わせて使用され、アドイン・コンポーネントおよびアプリケーションが資格認定されて、相互に運用され、指定の機能性を実装することを示す、アドイン・コンポーネントのリストを提供する。1つまたは複数の受信したプロパティをコンポーネント・インデックス・エントリ内のプロパティと比較することで、粗い発見プロセスを使用して利用可能なコンポーネント・アドインのサブセットを発見することができる。コンポーネント・インデックスをソートする際、発見プロセスは前述の1つまたは複数の受信したプロパティを満たす利用可能なアドイン・コンポーネントのサブセットを効率的に与えることができる。発見したアドイン・コンポーネントのサブセットから、高精度の資格認定プロセスは、1つまたは複数のアドイン・コンポーネントとアプリケーションが相互に動作することを資格認定することができる。資格認定は、コンポーネント・インデックス内の情報および/あるいはアドイン・コンポーネントまたはアプリケーションに関連付けた他の情報に基づくことができる。資格認定は双方向的(交渉)であることができる。すなわち、アドイン・コンポーネントはアプリケーションの条件を満たす必要がある場合があり、アプリケーションはアドイン・コンポーネントの条件を満たす必要がある場合がある。
資格認定されたソフトウェア・アドイン・コンポーネントを、例えば資格認定されたコンポーネント・リスト117のようなリストに含めることができ、アプリケーション101に送信することができる。幾つかの実施形態では、アプリケーション101は、適切なソフトウェア・アドイン・コンポーネントを資格認定されたコンポーネント・リストから選択する選択ロジックを使用して予め構成され、る。他の実施形態では、アプリケーション101は、資格認定されたコンポーネント・リストから適切なソフトウェア・アドイン・コンポーネントをユーザが選択することを可能にするユーザ・インターフェースを提示することができる。
アプリケーション101は、例えば、コンポーネント選択結果118のようなコンポーネント選択結果をコンポーネント・マネージャ102に返すことができる。それに応じて、コンポーネント・マネージャ102は選択したソフトウェア・アドイン・コンポーネントを起動することができる。例えば、コンポーネント・マネージャ102は起動119をファイル・システムに送信してコンポーネント122を起動することができる。起動119は、記憶装置103内のコンポーネント122を見つけるために、例えばディレクトリ・パスおよび名前のような識別子を含むことができる。起動119は条件116に従ってコンポーネント122を起動する命令を含むことができる。例えば、アプリケーション101が共有アプリケーション・ドメインを要求する場合、アプリケーション101を有する共有アプリケーション・ドメインでコンポーネント122を起動することができる。起動119は、条件116に従って、コンポーネント122をメモリにロードさせ、アプリケーション101とコンポーネント122との間の通信経路を確立させることができる。
満足される条件に従って確立可能な、一つのタイプの通信経路は、例えばパイプライン181のようなパイプラインである。パイプラインは1つまたは複数のノードのアプリケーシヨンプログラミング・インターフェース(以降、“API”)、1つまたは複数のアダプタ、および少なくとも1つのパイプライン・プロトコル、を含むことができる。上記のパイプラインはAPI、アダプタ、および様々な量および組合せでのパイプライン・プロトコルを含むことができ、パイプライン要素の全てを必ずしも含む必要はない。APIとは、オペレーティング・システムまたはランタイム実行環境のような対応する実行環境によって、手順の実行を方向付ける、アプリケーション、プログラム、関数、および他のプログラム可能かつ実行可能なコードのアセンブリによって使用される一連のルーチンを言う。アダプタとは、或るAPIを別のAPIへ通信可能に適合させることができる、かつ逐次的またはパイプライン・プロトコルとシリアルにあるいは経由で、リンクされることが可能なモジュールまたはオブジェクトを言う。パイプライン・プロトコルとは、そのAPIが非排他的な例であるオブジェクトが通信可能な仕様またはコントラクトを言う。
従って、パイプライン(例えば、パイプライン181)は、パイプライン・プロトコルを通してホストAPIアダプタからアドインAPIアダプタへ流れ、第1のノード・アプリケーション(例えば、アプリケーション101)を第2のノード・アプリケーション(例えば、コンポーネント122)に接続する、コード・モジュールまたはオブジェクトの連鎖であることができる。しかしながら、満足される条件に従って他種の通信経路を確立することもできることは理解されるべきである。従って、本説明を検討すると、本発明の実施形態はパイプラインに加えて他のタイプの通信経路を利用できることは当業界の技術者には明らかであろう。
代替的な実施形態では、アプリケーション101は、要求111内にプロパティ112とともに条件(constraints)116を含めることができる。これらの代替実施形態では、コンポーネント・マネージャ102は、コンポーネント・インデックス104に、プロパティ112で示したタイプの、および条件116を満たす、ソフトウェア・アドイン・コンポーネントを問い合わせることができる。問い合わせを満たすソフトウェア・アドイン・コンポーネントを、資格認定されたコンポーネント・リスト117でアプリケーション101に返すことができる。
図4は、アプリケーションで使用するアドイン・コンポーネントを、要求されたアドイン・コンポーネントの機能性に基づいてロードする方法400のフローチャートを示す。方法400を、コンピュータ・システム・アーキテクチャ100内のコンポーネントおよびデータに関して説明する。
方法400には、コンピュータ・システムにある1つまたは複数のアドイン・コンポーネントが、アプリケーションが要求する特定のタイプのアドイン・コンポーネントであることを発見する動作(動作401)が含まれる。例えば、コンポーネント・エントリ内のプロパティとの比較を通して、コンポーネントモジュール102は、1つまたは複数のコンポーネント121、122、および123が、プロパティ112が示す特定のタイプ(例えば、ディクショナリ、コンテンツ・プロセッサ、等)であることを発見することができる。
方法400には、少なくとも1つの発見したアドイン・コンポーネントを、その少なくとも1つの発見したアドイン・コンポーネントが1つまたは複数の資格認定条件を満たすことに基づいて資格認定する動作(動作402)が含まれる。前述の1つまたは複数の資格認定条件は、アドイン・コンポーネントが希望する形でアプリケーションと相互に動作するためにアドイン・コンポーネントに関連付けられるべき機能性を表す。例えば、コンポーネント・マネージャ102は、条件116を満たす任意のコンポーネント121、122、および123を資格認定することができる。(例えば、コンポーネント・エントリ内のプロパティとの比較を通して)条件116を満たすことは、アプリケーション101と希望する形で相互に動作する機能性をコンポーネントが含むこと(例えば、適切なパーミッション(permissions)を有すること、互換性のあるエントリ・ポイント・プロトコルを有すること、適切なアプリケーション・ドメインで実行可能であること、等)を表す。
方法400には、アプリケーションで使用するための1つまたは複数の資格認定条件に従って資格認定されたアドイン・コンポーネントを起動する動作(動作403)が含まれる。例えば、コンポーネント・マネージャ102は条件116に従って、アプリケーション101で使用するコンポーネント122を起動することができる。
本発明の実施形態は、ソフトウェア・アドイン・コンポーネントの動的かつ柔軟な選択を促進し、アプリケーションに上記選択を行うロジックを含める必要はない。ソフトウェア・アドイン・コンポーネントが様々なロケーションに格納されるときでも、ソフトウェア・アドイン・コンポーネントをタイプにより発見することができる。ソフトウェア・アドイン・コンポーネントを、アプリケーションで使用するためにロードする前に、適切な機能性に対して資格認定することができる。ソフトウェア・アドイン・コンポーネントを資格認定することで、不適切に構成されたソフトウェア・アドイン・コンポーネントまたは悪意のあるソフトウェア・アドイン・コンポーネントをロードする可能性が削減される。従って、本発明の実施形態は、ソフトウェア・アドイン・コンポーネントの効率的で安全な使用を推進する。
本発明を、その精神または本質的な特徴から逸脱せずに他の特定の形態に組み入れることができる。説明した実施形態は、全ての点で例に過ぎず限定的ではないと考えるべきである。本発明の範囲は従って、前述の説明ではなく添付請求項によって示される。請求項と同等なものの意味および範囲内にある全ての変更は、それらの範囲に含まれるべきである。
ソフトウェア・アドイン・コンポーネントの発見する、資格認定する、および起動することを容易にするコンピュータ・アーキテクチャを示す図である。 アプリケーションに利用可能なアドイン・コンポーネントを発見する方法のフローチャートである。 アプリケーションに利用可能なアドイン・コンポーネントがアプリケーションでの使用に関して資格認定されるかどうかを決定する方法のフローチャートである。 要求されたアドイン・コンポーネントの機能性に基づいて、アプリケーションで使用するアドイン・コンポーネントをロードする方法のフローチャートである。

Claims (16)

  1. アドイン・コンポーネント・マネージャを含むコンピュータ・システムにおいて、アプリケーションに利用可能なアドイン・コンポーネントに、前記アプリケーションで使用するための資格を認定するかどうか決定するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、前記コンピュータ・システムに、
    アプリケーションに利用可能な候補アドイン・コンポーネントに関する1つまたは複数の識別されたプロパティにアクセスする手順であって前記1つまたは複数の識別されたプロパティは、前記候補アドイン・コンポーネントに関連付けられた機能性を示し、前記候補アドイン・コンポーネントは、アドイン・コンポーネント・インデックス内のアドイン・コンポーネント・エントリによって表され、前記アドイン・コンポーネント・インデックスは、前記コンピュータ・システム内の複数のアドイン・コンポーネントに対する複数のアドイン・コンポーネント・エントリを含む、手順と、
    1つまたは複数の資格認定条件を満たすアドイン・コンポーネントを求める要求を前記アプリケーションから受信する手順であって、前記1つまたは複数の資格認定条件はそれぞれ、ドイン・コンポーネントが前記アプリケーションとともに適切に動作するために該アドイン・コンポーネントに関連付けられるべき機能性を表す、手順と、
    前記1つまたは複数の資格認定条件を、前記1つまたは複数の識別されたプロパティと比較する手順と、
    前記1つまたは複数の資格認定条件と前記1つまたは複数の識別されたプロパティとの比較結果に基づいて、前記候補アドイン・コンポーネントに、前記アプリケーションで使用するための資格を認定するかどうか決定する手順と
    前記1つまたは複数の資格認定条件と異なる1つまたは複数の他の資格認定条件を前記アプリケーションが満たすことを求める要求を、前記アプリケーションが前記アドイン・コンポーネント・マネージャから受信する手順であって、前記1つまたは複数の他の資格認定条件はそれぞれ、前記アプリケーションが前記候補アドイン・コンポーネントと適切に動作するために前記アプリケーションに関連付けられるべき機能性を表す、手順と、
    前記1つまたは複数の他の資格認定条件を前記アプリケーションのプロパティと比較する手順と、
    前記1つまたは複数の他の資格認定条件と前記アプリケーションのプロパティとの比較結果に基づいて、前記アプリケーションに、前記候補アドイン・コンポーネントにおいて使用するための資格を認定するかどうかを決定する手順と
    を実行させることを特徴とするコンピュータ・プログラム。
  2. 前記1つまたは複数の資格認定条件を、前記1つまたは複数の識別されたプロパティと比較する手順の前に、前記コンピュータ・システムに、
    前記候補アドイン・コンポーネントに関する前記1つまたは複数の識別されたプロパティにアクセスする前に、利用可能なアドイン・コンポーネントを求める要求であって、前記アプリケーションが要求しているアドイン・コンポーネントの特定のタイプを示す選択可能なアドイン・コンポーネント・プロパティを含む要求を、前記アプリケーションから受信する手順と、
    前記選択可能なアドイン・コンポーネント・プロパティを、前記候補アドイン・コンポーネントに対する前記アドイン・コンポーネント・エントリのコンテンツと比較する手順と、
    前記比較結果に基づいて、前記候補アドイン・コンポーネントが、前記アプリケーションによって要求された前記特定のタイプのアドイン・コンポーネントであることを発見する手順と、
    前記候補アドイン・コンポーネントが前記特定のタイプのアドイン・コンポーネントであることを前記アプリケーションに示す手順と
    をさらに実行させることを特徴とする請求項1に記載のコンピュータ・プログラム。
  3. 前記1つまたは複数の資格認定条件を満たすアドイン・コンポーネントを求める要求を前記アプリケーションから受信する手順は、特定のタイプのアドイン・コンポーネントを求める要求を受信することを含むことを特徴とする請求項1に記載のコンピュータ・プログラム。
  4. 前記候補アドイン・コンポーネントに、前記アプリケーションで使用するための資格を認定するかどうか決定する手順は、前記候補アドイン・コンポーネントに、前記アプリケーションで使用するための資格を認定すると決定する手順を含むことを特徴とする請求項1に記載のコンピュータ・プログラム。
  5. 前記候補アドイン・コンポーネントに、前記アプリケーションで使用するための資格を認定すると決定する手順は、前記比較結果に基づいて前記1つまたは複数の資格認定条件を満たす候補アドイン・コンポーネントのリストを形成する手順を含むことを特徴とする請求項4に記載のコンピュータ・プログラム。
  6. 前記候補アドイン・コンポーネントに、前記アプリケーションで使用するための資格を認定するかどうか決定する手順は、前記候補アドイン・コンポーネントが前記アプリケーションと互換性のあるエントリ・ポイント・プロトコルを有しているかどうか判断する手順を含むこと特徴とする請求項1に記載のコンピュータ・プログラム。
  7. 前記候補アドイン・コンポーネントに、前記アプリケーションで使用するための資格を認定するかどうか決定する手順は、前記候補アドイン・コンポーネントが、前記アプリケーションと相互に動作するための適切なパーミッションを有しているどうか判断する手順を含むことを特徴とする請求項1に記載のコンピュータ・プログラム。
  8. 前記候補アドイン・コンポーネントに、前記アプリケーションで使用するための資格を認定するかどうか決定する手順は、前記候補アドイン・コンポーネントが、前記アプリケーションによって要求されたアプリケーション・ドメインで実行可能かどうかを判断する手順を含むことを特徴とする請求項1に記載のコンピュータ・プログラム。
  9. 前記コンピュータ・システムに、
    前記アプリケーションから、前記アプリケーションで使用するために前記候補アドイン・コンポーネントを起動すべきであることを示すコンポーネント選択結果を受信する手順と、
    前記アプリケーションで使用するために前記1つまたは複数の資格認定条件に従って前記候補アドイン・コンポーネントを起動する手順と
    をさらに実行させることを特徴とする請求項1に記載のコンピュータ・プログラム。
  10. 前記アクセスする手順の前に、前記コンピュータ・システムに、
    前記コンピュータ・システムで前記候補アドイン・コンポーネントをインストールしている間に、前記候補アドイン・コンポーネントにアクセスする手順と、
    前記候補アドイン・コンポーネントを分析して、前記候補アドイン・コンポーネントに関連付けられた機能性を決定する手順と、
    前記候補アドイン・コンポーネントの前記アドイン・コンポーネント・エントリを生成する手順であって、前記アドイン・コンポーネント・エントリは、前記候補アドイン・コンポーネントに関連付けられた機能性を示す前記1つまたは複数の識別されたプロパティを含む、手順と、
    前記アドイン・コンポーネント・エントリを前記アドイン・コンポーネント・インデックスに格納する手順と
    をさらに実行させることを特徴とする請求項1に記載のコンピュータ・プログラム。
  11. アドイン・コンポーネント・マネージャを含むコンピュータ・システムにおいて、アプリケーションに利用可能なアドイン・コンポーネントに、該アプリケーションで使用するための資格を認定するかどうかを決定するための方法において
    プリケーションに利用可能な候補アドイン・コンポーネントに関する1つまたは複数の識別されたプロパティにアクセスする動作であって前記1つまたは複数の識別されたプロパティは、前記候補アドイン・コンポーネントの機能性を示前記候補アドイン・コンポーネントは、アドイン・コンポーネント・インデックス内のアドイン・コンポーネント・エントリによって表され、前記アドイン・コンポーネント・インデックスは、前記コンピュータ・システムの複数のアドイン・コンポーネントに関する複数のアドイン・コンポーネント・エントリを含む、動作と、
    1つまたは複数の資格認定条件を満たすアドイン・コンポーネントを求める要求を前記アプリケーションから受信する動作であって、前記1つまたは複数の資格認定条件はそれぞれ、ドイン・コンポーネントが前記アプリケーションと適切に動作するために該アドイン・コンポーネントに関連付けられるべきアドイン・コンポーネントの機能性を表す、動作と、
    前記1つまたは複数の資格認定条件を、前記1つまたは複数の識別されたプロパティと比較する動作と、
    前記1つまたは複数の資格認定条件と前記1つまたは複数の識別されたプロパティとの比較結果に基づいて、前記候補アドイン・コンポーネントに、前記アプリケーションで使用するための資格を認定するかどうかを決定する動作と
    前記1つまたは複数の資格認定条件と異なる1つまたは複数の他の資格認定条件を前記アプリケーションが満たすことを求める要求を、前記アプリケーションが前記アドイン・コンポーネント・マネージャから受信する動作であって、前記1つまたは複数の他の資格認定条件はそれぞれ、前記アプリケーションが前記候補アドイン・コンポーネントと適切に動作するために前記アプリケーションに関連付けられるべき機能性を表す、動作と、
    前記1つまたは複数の他の資格認定条件を前記アプリケーションのプロパティと比較する動作と、
    前記1つまたは複数の他の資格認定条件と前記アプリケーションのプロパティとの比較結果に基づいて、前記アプリケーションに、前記候補アドイン・コンポーネントにおいて使用するための資格を認定するかどうかを決定する動作と
    を含むことを特徴とする方法。
  12. プロセッサと、
    アプリケーション、およびアドイン・コンポーネント・マネージャがロードされるシステム・メモリと、
    複数のアドイン・コンポーネントに関する複数のアドイン・コンポーネント・エントリを含むアドイン・コンポーネント・インデックスと
    備えたコンピュータ・システムであって、
    前記アドイン・コンポーネント・インデックス内の各アドイン・コンポーネント・エントリ該コンピュータ・システムにおけるアドイン・コンポーネントの機能性を示す1つまたは複数のプロパティを含み、
    前記アドイン・コンポーネント・マネージャは、
    該コンピュータ・システム内の1つまたは複数のアドイン・コンポーネントが、前記アプリケーションによって要求された特定のタイプの候補アドイン・コンポーネントであることを発見する手順と、
    前記アドイン・コンポーネント・インデックス内の前記複数のアドイン・コンポーネント・エントリから、前記候補アドイン・コンポーネントに関する1つまたは複数の識別されたプロパティであって、前記候補アドイン・コンポーネントに関連付けられた機能性を示す1つまたは複数の識別されたプロパティにアクセスする手順と、
    1つまたは複数の資格認定条件を満たすアドイン・コンポーネントを求める要求を前記アプリケーションから受信するステップであって、前記1つまたは複数の資格認定条件はそれぞれ、アドイン・コンポーネントが、前記アプリケーションと相互に動作するために該アドイン・コンポーネントに関連付けられるべき機能性を表す、手順と、
    前記1つまたは複数の資格認定条件を、前記1つまたは複数の識別されたプロパティと比較する手順と、
    前記1つまたは複数の資格認定条件と前記1つまたは複数の識別されたプロパティとの比較結果に基づいて、前記候補アドイン・コンポーネントに、前記アプリケーションで使用するための資格を認定するかどうか決定する手順
    を実行するように構成され、
    前記アプリケーションは、
    前記1つまたは複数の資格認定条件と異なる1つまたは複数の他の資格認定条件を前記アプリケーションが満たすことを求める要求を、前記アドイン・コンポーネント・マネージャから受信する手順であって、前記1つまたは複数の他の資格認定条件はそれぞれ、前記アプリケーションが前記候補アドイン・コンポーネントと適切に動作するために前記アプリケーションに関連付けられるべき機能性を表す、手順と、
    前記1つまたは複数の他の資格認定条件を前記アプリケーションのプロパティと比較する手順と、
    前記1つまたは複数の他の資格認定条件と前記アプリケーションのプロパティとの比較結果に基づいて、前記アプリケーションに、前記候補アドイン・コンポーネントにおいて使用するための資格を認定するかどうかを決定する手順と
    を実行するように構成されることを特徴とするコンピュータ・システム
  13. 前記発見する手順は、前記アドイン・コンポーネント・マネージャが、特定のタイプのアドイン・コンポーネントを示す静的なプロパティを有するアドイン・コンポーネント・エントリを、前記アドイン・コンポーネント・インデックスに照会すること含むことを特徴とする請求項12に記載のコンピュータ・システム
  14. 前記アドイン・コンポーネント・マネージャは、前記候補アドイン・コンポーネントが、前記アプリケーションと互換性のあるエントリ・ポイント・プロトコルを有しているかどうかにさらに基づいて、前記候補アドイン・コンポーネントに資格を認定するかどうか決定することを特徴とする請求項12に記載のコンピュータ・システム
  15. 前記アドイン・コンポーネント・マネージャは、前記候補アドイン・コンポーネントが、前記アプリケーションと相互に動作するための適切なパーミッションを有しているかどうかにさらに基づいて、前記候補アドイン・コンポーネントに資格を認定するかどうか決定することを特徴とする請求項12に記載のコンピュータ・システム
  16. 前記アドイン・コンポーネント・マネージャは、前記候補アドイン・コンポーネントが、前記アプリケーションによって要求されたアプリケーション・ドメイン内で実行可能であるかどうかにさらに基づいて、前記候補アドイン・コンポーネントに資格を認定するかどうか決定することを特徴とする請求項12に記載のコンピュータ・システム
JP2008535535A 2005-10-12 2006-09-12 ソフトウェア・アドイン・コンポーネントの発見、資格認定、および起動すること Active JP5026430B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/248,051 US7698685B2 (en) 2005-10-12 2005-10-12 Discovery, qualification, and activation of software add-in components
US11/248,051 2005-10-12
PCT/US2006/035389 WO2007046977A1 (en) 2005-10-12 2006-09-12 Discovery, qualification, and activation of software add-in components

Publications (3)

Publication Number Publication Date
JP2009512063A JP2009512063A (ja) 2009-03-19
JP2009512063A5 JP2009512063A5 (ja) 2009-11-05
JP5026430B2 true JP5026430B2 (ja) 2012-09-12

Family

ID=37912016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008535535A Active JP5026430B2 (ja) 2005-10-12 2006-09-12 ソフトウェア・アドイン・コンポーネントの発見、資格認定、および起動すること

Country Status (10)

Country Link
US (1) US7698685B2 (ja)
EP (1) EP1934723B1 (ja)
JP (1) JP5026430B2 (ja)
KR (1) KR20080047447A (ja)
CN (1) CN101288047B (ja)
AU (1) AU2006302930A1 (ja)
BR (1) BRPI0617187A2 (ja)
CA (1) CA2622121A1 (ja)
RU (1) RU2008114066A (ja)
WO (1) WO2007046977A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7856505B2 (en) * 2007-06-29 2010-12-21 Microsoft Corporation Instantiating a communication pipeline between software
US20090183155A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Isolation of Content by Processes in an Application
US8762977B2 (en) * 2008-04-10 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Mobile device software management method and apparatus
US20100313252A1 (en) * 2009-06-08 2010-12-09 Erie Trouw System, method and apparatus for creating and using a virtual layer within a web browsing environment
US8464248B2 (en) * 2009-06-15 2013-06-11 Microsoft Corporation Contextual discovery of value-added components
US8365143B2 (en) * 2010-06-15 2013-01-29 Microsoft Corporation Dynamic languages for static hosts
US8898658B2 (en) * 2010-06-29 2014-11-25 Cisco Technology, Inc. Dynamic web resource provisioning
US8554797B2 (en) * 2010-12-17 2013-10-08 Sap Ag System and method for modular business applications
GB2487357A (en) * 2011-01-12 2012-07-25 Promethean Ltd Embedding application functionality within a user interface of a second application for ease of user operation
US9063776B2 (en) 2011-05-27 2015-06-23 Microsoft Technology Licensing, Llc Application activation framework
US9697016B2 (en) 2011-11-15 2017-07-04 Microsoft Technology Licensing, Llc Search augmented menu and configuration for computer applications
US8930886B2 (en) * 2011-12-15 2015-01-06 Microsoft Corporation Identifying application resources through implicit application models
US8997080B2 (en) * 2013-02-11 2015-03-31 Citrix Systems, Inc. System updates with personal virtual disks
CN103246533B (zh) * 2013-04-11 2017-03-29 小米科技有限责任公司 一种在通讯录中添加插件的方法、装置和设备
CN103649915B (zh) * 2013-07-31 2016-11-02 华为技术有限公司 关联插件管理方法、设备及系统
US20150113498A1 (en) * 2013-10-21 2015-04-23 Microsoft Corporation Modeling customizations to a computer system without modifying base elements
US9311062B2 (en) * 2013-10-31 2016-04-12 International Business Machines Corporation Consolidating and reusing portal information
CN104133666B (zh) 2013-11-29 2017-11-17 腾讯科技(成都)有限公司 确定人工智能行为的方法、装置及人工智能服务器
US20160232130A1 (en) * 2015-02-05 2016-08-11 Syntel, Inc. Mobile web application framework
EP3304295B1 (en) 2015-06-05 2024-05-29 Nutanix, Inc. Architecture for managing i/o and storage for a virtualization environment using executable containers and virtual machines
US10649679B2 (en) * 2016-11-23 2020-05-12 Nutanix, Inc. Containerized application extensions in distributed storage systems
US10761911B2 (en) 2017-02-13 2020-09-01 Nutanix, Inc. Asynchronous application interactions in distributed systems
JP7157335B2 (ja) * 2019-02-27 2022-10-20 日本電信電話株式会社 Apiアダプタ試験システム、apiアダプタ試験支援装置、apiアダプタ試験支援方法、および、apiアダプタ試験支援プログラム
US11928040B2 (en) * 2020-02-14 2024-03-12 Nippon Telegraph And Telephone Corporation API adapter test system, API adapter test assistance device, API adapter test assistance method, and API adapter test assistance program
CN113688141B (zh) * 2021-10-25 2022-02-15 武汉万云网络科技有限公司 一种应用功能设计方法及软件开发平台

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815718A (en) 1996-05-30 1998-09-29 Sun Microsystems, Inc. Method and system for loading classes in read-only memory
US6347398B1 (en) 1996-12-12 2002-02-12 Microsoft Corporation Automatic software downloading from a computer network
US6006279A (en) * 1997-01-21 1999-12-21 Canon Information Systems, Inc. Plug-in module host framework
US6055562A (en) 1997-05-01 2000-04-25 International Business Machines Corporation Dynamic mobile agents
US6085030A (en) 1997-05-02 2000-07-04 Novell, Inc. Network component server
US6549932B1 (en) 1998-06-03 2003-04-15 International Business Machines Corporation System, method and computer program product for discovery in a distributed computing environment
US6795853B1 (en) 1998-06-30 2004-09-21 International Business Machines Corporation Integration of additional computer components into a computer operation through attribute enabled interactive selections presented in composite lists available to the user in a variety of display screens
US6523166B1 (en) 1998-09-21 2003-02-18 Microsoft Corporation Method and system for on-demand installation of software implementations
US6892230B1 (en) 1999-06-11 2005-05-10 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages
US6523168B1 (en) * 1999-07-01 2003-02-18 International Business Machines Corporation Reduction of object creation during string concatenation and like operations that utilize temporary data storage
US6901440B1 (en) 1999-07-02 2005-05-31 Agilent Technologies, Inc. System and method for universal service activation
US20020104067A1 (en) 1999-12-29 2002-08-01 Green David W. Method and system and article of manufacture for an N-tier software component architecture application
US6871345B1 (en) * 2000-04-04 2005-03-22 Motive, Inc. Self managing software agents with introspection
US6834303B1 (en) 2000-11-13 2004-12-21 Hewlett-Packard Development Company, L.P. Method and apparatus auto-discovering components of distributed services
US20020078262A1 (en) 2000-12-14 2002-06-20 Curl Corporation System and methods for providing compatibility across multiple versions of a software system
US6996832B2 (en) * 2001-05-30 2006-02-07 Bea Systems, Inc. System and method for software component plug-in framework
JP2003015880A (ja) * 2001-06-29 2003-01-17 Toshiba Corp 携帯情報端末およびアドインプログラム起動方法
US6778990B2 (en) 2001-07-27 2004-08-17 Hewlett-Packard Development Company, L.P. Dynamic component activation method using a relational database as the repository for registration information
US7254814B1 (en) * 2001-09-28 2007-08-07 Emc Corporation Methods and apparatus for managing plug-in services
US7552443B2 (en) 2001-10-18 2009-06-23 Bea Systems, Inc. System and method for implementing an event adapter
US20030172127A1 (en) 2002-02-06 2003-09-11 Northrup Charles J. Execution of process by references to directory service
US7395540B2 (en) 2003-03-12 2008-07-01 Microsoft Corporation Automated business software application integration
US7493614B2 (en) * 2003-03-31 2009-02-17 Microsoft Corporation System architecture and related methods for dynamically adding software components to extend functionality of system processes
US7546470B2 (en) 2003-08-13 2009-06-09 International Business Machines Corporation Selective computer component activation apparatus method and system
US20060037000A1 (en) 2003-10-10 2006-02-16 Speeter Thomas H Configuration management data model using blueprints

Also Published As

Publication number Publication date
BRPI0617187A2 (pt) 2011-07-19
EP1934723A4 (en) 2009-01-28
CN101288047B (zh) 2012-05-23
EP1934723A1 (en) 2008-06-25
RU2008114066A (ru) 2009-10-20
CN101288047A (zh) 2008-10-15
EP1934723B1 (en) 2017-11-01
US20070083512A1 (en) 2007-04-12
JP2009512063A (ja) 2009-03-19
CA2622121A1 (en) 2007-04-26
WO2007046977A1 (en) 2007-04-26
AU2006302930A1 (en) 2007-04-26
US7698685B2 (en) 2010-04-13
KR20080047447A (ko) 2008-05-28

Similar Documents

Publication Publication Date Title
JP5026430B2 (ja) ソフトウェア・アドイン・コンポーネントの発見、資格認定、および起動すること
US11481247B2 (en) Computer-implemented systems and methods for service provisioning
US7836439B2 (en) System and method for extending a component-based application platform with custom services
US8539497B2 (en) Method for organizing software so the set of extensions for an extendable application can be run securely
CN102754073B (zh) 用于虚拟化的扩展点声明性注册的方法和系统
KR20070049166A (ko) 목표 기기 상에서의 종속 소프트웨어 패키지의 검출 및이용을 자동화하기 위한 방법 및 소프트웨어 리포지터리를생성하기 위한 시스템
US20070201655A1 (en) System and method for installing custom services on a component-based application platform
US20090106350A1 (en) Method and apparatus for dynamic web service client application update
KR101203284B1 (ko) 메시지를 이용하여 crm 기능성을 확장하는 방법
US8935402B2 (en) Resource launch from application within application container
US20050198336A1 (en) Methods and apparatuses for automatic adaptation of different protocols
US9411618B2 (en) Metadata-based class loading using a content repository
US7860983B1 (en) Enterprise identity orchestration server
US20060265387A1 (en) Method and apparatus for loading artifacts
Fay An Architecture for Distributed Applications on the Internet: Overview of Microsoft? s. NET Platform
Pirnau Implementing Web Services Using Java Technology
Markelov et al. Orchestration of OpenStack
Lam Thuan Thai

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090914

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120521

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120615

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120620

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5026430

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250