JP4261156B2 - 組み立て可能なメッセージプロトコル - Google Patents

組み立て可能なメッセージプロトコル Download PDF

Info

Publication number
JP4261156B2
JP4261156B2 JP2002302248A JP2002302248A JP4261156B2 JP 4261156 B2 JP4261156 B2 JP 4261156B2 JP 2002302248 A JP2002302248 A JP 2002302248A JP 2002302248 A JP2002302248 A JP 2002302248A JP 4261156 B2 JP4261156 B2 JP 4261156B2
Authority
JP
Japan
Prior art keywords
message
code
code module
messaging service
modules
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.)
Expired - Fee Related
Application number
JP2002302248A
Other languages
English (en)
Other versions
JP2003223376A (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
Priority claimed from US09/983,555 external-priority patent/US20030074482A1/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003223376A publication Critical patent/JP2003223376A/ja
Application granted granted Critical
Publication of JP4261156B2 publication Critical patent/JP4261156B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • H04L45/566Routing instructions carried by the data packet, e.g. active networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

【0001】
本出願は、2001年10月16日出願の米国仮出願第60/329,796号、2001年10月19日出願の米国仮出願第60/346,370号および2001年10月24日出願の米国仮出願第09/938,555号の各出願を基礎とする優先権を主張する。これらの各々の発明は、参照により本発明に組み込まれている。
【0002】
【発明の属する技術分野】
本発明は、コンピュータメッセージングプロトコルに関する。特に、本発明は、各メッセージを伝送するための特定のプロトコルは、他の装置にメッセージを送るユーザ及び/又はアプリケーションによって要求されるサービスのセットに基づいた、プロトコル形成ブロックから組み立てられるネットワークメッセージングプロトコルに関するものである。
【0003】
【従来の技術】
コンピュータネットワークは、典型的には、ある機械から他へ情報のパケットを送ることにより通信を行う。異なるハードウェア及び/又はソフトウェアのプラットフォームを持つコンピュータは、予め定めたメッセージプロトコルを用いて通信することにより、他の機械からのメッセージを理解することができる。メッセージは、典型的には、予め定められたプロトコルを用いたメッセージパケットの形式で送られる。ある機械から他へのメッセージは、メッセージのサイズ及びメッセージを配信するために用いられるメッセージプロトコルに応じて、1つ又は2つ以上のメッセージパケットからなることができる。
【0004】
各プロトコルが予め定められたサービスのセットを提供すること、及びネットワークアプリケーションがプロトコルを選択して、そのアプリケーションが必要とするサービスのセットに基づいて使用できるようにすることが、ネットワークメッセージングプロトコルの典型的な形態である。例えば、各メッセージが受信されることをあるネットワークアプリケーションが保証し、および、権限のないユーザがそのメッセージの内容を見ることができないことをも保証する必要がある場合は、そのネットワークアプリケーションのプログラマ又は他のユーザは、信頼性とセキュリティの双方を提供するネットワークメッセージングプロトコルを選択しなければならない。
【0005】
シンプルメールトランスファープロトコル(SMTP)のような、既知のメッセージングプロトコルは、予め定められたサービスのセットのみを提供する。例えば、SMTPは、信頼できず、保証がないポイントツーポイントのマルチトランスポートのアプリケーション−レベルプロトコルである。すなわち、SMTPがアプリケーションのレベルにおいて信頼性がないということは、各メッセージが受領者に受信されることを保証するための機構が組み込まれていないという意味である(すなわち、そのメッセージは廃棄されるかもしれないが、送信部はそれを知ることはないだろう)。配信を保証するために、信頼性のあるトランスポートエレメントが別途追加されなければならない(例えば、メッセージ受信処理を追加してそのプロトコルを拡張する)。SMTPは、別途セキュリティが充たされない限り安全ではない。プロトコルを拡張するか(例えば、S/MIME)又は、トランスポートセキュリティを用いるか(例えば、IPsec)のいずれかにより、セキュリティをSMTPに追加することができる。SMTPプロトコルは、ポイントツーポイントである。アプリケーションはストアアンドフォワード及び経路設定機能を実施することができる。すなわち、あるノードにおいてメッセージが受信されたとき、そのメッセージはメモリ(例えば、RAM、ハードディスク等)に書きこまれ、そして次のノードが使用可能であれば次のノードに転送するということである。SMTPは、TCP/IPのようなマルチプルネットワークトランスポートプロトコルと共同して使用してもよい。
【0006】
【発明が解決しようとする課題】
選択されたプロトコルが、アプリケーションに必要とされるサービスを提供しなければ、第2のプロトコルが、追加的に、又は、代替的に使用される必要があるかもしれないし、あるいは、選択されたプロトコルを、要求されたサービスを実行するように拡張しなければならない。また、そのプロトコルがアプリケーションが必要とするよりも多くのサービスを提供するときは、余分なサービスを除去しあるいはフィルタアウトする手段はない。これにより、配信時間を低下させ、CPU時間及び/又は電力を増大させ、不必要に各メッセージパケット又は伝送のサイズを増大させ、及びアプリケーション又はメッセージを交換するウェブサービスの必要性に適切でないエラー条件を招くおそれがある。
【0007】
従って、要求するユーザ又はアプリケーションプログラムが必要とするところに基づいて、サービスを組み立てるネットワークメッセージングプロトコルを提供することはこの種の技術における進歩であろう。さらに、メッセージごとに動的にメッセージングプロトコルを組み立てることができることも本技術分野における進歩であろう。
【0008】
【課題を解決するための手段】
本発明は、一組のメッセージングサービスをプロトコレット(protocolette)と呼ばれる組み立て可能なプロトコルのサービスモジュールに分解することにより生成される組み立て可能なメッセージプロトコルとして実施することができる。すなわち、別個のメッセージングサービス(例えば、信頼性、セキュリティなど)が各々プロトコレットにおいて実施されてもよいということである。この各プロトコレットは他のプロトコレットと組み合わされ、アプリケーションプログラム又はユーザが要求するサービスを提供する一意的なメッセージングプロトコルを生成することができる。このようにして、一意的なメッセージングプロトコルが、各ネットワークメッセージのために生成されるので、ネットワークアプリケーション又はユーザが要求する資源のみが使用されるようにできる。
【0009】
本発明の第1の形態は、組み立て可能なメッセージングプロトコルを用いてメッセージを伝送する方法である。ルータは、メッセージについての選択された配信特性の組を示す特性情報を含んだメッセージデータを受信する。このルータは、受信した特性情報に基づきコードモジュールを選択し、及び選択されたコードモジュールを用いてメッセージプロトコルを組み立てる。ルータは、構築されたメッセージプロトコルを用いてメッセージを送信する。
【0010】
本発明の他の形態は、メッセージを伝送するためのデータ処理システムである。このデータ処理システムは、それぞれメッセージングサービスを提供する複数のコードモジュール、所望の通信特性を表した入力属性に基づき少なくとも一つのコードモジュールを動的に選択するモジュールセレクタ、及び選択されたコードモジュールを含むメッセージングプロトコルを用いてメッセージを送信するためのメッセージ送信部を有する。
【0011】
本発明の他の形態は、それぞれメッセージサービス、及びプロセッサにより実行されるときに、データ処理システムにより1セットのステップを実行させるコンピュータ読み取り可能な命令を含むコンピュータ読み取り可能な記録媒体である。このコードモジュールは、各々、メッセージングサービスを提供する。コードモジュールは、所望の通信特性を表した入力属性に基づき少なくとも一つのコードモジュールを選択し、及び選択されたコードモジュールを備えたメッセージングプロトコルを用いてメッセージは送信される。
【0012】
本発明のある実施例では、各コードモジュールは、シンプルオブジェクトアクセスプロトコル(SOAP)拡張版を含む。他の実施例では、各コードモジュールはJava(登録商標)Beanを含む。
【0013】
ある実施例では、所望の通信特性を実行するため、各コードモジュールが選択される。
【0014】
上述した目的を達成するために、請求項1に記載の発明は、送信部から1つまたはそれ以上の受領者へメッセージを伝送するためのデータ処理システムにおいて、動的に組み立てられるメッセージングプロトコルに基づいてメッセージを伝送する方法であって、(1)ルータによって、メッセージペイロードおよびメッセージペイロードについての1つまたはそれ以上のメッセージングサービス属性を含むメッセージデータをメッセージ送信部から受信するステップと、(2)各々が、少なくとも1つのメッセージングサービス属性に対応するメッセージングサービスを、対応するメッセージングサービスを提供するプロトコルに合うヘッダを生成することによって提供するコードモジュールのデータベースを検索し、メッセージングサービス属性に基づいて1つまたはそれ以上のコードモジュールを選択するステップと、(3)メッセージペイロードに、選択された1つまたはそれ以上のコードモジュールの各々によって提供されるメッセージングサービスに対応する前記メッセージングサービス属性に基づき各ヘッダを付すことによって、メッセージを組み立てるステップと、(4)付されたヘッダに基づいて、メッセージを、受領者に配信するため送信するステップとを備えたことを特徴とする。
【0015】
請求項2に記載の発明は、請求項1に記載のメッセージ伝送方法において、各コードモジュールは、選択された属性の少なくとも一と関連したサービスを提供することを特徴とする。
【0016】
請求項3に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(2)及び(3)において、各選択されたコードモジュールは、Java(登録商標)ベースの言語において記述されたソースコードを備えたことを特徴とする。
【0017】
請求項4に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(2)及び(3)において、各選択されたコードモジュールは、データリンクライブラリを備えたことを特徴とする。
【0018】
請求項5に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(2)において、前記モジュールは、選択された属性を実施するように選択されたことを特徴とする。
【0019】
請求項6に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(2)において、選択されたコードモジュールは、前記メッセージがパケット又はストリームのいずれを用いて送信されるかを表示するセッションコードモジュールを備えたことを特徴とする。
【0020】
請求項7に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(2)において、選択されたコードモジュールは、パケットが受領者により受信されることを保証する信頼性コードモジュールを備えたことを特徴とする。
【0021】
請求項8に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(2)において、選択されたコードモジュールは、メッセージが他のノードに転送される場合、メッセージが転送された機械の送信ノードを通知するリフェラルコードモジュールを備えたことを特徴とする。
【0022】
請求項9に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(2)において、選択されたコードモジュールは、プログレッシブディスカバリを実施するリフェラルコードモジュールを備えたことを特徴とする。
【0023】
請求項10に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(2)において、選択されたコードモジュールは、メッセージが送信部から受領者に進められるようにケイパビリティディスカバリを実施するケイパビリティコードモジュールを備えたことを特徴とする。
【0024】
請求項11に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(2)において、選択されたコードモジュールは、インテグリティ、暗号化又は認証のうち少なくとも一を実施するセキュリティコードモジュールを備えたことを特徴とする。
【0025】
請求項12に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(2)において、選択されたコードモジュールは、メッセージトランスポートプロトコルを指定するトランスポートコードモジュールを備えたことを特徴とする。
【0026】
請求項13に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(2)において、選択されたコードモジュールは、メッセージがテキスト又はバイナリのいずれで送信されるかを指定するバインディングコードモジュールを備えたことを特徴とする。
【0027】
請求項14に記載の発明は、請求項4に記載のメッセージ伝送方法において、データリンクライブラリはURT技術を備えたことを特徴とする。
【0028】
請求項15に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(1)は、コードジェネレータからメッセージを受信するステップを備えたことを特徴とする。
【0029】
請求項16に記載の発明は、請求項1に記載のメッセージ伝送方法のステップ(1)において、受信されたメッセージデータは、ユーザ入力に基づくことを特徴とする。
【0030】
請求項17に記載の発明は、送信部から1つまたはそれ以上の受領者へメッセージを送信するためのデータ処理システムであって、メッセージングサービスをそれぞれ提供する複数のコードモジュールと、各々が、少なくとも1つのメッセージングサービス属性に対応するメッセージングサービスを、対応するメッセージングサービスを提供するプロトコルに合うヘッダを生成することによって提供するコードモジュールのデータベースを検索し、メッセージングサービス属性に基づいて1つまたはそれ以上のコードモジュールを動的に選択するモジュールセレクタと、メッセージペイロードに、選択された1つまたはそれ以上のコードモジュールの各々によって提供されるメッセージングサービスに対応する前記メッセージングサービス属性に基づき各ヘッダを付すことによって、メッセージを組み立て、付されたヘッダに基づいて、メッセージを、受領者に配信するため選択されたコードモジュールを備えるメッセージングプロトコルを用いてメッセージを送信するメッセージ送信部とを備えたことを特徴とする。
【0031】
請求項18に記載の発明は、請求項17に記載のデータ処理システムにおいて、各選択されたコードモジュールは、Java(登録商標)ベースの言語において記述されたソースコードを備えたことを特徴とする。
【0032】
請求項19に記載の発明は、請求項17に記載のデータ処理システムにおいて、各選択されたコードモジュールは、データリンクライブラリを備えたことを特徴とする。
【0033】
請求項20に記載の発明は、請求項17に記載のデータ処理システムにおいて、モジュールセレクタは、所与の通信特性を実施するコードモジュールを選択することを特徴とする。
【0034】
請求項21に記載の発明は、請求項17に記載のデータ処理システムにおいて、少なくともひとつのコードモジュールは、メッセージがパケット又はストリームのいずれを用いて送信されるかを表示するセッションコードモジュールを備えたことを特徴とする。
【0035】
請求項22に記載の発明は、請求項17に記載のデータ処理システムにおいて、少なくともひとつのコードモジュールは、パケットが受領者により受信されることを保証する信頼性コードモジュールを備えたことを特徴とする。
【0036】
請求項23に記載の発明は、請求項17に記載のデータ処理システムにおいて、少なくともひとつのコードモジュールは、メッセージが他のノードに転送される場合、メッセージが転送された機械の送信ノードを通知するリフェラルコードモジュールを備えたことを特徴とする。
【0037】
請求項24に記載の発明は、請求項17に記載のデータ処理システムにおいて、少なくともひとつのコードモジュールは、プログレッシブディスカバリを実施するリフェラルコードモジュールを備えたことを特徴とする。
【0038】
請求項25に記載の発明は、請求項17に記載のデータ処理システムにおいて、少なくともひとつのコードモジュールは、メッセージが送信部から受領者に進められるようにケイパビリティディスカバリを実施するケイパビリティコードモジュールを備えたことを特徴とする。
【0039】
請求項26に記載の発明は、請求項17に記載のデータ処理システムにおいて、少なくともひとつのコードモジュールは、インテグリティ、暗号化又は認証のうち少なくともひとつを実施するセキュリティコードモジュールを備えたことを特徴とする。
【0040】
請求項27に記載の発明は、請求項17に記載のデータ処理システムにおいて、少なくともひとつのコードモジュールは、メッセージトランスポートプロトコルを指定するトランスポートコードモジュールを備えたことを特徴とする。
【0041】
請求項28に記載の発明は、請求項17に記載のデータ処理システムにおいて、少なくともひとつのコードモジュールは、メッセージがテキスト又はバイナリのいずれで送信されるかを指定するバインディングコードモジュールを備えたことを特徴とする。
【0042】
請求項29に記載の発明は、請求項19に記載のデータ処理システムにおいて、データリンクライブラリはURT技術を備えたことを特徴とする。
【0043】
請求項30に記載の発明は、コンピュータ読み取り可能な媒体であって、メッセージングサービスをそれぞれ提供する複数のコードモジュールと、プロセッサにより実行された場合、(1)メッセージペイロードおよびメッセージペイロードについての1つまたはそれ以上のメッセージングサービス属性を含むメッセージデータをメッセージ送信部から受信し、各々が、少なくとも1つのメッセージングサービス属性に対応するメッセージングサービスを、対応するメッセージングサービスを提供するプロトコルに合うヘッダを生成することによって提供するコードモジュールのデータベースを検索し、メッセージングサービス属性に基づいて1つまたはそれ以上のコードモジュールを選択するステップと、(2)メッセージペイロードに、選択された1つまたはそれ以上のコードモジュールの各々によって提供されるメッセージングサービスに対応する前記メッセージングサービス属性に基づき各ヘッダを付すことによって、メッセージを組み立て、付されたヘッダに基づいて、メッセージを、受領者に配信するため選択されたコードモジュールを備えるメッセージングプロトコルを用いてメッセージを送信するステップとをデータ処理システムに実行させるコンピュータ読み取り可能な命令と
を備えたことを特徴とする。
【0044】
請求項31に記載の発明は、請求項30に記載のコンピュータ読み取り可能な媒体において、各選択されたコードモジュールは、Java(登録商標)ベースの言語において記述されたソースコードを備えたことを特徴とする。
【0045】
請求項32に記載の発明は、請求項30に記載のコンピュータ読み取り可能な媒体において、各選択されたコードモジュールは、データリンクライブラリを備えたことを特徴とする。
【0046】
請求項33に記載の発明は、請求項30に記載のコンピュータ読み取り可能な媒体のステップ(1)において、所与の通信特性を実施するコードモジュールが選択されることを特徴とする。
【0047】
請求項34に記載の発明は、請求項30に記載のコンピュータ読み取り可能な媒体であって、少なくともひとつのコードモジュールは、前記メッセージがパケット又はストリームのいずれを用いて送信されるかを表示するセッションコードモジュールを備えたことを特徴とする。
【0048】
請求項35に記載の発明は、請求項30に記載のコンピュータ読み取り可能な媒体であって、少なくともひとつのコードモジュールは、パケットが受領者により受信されることを保証する信頼性コードモジュールを備えたことを特徴とする。
【0049】
請求項36に記載の発明は、請求項30に記載のコンピュータ読み取り可能な媒体であって、少なくともひとつのコードモジュールは、メッセージが他のノードに転送される場合、メッセージが転送された機械の送信ノードを通知するリフェラルコードモジュールを備えたことを特徴とする。
【0050】
請求項37に記載の発明は、請求項30に記載のコンピュータ読み取り可能な媒体であって、少なくともひとつのコードモジュールは、プログレッシブディスカバリを実施するリフェラルコードモジュールを備えたことを特徴とする。
【0051】
請求項38に記載の発明は、請求項30に記載のコンピュータ読み取り可能な媒体であって、少なくともひとつのコードモジュールは、メッセージが送信部から受領者に進められるようにケイパビリティディスカバリを実施するケイパビリティコードモジュールを備えたことを特徴とする。
【0052】
請求項39に記載の発明は、請求項30に記載のコンピュータ読み取り可能な媒体であって、少なくともひとつのコードモジュールは、インテグリティ、暗号化又は認証のうち少なくともひとつを実施するセキュリティコードモジュールを備えたことを特徴とする。
【0053】
請求項40に記載の発明は、請求項30に記載のコンピュータ読み取り可能な媒体であって、少なくともひとつのコードモジュールは、メッセージトランスポートプロトコルを指定するトランスポートコードモジュールを備えたことを特徴とする。
【0054】
請求項41に記載の発明は、請求項30に記載のコンピュータ読み取り可能な媒体であって、少なくともひとつのコードモジュールは、メッセージがテキスト又はバイナリのいずれで送信されるかを指定するバインディングコードモジュールを備えたことを特徴とする。
【0055】
請求項42に記載の発明は、請求項32に記載のコンピュータ読み取り可能な媒体であって、データリンクライブラリはURT技術を備えたことを特徴とする。
【0056】
【発明の実施の形態】
メッセージサービスの属性は、1つ又は2つ以上の以下の要素を含むことができる:経路設定、セッション制御、信頼性、リフェラル(referral)、セキュリティ、識別性(identity)、事象化(eventing)、バインディング(binding)、物理的輸送(transport)、ケイパビリティディスカバリ(capability discovery)、及び参照点(時刻、期間、タイプなど)。これらの属性は、一般に、5つのカテゴリーに分けることができる:チャネル、トポロジー、セキュリティ、輸送、及び包括的属性。チャネル属性は、セッション制御と信頼性を含む。セッション制御は一般的に、2つの機械の間における接続の型を定義する能力をいう。すなわち、機械が、パケットに基づいた形態(データグラム)で通信を行うか、あるいは2つの機械の間でセッション接続(例えば、バーチャルサーキット)を生成することにより通信する。信頼性は、一般に、各メッセージ又はパケットがその受領者により受信されること、又はそのメッセージが受領者により受信されない場合は、送信部は受領者によりメッセージが受信されなかったことを肯定的に知ることを保証する能力である。信頼性は、パケット/メッセージを順番に配信する保証のみならず、メッセージが1回だけまたは多くても1回だけ正確に配信されるかどうかを決定する能力を含む。
【0057】
トポロジー属性は、経路設定、バインディング、リフェラル、及び事象化を含む。経路設定は、種々のエンドポイントセマンティクス(例えば、ポイントツーポイント、ルーテッド,ストアアンドフォワード)を用いて、メッセージの経路設定をするためのメッセージプロトコルの能力、及び加えてファイヤウォールを越えるためのメッセージプロトコルの能力を含む。ポイントツーポイント経路設定は、メッセージがその受領者に到達する前に超えなければならない各ノードを、送信部が特定する必要性をいう。ルーテッドプロトコルは、エンドポイントを特定あうることのみ必要であり、かつメッセージは、各中間ノードにおいて自動的に経路設定される。バインディングは、マルチトランスポート(例えば、TCP/IP及びUDP/IP)をサポートするためのメッセージプロトコルの能力を含む。リフェラルは、プログレッシブディスカバリを実行するための能力をいう。事象化は、システムで起こった事象を監視し、広く伝搬する能力に基づき会話プロセッサ間の同期通信をサポートする能力に関する。通信のモードは様々であり、1対1又は1対多を含んでもよい。事象化サービスの種類も、様々であり、事象が定義されるユーザ定義のトピックスの任意のコレクションを持つものに事象を通知するトピックスの固定のセットを持つものを含む。
【0058】
セキュリティの属性は、メッセージインテグリティ、機密性、非拒否性、暗号化、認証、及びポイントツーポイント対エンドツーエンドのセキュリティを含む。メッセージインテグリティは、受信されたメッセージが、送られたメッセージと同一であること、及びそのメッセージが、伝送中に(偶発的又は恣意的にも)変更されなかったことを保証する。受領者のみにメッセージの機密性は、メッセージの内容を見ることを許可する能力をいう。認証は、妥当な確実度で送信部の同一性を保証する能力をいう。これに対して、非拒否性は、認証よりも高い確実度で送信部の同一性を保証する能力をいう。すなわち、もしメッセージが、msg.from=‘sam’という属性を持つなら、認証は、サムが実際にメッセージを送信したことを(ハッカーなどの第三者がサムからであると主張してメッセージを送信する、普通スプーフィングと呼ばれる、行為に対抗して)受領者が確認する能力をいい、それに対して、非拒否性は、送信部が、彼女が事実そのメッセージを送信しなかったと主張することを禁止する能力をいう。暗号化は、その技術においてよく知られているように意図した受領者のみがメッセージの内容を見ることができることを保証する方法であり、機密性を達成するために用いることができる。
【0059】
ポイントツーポイントのセキュリティは、送信部から受領者へのメッセージの経路において各ホップに対してメッセージを守るプロセスをいう。例えば、メッセージが機械アルファから機械エコーに、機械ブラボー、チャーリー及びデルタを経由して送信されるとする。ポイントツーポイントのセキュリティは、アルファにおけるブラボー向けのメッセージ、ブラボーにおいてはチャーリー向けのメッセージ、チャーリーにおいてはデルタ向けのメッセージ、及びデルタにおいてはエコー向けのメッセージを守る。いかなる中間の機械も不適切にメッセージの内容を変更し又は見ることはできない。
【0060】
伝送属性は、トランスポートバインディングと物理的サポートを含む。物理的サポートは、多重伝送(例えば、TCP、UDP、HTTP、SMTP等)をサポートするメッセージプロトコルの能力をいう。バインディングは、種々の符号化方法(例えば、テキスト及びバイナリ)をサポートする能力を含んでいる。
【0061】
包括的な属性は、アプリケーションにより特に要求されるサービスにかかわりなく、含まれるべきいかなるサービスにも関係する。包括的サービスは、ケイパビリティディスカバリ及び参照サービスを含む。ケイパビリティディスカバリは、一般的に、受領者のノードに、メッセージプロトコルがサポートし又は含むそれらのサービスをアナウンスするためのプロトコルの能力である。例えば、メッセージは、それがサポートする基本的なサービスのリストを含むことができ、かつ受信ノードは、その受信ノードもサポートしていないメッセージ特定のプロトコルにおけるそれらのヘッダを無視することができる。参照サービスは、時刻、期間、タイプ等を含むことができる。例えば、参照点は、いつメッセージの本体がシステムへの関心を失い廃棄されるべきかを定める特定の時間基準をメッセージに添付することができる。
【0062】
グローバルな及び非グローバルな独立のプロトコル要素(属性)は、組み合わせて、ネットワークアプリケーションによって望まれ、あるいは必要とされるいかなるタイプのメッセージングシステムをも生成することができる。使用される個別のプロトコル要素は、それらが組み立て可能であるという事実に比べれば二次的である。すなわち、それらが矛盾なく共に統合することができる。
【0063】
図1は、本発明の一実施例によるデータフロー図を示す。ネットワークアプリケーション101は、特定のメッセージに対し必要とされるサービス又は特性を定義する新しいメッセージ102を生成する。例えば、ある実施例においては、ネットワークアプリケーションは、いずれの特定のプロトコレットが用いて結果として得られるメッセージプロトコルを組み立てるかを示すことができる。他の実施例では、ネットワークアプリケーションはメッセージ属性103を定める。メッセージ属性103は、要求されたメッセージプロトコルの特性(信頼性及Beanテグリティ)を試行する属性のみならず、要求されたメッセージプロトコルのサービスとは独立した属性(メッセージ「from」、「to」及び「body」)を含む。すなわち、信頼性の特性が、順序付け(sequencing)かつ流れ付け(streaming)セッションサービスを使用すべきであることを示しているということである。本実施例においては、ネットワークアプリケーション101は、信頼性があり(すなわち、受領者によるメッセージの受信が保証され)かつメッセージインテグリティを維持する(すなわち、このメッセージングプロトコルはメッセージが伝送中に変更されないことを保証する)メッセージングプロトコルを用いてメッセージ102を送信すべきであることを特定する。
【0064】
ネットワークアプリケーション101は、コードジェネレータ105にアプリケーションプログラミングモデル104を介してメッセージ102を送信する。アプリケーションプログラミングモデルは、ネットワークアプリケーションが書き込まれるプラットホームとすることができる。例えば、アプリケーションプログラミングモデル104は、本技術分野でよく知られているように、コンピュータのオペレーティングシステムとすることもでき、または、バーチャルマシンとすることもできる。
【0065】
コードジェネレータ105は、ソースメッセージ102を分析し、要求されたメッセージサービス及び/又は特性に基づいて、メッセージタグ及びヘッダを生成する。適切なメッセージタグ及びヘッダを生成する場合、コードジェネレータ105は、タグとヘッダを含む、組み立てられたメッセージをメッセージルータ111に送信する。メッセージルータ111は、組み立てられたメッセージを分析し、どのプロトコレット109を用いるかを決定する。メッセージルータ111は、メモリ107から適切なプロトコレットを検索する。メモリ107は、ルータがアクセスするプロトコレットのデータベース、ハードディスクドライブ、又はその他任意のデータ記憶装置あるいは媒体とすることができる。メッセージルータ111は、選択されたプロトコレットを用いてメッセージ特定のプロトコルを組み立て、及び組み立てられたプロトコルを用いて、メッセージをネットワーク113に送信し、さらに目的地115へ配信する。
【0066】
ルータ111は、動的に生成されたメッセージ特定のプロトコルを理解することができると本技術分野において知られているように、いかなるルータであってもよい。本発明の一実施例においては、プロトコレットは、シンプルオブジェクトアクセスプロトコロル(SOAP)拡張版として記述することができ、ルータは、動的に生成されたメッセージングプロトコルを扱うように修正されたSOAPルータとすることができる。SOAPは、その定義されているように、包括的なネットワークメッセージサービスを提供はしないが、開発者がプロトコルを拡張して追加のサービスを提供できるようにすることができる拡張可能なメッセージプロトコルである。すなわち、変更されたSOAPルータは、SOAP拡張版をサポートし、コードジェネレータから受信したヘッダ情報に基づいてメッセージ特定のプロトコルを構築することができる。他の実施例においては、プロトコレットは、Java(登録商標)又はJava(登録商標)ベースの言語で記述することができ、ルータは以下にさらに述べるようにJava(登録商標)準拠のルータとすることができる。
【0067】
図2は、本発明の一実施例による組み立て可能なメッセージングプロトコルを用いてメッセージを組み立てて送信するための方法を示す図である。まず、ステップ201において、ネットワークアプリケーション又は他のメッセージコンストラクタはメッセージペイロードを構築する。メッセージペイロードは、ユーザ又はアプリケーションデータを含む。ステップ203では、ネットワークアプリケーションは、例えば選択されたサービス及び/又は特性に対するユーザの要求に対応して、メッセージ基準を設定する。すなわち、ネットワークアプリケーションは、各メッセージに、メッセージを生成するネットワークアプリケーション(あるいはユーザ)により要求されたそれらのサービス及び/又は特性の指示を含める。
【0068】
ステップ205では、コードジェネレータが、選択されたサービス及び/又は特性に基づいてプロトコルヘッダ及びタグを生成し、かつ新たに生成されたヘッダ及びタグと共にメッセージをカプセル化する。ステップ207では、カプセル化したメッセージを受信した後、ルータは、プロトコレットを選択することによって一意的なメッセージングプロトコルを組み立てる。これらのプロトコレットは、組み合わされたときに、メッセージ基準に基づき、要求されたメッセージングサービス及び/又は特性を提供する。ルータは、選択されたサービス/特性をプロトコレットに1対1マッピングすることに基づいて、プロトコレットを選択することができる。あるいはまた、選択されたサービス及び/又は特性に基づき特定のプロトコレットを選択するようコードジェネレータに命令するマッピングテーブルに基づいてコードジェネレータがプロトコレットを選択することができる。例えば、アプリケーションが安全で信頼性のあるメッセージの対話を要求する場合、マッピングテーブルは、用いることのできる信頼性のあるトランスポートにわたって、認証、セキュリティ、機密性、セッション、タイムマーカ及び順序付けのプロトコレットが使用されるべきであることを示してもよい。一意的なメッセージングプロトコルを組み立てた後、ステップ209では、ルータは、受領者に配信するためのメッセージを伝送する。
【0069】
一実施例では、コードジェネレータは、プロトコレット(又は、以下に議論するようにJava(登録商標)Bean)を組み合わせてメッセージ特定のプロトコルを組み立てる。本発明の他の実施例では、コードジェネレータは、(ステップ201で生成されたメッセージペイロード中の要求されたヘッダに加えて)選択されたサービスの各々のための情報を含む一意的なメッセージヘッダを組み立てる。コードジェネレータは、メッセージペイロード及び一意的なメッセージヘッダをルータに送信してもよい。ルータは、一意的なヘッダ情報に基づいて、メモリ(例えば、ハードディスク、RAM等)に格納されたプロトコレットからメッセージ特定のプロトコルを組み立てる。
【0070】
個別のプロトコレットは、上記のメッセージプロトコル属性の各々に対して生成させることができる。すなわち、バインディングのためにあるプロトコレットが存在し、事象化のためには又別のものが存在するといった具合である。プロトコレットは、組み立て要求に基づいて生成又は選択されることができる。例えば、信頼性を提供するには、メッセージパケットの順序付け及び流れ付けされたセッション(例えば、バーチャルサーキット)の使用が要求される。したがって、メッセージが信頼性を要求するときは、コードジェネレータは自動的に、ストリームセッションプロトコレット及び順序付けプロトコレットを選択することができる。あるいはまた、順序付けとストリームセッションの双方を実行するためのロジックを含む信頼性プロトコレットが存在してもよい。同じことが、ユーザ及びシステムの必要性と要求に基づいた他の組み合わせに関しても言える。
【0071】
上で参照した属性に加えて又はそれらに代えて、他のプロトコレットを生成することができる。本発明の一実施例においては、プロトコレットは、(プロトコレットモジュールタイトルを付した)以下のコンポーネントの少なくとも各々に対して生成される:ケイパビリティ(ACCEPT)、同意(AP)、事象化及び通知(EN)、ライセンス(LIC)、リフェラル(REF)、信頼性メッセージング(RM)、経路設定(RP)、セキュリティ(SEC)、セッション管理(SESSIONS)、及びメッセージタイムマーカ(TIME)。各コンポーネントは、それによって提供されるサービスを定める標準のタグ及びヘッダを定めることができる。
【0072】
ケイパビリティ(ACCEPT)コンポーネントは、メッセージ送信部(インターラクションの起動者又は応答者のいずれか)が、サポートする基本的ケイパビリティのリストを含めるための方法を特定することができる。一実施例においては、これを、メッセージ交換を成功させるために要求された特性の予め定められたセットを参照するURI(又はURL)のリストとすることができる。すなわち、このセットがメッセージ送信部のサポートするケイパビリティを示すことができる。ある実施例では、これを、メッセージ送信部が理解することができる予め定められ又は定義されたプロトコレットのセットとすることができる。他の実施例では、メッセージ送信部がサポートするプロトコレットの各々のために別々のリストを提供することができる。さらに他の実施例では、ブーリアン及び他の条件(例えば、時間範囲)を持ったエクスプレッシブランゲッジを特定することができる。いくつかの実施例では、XMLを用いて、上述の機能を実現することができる。
【0073】
トランザクション同意コンポーネント(AP)は、1セットの参加者がマルチパーティ計算のトランザクション結果に関して同意するための方法を特定することができる。一実施例では、この同意は、本技術分野でよく知られているとおり、伝統的な2つのフェーズのコミットプロトコルを用いて達成することができる。他の実施例では、同意は、任意だが了解済みの期間の間、ネットワークから切断されるコンピュータのためのサポートを含む。さらに他の実施例では、同意は、参加者が補償又はキャンセルの動作を用いることをサポートする機構を含む。
【0074】
事象化及び通知コンポーネント(EN)は、コンポーネントが感心あるトピックスを広告するためのメッセージを送受信する方法、コンポーネントがそれらの関心あるトピックスにおいて事象の通知を登録する方法、及びサービスがトピックスの購読者に事象通知を配信する方法を指定する。このコンポーネントは、トピックスに対する事象通知の発行者及び購読者を、独立したメッセージの送信部及び受信部として取り扱う。その機能の一つは、関連する情報の非同期通信が独立したプロセスの間での状態変化により引き起こされることを認めることである。一実施例では、全てのトピックスが広告される、中心化した場所がある。全ての購読者の要求が受信されるのが、この場所においてである。他の実施例では、トピックスが管理されるサービスコンポーネントの重なったネットワークが存在しうる。購読者は、これらのサービスコンポーネントのいずれの一つにおいても購読を要求することができる。
【0075】
ライセンスコンポーネント(LIC)は、特定のセキュリティ証明のフォーマットを通すための機構を提供することができる。一実施例においては、証明書はバイナリ情報として通される。他の実施例では、それはセマンティックXMLとして通されてもよい。第三の実施例においては、それはそれら2つの組合せとすることができる。ライセンスコンポーネントは、既知のライセンスフォーマットを符号化するために用いるタグ及び任意のバイナリの証明書を通すときに用いる一つのタグを定義することができる。
【0076】
リフェラルコンポーネント(REF)は、メッセージの送信部及び受信部がサービスの場所の情報を取得し、これらの場所への加速された経路設定を得るようにすることができる。中心の起動情報は、このメッセージによって実施される動作である。このような動作は、その性質上任意のものであるが、メッセージの標準エンベロープ情報の一部としてコード化することができる。一実施例では、リフェラルサービスは、命名及び経路設定サービスと共に構築される。その操作は、ソースと送り先との間を伝送されているメッセージの[返信アドレス]及び[転送アドレス]に情報を追加し、又は情報を変更することを含めることができる。例えば、リフェラルコンポーネントが、動作A上で操作されるサービスSが場所Lにあると知られているという情報を有している場合、このような動作Aで名前Nに向けられたメッセージはリフェラルサービスを用いて場所Lに直ちに向けられる。
【0077】
他の実施例では、図3を参照するに、AはネットワークノードRを通してBまでメッセージを送信する。いかなるデフォルトのサービスを除いて、Aは、リフェラルとセッションを理解するのみであろう。ノードRがメッセージを受信すると、RはAがリフェラルを理解することを検出し、そして、RがBにメッセージを回付することをAに伝えることによってRはAに応答できる。従って、次にAがBまでメッセージを送信するとき、AはRを通すことなくBに直接メッセージを送信することができるかもしれない。Bはさらにライセンスをサポートして、Aのメッセージが適切なライセンスを含んでいないことを検出することができる。Bは、Bがサポートするライセンスケイパビリティを示して、Aにエラーメッセージを返信することができる。可能ならば、Aは適正なライセンスを持ったメッセージを追って、再送することができる。
【0078】
本発明の一実施例では、リフェラルコンポーネントは、ヘッダとタグを用いてルータの経路設定エントリを挿入し、削除し、及び問い合わせすることができる。リフェラルコンポーネントは、リフェラル情報の交換を介してアプリケーションが、ルータの経路設定エントリを挿入し、削除し、及び問合せることができる機構を提供することができる。
【0079】
信頼性メッセージコンポーネント(RM)は、同時にアクディブになるかもしれないし、あるいはならないかもしれないし、また、同じ機械で行われるかもしれないし、あるいは行われないかも知れない送信部と受信部との間の信頼できるメッセージ交換のために設ける。従って、このメッセージの寿命は、送信部及び/又は受信部の寿命を超えてもよい。ある実施例では、このサービスは、送信部と受信部が置かれた同一の機械における、耐久性ある記憶を行うことのできるコンポーネントを有することもできる。これらのコンポーネントは、これら送信部と受信部との間でメッセージを格納し、および送信することができる。他の実施例では、メッセージを格納し及び送信するコンポーネントは、送信部又は受信部が置かれたいずれの機械に設けなくてもよい。従って、ローカルストレージを割り当てることを欲さないが、信頼性あるメッセージをサポートしたい送信部及び受信部がそれらの間の信頼性あるメッセージ配信に参加することが可能である。
【0080】
経路設定コンポーネント(RP)は、メッセージの送信部及び受信部にメッセージの配信を助ける経路設定情報を提供する。一実施例では、この助けは、所定の目的地に到達するためにメッセージがどの中間ノードを使用するかを辿ることに基づいている。これらの中間ノードについての知識は、メッセージをソースに返却するためのより効率性の高い経路を見つけるのみならず、メッセージを配信する際の繰り返しを阻止するため使用することができる。ある実施例では、経路設定コンポーネントは、各メッセージのヘッダにメッセージを配信する間にホスト情報を追加する。次いで、このホスト情報は、メッセージがとる相互接続システムを通しての経路を決定するために使用することができる。返信経路が要望された場合、このホスト情報を使って、より効率的な経路を見つけることができる。
【0081】
セキュリティコンポーネント(SEC)は、メッセージインテグリティと機密性のための、及びセキュリティ証明書を伝送するための機構を提供する。ある実施例では、マルチタグを使用することができる。他の実施例では、単一のタグを、URIを参照して使用してもよい。さらに他の実施例では、XML署名とXML暗号を使用してもよい。またさらに他の実施例では、カスタマフォーマットを独立に指定してもよい。例えば、信用証明のヘッダは、ネットワークメッセージにおいてセキュリティの証明書を通すためのコンテナを提供してもよい。このヘッダには複数の信用証明があってもよく、及びヘッダ内の各タグは、それが含んでいるデータのタイプを識別することもできる。
【0082】
このセキュリティモジュールは、インテグリティヘッダを定義し、及び使用してもよい。メッセージ送信部は、通過中にメッセージが変更されたか否かをメッセージ受信部が決定できるようにし、及びメッセージが特定のライセンス所有者により送信されたことを検証させたい場合もある。インテグリティの機構は、メッセージまたはメッセージの部分にXML署名を用いて署名させることを許容してもよい。このインテグリティの機構により、メッセージ(又は選択された部分)のインテグリティを決定するようにしてもよい。信用証明タグと共に用いられた場合、メッセージ署名者のライセンスは相関を有するものであり、ライセンスのアサーションとアプリケーションによって評価されたメッセージとの間になされたマッピングである。
【0083】
このセキュリティのモジュールは、暗号化の能力も提供する。メッセージ送信部は、メッセージ又はその一部分が機密であることを保証したい場合もある。メッセージが機密性を要求する場合、メッセージの送信部はメッセージの部分を暗号化して、XML暗号を用い、それらの部分がプライベートに保たれるようにすることができる。
【0084】
セッション管理コンポーネント(SESSIONS)は、シェアされたコンテクストに関するコマンドを発行するための機構を提供する。このようなコマンドは、初期化、終結、確認及びキャッシングを含むがこれらに限られない。ある実施例では、これらのコマンドは、別個のタグとして指定されてもよい。他の実施例においては、URIを持つ単一のタグとして指定されてもよい。初期化はタイムアウトを含めることができる。確認は、典型的には、要求された特定のコマンド又は動作を参照する。
【0085】
キャッシングは、そのセッションのためにキャッシュされるものについての予測値の、あるパーティから他のパーティへの指定を含めることができる。ある実施例では、これは、URIのリストであってもよい。他の実施例では、それは他のタグへの参照であってもよい。さらに他の実施例では、それは、キャッシング操作のセマンティクスを定める別個のタグであってもよい。
【0086】
メッセージタイムマーカコンポーネント(TIME)は、メッセージに特定の時間基準を添付する機構を提供する。TIMEモジュールは、組み立て可能なプロトコレットにわたってタイムマーカを参照する一定の方法を提供する。時間基準は、セッションの生成とメンテナンス、順序付け、事象通知、ライセンス及び他の時間を基準とした要素において使用される。ある実施例では、各基準に対して個別のタグが有ってもよい。他の実施例では、URIを持つ単一のタグを使用してもよい。いくつかの実施例において、属性又はタグを用いて、タイムフォーマットを示してもよいし、他方、他の実施例では特定のタイムフォーマットを持っていてもよい。
【0087】
本発明の組み立て可能なメッセージングプロトコルがネットワークを通して使用される場合、ネットワークにおける種々の機械、装置、及び/又はノードは、互いに通信し、及びプロトコルのグローバルなケイパビリティディスカバリ属性を用いて相互運用性のインターセプションを成し遂げることができる。しかし、当事者は、他の属性と同様にケイパビリティディスカバリを選択することは任意であることを認識する。メッセージングプロトコルはケイパビリティディスカバリ属性(又は他のいずれの属性も)なしに的確に機能することができる。しかし、組み立て可能なメッセージングプロトコルは、完全な属性セットがプロトコレットの途中に含まれるとき、より頑健で適応性のあるものとなる。
【0088】
本発明の組み立て可能なメッセージングプロトコルは、例えば、信頼性、セキュリティなどを提供するSOAP拡張版を用いて、マルチプラットフォームにわたってウェブベースのサービスを提供するため使用される。SOAPはプラットフォームに独立したプロトコルであるため、SOAP拡張版も同様である。従って、組み立て可能なメッセージングプロトコルもまた、プラットフォームに独立しており、かつウェブサービスは、SOAPをサポートする任意のプラットフォームにわたって相互運用可能である。本発明の他の実施例では、各プロトコレットは、ダイレクトインターネットメッセージカプセル化(DIME)、すなわちトランスポートに依存しないメッセージのバイナリ符号化を用いて生成される。例えば、ある実施例においては、DIMEメッセージは、SOAPメッセージをカプセル化することができる。
【0089】
本発明の他の実施例において、各プロトコレットは、Java(登録商標)又はその多くの派生言語(すなわち、Java(登録商標)Script、Java(登録商標)Beanなど)のひとつを用いて生成することができる。各プロトコレットは、モジュールがJava(登録商標)Runtime環境又はJava(登録商標)バーチャルマシンにおいて実行されるときに、選択可能なプロトコル属性の1つ又は2つ以上を実行するよう構成された独立したJava(登録商標)Beanあるいは他のJava(登録商標)ベースのモジュールでもよい。この実施例では、ルータは、要求されたサービスと共にメッセージを送信するのに必要なものとしてJava(登録商標)モジュール(例えばJava(登録商標)Bean)を一体化したJava(登録商標)に準拠したルータとすることができる。
【0090】
本発明の方法は、フロッピ(登録商標)ディスク、CD-ROM、取外し可能な記憶装置、ハードディスク、システムメモリ、又は他のデータ記憶媒体のようなコンピュータ読み取り可能な記録媒体に格納されたコンピュータ読み取り可能な命令として実施することができる。図4は、上述の実施例のうちの1又は2以上によって使用することができるコンピュータ読み取り可能な媒体401のブロック図を示す。コンピュータ読み取り可能な媒体401は、コンピュータ実行可能なコンポーネント又はソフトウェアモジュール403乃至413を格納する。例えば、各プロトコレットは一意的なソフトウェアモジュールに格納することができる。より多くの又はより少ないソフトウェアモジュールを、その代わりに使用してもよい。各コンポーネントは、実行可能なプログラム、データリンクライブラリ、コンフィギュレーションファイル、データベース、グラフィカルイメージ、バイナリデータファイル、テキストデータファイル、オブジェクトファイル、ソースコードファイルなどとすることができる。ある実施例では、データリンクライブラリは、米国ワシントン州レッドモンドのマイクロソフト(登録商標)社から入手できるユニバーサルランタイム(URT)を用いて構築することができる。1又は2以上のコンピュータプロセッサが、1又は2以上のソフトウェアモジュールを実行する場合、これらのソフトウェアモジュールは、相互作用して、1又は2以上のコンピュータシステムが本発明の教示に従って実行するようにさせる。
【0091】
本発明は、本発明を実施するのに現在のところ好ましい実施形態を含む特定の実施例に関して述べられてきたが、添付の請求の範囲に記載された本発明の精神と範囲内にある、上述のシステム及び技術について数多く変形例および変更があることを理解するであろう。
【図面の簡単な説明】
【図1】本発明の一実施例のデータフロー図である。
【図2】本発明の一実施例による方法を示す図である。
【図3】本発明の一実施例に従って、種々のサービスをサポートする装置間を送信されるメッセージを示す図である。
【図4】本発明の一実施例によるコンピュータ読み取り可能な媒体のブロック図である。
【符号の説明】
101 ネットワークアプリケーション
102 メッセージ
103 メッセージ属性
104 アプリケーションプログラミングモデル
105 コードジェネレータ
107 メモリ
109 プロトコレット
111 ルータ
113 ネットワーク
115 目的地
401 コンピュータ読み取り可能な媒体
403、405、407、411、413 コンピュータ実行可能なコンポーネント/モジュール

Claims (42)

  1. 送信部から1つまたはそれ以上の受領者へメッセージを伝送するためのデータ処理システムにおいて、動的に組み立てられるメッセージングプロトコルに基づいてメッセージを伝送する方法であって、
    (1)ルータによって、メッセージペイロードおよび該メッセージペイロードについての1つまたはそれ以上のメッセージングサービス属性を含むメッセージデータをメッセージ送信部から受信するステップと、
    (2)各々が、少なくとも1つのメッセージングサービス属性に対応するメッセージングサービスを、該対応するメッセージングサービスを提供するプロトコルに合うヘッダを生成することによって提供するコードモジュールのデータベースを検索し、前記メッセージングサービス属性に基づいて1つまたはそれ以上のコードモジュールを選択するステップと、
    (3)前記メッセージペイロードに、前記選択された1つまたはそれ以上のコードモジュールの各々によって提供されるメッセージングサービスに対応する前記メッセージングサービス属性に基づき各ヘッダを付すことによって、メッセージを組み立てるステップと、
    (4)前記付されたヘッダに基づいて、前記メッセージを、受領者に配信するため送信するステップと
    を備えたことを特徴とする方法。
  2. 各コードモジュールは、前記メッセージングサービス属性の少なくともひとつと関連したサービスを提供することを特徴とする請求項1に記載の方法。
  3. 前記ステップ(2)及び(3)において、各選択されたコードモジュールは、Java(登録商標)ベースの言語において記述されたソースコードを備えたことを特徴とする請求項1に記載の方法。
  4. 前記ステップ(2)及び(3)において、各選択されたコードモジュールは、データリンクライブラリを備えたことを特徴とする請求項1に記載の方法。
  5. 前記ステップ(2)において、前記コードモジュールは、前記メッセージングサービス属性を実施するように選択されたことを特徴とする請求項1に記載のメッセージ伝送方法。
  6. 前記ステップ(2)において、選択されたコードモジュールは、前記メッセージがパケット又はストリームのいずれを用いて送信されるかを表示するセッションコードモジュールを備えたことを特徴とする請求項1に記載の方法。
  7. 前記ステップ(2)において、選択されたコードモジュールは、パケットが受領者により受信されることを保証する信頼性コードモジュールを備えたことを特徴とする請求項1に記載の方法。
  8. 前記ステップ(2)において、選択されたコードモジュールは、メッセージが他のノードに転送される場合、前記メッセージが転送された機械の送信ノードを通知するリフェラルコードモジュールを備えたことを特徴とする請求項1に記載の伝送方法。
  9. 前記ステップ(2)において、選択されたコードモジュールは、プログレッシブディスカバリを実施するリフェラルコードモジュールを備えたことを特徴とする請求項1に記載の方法。
  10. 前記ステップ(2)において、選択されたコードモジュールは、前記メッセージが送信部から受領者に進められるようにケイパビリティディスカバリを実施するケイパビリティコードモジュールを備えたことを特徴とする請求項1に記載の方法。
  11. 前記ステップ(2)において、選択されたコードモジュールは、インテグリティ、暗号化又は認証のうち少なくとも一を実施するセキュリティコードモジュールを備えたことを特徴とする請求項1に記載の方法。
  12. 前記ステップ(2)において、選択されたコードモジュールは、メッセージトランスポートプロトコルを指定するトランスポートコードモジュールを備えたことを特徴とする請求項1に記載の方法。
  13. 前記ステップ(2)において、選択されたコードモジュールは、前記メッセージがテキスト又はバイナリのいずれで送信されるかを指定するバインディングコードモジュールを備えたことを特徴とする請求項1に記載の方法。
  14. 前記データリンクライブラリはURT技術を備えたことを特徴とする請求項4に記載の方法。
  15. 前記ステップ(1)は、コードジェネレータから前記メッセージを受信するステップを備えたことを特徴とする請求項1に記載の方法。
  16. 前記ステップ(1)において、前記受信されたメッセージデータは、ユーザ入力に基づくことを特徴とする請求項1に記載の方法。
  17. 送信部から1つまたはそれ以上の受領者へメッセージを送信するためのデータ処理システムであって、
    メッセージングサービスをそれぞれ提供する複数のコードモジュールと、
    各々が、少なくとも1つのメッセージングサービス属性に対応するメッセージングサービスを、該対応するメッセージングサービスを提供するプロトコルに合うヘッダを生成することによって提供するコードモジュールのデータベースを検索し、前記メッセージングサービス属性に基づいて1つまたはそれ以上のコードモジュールを動的に選択するモジュールセレクタと、
    前記メッセージペイロードに、前記選択された1つまたはそれ以上のコードモジュールの各々によって提供されるメッセージングサービスに対応する前記メッセージングサービス属性に基づき各ヘッダを付すことによって、メッセージを組み立て、前記付されたヘッダに基づいて、前記メッセージを、受領者に配信するため選択されたコードモジュールを備えるメッセージングプロトコルを用いてメッセージを送信するメッセージ送信部と
    を備えたことを特徴とするデータ処理システム。
  18. 各選択された前記コードモジュールは、Java(登録商標)ベースの言語において記述されたソースコードを備えたことを特徴とする請求項17に記載のデータ処理システム。
  19. 各選択されたコードモジュールは、データリンクライブラリを備えたことを特徴とする請求項17に記載のデータ処理システム。
  20. 前記モジュールセレクタは、所与の通信特性を実施するコードモジュールを選択することを特徴とする請求項17に記載のデータ処理システム。
  21. 前記1つまたはそれ以上のコードモジュールは、前記メッセージがパケット又はストリームのいずれを用いて送信されるかを表示するセッションコードモジュールを備えたことを特徴とする請求項17に記載のデータ処理システム。
  22. 前記1つまたはそれ以上のコードモジュールは、パケットが受領者により受信されることを保証する信頼性コードモジュールを備えたことを特徴とする請求項17に記載のデータ処理システム。
  23. 前記1つまたはそれ以上のプロトコルモジュールは、メッセージが他のノードに転送される場合、前記メッセージが転送された機械の送信ノードを通知するリフェラルコードモジュールを備えたことを特徴とする請求項17に記載のデータ処理システム。
  24. 前記1つまたはそれ以上のコードモジュールは、プログレッシブディスカバリを実施するリフェラルコードモジュールを備えたことを特徴とする請求項17に記載のデータ処理システム。
  25. 前記1つまたはそれ以上のコードモジュールは、前記メッセージが送信部から受領者に進められるようにケイパビリティディスカバリを実施するケイパビリティコードモジュールを備えたことを特徴とする請求項17に記載のデータ処理システム。
  26. 前記1つまたはそれ以上のコードモジュールは、インテグリティ、暗号化又は認証のうち少なくともひとつを実施するセキュリティコードモジュールを備えたことを特徴とする請求項17に記載のデータ処理システム。
  27. 前記1つまたはそれ以上のコードモジュールは、メッセージトランスポートプロトコルを指定するトランスポートコードモジュールを備えたことを特徴とする請求項17に記載のデータ処理システム。
  28. 前記1つまたはそれ以上のコードモジュールは、前記メッセージがテキスト又はバイナリのいずれで送信されるかを指定するバインディングコードモジュールを備えたことを特徴とする請求項17に記載のデータ処理システム。
  29. 前記データリンクライブラリはURT技術を備えたことを特徴とする請求項19に記載のデータ処理システム。
  30. コンピュータ読み取り可能な媒体であって、
    メッセージングサービスをそれぞれ提供する複数のコードモジュールと、
    プロセッサにより実行された場合、
    (1)メッセージペイロードおよび該メッセージペイロードについての1つまたはそれ以上のメッセージングサービス属性を含むメッセージデータをメッセージ送信部から受信し、各々が、少なくとも1つのメッセージングサービス属性に対応するメッセージングサービスを、該対応するメッセージングサービスを提供するプロトコルに合うヘッダを生成することによって提供するコードモジュールのデータベースを検索し、前記メッセージングサービス属性に基づいて1つまたはそれ以上のコードモジュールを選択するステップと、
    (2)前記メッセージペイロードに、前記選択された1つまたはそれ以上のコードモジュールの各々によって提供されるメッセージングサービスに対応する前記メッセージングサービス属性に基づき各ヘッダを付すことによって、メッセージを組み立て、前記付されたヘッダに基づいて、前記メッセージを、受領者に配信するため該選択されたコードモジュールを備えるメッセージングプロトコルを用いてメッセージを送信するステップと
    をデータ処理システムに実行させるコンピュータ読み取り可能な命令と
    を備えたことを特徴とするコンピュータ読み取り可能な媒体。
  31. 各選択されたコードモジュールは、Java(登録商標)ベースの言語において記述されたソースコードを備えたことを特徴とする請求項30に記載のコンピュータ読み取り可能な媒体。
  32. 各選択されたコードモジュールは、データリンクライブラリを備えたことを特徴とする請求項30に記載のコンピュータ読み取り可能な媒体。
  33. 前記ステップ(1)において、所与の通信特性を実施するコードモジュールが選択されることを特徴とする請求項30に記載のコンピュータ読み取り可能な媒体。
  34. 前記1つまたはそれ以上のコードモジュールは、前記メッセージがパケット又はストリームのいずれを用いて送信されるかを表示するセッションコードモジュールを備えたことを特徴とする請求項30に記載のコンピュータ読み取り可能な媒体。
  35. 前記1つまたはそれ以上のコードモジュールは、パケットが受領者により受信されることを保証する信頼性コードモジュールを備えたことを特徴とする請求項30に記載のコンピュータ読み取り可能な媒体。
  36. 前記1つまたはそれ以上のコードモジュールは、メッセージが他のノードに転送される場合、前記メッセージが転送された機械の送信ノードを通知するリフェラルコードモジュールを備えたことを特徴とする請求項30に記載のコンピュータ読み取り可能な媒体。
  37. 前記1つまたはそれ以上のコードモジュールは、プログレッシブディスカバリを実施するリフェラルコードモジュールを備えたことを特徴とする請求項30に記載のコンピュータ読み取り可能な媒体。
  38. 前記1つまたはそれ以上のコードモジュールは、前記メッセージが送信部から受領者に進められるようにケイパビリティディスカバリを実施するケイパビリティコードモジュールを備えたことを特徴とする請求項30に記載のコンピュータ読み取り可能な媒体。
  39. 前記1つまたはそれ以上のコードモジュールは、インテグリティ、暗号化又は認証のうち少なくともひとつを実施するセキュリティコードモジュールを備えたことを特徴とする請求項30に記載のコンピュータ読み取り可能な媒体。
  40. 前記1つまたはそれ以上のコードモジュールは、メッセージトランスポートプロトコルを指定するトランスポートコードモジュールを備えたことを特徴とする請求項30に記載のコンピュータ読み取り可能な媒体。
  41. 前記1つまたはそれ以上のコードモジュールは、前記メッセージがテキスト又はバイナリのいずれで送信されるかを指定するバインディングコードモジュールを備えたことを特徴とする請求項30に記載のコンピュータ読み取り可能な媒体。
  42. 前記データリンクライブラリはURT技術を備えたことを特徴とする請求項32に記載のコンピュータ読み取り可能な媒体。
JP2002302248A 2001-10-16 2002-10-16 組み立て可能なメッセージプロトコル Expired - Fee Related JP4261156B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US32979601P 2001-10-16 2001-10-16
US60/329,796 2001-10-16
US34637001P 2001-10-19 2001-10-19
US60/346,370 2001-10-19
US09/983,555 2001-10-24
US09/983,555 US20030074482A1 (en) 2001-10-16 2001-10-24 Composable messaging protocol

Publications (2)

Publication Number Publication Date
JP2003223376A JP2003223376A (ja) 2003-08-08
JP4261156B2 true JP4261156B2 (ja) 2009-04-30

Family

ID=27406691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002302248A Expired - Fee Related JP4261156B2 (ja) 2001-10-16 2002-10-16 組み立て可能なメッセージプロトコル

Country Status (4)

Country Link
JP (1) JP4261156B2 (ja)
AT (1) AT500164A2 (ja)
CH (1) CH696051A5 (ja)
DE (1) DE10254189A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4574197B2 (ja) 2004-03-16 2010-11-04 キヤノン株式会社 データ処理方法、プログラム、及び、装置

Also Published As

Publication number Publication date
CH696051A5 (de) 2006-11-30
AT500164A2 (de) 2005-11-15
JP2003223376A (ja) 2003-08-08
DE10254189A1 (de) 2003-07-17

Similar Documents

Publication Publication Date Title
US20030074482A1 (en) Composable messaging protocol
US8001189B2 (en) Routing of network messages
US7949787B2 (en) Open content model Web service messaging
US7685288B2 (en) Ad-hoc service discovery protocol
US7254579B2 (en) Using endpoint references in a pub-sub system
US7792065B2 (en) Securely establishing sessions over secure paths
KR20130093764A (ko) 게이트웨이에서 인터넷 프로토콜 기반 네트워크를 이용하여 컨텐츠 중심 네트워크를 구현하는 방법 및 그 게이트웨이
US20060167897A1 (en) Administration of a broker-based publish/subscribe messaging system
JP2009277234A (ja) コンテンツセントリックネットワークにおける通信を円滑化するための方法
JP2006504297A (ja) サービスアクセスゲートウェイ
JP2009518995A (ja) デジタル対象物タイトル認証
KR20120038187A (ko) 컨텐츠 중심 네트워킹 환경에서 그룹 변경에 관한 정보를 이용한 컨텐츠 공유 방법 및 장치
Claessens et al. Solutions for anonymous communication on the Internet
JP4764929B2 (ja) デジタル対象物のタイトルと伝送情報
WO2011127772A1 (zh) 消息请求的路由方法及处理系统
JP2017208797A (ja) 不均一ネットワークにまたがる統合されたデータ・ネットワーキング
JP5213066B2 (ja) ウェブ・サービス・エンドポイントを表すeprを変更する装置
JP2010198636A (ja) 不要メッセージおよび受信者側が送信を要求していないメッセージの低減
US7689648B2 (en) Dynamic peer network extension bridge
KR20090087791A (ko) 비통합메시징 서비스와 인터워킹하기 위한 통합메시징서비스 제공 시스템 및 방법
JP4261156B2 (ja) 組み立て可能なメッセージプロトコル
US20120054310A1 (en) Terminal, intermediate node and communication method of the same
US20050004975A1 (en) Adaptive connection for data transmission
KR100280825B1 (ko) 인터넷 멀티캐스트 응용에서의 세션 멤버쉽 관리 방법
Rose et al. The application exchange core

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051012

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20051012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081205

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: 20090106

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: 20090205

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees