JP2006216035A - 通信バインディングオブジェクトを構築し、使用するシステムおよび方法 - Google Patents

通信バインディングオブジェクトを構築し、使用するシステムおよび方法 Download PDF

Info

Publication number
JP2006216035A
JP2006216035A JP2006015457A JP2006015457A JP2006216035A JP 2006216035 A JP2006216035 A JP 2006216035A JP 2006015457 A JP2006015457 A JP 2006015457A JP 2006015457 A JP2006015457 A JP 2006015457A JP 2006216035 A JP2006216035 A JP 2006216035A
Authority
JP
Japan
Prior art keywords
binding
runtime
communication
message
communication channel
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.)
Pending
Application number
JP2006015457A
Other languages
English (en)
Inventor
Craig A Critchley
エイ.クリッチュリー クレイグ
David A Wortendyke
エイ.ワーテンダイク デヴィッド
Elliot L Waingold
エル.ウェインゴールド エリオット
Eric K Zinda
ケイ.ジンダ エリック
Erik B Christensen
ビー.クリステンセン エリック
Giovanni M Della-Libera
エム.デラ−リベラ ジョヴァンニ
Pessach Yaniv
ペサッチ ヤニフ
Kenneth D Wolf
ディー.ウルフ ケニス
S Vernal Michael
エス.ヴァーナル マイケル
Shy Cohen
コーエン シャイ
Stefan H Pharies
エイチ.ファリーズ ステファン
Stephen J Millet
ジェイ.ミレー スティーブン
Stephen T Swartz
ティー.シュワルツ スティーブン
Janczuk Tomasz
ヤンクスク トマシュ
Uday S Hegde
エス.ヘグデ ウダイ
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 JP2006216035A publication Critical patent/JP2006216035A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

【課題】バインディングオブジェクトを構築し、使用する、自動化された、使いやすいやり方を提供する。
【解決手段】開発者は、最終的に、クライアントとサービスエンドポイントの間でメッセージをトランスポートするための実行時通信チャネルを作成するのに使用されるバインディング要素を提示され、それを選択する。ユーザ入力を受け取った後、メタデータ、チャネルファクトリおよびリスナーファクトリが作成される。メタデータはバインディング要素を記述し、実行時に通信態様を実施するプロトコルスタックの抽象表現を提供する。チャネルファクトリは、実行時にメタデータのコレクションを使って実行時通信チャネルを生成するように構成される。さらに、リスナーファクトリは、サービスエンドポイントでメッセージを処理するために、実行時通信チャネルを受け入れて通信態様を多重分離するように構成される。
【選択図】図1

Description

本発明は、一般に、分散システムにおける通信態様へのメッセージのバインディングに関する。より詳細には、本発明は、エンドポイント間でメッセージを転送するときにメッセージに通信態様を適用するための実行時通信チャネルを作成するのに使用することができるバインディングオブジェクトを構築する、自動化された、使いやすいやり方を開発者に提供する。
コンピュータシステムおよび関連する技術は社会の多くの側面に影響を及ぼす。実際、コンピュータシステムが情報を処理する能力は、我々の生活の仕方、働き方を変容させている。コンピュータシステムは、今や普通に、コンピュータシステムの到来以前には手作業で行われていた多くの仕事(例えば、文書処理、スケジュール管理、データベース管理など)を行っている。より最近では、コンピュータシステムは、相互に結合されて、コンピュータシステムがそれを介してデータを共有するために電子的に通信を行うことのできるコンピュータネットワークを形成している。サービス指向のシステム(Webサービスなど)は、そのようなコンピュータシステム間の通信を前進させる原動力となっており、我々がソフトウェアを構築し、使用するやり方を完全に転換させつつある。
サービス指向のアーキテクチャは、アプリケーションにデータを共有させ、より強力には、他のアプリケーションから、それらのアプリケーションがどのようにして構築されたか、それらがどんなオペレーティングシステムまたはプラットフォーム上で実行されるか、それらにアクセスするのにどんな装置が使用されるかを問わずに、諸機能を呼び出す。通常、これらのシステムは、SOAP(シンプルオブジェクトアクセスプロトコル)、XML(拡張可能なマークアップ言語)、UDDI(ユニバーサル・ディスクリプション・ディスカバリ・アンド・インテグレーション)、WSDL(Webサービス記述言語)などを含む産業標準プロトコルによってインターネットを介して呼び出される。これらのサービスは、相互に独立のままであるが、緩やかにリンクし合って特定のタスクを実行する協働グループを形成することができる。
しばしば、サービス指向ネットワークにおける電子通信は、サーバコンピュータシステム(以後「サービス」と呼ぶ)における(1つまたは複数の)ネットワークサービス(Webサービスなど)へのアクセスを要求するクライアントコンピュータシステム(以後「クライアント」と呼ぶ)を含む。したがって、クライアントはサービスに、そのシステムリソースへの特定のアクセスを求める要求を送り、クライアントが許可され、検証された場合、サービスは、例えば、所望の情報を提供する応答メッセージなどで応答する。当然ながら、クライアントとサービスの間の他のメッセージ交換パターンも利用可能であり、それらには、単純なシングルトンメッセージ、ならびに、例えば、通知、送信請求−応答、パブリッシュ−サブスクライブパターン、ポーリング、キック−プッシュ、待ち行列化(queuing)などのような、より洗練されたマルチメッセージ交換が含まれる。
サービスを記述するサービス指向の概念(アドレス、バインディング、メッセージ対話パターンなど)は、プログラミングモデルに含まれ得る。その場合、プログラミングモデルは、記述されるサービスと通信を行おうとするサービス消費者によってアクセスされ得る。一般に、サービス指向の概念(プログラミングモデルなど)は、例えば、分散コンポーネントオブジェクトモデル(「DCOM」)、共通オブジェクト要求ブローカアーキテクチャ(「CORBA」)、Webサービスなど、何らかのサービス指向標準に従って記述される。Webサービスは、さらに、例えば、Webサービス記述言語(「WSDL」)、Webサービスポリシフレームワーク(「WS−Policy」)など、様々なWebサービス仕様に従って定義することができる。
WSDLのようなサービス指向標準は、共通または標準の言語で契約(WS契約など)を記述するための全体的ラッパまたは仕様を提供する。そのような仕様は、開発者および開発用ツールが契約を作成し、解釈するのを容易にする。そのようなネットワークプロトコル記述言語(以後「NPDL」と呼ぶ)は、広範囲にわたるツール群を備えており、このことがそれらの普及の大きな理由であるが、現在、そのような標準にはいくつかの短所および破綻がある。
例えば、分散アプリケーションは、通常、そのプログラミングモデルにおいて厳格であり、そのサービスランタイムに緊密に結合されたただ1つのプログラミングモデルだけを許容する。したがって、互換性のために、(例えば、サービス消費者などにおける)クライアントランタイムは、通常、サーバランタイムと同じプログラミングモデルに従って開発されたクライアントプログラムまたはモジュールを利用することが必要とされる。例えば、サービスが要求と応答メッセージとに別々のインターフェースを使って、あるいは特定のセキュリティ機構を使って開発された場合、そのサービス消費者もそれらを実施しなければならない。同じプログラミングモデルに従って開発されたクライアントプログラムまたはモジュールを使用しないと、クライアントランタイムは、サービスランタイムと通信を行うのを妨げられることがある。
さらに、現在のNPDLは、メッセージ交換パターン(一方向、要求−応答、パブリッシュ−サブスクライブ、全二重など)、メッセージ符号化または形式(SOAPエンベロープなど)、およびサービスとメッセージを交換するためのトランスポートの種類(HTTP(ハイパーテキスト転送プロトコル)、FTP(ファイル転送プロトコル)、SMTP(簡易メール転送プロトコル)、TCP(伝送制御プロトコル)、UDP(ユーザデータグラムプロトコル)、SMS(ショートメッセージサービス)、SNA(システムネットワークアーキテクチャ)、GPRS(汎用パケット無線サービス)など)を含む、限られた通信態様のセットに契約をバインドする。その他の通信態様(セキュリティ、信頼性、コンテキストフロー、トランザクションフロー、ロギングオプション、接続スロットリングオプションなど)は、他の文書(WS−Policyなど)で指定され、または、クライアント側とサービス側の両方で、帯域外で構成されなければならない。
システム全体に散在する通信態様の広範囲に及ぶ分散に起因して、人為的ミスにより、サービス記述文書または構成が、対応するサービスの完全で正確な記述ではない多少の可能性がある。しかしながら、プログラミングモデルとサービスランタイムの間の厳格な結合の結果、サービスによって定義される1つの通信態様または構成オプションが欠けているだけでも、互換性のないクライアント実行時を生じ得る。
また、NPDLでは、すべての通信態様が提供されるとは限らないため、通信態様を利用し、維持するために、クライアントとサービスの両方が、各アプリケーション内に相当量のコードを持たなければならない。例えば、セキュリティコンテキストの場合、クライアントは、(1)サービスアプリケーションとの通信がセキュリティコンテキストトークンを使用しなければならないことを認識し、(2)トークン発行者にそのようなトークンを要求し、(3)要求内で適切な情報を提供し、(4)その後の通信のためにセキュリティコンテキストトークンを保存し、(5)そのセキュリティコンテキストトークンを使用するサービスからの通信を受け取るときに、適切なベーストークンおよび共有される秘密を参照するコードを持つ必要がある。同様に、サービスアプリケーションも、セキュリティテキストトークンに基づいてクライアントから保護されたメッセージを受け取るときに、サービスアプリケーションが、(1)ベーストークンを識別し、(2)メッセージを解読するためにベーストークンに関連付けられた適切なセッションキーを決定し、(3)セキュリティコンテキストトークンを保存し、(4)セキュリティコンテキストトークンを再利用して、メッセージを暗号化し、メッセージをクライアントに安全に配信するためにメッセージに署名することができなければならないようにコード化されなければならない。
セキュリティその他のセマンティクスでのそのような通信態様が、クライアントとサービス両方のアプリケーションでコード化されなければならないため、システムを拡張する際の柔軟性も容易さも、たとえあるとしても、わずかしかない。例えば、サービス指向のシステムを、異なる種類のセキュリティコンテキストトークンを使用し、または異なる信頼性オプションを持つことを可能にするように拡張することが望ましいと思われる場合、しかしながら、そうするには、既存のコードを書き換えるのみならず、サービスアプリケーションに別の大量のコードも必要になるはずである。また、当然ながら、セキュリティコンテキストは、HTTPSなどを使ってトランスポートレベルでも設定され得る。しかしながら、セマンティクスが仕様によって事前定義されるため、この解決法も、やはり、システムを拡張する際に柔軟性や容易さをもたらさない。さらに、アプリケーション開発者は、通常、特定の通信態様の専門家ではないため、性能、ストレス、その他の耐性のみならず、セキュリティの懸念、信頼性の懸念もある。さらに、これらの通信態様すべての置換および組み合わせが多数であるため、様々な組み合わせのメリットを十分に理解するのが厄介で、困難になる。
したがって、開発者に、メッセージを豊富な通信態様にバインドする、自動化された、使いやすいやり方をもたらすユーザインターフェースが求められている。このユーザインターフェースは、整合性のためにクライアントとサービスの両方によって使用され得る標準化ツールを生成することができなければならない。さらに、バインディングプロトコルの可能な置換の数を制限するために、よく使用される、互換性のある通信態様のリストを記述することも求められている。また、様々な通信態様、ならびによく使用される組み合わせは、十分に柔軟性があり、拡張可能で、プラグ可能(pluggable)でなければならない。
前述の現在のバインディング機構の欠陥および弱点は、本発明の例示的実施形態によって克服される。例えば、本発明は、開発者に、エンドポイント間でメッセージを転送するときにメッセージに通信態様を適用するための実行時通信チャネルを作成する際に使用するバインディングオブジェクトを構築する、自動化された、使いやすいやり方をもたらすユーザインターフェースを提供する。別の例示的実施形態は、開発者に、バインディング要素の可能な置換の数を縮小するための、よく使用される、互換性のあるバインディングオブジェクトのリストの提示をもたらす。また、本発明は、作成されたバインディングオブジェクトを使い、プロトコルの通信態様に従ってエンドポイント間でメッセージをやりとりする実行時通信チャネルを生成することのできるシステムも提供する。
例示的実施形態によれば、本発明は、選択のための、ユーザへの複数のバインディング要素の提示をもたらす。バインディング要素は、最終的に、クライアントとサービスエンドポイントの間でメッセージをトランスポートするための実行時通信チャネルを作成するのに使用される通信態様を表す。複数のバインディング要素の提示後、複数のバインディング要素から1つまたは複数のバインディング要素を選択するユーザ入力が受け取られる。選択に基づいて、メタデータ、チャネルファクトリおよびリスナーファクトリが作成される。バインディングオブジェクトを記述するメタデータは、1つまたは複数のバインディング要素のコレクションであり、実行時に通信態様を実施するプロトコルの抽象表現を提供する。チャネルファクトリは、実行時にメタデータを使って実行時通信チャネルを生成するように構成される。一方リスナーファクトリは、サービスエンドポイントでメッセージを処理するために、実行時通信チャネルを受け入れ、通信態様を多重分離(de−multiplex)するように構成される。
別の例示的実施形態は、選択のためのユーザへの複数のバインディングオブジェクトの提示をもたらす。複数のバインディングオブジェクトは、それぞれ、互換性、および複数のバインディング要素を組み合わせる産業上の蓋然性(probability)に基づいて組み合わされる、複数のバインディング要素を含む。さらに、複数のバインディング要素のそれぞれは、最終的に、クライアントとサービスエンドポイントの間でメッセージをトランスポートするための実行時通信チャネルを作成するのに使用される複数の通信態様を表す。その後、複数のバインディングオブジェクトから1つのバインディングオブジェクトを選択するユーザ入力が受け取られる。その後、実行時に通信態様を実施する実行時通信チャネルの抽象表現を提供する、選択されたバインディングオブジェクトを記述するメタデータが自動的に作成される。
さらに別の例示的実施形態は、最終的に、クライアントとサービスエンドポイントの間でメッセージをトランスポートするための実行時通信チャネルを作成するのに使用される1つまたは複数の通信態様を表す、1つまたは複数のユーザ選択のバインディング要素を含むバインディングオブジェクトを記述するメタデータへのアクセスを提供する。メタデータに基づき、1つまたは複数のユーザ選択のバインディング要素に対応する1つまたは複数の通信態様を実施するように構成された1つまたは複数のチャネルコンポーネントを含む実行時通信チャネルが開始される。その後、実行時通信チャネルを使い、1つまたは複数の通信態様に従って、サービスに関連付けられたエンドポイントにメッセージが転送される。
本発明のさらなる特徴および利点を以下の説明に示す。その一部は以下の説明から明白になり、あるいは本発明の実施によって知ることもできる。本発明の特徴および利点は、添付の特許請求の範囲で詳細に指摘される手段および組み合わせによって実現され、獲得され得る。本発明の上記その他の特徴は、以下の説明および添付の特許請求の範囲からより詳細に明らかになり、あるいは以下に示す本発明の実施によって知ることもできる。
本発明の上記その他の利点および特徴が獲得され得る仕方を説明するために、簡単に前述した本発明のより詳細な説明を、以下で、添付の図面に示す本発明の具体的な実施形態を参照して提供する。これらの図面は、本発明の典型的な実施形態を示すにすぎず、したがって、本発明の範囲を限定するものとみなされるべきではないことを理解した上で、本発明を、添付の図面を使って、さらに具体的かつ詳細に記述し、説明する。
本発明は、例示的実施形態によれば、開発者が、実行時通信チャネルを生成するのに使用され得るバインディングオブジェクトを作成するのを補助する方法、システムおよびコンピュータプログラム製品にまで及ぶ。本発明の実施形態は、以下でより詳細に論じるように、様々なコンピュータハードウェアを含む専用または汎用コンピュータを備え得る。
本発明の例示的実施形態を詳細に論じる前に、本願の残りの部分を通して使用されるいくつかの用語を定義することが役立つであろう。「通信態様」は、分散システムにおいてエンドポイント間でメッセージを搬送するための具体的な公式規則のセットに対応する。通信態様の例には、それだけに限らないが、(1)Webサービス(WS)ファミリの実際の仕様(WS−Security、WS−Reliable Messaging、WS−Atomic Transactionなど)、(2)特定の電信伝送機構(HTTP、TCP、UDPなど)、(3)メッセージの特定の電信符号化(テキスト、バイナリなど)、および(4)他の種々雑多な転送プロトコルが含まれる。これらの通信態様は、相互に結びついて、以下で説明する実行時通信チャネルの使用によって実施され得る「プロトコルスタック」を作り出すためのものである。各プロトコルスタックは、通常、少なくとも1つのトランスポート態様および1つの符号化態様(TCPを介したSOAPメッセージなど)を含む。しかしながら、各通信態様自体が1つのプロトコルであることに留意されたい。したがって、本明細書で使用する場合の「プロトコルスタック」は、1つまたは複数の通信態様を含むものであると幅広く解釈されるべきである。
通信態様の抽象表現は「バインディング要素」と呼ばれ、通信態様(ゆえにプロトコルスタック)を実施する実行時通信チャネルを作成するのに使用され得る。本明細書では、バインディング要素のコレクションを「バインディングオブジェクト」と呼び、これで特定のプロトコルスタックまたは通信態様の組み合わせの抽象表現を表す。
本発明は、一般に、エンドポイント間でメッセージを転送するためにバインディングオブジェクトを作成し、使用するシステム、方法およびコンピュータプログラム製品を提供する。図1に、例示的実施形態による、クライアントからサービスにメッセージを転送するためのバインディングオブジェクトを作成し、使用するのに使用され得る様々なコンポーネントを備える分散システム100を示す。図示のように、サービス開発者には、バインディング要素115を選択するために開発側アプリケーション110においてユーザインターフェース112が提示され得る。これらのバインディング要素115は、容易に理解され得るやり方で提示され、ユーザの選択を補助するための様々な記述を提供し得る。例えば、ユーザインターフェースは、ユーザに、「セキュリティを必要としますか?」、「信頼性を必要としますか?」などのように、情報の入力を促すことができる。ユーザ入力に基づき、他のオプションまたは質問を続けることができる。さらに、以下でより詳細に説明するように、これらのバインディング要素は、この提示プロセスの間にグループに結合され、または標準バインディングオブジェクトに構成され得る。その場合、開発者は、ユーザインターフェース112を使って提供される様々なオプションの中から選択を行うことができる。
また、本発明は、デフォルトのバインディング要素および/またはバインディングオブジェクトを定義することもサポートすることに留意されたい。したがって、開発者がバインディング要素を選択せずに進行する場合、バインディング要素115の1つまたは複数を含むデフォルトのバインディングオブジェクトが、ユーザのために自動的に選択され得る。そのため、本明細書で使用する「ユーザ選択の」という用語または他の類似の語句は、デフォルトのバインディング要素またはオブジェクトを含むものであると幅広く解釈されるべきである。そのような場合、デフォルトのバインディング要素115を選択するために受け取られるユーザ入力が、バインディング要素(または以下で説明する他のバインディングオブジェクト)を選択することなく入力されて進行し得る。
開発者が自分の選択をし終えると、組み合わされた選択のバインディング要素からバインディングオブジェクトが作成される。バインディングオブジェクトを使って、バインディングビルダ(図示せず)によっていくつかの異なる例示的実施形態を作成するのに使用されるバインディング記述120が構築される。第1に、バインディング記述120は、ストア105に格納され得るバインディングオブジェクトの記述であるメタデータ125のコレクションを作成するのに使用され得る。このメタデータはサービス140に存在し得るが、これは、例えば、ユニバーサルな記述、発見および統合(「UDDI」)を使用するサービスのディレクトリに格納されるNPDL文書(WSDL文書など)にも存在し得る。
第2に、バインディング記述120は、メタデータ125を使って実行時通信チャネル165を作成するチャネルファクトリ135を作成するのにも使用され得る。チャネル(実行時通信チャネル165など)は、クライアント130とサービス140の間でメッセージを交換するためのコア抽象化を表す。特に、チャネル(実行時通信チャネル165など)は、入力/出力(I/O)抽象化を表し、(1)アプリケーションデータまたはメッセージ170(SOAPメッセージなど)を受け入れ、(2)様々な通信態様(信頼性、セキュリティ、符号化など)を実施し、(3)通信態様に従って送信のためにメッセージ170をフォーマットし、(4)「電信」によってメッセージ170を送信する役割を果たす。また、実行時通信チャネル165は、通信態様においてプルベースの機構を使ったスロットリングおよびフロー制御もサポートし、維持し得ることに留意されたい。
また、バインディング記述120は、サービス140のリスナーファクトリ145を作成するのにも使用される。サービス側140で、リスナーファクトリ145は、特定のネットワークアドレス上でメッセージ170などの新しいメッセージをリッスンし、サービス140の特定のエンドポイント160と通信を行うリスナー150を作成する機構を提供する。その場合、リスナーファクトリ145は、メッセージ170の一部を多重分離し、メッセージ170を適切なリスナー150に送ることができる。
サービス140からメタデータ125(WSDL文書など)を獲得することができ、次いで、実行時通信チャネル165を生成することは、本発明で提供される「使いやすさ」の重要な部分であることに留意されたい。例えば、ある開発者がサービス140のためにバインディング要素115を選択することができ、次いで、別の開発者が、リモートで、サービス140にそのメタデータ125を問い合わせることができる。このメタデータ125から、アプリケーションは、実行時通信チャネル165を生成し、それを使い、サービスの開発者のバインディング要素115の選択に従って、サービス140にメッセージを転送することができる。
さらに、上記オブジェクト125、135、145は、特定の順序で論じたバインディング記述を使って作成されているが、本発明は、これらのオブジェクトを生成する順序にもタイミングにも限定されないことに留意されたい。例えば、メタデータ125、チャネルファクトリ135、およびリスナーファクトリ145は、同時に作成されても、任意の順序で別個に作成されても、またはその組み合わせとしてもよい。
通信オブジェクト125、135、145がいつ作成されるかを問わず、サービス140にアクセスするために、クライアント130は、その特定のサービス140のチャネルファクトリ135にチャネルを能動的に要求する(180)。次いで、チャネルファクトリ135は、ストア105のメタデータ125にアクセスし、このバインディングオブジェクトの記述を使って実行時通信チャネル165を開始することができる。実行時通信チャネル165の具体的詳細は、この例示的実施形態に密接には関係しないが、実行時通信チャネル165が、通常、(組み合わされて実施されるとプロトコルスタックを構成する)様々な通信態様に対応する通信コンポーネントから構成されることは注目に値する。例えば、実行時通信チャネル165は、セキュリティコンポーネント、信頼性コンポーネント、トランスポートコンポーネントおよび符号化コンポーネントを含み得る。その場合、これらのコンポーネントが結びついて、そのプロトコルを実施する全体の実行時通信チャネル165を作り出す。
要求180を受け取ると、チャネルファクトリ135は、クライアント130が、実行時通信チャネル165を適切に参照し、それを使って、指定された通信態様に従ってサービス140にメッセージ170を渡すことができるように、クライアント130に(実行時通信チャネル165またはその識別子とすることのできる)ハンドル175を返す。本発明は、これらの通信態様を開発者から選択されたバインディング要素から導出したが、現在の実施形態はそのような選択プロセスだけに限定されないことに留意されたい。例えば、メタデータ125は、デフォルトのバインディングオブジェクトまたはサービス側のシステム管理者による構成セマンティクスによって指定されるバインディングオブジェクトを表すこともできる。したがって、この実施形態で重要なのは、実行時通信チャネル165を作成するためのメタデータ125の使用である。しかしながら、前述のように、実行時通信チャネル165は、通常、少なくとも1つのトランスポート態様および1つの符号化態様を含むべきであることに留意されたい。
実行時通信チャネル165がどのようにして開始されるかを問わず、サービス側140で、リスナーファクトリ145は、実行時通信チャネル165をリッスンし、適当なリスナー150を作成する。リスナー150は、サービス側140で新しい実行時通信チャネル165をリッスンし、それを受け入れる抽象化を表す。リスナー150によって新しいチャネル(実行時通信チャネル165など)が検出されると、エンドポイント160は、実行時通信チャネル165によって実施される通信態様に従ってリスナーにメッセージ170を多重分離させる、「チャネル受け入れ」を呼び出すことができる。代替として、エンドポイント160は、未処理の受け入れ開始を「保留」にすることもでき、これは、後で、他のメッセージが処理されてから完了され得る。いずれにしても、その後、エンドポイント160は、しかるべくメッセージを処理し、必要に応じて適当な応答を送ることができる。
クライアント130とサービス140の間のメッセージ交換パターンに応じて、実行時通信チャネル165は、サービス140からクライアント130に生成され得ることに留意されたい。例えば、クライアント130とサービス140の間の全二重メッセージ交換パターンでは、そのような通信のために、サービス140からクライアント130への逆方向チャネルが生成される必要が生じうる。したがって、前述の通信プロセスは、サービス140がクライアント130として働き、逆もまた同様に働くように切り換えられる必要が生じ得る。さらに、前述の例示的実施形態を実施する他のやり方もあり得る。例えば、メタデータ125、チャネルファクトリ135、およびリスナーファクトリ145は、バインディング記述なしで自動的に生成され得る。したがって、実行時通信チャネル165を生成し、そのような通信チャネルを使ってメッセージを転送する具体的実装形態は、例示のために使用しているにすぎず、明示的に特許請求されない限り、本発明の範囲を限定し、または別の点で狭めるためのものではない。
図2Aに、様々なバインディング要素がそれらに共通の特性に従ってグループ化されている一般的なユーザインターフェース101を示す。例えば、1つのグループ182は、(信頼性バインディングAおよび信頼性バインディングB196として示す)いくつかのバインディング要素184を備え得る信頼性186グループを含む。そのような信頼性バインディング要素196は、特定のトランスポート(HTTPなど)にバインドされた、WSファミリからのものとすることもでき、独自の信頼性バインディング要素196とすることもできる。このバインディング要素184のグループ182への編成は、バインディング要素184の定義を容易にし、その特定のグループ182の最もよく要求される機能を表す。
図示のように、他のグループには、様々なセキュリティバインディング要素198(WS−Security、HTTPS、プロプライエタリなど)を持つセキュリティグループ188、トランスポートバインディング要素181(HTTP、HTTPS、HTTPR、名前つきパイプ、TCP、UDP、待ち行列化メッセージング(queued messaging)、待ち行列化統合メッセージング(queued integration messaging)など)を持つトランスポートグループ190、符号化バインディング要素183(テキスト、バイナリ、SOAP、メッセージ伝送最適化機構(MTOM)など)を持つ符号化グループ192、およびその他グループ194が含まれ得る。当然ながら、他の共通の通信態様を表す他のグループ182(「WSファミリ」グループなど)もあり得る。実際、以下でより詳細に述べるように、グループは、十分にプラグ可能で、拡張可能であり、独自のグループ化および他のグループ化も可能である。そのため、前述のグループおよび各グループ内のバインディング要素のリストは、例示のために使用しているにすぎず、明示的に特許請求されない限り、本発明の範囲を限定し、または別の点で狭めるためのものではない。
この最後のその他グループ194は、どんな特定のグループ182にもうまく当てはまらないその他のバインディング要素185を含み得る。例えば、その他のバインディング要素185は、(1)異なる通信チャネルが1つの全二重チャネルに組み合わされ得る、複合全二重バインディング要素、(2)メッセージがRPC/リテラル、RPC/符号化、文書/リテラル、文書/符号化であるかどうか決定するメッセージ形式バインディング要素、(3)コンテキストの実行のためのコンテキストフローバインディング要素、および(4)トランザクションの流れのためのトランザクションフローバインディング要素の1つまたは複数とすることができる。当然ながら、他の共通グループ182に当てはまらない他の多くのバインディング要素185もあり得る。したがって、前述のその他のバインディング要素185のリストは、例示のために使用しているにすぎず、本発明の範囲を限定し、または別の点で狭めるためのものではない。
実際、前述のように、例示的実施形態は、グループ182およびバインディング要素184が十分にプラグ可能であり、拡張可能であると規定する。すなわち、グループ182、および各グループ182中のバインディング要素184さえも、バインディングオブジェクトを作成するためのアプリケーションを書き換えることなく、必要に応じて、除去され、挿入され、または拡張され得る。グループ182および各グループ内のバインディング要素184のそれぞれがプラグ可能であり、拡張可能であるため、前述のグループ182およびバインディング要素184のリストは、包括的であることが意図されていないことに留意されたい。したがって、前述のリストおよび以下のその他のリストは、例示のために使用しているにすぎず、明示的に特許請求されない限り、本発明の範囲を限定し、または別の点で狭めるためのものではない。
また、図2Aに示すユーザインターフェースは、ラジオボタンを使って選択され得るバインディング要素184の単純な表示であることに留意されたい。しかしながら、本発明には他のユーザインターフェースも利用可能である。例えば、バインディング要素および/またはグループ182は、個々に、または一括して表示され得る。さらに、選択の型は、単純なラジオボタンではなく、例えば、チェックボックス、反転表示などとすることもできる。さらに、バインディング要素(または場合によってはオブジェクト)は、次の利用可能なオプションが前に行われる選択によって決まるウィザードとしても提供され得る。また、アプリケーション開発者がクラスを書いているときに、ユーザに、オプションのオートコンプリートをスクロールさせるポップアップボックスも表示され得る。実際、前述の機能を達成するための、異なる美的側面を持つ多数のユーザインターフェース設計が存在する。そのため、本明細書で説明し、または図示するどんな特定のユーザインターフェースも、例示のために使用しているにすぎず、明示的に特許請求されない限り、本発明の範囲を限定し、または別の点で狭めるためのものではない。
上記のバインディング要素184のグループ182は、1組の共通の通信機能からカスタム通信バインディングオブジェクトを定義する柔軟な機構を提供するが、そのような柔軟性は、多数のバインディングオブジェクト(すなわち、バインディング要素およびその可能な組み合わせの数)を持つという厄介な問題を生み出す。実際、その計算を開始すると、可能なバインディングオブジェクトの数は、何万にも及ぶ。そのため、個々のバインディング要素に精通していない開発者は、どんな組み合わせが開発者の個々の必要に最も適するか知らないことがある。
したがって、別の例示的実施形態は、産業上最も一般的な種類の通信バインディングオブジェクトのコレクションまたは構成である、標準化されたバインディングを提供する。言い換えると、例示的実施形態は、最も一般的な種類であることがわかっている様々なバインディング要素を組み合わせることによって事前構築されたバインディングオブジェクトを提供する。図2Bに、開発者に、ユーザがそこから選択することのできる様々な標準バインディング104を提示する例示的ユーザインターフェース102を示す。また、ユーザには、106に示すような個々のバインディング要素を選択するオプションも提示され得る。
以下は、現在産業標準として使用されている、最も一般的な種類の通信バインディングオブジェクトのいくつかのリストである。このリストは、そのようなバインディングオブジェクトを作成するための特定のバインディング要素の概要を示しているが、産業が成長し、変化するにつれて、これらのバインディング要素も変化し得る。したがって、以下のリストは、包括的であることを意図されておらず、単に、現在、一般に組み合わされる蓋然性が高いと考えられているバインディング要素の例示的組み合わせを示すものにすぎない。
現在の事前構築のバインディングオブジェクトの1つの種類は、Webサービス相互運用性:基本プロファイル(WSI−BP)と整合するWebサービスとの通信に適した、基本プロファイルバインディングオブジェクトとすることができる。このバインディングオブジェクトは、HTTPまたはHTTPSを介したテキスト符号化を使用し、一方向および要求−応答MEP(メッセージ交換パターン)をサポートする。しかしながら、このバインディングオブジェクトは、全二重MEP、トランスポートセッション、および信頼性の高いセッションをサポートしない。
別の一般的なバインディングは、HTTPまたはHTTPSトランスポートを介してWSスイートまたはファミリを使用するWebサービスとの保護された、信頼性の高い通信に適した、WSプロファイルバインディングとすることができる。このバインディングオブジェクトは、テキストまたはMTOMで符号化することができ、HTTPまたはHTTPトランスポートプロトコルをサポートする。また、このトランスポートは、信頼性の高いセッション、ならびに一方向、要求−応答および全二重MEPも提供する。別の類似のバインディングは、WSファミリと併せて双方向HTTP通信を使用するWebサービスとの保護された、信頼性の高い通信に適した、WSプロファイル全二重HTTPバインディングである。
セキュリティに使用されるTLS/SSLありまたはなしの、TCPトランスポートを介したバイナリによる.NETファミリのプロトコルを実施するサービス間の、保護された、信頼性の高い通信に適した、.NETプロファイルTCPバインディングオブジェクトが利用可能である。別の類似の事前構築のバインディングオブジェクトは、同じマシン上のプロセス間の、保護された、信頼性の高い通信に適した、.NETプロファイル名前付きパイプバインディングオブジェクトとすることができる。また、2つの一方向TCP接続を介して.NETファミリのプロトコルを実施するサービス間の、保護された、信頼性の高い通信に適した、.NETプロファイル全二重TCPバインディングも利用可能と考えられる。さらに、様々な待ち行列化トランスポートセキュリティを使用することのできるサービス間の、保護された、待ち行列化通信に適した、.NET待ち行列化メッセージングおよび保護された待ち行列化メッセージングバインディングも利用可能である。また、既存の待ち行列化アプリケーションと相互運用するアプリケーションをバインドするのに適した、待ち行列化統合バインディングも利用可能である。
他の一般的な種類の通信バインディングオブジェクトには、仲介HTTP、TCP、名前付きパイプバインディングなどの仲介バインディングが含まれ得る。これらの各バインディングは、それぞれ、HTTP、TCP、または名前付きパイプ上でリッスンするSOAP仲介をバインドするのに適する。
前述のように、バインディング要素を定義する例示的実施形態が与えられたとすると、可能なバインディングオブジェクトの数は何千にも及ぶ。したがって、有意なシナリオ分析および選別の後、上記の標準バインディングのリストは、よく使用される事例の圧倒的多数をカバーする簡潔で一意のバインディングオブジェクトのセットを定義する。しかしながら、やはり前述のように、このリストは、産業標準が変化するにつれて、必要に応じて、拡張可能であり、プラグ可能である。さらに、各バインディングオブジェクトごとに、子バインディング要素の構成ノブすべての厳密な和集合を取ることによって構成ノブを定義するのではなく、例示的実施形態は、最も必要とされる可能性の高い構成ノブを「再公開する」。
図3A〜Eに、前述の様々なグループおよび標準バインディングがどのようにしてウィザード型ユーザインターフェース(UI)で提示され得るかを示す。例えば、図3Aには、セキュリティバインディング305がある場合にその選択を可能にするバインディングウィザードユーザインターフェース300が示されている。同様に、図3Bには、様々なセキュリティバインディング要素310の選択を可能にするバインディングウィザードUI300が示されている。図3Cにおいて、バインディングウィザードUI300は、ユーザが複数のトランスポート315および符号化320から選択することを可能にする。前述のように、図3Dには、その他のバインディング330を用いて選択され得る任意選択のバインディング要素を含むその他グループ325を有するバインディングウィザード300が設けられている。最後に、図3Eには、前述の標準バインディング325のリストを有するバインディングウィザードUI300が提示されている。当然ながら、このUI300は、独自のバインディング340を作成するオプションを含み得る。
ある状況では、バインディング要素の1つまたは複数が必要とされ、または選択から制限され得ることに留意されたい。例えば、トランスポートと符号化両方のバインディングを選択する要件が必要とされ得る。しかしながら、選択されたトランスポートが特定の種類の符号化をサポートしないこともある。したがって、開発者は、サポートされる符号化の選択だけに制限され得る。また、特定のトランスポートその他のバインディング要素にデフォルトがあることもあり、その場合、開発者には、前に行われた選択に基づいて符号化その他のバインディング要素を選択するオプションが与えられない。したがって、本発明は、サービス開発者が利用可能な選択に関する様々な規則を実施するように構成される。しかしながら、定義され、実施され得る多数の要件または制限があることに留意されたい。したがって、上記の要件および制限の例は例示のために使用するものであり、本発明は、実施のための多くの規則を構成すること(または規則を構成しないこと)ができる。
また、本発明は、機能ステップおよび/または非機能動作を含む方法の観点からも説明され得る。以下は、本発明を実施するに際して実行され得るステップおよび/または動作の説明である。普通、機能ステップは、達成される結果の発明を記述するのに対し、非機能動作は、特定の結果を実現する、より具体的なアクションを記述する。機能ステップおよび/または非機能動作は、特定の順序で記述され、特許請求され得るが、本発明は、必ずしも、ステップおよび/または動作の特定の順序または組み合わせに限定されるとは限らない。さらに、特許請求の範囲の記述、および以下の図4〜6の流れ図の説明におけるステップおよび/または動作の使用は、そのような項目の所望の具体的使用を示すために使用される。
図4〜6に、本発明の様々な例示的実施形態の流れ図を示す。以下の図4〜6の説明は、時折、図1、2A〜Bおよび3A〜Eからの対応する要素に言及し、これらの図からの特定の要素への参照が行われ得るが、そのような要素は、例示のために使用するにすぎず、明示的に特許請求されない限り、本発明の範囲を限定し、または別の点で狭めるためのものではない。
図4に、開発者に、エンドポイント間でメッセージを転送するのに使用される実行時通信チャネルを作成する際に使用するバインディングオブジェクトを構築する、自動化された、使いやすいやり方を提供する方法400の例示的流れ図を示す。方法400は、選択のためにユーザに複数のバインディング要素を提示する動作405を含む。例えば、サービス開発用アプリケーション110は、UI112を使って、選択のためにユーザに複数のバインディング要素115を提示することができる。バインディング要素115は、クライアント130とサービス140またはサービスエンドポイント160の間でメッセージをトランスポートするための実行時通信チャネル165の通信態様を表す。
これらの通信態様には、少なくとも1つのトランスポート態様(UDP、HTTP、HTTPS、HTTPR、TCP、SMTP、メッセージングミドルウェア、メッセージングミドルウェア統合など)および1つの符号化態様(テキスト、バイナリ、SOAP、MTOMなど)が含まれるはずである。さらに、通信態様には、信頼性、セキュリティ、複合全二重、メッセージ形式、コンテキストフロー、トランザクションフローなども含まれ得る。また、バインディング要素は、前述のように、ユーザに複数のバインディング要素を提示するアプリケーション、またはメタデータ、チャネルファクトリおよびリスナーファクトリを構築する基礎をなすビルダを書き換る必要なく、バインディング要素が付加され、変更され、または除去され得るという点で、十分に拡張可能であり、カスタマイズ可能である。さらに、これらのバインディング要素は、例えば、信頼性グループ、セキュリティグループ、トランスポートグループ、符号化グループ、その他グループなどのグループとしてもユーザに提示され得る。個々のバインディング要素と同様に、グループも、各グループごとにバインディング要素が、付加され、除去され、または変更され、システムを中断させずにグループ自体が付加され、除去され、または変更され得るという点で、十分に拡張可能であり、プラグ可能である。
また、方法400は、複数のバインディング要素から1つまたは複数のバインディング要素を選択するユーザ入力を受け取る動作410も含む。したがって、サービス開発用アプリケーション110は、トランスポート態様および/または符号化態様に対応するバインディング要素115を選択するユーザ入力を受け取ることができる。また、方法400は、選択に基づいてメタデータ、チャネルファクトリおよびリスナーファクトリを作成する動作415も含む。より具体的には、サービスアプリケーション110(または前述のバインディングビルダ)は、バインディング要素115の選択を受け取ると、それらのバインディング要素を含むバインディングオブジェクトを記述するメタデータ125のコレクションを生成することができる。メタデータ125のコレクションは、実行時に通信態様を実施するプロトコルの抽象表現を提供する。このメタデータ125は、WSDL文書の一部とすることも、他の何らかの形とすることもできる。また、サービス開発用アプリケーションは、実行時にメタデータ125のコレクションを使って実行時通信チャネル165を生成するように構成され得る、チャネルファクトリ135を作成することもできる。さらに、サービス開発用アプリケーション110は、サービスエンドポイントでメッセージを処理するために実行時通信チャネルを受け入れるように構成されるリスナーファクトリ145を生成し、または作成するのにも使用され得る。複合全二重バインディング要素が選択されると、2つのトランスポートバインディング要素および/または2つの符号化バインディング要素が選択され得る。当然ながら、両方向に、1つのトランスポートおよび/または1つの符号化バインディング要素が選択され、前提とされ得る。
図5に、開発者に、実行時通信チャネルを作成するのに使用され得る、よく使用される、互換性のあるバインディングオブジェクトのリストを開発者に提示することによってバインディングオブジェクトを自動的に構築する簡潔なやり方を提供する方法500を示す。方法500は、ユーザに複数のバインディングオブジェクトを提示する動作505を含む。すなわち、図2Bに示すように、ユーザに、選択のための複数のバインディングオブジェクト104を含むUI102が提示され得る。複数のバインディングオブジェクト104は、それぞれ、互換性、および複数のバインディング要素を組み合わせる産業上の蓋然性に基づいて組み合わされる複数のバインディング要素115を含む。さらに、複数のバインディング要素115のそれぞれは、最終的に、クライアント130とサービスエンドポイント160の間でメッセージ170をトランスポートするための実行時通信チャネル165を作成するのに使用される複数の通信態様を表す。通信態様には、前述の、符号化の種類、トランスポートの種類、信頼性、セキュリティ、複合全二重などの通信態様が含まれ得る。
また、方法500は、複数のバインディングオブジェクトから1つのバインディングオブジェクトを選択するユーザ入力を受け取る動作510も含む。すなわち、UI102は、複数のバインディングオブジェクト104から1つのバインディングオブジェクトを選択するユーザ入力を受け取ることができる。また、方法500は、選択されたバインディングオブジェクトを記述するメタデータを自動的に作成する動作515も含む。すなわち、メタデータ125は、複数の標準バインディング104からの1つの標準バインディング104の選択に基づいて生成され得る。メタデータ内で記述されるバインディングオブジェクトは、実行時に通信態様を実施するプロトコルスタックの抽象表現を提供する。
また、実行時にメタデータ125を使って実行時通信チャネル165を生成するように構成されるチャネルファクトリ135も作成され得る。さらに、サービスエンドポイント160でメッセージを処理するために、実行時通信チャネル165を受け入れ、通信態様を多重分離するようにリスナーファクトリも構成され得る。バインディングオブジェクトは、基本プロファイルバインディング、WSプロファイルバインディング、WSプロファイル全二重バインディング、.NETプロファイルTCPバインディング、.NETプロファイル全二重TCPバインディング、.NETプロファイル名前付きパイプバインディング、.NETプロファイル待ち行列化バインディング、待ち行列化統合バインディング、仲介バインディングなどの内の1つまたは複数とすることができる。
図6に、バインディングオブジェクトを使って、エンドポイント間でメッセージをやりとりするのに使用されるプロトコルを実施する実行時通信チャネルを作成する方法600を示す。方法600は、バインディングオブジェクトを記述するメタデータにアクセスする動作605を含む。より具体的には、チャネルファクトリ135は、分散システム100においてエンドポイント間でメッセージがどのようにしてトランスポートされるかを表す複数のユーザ選択のバインディング要素を有するバインディングオブジェクトを含むメタデータ125にアクセスすることができる。また、方法600は、バインディングオブジェクトに基づいて、実行時通信チャネルを開始する動作610も含む。より具体的には、チャネルファクトリ135は、メタデータ125内のバインディングオブジェクトに基づいて、ユーザ選択のバインディング要素に対応する通信態様を含む実行時通信チャネル165を開始することができる。通信態様は、前述のように、少なくとも1つのトランスポート態様および1つの符号化態様を含むプロトコルにまとめられる。さらに、方法600は、実行時通信チャネルを使い、通信態様に従ってメッセージを転送する動作615も含む。より具体的には、クライアント130は、チャネルファクトリ135にチャネル180を要求した後、実行時通信チャネル165を参照するのに使用されるハンドル175を受け取ることができる。その後、メッセージ170が、通信態様またはプロトコルスタックに従って、サービス140に関連付けられたエンドポイント160に送られ、または転送され得る。
別の例示的実施形態は、メッセージ170をサービスエンドポイント160に送る前に、サービスエンドポイント160に対応するリスナー150が、実行時通信チャネル165を受け入れ、サービスエンドポイント160でメッセージを消費するためにメッセージから通信態様を多重分離するサービス通信チャネルを作成すると規定する。この特定の方法600には前述の別の態様も利用可能である。
また、本発明の範囲内の実施形態には、コンピュータ実行可能命令またはデータ構造を搬送し、または含むコンピュータ可読媒体も含まれる。そのようなコンピュータ可読媒体は、汎用または専用コンピュータによってアクセスされ得る任意の利用可能な媒体とすることができる。例をあげると、それだけに限らないが、そのようなコンピュータ可読媒体には、RAM、ROM、EEPROM、CD−ROMまたはその他の光ディスク記憶、磁気ディスク記憶またはその他の磁気記憶装置、あるいはコンピュータ実行可能命令またはデータ構造の形で所望のプログラムコード手段を搬送し、または格納するのに使用され、汎用または専用コンピュータによってアクセスされ得る他の任意の媒体が含まれ得る。情報がネットワークまたは別の通信接続(有線、無線、または有線と無線の組み合わせ)を介してコンピュータに転送され、または供給されると、コンピュータは、その接続を、正しくコンピュータ可読媒体とみなす。ゆえに、そのような任意の接続は正しくコンピュータ可読媒体と呼ばれる。また、上記の組み合わせもコンピュータ可読媒体の範囲内に含めるべきである。コンピュータ実行可能命令には、例えば、汎用コンピュータ、専用コンピュータ、または専用処理装置に、ある機能または機能群を実行させる命令およびデータが含まれる。
図7および以下の考察は、本発明が実施され得る適当なコンピューティング環境の簡単で、一般的な説明を提供するためのものである。必須ではないが、本発明を、ネットワーク環境でコンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的コンテキストで説明する。一般に、プログラムモジュールには、個々のタスクを実行し、または個々の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などが含まれる。コンピュータ実行可能命令、関連するデータ構造体、およびプログラムモジュールは、本明細書で開示される方法ステップを実行するプログラムコード手段の例を表す。そのような実行可能命令または関連するデータ構造体の個々のシーケンスは、そのようなステップで示す機能を実施する対応する動作の例を表す。
本発明が、パーソナルコンピュータ、ハンドヘルド機器、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含む、多様なコンピュータシステム構成を用いたネットワークコンピューティング環境で実施され得ることを、当分野の技術者は理解するであろう。また、本発明は、タスクが、通信ネットワークを介して(有線リンク、無線リンク、あるいは有線リンクまたは無線リンクの組み合わせによって)リンクされたローカルおよびリモートの処理装置によって実行される、分散コンピューティング環境でも実施され得る。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモート両方のメモリ記憶装置に位置し得る。
図7を参照すると、本発明を実施する例示的システムは、処理装置721、システムメモリ722、およびシステムメモリ722を含む様々なシステムコンポーネントを処理装置721に結合するシステムバス723を含む従来のコンピュータ720の形で、汎用コンピューティングデバイスを含む。システムバス723は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む数種類のバス構造のいずれでもよい。システムメモリは、読出し専用メモリ(ROM)724およびランダムアクセスメモリ(RAM)725を含む。基本入出力システム(BIOS)726は、始動時などにコンピュータ720の要素間での情報転送を支援する基本ルーチンを含み、ROM724に格納され得る。
また、コンピュータ720は、磁気ハードディスク739との間で読取りおよび書込みを行う磁気ハードディスクドライブ727、取り外し可能磁気ディスク729との間で読取りまたは書込みを行う磁気ディスクドライブ728、およびCD−ROMや他の光メディアなどの取り外し可能光ディスク731との間で読取りまたは書込みを行う光ディスクドライブ730を含み得る。磁気ハードディスクドライブ727、磁気ディスクドライブ728、および光ディスクドライブ730は、それぞれ、ハードディスクドライブインターフェース732、磁気ディスクドライブインターフェース733、および光ドライブインターフェース734によってシステムバス723に接続される。これらのドライブおよびそれに関連付けられたコンピュータ可読媒体は、コンピュータ720に、コンピュータ実行可能命令、データ構造、プログラムモジュールおよびその他のデータの不揮発性の記憶を提供する。本明細書で説明する例示的実施形態は磁気ハードディスク739、取り外し可能磁気ディスク729および取り外し可能光ディスク731を用いるが、磁気カセット、フラッシュメモリカード、ディジタル多用途ディスク、ベルヌーイカートリッジ、RAM、ROMなどを含めて、データを格納するための他の種類のコンピュータ可読媒体も使用され得る。
オペレーティングシステム735、1つまたは複数のアプリケーションプログラム736、その他のプログラムモジュール737、およびプログラムデータ738を含む、1つまたは複数のプログラムモジュールを含むプログラムコード手段は、ハードディスク739、磁気ディスク729、光ディスク731、ROM724またはRAM725に格納され得る。ユーザは、キーボード740、ポインティングデバイス742、または、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなど他の入力装置(図示せず)を介してコンピュータ720にコマンドおよび情報を入力することができる。上記その他の入力装置は、しばしば、システムバス723に結合されたシリアルポートインターフェース746を介して処理装置721に接続される。代替として、入力装置は、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など、他のインターフェースによっても接続され得る。また、モニタまたは別の表示装置も、ビデオアダプタ748などのインターフェースを介してシステムバス723に接続される。モニタ以外に、パーソナルコンピュータは、通常、スピーカやプリンタなど、他の周辺出力装置(図示せず)も含む。
コンピュータ720は、リモートコンピュータ749a、749bなど、1つまたは複数のリモートコンピュータへの論理接続を使用するネットワークで接続された環境で動作し得る。リモートコンピュータ749a、749bは、それぞれ、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたはその他一般のネットワークノードとすることができ、通常、コンピュータ720に関連して前述した要素の多くまたはすべてを含むが、図7には、メモリ記憶装置750a、750bおよびそれらに関連付けられたアプリケーションプログラム736a、736bだけが示されている。図7に示す論理接続には、本明細書で例として提示するにすぎない、ローカルエリアネットワーク(LAN)751および広域ネットワーク(WAN)752が含まれる。そのようなネットワーク環境は、オフィス規模または企業規模のコンピュータネットワーク、イントラネットおよびインターネットではごく一般的である。
LANネットワーク環境で使用されるとき、コンピュータ720はネットワークインターフェースまたはアダプタ753を介してローカルネットワーク751に接続される。WANネットワーク環境で使用されるとき、コンピュータ720は、モデム754、無線リンク、またはインターネットなど、広域ネットワーク752を介して通信を確立する他の手段を含み得る。モデム754は、内蔵でも外付けでもよく、シリアルポートインターフェース746を介してシステムバス723に接続される。ネットワークで接続された環境では、コンピュータ720に関連して示すプログラムモジュール、またはその一部は、リモートメモリ記憶装置にも格納され得る。図示のネットワーク接続は例であり、広域ネットワーク752を介して通信を確立する他の手段も使用され得ることが理解されるであろう。
本発明は、その精神および本質的特性を逸脱することなく、他の特定の形でも実施され得る。前述の実施形態は、あらゆる点において、例示にすぎず、限定的ではないとみなされるべきである。したがって、本発明の範囲は、前述の説明によってではなく、添付の特許請求の範囲によって示される。特許請求の範囲と等価の意味および範囲内に含まれるすべての変更は、その範囲内に包含されるべきものである。
例示的実施形態による、メタデータを利用してサービスにメッセージを転送するための実行時通信チャネルを構築する分散システムを示す図である。 例示的実施形態による、グループ化されるバインディング要素の一例を示す図である。 標準バインディングを選択するためのユーザインターフェースの一例を示す図である。 本発明の例示的実施形態による、使用され得る様々なウィザード型ユーザインターフェースを示す図である。 本発明の例示的実施形態による、使用され得る様々なウィザード型ユーザインターフェースを示す図である。 本発明の例示的実施形態による、使用され得る様々なウィザード型ユーザインターフェースを示す図である。 本発明の例示的実施形態による、使用され得る様々なウィザード型ユーザインターフェースを示す図である。 本発明の例示的実施形態による、使用され得る様々なウィザード型ユーザインターフェースを示す図である。 本発明の例示的実施形態による、開発者に、バインディングオブジェクトを構築する、自動化された、使いやすいやり方を提供する方法を示す流れ図である。 本発明の例示的実施形態による、開発者に、よく使用される、互換性のあるバインディングオブジェクトのリストを提供する方法を示す流れ図である。 例示的実施形態による、バインディングオブジェクトを使って実行時通信チャネルを作成する方法を示す流れ図である。 本発明の適当な動作環境を提供する例示的システムを示す図である。
符号の説明
105 ストア
110 サービス開発側
115 バインディング要素
120 バインディング記述
125 メタデータ
130 クライアント
135 チャネルファクトリ
140 サービス
145 リスナーファクトリ
150 リスナー
160 エンドポイント
165 実行時通信チャネル
170 メッセージ
175 ハンドル
180 要求
721 処理装置
722 システムメモリ
723 システムバス
732 ハードディスクドライブインターフェース
733 磁気ディスクドライブインターフェース
734 光ドライブインターフェース
735 オペレーティングシステム
736a,b アプリケーションプログラム
737 その他のプログラムモジュール
738 プログラムデータ
740 キーボード
746 シリアルポートインターフェース
747 モニタ
748 ビデオアダプタ
749a、b リモートコンピュータ
751 ローカルエリアネットワーク
752 広域ネットワーク
753 ネットワークインターフェース
754 モデム

Claims (20)

  1. コンピューティングシステムにおいて、開発者に、エンドポイント間でメッセージを転送するときに前記メッセージに通信態様を適用するための実行時通信チャネルを作成する際に使用するバインディングオブジェクトを構築する、自動化された、使いやすいやり方を提供する方法であって、
    選択のためにユーザに、最終的に、クライアントとサービスエンドポイントの間でメッセージをトランスポートするための実行時通信チャネルを作成するのに使用される通信態様を表す複数のバインディング要素を提示する動作と、
    前記複数のバインディング要素から1つまたは複数のバインディング要素を選択するユーザ入力を受け取る動作と、
    前記選択に基づき、
    前記1つまたは複数のバインディング要素のコレクションであり、実行時に前記通信態様を実施するプロトコルスタックの抽象表現を提供するバインディングオブジェクトを記述するメタデータのコレクションと、
    実行時に前記メタデータのコレクションを使って前記実行時通信チャネルを生成するように構成されるチャネルファクトリと、
    前記サービスエンドポイントで前記メッセージを処理するために、前記実行時通信チャネルを受け入れ、前記通信態様を多重分離するように構成されるリスナーファクトリと
    を自動的に作成する動作と
    を備えることを特徴とする方法。
  2. それぞれ、トランスポート態様および符号化態様に対応するトランスポートバインディング要素および符号化バインディング要素が選択され、前記トランスポート態様は、UDP、HTTP、HTTPS、HTTPR、名前付きパイプ、TCP、SMTP、メッセージ待ち行列化、メッセージ待ち行列化統合の内の1つであり、前記符号化態様は、テキスト、バイナリ、MTOMの内の1つであることを特徴とする請求項1に記載の方法。
  3. 前記メタデータのコレクションはWSDL文書の一部であることを特徴とする請求項1に記載の方法。
  4. 前記複数のバインディング要素は、トランスポート態様、符号化態様、信頼性態様、セキュリティ態様、複合全二重態様、メッセージ形式態様、コンテキストフロー態様、およびトランザクションフロー態様の内の1つまたは複数に対応することを特徴とする請求項1に記載の方法。
  5. 前記バインディング要素は、バインディング要素が、前記ユーザに前記複数のバインディング要素を提示するアプリケーションを書き換る必要なく付加され、変更され、または除去され得るという点で十分に拡張可能であり、カスタマイズ可能であることを特徴とする請求項1に記載の方法。
  6. 前記バインディング要素は、信頼性グループ、セキュリティグループ、トランスポートグループ、符号化グループおよびその他のグループというグループとして前記ユーザに提示されることを特徴とする請求項1に記載の方法。
  7. 前記グループは、バインディング要素が各グループごとに付加され、除去され、または変更され得ると共に、前記グループも付加され、除去され、または変更され得るという点で十分に拡張可能であり、プラグ可能であることを特徴とする請求項6に記載の方法。
  8. 複合全二重バインディング要素が選択され、2つのトランスポートバインディング要素が選択されることを特徴とする請求項1に記載の方法。
  9. コンピューティングシステムにおいて、開発者に、実行時通信チャネルを作成する際に使用され得る、よく使用される、互換性のあるバインディングオブジェクトのリストを前記開発者に提示することによってバインディングオブジェクトを自動的に構築する簡潔なやり方を提供する方法であって、
    選択のためにユーザに、互換性、およびバインディング要素を組み合わせる産業上の蓋然性に基づいて組み合わされる複数のバインディング要素をそれぞれが含む複数のバインディングオブジェクトを提示する動作であって、前記複数のバインディングオブジェクトのそれぞれが、最終的に、クライアントとサービスエンドポイントの間でメッセージをトランスポートするための実行時通信チャネルを作成するのに使用される複数の通信態様を表す動作と、
    前記複数のバインディングオブジェクトから1つのバインディングオブジェクトを選択するユーザ入力を受け取る動作と、
    実行時に前記通信態様を実施する前記実行時通信チャネルの抽象表現を提供する、前記選択されたバインディングオブジェクトを記述するメタデータのコレクションを自動的に作成する動作と
    を備えることを特徴とする方法。
  10. 前記選択に基づき、
    実行時に前記メタデータのコレクションを使って前記実行時通信チャネルを生成するように構成されるチャネルファクトリと、
    前記サービスエンドポイントで前記メッセージを処理するために、前記実行時通信チャネルを受け入れ、前記通信態様を多重分離するように構成されるリスナーファクトリと
    を自動的に作成する動作
    をさらに備えることを特徴とする請求項9に記載の方法。
  11. 前記複数のバインディングオブジェクトの1つまたは複数は、それぞれ、トランスポート態様および符号化態様に対応するトランスポートバインディング要素および符号化バインディング要素を含み、前記トランスポート態様は、UDP、HTTP、HTTPS、HTTPR、名前付きパイプ、TCP、SMTP、メッセージ待ち行列化、メッセージ待ち行列化統合の内の1つであり、前記符号化態様は、テキスト、バイナリ、MTOMの内の1つであることを特徴とする請求項10に記載の方法。
  12. 前記メタデータのコレクションはWSDL文書の一部であることを特徴とする請求項10に記載の方法。
  13. 前記複数のバインディング要素は、トランスポート態様、符号化態様、信頼性態様、セキュリティ態様、複合全二重態様、メッセージ形式態様、コンテキストフロー態様、およびトランザクションフロー態様の内の1つまたは複数に対応することを特徴とする請求項10に記載の方法。
  14. 前記バインディングオブジェクトは、バインディングオブジェクトが、前記ユーザに前記複数のバインディングオブジェクトを提示するアプリケーションを書き換る必要なく、付加され、変更され、または除去され得るという点で十分に拡張可能であり、カスタマイズ可能であることを特徴とする請求項10に記載の方法。
  15. 前記バインディングオブジェクトは、基本プロファイルバインディング、WSプロファイルバインディング、WSプロファイル全二重バインディング、.NETプロファイルTCPバインディング、.NETプロファイル全二重TCPバインディング、.NETプロファイル名前付きパイプバインディング、.NETプロファイル待ち行列化バインディング、待ち行列化統合バインディング、または仲介バインディングの内の1つまたは複数から選択されることを特徴とする請求項10に記載の方法。
  16. クライアントコンピューティングシステムにおいて、バインディングオブジェクトを使い、プロトコルスタックの通信態様に従ってエンドポイント間でメッセージをやりとりするために前記プロトコルスタックを実施する実行時通信チャネルを作成する方法であって、
    最終的に、クライアントとサービスエンドポイントの間でメッセージをトランスポートするための実行時通信チャネルを作成するのに使用される1つまたは複数の通信態様を表す、1つまたは複数のユーザ選択のバインディング要素を含むバインディングオブジェクトを記述するメタデータにアクセスする動作と、
    前記メタデータに基づき、前記1つまたは複数のユーザ選択のバインディング要素に対応する前記1つまたは複数の通信態様を実施するように構成される1つまたは複数のチャネルコンポーネントを含む前記実行時通信チャネルを開始する動作と、
    前記実行時通信チャネルを使い、前記サービスに関連付けられたエンドポイントに、前記1つまたは複数の通信態様に従って前記メッセージを転送する動作と
    を備えることを特徴とする方法。
  17. 前記サービスエンドポイントに前記メッセージを送る前に、前記サービス外部ポートに対応するリスナーが、前記サービスエンドポイントで前記メッセージを消費するために、前記メッセージから前記通信チャネルを受け入れ、前記1つまたは複数の通信態様を多重分離することを特徴とする請求項16に記載の方法。
  18. 前記1つまたは複数のバインディング要素には、それぞれ、トランスポート態様および符号化態様に対応するトランスポートバインディング要素および符号化バインディング要素が含まれ、前記トランスポート態様は、UDP、HTTP、HTTPS、HTTPR、名前付きパイプ、TCP、SMTP、メッセージ待ち行列化、メッセージ待ち行列化統合の内の1つであり、前記符号化態様は、テキスト、バイナリ、MTOMの内の1つであることを特徴とする請求項16に記載の方法。
  19. 前記メタデータはWSDL文書の一部であることを特徴とする請求項16に記載の方法。
  20. 前記1つまたは複数のバインディング要素は、トランスポート態様、符号化態様、信頼性態様、セキュリティ態様、複合全二重態様、メッセージ形式態様、コンテキストフロー態様、およびトランザクションフロー態様の内の1つまたは複数に対応することを特徴とする請求項16に記載の方法。
JP2006015457A 2005-02-01 2006-01-24 通信バインディングオブジェクトを構築し、使用するシステムおよび方法 Pending JP2006216035A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/048,346 US7921216B2 (en) 2005-02-01 2005-02-01 System and method for building and using communication binding objects

Publications (1)

Publication Number Publication Date
JP2006216035A true JP2006216035A (ja) 2006-08-17

Family

ID=36375557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006015457A Pending JP2006216035A (ja) 2005-02-01 2006-01-24 通信バインディングオブジェクトを構築し、使用するシステムおよび方法

Country Status (10)

Country Link
US (1) US7921216B2 (ja)
EP (1) EP1686476A3 (ja)
JP (1) JP2006216035A (ja)
KR (1) KR101159357B1 (ja)
CN (1) CN1816052A (ja)
AU (1) AU2005242148A1 (ja)
BR (1) BRPI0600207A (ja)
CA (1) CA2531928A1 (ja)
MX (1) MXPA06000328A (ja)
RU (1) RU2395112C2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069181B1 (en) * 2006-04-18 2011-11-29 International Business Machines Corporation Autodiscovery of business services
US7792921B2 (en) * 2007-09-24 2010-09-07 Microsoft Corporation Metadata endpoint for a generic service
US8739180B2 (en) * 2008-01-25 2014-05-27 International Business Machines Corporation Processing of MTOM messages
US8763008B2 (en) * 2008-09-30 2014-06-24 Ebay Inc. System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture
US8135785B2 (en) * 2008-09-30 2012-03-13 Ebay Inc. System and method for processing messages using pluggable protocol processors in a service-oriented pipeline architecture
US8806506B2 (en) * 2008-09-30 2014-08-12 Ebay Inc. System and method for processing messages using a common interface platform supporting multiple pluggable data formats in a service-oriented pipeline architecture
US7835309B2 (en) * 2008-12-16 2010-11-16 Microsoft Corporation Multiplexed communication for duplex applications
US8341280B2 (en) 2008-12-30 2012-12-25 Ebay Inc. Request and response decoupling via pluggable transports in a service oriented pipeline architecture for a request response message exchange pattern
US8166200B2 (en) * 2009-03-30 2012-04-24 Microsoft Corporation Smart routing
US20110106712A1 (en) * 2009-11-02 2011-05-05 Microsoft Corporation Cost-Aware Service Aggregation
US8434097B2 (en) * 2009-12-30 2013-04-30 Sybase, Inc. Dynamic data binding for MBOs for container based application
US8514749B2 (en) * 2010-03-10 2013-08-20 Microsoft Corporation Routing requests for duplex applications
CN102469035B (zh) * 2010-11-05 2016-01-20 腾讯科技(深圳)有限公司 跨进程通信的方法和装置
US20110321022A1 (en) * 2010-06-25 2011-12-29 Mitel Networks Corporation Code generation through metadata programming for mobile devices and web platforms to ease access to web services
US9081893B2 (en) 2011-02-18 2015-07-14 Microsoft Technology Licensing, Llc Dynamic lazy type system
RU2481626C2 (ru) * 2011-05-27 2013-05-10 Нокиа Корпорейшн Аннотирование контента с помощью контекстных метаданных
US9614895B2 (en) * 2012-04-25 2017-04-04 Hewlett Packard Enterprise Development Lp File transfer using XML
US9292342B2 (en) * 2012-12-26 2016-03-22 Microsoft Technology Licensing, Llc Schedule based execution with extensible continuation based actions
US9727445B2 (en) 2013-11-09 2017-08-08 Microsoft Technology Licensing, Llc. Debugging a web application locally during development
US9832291B2 (en) * 2015-01-12 2017-11-28 Cisco Technology, Inc. Auto-configurable transport stack
US9710361B2 (en) * 2015-02-25 2017-07-18 International Business Machines Corporation Smart programming playgrounds
CN113312031B (zh) * 2021-06-23 2023-09-15 中国航空无线电电子研究所 一种软件通信体系结构的命名服务接口
CN117749615A (zh) * 2024-02-19 2024-03-22 成都九洲电子信息系统股份有限公司 基于对象组合化的采管控通信链路构建方法、系统及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091449A (ja) * 1996-07-03 1998-04-10 Sun Microsyst Inc 分散オブジェクト・ネットワーク上で分散オブジェクトを利用してアプリケーションプログラムを構成するための視覚的組立ツール
US20030204645A1 (en) * 2002-04-09 2003-10-30 Sun Microsystems, Inc. Method, system, and articles of manufacture for providing a servlet container based web service endpoint
JP2004295898A (ja) * 2003-03-26 2004-10-21 Microsoft Corp カスタマイズ可能な通信チャネルおよびプログラミングモデルを通じたメッセージの送受信

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280481A (en) * 1991-09-20 1994-01-18 Extension Technology Corp. Local area network transmission emulator
US5903754A (en) * 1994-06-21 1999-05-11 Microsoft Corporation Dynamic layered protocol stack
US6044409A (en) * 1996-06-26 2000-03-28 Sun Microsystems, Inc. Framework for marshaling and unmarshaling argument object references
US6044224A (en) * 1996-06-26 2000-03-28 Sun Microsystems, Inc. Mechanism for dynamically associating a service dependent representation with objects at run time
US6032199A (en) * 1996-06-26 2000-02-29 Sun Microsystems, Inc. Transport independent invocation and servant interfaces that permit both typecode interpreted and compiled marshaling
US5809507A (en) * 1996-07-01 1998-09-15 Sun Microsystems, Inc. Method and apparatus for storing persistent objects on a distributed object network using a marshaling framework
US5920868A (en) * 1996-07-03 1999-07-06 Sun Microsystems, Inc. Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system
US5949998A (en) * 1996-07-03 1999-09-07 Sun Microsystems, Inc. Filtering an object interface definition to determine services needed and provided
US5860004A (en) * 1996-07-03 1999-01-12 Sun Microsystems, Inc. Code generator for applications in distributed object systems
US6230161B1 (en) * 1998-07-31 2001-05-08 International Business Machines Corporation Dynamic expression editor
EP1128602B1 (de) * 2000-02-23 2006-10-04 Tektronix Berlin GmbH & Co. KG Vorrichtung zum Aufbau eines Protokoll-Stacks und zugehöriges Verfahren
GB0011954D0 (en) * 2000-05-17 2000-07-05 Univ Surrey Protocol stacks
US6934756B2 (en) * 2000-11-01 2005-08-23 International Business Machines Corporation Conversational networking via transport, coding and control conversational protocols
WO2003091917A1 (en) * 2002-04-26 2003-11-06 Research In Motion Limited System and method for selection of messaging settings
US7188155B2 (en) 2002-12-17 2007-03-06 International Business Machines Corporation Apparatus and method for selecting a web service in response to a request from a client device
US7313687B2 (en) * 2003-01-10 2007-12-25 Microsoft Corporation Establishing a secure context at an electronic communications end-point
GB0308522D0 (en) * 2003-04-12 2003-05-21 Ibm Access to web services
GB0308523D0 (en) 2003-04-12 2003-05-21 Ibm Access to web services
US7631314B2 (en) * 2003-08-26 2009-12-08 International Business Machines Corporation Method and system for dynamically associating type information and creating and processing meta-data in a service oriented architecture
US7489707B2 (en) * 2003-10-16 2009-02-10 National University Of Singapore System and method for a dynamic protocol framework
US7487396B2 (en) * 2004-10-15 2009-02-03 Broadcom Corporation System and method to locate and correct software errors within a protocol stack for wireless devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091449A (ja) * 1996-07-03 1998-04-10 Sun Microsyst Inc 分散オブジェクト・ネットワーク上で分散オブジェクトを利用してアプリケーションプログラムを構成するための視覚的組立ツール
US20030204645A1 (en) * 2002-04-09 2003-10-30 Sun Microsystems, Inc. Method, system, and articles of manufacture for providing a servlet container based web service endpoint
JP2004295898A (ja) * 2003-03-26 2004-10-21 Microsoft Corp カスタマイズ可能な通信チャネルおよびプログラミングモデルを通じたメッセージの送受信

Also Published As

Publication number Publication date
CN1816052A (zh) 2006-08-09
KR101159357B1 (ko) 2012-06-25
EP1686476A3 (en) 2007-09-12
CA2531928A1 (en) 2006-07-02
BRPI0600207A (pt) 2006-09-19
EP1686476A2 (en) 2006-08-02
US20060174016A1 (en) 2006-08-03
MXPA06000328A (es) 2006-07-31
RU2005141126A (ru) 2007-07-20
US7921216B2 (en) 2011-04-05
AU2005242148A1 (en) 2006-08-17
KR20060088472A (ko) 2006-08-04
RU2395112C2 (ru) 2010-07-20

Similar Documents

Publication Publication Date Title
JP2006216035A (ja) 通信バインディングオブジェクトを構築し、使用するシステムおよび方法
JP4808558B2 (ja) 連携シナリオ作成支援システム及びその方法並びにプログラム
Daigneau Service Design Patterns: fundamental design solutions for SOAP/WSDL and restful Web Services
KR101159364B1 (ko) 분산형 애플리케이션의 객체 지향 표현과 서비스 지향 표현 간의 매핑
KR101183323B1 (ko) 통신 채널 모델
Ådahl Shared resource for collaborative editing over a wireless network
US8224975B1 (en) Web service initiation protocol for multimedia and voice communication over internet protocol
KR20070050670A (ko) 웹 서비스 제공 장치, 웹 서비스 요청 장치, 웹 서비스제공 방법 및 웹 서비스 요청 방법
US20200007659A1 (en) System and method for implementing augmented object members for remote procedure call
US7165118B2 (en) Layered message processing model
US7801999B2 (en) Binding heterogeneous transports to a message contract
Zhang et al. A service-oriented distributed framework-WCF
Giretti Understanding the gRPC Specification
Krejci Building NETCONF-enabled network management systems with libnetconf
Rose BEEP: the definitive guide
Fernando Designing Microservices Platforms with NATS: A modern approach to designing and implementing scalable microservices platforms with NATS messaging
Akilli Analysis of transformation capabilities between communication types of cloud application components
JP2007299319A (ja) 情報処理装置及びプロセス間通信方法
JP2009135583A (ja) クライアント装置、アプリケーションプログラム
Peiris et al. Pro WCF
Bosanac et al. ActiveMQ in Action
Crane et al. Essential Windows Communication Foundation (WCF)
Ngargoto Modeling and Simulation as a Service
Webber et al. Realizing Service-Oriented Architectures with Web Services
Pathak Implementing SOA Interoperability

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110405

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110610