(57)【要約】【課題】  カスタマイズ可能なタグベースのプロトコルにおける参照による送信を提供する。【解決手段】  本発明の様々な実施形態では、カスタマイズ可能なタグベースのメッセージは、１つまたは複数の情報への１つまたは複数の参照を、それらの情報がカスタマイズ可能なタグベースのメッセージに埋め込まれる必要なしに含むことが可能な、１つの装置から別の装置に電子的に伝送される情報の単位である。カスタマイズ可能なタグベースのメッセージは、任意の適切なプロトコルに準拠することが可能である。１つの適切なプロトコルには、ＳＯＡＰなどのカスタマイズ可能なタグベースのプロトコルが含まれるが、その他のプロトコルを使用することもできる。【選択図】  図２Ｃ
2005160075.tif 000002
【特許請求の範囲】
【請求項１】
第１のバッファへの参照を含む、カスタマイズ可能なタグベースのメッセージを送信するためのメッセージセンダと、
前記カスタマイズ可能なタグベースのメッセージ内の前記参照を処理して、前記第１のバッファの中に格納されている情報が第２のバッファに転送されるか、または前記第２のバッファの中に格納されている情報が前記第１のバッファに転送されるようにすることができる、前記カスタマイズ可能なタグベースのメッセージを受信するためのメッセージレシーバとを備えたことを特徴とするネットワーク化されたシステム。
【請求項２】
前記カスタマイズ可能なタグベースのメッセージは、データを含むための本文要素を含み、前記本文要素は、前記第１のバッファへの前記参照を含むことを特徴とする請求項１に記載のネットワーク化されたシステム。
【請求項３】
前記参照は、ユニフォームリソースアイデンティファイアを含むことを特徴とする請求項２に記載のネットワーク化されたシステム。
【請求項４】
前記カスタマイズ可能なタグベースのメッセージは、制御情報を含むためのヘッダ要素を含むことを特徴とする請求項３に記載のネットワーク化されたシステム。
【請求項５】
前記カスタマイズ可能なタグベースのメッセージは、カスタマイズ可能なタグベースのプロトコルを介して前記メッセージセンダから前記メッセージレシーバに送信されることを特徴とする請求項４に記載のネットワーク化されたシステム。
【請求項６】
第１のバッファへの参照を含むカスタマイズ可能なタグベースのメッセージを送信するためのメッセージセンダと、
前記カスタマイズ可能なタグベースのメッセージを代行受信するための中間装置と、
前記カスタマイズ可能なタグベースのメッセージ内の前記参照を処理して、第２のバッファに転送する別のバッファ内の情報か、または前記別のバッファに転送する前記第２のバッファ内に格納されている情報をもたらす、前記中間装置から前記カスタマイズ可能なタグベースのメッセージを受信するためのメッセージレシーバとを備えたことを特徴とするネットワーク化されたシステム。
【請求項７】
前記カスタマイズ可能なタグベースのメッセージは、前記第１のバッファへの前記参照を含むヘッダ要素を含み、前記ヘッダ要素は、前記第１のバッファへの前記参照に関連付けられた属性をさらに含むことを特徴とする請求項６に記載のネットワーク化されたシステム。
【請求項８】
前記カスタマイズ可能なタグベースのメッセージは、前記属性を使用して前記第１のバッファを参照する本文要素を含むことを特徴とする請求項７に記載のネットワーク化されたシステム。
【請求項９】
前記中間装置は、前記カスタマイズ可能なタグベースのメッセージからステージングバッファを作成することができ、前記カスタマイズ可能なタグベースのメッセージ内の前記参照を処理してステージングバッファを作成し、前記第１のバッファに転送する前記ステージングバッファ内に格納されている情報か、または前記ステージングバッファに転送する前記第１のバッファ内に格納されている情報をもたらすことがさらにできることを特徴とする請求項８に記載のネットワーク化されたシステム。
【請求項１０】
前記メッセージレシーバの前記別のバッファは、前記第１のバッファおよび前記ステージングバッファから成るグループから選択されることを特徴とする請求項９に記載のネットワーク化されたシステム。
【請求項１１】
参照により情報を送信する動作を処理するネットワーク化されたシステムよって使用するためのカスタマイズ可能なタグベースのデータ構造を格納しているコンピュータ可読媒体であって、
バッファを表すためのサービスを示すサービスタグを含む、制御情報を示すヘッダタグであり、前記サービスタグは、前記バッファを表す前記サービスのＵＲＩを示すＵＲＩ属性と、前記サービスタグに関連付けられた識別子属性とを含むヘッダタグと、
前記識別子属性を使用して前記バッファを表すサービスを参照することができる、データ情報を示す本文タグとを備えたことを特徴とするデータ構造。
【請求項１２】
前記バッファが存在するホストを示すホストタグをさらに備えたことを特徴とする請求項１１に記載のデータ構造。
【請求項１３】
ネットワーク通信が生じるネットワークポートを示すポートタグをさらに備えたことを特徴とする請求項１１に記載のデータ構造。
【請求項１４】
前記バッファを表す前記サービスの１つまたは複数の動作を定義するためのコントラクトを示すコントラクトタグをさらに備えたことを特徴とする請求項１１に記載のデータ構造。
【請求項１５】
前記バッファの物理アドレスに関連付けられたステアリングタグを示すステアリングタグと、前記バッファの長さを示す長さタグとをさらに備えたことを特徴とする請求項１１に記載のデータ構造。
【請求項１６】
中央演算処理装置と、
第１のバッファを含むメモリと、
カスタマイズ可能なタグベースのメッセージ内の参照を処理し、前記中央処理装置がコピー命令を実行することを要求することなしに、別のバッファに転送する前記第１のバッファ内に格納されている情報か、または前記第１のバッファに転送する前記別のバッファ内に格納されている情報をもたらすことができるネットワークインターフェースカードとを備えたことを特徴とするネットワーク化されたシステム。
【請求項１７】
前記第１のバッファのアドレスを前記ネットワークインターフェースカードによって作成されたステアリングタグに関連付けるためのセッションサービスをさらに備えたことを特徴とする請求項１６に記載のネットワーク化されたシステム。
【請求項１８】
前記セッションサービスを作成するため、および前記情報の前記転送が完了した後、前記セッションサービスを破棄するためのセッションマネージャサービスをさらに備えたことを特徴とする請求項１７に記載のネットワーク化されたシステム。
【請求項１９】
前記セッションマネージャサービスを呼び出して前記情報の前記転送を開始する、前記カスタマイズ可能なタグベースのメッセージを発信するためのセンダサービスをさらに備えたことを特徴とする請求項１８に記載のネットワーク化されたシステム。
【請求項２０】
前記カスタマイズ可能なタグベースの言語は、前記ステアリングタグを前記セッションサービスのＵＲＩに関連付けることを特徴とする請求項１９に記載のネットワーク化されたシステム。
【請求項２１】
カスタマイズ可能なタグベースのプロトコルにおいて参照によって送信を行うためのコンピュータによって実装される方法であって、
カスタマイズ可能なタグベースのメッセージに情報を埋め込む必要なしに、前記情報を格納するための第１のバッファへの参照を含む転送コンテキストを含むように前記カスタマイズ可能なタグベースのメッセージを準備する動作と、
前記カスタマイズ可能なタグベースのメッセージを前記ネットワークに送信する動作とを備えたことを特徴とするコンピュータによって実装される方法。
【請求項２２】
準備する前記動作は、前記情報を格納することができる第１のバッファのアドレスにステアリングタグを関連付ける動作を含むことを特徴とする請求項２１に記載のコンピュータによって実装される方法。
【請求項２３】
準備する前記動作は、前記転送コンテキスト内の属性を作成する動作を含み、前記カスタマイズ可能なタグベースのメッセージの本文要素内における、前記第１のバッファを参照する間接指定として使用することができることを特徴とする請求項２２に記載のコンピュータによって実装される方法。
【請求項２４】
中間装置が前記カスタマイズ可能なタグベースのメッセージを代行受信し、２つのノードの間を仲介するステージングバッファを作成する動作をさらに備えたことを特徴とする請求項２３に記載のコンピュータによって実装される方法。
【請求項２５】
前記参照を処理して、中央処理装置にコピー命令を実行させることなしに、１つのノードにおける前記第１のバッファから別のノードにおける別のバッファへの、または前記別のバッファから前記第１のバッファへの前記情報の転送をもたらす、前記カスタマイズ可能なタグベースのメッセージを受信する動作をさらに備えたことを特徴とする請求項２４に記載のコンピュータによって実装される方法。
【請求項２６】
カスタマイズ可能なタグベースのプロトコルにおいて参照によって送信を行うための方法を実装するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、
カスタマイズ可能なタグベースのメッセージに情報を埋め込む必要なしに、情報を格納するための第１のバッファへの参照を含む転送コンテキストを含む、カスタマイズ可能なタグベースのメッセージを準備する動作と、
前記カスタマイズ可能なタグベースのメッセージを前記ネットワークに送信する動作とを備えたことを特徴とするコンピュータ可読媒体。
【請求項２７】
準備する前記動作は、前記情報を格納することができる第１のバッファのアドレスにステアリングタグを関連付ける動作を含むことを特徴とする請求項２６に記載のコンピュータ可読媒体。
【請求項２８】
準備する前記動作は、前記カスタマイズ可能なタグベースのメッセージの本文要素内において、前記第１のバッファを参照する間接指定として使用することができる、前記転送コンテキスト内の属性を作成する動作を含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項２９】
中間装置によって前記カスタマイズ可能なタグベースのメッセージを代行受信し、２つのノードの間を仲介するステージングバッファを作成する動作をさらに備えたことを特徴とする請求項２８に記載のコンピュータ可読媒体。
【請求項３０】
前記参照を処理して、中央処理装置にコピー命令を実行させることなしに、１つのノードにおける前記第１のバッファから別のノードにおける別のバッファへの、または前記別のバッファから前記第１のバッファへの前記情報の転送をもたらす、前記カスタマイズ可能なタグベースのメッセージを受信する動作をさらに備えたことを特徴とする請求項２９に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、カスタマイズ可能なタグベースのメッセージに関し、より詳細には、カスタマイズ可能なタグベースのプロトコルを介するサービス群の中のカスタマイズ可能なタグベースのメッセージにおいて参照することにより情報を送信する手段に関する。
【背景技術】
【０００２】
ＳＯＡＰは、当初、「Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ」を表していたが、時が経つにつれ、ＳＯＰＡは、単にオブジェクトにアクセスすることから離れ、一般化された拡張可能なメッセージングフレームワークに向かって発展してきた。ＳＯＡＰをネットワークで一般的に代表しているのは、Ｗｅｂ上で構造化され、型付けされた情報を交換するように設計されたＸＭＬベースのプロトコルであるが、ＳＯＡＰは、様々な既存のインターネットプロトコルおよびインターネット形式と組み合わせて使用することができ、メッセージングシステムからリモートプロシージャコール（ＲＰＣ）までの多種多様なアプリケーションをサポートすることができる。
【０００３】
簡単に述べると、ＳＯＡＰは、メッセージをメッセージセンダ（ｍｅｓｓａｇｅ ｓｅｎｄｅｒ）１０２のようなポイントＡから、メッセージレシーバ１０４のようなポイントＢに移すやり方を定義する。図１を参照すると、ＳＯＡＰは、個々の一方向メッセージを処理するためのモデルを定義している。ＳＯＡＰは、複数のメッセージを組み合わせて全体的なメッセージ交換にすることができる。図１は、単純な一方向メッセージがメッセージセンダ１０２によって送信されるシステム１００を示しており、メッセージセンダ１０２は、メッセージレシーバ１０４から応答を要求しない。ただし、レシーバ１０４は、メッセージセンダ１０２に応答を返信することもできる。ＳＯＡＰには、いくつものメッセージ交換パターンが可能であり、要求／応答はその１つに過ぎない。その他の例には、通知、および長期のピアツーピア会話が含まれる。
【０００４】
ＳＯＡＰメッセージングフレームワークは、相互運用性が長い間、解決することが困難であった異種の環境においてＸＭＬメッセージを交換することを容易にする。ＳＯＡＰメッセージングフレームワークは、メッセージセンダ１０２とメッセージレシーバ１０４のような、システム間におけるトランスポートに対し、ＸＭＬメッセージ１０６のような任意のＸＭＬメッセージをパッケージ化するための一組のＸＭＬ要素を定義する。フレームワークは、少数のコアＸＭＬ要素、すなわち、エンベロープ、ヘッダ、およびボディから成る。
【０００５】
エンベロープ要素（開始タグ１０６Ａ＜ＳＯＡＰ：ＥＮＶＥＬＯＰＥ＞と、対になる終了タグ１０６Ｊ＜／ＳＯＡＰ：ＥＮＶＥＬＯＰＥ＞によって記述される）は、常に、ＳＯＡＰメッセージ１０６のようなＳＯＡＰメッセージのルート要素である。これにより、メッセージセンダ１０２とメッセージレシーバ１０４とが、単にルート要素の名前を見ることによってＳＯＡＰメッセージを識別することが容易になる。
【０００６】
エンベロープ要素は、開始タグ１０６Ｃ＜ＳＯＡＰ：ＨＥＡＤＥＲ＞と、対になる終了タグ１０６Ｅ＜／ＳＯＡＰ：ＨＥＡＤＥＲ＞によって説明される任意のヘッダ要素を含む。ヘッダ要素は、ボディ要素とは異なり、制御情報のための汎用コンテナである。ヘッダ要素は、（ＳＯＡＰ名前空間以外の）任意の名前空間からの任意の数の要素を含むことができる。ヘッダ内に入れられた要素は、ヘッダブロックと呼ばれる。他のプロトコルの場合と同様に、ヘッダブロックは、ペイロード処理に影響を与える情報を含む。また、ヘッダブロックにｍｕｓｔＵｎｄｅｒｓｔａｎｄという名前のグローバルＳＯＡＰ属性で注釈を付けて、メッセージ、ならびにその他の属性を処理する前にヘッダを理解することがレシーバに要求されるか否かを示すこともできる。
【０００７】
ヘッダ要素の後には、開始タグ１０６Ｆ＜ＳＯＡＰ：ＢＯＤＹ＞と、対になる終了タグ１０６Ｈ＜／ＳＯＡＰ：ＢＯＤＹ＞によって記述される必須のボディ要素が続く。ボディ要素は、メッセージペイロードを表し、ペイロードとして、ボディ要素は、任意の名前空間からの任意の数の要素を含むことができる汎用コンテナである。ボディ要素が、メッセージセンダ１０２がＳＯＡＰメッセージ１０６に埋め込まれたデータをメッセージレシーバ１０４に送信しようと試みる際に、そのようなデータが最終的に含まれる場所である。  ヘッダ要素およびボディ要素がＳＯＡＰメッセージにおける制御情報およびデータ情報をそれぞれ含むこの最小設計は、異種の環境が通信するのを可能にする単純なアーキテクチャを促すのに役立つ。しかし、そのような設計は、データが大量である通信におけるＳＯＡＰプロトコルのアプリケーションを妨げもする。図１は、この問題、およびその他の問題をより詳細に示す。
【０００８】
メッセージセンダ１０２が、パーソナルオーガナイゼーション（ｐｅｒｓｏｎａｌ ｏｒｇａｎｉｚａｔｉｏｎ）（カレンダ、メモ書き、データベース、計算機など）、ならびに通信のような特定の機能を提供するように設計された軽量コンピュータであるパーソナルデジタルアシスタントであるものと想定されたい。より高機能のパーソナルデジタルアシスタントは、音楽再生などのマルチメディア機能も提供する。多くのパーソナルデジタルアシスタントは、その一部は、ペンまたはポインティングデバイスと併せてタッチタイピングのために使用するには小さ過ぎるキーボードを提供するものの、入力をキーボードまたはマウスではなく、ペンまたはその他のポインティングデバイスに頼る。データ記憶に関して、パーソナルデジタルアシスタントは、電力を多く要する（ｐｏｗｅｒ−ｈｕｎｇｒｙ）ディスクドライブではなく、フラッシュメモリに頼る。また、メッセージレシーバ１０４が、サウンドのデジタル符号化を含むメッセージを受信し、メッセージレシーバ１０４のユーザに聞こえるのに十分に大きい音量のサウンドを生成する一対のインテリジェントラウドスピーカであるものと想定されたい。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
メッセージセンダ１０２（音楽を再生することができるパーソナルデジタルアシスタント）が、曲をデジタルオーディオ形態でメッセージレシーバ１０４に送信する状況を考察する。ＳＯＡＰプロトコルを使用して、メッセージセンダ１０２が、元の曲を表すデジタルオーディオを表すＡＳＣＩＩデータをボディ要素（タグ１０６Ｆ、１０６Ｈによって記述される）の中に挿入する。デジタルオーディオは、通常、サウンドの品質を著しく低下させることなくデジタルオーディオファイルのサイズを縮小する、ＭＰ３などの符号化スキームを使用して圧縮されるが、ＡＳＣＩＩは、圧縮されたスキームではない。要件ではないが、圧倒的多数のＳＯＡＰメッセージは、通常はＵＴＦ−８またはＵＴＦ−１６である何らかのテキスト指向の符号化を使用するＸＭＬ／１．０文書として交換される。ほとんどのデジタルオーディオファイルは、圧縮されて、平均でおよそ３メガバイトのデータになる。ＳＯＡＰメッセージに埋め込むことができるようにそれらのデジタルオーディオファイルをＸＭＬ／１．０によってサポートされる表現に変換することにより、ＳＯＡＰメッセージのサイズが法外に大きくなることが生じる。
【００１０】
しかし、さらに重要なのは、データがボディ要素の中に含められた場合、そのデータ全体が交換されてからでないと、レシーバにおけるメッセージ処理を開始することができないという問題である。これが望ましくない多くの状況が存在する。レシーバが、センダによって供給された形態でデータを処理することができず、センダが異なる形態でデータを供給することを要求する可能性がある。そのデータがメッセージの本文の中に含まれる場合、そのデータは、２回、送信されることになる。レシーバは、メッセージの中のデータのすべては必要としない可能性がある。そのデータがメッセージの本文の中に含まれる場合、レシーバは、データのすべてを受け入れ、レシーバが必要としない部分を破棄するより他がない。あるいは、ネットワークの障害により、メッセージの大半が交換された後、メッセージが文字化けさせられる可能性がある。そのデータがメッセージの本文の中に含まれる場合、メッセージ全体を再び交換することに代わる選択肢はない。以上の状況のすべてにおいて、メッセージの本文の中にデータを含めることにより、ネットワークリソースの不必要な消費がもたらされる。
【００１１】
ボディ要素の中のかさばるデータに起因する大きいＳＯＡＰメッセージにより、送信プロセス、転送プロセス、および受信プロセスにおける精彩を欠いたパフォーマンスをもたらす。ＳＯＡＰプロトコルは、共有のオープンなＷｅｂインフラストラクチャに基づく豊富で自動化されたＷｅｂサービスを可能にするのに役立ってきたが、ＳＯＡＰメッセージは、もともと、マルチメディアデータなどのかさばるデータを転送することのために設計されていない。ＳＯＡＰメッセージの本文の中のデータ情報からＳＯＡＰメッセージのヘッダの中の制御情報を分離する問題解決なしには、ＳＯＡＰプロトコルの用途は限られ、ユーザは、最終的には、システム１００が、精彩を欠くパフォーマンスのために所望のコンピューティング体験を提供することをもはや信用しなくなり、システム１００の需要が市場で縮小することを引き起こす可能性がある。このため、既存のシステムに関連する以上の問題およびその他の問題を回避しながら、または減らしながら、参照により情報を送信するための方法およびシステムの必要性が存在する。
【課題を解決するための手段】
【００１２】
本発明によれば、カスタマイズ可能なタグベースのプロトコルにおいて、参照により送信を行うためのシステム、方法、およびコンピュータ可読媒体が提供される。本発明のシステム形態はネットワークシステムを含む。ネットワーク化されたシステムは、第１のバッファへの参照を含むカスタマイズ可能なタグベースのメッセージを送信するためのメッセージセンダを備える。ネットワーク化されたシステムは、カスタマイズ可能なタグベースのメッセージを受信するためのメッセージレシーバをさらに備える。メッセージレシーバは、カスタマイズ可能なタグベースのメッセージの中の参照を処理して、第１のバッファの中に格納された情報が第２のバッファに転送されるか、または第２のバッファの中に格納された情報が第１のバッファに転送されるようにすることができる。
【００１３】
本発明の別のシステム形態は、ネットワーク化されたシステムを含む。ネットワーク化されたシステムは、第１のバッファへの参照を含むカスタマイズ可能なタグベースのメッセージを送信するためのメッセージセンダを含む。ネットワーク化されたシステムは、カスタマイズ可能なタグベースのメッセージを代行受信するための中間装置（ｉｎｔｅｒｍｅｄｉａｒｙ）をさらに含む。ネットワーク化されたシステムは、中間装置からカスタマイズ可能なタグベースのメッセージを受信するためのメッセージレシーバをさらに含む。メッセージレシーバは、カスタマイズ可能なタグベースのメッセージの中の参照を処理して、別のバッファの中の情報が第２のバッファに転送されるか、または第２のバッファの中に格納された情報がその別のバッファに転送されるようにすることができる。
【００１４】
本発明のコンピュータ可読媒体形態は、ネットワーク化されたシステムが参照によって情報を送信する動作を処理するために用いるコンピュータ可読媒体上に格納された、カスタマイズ可能なタグベースのデータ構造を含む。データ構造は、制御情報を示すヘッダタグを備える。ヘッダタグは、バッファを表すためのサービスを示すサービスタグを含む。  サービスタグは、バッファを表すサービスのＵＲＩを示すＵＲＩ属性、およびサービスのＵＲＩを介してバッファに関連付けられた識別子属性を含む。データ構造は、データ情報を示すボディタグをさらに備え、ボディタグは、識別子属性を使用してバッファを参照することができる。
【００１５】
本発明の追加のシステム形態は、ネットワーク化されたシステムを含む。ネットワーク化されたシステムは、中央演算処理装置と、第１のバッファを含むメモリと、カスタマイズ可能なタグベースのメッセージの中の参照を処理して、中央演算処理装置がコピー命令を実行することを要することなしに、第１のバッファの中に格納された情報が別のバッファに転送されるか、またはその別のバッファの中に格納された情報が第１のバッファに転送されることをもたらすことができるネットワークインターフェースカードとを含む。
【００１６】
本発明の方法形態は、カスタマイズ可能なタグベースのプロトコルにおいて参照によって送信を行うためのコンピュータによって実施される方法を含む。コンピュータによって実装される方法は、転送コンテキストを含む、カスタマイズ可能なタグベースのメッセージを準備するステップを含む。転送コンテキストは、カスタマイズ可能なタグベースのメッセージに情報を埋め込む必要なしに、情報を格納するための第１のバッファへの参照を含む。方法は、カスタマイズ可能なタグベースのメッセージをネットワークに送信するステップをさらに含む。
【００１７】
本発明の別のコンピュータ可読媒体形態は、カスタマイズ可能なタグベースのプロトコルにおいて参照によって送信を行うための方法を実施するためのコンピュータ実行可能命令を有するコンピュータ可読媒体を含む。方法は、転送コンテキストを含むようにカスタマイズ可能なタグベースのメッセージを準備するステップを含む。転送コンテキストは、カスタマイズ可能なタグベースのメッセージに情報を埋め込む必要なしに、情報を格納するための第１のバッファへの参照を含む。方法は、カスタマイズ可能なタグベースのメッセージをネットワークに送信するステップをさらに含む。
【００１８】
本発明の以上の態様、および付随する利点の多くは、添付の図面と併せて解釈される、以下の詳細な説明を参照することで本発明がよりよく理解されるにつれ、より容易に認められよう。
【発明を実施するための最良の形態】
【００１９】
本発明の様々な実施形態では、カスタマイズ可能なタグベースのメッセージは、１つまたは複数の情報への１つまたは複数の参照を、それらの情報がカスタマイズ可能なタグベースのメッセージに埋め込まれる必要なしに含むことが可能な、１つの装置から別の装置に電子的に伝送される情報の単位である。カスタマイズ可能なタグベースのメッセージは、任意の適切なプロトコルに準拠することが可能である。１つの適切なプロトコルには、ＳＯＡＰなどのカスタマイズ可能なタグベースのプロトコルが含まれるが、その他のプロトコルを使用することもできる。例示的なカスタマイズ可能なタグベースのメッセージは、ヘッダとボディに分けられたテキストの１つまたは複数のブロックを含むことが可能である。ヘッダは、好ましくは、情報が、カスタマイズ可能なタグベースの言語に埋め込むのに望ましくなく大き過ぎる場合、その情報への参照を含む。参照は、任意の適切な形態から作成することができる。１つの適切な形態には、ＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）が含まれるが、その他の形態を使用することもできる。ヘッダの中の参照は、範囲がカスタマイズ可能なタグベースの言語に限定される名前に関連付けることができる。一般に、ヘッダは、ＵＲＩの解決の仕方（その結果、ＵＲＩによって特定されるバッファをどのように見つけるか）に関するヒントを含む。カスタマイズ可能なタグベースの言語の本文は、ＵＲＩの代りにその名前を使用して、情報を参照することができる。名前は、情報の間接指示（ｉｎｄｉｒｅｃｔｉｏｎ）として作用し、無許可のアクセスを防止するように本文が保護されることを可能にする。また、名前により、情報に対するＵＲＩの関係がそのままでありながら、ヘッダの中でＵＲＩを変更することも可能になる（例えば、ＵＲＩは、ファイアウォールなどの中間装置によって変更されることが可能である）。名前を使用しない様々な実施形態では、情報に対するＵＲＩの関係が変わらないままでありながら、ヒントが、中間装置によって変更されることが可能である。カスタマイズ可能なタグベースのメッセージは、物理リンクを介してセンダからレシーバに直接にルーティングすること、あるいはカスタマイズ可能なタグベースのメッセージが宛先に到達するまで１つのシステムから別のシステムにメッセージをルーティングする１つまたは複数の中間装置を介して、全体または部分を受け渡すことができる。
【００２０】
そのようなメッセージをシステム２００におけるカスタマイズ可能なタグベースのメッセージ２０６で示している。図２Ａを参照されたい。システム２００は、メッセージセンダ２０２およびメッセージレシーバ２０４を備える。メッセージセンダ２０２およびメッセージレシーバ２０４を、任意の適切なコンピューティング装置から構成することができる。メッセージセンダ２０２に適切なコンピューティング装置には、マルチメディア情報のような情報の送信を生成する、または円滑にするコンピューティング装置が含まれる。１つの適切なメッセージセンダ２０２には、ビデオカメラとビデオカセットレコーダを組み合わせた小型ポータブル装置であるビデオカメラ（ｃａｍｃｏｒｄｅｒ）が含まれる。  メッセージレシーバ２０４に適切なコンピューティング装置には、マルチメディア情報などの情報を受信し、処理し、提示または表示することができるコンピューティング装置が含まれる。１つの適切なメッセージレシーバ２０４には、スタイラスまたはデジタルペンを使用する手書きテキストの入力用のタッチセンシティブコンピュータスクリーンタブレットであり、１次パーソナルコンピュータとしても、メモ書き装置としても機能することができるタブレットＰＣが含まれる。システム２００は、障害の時点から再送信を行おうとする数回の再試行が可能であるため、伝送障害が存在する状況で、カスタマイズ可能なタグベースのメッセージ２０６のようなカスタマイズ可能なタグベースのメッセージのより高度な伝送を可能にする。
【００２１】
カスタマイズ可能なタグベースのメッセージ２０６は、ルートタグ２０６Ａ＜ＳＯＡＰ：ＥＮＶＥＬＯＰＥ＞と、対になる終了タグ２０６Ｐ＜／ＳＯＡＰ：ＥＮＶＥＬＯＰＥ＞を含む。タグ２０６Ａとタグ２０６Ｐの間には、タグ２０６Ｃ＜ＳＯＡＰ：ＨＥＡＤＥＲ＞と、対になる終了タグ２０６Ｅ＜／ＳＯＡＰ：ＨＥＡＤＥＲ＞の間に定義されたヘッダ要素が含まれる。ヘッダ要素は、メッセージセンダ２０２からメッセージレシーバ２０４に送信される制御情報を含むように設計される。ヘッダ要素は、内容がそこで検討される必要がないことを意味する省略記号（「．．．」）を含むことが示されている。本発明の様々な実施形態は、カスタマイズ可能なタグベースのメッセージ２０６の中にヘッダ要素が存在することを要さない。一対のタグ２０６Ｇ＜ＳＯＡＰ：ＢＯＤＹ＞と２０６Ｏ＜／ＳＯＡＰ：ＢＯＤＹ＞により、カスタマイズ可能なタグベースのメッセージ２０６のボディ要素が定義される。タグ２０６Ｇとタグ２０６Ｏの間には、タグ２０６Ｉ＜Ｍ：ＭＵＬＴＩＭＥＤＩＡ＞と、対になる終了タグ＜／Ｍ：ＭＵＬＴＩＭＥＤＩＡ＞２０６Ｍの間に定義されたマルチメディア要素が含まれる。タグ２０６Ｉは、マルチメディア要素の名前空間を定義するための属性ＸＭＬＮＳ：Ｍを含む。属性ＸＭＬＮＳ：Ｍは、アドレス「ＨＴＴＰ：／／Ｅ．ＯＲＧ／ＭＵＬＴＩＭＥＤＩＡ」において定義される。タグ２０６Ｉとタグ２０６Ｍの間には、タグ＜Ｍ：ＶＩＤＥＯ＞と、対になる終了タグ＜／Ｍ：ＶＩＤＥＯ＞によって行２０６Ｋにおいて定義されるビデオ要素が含まれる。ビデオ要素は、ビデオ情報を含む代りに、値が「ＩＤ：０９２３３５２３」である参照（ビデオ情報への）を含む。参照の値は、送信されるべき情報を含むか、あるいは情報を受信するためのリポジトリとして作用することが可能なバッファ２０２Ａを特定するＵＲＩ２０２Ｂである。前述の例では、ＵＲＩ２０２Ｂは、メッセージセンダ２０２からメッセージレシーバ２０４に送信されるべきビデオ情報を含むバッファ２０２Ａを特定する。メッセージレシーバ２０４は、情報を送信するため、または受信するためにＵＲＩ２０４Ｂにおいて特定可能なバッファ２０４Ａを含む。
【００２２】
図２Ａに示した様々な要素が、図２Ｂで繰り返されており、このため、それらの要素の説明は、簡潔にするために以下では繰り返さない。図２Ｂは、中間装置２０８をさらに示している。中間装置２０８は、それ自体をメッセージセンダ２０２とメッセージレシーバ２０４の中間に置き、カスタマイズ可能なタグベースのメッセージ２０６を代行受信することができる。中間装置２０８は、カスタマイズ可能なタグベースのメッセージセンダとカスタマイズ可能なタグベースのレシーバの両方として同時に作用する。中間装置２０８が、バッファ２０４Ａに転送中であるバッファ２０２Ａの中の情報が、中間装置２０８によって代行受信されることを要求しない場合、メッセージレシーバ２０４は、ＵＲＩ２０２Ｂを介してバッファ２０２Ｂと直接に通信して、バッファ２０２Ａの中の情報を読み取ることができる。
【００２３】
図２Ａ、図２Ｂに示したカスタマイズ可能なタグベースのメッセージ２０６は、一実施形態によれば、カスタマイズ可能なタグベースのメッセージ２０６のボディ要素内に情報への参照を置く。この実施形態では、ヘッダは、使用する必要がない。この実施形態は、カスタマイズ可能なタグベースのメッセージ２０６のボディ要素が、暗号化またはその他の手段によってセキュリティで保護されない場合、特に有用である。まこの実施形態は、メッセージレシーバ２０４が、メッセージセンダ２０２と直接に通信して、中間装置２０８を経由することなしにバッファ２０２Ａから情報を読み取る、またはバッファ２０２Ａに情報を書き込むことができる場合に使用することもできる。
【００２４】
図２Ａ、２Ｂに示した様々な要素が、図２Ｃで繰り返されており、このため、それらの要素の説明は、簡潔にするために以下では繰り返さない。図２Ｃは、カスタマイズ可能なタグベースのメッセージ２０７、および中間装置２０８用のステージングバッファ２０８Ａをさらに示している。図２Ｃは、中間装置２０８が、カスタマイズ可能なタグベースのメッセージ２０７のようなカスタマイズ可能なタグベースのメッセージ、およびカスタマイズ可能なタグベースのメッセージ２０７によって参照される情報の代行受信を要求する実施形態を示している。
【００２５】
カスタマイズ可能なタグベースのメッセージに関して、タグ２０６Ｃとタグ２０６Ｅの間には、開始タグ２０６Ｒ＜Ｒ：ＢＵＦＦＥＲ＞と、対になる終了タグ２０６Ｘ＜／Ｒ：ＢＵＦＦＥＲ＞によって定義されるバッファ要素が含まれる。タグ２０６Ｒは、「ＩＤ１」を含むように定義された属性ＩＤを含む。属性ＩＤは、カスタマイズ可能なタグベースのメッセージ２０７に対するローカルスコープ（ｌｏｃａｌ  ｓｃｏｐｅ）の名前であり、この名前は、カスタマイズ可能なタグベースのメッセージ２０７のボディ要素（タグ２０６Ｇとタグ２０６Ｏによって定義される）内で後に使用される。行２０６Ｔは、バッファ２０２ＡのＵＲＩ２０２Ｂであるバッファ２０２Ａへの参照を定義している。行２０６Ｔは、開始タグ＜Ｒ：ＥＮＤＰＯＩＮＴ＞と、対になる終了タグ＜／Ｒ：ＥＮＤＰＯＩＮＴ＞によって定義された終点要素を含み、これらのタグの間の内容は、ＵＲＩ２０２Ｂを定義するＩＤ：０９２３３５２３である。バッファ要素は、終点要素を介して属性ＩＤとバッファ２０２ＡのＵＲＩ２０２Ｂの間に関連付けを作成する。
【００２６】
行２０６Ｖは、（バッファ２０２Ａの中に格納されている情報を埋め込む代りに）ヘッダ要素の中で前に宣言されている属性ＩＤを参照することによって含むビデオ要素を定義する。属性ＩＤは、ヘッダの中で宣言された属性ＩＤに関連するＵＲＩが、中間装置２０８によって変更される場合でも、バッファ２０２Ａの中に格納されている情報に対するカスタマイズ可能なタグベースのメッセージ２０７のボディ要素内に関係を作る。行２０６Ｖのビデオ要素は、タグ＜Ｍ：ＶＩＤＥＯ＞、ならびに属性ＨＲＥＦを定義している。ＨＲＥＦ属性は、「＃ＩＤ１」を含むように定義され、ここで、＃は、名前ＩＤ１がヘッダの中で定義されていることを示す区切り記号であり、関連するＵＲＩが行２０６Ｔで定義されている。
【００２７】
前述のように、タグ２０６Ｇとタグ２０６Ｏの間に定義されたカスタマイズ可能なタグベースのメッセージ２０７の本文は、無許可のアクセスを防止するように保護することができる。中間装置２０８は、カスタマイズ可能なタグベースのメッセージ２０７の本文を処理する必要がない。中間装置２０８は、カスタマイズ可能なタグベースのメッセージ２０７のヘッダ要素内の情報を使用し、ステージングバッファ２０８Ａを作成し、バッファ２０２Ａ内の情報をバッファ２０４Ａに直接に転送することができない状況に対応することができる。１つのそのような状況には、中間装置が、メッセージセンダ２０２とメッセージレシーバ２０４の間のファイアウォールとして作用する事例が含まれる。
【００２８】
ステージングバッファ２０８Ａは、好ましくは、バッファ２０２Ａがバッファ２０８Ａに通信して、情報を転送することができるＵＲＩ２０８Ｂを有する。その場合、中間装置２０８は、ステージングバッファ２０８Ａが情報をバッファ２０４Ａに転送することを可能にする。メッセージレシーバ２０４は、ステージングバッファ２０８ＡのＵＲＩ２０８Ｃを使用することにより、メタデータ情報に関してステージングバッファ２０８Ａへのクエリを行うことができる。このように機能する中間装置２０８の一例が、前述のようなファイアウォールである。ファイアウォールは、インターネットなどの別のネットワークから来る保護されていないアクセスから組織のネットワークを保護することを目的とするセキュリティシステムである。ファイアウォールは、組織のネットワーク内のメッセージセンダ２０２のようなコンピュータが、そのネットワーク外部のメッセージレシーバ２０４のようなコンピュータと直接に通信すること、およびその逆を防止する。すべての通信は、組織のネットワークの境界において中間装置２０８経由でルーティングされ、ファイアウォールとして動作する中間装置２０８は、バッファ２０２Ａの中に格納されている情報のような特定のメッセージに境界を通過させることが安全か否かを判断する。
【００２９】
図３は、１つまたは複数の中間装置２０８によって代行受信されることが可能なメッセージセンダ２０２からメッセージレシーバ２０４に受け渡されることが可能である例示的なカスタマイズ可能なタグベースのメッセージ３００を示す構造図である。カスタマイズ可能なタグベースのメッセージ３００は、ルートタグ３０２＜ＳＯＡＰ：ＥＮＶＥＬＯＰＥ＞と、対になる終了タグ３３８＜／ＳＯＡＰ：ＥＮＶＥＬＯＰＥ＞の間に定義されたエンベロープ要素を含む。タグ３０２は、ＳＯＡＰメッセージの名前空間を定義する属性ＸＭＬＮＳ：Ｓを含む。属性ＸＭＬＮＳ：Ｓは、アドレス「ＨＴＴＰ：／／ＷＷＷ．Ｗ３．ＯＲＧ／２００３／０５／ＳＯＡＰ−ＥＮＶＥＬＯＰＥ」に等しいとされる。
【００３０】
タグ３０２とタグ３３８の間には、開始タグ３０４＜ＳＯＡＰ：ＨＥＡＤＥＲ＞と、対になる終了タグ３２６＜／ＳＯＡＰ：ＨＥＡＤＥＲ＞の間に定義されたヘッダ要素が含まれる。タグ３０４とタグ３２６の間には、開始タグ３０６＜Ｒ：ＲＤＭＡ＞と、対になる終了タグ３２４＜／Ｒ：ＲＤＭＡ＞の間に定義されたＲＤＭＡ要素が含まれ、ＲＤＭＡ要素は、リモートダイレクトメモリアクセス（ＲＤＭＡ）転送セッションに関連する制御情報を含む。タグ３０６は、ＲＤＭＡ要素の名前空間を定義するための属性ＸＭＬＮＳ：Ｒを含む。名前空間ＸＭＬＮＳ：Ｒは、アドレス「ＨＴＴＰ：／／ＭＡＧＮＥＴ／ＣＯＮＴＲＡＣＴ／２００３／０８／ＲＤＭＡ．ＸＳＤ」に等しいとされる。タグ３０６とタグ３２４の間には、開始タグ３０８＜Ｒ：ＳＥＲＶＩＣＥＩＮＦＯ＞と、対になる終了タグ３２２＜／Ｒ：ＳＥＲＶＩＣＥＩＮＦＯ＞の間に定義されたセッションサービス要素が含まれ、セッションサービス要素は、ノード４０２（図４Ｂ）におけるバッファ４０２Ｂ１を表すセッションサービス４０２Ｆに関連する制御情報を含む。タグ３０８は、セッションサービス４０２ＦのＵＲＩ４０２Ｆ１に等しいとされる属性ＳＥＲＶＩＣＥを含み、ＵＲＩ４０２Ｆ１は、この場合、「ＲＤＭＡＰ：０９２３３５２３−３４５Ｂ−４３５１−Ｂ６２３−５ＤＳＦ３５ＳＧＳ５Ｄ６」と定義される。タグ３０８とタグ３２２の間には、ネットワーク上の他のコンピュータ群へのアクセスを有するサーバコンピュータ、つまりノード４０２を定義するためのタグ３１０＜Ｒ：ＨＯＳＴ＞が含まれる。この事例では、タグ３１０は、「ＥＸＡＭＰＬＥ．ＣＯＭ」と定義される。タグ３０８とタグ３２２の間には、コンピュータ群が互いに接続し、可能な限り少ない誤りを伴って情報を交換できるようにするように設計された規則または規格の１セットであるプロトコルを定義するためのタグ３１２＜Ｒ：ＰＲＯＴＯＣＯＬ＞が存在する。この事例では、タグ３１２は、数６と定義される。タグ３０８とタグ３２２の間には、ネットワーク通信を行うことができるようにタグ３１０によって定義されたホスト上のポートを定義するためのタグ３１４＜Ｒ：ＰＯＲＴ＞が含まれる。この事例では、タグ３１４は、数８０８と定義される。タグ３０８とタグ３２２の間には、バッファ４０２Ｂ１を表すセッションサービス４０２Ｆの１つまたは複数の動作を記述するコントラクトを定義するためのタグ３１６＜Ｒ：ＣＯＮＴＲＡＣＴ＞が含まれる。コントラクトの１つの適切な実装を、本出願と同時に出願した「非集中型の分散オペレーティングシステム（Decentralized, Distributed Operating System）」という名称の米国特許出願において説明している。タグ３１６は、バッファ２０２Ａを表すサービスのコントラクトを見つけることができるアドレス、「ＨＴＴＰ：／／ＥＸＡＭＰＬＥ．ＯＲＧ／ＲＤＭＡ／ＲＥＡＤ」を含む。タグ３０８とタグ３２２の間には、ＲＮＩＣ（ネットワークインターフェースカード、およびその他のサポートするインフラストラクチャを含むリモートダイレクトメモリアクセス操作を理解することができるネットワークインターフェース）が使用することができるステアリングタグを定義するためのタグ３１８＜Ｒ：ＴＡＧ��が含まれる。タグ３１８は、この事例では、バッファ４０２Ｂ１の物理アドレスに関連付けられたステアリングタグの識別子である数字の連続９８３４５２３４６を含む。タグ３０８とタグ３２２の間には、バッファ２０２Ａの長さを定義するためのタグ３２０＜Ｒ：ＬＥＮＧＴＨ＞が含まれる。この事例では、タグ３２０は、２３１２４５６４６であるバッファ４０２Ｂ１の長さを定義する。タグ３１０〜３２０は、ネットワークパフォーマンスを向上させるオプションとしてヘッダの中に置かれ、タグ３１０〜３２０によって記述されるヒントの１つまたは複数を獲得するために他のノードが、カスタマイズ可能なタグベースのメッセージ３００の発信元と通信する必要がないようにするヒントである。
【００３１】
カスタマイズ可能なタグベースのメッセージ３００は、開始タグ３２８＜ＳＯＡＰ：ＢＯＤＹ＞と、対になる終了タグ３３６＜／ＳＯＡＰ：ＢＯＤＹ＞の間に定義されたボディ要素を含む。本発明の様々な実施形態において参照が使用されるため、カスタマイズ可能なタグベースのメッセージ３００の本文は、実際の情報を埋め込まれる必要がなく、カスタマイズ可能なタグベースのメッセージ３００の外部に格納されている情報を指す１つまたは複数の参照を使用することができる。タグ３２８とタグ３３６の間には、開始タグ３３０＜Ｍ：ＭＵＬＴＩＭＥＤＩＡ＞と、対になる終了タグ３３４＜／Ｍ：ＭＵＬＴＩＭＥＤＩＡ＞の間に定義されたマルチメディア要素が含まれる。タグ３３０とタグ３３４の間には、この場合では「ＲＤＭＡＰ：０９２３３５２３−３４５Ｂ−４３５１−Ｂ６２３−５ＤＳＦ３５ＳＧＳ５Ｄ６」である参照を含む、タグ３３２＜Ｍ：ＶＩＤＥＯ＞と、対になる終了タグ＜／Ｍ：ＶＩＤＥＯ＞によって定義されたビデオ要素が含まれる。
【００３２】
ネットワーク化されたシステム４００は、メッセージセンダ２０２のようなメッセージセンダを含むノード４０２と、メッセージレシーバ２０４のようなメッセージレシーバを含むノード４０４とを備える。図４Ａを参照されたい。ノード４０２、４０４は、中央演算処理装置４０２Ａ、４０４Ａを含む。中央演算処理装置４０２Ａ、４０４Ａは、それぞれがコンピューティング装置の計算−制御ユニットである。中央演算処理装置４０２Ａ、４０４Ａは、命令を解釈し、実行する装置である。中央演算処理装置４０２Ａ、４０４Ａは、命令をフェッチし、復号化し、実行する能力、ならびにコンピュータのメインデータ転送パスまたは転送バスを介し、その他のリソースに情報を転送する能力、およびその他のリソースから情報を転送する能力を有する。本発明の様々な実施形態では、中央演算処理装置という用語は、ノード４０２、４０４のプロセッサを包含する。
【００３３】
ノード４０２、４０４は、メモリ４０２Ｂ、４０４Ｂを含む。メモリ４０２Ｂ、４０４Ｂには、情報を格納することができ、情報を取り出すことができる装置が含まれる。メモリ４０２Ｂ、４０４Ｂは、ディスクドライブまたはテープドライブなどの外部ストレージを指すことが可能であるが、中央処理装置４０２Ａ、４０４Ａに直接に接続された高速半導体ストレージ（ＲＡＭ）であるコンピュータのメインメモリを指すことも可能である。  メモリ４０２Ｂ、４０４Ｂにはそれぞれ、２つの場所または装置の間で転送されるのを待つ間、情報が一時的に保持される中間リポジトリとして使用するために確保されたメモリの領域であるバッファ４０２Ｂ１、４０４Ｂ１が含まれる。
【００３４】
ノード４０２、４０４には、ＲＮＩＣ４０２Ｃ、４０４Ｃが含まれる。ＲＮＩＣ４０２Ｃ、４０４Ｃは、ノード４０２、４０４、およびネットワーク伝送が伝わるケーブル配線などの物理媒体の間を仲介する。ＲＮＩＣ４０２Ｃ、４０４Ｃは、バッファアドレス４０２Ｃ１、４０４Ｃ１をステアリングタグ（図４Ａ、図４ＢにＳ−ＴＡＧとして示す）４０２Ｃ２、４０４Ｃ２に関連付ける。バッファアドレス４０２Ｃ１、４０４Ｃ１は、バッファ４０２Ｂ１、４０４Ｂ１のアドレスを指す。ステアリングタグ４０２Ｃ２、４０４Ｃ２は、中央演算処理装置４０２Ａ，４０４Ａがコピー命令を実行する必要なしに、バッファ４０２Ｂ１、４０４Ｂ１内の情報を転送するＲＮＩＣ４０２Ｃ、４０４Ｃによって使用される。
【００３５】
ＲＮＩＣ４０２Ｃ、４０４Ｃは、ネットワーク４０６によって一緒に結合される。ネットワーク４０６は、通信設備によって接続された一群のコンピュータ、および関連する装置群である。ネットワーク４０６には、ケーブルなどの永久接続、あるいは電話リンクまたは通信リンクを介して行われる一時接続が関与することが可能である。ネットワーク４０６は、少数のコンピュータ、プリンタ、およびその他の装置から成るＬＡＮ（ローカルエリアネットワーク）のように小規模であることも、広大な地理的区域にわたって分散された多数の小型コンピュータ群および大型コンピュータ群から成ることも可能である（ＷＡＮ、つまりワイドエリアネットワーク）。本発明の様々な実施形態により、かさばるデータをカスタマイズ可能なタグベースのメッセージ３００とともに含める必要なしに、カスタマイズ可能なタグベースのメッセージ３００が、ノード４０２とノード４０４の間で通信される制御情報を含むことが可能になる。
【００３６】
本発明の様々な実施形態は、カスタマイズ可能なタグベースのメッセージ３００内の１つまたは複数の参照を使用し、バッファ４０２Ｂ１、４０４Ｂ１の中に格納されている情報をカスタマイズ可能なタグベースのメッセージ３００のボディ要素の中に含める必要なしに、バッファ４０２Ｂ１、４０４Ｂ１の中に格納されている１つまたは複数の情報を参照する。カスタマイズ可能なタグベースのメッセージ３００が適切なノード４０２、４０４によって受信されたとき、参照は解決され、およびＲＮＩＣ４０２Ｃ、４０４Ｃは、互いに通信し、中央処理装置４０２Ａ、４０４Ａがコピー命令を実行することを要求することなしに、情報の転送を可能にする。
【００３７】
図４Ａに示した様々な要素が、図４Ｂで繰り返されており、このため、それらの要素の説明は、簡潔にするために以下では繰り返さない。図４Ｂは、別のネットワーク化されたシステムを示している。ノード４０２は、ＵＲＩ４０２Ｄ１において特定可能なセンダサービス（ｓｅｎｄｅｒ  ｓｅｒｖｉｃｅ）４０２Ｄを含む。サービスの１つの適切な実装は、「非集中型の分散オペレーティングシステム」という名称の、本出願と同時に出願した前述の米国特許出願で説明するとおりである。センダサービス４０２Ｄは、メッセージセンダ２０２のようなメッセージセンダを表す。
【００３８】
センダサービス４０２Ｄは、制御情報、およびバッファ４０２Ｂ１の中に格納されている情報への参照を含むカスタマイズ可能なタグベースのメッセージ３００の発信元である。ノード４０２は、ＵＲＩ４０２Ｅ１において特定可能なセッションマネージャサービス４０２Ｅを含む。セッションマネージャサービス４０２Ｅは、ノード４０２とノード４０４の間で新たな転送セッションを作成することを担う。好ましくは、セッションマネージャサービス４０２Ｅは、ノード４０２にセンダサービス４０２Ｄと一緒に配置される。ノード４０２は、ＵＲＩ４０２Ｆ１において特定可能なセッションサービス４０２Ｆを含む。セッションサービス４０２Ｆは、セッションマネージャサービス４０２Ｅによって作成され、ステアリングタグ４０２Ｃ２をバッファ４０２Ｂ１が存在するバッファアドレス４０２Ｃ１に関連付ける。セッションサービス４０２Ｆは、要するに、バッファ４０２Ｂ１を表す。ノード４０２の外部および内部の様々なサービスが、セッションサービス４０２Ｆへのクエリを行い、バッファ４０２Ｂ１の長さ、およびそのステアリングタグ４０２Ｃ２などの、バッファ４０２Ｂ１に関するメタデータ情報を獲得することができる。
【００３９】
ノード４０４は、ＵＲＩ４０４Ｄ１において特定可能なレシーバサービス４０４Ｄを含む。レシーバサービス４０４Ｄは、メッセージレシーバ２０４のようなメッセージレシーバを表す。レシーバサービス４０４Ｄは、それがセンダサービス４０２Ｄによって送信されたカスタマイズ可能なタグベースのメッセージ３００を受信したとき、カスタマイズ可能なタグベースのメッセージ３００を解析する。レシーバサービス４０４Ｄが、カスタマイズ可能なタグベースのメッセージ３００のボディ要素内で情報への参照を発見した場合、レシーバサービス４０４Ｄは、好ましくは、ＵＲＩ４０４Ｅ１において特定可能なセッションマネージャサービス４０４Ｅの協力を得る。セッションマネージャサービス４０４Ｅは、ＵＲＩ４０２Ｆ１におけるセッションサービス４０２Ｆと通信してステアリングタグ４０２Ｃ２を獲得するか、またはステアリングタグ４０２Ｃ２が、カスタマイズ可能なタグベースのメッセージ３００のヘッダ内に既に含まれている。ステアリングタグ４０２Ｃ２を使用して、ＲＮＩＣ４０４Ｃは、中央演算処理装置４０２Ａ、４０４Ａによってコピー命令が実行される必要なしに、ＲＮＩＣ４０２Ｃと通信してバッファ４０２Ｂ１のバッファアドレス４０２Ｃ１を獲得し、ネットワーク４０６を介して、バッファ４０２Ｂ１の中の情報をメモリ４０４Ｂのバッファ４０４Ｂ１の中に転送する。
【００４０】
図５Ａ〜５Ｉは、カスタマイズ可能なタグベースのプロトコルにおいて参照によって送信を行うための方法５００を示している。簡明にするため、方法５００の下記の説明では、メッセージセンダ２０２、メッセージレシーバ２０４（図２Ａ）、中間装置２０８（図２Ｃ）、ステージングバッファ２０８Ａ（図２Ｃ）、カスタマイズ可能なタグベースのメッセージ３００（図３）、ならびに様々なサービス４０２Ｄ、４０２Ｅ、４０２Ｆ、４０４Ｄ、および４０４Ｅ（図４Ｂ）に関連して示す様々な要素を参照する。開始ブロックから、方法５００は、継続端子（「端子Ａ」）と終了端子（「端子Ｂ」）の間に定義された方法ステップ５０２のセットに進む。方法ステップ５０２のセットは、センダサービスが、１つまたは複数のバッファへの１つまたは複数の参照を有するカスタマイズ可能なタグベースのメッセージを準備するプロセスを記述している（図５Ｂ〜５Ｄ参照）。
【００４１】
端子Ａ（図５Ｂ）から、方法５００は、ブロック５０８に進み、メッセージセンダ２０２のようなセンダサービス４０２Ｄが、ノード４０２のような第１のノードにおいて、ディレクトリから、セッションマネージャサービス４０２Ｅのようなセッションマネージャサービスを見つける。ブロック５１０において、センダサービス４０２Ｄは、転送セッション作成要求をセッションマネージャサービス４０２Ｅに対して発行する。転送セッション作成要求は、ノード４０４のような第２のノードにおいて、メッセージレシーバ２０４のようなレシーバサービス４０４ＤのＵＲＩ４０４Ｄ１を特定するパラメータとともに送信される。ブロック５１２を参照されたい。
【００４２】
方法５００は、ブロック５１４に進み、転送セッション作成要求を、ＵＲＩ４０４Ｄ１のようなレシーバサービスのＵＲＩを特定するパラメータとともに受信する。ブロック５１６において、セッションマネージャは、マッピング要求をネットワークマネージャ（図示せず）に対して発行する。マッピング要求は、レシーバサービス４０４ＤのＵＲＩ４０４Ｄ１、およびバッファ４０２Ｂ１のようなローカルバッファのアドレス４０２Ｃ１と共に送信される。ブロック５１８を参照されたい。方法５００は、ブロック５２０に進み、ネットワークマネージャが、ローカルバッファのアドレス（要素４０２Ｃ１）をＲＮＩＣ４０２ＣのようなＲＮＩＣに受け渡し、ステアリングタグ４０２Ｃ２のようなステアリングタグを要求する。次に、方法５００は、別の継続端子（「端子Ａ１」）に入る。
【００４３】
端子Ａ１（図５Ｃ）から、方法５００は、ブロック５２２に進み、ＲＮＩＣ４０２Ｃが、ステアリングタグ４０２Ｃ２をローカルバッファ４０２Ｃ１のアドレスに関連付け、ステアリングタグ４０２Ｃ２をネットワークポート番号とともに戻す。ネットワークポート番号は、特定のセッションに対してネットワーク通信が行われるＲＮＩＣ４０２Ｃ上のポートの識別子である。ブロック５２４において、セッションマネージャ４０２Ｅは、ＵＲＩ４０２Ｆ１を有するセッションサービス４０２Ｆを作成し、ＵＲＩ４０２Ｆ１は、転送コンテキストを、そのような情報を要求する他のサービスに提供することができる。次に、セッションマネージャ４０２Ｅは、ステアリングタグ４０２Ｃ２をローカルバッファ４０２Ｃ１のアドレスに関連付ける転送コンテキストを作成する。ブロック５２６を参照されたい。一実施形態では、転送コンテキストは、好ましくは、ノード４０２のホスト、プロトコル、ＲＮＩＣ４０２Ｃによって作成されたポート、セッションサービス４０２Ｆに関連するコントラクト、ステアリングタグ４０２Ｃ２、およびバッファ４０２Ｂ１の長さなどの情報を含む。別の実施形態では、転送コンテキストは、前述した様々な情報を含み、さらに、セッションサービス４０２ＦのＵＲＩ４０２Ｆ１を含む。転送コンテキストの１つの例示的な実装を、図３にタグ３０８、３１０、３１２、３１４、３１６、３１８、および３２０で示している。
【００４４】
方法５００は、ブロック５２８に進み、セッションサービスは、基本的に、他のサービスが、前述した転送コンテキストのようなメタデータ情報へのクエリを行うことができるようにするローカルバッファ４０２Ｂ１を表す。ブロック５３０では、セッションマネージャ４０２Ｅは、転送セッション作成応答をセンダサービス４０２Ｄに対して発行する。  この応答と共に、セッションサービス４０２ＦのＵＲＩ４０２Ｆ１、および転送コンテキストが送信される。センダサービス４０２Ｄ１が、セッションマネージャサービス４０２Ｅから転送セッション作成応答を、セッションサービス４０２ＦのＵＲＩ４０２Ｆ１、および転送コンテキストとともに受信する。ブロック５３２を参照されたい。方法５００は、別の継続端子（「端子Ａ２」）に進む。
【００４５】
端子Ａ２（図５Ｄ）から、方法５００は、ブロック５３４に進み、センダサービス４０２Ｄが、セッションサービス４０２ＦのＵＲＩ４０２Ｆ１、および、好ましくは、転送コンテキストを含む、カスタマイズ可能なタグベースのメッセージ３００のようなカスタマイズ可能なタグベースのメッセージのヘッダ要素（タグ３０４とタグ３２６の間に定義されたヘッダ要素のような）を構築する。ブロック５３６では、センダサービス４０２Ｄ１は、セッションサービス４０２ＦのＵＲＩ４０２Ｆ１への参照を示す属性（行２０６Ｒで定義された属性ＩＤのような）を構築する。センダサービス４０２Ｄ１は、その属性を使用してバッファ４０２Ｂ１を記述するカスタマイズ可能なタグベースのメッセージ３００のボディ要素（タグ３２８とタグ３３６の間に定義されたボディ要素のような）を構築する。ブロック５３８を参照されたい。センダサービス４０２Ｄは、オプションとして、カスタマイズ可能なタグベースのメッセージ３００の本文を符号化して、無許可の改ざん、無許可のアクセス、またはその両方から本文を保護する。ブロック５４０を参照されたい。ブロック５４２において、センダサービス４０２Ｄ１は、セッションサービス４０２ＦのＵＲＩ４０２Ｆ１を含む更新要求をカスタマイズ可能なタグベースのメッセージ３００と共に送信する。第１のノード４０２のＲＮＩＣ４０２Ｃは、ネットワーク４０６のようなネットワークを介して、カスタマイズ可能なタグベースのメッセージ３００を（シリアル化された形態で）送信する。ブロック５４４を参照されたい。方法５００は、終了端子Ｂに進む。
【００４６】
端子Ｂ（図５Ａ）から、方法５００は、継続端子（「端子Ｃ」）と終了端子（「端子Ｄ」）の間に定義された方法ステップ５０４のセットに進む。方法ステップ５０４のセットは、中間ノードが、１つまたは複数のバッファへの１つまたは複数の参照を有するカスタマイズ可能なタグベースのメッセージを処理するプロセスを記述する（図５Ｅ〜５Ｆ参照）。
【００４７】
端子Ｃ（図５Ｅ）から、方法５００は、判定ブロック５４６に進み、カスタマイズ可能なタグベースのメッセージ３００を代行受信する中間装置２０８のような中間装置が存在するか否かを判定する試験が行われる。判定ブロック５４６で試験の答えが「いいえ」である場合、方法５００は、終了端子Ｄに進む。そうではなく、判定ブロック５４６における試験の答えが「はい」である場合、方法５００は、別の判定ブロック５４８に進み、中間装置が、バッファ４０２Ｂ１からバッファ４０４Ｂ１に受け渡す情報が、中間装置を経由することを要求するか否かを判定する別の試験が行われる。判定ブロック５４８における試験の答えが「いいえ」である場合、方法５００は、終了端子Ｄに進む。判定ブロック５４８における試験の答えが「はい」である場合、中間装置のＲＮＩＣは、シリアル化されたカスタマイズ可能なタグベースのメッセージ３００を受信し、中間装置がカスタマイズ可能なタグベースのメッセージ３００を解析することができるようにメッセージ３００を再構成する。一実施形態では、ＲＮＩＣは、カスタマイズ可能なタグベースのメッセージ３００を再構成する必要がなく、代わりに、シリアル化された形態を直接に扱う。方法５００は、別の継続端子（「端子Ｃ１」）に進む。
【００４８】
端子Ｃ１（図５Ｆ）から、方法５００は、ブロック５５２に進み、中間装置が、カスタマイズ可能なタグベースのメッセージ３００のヘッドを解析して、転送コンテキストを探し出す。ブロック５５４では、中間装置は、転送コンテキストの中の情報に基づいて処理ステップ５２０〜５３２（図５Ｂ〜５Ｃ）を繰り返し、ステージングバッファ２０８Ａのようなステージングバッファを作成する。ステップ５２０〜５３２は、中間装置のコンテキストにおいて実行される。方法５００は、判定ブロック５５６に進み、カスタマイズ可能なタグベースのメッセージ３００が情報を提供しているか否かを判定する試験が行われる。判定ブロック５５６における試験の答えが「いいえ」である場合、方法５００は、端子Ｃに進む。そうではない場合、判定ブロック５５６における試験の答えは、「はい」であり、方法５００は、ブロック５５８に進み、前の転送コンテキストのバッファ４０２Ｂ１の内容が、ＲＤＭＡのような適切な転送機構を介して、中間装置のステージングバッファ２０８Ａの中に転送される。ブロック５６０では、中間装置は、ステージングバッファ２０８ＡのＵＲＩ、および中間装置によって作成された転送コンテキストを含むカスタマイズ可能なタグベースのメッセージ３００のヘッダを変更する。中間装置（図示せず）のＲＮＩＣは、ネットワーク４０６を介して、カスタマイズ可能なタグベースのメッセージ３００を（シリアル化された形態）で宛先に送信する。ブロック５６２を参照されたい。方法５００は、端子Ｃに進む。
【００４９】
端子Ｄ（図５Ａ）から、方法５００は、継続端子（「端子Ｅ」）と終了端子（「端子Ｆ」）の間に定義された方法ステップのセット５０６に進む。方法ステップ５０６のセットは、レシーバサービスが、１つまたは複数のバッファへの１つまたは複数の参照を有するカスタマイズ可能なタグベースのメッセージを処理するプロセスを記述している（図５Ｇ〜５Ｉ参照）。
【００５０】
端子Ｅ（図５Ｇ）から、方法５００は、ブロック５６４に進み、第２のノード４０４におけるレシーバサービス４０４Ｄは、更新要求を受信し、カスタマイズ可能なタグベースのメッセージ３００の本文を解析する。ブロック５６６で、カスタマイズ可能なタグベースのメッセージ３００の本文の中で属性（バッファ４０２Ｂ１、または中間装置２０８のステージングバッファ２０８Ａのようなバッファを記述する属性）を発見すると、レシーバサービス４０４Ｄは、ヘッダの中で記述されている転送コンテキストを探し出す。アクションが情報を提供するアクションであるか否かを判定する試験が行われる。判定ブロック５６８を参照されたい。判定ブロック５６８における試験の答えが「はい」である場合、方法５００は、ブロック５７０に進み、レシーバサービス４０４Ｄが、転送コンテキストの中の情報に基づいて、バッファ４０４Ｂ１のようなローカルバッファを割り当てる。そうではなく、判定ブロック５６８において試験の答えが「いいえ」である場合、方法５００は、ブロック５７２に進み、レシーバサービス４０４Ｄが、所望の情報を含む第２のノード４０４に、バッファ４０４Ｂ１のようなローカルバッファを位置指定する。ブロック５７０とブロック５７２の両方から、方法５００は、ブロック５７４に進み、レシーバサービス４０４Ｄが、挿入要求を第２のノード４０４上のセッションマネージャサービス４０４Ｅに対して発行する。挿入要求とともに、カスタマイズ可能なタグベースのメッセージ３００から獲得された転送コンテキストが送信される。
【００５１】
端子Ｅ１（図５Ｈ）から、方法５００は、ブロック５７６に進み、セッションマネージャ４０４Ｅが、挿入要求を受信して、転送コンテキストを解析する。セッションマネージャ４０４Ｅは、ネットワークマネージャ（図示せず）を呼び出し、ネットワークマネージャは、ＲＮＩＣ４０４Ｃと通信して情報を転送する。アクションが情報を提供するアクションであるか否かを判定する試験が行われる。判定ブロック５８０を参照されたい。判定ブロック５８０において試験の答えが「はい」である場合、他方のノード４０２におけるＲＮＩＣ４０２Ｃ（または、カスタマイズ可能なタグベースのメッセージ３００を代行受信した中間装置が存在した場合、中間装置のＲＮＩＣ）が、中央処理装置４０２Ａ、４０４Ａからコピー命令を実行することなしに、転送コンテキストの中のステアリングタグ４０２Ｃ２を使用して、バッファ４０２Ｂ１からの情報を第２のノード４０４におけるＲＮＩＣ４０４Ｃに転送する（ＲＮＩＣ４０４Ｃは、その情報をバッファ４０４Ｂ１に提供する）。そうではない場合、判定ブロック５８０における試験の答えは「いいえ」であり、方法５００は、ブロック５８４に進み、第２のノード４０４におけるＲＮＩＣ４０４Ｃが、転送コンテキストの中のステアリングタグ４０２Ｃ２を使用して、バッファ４０４Ｂ１からの情報を他方のノード４０２におけるＲＮＩＣ４０２Ｃ（またはカスタマイズ可能なタグベースのメッセージ３００を代行受信した中間装置が存在した場合、中間装置のＲＮＩＣ）に転送する。ブロック５８２とブロック５８４の両方から、方法５００は、ブロック５８６に進み、転送が完了した後、セッションマネージャ４０２Ｅが、挿入応答をレシーバサービス４０４Ｄに対して発行する。方法５００は、別の端子（「端子Ｅ２」）に進む。
【００５２】
端子Ｅ２（図５Ｉ）から、方法５００は、ブロック５８８に進み、レシーバサービス４０４Ｄが、セッションマネージャサービス４０４Ｅからの挿入応答を受信し、センダサービス４０２Ｄに関する更新応答を発行する。ノード４０２とノード４０４の間に、カスタマイズ可能なタグベースのメッセージ３００を前に代行受信している１つまたは複数の中間装置が存在する場合、ノードＣとノードＤの間の処理ステップが繰り返され、センダサービス４０２Ｄに戻る挿入応答を含んだ新たなカスタマイズ可能なタグベースのメッセージが処理される。最終的に、センダサービス４０２Ｄは、レシーバサービス４０４Ｄから更新応答を受信し、セッションサービス４０２Ｆに対してドロップメッセージを発行する。ブロック５６２を参照されたい。ブロック５６４で、セッションサービス４０２Ｆは、ドロップメッセージを受信すると、実行を終了する。方法５００は、終了端子Ｆに進み、方法５００が実行を終了する。
【００５３】
本発明の好ましい実施形態を例示し、説明してきたが、本発明の精神および範囲を逸脱することなく、様々な変更を行うことができることを理解されたい。
【図面の簡単な説明】
【００５４】
【図１】メッセージセンダとメッセージレシーバの間で転送するためにデータをＳＯＡＰメッセージに埋め込む従来のシステムを示すブロック図である。
【図２Ａ】メッセージセンダとメッセージレシーバの間で、情報をＳＯＡＰメッセージに埋め込むことなしに参照によって情報を送信するための例示的なシステムを示すブロック図である。
【図２Ｂ】メッセージセンダ、メッセージレシーバ、および中間装置の間で、情報をＳＯＡＰメッセージに埋め込むことなしに参照によって情報を送信するための別の例示的なシステムを示すブロック図である。
【図２Ｃ】メッセージセンダ、メッセージレシーバ、および中間装置の間で、情報をＳＯＡＰメッセージに埋め込むことなしに参照によって情報を送信するための別の例示的なシステムを示すブロック図である。
【図３】ＳＯＡＰメッセージに埋め込む必要なしに情報への参照を含む例示的なＳＯＡＰメッセージを示す構造図である。
【図４Ａ】ＳＯＡＰメッセージの中の参照によって情報を送信するための例示的なネットワーク化されたシステムを示すブロック図である。
【図４Ｂ】ＳＯＡＰメッセージの中の参照によって情報を送信するための別の例示的なネットワーク化されたシステムを示すブロック図である。
【図５Ａ】本発明の一実施形態によるカスタマイズ可能なタグベースのプロトコルにおける参照によって情報を送信するための方法を示すプロセス図である。
【図５Ｂ】本発明の一実施形態によるカスタマイズ可能なタグベースのプロトコルにおける参照によって情報を送信するための方法を示すプロセス図である。
【図５Ｃ】本発明の一実施形態によるカスタマイズ可能なタグベースのプロトコルにおける参照によって情報を送信するための方法を示すプロセス図である。
【図５Ｄ】本発明の一実施形態によるカスタマイズ可能なタグベースのプロトコルにおける参照によって情報を送信するための方法を示すプロセス図である。
【図５Ｅ】本発明の一実施形態によるカスタマイズ可能なタグベースのプロトコルにおける参照によって情報を送信するための方法を示すプロセス図である。
【図５Ｆ】本発明の一実施形態によるカスタマイズ可能なタグベースのプロトコルにおける参照によって情報を送信するための方法を示すプロセス図である。
【図５Ｇ】本発明の一実施形態によるカスタマイズ可能なタグベースのプロトコルにおける参照によって情報を送信するための方法を示すプロセス図である。
【図５Ｈ】本発明の一実施形態によるカスタマイズ可能なタグベースのプロトコルにおける参照によって情報を送信するための方法を示すプロセス図である。
【図５Ｉ】本発明の一実施形態によるカスタマイズ可能なタグベースのプロトコルにおける参照によって情報を送信するための方法を示すプロセス図である。
【符号の説明】
【００５５】
１００  単純な一方向メッセージが送信されるシステム
２００  中間装置を介してメッセージが送信されるシステム
４００  ネットワーク化されたシステム
【図１】
2005160075.tif 000003
【図２Ａ】
2005160075.tif 000004
【図２Ｂ】
2005160075.tif 000005
【図２Ｃ】
2005160075.tif 000006
【図３】
2005160075.tif 000007
【図４Ａ】
2005160075.tif 000008
【図４Ｂ】
2005160075.tif 000009
【図５Ａ】
2005160075.tif 000010
【図５Ｂ】
2005160075.tif 000011
【図５Ｃ】
2005160075.tif 000012
【図５Ｄ】
2005160075.tif 000013
【図５Ｅ】
2005160075.tif 000014
【図５Ｆ】
2005160075.tif 000015
【図５Ｇ】
2005160075.tif 000016
【図５Ｈ】
2005160075.tif 000017
【図５Ｉ】
2005160075.tif 000018