(57)【要約】通信プロトコルのインターフェースは、コア部分および拡張可能な部分に分割可能に構成される。拡張可能な部分の通信プロトコルのインターフェースは、ネットワーク構成要素がそれぞれ、比較的広義に定義されたデータのセットの少なくとも一部分に対応する、一意で任意に小さい、サブセットの実際の相互運用データを通信できるように、カスタマイズされるようさらに構成される。ソフトウェア生成プログラムは、サブセットの実際のデータで動作し、また特定のネットワーク構成要素のための通信プロトコルのインターフェースの拡張可能な部分の実行を導く拡張可能なソースコードのセットを生成するよう構成される。
2008538028.tif 000002
【特許請求の範囲】
【請求項１】
命令のセットに従ってネットワーク構成要素間で情報を通信するための方法であって、
第１のネットワーク構成要素を提供するステップと、
第１の通信ソフトウェアモジュールを該第１のネットワーク構成要素にインストールするステップであって、
該第１の通信ソフトウェアモジュールは、コア部分および拡張可能な部分を有する通信インターフェース仕様による通信機能性を実行するように構成され、該拡張可能な部分は、命令の第１のセットを組み込むように構成され、命令の該第１のセットは、１つ以上の命令のモジュールを含み、
該通信機能性は、特定の型および構造のデータを組み込むように構成されるメッセージの型の第１のセットの受信および伝送を含むアクションを実行し、また該特定の型および構造のデータを組み込むように構成される該メッセージの型は、命令の該第１のセット内の命令によって定義される、ステップと、
該アクションを実行するために該第１の通信ソフトウェアモジュールを動作させるステップと、
を含む、方法。
【請求項２】
第２のネットワーク構成要素を提供するステップと、
第２の通信ソフトウェアモジュールを該第２のネットワーク構成要素にインストールするステップであって、
該第２の通信ソフトウェアモジュールは、前記通信インターフェース仕様による通信機能性を実行するように構成され、
該通信機能性は、特定の型および構造のデータを組み込むように構成されるメッセージの型の第２のセットの受信および伝送を含むアクションを実行し、該特定の型および構造のデータを組み込むメッセージの型の該第２のセットは、命令の第２のセット内の命令によって定義され、命令の該第２のセットは、命令の１つ以上のモジュールを含み、命令の該第１のセットと命令の該第２のセットとの間に補完的な重なりが存在する、ステップと、
該アクションを実行するために該第２の通信ソフトウェアモジュールを動作させるステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
命令の前記第１のセットおよび命令の前記第２のセットは、拡張マークアップ言語（ＸＭＬ）で表現される命令を含む、請求項２に記載の方法。
【請求項４】
前記第１の通信ソフトウェアモジュールは、プログラミング言語のソースコードの第１のセットによって表され、命令の前記第１のセットは、プログラミング言語によって表されず、ソフトウェア生成プログラムが命令の該第１のセットを入力し、該命令に応答してソースコードの該第１のセットの実質的な部分を生成する、請求項１に記載の方法。
【請求項５】
ソースコードの前記第１のセットの実質的な部分は、オブジェクト指向のプログラミング言語によって表現され、ソースコードの該第１のセットは、該オブジェクト指向のプログラミング言語で表現されるクラス階層内に属する１つ以上のソフトウェアのオブジェクトクラスとして表される、請求項４に記載の方法。
【請求項６】
前記特定の型および構造のデータは、オブジェクト指向のプログラミング言語で表現され、かつクラス階層内に属する１つ以上のデータのみのオブジェクトクラスとして表され、該クラス階層は、該オブジェクト指向のプログラミング言語で表現される構造を有する、請求項１に記載の方法。
【請求項７】
前記データのみのクラスは、前記第１および第２の通信ソフトウェアモジュールのうちのどちらかによる伝送および受信のために、２進数列のデータに変換される、請求項６に記載の方法。
【請求項８】
前記データのみのクラスは、前記第１および第２の通信ソフトウェアモジュールのうちのどちらかによる伝送および受信のために、ＸＭＬ数列のデータに変換される、請求項６に記載の方法。
【請求項９】
前記補完的な重なりは、命令の１つ以上のモジュールの前記第１のセットおよび命令の１つ以上のモジュールの前記第２のセットがそれぞれ命令の共通モジュールを含む状況である、請求項２に記載の方法。
【請求項１０】
前記補完的な重なりは、命令の１つ以上のモジュールの前記第１のセットが第１のモジュールを含み、また命令の１つ以上のモジュールの前記第２のセットが第２のモジュールを含み、かつ該第１のモジュールがメッセージの型のセットを伝送するように構成され、また該第２のモジュールがメッセージの型の該セットを受信するように構成される状況である、請求項２に記載の方法。
【請求項１１】
命令の前記第１のセットは、関連する後のバージョンを有するデータから、関連する旧バージョンを有するデータを表示するために、特定のモジュール内の定義の時間的順序によって特定のデータを区別する、請求項５に記載の方法。
【請求項１２】
前記通信ソフトウェアモジュールは、関連する後のバージョンを有するデータを含む１つ以上のソフトウェアオブジェクトクラスから、関連する旧バージョンを有するデータを抽出するように構成される、請求項１１に記載の方法。
【請求項１３】
前記特定の型および構造のデータは、データを監視し、かつ獲得する機器と関連して採用される、請求項１６に記載の方法。
【請求項１４】
前記特定の型および構造のデータは、医療環境内で採用される、請求項１６に記載の方法。
【請求項１５】
前記特定の型および構造のデータは、生理学的側面を表す、請求項１６に記載の方法。
【請求項１６】
コア部分および拡張可能な部分を有する通信プロトコルのインターフェース仕様に対するソフトウェアのコンプライアンスを証明するための方法であって、
コア部分および拡張可能な部分を有する通信プロトコルのインターフェース仕様を提供するステップであって、該コア部分は、固定した通信プロトコルのインターフェース規定のコアのセットを含み、該拡張可能な部分は、可変の通信プロトコルのインターフェース規定の拡張可能なセットを含む、ステップと、
該通信プロトコルのインターフェース仕様の該コア部分を実装するように構成され、かつ該ソフトウェアの拡張可能な部分と結合するように構成される、ソフトウェアのコア部分を提供するステップと、
通信プロトコルのインターフェース規定の該拡張可能なセットを特定する、拡張可能な命令のセットを提供するステップと、
拡張可能な命令の該セットを入力するように、かつ該ソフトウェアの該拡張可能な部分を出力するように構成される、ソフトウェア生成プログラムを提供および動作させるステップであって、該ソフトウェアの該拡張可能な部分は、可変の通信プロトコルのインターフェース規定の該拡張可能なセットに従う、ステップと、
該通信プロトコルのインターフェース仕様に従うソフトウェアを作成するために、ソフトウェアの該コア部分と該ソフトウェアの該拡張可能な部分とを結合するステップと、
を含む、方法。
【請求項１７】
命令の前記拡張可能なセットは、拡張マークアップ言語(ＸＭＬ)で表現される、請求項１６に記載の方法。
【請求項１８】
命令の前記拡張可能なセットは、医療環境内で採用される特定の型および構造のデータを定義する、請求項１６に記載の方法。
【請求項１９】
命令の前記拡張可能なセットは、生理学的側面を表す特定の型および構造のデータを定義する、請求項１６に記載の方法。
【請求項２０】
特定の型および構造の発展データを通信するように構成される、通信プロトコルのインターフェースであって、該インターフェースは、
通信プロトコルのインターフェースを定義するように構成され、かつコア部分および拡張可能な部分を有する通信プロトコルのインターフェース仕様であって、該コア部分は、固定した通信プロトコルのインターフェース規定のコアのセットを含み、該拡張可能な部分は、可変の通信プロトコルのインターフェース規定の拡張可能なセットを含む、通信プロトコルのインターフェース仕様を備え、
該コア部分は、データ、コマンド、エラーおよび状況情報を伝送および受信するように構成されるメッセージの型のセットを定義し、該メッセージの型のうちの少なくとも一部は、該データおよびエラー情報を伝達するように構成される少なくとも１つの可変サイズのフィールドを含み、
該拡張可能な部分は、時間とともに変化する特定の型、構造およびサイズの該データに関して、該データまたはエラー情報を定義するように構成される、
通信プロトコルのインターフェース。
【請求項２１】
発展データの定義に合致するデータを通信するための方法であって、
クライアントとして動作する第１のネットワーク構成要素を提供するステップと、
メッセージの型の第１のセットを識別、受信および伝送するように構成される第１の通信ソフトウェアモジュールを提供するステップであって、該メッセージの型のそれぞれは該第１のセットのメンバーとして選択され、かつ該発展データの定義の第１のバージョンの第１の部分に従って特定される命令に基づいて特定の型および構造のデータを組み込むように構成される、ステップと、
該第１の通信ソフトウェアモジュールを、該第１のネットワーク構成要素と関連して動作させるステップと、
を含む、方法。
【請求項２２】
サーバーとして動作する第２のネットワーク構成要素を提供するステップと、
メッセージの型の第２のセットを識別、受信および伝送するように構成される第２の通信ソフトウェアモジュールを提供するステップであって、該メッセージの型のそれぞれは該第２のセットのメンバーとして選択され、かつ前記発展データの定義の第２のバージョンの第２の部分に従って特定される命令に基づいて特定の型および構造のデータを組み込むように構成される、ステップと、
前記第１のネットワーク構成要素と通信するために、該第２の通信ソフトウェアモジュールを、該第２のネットワーク構成要素と関連して動作させるステップと、
をさらに含む、請求項２１に記載の方法。
【請求項２３】
前記発展データの定義の前記命令は、拡張マークアップ言語（ＸＭＬ）で表現される、請求項２１に記載の方法。
【請求項２４】
前記発展データの定義の少なくとも１つの部分は、該発展データの定義の他の部分を含むクラス階層内に属するクラスとして表される、請求項２１に記載の方法。
【請求項２５】
前記発展データの定義の前記第１のバージョンの前記第１の部分に従って特定される前記命令は、データ記述シート内に含まれる、請求項２１に記載の方法。
【請求項２６】
前記発展データの定義に従って取得される情報は、前記第１および第２の通信ソフトウェアモジュールのうちのどちらかによる伝送および受信のために、２進数列のデータに変換される、請求項２１に記載の方法。
【請求項２７】
前記第１のバージョンは、関連した第１のバージョンの時間の値を有し、前記第２のバージョンは、関連した第２のバージョン時間の値を有し、該第１のバージョンの時間の値は、該第２のバージョンの時間の値と等しいか、またはより早い、請求項２１に記載の方法。
【請求項２８】
前記発展データの定義のバージョンは、１つ以上のデータメンバーの関連したセットを有し、該関連したセットのデータメンバーのそれぞれは、該発展データの定義の他のバージョンと関連する他のデータメンバーの位置から区別できる識別可能な位置を有する、請求項２１に記載の方法。
【請求項２９】
前記関連したセットの前記データメンバーのそれぞれは、１つ以上の関連したバージョンのセットに割り当てられる、請求項２８に記載の方法。
【請求項３０】
前記発展データの定義の旧バージョンは、該発展データの定義から該先のバージョンに関連するデータメンバーをコピーすることによって、該発展データの定義の後のバージョンから抽出される、請求項２９に記載の方法。
【請求項３１】
命令のセットに従ってネットワーク構成要素間で情報を通信するためのシステムであって、
コア部分および拡張可能な部分を有する通信インターフェース仕様に従って通信機能性を実行するように構成される、第１の通信ソフトウェアモジュールをそれぞれ含む複数のネットワーク構成要素であって、
該拡張可能な部分は、命令の１つ以上のモジュールを含む命令の第１のセットを組み込むように構成され、
該通信機能性は、特定の型および構造のデータを組み込むように構成されるメッセージの型の第１のセットの受信および伝送を含むアクションを実行し、該特定の型および構造のデータを組み込む該メッセージの型は、命令の１つ以上のモジュールの該第１のセット内の命令によって定義される、
複数のネットワーク構成要素と、
該ネットワーク構成要素間の通信を提供するようにそれぞれ構成される１つ以上の通信チャネルと、
を含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の引用）
本願は、米国仮特許出願第６０／６６７，２０３号（代理人事件番号：２８１＿４５５ＰＲＯ、２００５年３月３０日出願）の優先権を主張し、米国仮特許出願（代理人事件番号２８１＿４５５ＰＲＯ１、２００６年３月２８日出願、タイトル「Ｓｙｓｔｅｍ  Ｆｏｒ  Ｃｏｍｍｕｎｉｃａｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂｅｔｗｅｅｅｎ  Ａ  Ｐｌｕｒａｌｉｔｙ  ｏｆ  Ｎｅｔｗｏｒｋ  Ｅｌｅｍｅｎｔｓ」）の優先権を主張する。上記特許出願の全ての全容は、参考により援用される。コンピュータプログラムリストもまた、参考により援用される。
【０００２】
（発明の分野）
本発明は概して、複数のネットワーク構成要素間の情報の通信のための方法、装置およびシステムに関し、具体的には、生理学および医療に関するデータを含め、潜在的に大きく多様なセットの定義されたデータを通信するよう構成された、コアおよび拡張可能なセットの機能性を有する、通信プロトコルのインターフェースおよび装置に関する。通信プロトコルのインターフェースを実装するソフトウェアは、拡張マークアップ言語（ＸＭＬ）の命令のセットから構成可能であり、また命令に応えてソフトウェア生成プログラムから生成される。
【０００３】
（コンピュータプログラムリストの付属書）
明細書に同封しているのは、全く相等しい二（２）つのコンパクトディスク（コピー１およびコピー２）である。添付のコンパクトディスク（コピー１およびコピー２）のそれぞれに記録されたファイルは、コンピュータプログラムリストの付属書を表し、参照することにより本明細書に組み込まれる。バイトの単位の名前およびサイズを含めて、それぞれのコンパクトディスクに記録されたファイルを以下に記載する。
【０００４】
以下に記載され、番号１〜４２のインデックスを付けられたファイルは、「Ｄｅｍｏ」と名前を付けられたフォルダに位置している。これらのファイルは、２００６年３月２７日に作成されたすべてのＣ＋＋ソースコードのファイルである。
【０００５】
（Ｄｅｍｏ）
１）ファイル名：ＣＢａｔｔｅｒｙＤＳｔｄ．ｃｐｐ    サイズ：３８ＫＢ
２）ファイル名：ＣＣｏｌＤＷａｖｅ．ｃｐｐ      サイズ：４４ＫＢ
３）ファイル名：ＣＥｒｒＥＳｔｄ．ｃｐｐ      サイズ：４１ＫＢ
４）ファイル名：ＣＥｒｒＰＧｅｔＥｒｒｏｒ．ｃｐｐ    サイズ：３５ＫＢ
５）ファイル名：ＣＦｍＢＡＴＴＥＲＹｃｏｍ．ｃｐｐ    サイズ：１４ＫＢ
６）ファイル名：ＣＦｍＢＡＴＴＥＲＹＳｔｕｂ．ｃｐｐ    サイズ：１７ＫＢ
７）ファイル名：ＣＦｍＤＴＣＯＬＬＥＣＴＩＯＮｃｏｍ．ｃｐｐ  サイズ：１６ＫＢ
８）ファイル名：ＣＦｍＤＴＣＯＬＬＥＣＴＩＯＮＳｔｕｂ．ｃｐｐサイズ：１９ＫＢ
９）ファイル名：ＣＦｍＥＲＲＯＲｃｏｍ．ｃｐｐ    サイズ：１２ＫＢ
１０）ファイル名：ＣＦｍＥＲＲＯＲＳｔｕｂ．ｃｐｐ    サイズ：１３ＫＢ
１１）ファイル名：ＣＦｍＮＩＢＰｃｏｍ．ｃｐｐ    サイズ：１６ＫＢ
１２）ファイル名：ＣＦｍＮＩＢＰＳｔｕｂ．ｃｐｐ    サイズ：２１ＫＢ
１３）ファイル名：ＣＦｍＷＡＶＥｃｏｍ．ｃｐｐ    サイズ：１６ＫＢ
１４）ファイル名：ＣＦｍＷＡＶＥＳｔｕｂ．ｃｐｐ    サイズ：２３ＫＢ
１５）ファイル名：ＣＮＩＢＰＣＳｔｄ．ｃｐｐ      サイズ：３４ＫＢ
１６）ファイル名：ＣＮＩＢＰＤＳｔｄ．ｃｐｐ      サイズ：４７ＫＢ
１７）ファイル名：ＣＷＡＣＰＡｐｐ．ｃｐｐ      サイズ：２１ＫＢ
１８）ファイル名：ＣＷＡＣＰＰｒｅｓ．ｃｐｐ      サイズ：１５ＫＢ
１９）ファイル名：ＣＷＡＣＰＳｔｕｂ．ｃｐｐ      サイズ：２７ＫＢ
２０）ファイル名：ＣＷａｖｅＣＳｔｄ．ｃｐｐ      サイズ：３９ＫＢ
２１）ファイル名：ＣＷａｖｅＤＳｔｄ．ｃｐｐ      サイズ：４０ＫＢ
２２）ファイル名：ＣＢａｔｔｅｒｙＤＳｔｄ．ｈ    サイズ：８ＫＢ
２３）ファイル名：ＣＣｏｌＤＷａｖｅ．ｈ      サイズ：７ＫＢ
２４）ファイル名：ＣＥｒｒＥＳｔｄ．ｈ        サイズ：８ＫＢ
２５）ファイル名：ＣＥｒｒＰＧｅｔＥｒｒｏｒ．ｈ    サイズ：７ＫＢ
２６）ファイル名：ＣＦｍＢＡＴＴＥＲＹｃｏｍ．ｈ    サイズ：７ＫＢ
２７）ファイル名：ＣＦｍＢＡＴＴＥＲＹＳｔｕｂ．ｈ    サイズ：３ＫＢ
２８）ファイル名：ＣＦｍＤＴＣＯＬＬＥＣＴＩＯＮｃｏｍ．ｈ  サイズ：７ＫＢ
２９）ファイル名：ＣＦｍＤＴＣＯＬＬＥＣＴＩＯＮＳｔｕｂ．ｈ  サイズ：３ＫＢ
３０）ファイル名：ＣＦｍＥＲＲＯＲｃｏｍ．ｈ      サイズ：６ＫＢ
３１）ファイル名：ＣＦｍＥＲＲＯＲＳｔｕｂ．ｈ    サイズ：３ＫＢ
３２）ファイル名：ＣＦｍＮＩＢＰｃｏｍ．ｈ      サイズ：７ＫＢ
３３）ファイル名：ＣＦｍＮＩＢＰＳｔｕｂ．ｈ      サイズ：３ＫＢ
３４）ファイル名：ＣＦｍＷＡＶＥｃｏｍ．ｈ      サイズ：７ＫＢ
３５）ファイル名：ＣＦｍＷＡＶＥＳｔｕｂ．ｈ      サイズ：３ＫＢ
３６）ファイル名：ＣＮＩＢＰＣＳｔｄ．ｈ      サイズ：８ＫＢ
３７）ファイル名：ＣＮＩＢＰＤＳｔｄ．ｈ      サイズ：１０ＫＢ
３８）ファイル名：ＣＷＡＣＰＡｐｐ．ｈ        サイズ：１３ＫＢ
３９）ファイル名：ＣＷＡＣＰＰｒｅｓ．ｈ      サイズ：５ＫＢ
４０）ファイル名：ＣＷＡＣＰＳｔｕｂ．ｈ      サイズ：４ＫＢ
４１）ファイル名：ＣＷａｖｅＣＳｔｄ．ｈ      サイズ：８ＫＢ
４２）ファイル名：ＣＷａｖｅＤＳｔｄ．ｈ      サイズ：８ＫＢ
以下に記載され、番号４３〜４５のインデックスを付けられたファイルはさらに、「Ｄｅｍｏ」と名前を付けられたフォルダに位置している。これらのファイルは、拡張マークアップ言語（ＸＭＬ）のファイルであり、２００６年３月２７日に作成された。
【０００６】
（Ｄｅｍｏ）
４３）ファイル名：ＤＤＳ＿ＤＥＭＯ．ｘｍｌ      サイズ：２５ＫＢ
４４）ファイル名：ＤＤＳ＿ＳＰＯＴ＿ＵＬＴＲＡ．ｘｍｌ  サイズ：１２４ＫＢ
４５）ファイル名：ＤＤＳ＿ＶＡＬＩＤＡＴＩＯＮ．ｘｍｌ  サイズ：１６ＫＢ
以下に記載され、番号１〜６３のインデックスを付けられたファイルは、「Ｄｅｍｏ＼ＡＮＳＩ＿ＣＰＰ＼Ｗｉｎ３２」と名前を付けられたフォルダに位置している。これらのファイルは、Ｃ＋＋ソースコードのファイルであり、２００６年３月２７日に作成された。
【０００７】
（Ｄｅｍｏ＼ＡＮＳＩ＿ＣＰＰ＼Ｗｉｎ３２）
１）ファイル名：ＡＥＳＣｒｙｐｔ．ｃｐｐ      サイズ：１４ＫＢ
２）ファイル名：ＣＡＥＳＷｒａｐｐｅｒ．ｃｐｐ    サイズ：３ＫＢ
３）ファイル名：ＣＢｏｏｔＥｎｔｒｙ．ｃｐｐ      サイズ：１１ＫＢ
４）ファイル名：ＣＣｏｍｍＳｖｒ．ｃｐｐ      サイズ：２０ＫＢ
５）ファイル名：ＣＣｏｎＯｂｊＳｖｒ．ｃｐｐ      サイズ：２９ＫＢ
６）ファイル名：ＣＤＬＬＥｎｔｒｙ．ｃｐｐ      サイズ：１３ＫＢ
７）ファイル名：ＣＥｎｃｒｙｐｔｉｏｎ．ｃｐｐ    サイズ：３ＫＢ
８）ファイル名：ＣＥｒｒｏｒ．ｃｐｐ        サイズ：２３ＫＢ
９）ファイル名：ＣＥｒｒＳｖｒ．ｃｐｐ        サイズ：１９ＫＢ
１０）ファイル名：ＣＥｔｈＣｏｍｍＳｖｒ．ｃｐｐ    サイズ：３４ＫＢ
１１）ファイル名：ＣＦｍＲＮＤＺＯｂｊＳｖｒ．ｃｐｐ    サイズ：１２ＫＢ
１２）ファイル名：ＣＦｍＲｏｕｔｅｒ．ｃｐｐ      サイズ：７ＫＢ
１３）ファイル名：ＣＬｉｎｋＴａｂｌｅ．ｃｐｐ    サイズ：１２ＫＢ
１４）ファイル名：ＣＭｓｇＳｖｒ．ｃｐｐ      サイズ：１１ＫＢ
１５）ファイル名：ＣＲＮＤＺＳｔｕｂ．ｃｐｐ      サイズ：１３ＫＢ
１６）ファイル名：ＣＳｅｒｉａｌＣｏｍｍＳｖｒ．ｃｐｐ  サイズ：３３ＫＢ
１７）ファイル名：ＣＴｒａｃｅＳｖｒ．ｃｐｐ      サイズ：１８ＫＢ
１８）ファイル名：ＣＴｒａｐＯｂｊＳｖｒ．ｃｐｐ    サイズ：２１ＫＢ
１９）ファイル名：ＣＵＳＢＣｏｍｍＳｖｒ．ｃｐｐ    サイズ：１７ＫＢ
２０）ファイル名：ＣＷＡＣＰＥｖｅｎｔ．ｃｐｐ    サイズ：４ＫＢ
２１）ファイル名：ＣＷＡＣＰＭｕｔｅｘ．ｃｐｐ    サイズ：３ＫＢ
２２）ファイル名：ＣＷＡＣＰＳｅｍａｐｈｏｒｅ．ｃｐｐ  サイズ：３ＫＢ
２３）ファイル名：ＣＷＡＣＰＴｈｒｅａｄ．ｃｐｐ    サイズ：３ＫＢ
２４）ファイル名：Ｄｔ．ｃｐｐ          サイズ：５ＫＢ
２５）ファイル名：ＤｔＤａｔａ．ｃｐｐ        サイズ：３５ＫＢ
２６）ファイル名：Ｍｅｍ．ｃｐｐ        サイズ：１７ＫＢ
２７）ファイル名：ＭｉｓｃＵｔｉｌ．ｃｐｐ      サイズ：４ＫＢ
２８）ファイル名：ＳｙｓＵｔｉｌ．ｃｐｐ      サイズ：８ＫＢ
２９）ファイル名：ＡＥＳＣｒｙｐｔ．ｈ        サイズ：２ＫＢ
３０）ファイル名：ＣＡＥＳＷｒａｐｐｅｒ．ｈ      サイズ：２ＫＢ
３１）ファイル名：ＣＢｏｏｔＥｎｔｒｙ．ｈ      サイズ：３ＫＢ
３２）ファイル名：ＣＣｏｍｍＳｖｒ．ｈ        サイズ：４ＫＢ
３３）ファイル名：ＣＣｏｎＯｂｊＳｖｒ．ｈ      サイズ：７ＫＢ
３４）ファイル名：ＣＤＬＬＥｎｔｒｙ．ｈ      サイズ：８ＫＢ
３５）ファイル名：ＣＥｎｃｒｙｐｔｉｏｎ．ｈ      サイズ：２ＫＢ
３６）ファイル名：ＣＥｒｒｏｒ．ｈ        サイズ：７ＫＢ
３７）ファイル名：ＣＥｒｒＳｖｒ．ｈ        サイズ：５ＫＢ
３８）ファイル名：ＣＥｔｈＣｏｍｍＳｖｒ．ｈ      サイズ：５ＫＢ
３９）ファイル名：ＣＦｍＲＮＤＺＯｂｊＳｖｒ．ｈ    サイズ：６ＫＢ
４０）ファイル名：ＣＦｍＲｏｕｔｅｒ．ｈ      サイズ：４ＫＢ
４１）ファイル名：ＣＬｉｎｋＴａｂｌｅ．ｈ      サイズ：３ＫＢ
４２）ファイル名：ＣＭＯＭＰＣａｌｌｂａｃｋｓ．ｈ    サイズ：３ＫＢ
４３）ファイル名：ＣＭｓｇＳｖｒ．ｈ        サイズ：４ＫＢ
４４）ファイル名：ＣＯｂｊＳｖｒ．ｈ        サイズ：３ＫＢ
４５）ファイル名：Ｃｏｍｍｏｎ．ｈ        サイズ：５ＫＢ
４６）ファイル名：ＣＲＮＤＺＳｔｕｂ．ｈ      サイズ：４ＫＢ
４７）ファイル名：ＣＳｅｒｉａｌＣｏｍｍＳｖｒ．ｈ    サイズ：５ＫＢ
４８）ファイル名：ＣＴｒａｃｅＳｖｒ．ｈ      サイズ：１２ＫＢ
４９）ファイル名：ＣＴｒａｐＯｂｊＳｖｒ．ｈ      サイズ：５ＫＢ
５０）ファイル名：ＣＵＳＢＣｏｍｍＳｖｒ．ｈ      サイズ：４ＫＢ
５Ｉ）ファイル名：ＣＷＡＣＰＥｖｅｎｔ．ｈ      サイズ：２ＫＢ
５２）ファイル名：ＣＷＡＣＰＭｕｔｅｘ．ｈ      サイズ：２ＫＢ
５３）ファイル名：ＣＷＡＣＰＳｅｍａｐｈｏｒｅ．ｈ    サイズ：２ＫＢ
５４）ファイル名：ＣＷＡＣＰＴｈｒｅａｄ．ｈ      サイズ；２ＫＢ
５５）ファイル名：Ｄｔ．ｈ          サイズ：５ＫＢ
５６）ファイル名：ＤｔＤａｔａ．ｈ        サイズ：１３ＫＢ
５７）ファイル名：ＤｔＳｕｐｐｏｒｔ．ｈ      サイズ：５ＫＢ
５８）ファイル名：Ｍｅｍ．ｈ          サイズ：４ＫＢ
５９）ファイル名：ＭｉｓｃＵｔｉｌ．ｈ        サイズ：２ＫＢ
６０）ファイル名：ＳｔｄＶａｒＴｙｐ．ｈ      サイズ：６ＫＢ
６１）ファイル名：ＳｙｓＵｔｉｌ．ｈ        サイズ：５ＫＢ
６２）ファイル名：ｔａｒｇｅｔ．ｈ        サイズ：６ＫＢ
６３）ファイル名：ｘｍｌｐａｒｓｅ．ｈ        サイズ：２１ＫＢ
以下に記載され、番号６４のインデックスを付けられたファイルは、「Ｄｅｍｏ＼ＡＮＳＩ＿ＣＰＰ＼Ｗｉｎ３２」と名前を付けられたフォルダに位置している。これらのファイルは、個々のファイルのタイプの情報とともに記載され、２００６年３月２７日に作成された。
【０００８】
（Ｄｅｍｏ＼ＡＮＳＩ＿ＣＰＰ＼Ｗｉｎ３２）
６４）ファイル名：ＣＤＬＬＥｎｔｒｙ．ｄｅｆ      サイズ：１ＫＢ
ファイルのタイプ：ダイナミックリンクライブラリエキスポートファイル
以下に記載され、番号１〜２のインデックスを付けられたファイルは、「Ｄｅｍｏ＼ＡＮＳＩ＿ＣＰＰ＼Ｗｉｎ３２＼Ｃｌｉｅｎｔ」と名前を付けられたフォルダに位置している。これらのファイルは、Ｃ＋＋ソースコードのファイルであり、２００６年３月２７日に作成された。
【０００９】
（Ｄｅｍｏ＼ＡＮＳＩ＿ＣＰＰ＼Ｗｉｎ３２＼Ｃｌｉｅｎｔ）
１）ファイル名：ＣＩｎｔｅｒｃｈａｎｇｅ．ｃｐｐ    サイズ：３８ＫＢ
２）ファイル名：ＣＩｎｔｅｒｃｈａｎｇｅ．ｈ      サイズ：６ＫＢ
以下に記載され、番号１〜２のインデックスを付けられたファイルは、「Ｄｅｍｏ＼ＡＮＳＩ＿ＣＰＰ＼Ｗｉｎ３２＼Ｓｅｒｖｅｒ」と名前を付けられたフォルダに位置している。これらのファイルは、Ｃ＋＋ソースコードのファイルであり、２００６年３月２７日に作成された。
【００１０】
（Ｄｅｍｏ＼ＡＮＳＩ＿ＣＰＰ＼Ｗｉｎ３２＼Ｓｅｒｖｅｒ）
１）ファイル名：ＣＩｎｔｅｒｃｈａｎｇｅ．ｃｐｐ    サイズ：６０ＫＢ
２）ファイル名：ＣＩｎｔｅｒｃｈａｎｇｅ．ｈ      サイズ：８ＫＢ
以下に記載され、番号１のインデックスを付けられたファイルは、「Ｄｅｍｏ＼ＲｅｌｅａｓｅＦｉｌｅｓ」と名前を付けられたフォルダに位置している。これらのファイルは、拡張マークアップ言語（ＸＭＬ）のファイルであり、２００６年３月２７日に作成された。
【００１１】
（Ｄｅｍｏ＼ＲｅｌｅａｓｅＦｉｌｅｓ）
１）ファイル名：ＤＤＳ＿ＳＰＯＴ＿ＵＬＴＲＡ．ｘｍｌ    サイズ：１２４ＫＢ
以下に記載され、番号１〜３のインデックスを付けられたファイルは、「Ｄｅｍｏ＼ＶＣ７１＿ＣＰＰ＿ＣＬＩＥＮＴ」と名前を付けられたフォルダに位置している。これらのファイルは、個々のファイルのタイプの情報とともに記載され、２００６年３月２７日に作成された。
【００１２】
（Ｄｅｍｏ＼ＶＣ７１＿ＣＰＰ＿ＣＬＩＥＮＴ）
１）ファイル名：ＴｒａｃｅＴｒａｎｓｆｏｒｍ．ｘｓｌ    サイズ：７ＫＢ
ファイルのタイプ：ＸＭＬ変換ファイル
２）ファイル名：ＶＣ７１＿ＣＰＰ＿ＣＬＩＥＮＴ．ｓｌｎ  サイズ：１ＫＢ
ファイルのタイプ：Ｃ＋＋のためのビジュアルスタジオのソリューションファイル
３）ファイル名：ＶＣ７１＿ＣＰＰ＿ＣＬＩＥＮＴ．ｖｃｐｒｏｊ  サイズ：１２ＫＢ
ファイルのタイプ：Ｃ＋＋のためのビジュアルスタジオのプロジェクトファイル
以下に記載され、番号１〜３のインデックスを付けられたファイルは、「Ｄｅｍｏ＼ＶＣ７１＿ＣＰＰ＿ＳＥＲＶＥＲ」と名前を付けられたフォルダに位置している。これらのファイルは、個々のファイルのタイプの情報とともに記載され、２００６年３月２７日に作成された。
【００１３】
（Ｄｅｍｏ＼ＶＣ７１＿ＣＰＰ＿ＳＥＲＶＥＲ）
１）ファイル名：ＴｒａｃｅＴｒａｎｓｆｏｒｍｅｒ．ｘｓｌ  サイズ：７ＫＢ
ファイルのタイプ：ＸＭＬ変換ファイル
２）ファイル名：ＶＣ７１＿ＣＰＰ＿ＳＥＲＶＥＲ．ｓｌｎ    サイズ：１ＫＢ
ファイルのタイプ：Ｃ＋＋のためのビジュアルスタジオのソリューションファイル
３）ファイル名：ＶＣ７１＿ＣＰＰ＿ＳＥＲＶＥＲ．ｖｃｐｒｏｊ  サイズ：１１ＫＢ
ファイルのタイプ：Ｃ＋＋のためのビジュアルスタジオのプロジェクトファイル。
【背景技術】
【００１４】
（発明の背景）
いくつかのコンピュータ環境は、大量で多様な関連したデータの定義を含め、時間とともに変化および発展することもあるデータの収集の獲得および通信を伴う。医療環境内の生理学的データの獲得および通信は、かかるコンピュータ環境の実例である。
【００１５】
医療のコンピュータ環境は通常、生理学的データを処理し、またネットワーク経由で通信する多様なデバイスを含む。これらのデバイスは通常、ソフトウェアを含め、また生理学的および他のデータの特定のサブセットで動作するよう構成することができる。生理学的データの特定のサブセットは、１つ以上のデバイスのグループに対して一意であってもよく、それぞれのグループのデバイスによって処理される特定のサブセットの生理学的データ間で、重なりが存在していてもよい。
【００１６】
それぞれのデバイスの設計は、デバイスが処理および通信する特定のサブセットの生理学的データによって決まる。デバイスに属するソフトウェアの設計は同様に、デバイスが処理および通信するサブセットの生理学的データによって決まる。
【００１７】
結果として、実質的な取り組みが、生理学的および／または他のタイプの類似したデータを獲得および通信するソフトウェアを設計、実装および時間とともに維持するために必要となる可能性がある。ソフトウェアが、特定のセットのデータのタイプおよび関連したデータの定義によって特性が示される一意で特定のサブセットのデータでそれぞれ動作する複数のデバイスで実行されるよう開発される場合に、さらなる実質的な取り組みが必要となる可能性がある。また、データのタイプおよび関連したデータの定義を含むデータが、時間とともに変化および発展する傾向がある場合には、実質的なさらなる取り組みが必要となる可能性がある。
【００１８】
ソフトウェアの信頼性は、適切な医療を提供するのに重要な意味を持つので、さらにそれ以上の実質的な取り組みが、ソフトウェアが医療環境内のデータで動作する場合に必要となる。医療環境内の信頼性のあるソフトウェアの欠如は、適切な医療の提供の妨げになり、医療患者に悪影響を与え、さらに致死をもたらす場合もある。
【発明の開示】
【課題を解決するための手段】
【００１９】
本発明は概して、複数のネットワーク構成要素間の情報の通信のための方法、装置およびシステムを提供し、具体的には、生理学および医療に関するデータを含め、潜在的に大きく多様なセットの定義されたデータを通信するよう構成された、コアおよび拡張可能なセットの機能性を有する、通信プロトコルのインターフェースおよび関連した装置を提供する。
【００２０】
いくつかの実施態様では、前記通信プロトコルのインターフェースを実装するソフトウェアは、拡張マークアップ言語（ＸＭＬ）の命令のセットから構成可能であり、また入力、および前記命令に応えてソフトウェア生成プログラムを生成する。いくつかの実施態様では、ネットワーク構成要素のそれぞれが、特定の機能の前記ネットワーク構成要素により、比較的広義に定義されたデータセット内に含まれる、一意のサブセットのデータを通信することができるように、前記通信プロトコルのインターフェースはまた、スコープに割り当てることができる。
【００２１】
本発明の先述および他のオブジェクト、側面、特長および利点は、以下の説明から、また特許請求の範囲からさらに明白となるであろう。
【発明を実施するための最良の形態】
【００２２】
図１は、医療（医学）情報システム１００内に位置する各種のネットワーク構成要素を示すブロック図である。ホスト（サーバー）コンピュータ１１０Ａ〜１１０Ｃ、バイタルサイン測定デバイス（ＶＳＭＤ）１４０Ａ〜１４０Ｙ、心電図（ＥＣＧ）デバイス１５０および他のデバイス１６０を含むネットワーク構成要素は、ネットワーク内にノードを構成し、またシステム１００内の多様で異なる機能を実行する。
【００２３】
ホストコンピュータ１１０Ａ〜１１０Ｃは通常、例えば、他のネットワーク構成要素で、イーサネット（登録商標）、ＷＩＦＩ、ＵＳＢおよびシリアル通信インターフェースを支援するための、ハードディスクドライブ、ＲＡＭメモリカード、および通信インターフェースハードウェアを含む、任意の多様なハードウェアに対応する固定式（非可動式）デバイスである。
【００２４】
バイタルサイン測定デバイス（ＶＳＭＤ）１４０Ａ〜１４０Ｙは、患者の各種のバイタルサインに関連する生理学的な測定をする実行するのにオペレータによって使用されるデバイスである。例えば、ＶＳＭＤ１４０Ａ〜１４０Ｙは、成人患者および小児患者の収縮期圧および拡張期圧、平均動脈圧、脈拍数、体温ならびにパルス酸素濃度計（ＳｐＯ２）を測定することができる。ＶＳＭＤ１４０Ａ〜１４０Ｙは通常、ＲＳ−２３２シリアルインターフェース、ユニバーサルシリアルバス（ＵＳＢ）インターフェース経由の、またはＷｉＦｉ（無線）（８０２．１１）通信インターフェース経由のサーバーコンピュータ１１０Ａ〜１１０Ｃを含む、他のデバイスに通信することができる。
【００２５】
実施態様に１つのタイプでは、ＶＳＭＤ１４０Ａ〜１４０Ｙは、Ｗｅｌｃｈ  Ａｌｌｙｎ  Ｓｐｏｔ  ＬＸｉのバイタルサイン測定デバイス（ＶＳＭＤ）である。この実施態様では、Ｓｐｏｔ  ＬＸｉのＶＳＭＤ１４０Ａ〜１４０Ｎは、ＷｉＦｉゲートウェイ１７０経由でホストコンピュータ１１０Ｃに送信するように、８０２．１１通信チャネル１５６ａ〜１５６ｎ経由で、別の８０２．１１タイプの通信デバイスに無線（ＷｉＦｉ）で通信するよう、無線アダプタ１５８ａ〜１５８ｎを任意に使用する。Ｓｐｏｔ  ＬＸｉのＶＳＭＤ１４０Ｙはまた、ＲＳ−２３２シリアル通信チャネル１４２経由で、ホストコンピュータ１１０Ｂに通信する。
【００２６】
さらに他のデバイス、例えばＥＣＧ測定デバイス１５０は、ＵＳＢ通信チャネル１４４経由でホストコンピュータ１１０Ｂに通信することができ、またはＲＳ−２３２シリアル通信チャネル１４６経由で、ホストコンピュータ１１０Ｃに通信することができる。図示するように、別のデバイス１６０は、ＵＳＢ通信チャネル１４８経由で、ホストコンピュータ１１０Ｃに通信することができる。
【００２７】
ホストコンピュータ１１０Ｂはまた、インターネット通信チャネル１５２経由で、遠隔配置された別のホストコンピュータ１１０Ａに通信することができ、またはイーサネット（登録商標）ローカルエリアネットワーク通信チャネル１５４．経由で、別のホストコンピュータ１１０Ｃに通信することができる。ホストコンピュータ１１０Ｂは、データの保存場所として機能するデータベース１３０に直接接続される。データベース１３０は、システム１００によって獲得および処理されたデータを保存および処理する。医学情報システムのデータの大部分は、患者集団のための人間生理学の非常に多くの測定を表すよう定義および構造される。
【００２８】
図２Ａは、図１に示すように、バイタルサイン測定デバイス（ＶＳＭＤ）およびホストコンピュータ１１０ｃ内に属する内部ソフトウェア構成要素および通信プロトコルのインターフェースの表示を示すブロック図である。
【００２９】
通信インターフェース２１０の説明は、ＶＳＭＤ１４０Ｎとホストコンピュータ１１０ｃとの間で使用される、本明細書ではプロトコルスタックとも称される、通信プロトコルの階層化（スタック）を含む。それぞれの通信プロトコルは、ＶＳＭＤ１４０Ｎおよびホストコンピュータ１１０Ｃなどの、それぞれのネットワーク構成要素のための通信プロトコルのインターフェース２１０内のソフトウェアを実行しながら実装され、通信インターフェース仕様（図示せず）とも称される、通信プロトコルのインターフェース（ＣＰＩ）仕様に従って動作し、またシステム１００のそれぞれのネットワーク構成要素によって獲得（収集）、保存および処理されるデータを含め、情報の通信を支援するよう採用される。
【００３０】
通信インターフェース仕様は、通信インターフェースの、書面による、印刷による、またはデジタルエンコードによる説明が実現可能である。通信インターフェースは、本明細書では通信プロトコルのインターフェース（ＣＰＩ）とも称され、通信インターフェース仕様は、通信プロトコルのインターフェース（ＣＰＩ）仕様とも称される。
【００３１】
８０２．１１（２１０Ａ）、インターネットプロトコル（ＩＰ）２１０Ｂおよび輸送接続プロトコル（ＴＣＰ）２１０Ｃとして知られている、３つの下位プロトコル層２１０Ａ〜２１０Ｃは典型的であり、下位プロトコルスタック２１０Ａ〜２１０Ｃとも称される、プロトコルスタック２１０の下位部を集合的に構成する、標準的でよく知られている通信プロトコルである。３つの下位プロトコル層２１０Ａ〜２１０Ｃは、それぞれインターチェンジ２１０Ｄ、ランデブー２１０ＥおよびＭＯＭＰ２１０Ｆの（３）つの上位プロトコル層を支援および伝達するよう採用され、本発明に従って設計されている。
【００３２】
この特定の下位プロトコルスタック２１０Ａ〜２１０Ｃを使用することは必要とされず、本発明を実践する様々な方法で修正することができる。他の通信プロトコル、または通信プロトコルの組み合わせは、上位プロトコル層２１０Ｄ〜２１０Ｆを支援および伝達する様々な方法でプロトコル２１０Ａ〜２１０Ｃの代用をする、および／またはそれらと組み合わせることができる。
【００３３】
本明細書ではエクスチェンジ層またはインターチェンジ層２１０Ｄとも称される、インターチェンジプロトコル層２１０Ｄは、オープンシステムインターコネクション（ＯＳＩ）の規範モデルのセッション層に属し、ランデブープロトコル２１０ＥまたはＭＯＭＰ２１０Ｆプロトコルを伝達するために採用される。
【００３４】
ホストコンピュータ１１０Ｃのオペレーションシステムソフトウェア２２２が下位プロトコルスタック２１０Ａ〜２１０Ｃを実装するよう構成されるのに対して、ホストコンピュータ１１０Ｃのアプリケーションソフトウェア２２０は、上位プロトコルスタック２１０Ｄ〜２１０Ｆを実装するよう構成される。同様にＶＳＤＮ１４０ｎのオペレーションシステムソフトウェア２３２が、下位プロトコルスタック２１０Ａから２１０Ｃを実装するよう構成されるのに対して、ＶＳＭＤ１４０ｎのアプリケーションソフトウェア２３０は、上位プロトコルスタック２１０Ｄ〜２１０Ｆを実装するよう構成される。同様に、他のネットワーク構成要素は通常、前述と同様の方法でプロトコルスタックを実装する。
【００３５】
図２Ｂは、通信インターフェース２１０を介して、第１のネットワーク構成要素から第２のネットワーク構成要素までの情報の伝送を示すブロック図である。第２のネットワーク構成要素（図示せず）に情報を伝送する通信インターフェース２１０を採用するとき、アプリケーション層２１０Ｇは、ランデブー２１０ＥまたはＭＯＭＰ２１０Ｆのどちらかのプロトコル層に、通常機能呼び出しパラメーターの形式で、情報２１２ｇの転送を開始する。
【００３６】
いくつかの実施態様では、機能呼び出しパラメーターは、通信インターフェース２１０を介して伝送される情報のバッファに対するポインタを含む。次に受信するプロトコル層、状況に応じてランデブー２１０ＥまたはＭＯＭＰ２１０Ｆのどちらかのプロトコル層は、情報２１２ｅまたは２１２ｆをインターチェンジ層２１０Ｄにさらに転送する。
【００３７】
図示するように、情報２１２ｅまたは２１２ｆは、ランデブー２１０ＥまたはＭＯＭＰ２１０Ｆのどちらかのプロトコル層からそれぞれインターチェンジ層２１０Ｄに入力される。ランデブー２１０Ｅ層２１２ｅから入力された情報は通常、第２のネットワーク構成要素との接続の確立または終了に関与する。ＭＯＭＰ２１０Ｅ層２１２ｅから入力される情報は通常、ランデブー２１０Ｅ層によってすでに確立されている第２のネットワーク構成要素との接続の使用に関与する。
【００３８】
インターチェンジ層２１０Ｄは、情報２１２ｅまたは２１２ｆを入力し、情報２１２ｄを下位プロトコルスタック２１０Ａ〜２１０Ｃに出力する。情報転送２１２ｄは、インターチェンジ層２１０Ｄによって入力され、それによって処理される情報２１２ｅまたは２１２ｆのソースに応じて、情報２１２ｅまたは２１２ｆのどちらかを取り囲み、含む、インターチェンジエンベロープとして構造される。特に、情報転送２１２ｄは、情報２１２ｅがインターチェンジ層２１０Ｄによって受信および処理される状況において情報２１２ｅを含む、または情報２１２ｆがインターチェンジ層２１０Ｄによって受信および処理される状況において情報２１２ｆを含む。
【００３９】
下位プロトコルスタック２１０Ａ〜２１０Ｃは、通信チャネル（図示せず）を介して第２のネットワーク構成要素までの通信のために情報２１２ｄを入力し、情報２１２ａを出力する。情報２１２ａは、下位プロトコル層２１０Ａ〜２１０Ｃを実装しているソフトウェアによって加えられる情報２１２ｄさらにその上プロトコル情報を含む。
【００４０】
図２Ｃは、通信インターフェース２１０を介して、第２のネットワーク構成要素から第１のネットワーク構成要素によって受信している情報を示すブロック図である。情報を受信する通信インターフェース２１０を採用するとき、下位プロトコルスタック２１０Ａ〜２１０Ｃは、通信チャネルおよび関連するハードウェア（図示せず）を介して、第２のネットワーク構成要素から伝送される情報２１４ａを入力する。下位プロトコルスタック２１０Ａ〜２１０Ｃは、情報２１４ａを処理し、インターチェンジ層２１０Ｄに情報２１４ｄを出力する。
【００４１】
インターチェンジ層２１０Ｄは、情報２１４ｄを入力および処理し、また情報２１４ｄがどの層に対応されるにより、情報２１４ｅをランデブー層２１０Ｅに、または情報２１４ｆをＭＯＭＰ層２１０Ｆに出力する（転送する）。情報転送２１４ｄは、ランデブー層２１０ＥまたはＭＯＭＰ層２１０Ｆ層のどちらかに対応される情報を取り囲み含む、インターチェンジエンベロープとして構造される。インターチェンジ層２１０Ｄは、そのエンベロープを構成している情報を取り除く。
【００４２】
ランデブー２１０ＥおよびＭＯＭＰ２１０Ｆのプロトコル層はそれぞれ、インターチェンジプロトコル層２１０Ｄから受信する情報を入力および処理する。プロトコル層２１０ＥおよびＭＯＭＰ２１０Ｆのそれぞれは、必要に応じて、情報をアプリケーション層２１０Ｇに出力する（転送する）。
【００４３】
図２Ｄは、通信インターフェース２１０から伝送するとき、インターチェンジ層２１０Ｄから出力される情報２１２ｄの構造２２０を示すブロック図である。図示するように、この構造２２０はまた、本明細書ではインターチェンジエンベロープ２２０、セッションエンベロープ２２０、およびセッションラッパー２２０の大きなバージョンとも称される。構造２２０は、本明細書ではフィールドと称される、複数の部分に分割される。フィールドは、セッション序文フィールド２２２、パケット長フィールド２２４、ポート／アプリケーション識別子フィールド２２６、数列番号２２８、ＵＵＩＤフィールド２３０、データ長フィールド２３２データバッファフィールド２３４およびヘッダー巡回冗長チェック（ＣＲＣ）フィールド２３６を含む。
【００４４】
セッション序文フィールド２２２は、構造２２０を画定するよう構成され、２進値の一意の数列を含む。パケット長フィールド２２４は、バイトの単位において、全体の構造２２０の長さを表示する。ポート／アプリケーション識別子フィールドは、アプリケーションタイプに関連したポート番号を識別する。アプリケーションタイプは、ランデブーまたはＷＡＣＰアプリケーションタイプを識別することができる。
【００４５】
構造が、構造２２０と通信する間に採用される限定的バッファ容量に応えて、部分に分割されるとき、数列番号フィールド２２８は、構造のそれぞれの部分のために、一意の識別子を保存する。ＵＵＩＤフィールド２３０は、インターチェンジ層２１０Ｄによって受信される別の応答通信が構造２２０と関連することができるように、構造２２０のための識別子を保存する。データ長フィールド２３２は、データバッファフィールド２３４の長さを、好ましくはバイトの単位で保存する。データバッファフィールド２３４は、構造２２０（伝達によって）内に含まれるデータを保存する。ＣＲＣフィールド２３６は、全体の構造２２０のために算出された巡回冗長チェック（ＣＲＣ）値を保存する。
【００４６】
構造２４０は、インターチェンジエンベロープの小さいバージョン２４０を示す。構造２４０は、大きいバージョン２２０のフィールドのサブセットを含む。大きいバージョンと同様に、フィールドは、セッション序文フィールド２２２、パケット長フィールド２２４、ポート／アプリケーション識別子フィールド２２６、データバッファフィールド２３４およびヘッダー巡回冗長チェック（ＣＲＣ）フィールド２３６を含む。大きいバージョン２２０とは異なり、小さいバージョンは、数列番号２２８、ＵＵＩＤフィールド２３０、およびデータ長フィールド２３２を除外する。
【００４７】
インターチェンジエンベロープの小さいバージョン２４０は、構造２４０を通信する間の接続全般に採用されるバッファの容量内に適合するほど小さな情報のためのインターチェンジ層２１０Ｄによって採用することができる。これらの状況では、インターチェンジエンベロープ２４０は、接続のエンドポイントとの間に属している限定的サイズの１つ以上のバッファ内に適合する、比較的小さい部分に分割（大きく縮小）および配列することを必要としない。
【００４８】
図２Ｅは、ＶＳＭデバイス１４０ｎとホスト１１０ｃネットワーク構成要素との間の接続を確立するための、エクスチェンジのランデブー通信プロトコルを示すブロック図である。接続を確立するために、ランデブープロトコル層は、ホスト１１０ｃに対応する接続リクエスト通信２５２の伝送を開始する。接続リクエスト２５２は、インターチェンジエンベロープ２２０、２４０内に含まれ、ＶＳＭデバイス１４０ｎ内で動作しているインターチェンジプロトコル層２１０Ｄおよび下位プロトコルスタック２１０Ａ〜２１０Ｃを介して、ＶＳＭデバイス１４０ｎからホスト１１０ｃに伝送される。インターチェンジエンベロープ２２０のデータバッファフィールド２３４は、ランデブープロトコルの接続リクエストメッセージとしてそれを識別する「ＲＮＤＺＣｏｎｎｅｃｔ」の文字列を含む（伝達する）。
【００４９】
ホスト１１０ｃ内で動作しているランデブープロトコル層２１０Ｅを実装するソフトウェアは、ホスト１１０ｃ内で動作している下位プロトコルスタック２１０Ａ〜２１０Ｃおよびインターチェンジプロトコル層２１０Ｄを介して、接続リクエスト通信２５２を受信する。ポート／アプリケーション識別子フィールド２２６は、接続リクエスト通信２５２によって対応されるアプリケーションタイプとしてランデブープロトコル層を表示する。ホストコンピュータ１１０ｃは、下位プロトコルスタック２１０Ａ〜２１０Ｃのプロトコルを介して対応する。
【００５０】
次に、ホスト１１０ｃは、接続受け入れ通信２５４をＶＳＭデバイス１４０ｎに伝送する。接続受け入れ２５４は、インターチェンジエンベロープ２２０、２４０に含まれ、ホスト１１０ｃ内で動作しているソフトウェアによって実装されるインターチェンジプロトコル層２１０Ｄおよび下位プロトコルスタック２１０Ａ〜２１０Ｃを介して、ホスト１１０ｃからＶＳＭデバイス１４０ｎに伝送される。
【００５１】
ホスト１１０ｃ内で動作していて、ランデブープロトコル層２１０Ｅを実装しているソフトウェアは、ＶＳＭデバイス１４０ｎ内で動作している下位プロトコルスタック２１０Ａ〜２１０Ｃおよびインターチェンジプロトコル層２１０Ｄを介して、接続受け入れ通信２５４を受信する。通信２５４のポート／アプリケーション識別子フィールド２２６は、接続リクエスト通信２５２として対応されるアプリケーションタイプとしてランデブープロトコル層を表示する。
【００５２】
ランデブー接続は現在確立されている。次に、ＶＳＭデバイス１４０ｎは、暗号化キーリクエスト通信２５６をホスト１１０ｃに伝送する。ホスト１１０ｃは、セッションキーとも称される、暗号化キーを含む、暗号化キー通信２５８を伝送することによって応答する。
【００５３】
暗号化キーを受信すると、クライアントは、ＷＡＣＰプロセスリクエスト通信２６０をホスト１１０ｃに伝送する。ホスト１１０ｃは、ＷＡＣＰプロセス（図示せず）のインスタンスを実行することにより、またホスト準備通信２６２を伝送することによって応答する。ＶＳＭデバイス１４０ｎは、ホスト準備通信を受信し、またＶＳＭデバイス１４０ｎ（図示せず）内で動作しているＷＡＣＰプロセスに制御を転送する。
【００５４】
ランデブー接続は、ランデブー接続終了通信がホスト１１０ｃによって伝送されるとき終了する。ＶＳＭデバイス１４０ｎとホスト１１０ｃとの間の通信のエクスチェンジは、ＶＳＭデバイス１４０ｎとホスト１１０ｃとの間の通信のために採用される通信チャネル（図示せず）のタイプとは無関係である。
【００５５】
図３Ａは、医学オブジェクト管理プロトコル（ＭＯＭＰ）メッセージ３００を構成する情報の構造を示すブロック図である。ＭＯＭＰメッセージ３００は、インターチェンジプロトコルメッセージ２２０、２４０のデータバッファフィールド２３４内に属し、またそれによって伝達される。ＭＯＭＰメッセージ３００の構造は、フィールドと称される、複数の部分に分割される。フィールドは、メッセージ識別子フィールド３０２、メッセージサイズフィールド３０４、メッセージ暗号化フィールド３０６、オブジェクトバッファフィールド３０８および巡回冗長チェック（ＣＲＣ）フィールド３１０を含む。
【００５６】
メッセージ識別子フィールド３０２は、ＭＯＭＰメッセージ３００のタイプを識別および分類する値のセットを含む。メッセージ長フィールド３０４は、全体のＭＯＭＰメッセージ３００の長さを、好ましくはバイトの単位で表示する。メッセージ暗号化フィールド３０６は、ＭＯＭＰメッセージ３００の任意の暗号化が採用されているかを表示し、本当であれば、どのタイプの暗号化が採用されているかを表示する値を含む。オブジェクトバッファフィールド３０８は、連載オブジェクトを表すデータを保存する。連載オブジェクトは、特定のネットワーク構成要素によって獲得される生理学的データのセットであってもよい。ＣＲＣフィールド３１０は、全体の構造３００のために算出される巡回冗長チェック（ＣＲＣ）値を保存する。
【００５７】
メッセージ識別子フィールド３０２は、ＭＯＭＰメッセージ３００のための１つのタイプの分類をそれぞれ表す（３つの）サブフィールドを含む。それぞれのタイプの分類は、（３つの）階級の分類スキームのうちの１つの階級を表す。第１のサブフィールド３１２は、科の分類とも称される、第１（最も高い階級）の分類を表す値を保存する。
【００５８】
いくつかの実施態様では、第１の分類は、生理学的データおよびメッセージの型のセットを有し、それらに関連した特定のモジュールを識別することができる。データは、例えば血圧に関連した生理学的データタイプであってもよい。一実施態様では、第１の分類は、テキスト文字列「ＦＡＭＩＬＹ＿ＮＩＢＰ」に相当する識別子を有するモジュールを識別する。モジュールは、生理学的データタイプに関連する血圧のセットを獲得および通信する。識別子「ＦＡＭＩＬＹ＿ＮＩＢＰ」は、ＦＡＭＩＬＹ＿ＮＩＢＰモジュールに関連したＭＯＭＰメッセージ３００のために、第１の分類として第１のサブフィールドに保存される一意の値をマッピングする。別のテキスト文字列識別子は、ＦＡＭＩＬＹ＿ＮＩＢＰモジュール以外のモジュールを識別するのに使用する。
【００５９】
第２のサブフィールド３１４は、属の分類とも称される、第２の（中間の階級）分類を表す値を保存する。第２の分類は、第１の分類によって識別されるＦＡＭＩＬＹ＿ＮＩＢＰモジュールの１つ以上の属性のセットを識別することができる。いくつかの実施態様では、属性は、ＦＡＭＩＬＹ＿ＮＩＢＰモジュールによって伝送および／または受信されるＭＯＭＰメッセージのタイプを含む。
【００６０】
一実施態様では、第２の分類は、テキスト文字列識別子「Ｇｎ＿Ｒｅｑｕｅｓｔ」によって表示されるＭＯＭＰメッセージのリクエストタイプを識別する。「Ｇｎ＿Ｒｅｑｕｅｓｔ」識別子は、第２のサブフィールドに保存される一意の値にマッピングされ、またＭＯＭＰメッセージがリクエストタイプのＭＯＭＰメッセージ３００であると表示する（図３Ｂ参照）。
【００６１】
リクエストタイプのＭＯＭＰメッセージはまた、本明細書では属のタイプのＭＯＭＰメッセージとも称される。属のタイプのＭＯＭＰメッセージは通常、ＭＯＭＰメッセージに関連した処理を特徴付けるが、ＭＯＭＰメッセージのそれぞれのバイトを特別に処理するために、ソフトウェアに十分な情報を提供しない。一般に、３つの分類すべては、ＭＯＭＰメッセージ３００のそれぞれのバイトを処理するために、ソフトウェアに十分な情報を提供することが必要である。
【００６２】
第３のサブフィールド３１６は、種の分類とも称される、第３の分類（最も低い階級）を表す値を保存する。第３の分類は、第１の分類によって識別されるモジュール、および第２の分類によって識別されるＭＯＭＰメッセージの型の１つ以上の追加の属性のセットを識別することができる。
【００６３】
一実施態様では、第３の分類は、テキスト文字列識別子「ＧＥＴ＿ＢＰ」によって表示されるリクエストＭＯＭＰメッセージの特定の血圧獲得タイプを識別する。「ＧＥＴ＿ＢＰ」識別子は、第３のサブフィールドに保存される一意の値にマッピングされ、ＭＯＭＰメッセージは、リクエストタイプのＭＯＭＰメッセージ３００の特定の「ＧＥＴ＿ＢＰ」タイプであると表示する。リクエストタイプのＭＯＭＰメッセージの特定の「ＧＥＴ＿ＢＰ」タイプは、ＭＯＭＰメッセージ３００のそれぞれのバイトを特別に処理するために、ソフトウェアに十分な情報を提供する所定のバイト数列を有する。ＭＯＭＰメッセージのＧＥＴ＿ＢＰタイプはまた、本明細書ではＭＯＭＰメッセージの特定のタイプとも称される。
【００６４】
上記の（３つの）識別子、ＦＡＭＩＬＹ＿ＮＩＢＰ、Ｇｎ＿Ｒｅｑｕｅｓｔ、ＧＥＴ＿ＢＰはすべて、デバイスデータシートと称される、命令のセット内で定義される（図６Ａ参照）。デバイスデータシート（ＤＤＳ）は、ネットワーク構成要素で実行されるソフトウェアを使用して実装される、通信インターフェース２１０の命令従属部分の実行を導くソースコードを出力するソフトウェア生成器（図５Ａ参照）への入力として採用される。
【００６５】
デバイスデータシート（ＤＤＳ）は、特定のデバイスによって処理されるべき定義済みのデータに関連した定義済みのデータおよび動作を含むモジュールを定義する。通常、データに関連した動作は、定義済みのデータでの動作を実行するよう構成される属の、および特定のＭＯＭＰメッセージの形式で表現される。ＤＤＳは、ＷＡＣＰ通信インターフェースを実装するソフトウェアの少なくとも一部分を構成するよう使用される。
【００６６】
例えば、ＧＥＴ＿ＢＰメッセージは、ＧＥＴ＿ＢＰメッセージを受信するネットワーク構成要素から、ＧＥＴ＿ＢＰメッセージを伝送するネットワーク構成要素への、血圧データの伝送を要求する。要求された血圧データは、ＧＥＴ＿ＢＰメッセージを受信するネットワーク構成要素によって、ＰＵＴ＿ＢＰメッセージの伝送を介して、ＧＥＴ＿ＢＰメッセージを伝送するネットワーク構成要素へ伝送することができる。
【００６７】
図３Ｂは、リクエストタイプのＭＯＭＰメッセージを含め、ホストデバイスとＶＳＭデバイスとの間のＭＯＭＰメッセージのエクスチェンジを示すブロック図である。図示するように、ホストデバイス１１０ｃは、ＶＳＭデバイス１４０ｎから血圧測定情報を受信するために、ＭＯＭＰリクエスト通信３２２を伝送する。リクエスト通信３２２は、記号ＦＡＭＩＬＹ＿ＮＩＢＰ、Ｇｎ＿ＲｅｑｕｅｓｔおよびＧＥＴ＿ＢＰそれぞれによって表されるサブフィールド値を含む、メッセージ識別子フィールドを有するＭＯＭＰメッセージを含む。
【００６８】
第１の分類識別子ＦＡＭＩＬＹ＿ＮＩＢＰは、測定済み血圧に関連するデータのセットを含むモジュールを識別する。第２の値Ｇｎ＿Ｒｅｑｕｅｓｔは、ＦＡＭＩＬＹ＿ＮＩＢＰオブジェクトに関連して定義されるＭＯＭＰメッセージ３００のリクエストタイプを識別する。第３の値ＧＥＴ＿ＢＰは、特定の構造、およびＧｎ＿Ｒｅｑｕｅｓｔタイプのメッセージを介して、ホスト１１０ｃによって要求されるデータの表現を識別する。ホスト１１０ｃは、ＶＳＭデバイス１４０ｎが、特定の構造のインスタンスおよびデータの表現を含め、応答タイプのＭＯＭＰ通信を、リクエスト通信３２２に応えてホスト１１０ｃに伝送することを要求している。
【００６９】
リクエスト通信３２２の受信に応えて、ＶＳＭデバイス１４０ｎは、特定の構造のインスタンス、およびＧＥＴ＿ＢＰ特定の（種の）分類に関連したデータの表現を含め、ＭＯＭＰ応答通信３２４を伝送する。応答通信３２４は、メッセージ識別子フィールドが、記号ＦＡＭＩＬＹ＿ＮＩＢＰ、Ｇｎ＿ＲｅｓｐｏｎｓｅおよびＰＵＴ＿ＢＰそれぞれによって表される分類（サブフィールド値）を含むＭＯＭＰメッセージを含む。
【００７０】
第１の値（ＦＡＭＩＬＹ＿ＮＩＢＰ）は、測定済み血圧に関連するデータの要求されたセットを含むモジュールを識別する。第２の値（Ｇｎ＿Ｒｅｓｐｏｎｓｅ）は、ＦＡＭＩＬＹ＿ＮＩＢＰモジュールに関連して定義されるＭＯＭＰメッセージの応答タイプを識別する。第３の値（ＰＵＴ＿ＢＰ）は、特定の構造、およびこの（Ｇｎ＿Ｒｅｓｐｏｎｓｅ）タイプのＭＯＭＰメッセージ３００を介して、ＶＳＭデバイス１４０ｎによって伝送されているデータの表現を識別する。
【００７１】
いくつかの状況では、ＶＳＭデバイス１４０ｎは、ＭＯＭＰ通信３２２のリクエストタイプの受信に応答するために、応答タイプのＭＯＭＰメッセージ通信３２４を伝送することができない。この状況では、ＶＳＭデバイス１４０ｎは、ＭＯＭＰ通信３２２のリクエストタイプに応えて、ＭＯＭＰ通信３２６のトラップタイプを代わりに伝送する。トラップ通信３２６は、トラップタイプ３３０のＭＯＭＰメッセージ３００を含む。
【００７２】
トラップタイプのＭＯＭＰメッセージ３３０は、エラーオブジェクトを含む、属のＭＯＭＰメッセージ３００と同様に構造される。他の属のＭＯＭＰメッセージ３００と同様に、トラップタイプのＭＯＭＰメッセージは、テキスト文字列識別子「ＦｍＴＲＡＰ」、「ＧｎＥｒｒｏｒ」および「ＳｐＥｒｒｏｒ」それぞれによって表される第１、第２および第３の分類（サブフィールド値）を含む、メッセージ識別子フィールド３０２を有する。
【００７３】
第１の識別子（ＦｍＴＲＡＰ）は、ホストコンピュータ１１０Ｃから伝送される元の通信３２２に応答しているＶＳＭデバイス１４０ｎ内のモジュールを表示する。元の通信３２２は、ＶＳＭデバイス１４０ｎの（ＦｍＮＩＢＰ）モジュールに対応されたが、（ＦｍＮＩＢＰ）モジュールは、元の通信３２２に関連したアクションを実行できず、結果として、通信３２２に応答するために、ＶＳＭデバイス１４０ｎのＦｍＴＲＡＰモジュールに制御を転送した。
【００７４】
第２の分類識別子（ＧｎＥｒｒｏｒ）は、（ＦｍＴＲＡＰ）モジュールに関連して定義されるメッセージのエラータイプを識別する。第３の分類識別子（ＳｐＥｒｒｏｒ）は、生じたエラーのタイプを識別する。このタイプのエラーは、本明細書ではトラップＭＯＭＰメッセージの非確認タイプを意味する、「ＮＡＫ」と称される。他の状況では、第３の値（ＳｐＮｏｎｅ）は、トラップＭＯＭＰメッセージの確認タイプを意味する、「ＡＣＫ」を識別することができる。
【００７５】
トラップメッセージ３３０は、本明細書ではトラップオブジェクト３４０とも称されるエラーオブジェクト３４０を含む。エラーオブジェクト３４０は、ＭＯＭＰメッセージ３００のオブジェクトバッファフィールド３０８内に属し、またエラー識別データを含む。エラー識別データは、元の通信３２２の受信に応えて、ＶＳＭデバイス１４０ｎのアクションまたはアクションの試みから生じる１つ以上のエラーを説明する。
【００７６】
エラーオブジェクト３４０の構造は、複数のフィールドに分割される。フィールドは、ＣＬＳＩＤフィールド３３２とも称されるオブジェクト識別子フィールド３３２、オブジェクトサイズフィールド３３４、オブジェクトバージョンフィールド３３６、ビットフィールド３３８、オブジェクトペイロードフィールド３４２およびオブジェクトＣＲＣフィールド３４４を含む。
【００７７】
オブジェクトペイロードフィールド３４２は、複数のフィールドにさらに分割される。フィールドは、メッセージサイズフィールド３４６、メッセージ識別子フィールド３０２、エラーオペコードフィールド３４８、原文のエラー説明フィールド３５６、拡張エラーサイズフィールド３５８および拡張エラー情報フィールド３６０を含む。
【００７８】
好ましくは、メッセージサイズフィールド３４６は、バイトの単位で表現する。メッセージ識別子フィールド３０２は、エラーオブジェクトが応答する、元の通信３２２内に含まれるＭＯＭＰメッセージ３００を識別する。このように、メッセージ識別子フィールド３０２は、元の通信３２２内に含まれるリクエストタイプのＭＯＭＰメッセージ３００に保存される識別子（ＦＡＭＩＬＹ＿ＮＩＢＰ、Ｇｎ＿ＲｅｑｕｅｓｔおよびＧＥＴ＿ＢＰ）を含む。
【００７９】
エラーオペコードフィールド３４８は、元の通信３２２が伝送するモジュールによって提供される属のエラーコードを保存する。このように、エラーオペコードフィールド３４８は、ＦＡＭＩＬＹ＿ＮＩＢＰモジュールによって提供される。原文のエラー説明フィールド３５６は、元の通信３２２が伝送するモジュールによってさらに供給されるテキストである。このように、原文のエラー説明フィールド３５６は、ＦＡＭＩＬＹ＿ＮＩＢＰモジュールによって提供される。ホストコンピュータ１１０ｃは、後に通信する可能性があるネットワーク構成要素に関連したエラー定義の完全なリストを維持する必要はない。
【００８０】
拡張エラー情報フィールド３６０は、ＶＳＭデバイス１４０ｎ自身によって提供され、またＦＡＭＩＬＹ＿ＮＩＢＰモジュール命令および／またはＷＡＣＰ通信インターフェースソフトウェアとも称される、ＷＡＣＰ通信プロトコルのインターフェース（ＣＰＩ）ソフトウェアから始まる属の情報であることとは対照的に、デバイス特有である。拡張エラーサイズフィールド３５８は、拡張されたエラー情報フィールド３６０のサイズを、好ましくはバイトの単位で表示する。
【００８１】
図３Ｃは、コマンドタイプのＭＯＭＰメッセージ３００を含め、ホストデバイス１１０ｃおよびＶＳＭデバイス１４０ｎとの間のＭＯＭＰメッセージのエクスチェンジを示すブロック図である。図示するように、ホストデバイス１１０ｃは、コマンド通信３６２またはコマンドメッセージ３６２とも称される、コマンドタイプのＭＯＭＰメッセージを含む、通信３６２をＶＳＭデバイス１４０ｎに伝送する。
【００８２】
コマンドタイプの通信３６２は、特定のアクションが、コマンド通信３６２を受信するネットワーク構成要素によって実行するよう導く。コマンド通信３６２は、テキスト文字列識別子（ＦｍＮＩＢＰ），（ＧｎＣｏｍｍａｎｄ）および（ＳＴＡＲＴ＿ＮＩＢＰ）それぞれによって表されるサブフィールド値を含む、メッセージ識別子フィールドを有するコマンドタイプのＭＯＭＰメッセージ３００を含む。
【００８３】
第１の分類識別子値ＦｍＮＩＢＰは、測定済み血圧に関連するデータのセットを含むモジュールを識別する。第２の分類識別子値ＧｎＣｏｍｍａｎｄは、ＦｍＮＩＢＰモジュールに関連して定義されるＭＯＭＰメッセージの属のＧｎＣｏｍｍａｎｄタイプを識別する。ＧｎＣｏｍｍａｎｄは、コマンドタイプのＭＯＭＰメッセージである。第３の値ＳＴＡＲＴ＿ＮＩＢＰは、ＦｍＮＩＢＰモジュールのＧｎＣｏｍｍａｎｄ第２の分類内で定義されるＭＯＭＰメッセージの特定のコマンドタイプを識別する。
【００８４】
ＳＴＡＲＴ＿ＮＩＢＰコマンド３６２は、ＦｍＮＩＢＰモジュールに関連したＧｎＣｏｍｍａｎｄタイプのＭＯＭＰメッセージとして、ホスト１１０ｃによってＶＳＭデバイス１４０ｎに伝送される。ホスト１１０ｃは、ＶＳＭデバイス１４０ｎがＳＴＡＲＴ＿ＮＩＢＰサブフィールドを介して、血圧測定循環の開始に着手するよう導かれる。
【００８５】
コマンド通信３６２に応えて、ＶＳＭデバイス１４０ｎは、テキスト文字列識別子「ＦｍＴＲＡＰ」、「ＧｎＥｒｒｏｒ」および「ＳｐＮｏｎｅ」それぞれによって表される分類（サブフィールド値）を含む、メッセージ識別子フィールドを有するトラップタイプのＭＯＭＰメッセージを含む、ＭＯＭＰトラップタイプの通信３６４を伝送する。この状況では、第３の分類識別子値ＳｐＮｏｎｅは、トラップメッセージの確認タイプを意味する「ＡＣＫ」を識別する。確認は、ＳＴＡＲＴ＿ＮＩＢＰコマンドの実行の正常終了、すなわち、受信するネットワーク構成要素による血圧測定循環の開始の正常着手を表示する。
【００８６】
別の状況では、コマンドが実行されない場合には、第３の値は、トラップメッセージの非確認タイプを意味する「ＮＡＫ」を表示するＳｐＥｒｒｏｒに相当する。非確認は、コマンドの実行の非正常終了、すなわち受信するネットワーク構成要素による血圧測定循環の開始の起動の非実行を表示する。
【００８７】
図３Ｄは、状況タイプのＭＯＭＰメッセージを含め、ホストデバイス１１０ｃとＶＳＭデバイス１４０ｎとの間のＭＯＭＰメッセージのエクスチェンジを示すブロック図である。図示するように、ＶＳＭデバイス１４０ｎは、状況通信３７２または状況メッセージ３８２とも称される、状況タイプのＭＯＭＰメッセージ３７２を含む通信３７２を、ホストデバイス１１０ｃに伝送する。状況タイプの通信３７２は、通信３７２を受信するネットワーク構成要素（ホスト）１１０ｃに情報を提供する。
【００８８】
状況通信３７２は、例えば「ＦｍＮＩＢＰ」などの第１の分類テキスト文字列識別子、第２の分類テキスト文字列識別子「ＧｎＳｔａｔｕｓ」および例えば「ＲＥＰＯＲＴ＿ＢＰ」などの第３の分類識別子によって表されるサブフィールド値を含むメッセージ識別子フィールドを有する静的タイプのＭＯＭＰメッセージ３００を含む。
【００８９】
状況通信３７２は、（ＦｍＮＩＢＰ）、（ＧｎＳｔａｔｕｓ）および（ＲＥＰＯＲＴ＿ＢＰ）それぞれとしての第１、第２および第３の分類識別子を表すサブフィールド値を含むメッセージ識別子フィールド３０２を有する状況タイプのＭＯＭＰメッセージ３００を含む。「ＦｍＮＩＢＰ」識別子は、状況通信３７２を伝送しているモジュールを表示する。ＧｎＳｔａｔｕｓに相当する第２の分類識別子は、メッセージが状況タイプのＭＯＭＰメッセージであることを表示する。
【００９０】
第１の分類識別子ＦｍＮＩＢＰはまた、測定済み血圧に関連するデータのセットを含むモジュールを表示する。第２の分類識別子ＧｎＳｔａｔｕｓは、ＦｍＮＩＢＰモジュールに関連して定義されるＭＯＭＰメッセージのＧｎＳｔａｔｕｓタイプを識別する。ＧｎＳｔａｔｕｓは、状況タイプのＭＯＭＰメッセージである。第３の値ＲＥＰＯＲＴ＿ＢＰは、ＧｎＳｔａｔｕｓ分類内に含まれる状況情報の特定のタイプを識別する。
【００９１】
通常、状況メッセージ３７２は、長い期間をかけて周期的に伝送される。例えば、ＷＡＣＰ通信ソフトウェアモジュールは、状況メッセージ３７２を特定のあて先に１０分毎に伝送するよう構成することができる。ホストコンピュータ１１０Ｃは、状況通信３７２の確認または非確認を表示するトラップ通信３７４を伝送することによって応答する（図３Ｂを参照）。
【００９２】
関連した状況タイプのＭＯＭＰメッセージを含む、すべてのモジュールが定義されるわけではない。結果として、状況タイプのＭＯＭＰメッセージは、特定のモジュールと関連していても、または関連していなくてもよい。特定の（種の）識別子によって表示される、状況メッセージの多くの異なる定義済みタイプが存在することができる。
【００９３】
図３Ｅは、イベントタイプのＭＯＭＰメッセージを含め、ホストデバイス１１０ＣとＶＳＭデバイス１４０ｎとの間のＭＯＭＰメッセージのエクスチェンジを示すブロック図である。図示するように、ＶＳＭデバイス１４０ｎは、イベント通信３８２またはイベントメッセージ３８２とも称される、イベントタイプのＭＯＭＰメッセージ３８２を含む通信３８２を、ホストデバイス１１０ｃに伝送する。
【００９４】
イベントタイプの通信３８２は、通信３８２を受信するネットワーク構成要素（ホスト）１１０Ｃに情報を提供する。イベント通信３８２は、例えば「ＦｍＰｒｉｎｔｅｒ」などの第１の分類テキスト文字列識別子、第２の分類テキスト文字列識別子「ＧｎＥｖｅｎｔ」および例えば「ＨＷ＿ＭＯＤ＿ＣＯＮＮＥＣＴ」などの第３の分類テキスト文字列識別子によって表されるサブフィールド値を含む、メッセージ識別子フィールドを有するイベントタイプのＭＯＭＰメッセージを含む。
【００９５】
第１の分類識別子ＦｍＰｒｉｎｔｅｒは、プリンターとインターフェースをとる特定のモジュールを識別する。第２の分類識別子ＧｎＥｖｅｎｔは、ＦｍＰｒｉｎｔｅｒモジュールに関連して定義されるＭＯＭＰメッセージ分類のＧｎＥｖｅｎｔタイプを識別する。ＧｎＥｖｅｎｔは、イベントタイプのＭＯＭＰメッセージである。第３の分類識別子値ＨＷ＿ＭＯＤ＿ＣＯＮＮＥＣＴは、ＧｎＥｖｅｎｔ分類内に含まれるイベント情報の特定のタイプを識別する。例えば、ＨＷ＿ＭＯＤ＿ＣＯＮＮＥＣＴイベントは、ＦｍＰｒｉｎｔｅｒモジュールに関連したプリンターデバイスに接続されているハードウェアモジュールの発生を識別する。
【００９６】
関連したイベントタイプのＭＯＭＰメッセージを含む、すべてのモジュールが定義されるわけではない。結果として、イベントタイプのＭＯＭＰメッセージは、特定のモジュールと関連していても、または関連していなくてもよい。特定の（種の）ＭＯＭＰメッセージ識別子によって表示される、イベントメッセージの多くの異なる定義済みタイプが存在することができる。
【００９７】
通常、イベントメッセージ３８２は、イベントの発生に応えて伝送される。例えば、ＷＡＣＰ通信ソフトウェアモジュールは、ハードウェアが、ＦｍＰｒｉｎｔｅｒモジュールに関連したプリンターデバイスと接続されている場合に、ＨＷ＿ＭＯＤ＿ＣＯＮＮＥＣＴ記号によって表されるイベントなどのイベントが発生すると、イベントメッセージ３８２を伝送するよう構成することができる。ホストコンピュータ１１０Ｃは、状況通信３７２の確認または非確認を表示するトラップ通信３８４を伝送することによって応答する（図３Ｂを参照）。
【００９８】
図３Ｆは、ネットワーク構成要素１１０ｃ、１４０ｎ間で伝送されるキープアライブ通信３９２、３９４を示すブロック図である。キープアライブ通信３９２、３９４は、受信するネットワーク構成要素に、送信するネットワーク構成要素１１０ｃ、１４０ｎがネットワーク構成要素１１０ｃ、１４０ｎとの間の特定の接続上の通信に対して動作中（活動中）であることを表示する。キープアライブ通信を受信することが予期されている受信するネットワーク構成要素が、所定の期間にわたりキープアライブ通信を受信しない場合、その結果、送信するネットワーク構成要素１１０ｃ、１４０ｎは通信するのにもはや利用できないことを推論することができる。
【００９９】
キープアライブ通信３９２、３０４は、キープアライブメッセージ３９０とも称される、キープアライブタイプのＭＯＭＰメッセージ３９０を含む。通常のＭＯＭＰメッセージ３００と同様に、キープアライブメッセージ３９０は、識別子フィールド３０２、メッセージサイズフィールド３０４、メッセージ暗号化フィールド３０６および巡回冗長チェック（ＣＲＣ）フィールド３１０を含む。普通のＭＯＭＰメッセージ３００と異なり、キープアライブメッセージ３９０は、オブジェクトバッファフィールド３０８を除外する。
【０１００】
キープアライブメッセージ３９０は、第１の分類テキスト文字列識別子「ＦｍＣＯＮＮＥＣＴＩＯＮ」；「ＧｎＲＥＱＵＥＳＴ」、「ＧｎＲＥＳＰＯＮＳＥ」、「ＧｎＣＯＭＭＡＮＤ」、「ＧｎＣＯＮＦＩＧ」のいずれかに相当する第２の分類テキスト文字列識別子；および「ＳｐＫＥＥＰＡＬＩＶＥ」、「ＳｐＳＨＵＴＤＯＷＮ」、「ＳｐＫＥＥＰＡＬＩＶＥＯＮ」または「ＳｐＫＥＥＰＡＬＩＶＥＯＦＦ」のいずれかに相当する第３の分類テキスト文字列識別子によって表されるサブフィールド値を含むメッセージ識別子フィールド３０２を有する。
【０１０１】
第１の分類識別子ＦｍＣＯＮＮＥＣＴＩＯＮは、ネットワーク構成要素間の接続に関連した特定のモジュールを識別する。第２の分類識別子は、メッセージの関連したＭＯＭＰタイプを識別する。第３の分類識別子値は、キープアライブメッセージ３９０の特定の機能を表示する。
【０１０２】
第３の分類が、「ＳｐＫＥＥＰＡＬＩＶＥ」に相当する場合、それは、受信するネットワーク構成要素１４０ｎ、１１０ｃに対して、送信するネットワーク構成要素１１０ｃ、１４０ｎは、ネットワーク構成要素１１０ｃ、１４０ｎ間の特定の接続上の通信に対して動作中（活動中）であることを表示する。第３の分類識別子が「ＳｐＳＨＵＴＤＯＷＮ」に相当する場合、それは、受信するネットワーク構成要素１４０ｎ、１１０ｃに対して、送信するネットワーク構成要素１１０ｃ、１４０ｎがネットワーク構成要素１１０ｃ、１４０ｎ間の接続のシャットダウンを開始していることを表示する。
【０１０３】
第３の分類が「ＳｐＫＥＥＰＡＬＩＶＥＯＮ」に相当する場合、それは、受信するネットワーク構成要素１４０ｎ、１１０ｃに対して、送信するネットワーク構成要素１１０ｃ、１４０ｎが、受信するネットワーク構成要素が周期的にキープアライブメッセージ３９０に伝送することをリクエストしていることを表示する。第３の分類が「ＳｐＫＥＥＰＡＬＩＶＥＯＦＦ」に相当する場合、それは、受信するネットワーク構成要素１４０ｎ、１１０ｃに対して、送信するネットワーク構成要素１１０ｃ、１４０ｎが、受信するネットワーク構成要素が、キープアライブメッセージ３９０を周期的に伝送しないことをリクエストしていることを表示する。
【０１０４】
図３Ｇは、データオブジェクトのメッセージ３９６を構成する情報の構造を示すブロック図である。データオブジェクトのメッセージ３９６は、ＭＯＭＰメッセージ３００と同じように、インターチェンジエンベロープ２２０、２４０のデータバッファフィールド２３４内で伝達される。データオブジェクトのメッセージ３９６は、データバッファフィールド２３４内のＭＯＭＰメッセージ３００の代用をする。データオブジェクトのメッセージ３９６を伝達するのにＭＯＭＰメッセージは使用されない。
【０１０５】
データオブジェクト３９６の構造は、エラーオブジェクト３４０を説明したように、複数のフィールドに分割される（図３Ｂ参照）。いくつかの実施態様では、データオブジェクトは、図３Ｂに示したように、ＣＬＳＩＤフィールド３３２とも称される、オブジェクト識別子フィールド３３２、オブジェクトサイズフィールド３３４、オブジェクトバージョンフィールド３３６、ビットフィールド３３８、オブジェクトペイロードフィールド３４２、およびオブジェクトＣＲＣフィールド３４４を含む。この形式では、データオブジェクトは、連載されるデータオブジェクトと称される。
【０１０６】
ＭＯＭＰメッセージ３００内に同封されていないデータオブジェクト３９６を伝送することは、伝送ごとに必要なバイト数を減少し、データを伝送するのに必要なバイトに対してより効率的となる。いくつかの実施態様では、データオブジェクトのメッセージ３９６は、ネットワーク構成要素間のデータのストリーミングのために使用することができる。
【０１０７】
図４Ａは、本発明の実施態様に従って、ＷＡＣＰ  ＣＰＩソフトウェアの構造配列を示すブロック図である。ＷＡＣＰ  ＣＰＩソフトウェア４１４ａ、４１４ｂは、上位プロトコルスタック２１０Ｄ〜２１０Ｆを実装するよう構成される。オペレーションシステムソフトウェア４１２は、下位プロトコルスタック２１０Ａ〜２１０Ｃを実装するよう構成される。
【０１０８】
ＷＡＣＰ  ＣＰＩは、コア部分および非コア（拡張可能）部分に分割される。ＷＡＣＰ  ＣＰＩのコア部分は、ＭＯＭＰメッセージのリクエスト、応答、コマンド、状況およびエラータイプを含む、接続の確立および終了、暗号化および属のメッセージの型を含む機能性を特定する属の構造として機能する。ＷＡＣＰ  ＣＰＩの非コア（拡張可能）部分より、関連したデータおよびメッセージを含むモジュールを追加することができる。モジュールは、ＷＡＣＰ  ＣＰＩのコア部分の機能性を拡張する。
【０１０９】
いくつかの実施態様では、命令は、モジュールを定義するよう、モジュール内に含まれるデータを定義するよう、定義されたモジュールに関連したＭＯＭＰメッセージのリクエスト、応答、コマンド、状況およびエラータイプの特定の構造を定義するよう採用される。ＷＡＣＰ  ＣＰＩの非コア部分により、コア部分の機能性は、特定のアプリケーションに対応するよう補足およびカスタマイズすることができる。
【０１１０】
したがって、ＷＡＣＰ  ＣＰＩを実装するよう構成されるソフトウェアは、コア部分４１４ａおよび非コア（拡張可能）部分４１４ｂに分割される。ＷＡＣＰ  ＣＰＩソフトウェアのコア部分４１４ａは、どのモジュールが特定のＷＡＣＰ  ＣＰＩソフトウェアの構成内で定義されている、または定義されていないにかかわらず、ＷＡＣＰ  ＣＰＩの機能を実装するよう構成され、またＭＯＭＰメッセージのリクエスト、応答、コマンド、状況およびエラータイプを含む、接続の確立および終了、暗号化および属のメッセージの型を含む機能性を実装する。
【０１１１】
ＷＡＣＰ  ＣＰＩソフトウェアの非コア部分４１４ｂは、モジュールの形式で、非コアの補足的な、およびカスタマイズ可能な機能性を実装する。いくつかの実施態様では、モジュールは、モジュール関連したデータおよびメッセージに関する動作を含む、モジュールに関連した機能性を定義する命令を介して追加することができる。ＷＡＣＰ  ＣＰＩソフトウェアの非コア部分は、ＷＡＣＰ  ＣＰＩのコア部分およびＷＡＣＰ  ＣＰＩ全体としての機能性を補足する。
【０１１２】
ＷＡＣＰ  ＣＰＩソフトウェアのコア部分の４１４ａは、オペレーティングシステム４１２とインターフェースをとるよう構成される。ＷＡＣＰ  ＣＰＩソフトウェアのコアおよび非コア部分のどちらも、アプリケーションソフトウェア４１６とインターフェースをとることができる。
【０１１３】
ＷＡＣＰ  ＣＰＩソフトウェアの非コア（補足の）特長により、ＷＡＣＰ  ＣＰＩ自身の実装のカスタマイズ化は、１つ以上のネットワーク構成要素の特定のセットの動作によって必要とされる特定の通信要件に対応することができる。例えば、ＷＡＣＰ  ＣＰＩ設計の部分は、ネットワーク構成要素の特定のセットによって必要とされる生理学的データのタイプなどの、データの特定の型および構造の通信に対応するよう構成することができる。
【０１１４】
さらに、ＷＡＣＰ  ＣＰＩの非コア（補足の）特長により、ＷＡＣＰ  ＣＰＩソフトウェアのそれぞれの実装（インスタンス）は、ＷＡＣＰ  ＣＰＩの全体の構成およびバージョンの小さいまたは大きいサブセットを実行することができる。したがって、ＶＳＭデバイス１４０ｎなどの、それぞれのネットワーク構成要素は、ＷＡＣＰ通信プロトコルのインターフェース（ＣＰＩ）の全体のバージョンの小さいサブセットを実装するよう構成することができ、それに応じて、ＷＡＣＰ  ＣＰＩの全体のバージョンのサブセットを実装するよう構成される、ＷＡＣＰソフトウェアの応答する小さいサブセットを実行することができる。
【０１１５】
その結果として、個々のネットワーク構成要素は、普遍的に定義されたデバイス非依存性データを獲得、通信および処理するよう構成されるネットワーク内の、かかるデータ（情報）の膨大な量および多様性の、小さい部分であろうと、大きい部分であろうと、部分を通信するよう一意的および能率的に構成することができる。
【０１１６】
図４Ｂは、本発明に従って、ＷＡＣＰメッセージの着信するリクエストタイプを受信、処理および転送する、ＷＡＣＰ  ＣＰＩソフトウェア４１４の実施態様により実行するパスを示すブロック図である。例となる目的のために、ＶＳＭデバイス１４０内に属するものとしてＷＡＣＰソフトウェアを示す。ＷＡＣＰソフトウェアはまた、例えば、ＷＡＣＰが使用可能なネットワーク構成要素と相互運用するよう構成される、ホストコンピュータ１１０ｃおよび／または別のタイプのデバイスを含む、ＷＡＣＰ通信プロトコルのインターフェース（ＣＰＩ）を採用するよう構成されるどんなネットワーク構成要素にも属することができる。
【０１１７】
図示するように、ＷＡＣＰ  ＣＰＩソフトウェア４１４のコア部分４１４ａは、複数のソフトウェアオブジェクト４２４〜４２６およびソフトウェア４１４の非コア部分４１４ｂ〜４１４ｃ内に含まれ、複数のソフトウェアオブジェクト４２２、４２８〜４３２内に含まれる。この実施態様では、ソフトウェアオブジェクトは、Ｃ＋＋コードおよび／またはソースコードとも称される、Ｃ＋＋プログラミング言語のソースコードから開発される。それぞれのソフトウェアオブジェクトは、指示およびデータをカプセル化する。ソフトウェアオブジェクトの指示は、ソフトウェアオブジェクトの内部に属している機能である、そのメソッド内に属する。他の実施態様では、ソフトウェアオブジェクトは、例えば、Ｃ、Ｃ＃（Ｃシャープ）のソースコードまたはＪａｖａ（登録商標）プログラミング言語などの、ソースコードの他のタイプを開発することができる。
【０１１８】
ＷＡＣＰメッセージ３９０は、他のネットワーク構成要素からＶＳＭデバイス１４０ｎへ伝送され、またオペレーティングシステム４１２によって受信され、バッファリングする。ＷＡＣＰメッセージ３９０は、第１、第２および第３のメッセージ分類を有し、またインターチェンジエンベロープ２２０内に同封される、ＭＯＭＰリクエストタイプのメッセージである。メッセージ３９０が、ＷＡＣＰ  ＣＰＩソフトウェア４１４によって実行される各種のインテグリティチェックを通過するならば、ＷＡＣＰ  ＣＰＩソフトウェア４１４は、メッセージ３９０を転送、処理およびアプリケーションソフトウェア４１６内の妥当な位置に配信するよう構成される。
【０１１９】
メッセージ３９０の処理および配信は、メッセージ３９０内に保存される第１、第２および第３のメッセージ分類を含む、メッセージ３９０の各種の属性に従って実行されるであろう。アプリケーションソフトウェア４１６内の特定の位置にメッセージ３９０が配信されると、アプリケーションソフトウェア４１６は、メッセージ３９０の配信に応答するかどうか、またその方法を決定する。
【０１２０】
ＷＡＣＰメッセージ３９０を受信、処理および転送するための実行４３８のパスを示す。実行４３８のパスは、オペレーティングシステム４１２を介して、ＷＡＣＰ  ＣＰＩソフトウェア４１４を経て、アプリケーションソフトウェア４１６まで進む。ＷＡＣＰ  ＣＰＩソフトウェア４１４は、集合的にメッセージを受信、処理およびアプリケーションソフトウェア４１６に転送するソフトウェアオブジェクト４２２〜４３２のセット内に含まれる。アプリケーションソフトウェア４１６の部分はまた、ソフトウェアオブジェクト４３２〜４３４のセット内に含まれる。
【０１２１】
この実施態様では、オペレーティングシステム４１２は、Ｗｉｎｄｏｗｓ（登録商標）ＸＰなどのＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）３２ビットオペレーティングシステムとして実装される。デバイスおよびネットワークドライバーを含むオペレーティングシステム４１２および関連したそれのソフトウェアは、ＷＡＣＰ  ＣＰＩの下位プロトコルスタック２１０Ａ〜２１０Ｃを実装するよう構成される（図２Ｂ参照）。ＷＡＣＰ  ＣＰＩソフトウェア４１４および関連したそれのソフトウェアオブジェクト４２２〜２３６は、上位プロトコルスタック２１０Ｄ〜２１０Ｇを実装する。
【０１２２】
ＷＡＣＰ  ＣＰＩソフトウェア４１４の上位プロトコルスタック２１０Ｄ〜２１０Ｇは、以下のメソッドで、オペレーティングシステム４１２の下位プロトコルスタック２１０Ａ〜２１０Ｃから通信を受信する。ＣＥｔｈＣｏｍｍＳｖｒオブジェクト４２０のＲｅｃｖＭｓｇ（）メソッドは、オペレーティングシステム４１２の内部でバッファリングされるメッセージ３９０メッセージを受信およびキューに入れるために、ｗｓ２＿３２．ｄｌｌダイナミックリンクライブラリ（ＤＬＬ）の内部に属するｒｅｃｖ（）機能を呼び出す。ｗｓ２＿３２．ｄｌｌは、例えば、Ｗｉｎｄｏｗｓ（登録商標）  ＸＰ、Ｗｉｎｄｏｗｓ（登録商標）  ２０００、Ｗｉｎｄｏｗｓ（登録商標）  ＮＴおよびＷｉｎｄｏｗｓ（登録商標）  Ｓｅｒｖｅｒ２００３を含む、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムと相互運用するＭｉｃｒｏｓｏｆｔによって提供される。
【０１２３】
ＣＥｔｈＣｏｍｍＳｖｒオブジェクト４２０のＲｅｃｖＭｓｇ（）メソッドは、下位プロトコルスタック２１０Ａ〜２１０Ｃから受信される通信データの可用性を表示するセマフォを設定する。ＣＷＡＣＰＰｒｅｓオブジェクト４２２のＤａｔａＴｈｒｅａｄ（）メソッドは、ＣＥｔｈＣｏｍｍＳｖｒオブジェクトのＲｅｃｖＭｓｇ（）メソッドによって、セマフォの設定を待つ、メッセージ入力スレッドと称される、スレッドに従って実行する。
【０１２４】
セマフォが設定されるのに応えて、ＣＷＡＣＰＰｒｅｓオブジェクト４２２のＤａｔａＴｈｒｅａｄ（）メソッドを実行しているメッセージ入力スレッドは、４３８ａ、ＣＦｍＲｏｕｔｅｒオブジェクト４２４のＲｅｃｖＭｓｇ（）メソッドを呼び出すＣＷＡＣＰＰｒｅｓオブジェクト４２２のＰｒｏｃｅｓｓＭｓｇ（）メソッド（図示せず）を阻害せず、呼び出す。メソッド（機能）呼び出し４３８ａにより、メッセージ入力スレッドの実行の状態は、バッファリングされる着信ＷＡＣＰメッセージ３９０を処理および転送するために、ＣＷＡＣＰＰｒｅｓオブジェクト４２２を離れ、ＣＦｍＲｏｕｔｅｒオブジェクト４２４に入り、さらに実行４３８のパスに沿って進む。
【０１２５】
ＲｅｃｖＭｓｇ（）メソッドは、メッセージ３９０から第１の分類識別子を抽出し、またメッセージ３９０の第１の（科）分類に関連したＣＦｍＮＩＢＰＣｏｍオブジェクト４３０のインスタンスのアドレスであるオブジェクトポインタにそれをマッピングする。次に、ＲｅｃｖＭｓｇ（）メソッドは、ＣＦｍＮＩＢＰＣｏｍオブジェクト４３０のインスタンス内に属する４３８ｂａ、ＲｅｃｖＭｓｇＨａｎｄｌｅｒ（）メソッドを呼び出す。
【０１２６】
次に、ＲｅｃｖＭｓｇＨａｎｄｌｅｒ（）メソッドは、メッセージ３９０から第２の（属）分類識別子を抽出し、また事前登録（ｐＲｅｑｕｅｓｔＨａｎｄｌｅｒ）機能ポインタ（図示せず）にそれをマッピングし、４３８ｃ、（ｐＲｅｑｕｅｓｔＨａｎｄｌｅｒ）機能オブジェクトポインタを呼び出す。機能ポインタは、ＣＷＡＣＰＡｐｐオブジェクト４２６のインスタンス内に属するＲｘＲｅｑｕｅｓｔＷｒａｐｐｅｒ（）メソッドのアドレスである。ＲｘＲｅｑｕｅｓｔＷｒａｐｐｅｒ（）メソッドは、リクエストタイプのＭＯＭＰメッセージを処理するよう構成される。
【０１２７】
仮定で、メッセージ３９０が異なるタイプのＭＯＭＰメッセージであったとすると、例えば、メッセージ３９０が、その第２／属の分類によって表示される応答またはコマンドタイプのＭＯＭＰメッセージであった場合、機能ポインタは、前記タイプのメッセージ（第２の分類）および前記タイプのモジュール（第１の／科分類）を処理するよう構成されるであろう、ｔｈｅＲｘＲｅｑｕｅｓｔＷｒａｐｐｅｒ（）メソッド以外のメソッドのアドレスを保存するであろう。
【０１２８】
次に、ＣＷＡＣＰＡｐｐオブジェクト４２６のＲｘＲｅｑｕｅｓｔＷｒａｐｐｅｒ（）メソッドは、メッセージの発信者が、前の認証チェックを無事に通ったかを検証し、そうであれば、ＣＷＡＣＰＳｔｕｂオブジェクトのインスタンス内に属する４３８ｄ、ＲｅｃｖＲｅｑｕｅｓｔ（）メソッドを呼び出す。
【０１２９】
次に、ＣＷＡＣＰＳｔｕｂオブジェクト４２８のインスタンス内に属するＲｅｃｖＲｅｑｕｅｓｔ（）メソッドは、第１の分類識別子（ＦｍＮＩＢＰ）の値を交換し、またＣＦｍＮＩＢＰＳｔｕｂオブジェクト４３２のインスタンスの４３８ｅ、ＲｅｃｖＲｅｑｕｅｓｔ（）メソッドを呼び出す。テキスト「ＮＩＢＰ」は、拡張されたモジュール（ＦｍＮＩＢＰ）、ＷＡＣＰ  ＣＰＩの名前／識別子に対して一意であり、また第１の分類のメッセージ３９０に関連していることに留意されたい。
【０１３０】
ＣＷＡＣＰＳｔｕｂオブジェクト４３２のインスタンスは、ＷＡＣＰ  ＣＰＩソフトウェア４１４を介したメッセージ３９０の受信に応えて、アプリケーションソフトウェア４１６によって実行されるべきアクションを特定するために、アプリケーションソースコード４３６を任意に保存するのに利用可能である。このように、ＣＷＡＣＰＳｔｕｂオブジェクト４３２は、ＷＡＣＰ  ＣＰＩソフトウェア４１４およびアプリケーションソフトウェア４１６の両方を保存するよう構成される。
【０１３１】
実行４３８のパスを再び見ると、オブジェクトＣＦｍＲｏｕｔｅｒ４２４およびＣＷＡＣＰＡｐｐ４２６は、静的コアＷＡＣＰソフトウェアオブジェクトであり、これらのオブジェクトのそれぞれを定義しているソースコードは、ＷＡＣＰ  ＣＰＩソフトウェアの修正可能な部分として構成されないことを意味する。したがって、これらのオブジェクト４２４〜４２６は、ＷＡＣＰ  ＣＰＩの非コア部分およびソフトウェア４１４内に属さない。
【０１３２】
説明した実施態様では、ＷＡＣＰソフトウェアオブジェクトＣＷＡＣＰＰｒｅｓ４２２、ＣＷＡＣＰＡｐｐ４２６およびＣＷＡＣＰＳｔｕｂ４２８は、動的コアオブジェクトであり、これらのオブジェクトの定義内に含まれる少なくともいくつかのソースコードが、ＷＡＣＰ  ＣＰＩソフトウェアの修正可能な部分となるよう構成されることを意味する。したがって、これらのオブジェクト４２２、４２６、４２８は、ＷＡＣＰ  ＣＰＩおよびそのソフトウェア４１４の動的（非静的）コア部分に属する。他の実施態様では、修正可能なソースコードは、オブジェクトの異なるセットに割り当てることができる。
【０１３３】
これらのオブジェクトの定義内に含まれるすべてのソースコードの存在そのものが、ＷＡＣＰ  ＣＰＩソフトウェア４１４に対する追加の非コア（ＦｍＮＩＢＰ）モジュールの構成に応える（４１４ｃ）であるので、オブジェクトＣＦｍＮＩＢＰＣｏｍ４３０およびＣＦｍＮＩＢＰＳｔｕｂ４３２は、非コアＷＡＣＰソフトウェアオブジェクトである。仮説で、ＦｍＮＩＢＰモジュールが、ＷＡＣＰ  ＣＰＩソフトウェア４１４に追加されるよう構成されるものとは違う場合、ソフトウェアオブジェクト４３０〜４３２および他のオブジェクト（図示せず）は、ＷＡＣＰ  ＣＰＩソフトウェア４１４内に存在することはないであろう。
【０１３４】
コアＷＡＣＰ  ＣＰＩオブジェクトは、どんな予測可能なＷＡＣＰ  ＣＰＩ構成内にも存在するよう構成される。拡張されたＷＡＣＰ  ＣＰＩオブジェクトは、ＷＡＣＰ  ＣＰＩに対する拡張に応えて存在する。したがって、ＣＷＡＣＰＰｒｅｓ４２２、ＣＦｍＲｏｕｔｅｒ４２４、ＣＷＡＣＰＡｐｐ４２６およびＣＷＡＣＰＳｔｕｂ４２８オブジェクトは、コアオブジェクトであり、またＣＦｍＮＩＢＰＣｏｍ４３０およびＣＦｍＮＩＢＰＳｔｕｂ４３２オブジェクトは、ＷＡＣＰ  ＣＰＩソフトウェア４１４内の非コア（拡張された）オブジェクトである。
【０１３５】
コアオブジェクト４２２〜４２８について、それらに含まれるソースコードに対して、ＣＦｍＲｏｕｔｅｒ４２４およびＣＷＡＣＰＡｐｐ４２６オブジェクトは静的であり、またＣＷＡＣＰＰｒｅｓ４２２およびＣＷＡＣＰＳｔｕｂ４２８オブジェクトは動的である。非コアオブジェクト、ＣＦｍＮＩＢＰＣｏｍ４３０およびＣＦｍＮＩＢＰＳｔｕｂ４３２のすべては、それらに含まれるソースコードに対して動的である。
【０１３６】
サブ文字列「Ｓｔｕｂ」を含む機能の名前は、機能がスタブ機能であることを表示していることに留意されたい。スタブ機能は、アプリケーションプログラマーが、アプリケーションソフトウェア４１６を有するＣＰＩソフトウェア４１４に接続するために、アプリケーション特定のソースコードに自由に追加できるソースコードの位置である。いくつかの実施態様では、それぞれのモジュールタイプのために定義されたそれぞれのメッセージの型のためのスタブ機能を割り当てることができる。いくつかの実施態様では、スタブ機能はまた、呼び戻し機能として実装される。呼び戻し機能は、メッセージの受信などの、あらかじめ特定されたイベントに応えて、ＣＰＩソフトウェアから呼び出されることを目的とする。
【０１３７】
図４Ｃは、図４ＡのリクエストタイプのＷＡＣＰメッセージの受信に応えて、応答タイプのＷＡＣＰメッセージを伝送するＷＡＣＰ  ＣＰＩソフトウェアの実施態様による実行のパスを示すブロック図である。ＣＦｍＮＩＢＰＳｔｕｂオブジェクト４３２のＲｅｃｖＲｅｑｕｅｓｔ（）メソッドは、ＷＡＣＰメッセージ３９０の受信に応えて、アクションを実行するよう構成されるアプリケーションソフトウェア４３６を含む。
【０１３８】
図４ＢのＷＡＣＰメッセージ３９０の受信に応えて、ＣＦｍＮＩＢＰＳｔｕｂオブジェクト４３２内に属するアプリケーションソフトウェア４３６は、ＣＷＡＣＰＡｐｐオブジェクト４２６のインスタンス内に属しているＳｅｎｄＭｓｇ（）メソッドにマッピングするＳＥＮＤ＿ＲＥＳＰＯＮＳＥ（）機能を呼び出す。ＣＷＡＣＰＡｐｐオブジェクト４２６のＳｅｎｄＭｓｇ（）メソッドは、ＣＷＡＣＰＰｒｅｓオブジェクト４２２のインスタンス内に属しているＳｅｎｄＭｓｇ（）メソッドを呼び出す。ＣＷＡＣＰＰｒｅｓオブジェクト４２２のＳｅｎｄＭｓｇ（）メソッドは、ＣＦｍＲｏｕｔｅｒオブジェクト４２４内に属しているＳｅｎｄＭｓｇ（）メソッドを呼び出す。ＣｆｍＲｏｕｔｅｒオブジェクト４２４のＳｅｎｄＭｓｇ（）メソッドは、第１の（科）分類識別子を機能ポインタにマッピングし、また機能ポインタを呼び出す。機能ポインタは、ＣＦｍＮＩＢＰＣｏｍオブジェクト４３０のインスタンスに属しているＳｅｎｄＭｓｇＨａｎｄｌｅｒ（）メソッドのアドレスを保存する。ＳｅｎｄＭｓｇＨａｎｄｌｅｒ（）メソッドのインスタンスは、伝送されるよう応答タイプのＭＯＭＰメッセージを処理するよう構成される。
【０１３９】
次に、ＳｅｎｄＭｓｇＨａｎｄｌｅｒ（）メソッドは、第２の（属）分類識別子の値を切り、またＣＦｍＮＩＢＰＣｏｍオブジェクト４３０の同じインスタンス内に同様に属しているＴｘＭｓｇ（）メソッドを呼び出す。ＴｘＭｓｇ（）は、ＣＩｎｔｅｒｃｈａｎｇｅオブジェクト４４０のインスタンス内に属しているＳｅｎｄＰａｃｋｅｔＷｒａｐｐｅｒ（）メソッドのアドレスを保存する機能ポインタを呼び出す。
【０１４０】
次に、ＳｅｎｄＰａｃｋｅｔＷｒａｐｐｅｒ（）メソッド４４０は、セマフォの名前をアプリケーション名前と比較し、その後、ＣＩｎｔｅｒｃｈａｎｇｅオブジェクト４４０内に同様に属しているＳｅｎｄＰａｃｋｅｔ（）メソッドを呼び出す。ＳｅｎｄＰａｃｋｅｔ（）メソッドは、応答タイプのＭＯＭＰメッセージを連載し、またＣＥｔｈＣｏｍｍＳｖｒオブジェクト４２０のインスタンスの内部に属しているＳｅｎｄＭｓｇ（）メソッドを呼び出す。
【０１４１】
次に、ＣＥｔｈＣｏｍｍＳｖｒオブジェクト４２０のＳｅｎｄＭｓｇ（）メソッドは、下位プロトコル層２１０Ａ〜２１０Ｃによる伝送のためのメッセージをキューに入れるために、ｗｓ２＿３２．ｄｌｌダイナミックリンクライブラリ（ＤＬＬ）の内部に属している送信（）機能を呼び出す。ｗｓ２＿３２．ｄｌｌは、例えば、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ、Ｗｉｎｄｏｗｓ（登録商標）２０００、Ｗｉｎｄｏｗｓ（登録商標）ＮＴおよびＷｉｎｄｏｗｓ（登録商標）Ｓｅｒｖｅｒ２００３を含むＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムと相互運用するＭｉｃｒｏｓｏｆｔによって提供される。次に、オペレーティングシステム４１２は、あて先ネットワーク構成要素にメッセージを伝送するために、下位プロトコルスタック２１０Ａ〜２１０Ｃを用いる。
【０１４２】
ＷＡＣＰ  ＣＰＩは、コアおよび拡張可能な部分を含むＷＡＣＰ  ＣＰＩ仕様の点から説明可能である。ＷＡＣＰ  ＣＰＩは、それぞれの各種のタイプのネットワーク構成要素内に属することが要求される拡張された（特定の）機能性に対応するために、ＷＡＣＰ  ＣＰＩ仕様のコア部分によって説明されるものを越えて適応性があり、拡張可能となるよう完全に固定および設計されない。拡張された機能性は、それぞれの各種のタイプのネットワーク構成要素による各種のタイプのデータ、コマンドおよび他の情報の通信のために採用することができる。拡張された機能性は、１つ以上のネットワーク構成要素の特定のグループに限定およびカスタマイズされるよう構成することができる。
【０１４３】
拡張された機能性は、１つ以上の（増設する）モジュールの形式でＷＡＣＰ  ＣＰＩに加えられる。それぞれのモジュールは、第１の（科）分類識別子によって識別され、また第１の分類名前のモジュールに関連した第２の（属）分類識別子および第３の（種の）分類識別子によって表示されるものを含む、他の属性によってさらに特徴付けられる。
【０１４４】
それぞれのモジュールは、それぞれの個別のモジュールに関連したデータ、手順およびメッセージを含む情報を特定するソースコードから定義される。メッセージは、それぞれの個別のモジュールと他のネットワーク構成要素との間の各種のタイプの情報を通信するよう採用される。手順は、情報に関する動作を実行するよう、またモジュールと他のネットワーク構成要素との間の情報を通信するよう採用される。
【０１４５】
いくつかの実施態様では、定義されたデータは、構成カテゴリーおよびデータカテゴリーに分類される。データカテゴリーは、ネットワーク構成要素が、医療患者などの他のソースから獲得するデータを含む。構成カテゴリーは、他のソースからデータを獲得する目的で、特定のネットワーク構成要素の動作の構成を特定するデータを含む。
【０１４６】
図５Ａは、命令５１０のセットに応えて、命令５１０のセットを入力、およびソースコード５４０〜５６０を出力するよう構成されるソフトウェア生成プログラム５２０を含むシステム５００を示す。いくつかの実施態様では、ソフトウェア生成プログラム５２０は、アプリケーション生成器５２０またはＡｐｐＧｅｎ５２０と称される。
【０１４７】
典型的な使用のシナリオでは、命令は、ＷＡＣＰ  ＣＰＩのコアの機能性、および（ＷＡＣＰ）通信ソフトウェアモジュール４１４とも称される、ＷＡＣＰ  ＣＰＩを実装するソフトウェア４１４に対する、拡張可能な機能性とも称される、１つ以上のモジュールの機能性の追加を特定する。拡張可能な機能性は、ＷＡＣＰ  ＣＰＩ仕様の拡張可能な部分を表す命令５１０を介して説明される。この実例の使用のシナリオでは、命令５１０は、「ＦｍＮＩＢＰ」の名前を割り当てられる１つのモジュールの追加を特定する。
【０１４８】
ＷＡＣＰ  ＣＰＩのコアの機能性は、静的（非修正）コアソースコードファイル５３０および動的（修正）コアソースコードファイル５４０を含むソースコードファイル５５０のコアのセットとして実装される。ＷＡＣＰ  ＣＰＩのコアの機能性に追加されるそれぞれのモジュールは、ソースコードファイル５５０のコアのセットのサブセット５４０に対する修正として実装され、また新しく作成されたソースコードファイル５６０のセット内に保存されたソフトウェアとして実装される。新しく作成されたソースコードファイル５６０は、コアのセット５５０の静的ソースコードファイル５３０およびコアのセット５５０の修正されたソースコードファイル５４０と結合される（コンパイルおよびリンクされる）。ソースコードファイル５６０は、適切なソフトウェア開発ツールを使用して、ソースコードファイル５６０をコンパイルまたは解釈し、そのコンパイルまたは解釈されたバイナリをソースコードファイルのコアのセット５５０のコンパイルまたは解釈されたバイナリとリンクすることによって、ソースコードファイルのコアのセットと結合される。
【０１４９】
１つの使用のシナリオでは、ソースコードファイル５５０、５６０は、リンク可能なオブジェクト（バイナリ）ファイルにコンパイルされ、また全体としてＷＡＣＰ  ＣＰＩソフトウェア４１４の残りの部分を構成しているオブジェクトファイルにリンクされる。ＷＡＣＰ  ＣＰＩソフトウェア４１４ａ、４１４ｂのすべてのオブジェクトファイルのリンケージ（組み合わせ）は、通信ソフトウェアモジュール４１４とも称される。
【０１５０】
この使用のシナリオでは、Ｃ＋＋コンパイラなどのコンパイラプログラムおよびリンカープログラムは、ライブラリの形式で通信ソフトウェアモジュール４１４を生成するよう採用される。ライブラリは、静的または動的にリンクしたライブラリであってもよい。ライブラリ４１４は、ソースコードからコンパイルされるオブジェクトファイルとして具象化される他のアプリケーションソフトウェア４１６とリンクされる。ソースコードファイル５４０の修正部分およびファイル５６０のコンテンツは、通信ソフトウェアモジュール４１４ｂの拡張可能な部分を表すソースコードを具象化する。
【０１５１】
他の使用のシナリオでは、解釈ライブラリの形式で通信ソフトウェアモジュール４１４を実行するために、ＭｉｃｒｏｓｏｆｔＶｉｓｕａｌＣ＋＋解釈プログラムおよびデバッグプログラムなどの解釈プログラムが採用される。ライブラリ４１４は、解釈プログラムによって、アプリケーションソースコードから解釈される他のアプリケーションソフトウェア４１６にリンクされる。
【０１５２】
示している、実例の使用のシナリオについては、命令５１０は、名前「ＦｍＮＩＢＰ」によって識別される１つのモジュールの追加を特定する。サブ文字列「Ｆｍ」は、モジュール（科）識別子を表示し、またサブ文字列「ＮＩＢＰ」は、特定のモジュール（科）の原文の名前を識別する。ソースコードファイル５６０は、ＮＩＢＰモジュールを定義している命令を処理（入力および構文解析を含む）するソフトウェア生成プログラム応えて作成される。ＮＩＢＰモジュールの命令を処理するソフトウェア生成プログラム５２０がなければ、ソースコードファイル５６０は、ソフトウェア生成プログラム５２０によって作成されることはなく、またＷＡＣＰ  ＣＰＩソフトウェア４１４内に存在することもない。ソースコードファイル５４０は、ＮＩＢＰモジュールの処理および含有の有無にかかわらずＷＡＣＰ  ＣＰＩソースコード４１４内に存在するであろうファイルである。ソースコードファイル５４０の部分は、ソフトウェア生成プログラム５２０によるＮＩＢＰモジュール命令の処理、およびＷＡＣＰ  ＣＰＩソフトウェア４１４内のＮＩＢＰモジュールソフトウェア４１４ｂの結果として生じる含有に応えて、何らかの方法でそれぞれ修正される。
【０１５３】
この使用のシナリオについては、ＦｍＮＩＢＰモジュールは、ＣＦｍＮＩＢＰｃｏｍ．ｈ５６２ａ、ＣＦｍＮＩＢＰｃｏｍ．ｃｐｐ５６２ｂ、ＣＦｍＮＩＢＰＳｔｕｂ．ｈ５６４ａ、ＣＦｍＮＩＢＰＳｔｕｂ．ｃｐｐ５６４ｂ、ＣＮＩＢＰＣＳｔｄ．ｈ５６６ａ、ＣＮＩＢＰＣＳｔｄ．ｃｐｐ５６６ｂ、ＣＮＩＢＰＤＳｔｄ．ｈ５６８ａ、およびＣＮＩＢＰＤＳｔｄ．ｃｐｐ５６８ｂと名前の付いたソースコードファイルの作成をもたらす。前述のソースコードファイル５６２ａ〜５６８ｂのファイル名はそれぞれ、テキスト「ＮＩＢＰ」を含むことに留意されたい。
【０１５４】
さらに、この使用のシナリオについては、ＦｍＮＩＢＰモジュールは、ＣＷＡＣＰＡｐｐ．ｈ５４２ａ、ＣＷＡＣＰＡｐｐ．ｃｐｐ５４２ｂ、ＣＷＡＣＰＰｒｅｓ．ｈ５４４ａ、ＣＷＡＣＰＰｒｅｓ．ｃｐｐ５４４ｂ、ＣＷＡＣＰＳｔｕｂ．ｈ５４６ａおよびＣＷＡＣＰＳｔｕｂ．ｈ５４６ｂと名前の付いた、前から存在するソースコードファイルに対する、ソースコードの追加を含めた修正をもたらす。ソースコードファイル５５０のコアのセットの、前から存在する他のソースコードファイル５３０は、ＦｍＮＩＢＰ命令の処理、およびＦｍＮＩＢＰモジュールに関連したソフトウェア４１４ｂのＷＡＣＰ  ＣＰＩソフトウェア４１４への追加の後も依然として修正されない。ソースコードファイル５３０のコアのセットのためのファイル名は、テキスト「ＮＩＢＰ」を含まないことに留意されたい。
【０１５５】
図５Ｂは、複数の相互運用するネットワーク構成要素１１０Ｃ、１４０ｎ、１６０にインストールされるＷＡＣＰ  ＣＰＩソフトウェア４１４の異なる構成を示すブロック図である。ホストコンピュータ１１０Ｃは、モジュール５８０ａ〜５８０ｎを含むよう構成されるＷＡＣＰ  ＣＰＩソフトウェア４１４を含む。ＶＳＭデバイス１４０は、２つのＷＡＣＰ  ＣＰＩモジュール５８０ａ、５８０ｃを含むよう構成されるＷＡＣＰ  ＣＰＩソフトウェア４１４を含み、またＷｉＦｉゲートウェイ１７０を介したＷｉＦｉ８０２．１１通信チャネルを介してホスト１１０Ｃと通信する。他のデバイス１６０は、２つのＷＡＣＰＣＩモジュール５８０ｂ、５８０ｄを含むよう構成されるＷＡＣＰ  ＣＰＩソフトウェア４１４を含み、またＵＳＢ通信チャネル１４８を介してホスト１１０Ｃと通信する。
【０１５６】
ＶＳＭデバイス１４０ｎおよび他のデバイス１６０は両方とも、異なるタイプおよび構造の生理学的データ（情報）を獲得、処理および共有のホストコンピュータ１１０Ｃと通信するにもかかわらず、同じコアＷＡＣＰ  ＣＰＩソフトウェア４１４を採用することに留意されたい。ホストコンピュータは、ＶＳＭ１４０ｎおよび他のデバイス１６０の両方と相互運用するよう構成される。
【０１５７】
インストールされたＷＡＣＰ  ＣＰＩソフトウェア４１４の３つの構成４７０ａ〜４７０ｃのうちの２つ以上に共通しているモジュールは、命令の同じグローバルセットから生成される（図５Ｄを参照）。通信プロトコルのインターフェースの拡張可能な部分は、それぞれのネットワーク構成要素１１０Ｃ、１４０ｎ、１６０が、カスタマイズされる構成４７０ａ〜４７０ｃによりインストールされ、また定義済みの比較的大きいデータセットの少なくとも１部に対応する実際のデータの、一意で任意的に小さいサブセットを通信することができるスコープで、カスタマイズされるよう構成される。
【０１５８】
モジュールが２つ以上の構成４７０ａ〜４７０ｃに共通している共通モジュールの状況は、２つ以上の構成間の補完的な重なりの状況を構成する。第１の構成（命令の１つ以上のモジュールの第１のセットから構成される）は第１のモジュールを含み、第２の構成（命令の１つ以上のモジュールの第２のセットから構成される）は第２のモジュールを含み、また第１のモジュールはメッセージの型のセットを伝送するよう構成され、前記第２のモジュールはメッセージの型の前記セットを受信するよう構成される他の状況は、補完的な重なりの他の実例である。
【０１５９】
図５Ｄは、異なる構成に構築されているグローバルセットの命令６８０の部分を示す。ネットワーク構成要素の全体のシステムのグローバルセットの命令は、モジュール６０ａから６８０ｚまでの命令を含む。示すように、モジュール６８０ｂおよび６８０ｄの命令は、ソフトウェア生成プログラム５２０に入力され、またソフトウェアモジュール５８０ｂおよび５８０ｄを含むソフトウェアとして出力される。モジュール６８０ａおよび６８０ｃの命令は、ソフトウェア生成プログラム５２０に入力され、またソフトウェアモジュール５８０ａおよび５８０ｃを含むソフトウェアとして出力される。モジュール６８０ａから６８０ｎまでの命令は、ソフトウェア生成プログラム５２０に入力され、またソフトウェアモジュール６８０ａから６８０ｎまでを含むソフトウェアとして出力される。
【０１６０】
グローバルデータセット６８０または命令のデータディクショナリ６８０と称される、定義済みの比較的大きいデータセットは、すべての通信ネットワーク構成要素を含む、全体のシステムのために定義されたすべてのモジュールのための命令を含む、スーパーセットの命令である。通常、データディクショナリは、相互運用するネットワーク構成要素の全体のシステムを支援する定義済みデータモデルに合致する。
【０１６１】
データディクショナリ６８０の部分は、ソフトウェア生成プログラム５２０に入力され、お互い相互運用するよう構成されるカスタム構成４７０ａ〜４７０を生成する。いくつかの実施態様では、データディクショナリ６８０は、生理学的データの説明を含む。データディクショナリ６８０の部分は、データ記述シートまたはデータ説明ファイルと称される。
【０１６２】
いくつかの実施態様では、システムのデータは、データオブジェクトとして定義および構造される。データオブジェクトは、システムのソフトウェアによる特別なやり方で処理することができるデータをカプセル化するオブジェクトである。データオブジェクトは、Ｃ＋＋の部分またはＪａｖａ（登録商標）クラスオブジェクトなどのソフトウェアオブジェクトのデータだけの部分として実装される。ソフトウェアオブジェクトは、指示およびデータの両方をカプセル化するが、データオブジェクトは、データだけをカプセル化する。
【０１６３】
ソフトウェアオブジェクトは通常、クラス階層内で定義されるクラスとして表す。いくつかの実施態様では、データオブジェクトは、クラス階層内のデータだけのクラスによって表される。データオブジェクトは、モジュールを実装し、第１のネットワーク構成要素から伝送されるとき連載され、また別の第２のネットワーク構成要素によって受信されるとき非連載されるソフトウェアの部分として属する。
【０１６４】
実施態様のこのタイプの設計により、データオブジェクトは、ソフトウェアオブジェクトの属性を有することができる。例えば、データオブジェクトは、クラス階層の状況で定義することができ、また他のオブジェクトもまた定義してもよい各種クラスの属性を継承する。
【０１６５】
いくつかの実施態様では、少なくとも１つの属性により、ソフトウェアオブジェクトおよびデータオブジェクトは、ランタイム実行中にソフトウェアおよびデータオブジェクトと相互運用するソフトウェア構成要素によって、分類されたバージョンおよび識別可能なバージョンとなることができる。後のバージョンのデータを定義する命令から構築される構成は、旧バージョンの命令によって構築された構成からのデータと相互運用し、それを処理することができる。
【０１６６】
いくつかの実施態様では、新しいデータが、前もって定義されたデータの後に、特定のモジュール内の位置の命令を介して定義および位置付けられる場合には、命令を入力および訂正するとき、規定が強化される。したがって、モジュールおよび命令内の前もって定義されたデータが、関連した後のバージョンを有するデータからの関連した旧バージョンのを有するデータを表示するために、モジュール内のそれらの定義の時間的順序によって特定のデータを区別した後に、新しいデータは定義され、加えられる（位置する）。
【０１６７】
結果として、通信ソフトウェアモジュールは、関連した後のバージョンを有するデータを含む、１つ以上のソフトウェアオブジェクトクラス（モジュールを実装している）から、関連した旧バージョンを有するデータを抽出することができる。例えば、後のバージョンのモジュールを実装する第１の通信ソフトウェアモジュールを実行している第１のネットワーク構成要素は、旧バージョンの同じモジュールを実装する第２の通信ソフトウェアモジュールを実行している第２のネットワーク構成要素から受信されるデータを認識および処理することができる。
【０１６８】
この利点は、旧バージョン化されたデータは、旧バージョン化および後のバージョン化されたモジュールの両方で、同じ物理オフセットを有するので、後のバージョン化されたモジュール内の旧バージョン化されたデータの位置は、前のバージョン化されたモジュール内の旧バージョン化されたデータの位置と同じであることを確実にする命令を入力および訂正する規定に由来する。
【０１６９】
この利点をさらに生かすために、ホストコンピュータ１１０Ｃなどの中央ハブとして動作しているネットワーク構成要素は好ましくは、ＶＡＭ１４０ｎなどの、ネットワーク構成要素の他のさらに周辺機器のタイプのモジュールよりも後の、または同等のバージョンの１つ以上のモジュールのソフトウェア４１４およびデータ、ならびに中央ハブとして動作しない他のデバイス１６０を使用してインストールする。前述の利点を生かす各種のネットワーク構成要素のソフトウェアおよびデータバージョンのアップグレードに関する規定は、データオブジェクトに〜に対するネットワーク構成要素と、これらのデータオブジェクトを処理するＷＡＣＰ  ＣＰＩソフトウェア４１４との間の相互運用（逆バージョン互換性）の継続性を確実にすることができる。かかる規定は、時間とともにデータの進化に対応すると同時に、複数のネットワーク構成要素の相互運用性を維持することができる。
【０１７０】
本発明の実施態様に従って、システムによって処理されるデータオブジェクトは、Ｃ＋＋などのオブジェクト指向のプログラミング言語の規定に匹敵する規定に従って、拡張マークアップ言語（ＸＭＬ）を使用して定義および構造される。データオブジェクトの定義および構造は、１つ以上のデータ定義ファイルに保存される。いくつかの実施態様では、データ定義ファイルは、生理学的タイプの分類に基づいている。
【０１７１】
図５Ｃは、ＷＡＣＰ通信プロトコルのインターフェース（ＣＰＩ）を実装するソフトウェア４１４の設計、発展、自動生成、および証明するためのフローチャートを示す。コンピュータ環境はそれぞれ、特定の型および構造のデータの通信を必要とする。本発明により、異なるネットワーク構成要素（デバイス）は、ソフトウェア４１４に実装され、また特定の型および構造のデータを通信することができるよう構成された、共通相互運用通信インターフェースを使用して通信することが可能となる。
【０１７２】
いくつかの実施態様では、タイプおよび構造データは、ヒトまたは他の生理学の側面を含むことができる。例えば、データは、１人以上の患者に関連した収縮期圧および／または心臓拡張血圧、心拍数、心電図信号（ＥＣＧ）またはＳＰＯ２測定を表すことができる。個々の監視デバイスが、獲得した生理学的データを異なって表し、また通信する場合、ＷＡＣＰ  ＣＰＩは、それぞれの異なるデバイスが、特定のＷＡＣＰ  ＣＰＩ仕様および実装に従い、同じ構造および形式でそれらの獲得した生理学的データを通信できるようにする。
【０１７３】
他の実施態様では、データは、各種のタイプの環境内に位置する、人々、場所または物などの、実体の状況を監視するデバイスから獲得される情報を表すことができる。そのような物は、例えば、小売り、銀行業、製造、または医療環境内のデバイスを含むことができる。
【０１７４】
第１のステップ５８６として、責任者は、ネットワーク通信環境に関与している特定のアプリケーションに最適な通信プロトコルのインターフェース（ＣＰＩ）スキーム（設計）を識別する。それに応じて、通信プロトコルのインターフェース（ＣＰＩ）仕様（説明）は、本明細書では人員とも称される、責任者によって、例えば、設計または選択のどちらかにより識別される。人員は、原型を設計する、または前から存在する通信プロトコルのインターフェース（ＣＰＩ）仕様を選択するオプションを有する。次に５８６、ＣＰＩが設計された場合、その結果設計されたＣＰＩの仕様（説明）は、機能性の１つ以上のモジュールを定義している命令のセットとしてエンコードされる（表される）。代わりに、ＣＰＩが選択された場合、関連した前から存在する命令は利用可能であり、その結果選択されたＣＰＩ仕様に関連した前から存在する命令が取得される。
【０１７５】
次に５８８、ソフトウェア生成プログラム５２０は、拡張可能な命令のセットを入力して、ＣＰＩ仕様を実装するソフトウェア４１４ｂの拡張可能な部分を出力するために実行される（動作される）。ソフトウェア４１４ｂの拡張可能な部分は、設計または選択されたＣＰＩ仕様を説明する命令の拡張可能なセットに応じて生成される。ＣＰＩ仕様のコア部分を実装するソフトウェア４１４ａのコア部分は、ＣＰＩ仕様を実装する、通信ソフトウェアモジュール４１４とも称される、ソフトウェア４１４の完全なるモジュールを形成するために生成されるソフトウェア４１４ｂの拡張可能な部分と結合（リンク）される。
【０１７６】
いくつかの実施態様では、拡張可能な部分４１４ｂが、プラットホーム（オペレーティングシステム）独立ソフトウェアを含む一方で、ソフトウェア４１４ａのコア部分は、プラットホーム（オペレーティングシステム）従属ソフトウェアを含む。
【０１７７】
次に５９０、通信ソフトウェアモジュール４１４と称される、ＣＰＩ仕様のコアおよび拡張可能な部分を実装している、ソフトウェア４１４の完全なモジュールは、複数のネットワーク構成要素１１０ａ〜１１０ｃ、１４０ａ〜１４０ｎ、１６０にインストールされ、用いられる。ネットワーク構成要素１１０ａ〜１１０ｃ、１４０にインストールされる通信ソフトウェアモジュール４１４のインスタンスはそれぞれにより、そのネットワーク構成要素は、他のネットワーク構成要素と通信および相互運用できる。
【０１７８】
インストール後の動作中、特定の型および構造のデータは、第１のネットワーク構成要素からのデータをル伝送する通信ソフトウェアモジュールによって連載され、また第２のネットワーク構成要素へのデータを受信する通信ソフトウェアモジュールによって非連載される。
【０１７９】
次に５９２、コンピュータ環境のためのデータおよび／または通信の要件が、時間とともに発展する（変化する）場合、ＣＰＩ仕様の設計は、発展した（変化した）通信の要件に対応するように、それに応じて変更（修正）される。同様に、ＣＰＩ仕様の設計を表す命令もまた、新しい通信の要件に対応するよう訂正（修正）５９４される。
【０１８０】
次に５８８、ソフトウェア生成プログラム５２０は、訂正済みＣＰＩ仕様を実装するソフトウェア４１４ｂの、拡張可能な命令の訂正済みセットを入力し、また訂正済み拡張可能な部分を出力するために再実行される（動作される）。ソフトウェア４１４ｂの拡張可能な部分は、再設計または再選択されたＣＰＩ仕様を説明する、命令の訂正済み拡張可能なセットに応じて再生成される。ＣＰＩ仕様のコア部分を実装するソフトウェア４１４ａのコア部分は、ソフトウェア４１４ｂの再生成された拡張可能な部分に結合（リンク）され、訂正済みＣＰＩ仕様を実装するソフトウェア４１４の完全なモジュールを形成する。
【０１８１】
ＣＰＩ仕様の拡張可能な部分を実装するソフトウェアを生成するステップは、プログラマーを介してソースコードの行入力の行によって手動でソフトウェアを作成するよりも、はるかに正確で信頼性がある可能性が高い。事実上、生成されるソフトウェア４１４ｂはまた、拡張可能な命令によって表されるＣＰＩ仕様のコンプライアンスのために証明される。ＣＰＩ仕様に対するコンプライアンスは、ソフトウェア生成器５２０および生成された拡張可能なソフトウェア４１４ｂと結合（リンク）されたコアソフトウェア４１４ａによって強化される。
【０１８２】
図６Ａは、複数の拡張されたモジュールを定義し、また拡張マークアップ言語（ＸＭＬ）にエンコードされる命令６１０のセットを示す。図示するように、命令６１０は、ＸＭＬ宣言（バージョン）命令文６１２、「ＤＤＳ＿ＤＥＭＯ」６１４と名前が付けられたＸＭＬルート構成要素タグならびに「ＦＡＭＩＬＹ＿ＮＩＢＰ」６１６、「ＦＡＭＩＬＹ＿ＥＲＲＯＲ」６１８、「ＦＡＭＩＬＹ＿ＢＡＴＴＥＲＹ」６１８、「ＦＡＭＩＬＹ＿ＤＴＣＯＬＬＥＣＴＩＯＮ」６２２および「ＦＡＭＩＬＹ＿ＷＡＶＥ」６２４と名前を付けられた他のＸＭＬ構成要素タグを含む。ＸＭＬ構成要素タグはまた、構成要素タグ、ＸＭＬタグまたは複数のタグとも称される。
【０１８３】
前述の構成要素タグのそれぞれは、ＸＭＬ構成要素と名前と付けられた同じもとと関連している。例えば、ＦＡＭＩＬＹ＿ＮＩＢＰ構成要素タグは、ＦＡＭＩＬＹ＿ＮＩＢＰ構成要素を表し、ＦＡＭＩＬＹ＿ＢＡＴＴＥＲＹ構成要素は、ＦＡＭＩＬＹ＿ＢＡＴＴＥＲＹ構成要素を表す。構成要素タグ６１６〜６２４のそれぞれに関連したＸＭＬ構成要素は、十分に展開されず（十分示されず）、図６Ａに示していない、ネストされた他のＭＬ構成要素を含むことができる。ＸＭＬ構成要素はまた、構成要素とも称される。
【０１８４】
図６Ｂは、＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素の一段下にネストされるＸＭＬ構成要素タグを含む、図６Ａの命令６１０のセットを示す。＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素は、＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素開始タグ６１６および＜ＦＡＭＬＹ＿ＮＩＢＰ＞ＸＭＬ構成要素終了タグ６３８との間に位置する情報を含む。＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素は、それの下の１段下の構成要素タグを見せるように拡張すると言われる。＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素の１段下に位置する構成要素タグは、＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素の子構成要素と称され、「ＳＰＥＣＩＥＳＫＥＹ」６３０、「ＣＮＩＢＰＤＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ」６３２、「ＣＮＩＢＰＤＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ」６３４および「ＭＥＳＳＡＧＥＳ」６３６と名前を付けられる。＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素終了タグ６３８は、ＦＡＭＩＬＹ＿ＮＩＢＰＸＭＬ構成要素を定義するＸＭＬの終了に印を付ける。
【０１８５】
ＦＡＭＩＬＹ＿ＮＩＢＰ構成要素を定義するＸＭＬは、＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素開始タグ６１６と構成要素終了タグ６３８との間に位置し、またＦＡＭＩＬＹ＿ＮＩＢＰモジュールを定義する、ＦＡＭＩＬＹ＿ＮＩＢＰモジュール命令とも称される命令を含む。ＦＡＭＩＬＹ＿ＮＩＢＰモジュール命令は、ソフトウェア生成器５２０に入力され、ＦＡＭＩＬＹ＿ＮＩＢＰモジュールのためのソースコードを生成する。ソースコードは、図５Ａのソースコードファイル５４２ａ〜５４６ｂおよび５６２ａ〜５６８ｂ内に保存される。
【０１８６】
図６Ｃは、図６Ａの命令６１０のセットの＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素の＜ＭＥＳＳＡＧＥＳ＞６３６構成要素の一段下に位置するＸＭＬ構成要素タグを示す。図示するように、一連の構成要素タグ６４２ａ〜６４２は、「ＭＳＧ」とそれぞれ名前が付けられ、また＜ＭＥＳＳＡＧＥＳ＞構成要素６３６の下にネストされる＜ＭＳＧ＞構成要素をそれぞれ表す。それぞれの＜ＭＳＧ＞構成要素は、タイプ、名前および説明の属性によって定義される。例えば、＜ＭＳＧ＞構成要素６４２は、「リクエスト」のタイプの属性値、「ＧＥＴ＿ＢＰ」の名前の属性値および「ＧｅｔＢＰ」の説明の属性を有する。
【０１８７】
それぞれのモジュールタイプ（科）は、独自で一意の機能性のスコープ、独自で一意の保存されたデータのセット、およびそれが伝送および受信するメッセージの一意のセットを有する。モジュール自身は、命令６１０のルートタグ６１４の一段下に位置する＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞６１６または＜ＦＡＭＩＬＹ＿ＢＡＴＴＥＲＹ＞６２０構成要素タグによって供給されるような、第１の（科）分類識別子を介して、ソフトウェア生成器５２０に対して識別される。
【０１８８】
科の構成要素内（その下にネストされる）で、ソフトウェア生成器５２０は、特定の命令を、モジュールの第１の（科）分類識別子に関連した第２の（属）分類および第３の（種）分類識別子として解釈する。
【０１８９】
例となる実施態様では、ソフトウェア生成器５２０は、それぞれの＜ＭＳＧ＞構成要素タイプの特定の属性を、第２の（属）分類識別子または第３の（種）分類識別子のどちらかとして解釈する。ソフトウェア生成器５２０は、「タイプ」の属性値を第２の（属）分類識別子として解釈し、また＜ＭＳＧ＞構成要素「名前」の属性値を第３の（種）分類識別子として解釈する。
【０１９０】
結果として、ソフトウェア生成器５２０は、ＦＡＭＩＬＹ＿ＮＩＢＰモジュールのメッセージを、（８）の第３の（種）分類識別子のうちの１つとそれぞれに関連し、また（４）つの第２の（属）分類識別子のうちの１つに関連する（８）つのメッセージを有すると解釈する。例えば、＜ＭＳＧ＞構成要素６４２は、「Ｒｅｑｕｅｓｔ」識別子によって表される第２の（属）分類識別子、および「ＧＥＴ＿ＢＰ」識別子によって表される第３の（種）分類識別子を有するメッセージを表す。
【０１９１】
「Ｒｅｑｕｅｓｔ」に相当する第２の（属）分類識別子の値は、関連したメッセージはリクエストタイプのＷＡＣＰメッセージであると表示している（図３Ｂ参照）。「ＧＥＴ＿ＢＰ」に相当する第３の（種）分類識別子の値は、特定のＷＡＣＰメッセージ構造を表示する。したがって、「ＧＥＴ＿ＢＰ」メッセージ構造は、リクエストタイプのＷＡＣＰメッセージである。
【０１９２】
＜ＭＳＧ＞構成要素６４２の入力に応えて、ソフトウェア生成器５２０は、図４Ａ〜４Ｃのために説明したように、リクエストタイプのＷＡＣＰメッセージである、「ＧＥＴ＿ＢＰ」メッセージ構造を処理するＦｍＮＩＢＰモジュールのためのソースコードを生成する。同様に、ソフトウェア生成器５２０は、他の＜ＭＳＧ＞構成要素６４４〜６５６によって説明されるメッセージを処理するＦｍＮＩＢＰモジュールのためのソースコードを生成する
図６Ｄは、図６Ａの命令６１０のセットの＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素の＜ＣＮＩＢＰＣＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞６３４構成要素の一段下に位置するＸＭＬ構成要素タグを示す。図示するように、「ＳＴＡＴＩＣ＿ＭＥＭＢＥＲＳ」６５８および「ＥＮＵＭＥＲＡＴＩＯＮＳ」６６０と名前の付いた構成要素は、＜ＣＮＩＢＰＣＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞６３４構成要素の下にネストされる。「ＶＡＲ」と名前の付いた構成要素は、＜ＳＴＡＴＩＣ＿ＭＥＭＢＥＲＳ＞６５８構成要素の下にネストされる。「ＥＮＵＭ」と名前の付いた構成要素は、＜ＥＮＵＭＥＲＡＴＩＯＮＳ＞６６０構成要素の下にネストされる。
【０１９３】
＜ＣＮＩＢＰＣＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞構成要素６３４は、クラス、ａｂｒｖ、バージョン、科、属および種の属性によって定義される。＜ＣＮＩＢＰＣＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞構成要素６３４は、「ＣＮＩＢＰＣＳｔｄ」のクラスの属性値、「ＣＮＢＰＣＳＴＤ」のａｂｒｖの属性、「１０２」のバージョンの属性、「ＦｍＮＩＢＰ」の科の属性、「ＧｎＣＯＮＦＩＧ」の属の属性、および「ＳｐＳＴＡＮＤＡＲＤ」の種の属性を有する。
【０１９４】
例となる実施態様では、ソフトウェア生成器５２０は、＜ＣＮＩＢＰＣＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞構成要素６３４を「ＣＮＩＢＰＣＳｔｄ」の名前を有するＣ＋＋ソフトウェアオブジェクトクラスを表すものとして解釈する。＜ＣＮＩＢＰＣＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞構成要素６３４の入力に応えて、ソフトウェア生成器５２０は、「ＣＮＩＢＰＣＳｔｄ」と名前の付いたオブジェクトクラスを割り当てるＦｍＮＩＢＰモジュールのためのソースコードを生成する。Ｃ＋＋プログラミング言語は、多くのオブジェクト指向のプログラミング言語のうちの１つである。
【０１９５】
構成要素タグ６４６ａ〜６４６ｂは、それぞれ「ＶＡＲ」と名前が付いており、またそれぞれは、＜ＳＴＡＴＩＣ＿ＭＥＭＢＥＲＳ＞構成要素６４４の下にネストされる＜ＶＡＲ＞構成要素を表す。それぞれの＜ＶＡＲ＞構成要素は、タイプ、名前およびコメントの属性によって定義される。例えば、＜ＶＡＲ＞構成要素６４６ａは、「ｕｉｎｔ１６」のタイプの属性値、「ＤｉｓｐｌａｙＵｎｉｔｓ」の名前の属性値、および「ＤｉｓｐｌａｙｕｎｉｔｓｆｏｒＢＰａｎｄＭＡＰ」のコメントの属性を有する。
【０１９６】
例となる実施態様では、ソフトウェア生成器５２０は、＜ＶＡＲ＞構成要素を可変の（保存されるデータ）データを表すものとして、「タイプ」の属性値「ｕｉｎｔ１６」を可変のデータのデータタイプとして、および「名前」属性値「ＤｉｓｐｌａｙＵｎｉｔｓ」を可変のデータの名前として解釈する。＜ＶＡＲ＞構成要素６４６ａの入力に応えて、ソフトウェア生成器５２０は、「ｕｉｎｔ１６」のタイプの属性およびＤｉｓｐｌａｙＵｎｉｔｓ」の名前（識別子）を有する可変のデータを割り当てるＮＩＢＰモジュール内の「ＣＮＩＢＰＣＳｔｄ」と名前の付いたソフトウェアオブジェクトクラスのためのソースコードを生成する。「ｕｉｎｔｌ１６」に相当するデータタイプの値は、関連した可変のデータは、符号なしの１６ビット整数であることを表示する。
【０１９７】
構成要素タグ６５２ａ〜６５２ｅは、それぞれ「ＥＮＵＭ」と名前が付き、またそれぞれは、＜ＥＮＵＭＥＲＡＴＩＯＮＳ＞構成要素６５０の下にネストされる＜ＥＮＵＭ＞構成要素を表す。それぞれの＜ＥＮＵＭ＞構成要素は、タイプ、名前およびデフォルト値および説明の属性を定義する。例えば、＜ＥＮＵＭ＞構成要素６５２ａは、「ＤｉｓｐｌａｙＵｎｉｔｓ」のタイプの属性値、「ＮＩＢＰ−ＭＭＨＧ」の名前の属性値、「０」のデフォルト値および「ｍｍＨｇ」の説明の属性を有する。例となる実施態様では、ソフトウェア生成器５２０は、＜ＥＮＵＭ＞構成要素をＣ＋＋列挙タイプ宣言を表すものとして解釈し、「タイプ」属性値「ＤｉｓｐｌａｙＵｎｉｔｓ」を列挙タイプ宣言の名前の付いたデータタイプとして、また「ＮＩＢＰ＿ＭＭＨＧ」の「名前」属性値を、同じタイプの任意の他の＜ＥＮＵＭ＞構成要素に加えて、列挙タイプの宣言メンバーであると解釈する。＜ＥＮＵＭ＞構成要素６５２ａの入力に応えて、ソフトウェア生成器５２０は、「ＤｉｓｐｌａｙＵｎｉｔｓ」のタイプ属性およびＣＮＩＢＰＤＳＴＤ＿ＤＩＳＰＬＡＹＵＮＩＴＳの名前（識別子）を有する列挙データタイプを宣言するＮＩＢＰモジュールのためのソースコードを生成する。
【０１９８】
ＮＩＢＰモジュールに対し生成されるソースコードは、以下のようである。
ｔｙｐｅｄｅｆ  ｅｎｕｍ  ＣＮＢＰＣＳＴＤｔｙｐＤＩＳＰＬＡＹＵＮＩＴＳ｛
ＣＮＢＰＣＳＴＤ＿ＤｉｓｐｌａｙＵｎｉｔｓ＿ＮＩＢＰ＿ＭＭＨＧ＝０，
ＣＮＢＰＣＳＴＤ＿ＤｉｓｐｌａｙＵｎｉｔｓ＿ＮＩＢＰ＿ＫＰＡ，
ＣＮＢＰＣＳＴＤ＿ＤｉｓｐｌａｙＵｎｉｔｓ＿ＭＡＸ
｝ＣＮＢＰＣＳＴＤ＿ＤＩＳＰＬＡＹＵＮＩＴＳ；
図６Ｅは、図６Ａの命令６１０のセットの＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素６１６の＜ＣＮＩＢＰＤＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞６３２構成要素の一段下に位置するＸＭＬ構成要素タグのうちのいくつかを示す。図示するように、「ＳＴＡＴＩＣ＿ＭＥＭＢＥＲＳ」６５４および「ＥＮＵＭＥＲＡＴＩＯＮＳ」６６０と名前の付いた構成要素は、＜ＣＮＩＢＰＤＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞６３２構成要素の下にネストされる。「ＶＡＲ」と名前の付いた構成要素は、＜ＳＴＡＴＩＣ＿ＭＥＭＢＥＲＳ＞６５４構成要素の下にネストされる。「ＥＮＵＭ」と名前の付いた構成要素は、＜ＥＮＵＭＥＲＡＴＩＯＮＳ＞６６０構成要素の下にネストされる。
【０１９９】
＜ＣＮＩＢＰＤＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞６３２は、クラス、ａｂｒｖ、バージョン、科、属および種の属性によって定義される。＜ＣＮＩＢＰＣＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ構成要素６３２は、「ＣＮＩＢＰＤＳｔｄ」のクラスの属性値、「ＣＮＢＰＤＳＴＤ」のａｂｒｖの属性、「１０５」のバージョンの属性、「ＦｍＮＩＢＰ」の科の属性、「ＧｎＤＡＴＡ」の属の属性、および「ＳｐＳＴＡＮＤＡＲＤ」の種の属性を有する。
【０２００】
例となる実施態様では、ソフトウェア生成器５２０は、＜ＣＮＩＢＰＤＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞構成要素６３２を「ＣＮＩＢＰＤＳｔｄ」の名前を有するＣ＋＋ソフトウェアオブジェクトクラスを表すものとして解釈する。＜ＣＮＩＢＰＤＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞構成要素６３２の入力に応えて、ソフトウェア生成器５２０は、「ＣＮＩＢＰＤＳｔｄ」と名前の付いたソフトウェアオブジェクトクラスを割り当てるＦｍＮＩＢＰモジュールのためのソースコードを生成する。
【０２０１】
いくつかの実施態様では、本発明は命令のセットに従って、ネットワーク構成要素間の情報を通信するための方法を提供する。この方法は、第１のネットワーク構成要素を提供するステップを含み；第１の通信ソフトウェアモジュールを、コア部分および拡張可能な部分を有する通信インターフェース仕様により、通信機能性を実行するよう構成される前記第１のネットワーク構成要素にインストールし；張可能な部分は、命令の１つ以上のモジュールを含む第１のセットの命令を組み込むよう構成される。
【０２０２】
通信機能性は、特定の型および構造のデータを組み込むよう構成され、またメッセージの型が命令の１つ以上のモジュールの第１のセット内の命令によって定義される第１のセットのメッセージの型の受信および伝送を含むアクションを実行する。前記ステップはまた、アクションを実行するための第１の通信ソフトウェアモジュールを動作させるステップを含む。
【０２０３】
第２のネットワーク構成要素を提供するステップを含み；第２の通信ソフトウェアモジュールを第２のネットワーク構成要素にインストールするステップであって、第２の通信ソフトウェアモジュールは、通信インターフェース仕様による通信機能性を実行するよう構成され；通信機能性は、特定の型および構造のデータを組み込むよう構成される第２のセットのメッセージの型の受信および伝送を含むアクションを実行し、特定の型および構造のデータを組み込む第２のセットのメッセージの型は、第２のセットの命令内の命令によって定義され、第２のセットの命令は、命令の１つ以上のモジュールを含み、第１のセットの命令と第２のセットの命令との間に補完的な重なりが存在する。前記ステップはまた、アクションを実行するための第１の通信ソフトウェアモジュールを動作させるステップを含む。
【０２０４】
任意に、第１および第２のセットの命令は、拡張マークアップ言語（ＸＭＬ）で表現される。好ましくは、命令は、人間および機械の両方にとって解読可能であり、またソースコードによって表されないので、命令は特定のプログラミング言語とは無関係であることができる。
【０２０５】
いくつかの実施態様では、第１の通信ソフトウェアモジュールは、第１のセットのソースコードによって表され、第１のセットの命令は、ソースコードによって表されず、ソフトウェア生成プログラムは、第１のセットの命令を入力し、また命令に応えて第１のセットのソースコードの実質的な部分を生成する。
【０２０６】
いくつかの実施態様では、第１のセットのソースコードの実質的な部分は、オブジェクト指向のプログラミング言語によって表現され、第１のセットのソースコードは、オブジェクト指向のプログラミング言語で表現されるクラス階層内に属する１つ以上のソフトウェアのオブジェクトクラスとして表される。
【０２０７】
任意に、特定の型および構造のデータは、オブジェクト指向のプログラミング言語で表現され、クラス階層内に属する１つ以上のデータだけのクラスとして表され、クラス階層は、オブジェクト指向のプログラミング言語で表現される構造を有する。データだけのクラスは、第１および第２の通信ソフトウェアモジュールのうちのどちらかによる伝送および受信のために、２進数列のデータに変換される。任意に、データだけのクラスは、第１および第２の通信ソフトウェアモジュールのうちのどちらかによる伝送および受信のために、ＸＭＬ数列のデータに変換される。ＸＭＬ数列は、人間および機械の両方にとって解読可能であるファイルに保存することができる。
【０２０８】
補完的な重なりは、第１のセットの１つ以上のモジュールの命令および第２のセットの１つ以上のモジュールの命令はそれぞれ、共通モジュールの命令を含む状況であることに留意されたい。別の状況では、補完的な重なりは、第１のセットの１つ以上のモジュールの命令は第１のモジュールを含み、また第２のセットの１つ以上のモジュールの命令は第２のモジュールを含み、ならびに第１のモジュールはメッセージの型のセットを伝送するよう構成され、また第２のモジュールはメッセージの型のセットを受信するよう構成される。
【０２０９】
いくつかの実施態様では、命令は１つ以上のセットのデータに特定の型および構造のデータを区別し、命令は１つ以上のセットのデータのそれぞれのための１つ以上のクラス内のバージョンの識別子および位置の識別子を割り当てる。通信ソフトウェアモジュールは、関連した後のバージョンを有する１つ以上のセットのデータを含む１つ以上のクラスから、関連した旧バージョンを有するセットのデータを抽出するよう構成される。
【０２１０】
本発明は、例えば医療環境内でデータを監視および獲得するデバイスに関連して採用される特定の型および構造のデータに適用することができる。データは生理学の側面を表すことができる。
【０２１１】
別の側面では、本発明は、コア部分および拡張可能な部分を有する通信プロトコルのインターフェース仕様に対して、ソフトウェアのコンプライアンスを証明するための方法を提供する。前記方法は、コア部分および拡張可能な部分を有する通信プロトコルのインターフェース仕様を提供するステップを含み、コア部分は、固定した通信プロトコルのインターフェース規定のコアのセットを含み、拡張可能な部分は、可変の通信プロトコルのインターフェース規定の拡張可能なセットを含む、
前記ステップはまた、通信プロトコルのインターフェース仕様のコア部分を実装するよう構成され、またソフトウェアの拡張可能な部分と結合するよう構成されたソフトウェアのコア部分を提供するステップと；拡張可能なセットの通信プロトコルのインターフェース規定を特定する拡張可能な命令のセットを提供するステップと；セットの拡張可能な命令を入力するよう、またソフトウェアの拡張可能な部分を出力するよう構成されるソフトウェア生成プログラムを提供および動作するステップであって、ソフトウェアの拡張可能な部分は、可変の拡張可能なセットの通信プロトコルのインターフェース規定に従うステップと；通信プロトコルのインターフェース仕様に従い、また医療または他のタイプの環境内で採用するための相互運用および拡張可能な通信ネットワークを提供する、ソフトウェアを産出するために、ソフトウェアのコア部分とソフトウェアの拡張可能な部分を結合するステップとを含む。
【０２１２】
いくつかの実施態様では、拡張可能なセットの命令は、拡張マークアップ言語（ＸＭＬ）で表現される。任意に、拡張可能なセットの命令は、医療環境内で採用される特定の型および構造のデータを定義する。いくつかの実施態様では、拡張可能のセットの命令は、生理学的側面を表す特定の型および構造のデータを定義する。
【０２１３】
他の側面では、本発明は、特定の型および構造の発展データを通信するよう構成される通信プロトコルのインターフェースを提供する。いくつかの実施態様では、本発明は、通信プロトコルのインターフェースを定義する構成され、またコア部分および拡張可能な部分を有する通信プロトコルのインターフェース仕様を含み；コア部分は、固定したコアのセットの通信プロトコルのインターフェース規定を含み、拡張可能な部分は、可変であり、時間とともにさらに変化することができる、拡張可能なセットの通信プロトコルのインターフェース規定を含み；コア部分は、データ、コマンド、エラーおよび状況情報を伝送および受信するよう構成されるメッセージの型のセットを定義し、メッセージの型のうちの少なくとも一部は、データおよびエラー情報を伝達するよう構成される少なくとも１つの可変サイズのフィールドを含み；拡張可能な部分は、時間とともに変化することもある特定の型、構造およびサイズを有するデータまたはエラー情報を定義するよう構成される。
【０２１４】
本発明は、本明細書に開示されている構造を関して説明してきた一方で、それは、説明された詳細に限定するものではなく、本発明は、以下の特許請求の範囲および精神の内側に発生する可能性のあるどんな修正および変化も対象とすることを意図している。
【図面の簡単な説明】
【０２１５】
本発明のオブジェクトおよび特長は、以下に説明される特許請求の範囲および図面を参照してより深く理解することができる。図面は必ずしも測定されるものではなく、代わりに、本発明の原理を一般的に示すものであることを強調しておく。図面内では、同様の参照番号は、各種の図にわたり同様の部分を示すよう使用される。同様の部分に差異がある場合は、これらの部分を異なる参照番号によって示す場合がある。同様でない部分は、異なる参照番号によって表示する。
【図１】図１は、医療（医学）情報システム内に位置する各種のネットワーク構成要素を示すブロック図である。
【図２Ａ】図２Ａは、図１に示すように、バイタルサイン測定（ＶＳＭ）デバイスおよびホスト１１０ｃ内に属するソフトウェアの内部構成要素および通信プロトコルのインターフェースの表示を示すブロック図である。
【図２Ｂ】図２Ｂは、通信インターフェースを通して別のネットワーク構成要素から情報の受信を示すブロック図である。
【図２Ｃ】図２Ｃは、通信インターフェースを通して情報の受信を示すブロック図である。
【図２Ｄ】図２Ｄは、通信インターフェースから伝送するとき、インターチェンジ層から出力される情報の構造を示すブロック図である。
【図２Ｅ】図２Ｅは、ＶＳＭデバイスとホストネットワーク構成要素との間の接続を確立するための、ランデブープロトコル通信のエクスチェンジを示すブロック図である。
【図３Ａ】図３Ａは、医学オブジェクト管理プロトコル（ＭＯＭＰ）メッセージを構成する情報の構造を示すブロック図である。
【図３Ｂ】図３Ｂは、リクエストタイプのＭＯＭＰメッセージを含め、ホストデバイスとＶＳＭデバイス間のＭＯＭＰメッセージのエクスチェンジを示すブロック図である。
【図３Ｃ】図３Ｃは、コマンドタイプのＭＯＭＰメッセージを含め、ホストデバイスとＶＳＭデバイス間のＭＯＭＰメッセージのエクスチェンジを示すブロック図である。
【図３Ｄ】図３Ｄは、状況タイプのＭＯＭＰメッセージを含め、ホストデバイスとＶＳＭデバイス間のＭＯＭＰメッセージのエクスチェンジを示すブロック図である。
【図３Ｅ】図３Ｅは、イベントタイプのＭＯＭＰメッセージを含め、ホストデバイスとＶＳＭデバイス間のＭＯＭＰメッセージのエクスチェンジを示すブロック図である。
【図３Ｆ】図３Ｆは、ネットワーク構成要素間で伝送されるキープアライブ通信を示すブロック図である。
【図３Ｇ】図３Ｇは、データオブジェクトのメッセージを構成する情報の構造を示すブロック図である。
【図４Ａ】図４Ａは、本発明の実施態様による、ソフトウェアの構造配列を示すブロック図である。
【図４Ｂ】図４Ｂは、本発明による、着信リクエストタイプのＷＡＣＰメッセージを受信、処理および転送するＷＡＣＰ  ＣＰＩソフトウェアの実施態様によって実行するパスを示すブロック図である。
【図４Ｃ】図４Ｃは、図４ＡのリクエストタイプのＷＡＣＰメッセージの受信に応えて、応答タイプのＷＡＣＰメッセージを伝送するＷＡＣＰ  ＣＰＩソフトウェアの実施態様によって実行するパスを示すブロック図である。
【図５Ａ】図５Ａは、命令のセットを入力し、命令のセットに応えてソースコードを出力するよう構成される、ソフトウェア生成器を含むシステムを示す。
【図５Ｂ】図５Ｂは、相互運用する複数のネットワーク構成要素にインストールされるＷＡＣＰ  ＣＰＩソフトウェアの異なる構成を示すブロック図である。
【図５Ｃ】図５Ｃは、ＷＡＣＰ通信プロトコルのインターフェース（ＣＰＩ）実装するソフトウェアを設計、発展および自動的に生成および証明するためのフローチャートを示す。
【図５Ｄ】図５Ｄは、異なる構成に構築されているグローバルセットの命令の部分を示す。
【図６Ａ】図６Ａは、複数の拡張されたモジュールを定義する、また拡張マークアップ言語（ＸＭＬ）にエンコードされる、命令のセットを示す。
【図６Ｂ】図６Ｂは、＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素の一段下にネストされるＸＭＬ構成要素タグを含み、図６Ａの命令のセットを示す。
【図６Ｃ】図６Ｃは、図６Ａの命令のセットの＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素の＜ＭＥＳＳＡＧＥＳ＞構成要素の一段下に位置するＸＭＬ構成要素タグを示す。
【図６Ｄ】図６Ｄは、図６Ａの命令のセットの＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素の＜ＣＮＩＢＰＣＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞構成要素一段下に位置するＸＭＬ構成要素タグを示す。
【図６Ｅ】図６Ｅは、図６Ａの命令のセットの＜ＦＡＭＩＬＹ＿ＮＩＢＰ＞構成要素の＜ＣＮＩＢＰＤＳＴＤ＿ＤＥＦＩＮＩＴＩＯＮ＞構成要素の一段下に位置するＸＭＬ構成要素タグのいくつかを示す。
【図１】
2008538028.tif 000003
【図２Ａ】
2008538028.tif 000004
【図２Ｂ】
2008538028.tif 000005
【図２Ｃ】
2008538028.tif 000006
【図２Ｄ】
2008538028.tif 000007
【図２Ｅ】
2008538028.tif 000008
【図３Ａ】
2008538028.tif 000009
【図３Ｂ】
2008538028.tif 000010
【図３Ｃ】
2008538028.tif 000011
【図３Ｄ】
2008538028.tif 000012
【図３Ｅ】
2008538028.tif 000013
【図３Ｆ】
2008538028.tif 000014
【図３Ｇ】
2008538028.tif 000015
【図４Ａ】
2008538028.tif 000016
【図４Ｂ】
2008538028.tif 000017
【図４Ｃ】
2008538028.tif 000018
【図５Ａ】
2008538028.tif 000019
【図５Ｂ】
2008538028.tif 000020
【図５Ｃ】
2008538028.tif 000021
【図５Ｄ】
2008538028.tif 000022
【図６Ａ】
2008538028.tif 000023
【図６Ｂ】
2008538028.tif 000024
【図６Ｃ】
2008538028.tif 000025
【図６Ｄ】
2008538028.tif 000026
【図６Ｅ】
2008538028.tif 000027