(57)【要約】  ＮＤＭＡデータを格納するためのシステムは拡張可能であって、膨大な量のデータを処理することができる。本システムは、今日の需要に合わせてコンポーネントが追加または削除されることを可能にする。本システムは独立したステップでデータを処理し、あらゆるサブコンポーネントについてプロセッサ・レベルの独立性をもたらす。本システムは、データ・トラフィックを他のノードへ方向づけるロードバランサ内、及びノード上自体の全プロセス内で並行処理及びマルチスレッディングを使用する。本システムは、ホスト・リストを使用してデータがどこへ方向付けられるべきかを決定するとともに、各ノード上でどの機能が活性化されるかを決定する。データは、各処理ステップで持続される待ち行列に格納される。
2007526534.tif 000002
【特許請求の範囲】
【請求項１】
国立デジタル・マンモグラフィ・アーカイブ（ＮＤＭＡ）の関連データを格納するためのスケーラブル・システムであって、
上記ＮＤＭＡ関連データを受信しかつ上記ＮＤＭＡ関連データをデータ待ち行列へフォーマットする複数のホスト・プロセッサを備えるフロントエンドの受信機セクションと、
上記フロントエンドの受信機セクションから上記データ待ち行列を受信し、上記データ待ち行列の処理負荷をバランス処理し、上記データ待ち行列をホストリストに従って上記複数のホスト・プロセッサの各々へ送信する複数のホスト・プロセッサを備えるフロントエンドのバランサ・セクションと、
上記フロントエンドのバランサ・セクションから上記データ待ち行列を受信し、上記データ待ち行列を、上記ホストリストに従って複数のバックエンド・ハンドラの選択部分へ供給するバックエンドの受信機セクションと、
上記ＮＤＭＡ関連データを格納し、上記ＮＤＭＡ関連データに関する問合せを実行するとともに上記ＮＤＭＡ関連データを監査する上記複数のバックエンド・ハンドラとを備えたことを特徴とするスケーラブル・システム。
【請求項２】
上記フロントエンドの受信機セクションは、複数のフロントエンド受信機を備える請求項１記載のシステム。
【請求項３】
上記フロントエンドのバランサ・セクションは、複数のフロントエンド・バランサを備える請求項１記載のシステム。
【請求項４】
上記バックエンドの受信機セクションは、複数のバックエンド受信機を備える請求項１記載のシステム。
【請求項５】
上記バックエンド・ハンドラは、少なくとも１つの格納メカニズムと、少なくとも１つの問合せプロセッサと、少なくとも１つの監査プロセッサとを備える請求項１記載のシステム。
【請求項６】
上記ＮＤＭＡ関連データは、レコードにフォーマットされ、個々のレコードは独立して処理される請求項１記載のシステム。
【請求項７】
複数の上記データ待ち行列は、同時に処理される請求項１記載のシステム。
【請求項８】
上記フロントエンドの受信機セクションは入力層を形成し、
上記フロントエンドのバランサ・セクションはコア・データベース層を方向付け、
上記バックエンドのハンドラ・セクションはアプリケーション層を形成し、
上記ＮＤＭＡ関連データは、上記複数層間でデータ待ち行列及び送／受信ペアを介して転送される請求項１記載のシステム。
【請求項９】
上記フロントエンドの受信機セクション、上記フロントエンドのバランサ・セクション、上記バックエンドの受信機セクション及び上記バックエンド・ハンドラのうちの少なくとも２つは地理的に分散される請求項１記載のシステム。
【請求項１０】
ＮＤＭＡデータを格納する各要求は、ＮＤＭＡ関連データを格納する他の要求とは独立して処理され、
ＮＤＭＡデータを問い合わせる各要求は、ＮＤＭＡ関連データを問い合わせる他の要求とは独立して処理される請求項１記載のシステム。
【請求項１１】
ＮＤＭＡプロトコル及びソケットに従って、問合せに対する全ての応答について拡張可能マークアップ言語（ＸＭＬ）のヘッダが生成され、上記応答は、適用可能な応答レコードが直にアクセス可能である応答と、適用可能な応答レコードが直にアクセス可能でない応答とに二分される請求項１記載のシステム。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
関連出願の相互参照
本出願は、参照によりその全体が開示に含まれる２００３年６月４日に出願された「ロード・バランシング、独立処理及びレコード問合せのためのＮＤＭＡスケーラブル・アーカイブ・ハードウェア／ソフトウェア・アーキテクチャ」と題する米国仮特許出願第６０／４７６，２１４号の優先権を主張するものである。本明細書に開示する発明対象は、その開示内容全体が参照により開示に含まれる本明細書と同日付けで出願された「病院／診療所内の医用画像システムを外部の格納及び検索システムへ接続するための施設間ウォールプラグ」と題する米国特許出願番号（代理人整理番号ＵＰＮ−４３８０／Ｐ３１７９）に開示されている発明対象に関連している。また本明細書に開示する発明対象は、その開示内容全体が参照により開示に含まれる本明細書と同日付けで出願された「ＮＤＭＡソケット・トランスポート・プロトコル」と題する米国特許出願番号（代理人整理番号ＵＰＮ−４３８１／Ｐ３１８０）に開示されている発明対象にも関連している。さらに本明細書に開示する発明対象は、その開示内容全体が参照により開示に含まれる本明細書と同日付けで出願された「ＮＤＭＡデータベース・スキーマ、ＤＩＣＯＭからリレーショナル・スキーマへの変換及びＸＭＬからＳＱＬ問合わせ（ＳＱＬＱＵＥＲＹ）への変換」と題する米国特許出願番号（代理人整理番号ＵＰＮ−４３８３／Ｐ３１９０）に開示されている発明対象にも関連している。
【技術分野】
【０００２】
本発明は、概して大量データの捕捉、格納及び配信のためのアーキテクチャ及び方法に関し、特に、ＤＩＣＯＭ互換画像システム及びＮＤＭＡ互換記憶システムからの大量のデータの捕捉、格納及び配信に関する。
【背景技術】
【０００３】
デジタル・マンモグラフィ・データを格納するための従来システムは、デジタル・データのフィルム・コピーの作成、コピーの格納及び元データの破壊を含んでいる。情報の配信は、基本的に複製されたＸ線写真のコピーを提供することによって行われた。多くの場合にこの手法が選択された理由は、デジタル・データ自体の格納及び送信が困難であることにある。デジタル医学画像ソース及びその捕捉後の画像処理におけるコンピュータ使用の導入は、医学画像及びその関連情報を送信するための規格方法を考案しようという試みに繋がっている。確立された規格は、医用デジタル画像と通信（ＤＩＣＯＭ）規格として周知である。ＤＩＣＯＭ規格への準拠は、他の病院または診療所の常設デバイスとの接続のためのマルチベンダ・サポートを要求する医療デバイスにとって極めて重要である。
【０００４】
ＤＩＣＯＭ規格は、マルチベンダ環境における医学画像の転送を可能にするためと、画像保管及び通信システムの開発と拡大及び医学情報システムとのインタフェースを促進するためのプロトコルを記述している。診断医学画像化の大手ベンダの（全てではないにしても）多くは、ＤＩＣＯＭ規格をその製品設計に組み込むことが見込まれている。また、ＤＩＣＯＭは、健康産業において画像を使用する事実上あらゆる医療専門家によって使用されることも見込まれている。例としては、心臓学、歯科学、内視鏡検査法、マンモグラフィ、眼科学、整形外科学、病理学、小児科学、放射線療法、放射線学、外科及び獣医学の医学画像化アプリケーションが含まれる。従って、ＤＩＣＯＭ規格の使用は、マンモグラフィに加えてこれらの分野からのレコードの通信及び保管を促進させる。よって、病院内部の計器類とネットワークを介して得られる外部のサービスとの間をインタフェースで接続し、サービス及び情報の転送を供給するための規格方法が望まれている。また、このような方法が、様々な時間に異なるプロバイダから診療を捕捉する人口の流動をサポートするために、アクセス対象レコードの適切な追跡によるレコードへの安全な施設間アクセスを可能にすることも望まれている。
【０００５】
画像データを多数のユーザが利用できるようにするためには、アーカイブが適している。国立デジタル・マンモグラフィ・アーカイブ（ＮＤＭＡ）は、デジタル・マンモグラフィ・データを格納するためのアーカイブである。ＮＤＭＡは、患者の健康及び医療レコードに結合される画像、報告書及び他の全ての関連情報の動的リソースとして機能する。またＮＤＭＡは当該年度及び前年度の研究の保管場所であり、診療及び研究利用の双方のためのサービス及びアプリケーションを提供する。このＮＤＭＡ国立乳房画像アーカイブの開発は、北アメリカにおける乳癌検診プログラムを大幅に改革する可能性がある。懸念材料は、患者のプライバシーである。よってＮＤＭＡは患者のプライバシーと守秘義務を保証し、関連する全ての連邦規則に準拠している。
【０００６】
この画像データの配信を促進するためには、ＮＤＭＡにＤＩＣＯＭ互換システムが結合されなければならない。多数のユーザへ到達するためには、インターネットが適切であるようにも思えるが、インターネットはＤＩＣＯＭで使用されるプロトコルを処理するように設計されていない。従って、ＮＤＭＡはレコードのためのＤＩＣＯＭフォーマットをサポートし、かつ、病院内のある種のＤＩＣＯＭインタラクションをサポートしているものの、固有のプロトコル及び手順を使用してファイルを転送し、操作する。結果的に、データ収集量は膨大となる可能性がある。
【０００７】
大量のデータを処理するこれまでの試みは、Ｊａｎｔｚに付与された米国特許第５，９３７，４２８号（Ｊａｎｔｚ）及びＦｕｃｈｓに付与された米国特許第６，４１８，４７５号（Ｆｕｃｈｓ）に記述されている。Ｊａｎｔｚは、複数の冗長なアレイ・コントローラ間で入力／出力ワークロードを分散させるためのＲＡＩＤ（安価な複数ディスクの冗長な配列）記憶システムを開示している。Ｊａｎｔｚは、各処理待ち行列上の要求の数を監視して、より短い待ち行列を有するコントローラへ新たな要求を配信することにより、処理負荷を分散させようとしている。Ｆｕｃｈｓは、幾つかのメモリ・システムと、上記幾つかのメモリ・システムにおける画像データの格納を制御する制御システムとを有する医用画像システムを開示している。連続する画像データセットは別々のメモリ・システムに格納され、上記システムはピーク負荷を回避しようとして負荷を異なるメモリ・システムへ分配する。しかしながら、Ｊａｎｔｚ、Ｆｕｃｈｓの何れも、ＮＤＭＡまたは大量のＮＤＭＡ互換データの処理に関連する特定の問題については論じていない。
【特許文献１】米国特許第５，９３７，４２８号公報
【特許文献２】米国特許第６，４１８，４７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従って、ＤＩＣＯＭ互換システムをＮＤＭＡに結合し、かつ多数の明確な、但し独立行政施設にＮＤＭＡ規格及びプロトコルとの共用に適する大規模処理、格納及び検索特性を提供することのできる捕捉、格納及び再配信のための大容量及びスケーラビリティを提供するアーキテクチャが必要となっている。
【０００９】
画像データ等のＮＤＭＡ互換データを格納するためのシステムは、膨大な量のデータを処理するように拡張可能である。これは、ＮＤＭＡアーキテクチャにおいて、処理のコレクションに結合されるロード・バランシングのフロントエンドと記憶マネージャに結合されるデータベース・ノードとの組合わせを使用し、かつ、個々の記録レベルで処理及び検索のための独立性を保つことにより達成される。本システムは、今日の需要に合わせてコンポーネントが追加または削除されることを可能にし、独立したステップでデータを処理してあらゆるサブコンポーネントについてプロセッサ・レベルの独立性をもたらす。本システムは、データ・トラフィックを他のノードへ方向づけるロードバランサ（負荷平衡器）内及びノード上自体の全プロセス内で、並行処理及びマルチスレッディングを使用する。ホスト・リストは、データがどこへ方向付けられるべきかを決定し、かつ、各ノード上でどの機能が活性化されるかを決定するために使用される。データは、各処理ステップで持続される待ち行列に格納される。
【課題を解決するための手段】
【００１０】
本発明によるＮＤＭＡ関連データを格納するためのスケーラブル・システムは、フロントエンドの受信機セクションと、フロントエンドのバランサ・セクションと、少なくとも１つのバックエンドの受信機セクションと、少なくとも１つのバックエンドのハンドラ・セクションとを含む。上記フロントエンドの受信機セクションは、幾つかのホスト・プロセッサ（ホスト）を含む。ホストはＮＤＭＡ関連データを受信し、これをデータ待ち行列へフォーマットする。上記フロントエンドのバランサ・セクションも、幾つかのホストを含む。これらのホストはフロントエンドの受信機セクションからデータ待ち行列を受信し、上記データ待ち行列の処理負荷をバランス処理（平衡化）し、かつ、上記データ待ち行列を少なくとも１つのホスト・リストによって指定される複数のホストへ送信する。上記バックエンドの（１つまたは複数の）受信機セクションは、上記フロントエンドのバランサ・セクションからデータ待ち行列を受信し、上記データ待ち行列を、ホスト・リストに従って複数のバックエンド・ハンドラの選択される部分へ供給する。上記バックエンドの（１つまたは複数の）ハンドラ・セクションは、ＮＤＭＡ関連データを格納し、問合せを実行しかつ監査する。
【発明を実施するための最良の形態】
【００１１】
本発明によるロード・バランシング、独立処理及びレコード問合せのためのＮＤＭＡスケーラブル・アーカイブ・システムは、フロントエンドの受信機セクションと、フロントエンドのバランサ・セクションと、少なくとも１つのバックエンドの受信機セクションと、少なくとも１つのバックエンドのハンドラ・セクションとを備える。本システムは、処理を幾つかの独立したステップに分ける。本システムは、処理要件のあらゆるサブコンポーネントについてプロセッサ・レベルの独立性を供給する。例えば、ノードはレコードを互いに独立して処理することができる。本システムは、トラフィックを他のノードへ方向づけるロード・バランサ内部及びノード自体における全プロセス内部の双方において並行処理及びマルチスレッディングを使用する（即ち、複数のレコードを同時に処理することができる）。処理は、利用可能なプロセッサ・ノードのリストから決定される。プロセッサ・ノードのリストは、容量要件に合わせて修正（拡大または縮小）されることが可能である。格納コレクション（格納されるデータ）の部分集合は、個々のノードによって独立して管理される。データは、持続的な待ち行列を介して処理ステップ間を移動される（即ち、データは格納の完了が肯定応答される前にディスクへ格納される）。ソケット通信は、複数のプロセスが１つのノード上で同時に動作できるように、または複数のノードに渡ってトランスペアレントに拡散され得るようにプロセス間で使用される。これは、地理的に分散されたノード、またはハードウェアまたはオペレーティング・システムにおける異種ノードに適用される。
【００１２】
次に、図１は、本発明の例示的な一実施形態による利用可能なネットワーク通信トランク帯域幅特性に合わせて地理的に配列されることが可能な記憶階層のイラストを示し、図１を参照すると、図示されているＮＤＭＡは３つのレベルの記憶階層を使用している。マンモグラフィからの最終的なＮＤＭＡデータ量はあまりに多い（全ての病院がデジタル記憶へ変換すれば潜在的に１日当たり２８テラバイトとなる）ことから、３レベル階層及びレベル２及び３サイト用のスケーラブル・アーキテクチャが使用される。記憶階層は３つの層（またはレベル）、即ち病院／診療所ロケーションにおける小型コネクタを有する層１と、コレクションの部分を管理するエリア・アーカイブを有する層２と、エリア・コレクションを管理しかつネットワーク複製を使用して障害回復を供給するリージョン・システムを有する層３とを備える。レベル１は、データ・コレクション・サイト（病院または病院施設）における最小フットプリントである。レベル２は５０乃至１００の病院のニーズにサービスを提供する能力があり、キャッシュ要求、頻繁に使用されるレコード及び患者の定期診療によって使用が予定されているレコードのための記憶装置を有する。レベル３は、接続される全てのサイト及びネットワーク複製のための大容量記憶装置を有する。
【００１３】
図２は、本発明の例示的な一実施形態による、記憶階層におけるレベル１の格納及び検索のウォールプラグ１２の実装を示すブロック図である。これは、ＴＣＰＩＰ（転送制御プロトコル・インターネットプロトコル）互換ネットワーク１８を介して内部の病院／診療所１４へ結合される第１のポータル２８と、仮想専用ネットワーク２０、２４を介してアーカイブ１６へ結合される第２のポータル３０とから成り、上記２つのポータルは専用高信頼ネットワーク３２を介して互いに結合される。図２に示すように、ウォールプラグ１２は層１のデバイス・コネクタであり、２つの外部ネットワーク接続部を有する。その１つは病院ネットワーク１８へ接続され、もう１つは暗号化された外部仮想専用ネットワーク（ＶＰＮ）２０へ接続される。ウォールプラグ１２は、病院側では高信頼ウェブ・ユーザ・インタフェース及びＤＩＣＯＭ病院計器インタフェースを提供し、ＶＰＮ側ではアーカイブ１６のアーカイブ・フロントエンド２２への高信頼接続部を提供する。このシステムは、接続用病院システムの外部接続について全く想定していない。ウォールプラグ１２は、故障の場合に通信冗長性及びハードウェア試験及び管理を供給するための（冗長ネットワークへの）第２の外部接続２４を有する。また外部ＶＰＮは、グリッド・サービス及びアプリケーション・アクセスも供給する。グリッドは、認証及びネットワークを介するサービスへのアクセスを提供するためのメカニズム実装のオープン規格である。オープン規格は、様々なハードウェア及びソフトウェア・コンポーネント間の互換性を拡大するための公的に利用可能な仕様である。
【００１４】
図２に示すように、ウォールプラグ１２のハードウェア設計は、専用高信頼ネットワーク３２で互いに連結される２つのポータル２８、３０を含み、専用高信頼ネットワーク３２は、全てのプロトコル及び伝送を制御することが可能であり、かつ（これらのプロトコルを除いて）外部からのアクセスが供給されない１本のクロスオーバー・ケーブルを備える。各ポータル２８、３０は、少なくとも２つのネットワーク・デバイスを有する。ある例示的構成においては、各ポータル２８、３０から１つずつ、２つのインタフェースが短いクロスオーバー・ケーブルで互いに接続され、上記ネットワーク上のアドレス空間はルーティングされない１０．０．０．０／８専用ネットワークである。このネットワークは、ＲＦＣ１９１８（ＴＣＰＩＰ規格）に定義されているような専用アドレス空間である。さらに、この隔離されたネットワークのアドレス空間は、他のどのネットワークまたはインタフェースにもルーティングされない分離されたネットワーク・インタフェース上へ画定される。このネットワークは、ポータル２８、３０間の専用リンク３２を形成する。ウォールプラグ１２をさらに良く理解するためには、その開示内容全体が参照により開示に含まれる本明細書と同日付けで出願された「病院／診療所内の医用画像システムを外部の格納及び検索システムへ接続するための施設間ウォールプラグ」と題する関連出願（代理人整理番号ＵＰＮ−４３８０／Ｐ３１７９）を参照されたい。
【００１５】
図３は、本発明の例示的な一実施形態による、ＮＤＭＡとのデータ転送に使用されるロード・バランサ及びＮＤＭＡのバックエンド・セクションにおけるソフトウェア・コンポーネントを示すブロック図である。このアーキテクチャは、記憶階層の層２及び３の双方において使用される。従って、図３は、層２及び層３の両リソースを構築するために使用され得るアーカイブ・システムの概観を描いたものである。
【００１６】
処理ステップ
図３に示すロード・バランサ及びバックエンド・セクション・ソフトウェアを介するデータ・フローは、図３に示すようなフロントエンドの入力ハンドラと、これに続くフロントエンドのロード・バランサと、これに続くバックエンドのロード・バランサとを含む。各プロセスは、受信機と待ち行列ハンドラとを使用する。下記は、本発明の例示的な一実施形態によるＮＤＭＡアーカイブにおいて使用されるプロセスの概要である。
・  フロント・エンドＩ／Ｏ受信機：
゜  ＭＡＱＲｅｃは、ポート５００７上で実行されている広域ネットワーク（ＷＡＮ）からのマルチスレッド一次フロントエンド受信機である。ＭＡＱＲｅｃは、ＭＡＳｅｎｄ／ｂａｋ（図示されていない）に複製を有する出力待ち行列／ＭＡＳｅｎｄを有する。
・  フロントエンド・バランサ及びキュー・ムーバ：
゜  ＭＡＱは、入力待ち行列ＭＡＳｅｎｄ内に格納されたｈｏｓｔｌｉｓｔＭＡＱにリストされているノードへファイルを送る、記憶のためのフロントエンド・バランサである。
゜  ＭＡＱｒｙは、入力待ち行列ＭＡＱｕｅｒｙに格納される問合せの問合せ処理のためのロード・バランサである。
゜  ＭＡＱＲｅｐｌｙは、キューＭＡＲｅｃｖに格納される応答を処理する問合せ応答ハンドラである。
゜  ＭＡＡｕｄｉｔは入力待ち行列ＭＡＡｕｄｉｔに格納される監査要求を処理するＨＩＰＰＡ監査記憶ハンドラである。
゜  ＱＲＹＲｅｐｌｙＰｕｓｈｅｒは、外部へのＭＡＱＲｅｃへ応答を供給する問合せ応答ハンドラである。［ＷＨＥＲＥ？］
゜  ＭＡＦｏｒｗａｒｄは、問合せを処理するための要求リダイレクタである。
・  バックエンド受信機
゜  記憶装置：ＭＡＱＲｅｃは、ポート５００４、ｑｕｅｕｅ／ｍａｒ／ＭＡＲｓへ接続される記憶デバイスである。
゜  問合せ：ｑｒｙＲｅｃは、ポート５００５、ｑｕｅｕｅ／ｑｒｙ／ＱＲＹｑへ接続される記憶デバイスである。
゜  監査：ＭａＡＲｅｃは、ポート５００６、ｑｕｅｕｅ／ｍａｒ／ＱＡｕｄｉｔｓへ接続される記憶デバイスである。
・  バックエンド・ハンドラ
゜  ＭＡＲは、格納要求を処理する。
゜  ＱＲＹは、問合せを処理する。
゜  ＱＡｕｄｉｔは、問合せ監査を処理する。
【００１７】
上述の概観及び図３を参照すると、フロントエンドＩ／Ｏ受信機セクションはＭＡＱＲｅｃ及びＭＡＳｅｎｄプロセスを含む。ＭＡＱＲｅｃプロセスは、広域ネットワークからのマルチスレッド一次フロントエンド受信機である。ＭＡＱＲｅｃプロセスは、ＭＡＳｅｎｄ／ｂａｋ（図３には示されていない）における複製でデータを出力待ち行列ＭＡＳｅｎｄへ供給する。
【００１８】
フロントエンド・バランサ及びキュー・ムーバは下記の処理、即ち、ＭＡＱ、ＭＡＱｒｙ、ＭＡＱＲｅｐｌｙ、ＭＡＡｕｄｉｔ、ＱＲＹＲｅｐｌｙＰｕｓｈｅｒ、ＭＡＱＢａｋ（図３には示されていない）及びＭＡＦｏｒｗａｒｄ（図３には示されていない）を含む。ＭＡＱプロセスは、記憶装置のためのフロントエンド・バランサである。これは、ｈｏｓｔｌｉｓｔＭＡＱにリストされているノードへファイルを送る。ＭＡＱｒｙプロセスは、問合せ処理のためのバランサである。ＭＡＱＲｅｐｌｙプロセスは、問合せ応答ハンドラである。ＭＡＡｕｄｉｔプロセスは、ＨＩＰＰＡ監査記憶ハンドラである。ＱＲＹＲｅｐｌｙＰｕｓｈｅｒプロセスは、外部へのＭＡＱＲｅｃプロセスへの応答ハンドラである。ＭＡＱＢａｋプロセスは、ネットワーク複製のための送信者である。ＭＡＦｏｒｗａｒｄプロセスは、リダイレクタに問合せ処理を要求する。
【００１９】
バックエンド受信機セクションは、待ち行列ＭＡＲ及び／ｍａｒ／ＭＡＲｓを有してプロセスＭＡＲを使用してデータ格納のためのデータを送るＭＡＱＲｅｃプロセスと、プロセスＱＲＹを介して問合せ機能を実行するｑｕｅｕｅｓ／ｑｒｙ及び／ＱＲＹｑを有するＭＡＱＲｅｃプロセスと、監査機能を実行するｑｕｅｕｅｓ／ｍａｒ及び／ＱＡｕｄｉｔｓを有するＭＡＱＲｅｃプロセスとを使用する。／ｍａｒ及び／ｑｒｙ内の中間の待ち行列は、バックエンドを描いた図３には示されていない。これらは、フロントエンド・ノードにおける対応する待ち行列ＭＡＳｅｎｄ、ＭＡＱｕｅｒｙ、ＭＡＡｕｄｉｔと同じ役割を果たす。
【００２０】
バックエンド・ハンドラ・セクションは、格納機能を実行するためのＭＡＲプロセス、問合せ機能を実行するためのＱＲＹプロセス及び問合せ監査を実行するためのＱＡｕｄｉｔプロセスを使用する。
【００２１】
これらのプロセスは全て、３つのクラス、即ち、送信側、受信側及びプロセッサのうちの１つに属する。送信側と受信側は、アイテムがローカルに、またはリモート・ノード上の何れかで、またはノードが内部ネットワークまたは外部ネットワークの何れに存在するかに関わらず、双方で処理されるように、ソケット・プロトコルを使用して通信する。このプロトコルをより良く理解するためには、その開示内容全体が参照により開示に含まれる本明細書と同日付けで出願された「ＮＤＭＡソケット・トランスポート・プロトコル」と題する関連出願（代理人整理番号ＵＰＮ−４３８１／Ｐ３１８０）を参照されたい。プロセッサは持続的な入力及び出力待ち行列から離れて単独で作動し、システムの停止後、システムが自動的に再起動することを保証する。
【００２２】
単一マシン例
図４は、スケーラブル・アーキテクチャが単一のマシン・ノード上でインスタンス化される全てのプロセス、待ち行列及びハンドラによって使用される、本発明の例示的な一実施形態によるスケーラブル・システムの単一マシン実装を示すブロック図である。全プロセスを単一のマシン上へ実装するために、全ての制御ホスト・リストはローカル・マシンを指すポインタを含んでいる。よってプロセス・フローは、図４が示すもののようになる。
【００２３】
複数ノードの配置
図５は、本発明の例示的な一実施形態による、スケーラブル・システムの複数バランサ、待ち行列ハンドラ及びデータ・ハンドラの複数マシン実装が複数のマシン上にインスタンス化されている複数ノードの配置を示す。任意のマシンの割当てはホストリストによって制御され、かつ、通信はソケットを介して行われることから、複数の入力マシンの保有が可能であり、その各々は、各々がマシン・プールを管理する複数の待ち行列バランサへ送信する。個々のマシンは、同時に入力プロセッサ、待ち行列バランサまたはバックエンド・プロセッサとして動作する場合もあれば、これらの機能の１つまたは複数として特殊化される場合もある。これは、必要に応じて余分なノードを上記基本的機能のうちの任意のものに追加することができるトポロジーを定義する能力を提供する。これらのノードは、ローカル、リモート、地理的に分散された、または異種のノードであることが可能である。
【００２４】
スケーラブル高容量システム
図６は、本発明の例示的な一実施形態による、全ての機能が分散され、かつ／または、クラスタ化されたマシンへ割り当てられることが可能なスケーラブル・システムのブロック図であり、入力ネットワーク層３６と、データベース（ＤＢ）層３８と、処理層４０と、ロード・バランス層４２とを示す。ＮＤＭＡアーカイブは、記憶階層のリージョン層３における格納のためのペタバイト可能システムとなることが想定されている。従って、ある実施形態では、本システムは以下のアーキテクチャ、即ち、入力ネットワーク層３６と、ＤＢ層３８と、処理層４０とを備える。ＤＢ層内への格納は適切な任意の格納メカニズム、例えば、格納エリア・ネットワーク（ＳＡＮ）への接続、またはネットワーク接続記憶装置または独立ディスクの冗長アレイ（ＲＡＩＤ）で実装されるディスク・アレイまたは「単なるディスクの束」（ＪＢＯＤ）で実装されることが可能である。層間の通信は、先に述べたように待ち行列及び送／受信ペアを使用し、よって配置はフレキシブルであることが可能である。入力ネットワーク層３６はＭＡｕＲｅｃを実行する複数のノードで実行され、外部のＷＡＮへ接続される。スイッチまたは他のネットワーク・ハードウェア及びＮＤＭＡソケットによって相互接続される複数のノードを有するデータベース層３８は、パラレルＩＢＭデータベース（ＤＢ２）またはその等価物を実行する。これは、ロード・バランス層４２及びＤＢ層３８をファイル・サービス及びＤＢ機能のための仮想単一マシンにする。この仮想単一マシンのフロントエンドはマルチノード・バランサ４２であり、ノードの各々は大規模バックエンド格納エリア・ネットワークまたはネットワーク接続記憶装置のコレクションを個々に管理することができる。
【００２５】
マシン独立性の維持
図７は、本発明の例示的な一実施形態によるＮＤＭＡアーカイブ・システムにおけるデータの格納に使用されるソフトウェア・コンポーネントのブロック図である。図７に描かれているように、ＮＤＭＡアーカイブは医療レコードを個々のファイルとして格納する。スケーラブル・アプローチが作動するためには、ノードは各々、他のノードとの最小の相互作用を有する要求及び他のノードとの相互作用のない要求を独立して処理できることが好適である。これは、下記のようにして行なう格納要求によって達成される。ＭＡＱＲｅｃ４４を実行するバランサ・ノードはその着信する待ち行列４６から格納要求を除外し、送信側のＭＡＱ４８を使用してこれを格納ノード５０へ独立して送ることができる。各格納ノードはファイル５２を受信し、待ち行列５４からこれを除去し、ファイル５６を処理し、そのファイル５８を独立して格納する。これは、図のように共通のデータベース６０を更新し、かつまたＱＲＹＲｅｐｌｙＰｕｓｈｅｒを使用してこのデータベース入力のコピーを別のロケーション（ＤＢ）へ送ることができる。分散型の実施形態では、このデータベース情報はＸＭＬ  ＮＤＭＡ構造へ抽出され、データベース・ノードへ転送（forward）されてデータベースが更新される。ＸＭＬの第２のコピーは、バックアップ・データベースまたはカタログ作成のために複製データベースへ送られることが可能である。この配置では、全てのレコードは格納ノード間の相互作用なしに格納されることが可能である。レコード・レベル処理の独立性を使用するこのスケーラブル・アプローチは、システム容量がスケーラブルであることを保証する。
【００２６】
図８は、本発明の例示的な一実施形態によるＮＤＭＡアーカイブ・システムにおけるデータ及びトラックの使用及びレコードの移動の監査に使用されるソフトウェア・コンポーネントを示すブロック図である。図８に描かれた監査処理経路は、上述の格納処理経路と実質的に類似しているが、監査データは実際のファイルではなくデータベースに格納される点が異なる。
【００２７】
図９は、本発明の例示的な一実施形態による問合せの実行及びレコードの検索に使用されるソフトウェア・コンポーネントを示すブロック図である。独立した問合せ処理は配置がさらに複雑であるが、依然としてレコード・レベル処理の独立性を維持している。この独立性を保持するように問合せ処理を調整することにより、スケーラブルな実行が持続される。着信する問合せは、バランサ６４（この例には複数が存在する可能性がある）により、待ち行列６６及び送信機６８を介して、その例には複数が存在する可能性がある問合せ処理ノード７０へ送信される。問合せ処理ノードは、その問合せに対する応答に必要なファイルのロケーションを決定するためにデータベースへ問合せを送る。上記ノードはＮＤＭＡプロトコル及びソケットによって要求される全ての応答についてＸＭＬヘッダを作成し、次にこれらの応答を、それが上記要求される要求への直接アクセスを有するものと、上記レコードが他の何らかのノードまたは他の何らかのロケーションに常駐するものに分割する。前者の場合、上記ノードは応答レコードをヘッダに添付し、完成したレコード７２を問合せ応答ノード７４へ送る。後者であれば、上記ヘッダがバランサ６４を介して要求されるコンテンツを有する特定ノードへ転送される。これは、ヘッダをＭＡＦｏｒｗａｒｄプロセス７６を介して送信することによって達成される。転送要求に応答するノードは、データベースへ問合せを行う必要はない。これらは単に、転送待ち行列において受信したヘッダＸＭＬに要求されたレコードを添付するだけでよい。この幾分複雑な配置は、複数のノードからの応答を要求する問合せに関しても、ノード間の依存性を排除する。通信は全て、バランサ・ノード６４とサブノード７０との間で行われる。このこともまた、１ノードから他の全ノードへの高速通信を必要とせず、バランサ・ノードへの通信を必要とするだけであることに起因して、ハードウェア・アーキテクチャの配置をより容易にする。
【００２８】
例
図１０は、複数の格納及び問合せ構成におけるデータ・フローを示す（単純化を期して、図１０には転送機能を示していない）。
【００２９】
着信する格納要求は、１つまたは複数のマシンに渡ってその１つまたは複数の例が存在する可能性のあるＭＡＱＲｅｃ受信層８０によって処理される。多数が存在する可能性のあるＭＡＱ送信機８２は、着信する格納要求を、任意の適切なロード・バランシング技術を使用して格納ノード８４へ押し進める。格納ノードはファイルを自らが管理するファイル空間８８へ格納し、インデックスをデータベース８６に格納する。格納が成功裡に終わる時に応答メッセージが生成され、応答待ち行列（図示されていない）に配置される。この応答は、下記で論じるＲｅｐｌｙ  Ｐｕｓｈｅｒ（応答プッシャ）９８によって自動的にルーティングされる。
【００３０】
着信する問合せ要求は、格納要求を処理するマシンと同じ、または異なる１つまたは複数のマシンに渡ってその１つまたは複数の例が分散されて存在する可能性のあるＭＡＱＲｅｃ受信層９０により処理される。多く存在する可能性があるＭＡＱ送信機９２は、着信する問合せ要求を、任意の適切なロード・バランシング技術を使用して要求ノード９４へ押しやる。要求ノードはインデックス８６を問合せ、要求を満たすために必要な全てのファイルを位置決めする。ローカルで管理されるファイルの場合、ファイルは応答マネージャ９６によりＮＤＭＡプロトコルに従ってフェッチされ、フォーマットされる。完成された応答は応答プッシャ９８へ送られ、応答プッシャ９８はこれを要求側のロケーションへルーティングして戻す。ローカルでないファイルの場合、応答マネージャ９６はそのプロトコル・エレメントをロード・バランサ９２へ返送し、ロード・バランサ９２は上記要求を、データを制御するノード上の応答マネージャへ方向づける。次いでこのノードは、要求されたファイルをフェッチし、プロトコル・エレメントを添付しかつ上記ファイルを応答プッシャへ送って上記プロセスを完了する。このより複雑な手順は、レコード・レベルの独立性を維持しかつ要求ノード間を横断する直接的なネットワーク・トラフィックを回避するために使用される。
【００３１】
ＮＤＭＡアーカイブの実施形態は、幾つかの「エリア」アーカイブ及び２つの「リージョン」アーカイブに実装されていて、本配置のフレキシブルさを実証している。プロセッサの数は１つから３２までの間で変わり、ノードは地理的に分散されるロケーションに位置決めされる。本設計はシステム容量の制限無しの拡大を可能にし、かつ追加容量を必要とする機能においてのみ容量ニーズが拡大されるように調整されることも可能である。
【００３２】
３レベルの記憶階層
図１１は、本発明の例示的な一実施形態によるシステムのスケーラブル特性及び記憶階層の目標容量を示す。ＮＤＭＡは、図１及び１１に示すように、３レベル階層を使用して医療レコードを格納する。ＮＤＭＡアーカイブ・システムの内部オペレーションが送／受信ペアを使用してスケーラブル・アプローチにより促進されるのと同じ方法で、より大きいコンポーネント、即ち、エリア及びリージョン・アーカイブもまた、より大きいスケールでプロセッサ・ノード及びバランサとして見られることが可能である。ＮＤＭＡ送／受信ソケット層は、エリア及びリージョン格納ノード間のＷＡＮ接続として実装されることが可能である。本階層におけるレコードのネットワーク複製は、別のアーカイブを指すホストリストを有するＭＡＱＢａｋプロセスの使用によって達成される。エリア及びリージョン（即ち、地理的に分離されたロケーション）間の相互通信は、単一ノードまたは複数ノードの何れかにおけるＮＤＭＡサービスの実装に使用されるのと同じ原理の大型版である。
【００３３】
エリアからリージョンへの通信の実装例
図１２は、エリア０３及びエリア０６である２つのエリア・アーカイブへ接続される、さらにはリージョン０１であるリージョン・マシンへ接続される２つの病院施設、即ちトロント所在のＳＢ（例えばサニーブルック女子大学の保健システム）とＨＵＰ（ペンシルバニアのペンシルバニア大学病院）間の接続の例示的実装を示す。この場合、リージョン０１であるリージョン・マシンは、複製されたトラフィックをエリア・アーカイブからＭＡＱＢａｋプロセスを介して受信している。本例におけるリージョン・マシン・バランサは、バックエンド・プロセス（ＭＡＱＲｅｃ、ＭＡＲＲｅｃ）の一方のみを実行するように示されている。本例は、地理的または行政的に分離されたマシン同士であっても１つの処理構造に連結され得るフレキシブルな方法を示している。
【００３４】
本発明によるロード・バランシング、独立処理及びレコードの問合せのためのＮＤＭＡスケーラブル・アーカイブ・システムは、膨大な量のデータを処理する能力を有する。これを達成するために、ＮＤＭＡアーキテクチャは３レベルの階層、即ち、病院システム（レベル１）、複数の病院施設コレクタ（レベル２）、及びコレクタのコレクタ（レベル３）を使用する。格納、問合せ、監査またはインデックス付けに関する全ての処理要件は独立したステップに分解され、独立したノード上で実行される。全てのノードは独立して要求を処理し、全てのプロセスはマルチスレッドされる。プロセスは、複数インスタンスの実行が可能である。プロセッサ機能は、ホストリストによって制御される。各機能はこのようなリストを保有し、プロセッサは２つ以上の機能を実行することができる。プロセスは、単に処理されるべきレコード及び要求の持続的待ち行列から動作する。プロセッサは、地理的に分散される場合もあれば、単一のコンピュータ上でローカルに常駐する、または複数のコンピュータ上に常駐する場合もある。本アーカイブ・システムは、プロセッサ・グループを使用してコアへの入出力を行い、かつ入出力要件をロード・バランシングさせる。本アーカイブ・システムはノードのコア・コレクションを使用して処理を行い、各ノードの機能はそれが発生するプロセス・ホストリストにより制御される。独立したノードが依然として要求を処理している問合せについては、要求されるデータは多くのノードに分散される可能性がある。ノードはバランサを介して「転送」要求を使用し、別のプロセッサにレコードの送信を完了するように命令することができる。これにより、ノードが要求されるファイルへの直接アクセスを保有しない場合でも、スケーラブルなノードの独立性が維持される。本明細書に記述しているアーカイブ・システムはまた、画像処理及びコンピュータ支援検出（ＣＡＤ）アルゴリズム専用のプロセッサ・コレクションを有することが可能である。従って、ＣＡＤアルゴリズムは主として、このメカニズムを介して複数の施設へ供給されることが可能である。
【００３５】
本明細書では所定の特定的な実施形態を参照して図示及び説明を行っているが、本発明はここに示した詳細に限定されるべきものではない。むしろ詳細事項の様々な変更は、請求の範囲に等しい範囲内で、かつ本発明を逸脱することなく実行されることが可能である。
【図面の簡単な説明】
【００３６】
【図１】本発明の例示的な一実施形態による、利用可能なネットワーク通信トランク帯域幅特性に合わせて地理的に配列可能な記憶階層を示す。
【図２】本発明の例示的な一実施形態による、記憶階層におけるレベル１の格納及び検索のウォールプラグの実装を示すブロック図である。
【図３】本発明の例示的な一実施形態による、ＮＤＭＡとのデータ転送に使用されるロード・バランサ及びＮＤＭＡのバックエンド・セクションにおけるソフトウェア・コンポーネントを示すブロック図である。
【図４】本発明の例示的な一実施形態によるスケーラブル・システムの単一マシン実装を示すブロック図である。
【図５】本発明の例示的な一実施形態によるスケーラブル・システムの複数マシン実装を示すブロック図である。
【図６】本発明の例示的な一実施形態による、ネットワークＩ／Ｏ層と、ロード・バランス入力層と、コア・データベース層と、アプリケーション処理層とを示すスケーラブル・システムのブロック図である。
【図７】本発明の例示的な一実施形態によるＮＤＭＡアーカイブ・システムにおけるデータの格納に使用されるソフトウェア・コンポーネントを示すブロック図である。
【図８】本発明の例示的な一実施形態によるＮＤＭＡアーカイブ・システムにおけるデータ及びトラックの使用及びレコードの移動の監査に使用されるソフトウェア・コンポーネントを示すブロック図である。
【図９】本発明の例示的な一実施形態によるＮＤＭＡアーカイブ・システムにおける問合せの実行及びレコードの検索に使用されるソフトウェア・コンポーネントを示すブロック図である。
【図１０】本発明の例示的な一実施形態による、複数の格納及び問合せ構成におけるデータ・フローを示すＮＤＭＡシステムの図である。
【図１１】本発明の例示的な一実施形態による、システムのスケーラブル特性及び記憶階層の目標容量を示す。
【図１２】本発明の例示的な一実施形態による、リージョン・アーカイブ上のネットワーク複製によってエリア・アーカイブへ接続される２つの病院内デバイス間の例示的接続を示す。
【符号の説明】
【００３７】
１２  ウォールプラグ、    １４  病院／診療所、    １６  アーカイブ、    １８  病院ネットワーク、    ２０，２４  外部接続部、    ２２  アーカイブ・フロントエンド、    ２８，３０  ポータル、    ３２  専用高信頼ネットワーク
【図１】
2007526534.tif 000003
【図２】
2007526534.tif 000004
【図３】
2007526534.tif 000005
【図４】
2007526534.tif 000006
【図５】
2007526534.tif 000007
【図６】
2007526534.tif 000008
【図７】
2007526534.tif 000009
【図８】
2007526534.tif 000010
【図９】
2007526534.tif 000011
【図１０】
2007526534.tif 000012
【図１１】
2007526534.tif 000013
【図１２】
2007526534.tif 000014
【国際調査報告】
2007526534.tif 000015