(57)【特許請求の範囲】
【請求項１】
コンピュータシステムにおける高速メッセージ再送信方法であって、
前記コンピュータシステムの記憶媒体において、アプリケーションまたは前記コンピュータシステムの動作中におけるプロセスが書き込んだ複数のメッセージから生成されたシーケンス付メッセージのマスタジャーナルを保持するステップであって、前記アプリケーションまたはプロセスの少なくとも１つのサブセットは適切に機能するため前記シーケンス付メッセージに対するアクセスを必要とする、ステップ、
フェイルオーバする可能性のある前記アプリケーションまたはプロセスの少なくとも１つのサブセットによる前記シーケンス付メッセージに対するアクセスの要求を推定するステップ、
前記要求の推定に基づき、前記マスタジャーナルのコンテンツを複製することにより、１以上のジャーナルコピーおよび／または１以上のジャーナルセグメントを生成するステップであって、単一のアプリケーションまたはプロセスは任意の時点において各前記ジャーナルコピーまたはジャーナルセグメントに対して個別にアクセスすることができる、ステップ、
要求に応じて、フェイルオーバするかまたは前記シーケンス付メッセージにギャップがある前記アプリケーションまたはプロセスの少なくとも１つのサブセットに対して、前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントを割り当てて、前記マスタジャーナルのコンテンツに対して複数のアプリケーションまたはプロセスが同時にアクセスできるようにし、これにより前記アプリケーションまたはプロセスが前記フェイルオーバまたは前記シーケンス付メッセージにギャップがある状態からのリカバリにおいて前記マスタジャーナル内の前記シーケンス付メッセージに対してアクセスする速度を速める、ステップ、
を有することを特徴とする方法。
【請求項２】
前記コンピュータシステムの動作中に前記アプリケーションまたはプロセスが書き込んだ前記複数のメッセージは、シーケンサによって前記シーケンス付メッセージへ変換される
ことを特徴とする請求項１記載の方法。
【請求項３】
前記シーケンサは、前記複数のシーケンス付メッセージを前記アプリケーションまたはプロセスに対して再発行する
ことを特徴とする請求項２記載の方法。
【請求項４】
前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントは、専用ソフトウェアまたはハードウェアモジュールによって生成される
ことを特徴とする請求項１記載の方法。
【請求項５】
前記方法はさらに、
前記マスタジャーナルの更新されたコンテンツにより、前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントのコンテンツを更新するステップを有する
ことを特徴とする請求項１記載の方法。
【請求項６】
前記方法はさらに、
前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントのうちの１つのコンテンツを、前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントのうちの他のコンテンツに基づき、更新または復元するステップを有する
ことを特徴とする請求項１記載の方法。
【請求項７】
前記方法はさらに、
前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントを少なくとも第１ティアと第２ティアへ分割するステップ、
他の第２ティアジャーナルコピー／セグメントまたは第１ティアジャーナルコピー／セグメントのみに基づき第２ティアジャーナルコピー／セグメントのコンテンツを復元するステップ、
を有することを特徴とする請求項１記載の方法。
【請求項８】
前記コンピュータシステムは、電子取引システム、オークションベース販売システム、ゲームシステムを含むグループから選択されている
ことを特徴とする請求項１記載の方法。
【請求項９】
前記推定される要求は、
既知または可能性のあるソフトウェア障害；
既知または可能性のあるハードウェア障害；
ソフトウェアまたはハードウェア障害に影響されるアプリケーションまたはプロセスの数；
アプリケーションまたはプロセスが前記マスタジャーナル、ジャーナルコピー、またはジャーナルセグメント内のメッセージにアクセスする速度；
障害アプリケーションまたはプロセスの所望リカバリ時間；
前記コンピュータシステムの予想負荷；
を含むグループから選択された１以上の要因に基づき判定される
ことを特徴とする請求項１記載の方法。
【請求項１０】
高速メッセージ再送信を実装するコンピュータシステムであって、
少なくとも１つのコンピュータプロセッサ、
前記少なくとも１つのコンピュータプロセッサと通信できるように配置され、前記少なくとも１つのコンピュータプロセッサに処理を実施させるコンピュータ命令を格納する、少なくとも１つの記憶媒体、
を備え、
前記処理は、
前記コンピュータシステムの前記少なくとも１つの記憶媒体において、アプリケーションまたは前記コンピュータシステムの動作中におけるプロセスが書き込んだ複数のメッセージから生成されたシーケンス付メッセージのマスタジャーナルを保持するステップであって、前記アプリケーションまたはプロセスの少なくとも１つのサブセットは適切に機能するため前記シーケンス付メッセージに対するアクセスを必要とする、ステップ
フェイルオーバする可能性のある前記アプリケーションまたはプロセスの少なくとも１つのサブセットによる前記シーケンス付メッセージに対するアクセスの要求を推定するステップ、
前記要求の推定に基づき、前記マスタジャーナルのコンテンツを複製することにより、１以上のジャーナルコピーおよび／または１以上のジャーナルセグメントを生成するステップであって、単一のアプリケーションまたはプロセスは任意の時点において各前記ジャーナルコピーまたはジャーナルセグメントに対して個別にアクセスすることができる、ステップ、
要求に応じて、フェイルオーバするかまたは前記シーケンス付メッセージにギャップがある前記アプリケーションまたはプロセスの少なくとも１つのサブセットに対して、前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントを割り当てて、前記マスタジャーナルのコンテンツに対して複数のアプリケーションまたはプロセスが同時にアクセスできるようにし、これにより前記アプリケーションまたはプロセスが前記フェイルオーバまたは前記シーケンス付メッセージにギャップがある状態からのリカバリにおいて前記マスタジャーナル内の前記シーケンス付メッセージに対してアクセスする速度を速める、ステップ、
を有することを特徴とするコンピュータシステム。
【請求項１１】
前記コンピュータシステムの動作中に前記アプリケーションまたはプロセスが書き込んだ前記複数のメッセージは、シーケンサによって前記シーケンス付メッセージへ変換される
ことを特徴とする請求項１０記載のコンピュータシステム。
【請求項１２】
前記シーケンサは、前記複数のシーケンス付メッセージを前記アプリケーションまたはプロセスに対して再発行する
ことを特徴とする請求項１１記載のコンピュータシステム。
【請求項１３】
前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントは、専用ソフトウェアまたはハードウェアモジュールによって生成される
ことを特徴とする請求項１０記載のコンピュータシステム。
【請求項１４】
前記コンピュータシステムはさらに、
前記マスタジャーナルの更新されたコンテンツにより、前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントのコンテンツを更新するように構成されている
ことを特徴とする請求項１０記載のコンピュータシステム。
【請求項１５】
前記コンピュータシステムはさらに、
前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントのうちの１つのコンテンツを、前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントのうちの他のコンテンツに基づき、更新または復元するように構成されている
ことを特徴とする請求項１０記載のコンピュータシステム。
【請求項１６】
前記コンピュータシステムはさらに、
前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントを少なくとも第１ティアと第２ティアへ分割し、
他の第２ティアジャーナルコピー／セグメントまたは第１ティアジャーナルコピー／セグメントのみに基づき第２ティアジャーナルコピー／セグメントのコンテンツを復元する
ように構成されていることを特徴とする請求項１０記載のコンピュータシステム。
【請求項１７】
前記コンピュータシステムは、電子取引システム、オークションベース販売システム、ゲームシステムを含むグループから選択されている
ことを特徴とする請求項１０記載のコンピュータシステム。
【請求項１８】
前記推定される要求は、
既知または可能性のあるソフトウェア障害；
既知または可能性のあるハードウェア障害；
ソフトウェアまたはハードウェア障害に影響されるアプリケーションまたはプロセスの数；
アプリケーションまたはプロセスが前記マスタジャーナル、ジャーナルコピー、またはジャーナルセグメント内のメッセージにアクセスする速度；
障害アプリケーションまたはプロセスの所望リカバリ時間；
前記コンピュータシステムの予想負荷；
を含むグループから選択された１以上の要因に基づき判定される
ことを特徴とする請求項１０記載のコンピュータシステム。
【請求項１９】
実行することによりコンピュータシステムに高速メッセージ再送信を実装させるコンピュータ命令を有する不揮発性コンピュータ読取可能媒体であって、
前記コンピュータシステムの記憶媒体において、アプリケーションまたは前記コンピュータシステムの動作中におけるプロセスが書き込んだ複数のメッセージから生成されたシーケンス付メッセージのマスタジャーナルを保持するステップであって、前記アプリケーションまたはプロセスの少なくとも１つのサブセットは適切に機能するため前記シーケンス付メッセージに対するアクセスを必要とする、ステップ、
フェイルオーバする可能性のある前記アプリケーションまたはプロセスの少なくとも１つのサブセットによる前記シーケンス付メッセージに対するアクセスの要求を推定するステップ、
前記要求の推定に基づき、前記マスタジャーナルのコンテンツを複製することにより、１以上のジャーナルコピーおよび／または１以上のジャーナルセグメントを生成するステップであって、単一のアプリケーションまたはプロセスは任意の時点において各前記ジャーナルコピーまたはジャーナルセグメントに対して個別にアクセスすることができる、ステップ、
要求に応じて、フェイルオーバするかまたは前記シーケンス付メッセージにギャップがある前記アプリケーションまたはプロセスの少なくとも１つのサブセットに対して、前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントを割り当てて、前記マスタジャーナルのコンテンツに対して複数のアプリケーションまたはプロセスが同時にアクセスできるようにし、これにより前記アプリケーションまたはプロセスが前記フェイルオーバまたは前記シーケンス付メッセージにギャップがある状態からのリカバリにおいて前記マスタジャーナル内の前記シーケンス付メッセージに対して高速にアクセスできるようにする、ステップ、
のコードを有することを特徴とするコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
＜通知＞
本特許出願は、メッセージ再送信メカニズムとメモリアドレス空間管理技術の様々な新規イノベーションおよび進歩的側面を開示および記載（以下“開示”）し、著作権、マスクワーク、および／またはその他知的財産権により保護される内容を含む。これら知的財産権の各所有者は、本開示をファックス送付することについて、特許庁のファイル／レコードに公開される限りにおいては異議を申し立てないが、そうでなければ全ての権利を留保する。
【０００２】
＜関連出願に対する相互参照＞
本願は、以下に対する優先権を主張する：（ａ）２０１４年３月１１日出願の米国仮出願６１／９５１，３６４号；（ｂ）２０１４年３月１１日出願の米国仮出願６１／９５１，３９０号。本願の主題は、出願中の米国特許出願１４／６４４，６７４号に関する。同願は２０１４年３月１１日出願の米国仮出願６１／９５１，３７４号の優先権を主張する。本願の内容は、２０１３年９月１２日出願のＰＣＴ国際特許出願ＰＣＴ／ＵＳ２０１３／０５９５５８号にも関連している。上記各関連出願は、参照によりその全体が本願に組み込まれる。
【０００３】
＜技術分野＞
本願は、アプリケーションメッセージジャーナル管理についての技術を取り扱う。より具体的には、メッセージ再送信メカニズム装置、方法、システム（“ＭＲＭ”）を含む。
【背景技術】
【０００４】
コンピュータシステムの１側面において、その動作中、ソフトウェアアプリケーションは、動作を実施しまたは外部イベントに対して反応するとき、ジャーナルに対してメッセージを書き込むことがある。自身のメッセージを書き込むことを別にして、ソフトウェアアプリケーションは、他アプリケーションが書き込んだメッセージに対してアクセスする場合がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
メッセージ再送信メカニズム装置、方法、システム（“ＭＲＭ”）の実施形態は、メッセージジャーナルに対するアプリケーションリクエストを、ＭＲＭコンポーネントを経由して、分割メッセージストリームに対する高速アクセスに変換する。１実施例においてＭＲＭは、システム動作中にアプリケーションが書き込んだメッセージのメッセージジャーナルを取得し、完全なメッセージジャーナルから取得したメッセージをメッセージセグメントへ分割する。実施例においてＭＲＭは、そのメッセージセグメントに対するアプリケーションアクセスを復元することにより、高速メッセージ処理を実現する。
【０００６】
本発明の１実施形態によれば、コンピュータシステムにおける高速メッセージ再送信方法は、以下のステップを有する：前記コンピュータシステムの記憶媒体において、アプリケーションまたは前記コンピュータシステムの動作中におけるプロセスが書き込んだ複数のメッセージから生成されたシーケンス付メッセージのマスタジャーナルを保持するステップであって、前記アプリケーションまたはプロセスの少なくとも１つのサブセットは適切に機能するため前記シーケンス付メッセージに対するアクセスを必要とする、ステップ；フェイルオーバする可能性のある前記アプリケーションまたはプロセスの少なくとも１つのサブセットによる前記シーケンス付メッセージに対するアクセスの要求を推定するステップ；前記要求の推定に基づき、前記マスタジャーナルのコンテンツを複製することにより、１以上のジャーナルコピーおよび／または１以上のジャーナルセグメントを生成するステップであって、単一のアプリケーションまたはプロセスは任意の時点において各前記ジャーナルコピーまたはジャーナルセグメントに対して個別にアクセスすることができる、ステップ；要求されたとき、フェイルオーバするかまたは前記シーケンス付メッセージにギャップがある前記アプリケーションまたはプロセスの少なくとも１つのサブセットに対して、前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントを割り当てて、前記マスタジャーナルのコンテンツに対して複数のアプリケーションまたはプロセスが同時にアクセスできるようにし、これにより前記アプリケーションまたはプロセスが前記フェイルオーバまたは前記シーケンス付メッセージにギャップがある状態からのリカバリにおいて前記マスタジャーナル内の前記シーケンス付メッセージに対して高速にアクセスできるようにする、ステップ。
【０００７】
本発明の別実施形態によれば、高速メッセージ再送信を実装するコンピュータシステムは、少なくとも１つのコンピュータプロセッサ、前記少なくとも１つのコンピュータプロセッサと通信できるように配置された少なくとも１つの記憶媒体、を備える。前記少なくとも１つの記憶媒体は、前記少なくとも１つのコンピュータプロセッサに以下を実施させるコンピュータ命令を格納する：前記コンピュータシステムの前記少なくとも１つの記憶媒体において、アプリケーションまたは前記コンピュータシステムの動作中におけるプロセスが書き込んだ複数のメッセージから生成されたシーケンス付メッセージのマスタジャーナルを保持し、前記アプリケーションまたはプロセスの少なくとも１つのサブセットは適切に機能するため前記シーケンス付メッセージに対するアクセスを必要とするものである；フェイルオーバする可能性のある前記アプリケーションまたはプロセスの少なくとも１つのサブセットによる前記シーケンス付メッセージに対するアクセスの要求を推定する；前記要求の推定に基づき、前記マスタジャーナルのコンテンツを複製することにより、１以上のジャーナルコピーおよび／または１以上のジャーナルセグメントを生成し、単一のアプリケーションまたはプロセスは任意の時点において各前記ジャーナルコピーまたはジャーナルセグメントに対して個別にアクセスすることができるものである；要求されたとき、フェイルオーバするかまたは前記シーケンス付メッセージにギャップがある前記アプリケーションまたはプロセスの少なくとも１つのサブセットに対して、前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントを割り当てて、前記マスタジャーナルのコンテンツに対して複数のアプリケーションまたはプロセスが同時にアクセスできるようにし、これにより前記アプリケーションまたはプロセスが前記フェイルオーバまたは前記シーケンス付メッセージにギャップがある状態からのリカバリにおいて前記マスタジャーナル内の前記シーケンス付メッセージに対して高速にアクセスできるようにする。
【０００８】
本発明の別実施形態によれば、不揮発性コンピュータ読取可能媒体は、実行することによりコンピュータシステムに高速メッセージ再送信を実装させるコンピュータ命令を有する。前記不揮発性コンピュータ読取可能媒体は、以下のステップのコードを有する：前記コンピュータシステムの記憶媒体において、アプリケーションまたは前記コンピュータシステムの動作中におけるプロセスが書き込んだ複数のメッセージから生成されたシーケンス付メッセージのマスタジャーナルを保持するステップであって、前記アプリケーションまたはプロセスの少なくとも１つのサブセットは適切に機能するため前記シーケンス付メッセージに対するアクセスを必要とする、ステップ；フェイルオーバする可能性のある前記アプリケーションまたはプロセスの少なくとも１つのサブセットによる前記シーケンス付メッセージに対するアクセスの要求を推定するステップ；前記要求の推定に基づき、前記マスタジャーナルのコンテンツを複製することにより、１以上のジャーナルコピーおよび／または１以上のジャーナルセグメントを生成するステップであって、単一のアプリケーションまたはプロセスは任意の時点において各前記ジャーナルコピーまたはジャーナルセグメントに対して個別にアクセスすることができる、ステップ；要求されたとき、フェイルオーバするかまたは前記シーケンス付メッセージにギャップがある前記アプリケーションまたはプロセスの少なくとも１つのサブセットに対して、前記１以上のジャーナルコピーおよび／または前記１以上のジャーナルセグメントを割り当てて、前記マスタジャーナルのコンテンツに対して複数のアプリケーションまたはプロセスが同時にアクセスできるようにし、これにより前記アプリケーションまたはプロセスが前記フェイルオーバまたは前記シーケンス付メッセージにギャップがある状態からのリカバリにおいて前記マスタジャーナル内の前記シーケンス付メッセージに対して高速にアクセスできるようにする、ステップ。
【０００９】
本発明の技術的効果の１つは、アプリケーションまたはプロセスによるシーケンス付メッセージのジャーナルに対するアクセスまたは処理をスピードアップすることであり、これにより異常状態になったアプリケーションまたはプロセスのリカバリを大幅にスピードアップすることができる。
【００１０】
本発明のその他の技術的効果は、複数のアプリケーションまたはプロセスによるジャーナルアクセスの動的調整または制御である。これは、ジャーナルアクセスの要求に対する推定に基づくジャーナルコピー／セグメント間のロードバランスを含む。
【００１１】
その他利点、優位点、技術的効果は、本開示を読むことにより、および／または本発明の実施形態の１以上を実施することにより、当業者にとって明らかとなるであろう。
【００１２】
添付する付記、図面、写真、画像などは、本開示に基づき、様々な例示的で非限定的な発明の側面、実施形態、特徴（“例”または“例示”）を示す。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施形態に基づきアプリケーションメッセージジャーナル管理を提供するＭＲＭの例を表すブロック図を示す。
【００１４】
【図１Ａ】本発明の実施形態に基づくメッセージジャーナル管理の１プロセス例を表すフローチャートを示す。
【００１５】
【図２】本発明の実施形態に基づき、ＭＲＭコンポーネントを介してアプリケーションに対してリカバリのために完全メッセージジャーナルの複製を提供する例を表すフローチャートを示す。
【００１６】
【図３】本発明の実施形態に基づき、ＭＲＭコンポーネントを介してアプリケーションに対してリカバリのためにストリームセグメントメッセージジャーナルを提供する例を表すデータグラフダイアグラムを示す。
【００１７】
【図４】本発明の実施形態に基づくＭＲＭコントローラの例を表すブロック図を示す。
【発明を実施するための形態】
【００１８】
メッセージ再送信メカニズム装置、方法、システム（以下“ＭＲＭ”）の実施形態は、ＭＲＭコンポーネントを介して、メッセージジャーナルに対するアプリケーションリクエストを、分割メッセージストリームに対する高速アクセスに変換する。
【００１９】
図１は、メッセージジャーナルへのアクセスを必要とするアプリケーションに対してアプリケーションメッセージジャーナル管理を提供するＭＲＭの例を表すブロック図を示す。実施例においてアプリケーションは、通常システム動作中において動作を実施しおよび／または外部イベントに対して応答するとき、ジャーナルに対してメッセージを書き込む。例えばアプリケーションは、外部主体から到着するメッセージを受け取り処理する必要がある。例えば金融商品や市場取引に関するメッセージが挙げられるが、これに限らない。例えば電子取引システムのソフトウェアアプリケーションは、例えば注文入力、変更、キャンセルなどのためのＦｉｎａｎｃｉａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  ｅＸｃｈａｎｇｅ（ＦＩＸ）フォーマットのメッセージ、取引メッセージ、注文確定レポート、市場データメッセージなどを交換および処理する。実施形態においてアプリケーションは、他アプリケーションおよび／または外部サードパーティとメッセージを交換および処理して応答すると、ジャーナルに対して書き込むことにより自身の活動を記録する。実施形態においてアプリケーションは、システム動作中に実行される他アプリケーションの一部または全ての活動について通知を受ける必要がある。実施形態においてアプリケーションは、全てのアプリケーションが書き込んだメッセージを含むメッセージジャーナルに対してアクセスする必要がある。例えばアプリケーション１０１は、ジャーナルメッセージを処理する際にギャップを有する場合があり、そのギャップを埋めるためジャーナルに対してアクセスする必要がある場合がある。例えばアプリケーションは、送信問題（例えばネットワーク層など）の結果としてメッセージを破壊および／または消失する場合がある。このときジャーナルから消失したメッセージを復元する必要がある。実施形態において、自身のメッセージをジャーナルに対して書き込む必要がある場合がある。
【００２０】
実施例においてアプリケーション１０１は、ジャーナルに対して定常的にアクセスすることにより消失したメッセージに再アクセスし、自身のジャーナルメッセージ処理におけるギャップを埋める必要がある。実施例において、ジャーナルのメッセージに対するアプリケーションの繰り返しリクエストは、他のアプリケーション１０２の同じジャーナルに対するアクセスと干渉する場合がある。例えばアプリケーション１０１によるリクエストは、アプリケーション１０２のリクエストと競合し、アプリケーションがジャーナルに対してアクセスする順番を待つキューが生じる場合がある（１０３）。実施例において待機中アプリケーションは、消失したメッセージを自身で復元しようと試み、ジャーナルが利用可能になるのを待機しているとき、リカバリがさらに遅れることになる。例えば他アプリケーションは、あるアプリケーションが待機しているときジャーナルに対して書き込み、その結果として待機中アプリケーションは、より多くのリカバリ時間を必要とする。アプリケーションがキューにある間にジャーナルに対して書き込まれたメッセージに対してアクセスする必要があるからである（１０４）。実施例において、これは後続の待機アプリケーションにとって待機時間とリカバリ時間が増加するチェーンリアクションを引き起こす場合があり、その結果として、待機アプリケーションおよび／またはシステム全体の性能が低下する。
【００２１】
実施例においてＭＲＭは、アプリケーションに対して、完全メッセージジャーナルの複数のコピーとセグメントを生成することを介して（１０６）、ジャーナルへの高速アクセスを提供する。例えばＭＲＭは、アプリケーションに対して一連のジャーナルを提供し、これによりアプリケーションに対して１以上のリカバリソースを提供する。これら実施形態において、ジャーナルにアクセスするプロセスは、キューが増えるとしてもより短くなるので、よりロードバランスされたものとなる。
【００２２】
実施形態において、キューが短くても待ち時間が長い場合がある。例えばリカバリするアプリケーションは、キャッチアップすべき多量のメッセージを有している場合があり、したがってジャーナルについて長い時間がかかり、これによりキューがどんなに短くともキュー内の他アプリケーションにとって長時間の遅延を生じさせる場合がある。そこでＭＲＭはさらに、完全メッセージジャーナルをセグメントへ分割して複数アプリケーションが同時にそのセグメントを利用できるようにすることにより、ジャーナルアクセスポイントにおいて高速ターンアラウンドを提供する。例えばアプリケーションは、あるジャーナルセグメントから他のジャーナルセグメントへ進み、リカバリのため必要な関連メッセージを取得するが、１つのジャーナルについて大きな時間を消費することはなく、リカバリのためジャーナルにアクセスする必要がある他アプリケーションにとって遅延を引き起こすこともない。
【００２３】
図２を参照する。実施例においてアプリケーション２０７は、動作または外部イベントに対して応答するとき、ジャーナル２０１に対してメッセージを書き込む。実施例においてアプリケーション２０８〜２０９は、他アプリケーションのメッセージを読み取り、システム動作中の全ての活動に遅れないようにする。例えばアプリケーションＡは、ジャーナル２０１の最初の３行に対してメッセージを書き込む。後続アプリケーションＢはこれらメッセージを読み取り、ジャーナル内の次の利用可能行に対して自身のメッセージを書き込む（例えば次の３行）。実施例においてアプリケーション２１０は、ジャーナルメッセージを処理する際に、ギャップを有している場合がある。例えばアプリケーションは、ネットワーク層の送信問題の結果としてメッセージを消失する場合があり、消失したメッセージを復元する手段を必要とする（２１１）。実施例において、自身のリカバリのためジャーナルに対してアクセスしようとしている他アプリケーションが存在する場合がある。ジャーナルが１つのみである場合、または利用可能なジャーナルコピーの個数がキュー内のアプリケーションの要求を満たさない場合、キューが形成される。実施例においてＭＲＭは、完全メッセージジャーナルのコピー２０２〜２０４を提供して、アプリケーションが消失メッセージに対して高速アクセスできるようにする（２１３）。例えば１つのジャーナルがアプリケーションによって占有されている場合、他アプリケーションは第１ジャーナルのコピーである他の利用可能ジャーナルから消失メッセージを復元する（２１２）。
【００２４】
実施例において、複数のジャーナル複製があったとしても、アプリケーションが長時間にわたってジャーナルを占有する場合はキューが形成される。例えばアプリケーションは初期状態で開始し、および／または大量のメッセージを消失している場合がある。例えばアプリケーションは、１日のうち遅い時間に開始し、既に処理されたメッセージすべてをキャッチアップする必要がある場合がある。実施例においてアプリケーションは、全ての消失メッセージを復元し処理するために長時間を要し、これは単一のジャーナルを占有して、キューを生じさせるとともに、ジャーナルにアクセスする必要がある他アプリケーションにとってリカバリ遅延を生じさせる。
【００２５】
図３を参照する。実施形態においてアプリケーション３０７〜３０９は、動作するときまたは外部イベントに対して応答するとき、ジャーナル３０１に対してメッセージを書き込む。そして図２で詳細に説明したように、他アプリケーションがジャーナルに対して書き込んだメッセージに遅れないようにする必要がある。実施形態において、消失メッセージを復元するアプリケーションは、長時間にわたってジャーナルを占有する場合があり、他アプリケーションが同じジャーナルに対してアクセスするリクエストと競合する。実施形態においてＭＲＭは、完全メッセージジャーナルを分割することおよび／またはそのコピーを介して、アプリケーションに対してジャーナルへの高速アクセスを提供する（３１１）。例えばＭＲＭは、完全メッセージジャーナルをセグメント３０２〜３０４へ分割し、特定のセグメントを特定のジャーナルに対して割り当てて、複数のアプリケーションがメッセージセグメントを同時利用できるようにする（３１３）。
【００２６】
実施形態において、消失メッセージを復元しようとしている非接続アプリケーション３１０は、次のジャーナルに移って元の完全メッセージの他セグメントを取得する前に、完全ジャーナルメッセージのセグメントを取得する。この実施形態において、アプリケーションが各ジャーナルについて消費する時間は、単一のジャーナルから完全メッセージを取得するため消費する時間よりも小さい。例えば非接続アプリケーションがジャーナルからメッセージセグメントを取得すると、他のジャーナルに移り、これにより他アプリケーションはそのジャーナルに対してより速くアクセスすることができる。実施形態において、非接続アプリケーションがまだメッセージギャップを有している場合、非接続アプリケーションは関連するメッセージセグメントを含む他ジャーナルへ進み、これらジャーナルからそのメッセージへアクセスする。実施形態において、各アプリケーションがジャーナルに対して消費する時間は限られている場合があり、これによりジャーナル内に格納されたメッセージへアクセスすることを待機しているアプリケーションのキューはより短くより高速になる。例えば分割メッセージジャーナルにより、各アプリケーションがジャーナルに対して消費する時間は、完全メッセージのジャーナルに対して消費する時間よりも小さくなる。これにより、消失メッセージを復元するよう試みているアプリケーションがメッセージギャップをより速く埋めることができる（３１２）。
【００２７】
図１Ａは、本発明の実施形態に基づくメッセージジャーナル管理の１プロセス例を表すフローチャートを示す。この例示プロセスまたはその変形は、イベントが発生する順序またはシーケンスが重要なコンピュータシステムにおいて実装することができる。そのコンピュータシステムは例えば、電子取引システム、オークションベース販売システム、ゲームシステムである。例として、金融商品交換所が実装する電子取引システムの文脈で、望ましい実施形態を説明する。
【００２８】
ステップ１１０においてコンピュータシステムは、シーケンス付メッセージのマスタジャーナルを記憶媒体内に保持する。例えば株や国債などの金融商品の電子取引システムにおいて、コアソフトウェアアプリケーション（例えばＦＩＸ注文入力／取引ゲートウェイ、マッチングエンジン、市場データアプリケーション、参照データアプリケーション、取引後統合アプリケーション）は、１以上のコンピュータサーバ上で同時に実行される場合がある。これらアプリケーションは、中央メッセージングバスを介して通信し、これにより任意時点において多数のメッセージを生成する。これらメッセージは、注文、取引、クォート、アプリケーション間通信、などを含むが、これに限らない。シーケンスなしメッセージは、シーケンサを介してルーティングされる。シーケンサは、処理／シーケンス付けされた順番にしたがって、これらメッセージをシーケンス付ストリームとして構成する。その結果シーケンサは、正しい順序で全メッセージの忠実性の高い決定論的レコード（“ジャーナル”とも呼ぶ）を生成し続ける。
【００２９】
ジャーナルは次に、取引システムのコンポーネントに対して再発行されまたは利用可能となる。取引システムはそれぞれの機能を実施するため、シーケンス付メッセージに対するアクセスを必要とする。いずれかのコンポーネント（例えばアプリケーションまたはプロセス、以下単に“アプリケーション”と呼ぶ）がフェイルオーバからリカバする必要がある場合、増加し続けるメッセージシーケンスにキャッチアップしなければならない。これはメッセージジャーナルにアクセスすることによりなされ、これにより意図している機能状態に戻ることができる。例えば１０秒間クラッシュすると、アプリケーションは数百万メッセージを消失する可能性があり、再機能する前にその数百万メッセージにキャッチアップする必要がある。したがってメッセージジャーナルは、システムリカバリと冗長性にとってクリティカルなものである。またメッセージジャーナルにより、取引所は予約とレコードの要求を満たすことができる。
【００３０】
ただし多数のアプリケーションが停止すると（例えば複数のアプリケーションをサポートするサーバのハードウェア障害の間）、特に慌ただしい取引時間帯においては、メッセージジャーナルに対するアクセス要求が急増する。メッセージストリームにキャッチアップしたいアプリケーションが多数あると、キュー内で待機する必要がある。あるアプリケーションがジャーナルを読み込んでいるとき、他アプリケーションはその後に並んで待つ必要がある。キャッチアップを待機している間、ジャーナルメッセージは増え続け、これによりアプリケーション（素早くリカバしようとしている）はさらに遅れることになる。
【００３１】
したがって、メッセージジャーナルに対する障害アプリケーションからのアクセス要求を推定することが望ましい（ステップ１１２）。これは、ハードウェアおよび／またはソフトウェアコンポーネントに障害が発生したコンピュータシステムの現在および／または過去のパフォーマンス、または障害によって影響を受けるアプリケーションの数に基づき、予想または予測される。複数の要因を考慮して、ジャーナルアクセス要求の推定結果を判定する。例えば、既知または可能性のあるソフトウェア障害、既知または可能性のあるハードウェア障害、ソフトウェアまたはハードウェア障害に影響されるアプリケーションまたはプロセスの数、アプリケーションまたはプロセスがジャーナル、ジャーナルコピー、またはジャーナルセグメント内のメッセージにアクセスする速度、障害アプリケーションまたはプロセスの所望リカバリ時間（例えば完全リカバリにかかる最大時間）、コンピュータシステムの予想負荷（例えば日中の時間帯や曜日によって変化する）、などが挙げられるが、これに限らない。
【００３２】
要求の予想に基づき、マスタジャーナルのコンテンツを複製することによりおよび／または１以上のジャーナルセグメントを生成することにより（ステップ１１６）、１以上のジャーナルコピーを生成する（ステップ１１４）ように、コンピュータシステムを構成することができる。本発明の実施形態に基づき、ジャーナルセグメントはマスタジャーナルのマスタコピー（または“ゴールデンコピー”）から直接生成し、あるいはステップ１１４において生成したジャーナルコピーから生成することができる。ジャーナルコピーおよび／またはジャーナルセグメントの生成は、専用ソフトウェアまたはリピータなどのハードウェアモジュールによって実現できる。
【００３３】
次にステップ１１８において、ジャーナルコピーおよび／またはジャーナルセグメントは、障害アプリケーションに対して割り当てられ、これによりリカバリを速める。割当はいくつかの方法で実施できる。例えばジャーナルコピーまたはセグメントは、障害アプリケーションに対して事前割当することができる。これに代えて（より望ましくは）アプリケーションは、ジャーナルコンテンツの特定部分に対するアクセスを要求し、占有されていないジャーナルコピー／セグメントを発見するまで待機する。これは、日用品店チェックアウト待ちにおいて１つのキューの客が複数のレジによってまとめて取り扱われ、待ち行列の最初の人が次に利用可能になったレジへ向かうことに似ている。ジャーナルコピー／セグメントの数は、障害アプリケーションの総数に対処して長いキューで順番待ちするアプリケーションがなくなるように、充分に大きいことが望ましい。１実施形態においてジャーナルコピー／セグメントは、各障害アプリケーションが即時アクセスすることができるように割り当てられ、または各キューにおいてアプリケーションが２〜３個以内となるように割り当てることができる。
【００３４】
具体例において、最大リカバリ時間として１マイクロ秒（すなわち１０００ナノ秒）が選択され、１０個の障害アプリケーションがジャーナルにキャッチアップすることによりリカバする必要があると推定される。したがって平均すると各アプリケーションはジャーナルに対するアクセス完了にかかる時間を１００ナノ秒以下にする必要がある。アプリケーションがメッセージに対してアクセスするのにかかる時間は、以下に基づき計算または推定することができる：（ａ）Ｘビットおよび／またはバイトという観点のメッセージサイズ、（ｂ）Ｘビットまたはバイトを処理するのにかかるナノ秒の数値。１００ナノ秒で処理することができる最大メッセージ数は、ジャーナルセグメントのサイズ制約として計算することができる。
【００３５】
ジャーナルコピーまたはジャーナルセグメントの個数を設定する複数のオプションを用いることができる。例えば最初のアプリケーションのみがジャーナルにアクセスすることができる１０アプリケーションの単一キューを用いることに代えて、ジャーナルコンテンツをジャーナルコピーに複製して、同一ジャーナルの２コピーを１０アプリケーションに対して割り当てることができる。この場合、５アプリケーション／キューが２キューあることになる。より良いのは、１０アプリケーションが同じジャーナルの５コピーを利用可能とすることである。この場合、２アプリケーション／キューが５キューあることになり、５アプリケーションがジャーナルに対してアクセスできる。その結果、１０アプリケーションのリカバリ時間が大幅に短くなる。
【００３６】
これに代えて、１０アプリケーションがメッセージジャーナルの異なる部分に対してアクセスする必要がある範囲で、１以上のジャーナルコピーをジャーナルセグメントへさらに分割することができる。各セグメントは、シーケンス付メッセージのより短いストリームを有するメッセージジャーナルのサブセットを含む。例えば障害アプリケーションが１０個であり、３ジャーナルコピーが生成され、ジャーナルコピーの１つが３つのジャーナルセグメントへさらに分割される。したがって２つのアプリケーションを含むキューが５つ形成され、２つのキューは２つの完全ジャーナルコピーへアクセスし、３キューは３つのジャーナルセグメントへアクセスする。各アプローチ（ジャーナルセグメントがある場合とない場合）において、例えばアプリケーションキューに対して負荷バランシングを適用して、ジャーナルコピーおよび／またはジャーナルセグメントのそれぞれの割当を調整することができる。
【００３７】
ジャーナルコピーおよび／またはジャーナルセグメントが生成されアプリケーションに対して割り当てられた後（例えばアプリケーションに対して事前割当され、または要求に応じて割り当てられる）、コンピュータシステムはジャーナルシーケンス内にメッセージを蓄積し続ける。したがってメッセージジャーナルの“ゴールデンコピー”は、最新のシーケンス付メッセージによって継続的に更新される。
【００３８】
ただし以前に生成したジャーナルコピー／セグメントのコンテンツは、古くなり不完全になる場合がある。
【００３９】
完全ジャーナルコピーが複数ある場合において、各ジャーナルコピーはシーケンス付ストリームを読み取り続け、自身のジャーナルに追加する。これは、他のジャーナルコピーと同期されていない状態になることについて考慮されずになされる。ストリームはシーケンス付であり決定論的だからである。全てのジャーナルは、シーケンス番号にしたがって同じ順番を有する。いずれかのメッセージが消失すると、ジャーナルコピーは他のジャーナルコピーから消失メッセージを埋めるよう再リクエストする。メッセージが埋められると、リアルタイムでストリームから読み取ることを再開する。
【００４０】
ジャーナルセグメントを用いる場合、各ジャーナルセグメントは完了すると固定され、次に動的構築されているセグメントのみがアクティブになる。例えば各セグメントが１０メッセージを保持し、３５メッセージがストリームに対して書き込まれる場合、完全固定セグメントは３つであり、１０メッセージキャパシティを有する動的構築セグメントには５メッセージが埋められる。メッセージを消失すると（ここではメッセージ＃８を消失したとする）、メッセージ＃８を再リクエストし、これを取得するとメッセージ＃９と＃１０へ進む。＃８を再リクエストしている間に＃９がシーケンス付けされ、＃９を消失して＃９を再リクエストする必要がある、という競合状態があり得る。その後、キャッチアップおよびリアルタイムストリームへ再遷移する。
【００４１】
したがって、完全ジャーナルコピーまたはジャーナルセグメントが不完全になるのは、メッセージを消失した場合のみであり、これは再リクエストされる。ジャーナルセグメントを用いる場合、完全集合ジャーナルレコードは、最新動的構築セグメントがメッセージを消失して不完全になった場合、不完全となる。
【００４２】
ステップ１２０において、ジャーナルコピー／セグメントが増え続けるメッセージジャーナルにキャッチアップするため、少なくとも１つのジャーナルコピー／セグメントのコンテンツは、マスタジャーナル（すなわちゴールデンコピー）のコンテンツまたは他の（より新しい）ジャーナルコピー／セグメントのコンテンツにより更新または同期される。
【００４３】
（セグメント分割されていない）ジャーナルコピーは、動的にリアルタイム更新することができ、したがって継続的に長さが増え続ける。ジャーナルセグメントについて、メッセージ数はジャーナルセグメントあたり１０００に制限され、１００１番目のメッセージごとに新セグメントが開始し、１０００番目のメッセージまで動的更新される。アプリケーションが動的更新されているジャーナルセグメントから再リクエストする必要がある場合、キャッチアップするまでの最新メッセージシーケンス番号までをリクエストすればよく、これによりジャーナルセグメントとともにストリームから読み出しを開始できる。
【００４４】
本発明の実施形態に基づき、ジャーナルコピーおよび／またはジャーナルセグメントは、複数層の階層に構造化することができる。ジャーナルコピー／セグメントは、他のジャーナルコピー／セグメントから“キャッチアップ”することができる。例えばジャーナルコピー／セグメントは、ティア１、ティア１、ティア３などに割り当てることができる。ティア１ジャーナルコピー／セグメントは常に“ゴールデンコピー”によって更新されており、キャッチアップする必要があるティア２および／またはティア３ジャーナルコピー／セグメントのみがアクセスできる。ティア２ジャーナルコピー／セグメントは、他のティア２ジャーナルコピー／セグメントからのみキャッチアップでき、必要であればティア１ジャーナルコピー／セグメントからキャッチアップする。ティア３ジャーナルコピー／セグメントは、他のティア３ジャーナルコピー／セグメントからのみキャッチアップでき、必要であればティア２またはティア１ジャーナルコピー／セグメントからキャッチアップする。
【００４５】
＜ＭＲＭコントローラ＞
図４は、ＭＲＭコントローラ４０１の例を表すブロック図を示す。この実施形態においてＭＲＭコントローラ４０１は、様々な技術および／または関連データを介して、コンピュータとのやり取りを集約し、処理し、格納し、検索し、提供し、識別し、命令し、生成し、マッチングし、および／または促進する。
【００４６】
ユーザ４３３ａは、人間および／または他システムであり、情報技術システム（例えばコンピュータ）を用いて情報処理を実施する。コンピュータはプロセッサを用いて情報を処理する；そのプロセッサ４０３は、中央演算装置（ＣＰＵ）と呼ばれる。プロセッサの１形態は、マイクロプロセッサである。ＣＰＵは通信回路を用いて、命令として動作するバイナリ符号化信号を送信し、様々な動作を実施する。これら命令は、動作命令および／またはデータ命令であり、他命令を含みおよび／または参照し、様々なプロセッサがアクセスして動作することができるメモリ領域４２９（例えばレジスタ、キャッシュメモリ、ランダムアクセスメモリなど）に格納される。通信命令は、プログラムとしておよび／またはデータコンポーネントとしてバッチで（例えばバッチ命令で）格納されおよび／または送信され、所望の動作を実施する。これら格納されている命令コード（例えばプログラム）は、ＣＰＵ回路部品やその他マザーボードおよび／またはシステム部品に組み込まれ、所望の動作を実施する。プログラムのタイプとしては例えばコンピュータオペレーティングシステムがあり、ＣＰＵがコンピュータ上でこれを実行する。オペレーティングシステムにより、ユーザはコンピュータ情報技術とリソースにアクセスし動作させることができる。情報技術システムが使用するリソースとしては以下が挙げられる：データがコンピュータに対して入力されまたはコンピュータから出ていく入出力メカニズム；データを保存するメモリストレージ；情報を処理するプロセッサ。これら情報技術システムを用いてデータを収集し、その後に取得し、分析し、操作する。これら動作はデータベースプログラムによりなされる。これら情報技術システムは、ユーザが様々なシステムコンポーネントにアクセスして操作するインターフェースを提供する。
【００４７】
１実施形態において、ＭＲＭコントローラ４０１は以下のような構成要素と接続し、および／または通信することができる：ユーザ入力デバイス４１１からの１以上のユーザ；周辺デバイス４１２；予備暗号プロセッサデバイス４２８；および／または通信ネットワーク４１３。例えばＭＲＭコントローラ４０１は、ユーザ４３３ａ、クライアント操作デバイス４３３ｂと接続し、および／または通信することができる。クライアント操作デバイス４３３ｂは以下を含むが、これに限られない：パーソナルコンピュータ、サーバ、および／または様々なモバイルデバイス。モバイルデバイスは以下を含むが、これに限られない：携帯電話、スマートフォン（例えばｉＰｈｏｎｅ（登録商標）、Ｂｌａｃｋｂｅｒｒｙ（登録商標）、ＡｎｄｒｏｉｄＯＳベース携帯電話、など）、タブレットコンピュータ（例えばＡｐｐｌｅ  ｉＰａｄ、ＨＰ  Ｓｌａｔｅ、Ｍｏｔｏｒｏｌａ  Ｘｏｏｍ、など）、ｅＢｏｏｋリーダ（例えばＡｍａｚｏｎ  Ｋｉｎｄｌｅ、Ｂａｒｎｅｓ  ａｎｄ  ＮｏｂｌｅのＮｏｏｋ  ｅＲｅａｄｅｒ、など）、ラップトップコンピュータ、ノートブックコンピュータ、ネットブック、ゲーム端末（例えばＸＢＯＸ  Ｌｉｖｅ、Ｎｉｎｔｅｎｄｏ（登録商標）ＤＳ、Ｓｏｎｙ  ＰｌａｙＳｔａｔｉｏｎ（登録商標）Ｐｏｒｔａｂｌｅ、など）、携帯スキャナ、など。
【００４８】
ネットワークは一般に、グラフトポロジーにおけるクライアント、サーバ、および中間ノードの相互接続と相互動作を備えるように構成される。本願における“サーバ”という用語は一般に、コンピュータ、その他デバイス、プログラム、あるいはこれらの組み合わせを指し、これらは通信ネットワークを介したリモートユーザのリクエストを処理し、これに応答する。サーバは、“クライアント”に対してリクエストするため情報を提供する。本願における“クライアント”という用語は一般に、コンピュータ。プログラム、その他デバイス、ユーザ、および／またはこれらの組み合わせを指す。これらはリクエストを処理および作成し、通信ネットワークを介してサーバからの応答を取得し処理することができる。情報とリクエストを処理し、および／または送信元ユーザから宛先に対して情報を引き渡す、コンピュータ、その他デバイス、プログラム、またはこれらの組み合わせは、“ノード”と呼ぶ。ネットワークは一般に、送信元から宛先に対して情報を伝搬しようとする。送信元から宛先に対して情報を引き渡すタスクを実施するノードは、“ルータ”と呼ばれる。ネットワークの形態としては例えば：ローカルエリアネットワーク（ＬＡＮ）、Ｐｉｃｏネットワーク、広域ネットワーク（ＷＡＮ）、無線ネットワーク（ＷＡＮ）などがある。例えばインターネットは一般に、複数ネットワークの相互接続として受け入れられている。これによりリモートクライアントとサーバは、互いにアクセスし相互動作することができる。
【００４９】
ＭＲＭコントローラ４０１は、コンピュータシステムに基づく。このコンピュータシステムは、例えばメモリ４２９に接続されたコンピュータシステム４０２のようなコンポーネントを備えるが、これに限らない。
【００５０】
＜コンピュータシステム＞
コンピュータシステム４０２は、クロック４３０、中央演算装置（ＣＰＵおよび／またはプロセッサ（これら用語は本明細書において明示しない限り相互交換可能である））４０３、メモリ４２９（例えば読取専用メモリ（ＲＯＭ）４０６、ランダムアクセスメモリ（ＲＡＭ）４０５など）、および／またはインターフェースバス４０７を備える。さらに必ずしも必要ではないが最もよく備えられているのは、相互接続されおよび／または通信可能なシステムバス４０４である。システムバス４０４は１以上のマザーボード４０２上に設けられている。マザーボード４０２は、導電および／または伝搬回路経路を有する。この回路経路を通じて、命令（例えばバイナリ符号化信号）が伝搬し、通信、動作、記憶などを実現する。コンピュータシステムは、電力ソース４８６に接続することができる。電力ソースは内部のものであってもよい。暗号プロセッサ４２６および／またはトランシーバ（例えばＩＣ）４７４は、システムバスに接続することができる。他実施形態において、暗号プロセッサおよび／またはトランシーバは、内部および／または外部周辺デバイス４１２としてインターフェースバスＩ／Ｏを介して接続することができる。トランシーバはアンテナ４７５に接続され、これにより無線通信と様々な通信および／またはセンサプロトコルの受信を可能にする。例えばアンテナは以下に接続することができる：Ｔｅｘａｓ  Ｉｎｓｔｒｕｍｅｎｔｓ  ＷｉＬｉｎｋ  ＷＬ１２８３  トランシーバチップ（例えば８０２．１１ｎ、Ｂｌｕｅｔｏｏｔｈ３．０、ＦＭ、ＧＰＳ（これによりＭＲＭコントローラは位置を判定できる）を提供する）；Ｂｒｏａｄｃｏｍ  ＢＣＭ４３２９ＦＫＵＢＧ  トランシーバチップ（例えば８０２．１１ｎ、Ｂｌｕｅｔｏｏｔｈ２．１＋ＥＤＲ、ＦＭなどを提供する）、ＢＣＭ２８１５０（ＨＳＰＡ＋）、およびＢＣＭ２０７６（Ｂｌｕｅｔｏｏｔｈ４．０、ＧＰＳなど）；Ｂｒｏａｄｃｏｍ  ＢＣＭ４７５０ＩＵＢ８レシーバチップ（例えばＧＰＳ）；Ｉｎｆｉｎｅｏｎ  Ｔｅｃｈｎｏｌｏｇｉｅｓ  Ｘ−Ｇｏｌｄ６１８−ＰＭＢ９８００（例えば２Ｇ／３Ｇ  ＨＳＤＰＡ／ＨＳＵＰＡ通信を提供する）；Ｉｎｔｅｌ  ＸＭＭ７１６０（ＬＴＥ＆ＤＣ−ＨＳＰＡ）、Ｑｕａｌｃｏｍ  ＣＤＭＡ（２０００）、Ｍｏｂｉｌｅ  Ｄａｔａ／Ｓｔａｔｉｏｎ  Ｍｏｄｅｍ，Ｓｎａｐｄｒａｇｏｎ、など。システムクロックは水晶発振器を有し、コンピュータシステムの回路経路を介してベース信号を生成する。クロックは、システムバスおよび様々なクロック増幅器に接続される。クロック増幅器は、コンピュータシステムに相互接続された他コンポーネントのベース動作周波数を増減させる。クロックとコンピュータシステム内の各コンポーネントは、システム全体にわたって情報を格納する信号を駆動する。コンピュータシステム全体にわたって情報を格納した命令を送受信することは、通信と呼ばれる。これら通信命令は、さらに送受信され、本コンピュータシステムから通信ネットワーク、入力デバイス、他コンピュータシステム、周辺デバイス、などに対する応答を生じさせる。他実施形態において、上記各コンポーネントは互いに直接接続し、ＣＰＵに接続し、および／または多様なコンピ��ータシステムが採用する様々な変形物内に構成できることを理解されたい。
【００５１】
ＣＰＵは、ユーザおよび／またはシステムが生成したリクエストを実行するプログラムコンポーネントを実行するのに適した少なくとも１つの高速データプロセッサを備える。プロセッサ自身は、様々な専用処理ユニットを備える場合もある。例えば浮動点演算ユニット、整数演算ユニット、統合システム（バス）コントローラ、論理演算ユニット、メモリ管理制御ユニット、などを含むが、これらに限らない。また、グラフィック処理ユニット、デジタル信号処理ユニット、などの専用サブユニットを含む場合もある。プロセッサは、内部高速アクセスアドレスメモリを備える場合もあり、メモリ４２９のマッピングやアドレシングをプロセッサ自身が実施することができる。内部メモリは以下を含むが、これらに限らない：高速レジスタ、様々なレベルのキャッシュメモリ（レベル１、２、３など）、ＲＡＭ、など。プロセッサは、メモリアドレス空間を介してこのメモリにアクセスする。メモリアドレス空間は、命令アドレスを介してアクセスすることができる。命令アドレスは、プロセッサが構築しデコードするものである、これにより、回路パスにアクセスしてメモリ状態／値を有する特定メモリアドレス空間に到達することができる。ＣＰＵは、例えば以下のようなマイクロプロセッサでもよい：ＡＭＤ  Ａｔｈｌｏｎ、Ｄｕｒｏｎ、および／またはＯｐｔｅｒｏｎ；従前のＡＲＭ（例えばＡＲＭ６／９／１１）、ｅｍｂｅｄｄｅｄ（Ｃｏｒｔｅｘ−Ｍ／Ｒ）、ａｐｐｌｉｃａｔｉｏｎ（Ｃｏｒｔｅｘ−Ａ）、およびｓｅｃｕｒｅプロセッサ；ＩＢＭおよび／またはＭｏｔｏｒｏｌａ  ＤｒａｇｏｎＢａｌｌおよびＰｏｗｅｒＰＣ；ＩＢＭおよびＳｏｎｙ  Ｃｅｌｌプロセッサ；Ｉｎｔｅｌ  Ａｔｏｍ、Ｃｅｌｅｒｏｎ（Ｍｏｂｉｌｅ）、Ｃｏｒｅ（２／Ｄｕｏ／ｉ３／ｉ５／ｉ６）、Ｉｔａｎｉｕｍ、Ｐｅｎｔｉｕｍ、Ｘｅｏｎ、および／またはＸＳｃａｌｅ；など。ＣＰＵは、命令を通過させる導体および／または伝搬経路（例えば（プリント）電子および／または光回路）を介してメモリと通信し、格納されている命令（すなわちプログラムコード）を実行する。この命令引き渡しにより、ＭＲＭコントローラ内および各インターフェースを介した通信を実施する。処理要件が多大な速度および／または性能を必要とする場合、分散プロセッサ（例えばＤｉｓｔｒｉｂｕｔｅｄ  ＭＲＭ）、メインフレーム、マルチコア、パラレル、および／またはスーパーコンピュータアーキテクチャを同様に用いることができる。これに代えて、配置要件が可搬性を必要とする場合、小型モバイルデバイス（例えばスマートフォン、携帯個人端末（ＰＤＡ）など）を採用することができる。
【００５２】
実装によっては、ＭＲＭの機能はマイクロコントローラを実装することによって実現できる。マイクロコントローラは例えば、ＣＡＳＴ  Ｒ８０５１ＸＣ２マイクロコントローラ、Ｉｎｔｅｌ  ＭＣＳ５１（すなわち８０５１マイクロコントローラ）、などである。ＭＲＭの機能を実装するため、組込コンポーネントを用いることもできる。例えば：特定用途集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（ＦＰＧＡ）、および／または同様の組込技術である。例えばＭＲＭのコンポーネント集合（分散配置されているものでもよいしそれ以外でもよい、例えばＩＭＡＳ３４１など）および／または機能は、マイクロプロセッサおよび／または組込コンポーネントを用いて実装することができる。例えば：ＡＳＩＣ、コプロセッサ、ＤＳＰ、ＦＰＧＡ、など。これに代えてＭＲＭの機能は、多様な機能や信号処理を実現するように構成された組込コンポーネントにより実装することができる。
【００５３】
実装によっては、組込コンポーネントは、ソフトウェア、ハードウェア、および／またはハードウェア／ソフトウェアの組み合わせを含むことができる。例えばＭＲＭ機能は、ＦＰＧＡを実装することにより実現できる。ＦＰＧＡは、“論理ブロック”というプログラム可能論理部品とプログラム可能相互接続を含む半導体デバイスである。ＦＰＧＡの例は、Ｘｉｌｉｎｘが製造する高性能ＦＰＧＡ  Ｖｉｒｔｅｘシリーズおよび／またはＳｐａｒｔａｎシリーズである。論理ブロックと相互接続は、ＦＰＧＡが製造された後、顧客や設計者によってプログラムすることができる。これにより、ＭＲＭ機能を実装する。プログラム可能相互接続の階層により、論理ブロックはＭＲＭシステム設計者／管理者が必要であれば相互接続することができる。これは１チッププログラム可能ｂｒｅａｄｂｏａｒｄに似ている。ＦＰＧＡの論理ブロックをプログラムして、ＡＮＤ、ＸＯＲなどの基本論理ゲートの動作、またはデコーダや簡易数式などのより複雑な演算子の組み合わせを実施することができる。多くのＦＰＧＡにおいて、論理ブロックもメモリを備える。このメモリは例えば、回路フリップフロップまたはより複雑なメモリブロックである。状況によっては、ＭＲＭを通常のＦＰＧＡ上に開発し、ＡＳＩＣにより近い固定バージョンに移行することもできる。代替または協調実装は、ＭＲＭコントローラ機能をＦＰＧＡに代えてまたはＦＰＧＡに加えて最終ＡＳＩＣに移行することができる。実装によっては、上記組込コンポーネントの全ておよびマイクロプロセッサは、ＭＲＭの“ＣＰＵ”および／または“プロセッサ”とみなすことができる。
【００５４】
＜電力ソース＞
電力ソース４８６は、小型電子回路ボードデバイスに電力を供給する任意の標準形式のものを用いることができる。例えば以下のようなパワーセルである：アルカリ、リチウム水化物、リチウムイオン、リチウムポリマ、ニッケルカドミウム、太陽電池、など。その他タイプのＡＣまたはＤＣ電力ソースを用いることもできる。太陽電池の場合、１実施形態において、ケースは太陽電池が光エネルギーを取り込む開口を有する。パワーセル４８６は、相互接続されたＭＲＭコンポーネントの少なくとも１つと接続され、これにより相互接続された全コンポーネントに対して電流を提供する。１例において、電力ソース４８６はシステムバスコンポーネント４０４に接続される。代替実施形態において、Ｉ／Ｏインターフェース４０８をまたがる接続を介して、外部電力ソース４８６を提供することもできる。例えばＵＳＢおよび／またはＩＥＥＥ１３９４接続は、接続を通じてデータと電力をともに搬送し、したがって電力ソースとして適している。
【００５５】
＜インターフェースアダプタ＞
インターフェースバス４０７は、複数のインターフェースアダプタに対して、受信し、接続し、および／または通信する。必須ではないが、アダプタカードの形態をとることができる。例えば以下を含むが、これらに限らない：入出力インターフェース（Ｉ／Ｏ）４０８、ストレージインターフェース４０９、ネットワークインターフェース４１０、など。暗号プロセッサインターフェース４２７も同様に、インターフェースバスに接続することができる。インターフェースバスは、インタ−フェースアダプタ同士の接続のために提供することもできるし、コンピュータステムの他コンポーネントのために提供することもできる。インターフェースアダプタは、適合するインターフェースバスのために調整することができる。インターフェースアダプタは、拡張および／またはスロットアーキテクチャを介してインターフェースバスに接続する。様々な拡張および／またはスロットアーキテクチャを採用することができる。例えば以下を含むがこれに限らない：Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ（ＡＧＰ）、Ｃａｒｄ  Ｂｕｓ、ＥｘｐｒｅｓｓＣａｒｄ、（Ｅｘｔｅｎｄｅｄ）Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（（Ｅ）ＩＳＡ）、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）、ＮｕＢｕｓ、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（Ｅｘｔｅｎｄｅｄ）（ＰＣＩ（Ｘ））、ＰＣＩ  Ｅｘｐｒｅｓｓ、Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ（ＰＣＭＣＩＡ）、Ｔｈｕｎｄｅｒｂｏｌｔ、など。
【００５６】
ストレージインターフェース４０９は、複数のストレージデバイスに対して、受信し、通信し、および／または接続する。ストレージデバイスは例えば以下のようなものであるが、これに限らない：ストレージデバイス４１４、リムーバブルディスクデバイス、など。ストレージインターフェースは、通信プロトコルを採用することができる。通信プロトコルは例えば以下のものを含むが、これに限らない：（Ｕｌｔｒａ）（Ｓｅｒｉａｌ）Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ）（（Ｕｌｔｒａ）（Ｓｅｒｉａｌ）ＡＴＡ（ＰＩ））、（Ｅｎｈａｎｃｅｄ）Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ（（Ｅ）ＩＤＥ）、Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ（ＩＥＥＥ）１３９４、Ｅｔｈｅｒｎｅｔ、ファイバチャネル、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）、Ｔｈｕｎｄｅｒｂｏｌｔ、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）、など。
【００５７】
ネットワークインターフェース４１０は、通信ネットワーク４１３に対して、受信し、通信し、および／または接続する。通信ネットワーク４１３を介して、ユーザ４３３ａはリモートクライアント４３３ｂ（例えばｗｅｂブラウザを備えるコンピュータ）経由でＭＲＭコントローラにアクセスすることができる。ネットワークインターフェースは、通信プロトコルを採用することができる。通信プロトコルは例えば以下のものがあるが、これに限らない：直接接続、Ｅｔｈｅｒｎｅｔ（ｔｈｉｃｋ、ｔｈｉｎ、ｔｗｉｓｔｅｄ  ｐａｉｒ  １０／１００／１０００Ｂａｓｅ  Ｔ、など）、トークンリング、ＩＥＥＥ８０２．１１ａ−ｘなどの無線接続、など。処理要件が多大な速度および／または性能を必要とする場合、分散ネットワークコントローラ（例えば分散４）アーキテクチャを同様に採用して、ＭＲＭコントローラが必要とする通信帯域幅をプールし、負荷分散し、および／または増加させることができる。通信ネットワークは、以下のいずれかまたは組み合わせを用いることができる：直接相互接続；インターネット；ローカルエリアネットワーク（ＬＡＮ）；メトロポリタンエリアネットワーク（ＭＡＮ）；Ｏｐｅｒａｔｉｎｇ  Ｍｉｓｓｉｏｎｓ  ａｓ  Ｎｏｄｅｓ  ｏｎ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ（ＯＭＮＩ）；セキュアカスタム接続；Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ）；無線ネットワーク（例えばＷｉｒｅｌｅｓｓ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ（ＷＡＰ）、Ｉ−ｍｏｄｅなどのプロトコルを採用したものが挙げられるが、これらに限らない）；など。ネットワークインターフェースは、入出力インターフェースの特殊形態とみなすことができる。さらに複数のネットワークインターフェース４１０を用いて、様々な通信ネットワークタイプ４１３に接続することができる。例えば複数のネットワークインターフェースを用いて、ブロードキャスト、マルチキャスト、および／またはユニキャストネットワーク上で通信することができる。
【００５８】
入出力インターフェース（Ｉ／Ｏ）４０８は、ユーザ入力デバイス４１１、周辺デバイス４１２、暗号プロセッサデバイス４２８、などに対して、受信し、通信し、および／または接続する。Ｉ／Ｏは、以下のような通信プロトコルを用いることができるが、これに限らない：オーディオ：アナログ、デジタル、モノラル、ＲＣＡ、ステレオ、など；データ：Ａｐｐｌｅ  Ｄｅｓｋｔｏｐ  Ｂｕｓ（ＡＤＢ）、Ｂｌｕｅｔｏｏｔｈ、ＩＥＥＥ１３９４ａ−ｂ、シリアル、ＵＳＢ；赤外線；ジョイスティック；キーボード；ｍｉｄｉ；光；ＰＣ  ＡＴ；ＰＳ／２；パラレル；無線；ビデオインターフェース：Ａｐｐｌｅ  Ｄｅｓｋｔｏｐ  Ｃｏｎｎｅｃｔｏｒ （ＡＤＣ）、ＢＮＣ、同軸、コンポーネント、コンポジット、デジタル、ＤｉｓｐｌａｙＰｏｒｔ、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ （ＤＶＩ）、ｈｉｇｈ−ｄｅｆｉｎｉｔｉｏｎ  ｍｕｌｔｉｍｅｄｉａ  ｉｎｔｅｒｆａｃｅ（ＨＤＭＩ）、ＲＣＡ、ＲＦ  ａｎｔｅｎｎａ、Ｓ−Ｖｉｄｅｏ、ＶＧＡ、など；無線トランシーバ：８０２．１１ａ／ｂ／ｇ／ｎ／ｘ；Ｂｌｕｅｔｏｏｔｈ；携帯（例えばｃｏｄｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ（ＣＤＭＡ）、ｈｉｇｈ  ｓｐｅｅｄ  ｐａｃｋｅｔ  ａｃｃｅｓｓ（ＨＳＰＡ（＋））、ｈｉｇｈ−ｓｐｅｅｄ  ｄｏｗｎｌｉｎｋ  ｐａｃｋｅｔ  ａｃｃｅｓｓ（ＨＳＤＰＡ）、ｇｌｏｂａｌ  ｓｙｓｔｅｍ  ｆｏｒ  ｍｏｂｉｌｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（ＧＳＭ）、ｌｏｎｇ  ｔｅｒｍ  ｅｖｏｌｕｔｉｏｎ（ＬＴＥ）、ＷｉＭａｘ、など）；など。出力デバイスは、例えばビデオディスプレイである。ビデオディスプレイは、以下の形態をとることができる：Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ（ＣＲＴ）、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ（ＬＣＤ）、Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ（ＬＥＤ）、Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ（ＯＬＥＤ）、プラズマ、など。ビデオディスプレイは、ビデオインターフェースから信号を受け取るインターフェース（例えばＶＧＡ、ＤＶＩ回路およびケーブル）を備える。ビデオインターフェースは、コンピュータシステムが生成した情報を複合し、複合した情報に基づきビデオメモリフレーム内でビデオ信号を生成する。他の出力デバイスは、例えばテレビセットである。テレビセットは、ビデオインターフェースから信号を受け取る。ビデオインターフェースは、ビデオディスプレイインターフェース（例えば、ＲＣＡコンポジットビデオケーブルを接続するＲＣＡコンポジットビデオコネクタ；ＤＶＩディスプレイケーブルを接続するＤＶＩコネクタ、ＨＤＭＩなど）を接続するビデオ接続インターフェースを介して複合ビデオ情報を提供する。
【００５９】
ユーザ入力デバイス４１１は周辺デバイス４１２（下記参照）のタイプである場合もあり、以下を含む：カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックタブレット、ジョイスティック、キーボード、マイクロフォン、マウス、リモコン、網膜リーダ、タッチスクリーン（容量型、抵抗型など）、トラックボール、センサ（例えば加速度計、環境光、ＧＰＳ、ジャイロスコープ、近接センサ、など）、スタイラス、など。
【００６０】
周辺デバイス４１２は、Ｉ／Ｏおよび／または、ネットワークインターフェース、ストレージインターフェース、インターフェースバス直接、システムバス、ＣＰＵなどのその他デバイスと接続し、および／または通信することができる。周辺デバイスは、外部デバイス、内部デバイス、および／またはＭＲＭコントローラの一部である。周辺デバイスは以下を含む：アンテナ、オーディオデバイス（例えばｌｉｎｅ−ｉｎ、ｌｉｎｅ−ｏｕｔ、マイクロフォン入力、スピーカなど）、カメラ（例えば静止カメラ、ビデオカメラ、ｗｅｂｃａｍなど）、ドングル（例えばデジタル署名で安全な通信を保証するコピー保護したものなど）、外部プロセッサ（例えば暗号デバイス４２８などの追加機能のためのもの）、力フィードバックデバイス（例えば振動モータ）、近接場通信（ＮＦＣ）デバイス、ネットワークインターフェース、プリンタ、無線ＩＤ（ＲＦＩＤ）、スキャナ、ストレージデバイス、トランシーバ（例えば携帯、ＧＰＳなど）、ビデオデバイス（例えばゴーグル、モニタなど）、ビデオソース、など。周辺デバイスは、入力デバイスタイプを含む（例えばマイクロフォン、カメラなど）。
【００６１】
ユーザ入力デバイスと周辺デバイスを採用してもよいが、ＭＲＭコントローラは組込デバイス、専用デバイス、および／またはモニタなし（すなわちヘッドなし）デバイスとして実装することもできる。この場合アクセスは、ネットワークインターフェース接続を介してなされる。
【００６２】
マイクロコントローラ、プロセッサ４２６、インターフェース４２７、および／またはデバイス４２８などの暗号ユニットをＭＲＭに取り付け、および／またはＭＲＭと通信することができる。Ｍｏｔｏｒｏｌａ製のＭＣ６８ＨＣ１６マイクロコントローラを暗号ユニット内で用いることができる。ＭＣ６８ＨＣ１６マイクロコントローラは、１６ＭＨｚ設定で１６ビット関和演算命令を利用し、５１２ビットＲＳＡプライベートキー動作を１秒以下で実施する。暗号ユニットは、通信エージェントからの通信認証をサポートし、匿名通信も許可する。暗号ユニットは、ＣＰＵの一部として構成することができる。同等のマイクロコントローラおよび／またはプロセッサを用いることもできる。その他商用利用可能な専用暗号プロセッサとして以下が含まれる：Ｂｒｏａｄｃｏｍ  ＣｒｙｐｔｏＮｅｔＸその他セキュリティプロセッサ；ｎＣｉｐｈｅｒ  ｎＳｈｉｅｌｄ （例えばＳｏｌｏ、 Ｃｏｎｎｅｃｔ、など）、ＳａｆｅＮｅｔ  Ｌｕｎａ  ＰＣＩ（例えば７１００）シリーズ；Ｓｅｍａｐｈｏｒｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ４０ＭＨｚ  Ｒｏａｄｒｕｎｎｅｒ１８４；ｓＭＩＰ（例えば２０８９５６）；Ｓｕｎ  Ｃｒｙｐｔｏｇｒａｐｈｉｃ  Ａｃｃｅｌｅｒａｔｏｒ（例えばＡｃｃｅｌｅｒａｔｏｒ６０００  ＰＣＩｅボード、Ａｃｃｅｌｅｒａｔｏｒ５００  Ｄａｕｇｈｔｅｒｃａｒｄ）；５００＋ＭＢ／ｓの暗号命令を実施できるＶｉａ  Ｎａｎｏ  Ｐｒｏｃｅｓｓｏｒ（例えばＬ２１００、Ｌ２２００、Ｕ２４００）ライン；ＶＬＳＩ  Ｔｅｃｈｎｏｌｏｇｙ  ３３ＭＨｚ  ６８６８；など。
【００６３】
＜メモリ＞
一般に、プロセッサがストレージに影響を及ぼし、および／または情報を取得できるようにするデバイスは、メモリ４２９とみなすことができる。ただしメモリは代替可能な技術およびリソースであり、よって任意個数のメモリを代わりにまたは連携して用いることができる。ＭＲＭコントローラおよび／またはコンピュータシステムは、様々な形態のメモリ４２９を採用できることを理解されたい。例えばコンピュータシステムは、オンチップＣＰＵメモリ（例えばレジスタ）、ＲＡＭ、ＲＯＭ、その他ストレージデバイスが紙パンチテープまたは紙パンチカードによって提供されるように構成することができる。ただしそのような実施形態は、動作レートが非常に遅い。１実施例においてメモリ４２９は、ＲＯＭ４０６、ＲＡＭ４０５、ストレージデバイス４１４を含む。ストレージデバイス４１４は、任意個数のコンピュータストレージデバイス／システムを採用することができる。ストレージデバイスは以下を含む：ドラム；（固定および／またはリムーバブル）磁気ディスクドライブ；光磁気ドライブ；光ドライブ（すなわちＢｌｕｅｒａｙ、ＣＤ  ＲＯＭ／ＲＡＭ／ＲｅｃｏＭＲＭｂｌｅ（登録商標）／ＲｅＷｒｉｔａｂｌｅ（ＲＷ）、ＤＶＤ  Ｒ／ＲＷ、ＨＤ  ＤＶＤ  Ｒ／ＲＷなど）；デバイスアレイ（例えばＲＡＩＤ）；固体メモリデバイス（ＩＳＢメモリ、ｓｏｌｉｄ  ｓｔａｔｅドライブ（ＳＳＤ）など）；その他プロセッサ読取可能記憶媒体；など。よってコンピュータシステムは一般に、メモリを利用する。
【００６４】
＜コンポーネントコレクション＞
メモリ４２９は、プログラムおよび／またはデータベースコンポーネントおよび／またはデータのコレクションを含む。例えば以下を含むがこれに限らない：ＯＳコンポーネント４１５（オペレーティングシステム）；情報サーバコンポーネント４１６（情報サーバ）；ユーザインターフェースコンポーネント４１７（ユーザインターフェース）；Ｗｅｂブラウザコンポーネント４１８（Ｗｅｂブラウザ）；データベース４１９；メールサーバコンポーネント４２１；メールクライアントコンポーネント４２２；暗号サーバコンポーネント４２０（暗号サーバ）；ＭＲＭコンポーネント４３５；など（すなわちまとめてコンポーネントコレクション）。これらコンポーネントは、ストレージデバイスに格納し、ストレージデバイスからアクセスし、および／またはインターフェースバスを介してアクセスできるストレージデバイスからアクセスすることができる。上記コンポーネントコレクションのようなプログラムコンポーネントはローカルストレージデバイス４１４に格納することができるが、メモリに読み出し、および／または格納することもできる。メモリは例えば以下を含む：周辺デバイス、ＲＡＭ、通信ネットワークを介したリモートストレージ、ＲＯＭ、様々なメモリ、など。
【００６５】
＜オペレーティングシステム＞
ＯＳコンポーネント４１５は、実行可能プログラムコンポーネントであり、ＭＲＭコントローラの動作を実施する。オペレーティングシステムは、Ｉ／Ｏ、ネットワークインターフェース、周辺デバイス、ストレージデバイス、などへのアクセスを実施する。オペレーティングシステムは、フォールトトレランスが高くスケーラブルでセキュアなシステムである。例えば以下を含む：Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ  ＯＳ  Ｘ（サーバ）；ＡＴ＆Ｔ  Ｐｌａｎ  ９；Ｂｅ  ＯＳ；ＵｎｉｘおよびＵｎｉｘライクなシステム（例えばＡＴ＆Ｔ  ＵＮＩＸ；Ｂｅｒｋｌｅｙ  Ｓｏｆｔｗａｒｅ  Ｄｉｓｔｒｉｂｕｔｉｏｎ（ＢＳＤ）系列、例えばＦｒｅｅＢＳＤ、ＮｅｔＢＳＤ、ＯｐｅｎＢＳＤなど；Ｌｉｎｕｘディストリビューション、例えばＲｅｄＨａｔ、Ｕｂｕｎｔｕなど）；その他同様のＯＳ。ただしより限定的および／またはセキュリティの低いＯＳを採用することもできる。例えば：Ａｐｐｌｅ Ｍａｃｉｎｔｏｓｈ  ＯＳ、ＩＢＭ  ＯＳ／２、Ｍｉｃｒｏｓｏｆｔ  ＤＯＳ、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ２０００／２００３／３．１／９５／９８／ＣＥ／Ｍｉｌｌｅｎｉｕｍ／ＮＴ／Ｖｉｓｔａ／ＸＰ（サーバ）、ＰａｌｍＯＳ、など。また、モバイルＯＳを採用することもできる。例えば：Ａｐｐｌｅ  ｉＯＳ、Ｇｏｏｇｌｅ  Ａｎｄｒｏｉｄ、Ｈｅｗｌｅｔｔ  Ｐａｃｋａｒｄ  ＷｅｂＯＳ、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  Ｍｏｂｉｌｅ、など。これらＯＳは、ＭＲＭコントローラのハードウェアに組み込み、および／またはメモリ／ストレージに格納／読み出すことができる。ＯＳは、コンポーネントコレクションの他コンポーネントと通信することができる。ＯＳは他プログラムコンポーネント、ユーザインターフェースなどと通信する。例えばＯＳは、プログラムコンポーネント、システム、ユーザ、および／またはデータ通信、リクエスト、および／またはレスポンスを含み、通信し、生成し、取得し、および／または提供する。ＣＰＵがＯＳを実行すると、通信ネットワーク、データ、Ｉ／Ｏ、周辺デバイス、プログラムコンポーネント、メモリ、ユーザ入力デバイスなどとの通信が可能になる。ＯＳは、通信プロトコルを提供する。通信プロトコルにより、ＭＲＭコントローラは通信ネットワーク４１３を介して他構成要素と通信することができる。ＭＲＭコントローラは、サブスクライバ通信メカニズムとして様々な通信プロトコルを使用することができる。例えばマルチキャスト、ＴＣＰ／ＩＰ、ＵＤＰ、ユニキャストなどを含むが、これに限らない。
【００６６】
＜情報サーバ＞
情報サーバコンポーネント４１６は、ＣＰＵが実行するプログラムコンポーネントである。情報サーバは例えばインターネット情報サーバであり、以下を含むがこれに限らない：Ａｐａｃｈｅ  Ｓｏｆｔｗａｒｅ  ＦｏｕｎｄａｔｉｏｎのＡｐａｃｈｅ、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ、など。情報サーバにより、プログラムコンポーネントを実行することができる。例えば以下のような機能を介して実行する：Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅ（ＡＳＰ）、ＡｃｔｉｖｅＸ、 （ＡＮＳＩ）（Ｏｂｊｅｃｔｉｖｅ−）Ｃ（＋＋）、Ｃ＃、および／または．ＮＥＴ、Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ（ＣＧＩ）スクリプト、ｄｙｎａｍｉｃ（Ｄ） ｈｙｐｅｒｔｅｘｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ（ＨＴＭＬ）、ＦＬＡＳＨ、Ｊａｖａ、ＪａｖａＳｃｒｉｐｔ、Ｐｒａｃｔｉｃａｌ  Ｅｘｔｒａｃｔｉｏｎ  Ｒｅｐｏｒｔ  Ｌａｎｇｕａｇｅ（ＰＥＲＬ）、Ｈｙｐｅｒｔｅｘｔ  Ｐｒｅ−Ｐｒｏｃｅｓｓｏｒ（ＰＨＰ）、パイプ、Ｐｙｔｈｏｎ、ｗｉｒｅｌｅｓｓ  ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｔｏｃｏｌ（ＷＡＰ）、ＷｅｂＯｂｊｅｃｔｓ、など。情報サーバは、セキュア通信プロトコルをサポートする。例えば以下を含むがこれに限らない：Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＦＴＰ）；ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＨＴＴＰ）；Ｓｅｃｕｒｅ  Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＨＴＴＰＳ）、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ（ＳＳＬ）、メッセージングプロトコル（例えばＡｍｅｒｉｃａ  Ｏｎｌｉｎｅ（ＡＯＬ）Ｉｎｓｔａｎｔ  Ｍｅｓｓｅｎｇｅｒ（ＡＩＭ）、Ａｐｐｌｅ  ｉＭｅｓｓａｇｅ、Ａｐｐｌｉｃａｔｉｏｎ  Ｅｘｃｈａｎｇｅ（ＡＰＥＸ）、ＩＣＱ、Ｉｎｔｅｒｎｅｔ  Ｒｅｌａｙ  Ｃｈａｔ（ＩＲＣ）、Ｍｉｃｒｏｓｏｆｔ  Ｎｅｔｗｏｒｋ（ＭＳＮ）Ｍｅｓｓｅｎｇｅｒ  Ｓｅｒｖｉｃｅ、Ｐｒｅｓｅｎｃｅ  ａｎｄ  Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  Ｐｒｏｔｏｃｏｌ（ＰＲＩＭ）、Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ（ＩＥＴＦ）Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ（ＳＩＰ）、ＳＩＰ  ｆｏｒ  Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｌｅｖｅｒａｇｉｎｇ  Ｅｘｔｅｎｓｉｏｎｓ（ＳＩＭＰＬＥ）、ｏｐｅｎ  ＸＭＬ−ｂａｓｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｐｒｏｔｏｃｏｌ（ＸＭＰＰ） （すなわち、Ｊａｂｂｅｒ  ｏｒ  Ｏｐｅｎ  Ｍｏｂｉｌｅ  Ａｌｌｉａｎｃｅ（ＯＭＡ）Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｓｅｒｖｉｃｅ（ＩＭＰＳ））、Ｙａｈｏｏ！  Ｉｎｓｔａｎｔ  Ｍｅｓｓｅｎｇｅｒ  Ｓｅｒｖｉｃｅ、など。情報サーバは、Ｗｅｂブラウザに対してＷｅｂページの形態で結果を提供し、他プログラムコンポーネントとのやり取りを通じてＷｅｂページの生成を操作する。ＨＴＴＰリクエストのうちＤｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ  （ＤＮＳ）が解決する部分が情報サーバに対して提供されると、情報サーバはＨＴＴＰリクエストの残部分に基づきＭＲＭコントローラ���の特定場所における情報リクエストを取得する。例えばリクエストｈｔｔｐ：／／１２３．１２４.１２５．１２６／ｍｙＩｎｆｏｒｍａｔｉｏｎ.ｈｔｍｌは、ＤＮＳサーバが解決して情報サーバに対して提供するＩＰ部分“１２３．１２４.１２５．１２６”を有する。情報サーバは次に、ｈｔｔｐリクエストをパースして“／ｍｙＩｎｆｏｒｍａｔｉｏｎ.ｈｔｍｌ”部分を取得し、“ｍｙＩｎｆｏｒｍａｔｉｏｎ.ｈｔｍｌ”を含むメモリ位置を特定する。その他情報提供プロトコルを様々なポートで用いることもできる。例えばポート２１のＦＴＰ通信などである。情報サーバは、コンポーネントコレクションの他コンポーネントと通信する。情報サーバは、ＭＲＭデータベース４１９、ＯＳ、他プログラムコンポーネント、ユーザインターフェース、Ｗｅｂブラウザ、などと通信する。
【００６７】
ＭＲＭデータベースに対するアクセスは、データベースブリッジメカニズムを介して実現することができる。例えば以下に列挙するスクリプト言語（例えばＣＧＩ）や、以下に列挙するアプリケーション間通信チャネル（例えばＣＯＲＢＡ、ＷｅｂＯｂｊｅｃｔｓなど）を用いることができる。Ｗｅｂブラウザを介したデータリクエストは、ブリッジメカニズムを介してパースされ、ＭＲＭが要求する適切な文法に変換される。１実施形態において情報サーバは、Ｗｅｂブラウザがアクセス可能なＷｅｂフォームを提供することができる。Ｗｅｂフォーム上で提供するフィールドに対する入力は、入力した旨をタグ付され、そのようにパースされる。入力された語句はフィールドタグとともに引き渡され、適当なテーブルおよび／またはフィールドへのクエリを生成するようパーサに対して指示する。１実施形態においてパーサは、タグ付けされたテキスト入力に基づき適当なｊｏｉｎ／ｓｅｌｅｃｔコマンドを含む検索文字列を有する標準ＳＱＬクエリを生成する。得られたコマンドは、ブリッジメカニズムを通じてＭＲＭに対してクエリとして提供される。クエリから結果を生成するとき、その結果はブリッジメカニズムを介して引き渡され、ブリッジメカニズムは整形パースして新たな結果Ｗｅｂページを生成する。新たな結果Ｗｅｂページは情報サーバに対して提供され、情報サーバはこれをリクエスト元のＷｅｂブラウザへ提供する。
【００６８】
情報サーバは、プログラムコンポーネント、システム、ユーザ、および／またはデータ通信、リクエスト、および／またはレスポンスを、含み、通信し、生成し、取得し、および／または提供する。
【００６９】
＜ユーザインターフェース＞
コンピュータインターフェースは、自動車操作インターフェースに似ている。ステアリングホイール、ギアシフト、スピードメータなどの自動車操作インターフェース要素は、自動車リソースとステータスに対してアクセスし、操作し、表示する。チェックボックス、カーソル、メニュー、スクローラ、ウィンドウ（まとめてウィジェット）などのコンピュータ操作インターフェース要素も同様に、データ、コンピュータハードウェア、ＯＳリソース、ステータスに対するアクセス、性能、操作、表示を実施する。操作インターフェースは一般にユーザインターフェースと呼ばれる。グラフィカルユーザインターフェース（ＧＵＩ）は、基本機能および情報にアクセスしグラフィカル表示する手段をユーザに対して提供する。ＧＵＩの例は以下である：Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ  ＡｑｕａとｉＯＳ  Ｃｏｃｏａ  Ｔｏｕｃｈ、ＩＢＭ  ＯＳ／２、Ｇｏｏｇｌｅ  Ａｎｄｒｏｉｄ  Ｍｏｂｉｌｅ  ＵＩ、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ２０００／２００３／３．１／９５／９８／ＣＥ／Ｍｉｌｌｅｎｉｕｍ／ Ｍｏｂｉｌｅ／ＮＴ／ＸＰ／Ｖｉｓｔａ／７／８（すなわちＡｅｒｏ、Ｍｅｔｒｏ）、 Ｕｎｉｘ  Ｘ−Ｗｉｎｄｏｗｓ（例えば、以下のようなＵｎｉｘグラフィックインターフェースライブラリを含む：Ｋ  Ｄｅｓｋｔｏｐ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＫＤＥ）、ｍｙｔｈＴＶ、ＧＮＵ  Ｎｅｔｗｏｒｋ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＧＮＯＭＥ））、ｗｅｂインターフェースライブラリ（例えばＡｃｔｉｖｅＸ、ＡＪＡＸ、（Ｄ）ＨＴＭＬ、ＦＬＡＳＨ、Ｊａｖａ、ＪａｖａＳｃｒｉｐｔなど、以下のようなインターフェースライブラリ（ただしこれらに限らない）：Ｄｏｊｏ、ｊＱｕｅｒｙ（ＵＩ）、ＭｏｏＴｏｏｌｓ、Ｐｒｏｔｏｔｙｐｅ、ｓｃｒｉｐｔ．ａｃｕｌｏ．ｕｓ、ＳＷＦＯｂｊｅｃｔ、Ｙａｈｏｏ！  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）。
【００７０】
ユーザインターフェースコンポーネント４１７は、ＣＰＵが実行するプログラムコンポーネントである。ユーザインターフェースは、ＯＳおよび／または上記動作環境が提供し、これらとともに提供され、および／またはこれら上に提供されるグラフィックユーザインターフェースである。ユーザインターフェースは、テキストおよび／またはグラフィカル機能を介して、プログラムコンポーネントおよび／またはシステム機能を表示し、実行し、相互やり取りし、操作し、および／または動作させる。ユーザインターフェースは、ユーザがコンピュータシステムに接触し、やり取りし、および／または操作する機能を提供する。ユーザインターフェースは、コンポーネントコレクションの他コンポーネントと通信する。ユーザインターフェースは、ＯＳ、他プログラムコンポーネント、などと通信する。ユーザインターフェースは、プログラムコンポーネント、システム、ユーザ、および／またはデータ通信、リクエスト、および／またはレスポンスを、含み、通信し、生成し、取得し、および／または提供する。
【００７１】
＜Ｗｅｂブラウザ＞
Ｗｅｂブラウザコンポーネント４１８は、ＣＰＵが実行するプログラムコンポーネントである。Ｗｅｂブラウザは、ハイパーテキストを見るアプリケーションであり、例えば以下のようなものである：Ｇｏｏｇｌｅ  （Ｍｏｂｉｌｅ）Ｃｈｒｏｍｅ、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ｎｅｔｓｃａｐｅ  Ｎａｖｉｇａｔｏｒ、Ａｐｐｌｅ  （Ｍｏｂｉｌｅ）Ｓａｆａｒｉ、Ａｐｐｌｅ  Ｃｏｃｏａ（Ｔｏｕｃｈ）オブジェクトクラスなどの組込ｗｅｂブラウザオブジェクト、など。１２８ビット（またはそれ以上）暗号をＨＴＴＰＳ、ＳＳＬなどにより提供し、セキュアＷｅｂブラウズを実施することができる。Ｗｅｂブラウザは、以下のような機能を介してプログラムコンポーネントを実行する：ＡｃｔｉｖｅＸ、ＡＪＡＸ、（Ｄ）ＨＴＭＬ、ＦＬＡＳＨ、Ｊａｖａ、ＪａｖａＳｃｒｉｐｔ、ｗｅｂブラウザプラグインＡＰＩ（例えばＣｈｒｏｍｅ、ＦｉｒｅＦｏｘ、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ｓａｆａｒｉ  Ｐｌｕｇ−ｉｎ、などのＡＰＩ）、など。Ｗｅｂブラウザおよび同様の情報アクセスツールは、ＰＤＡ、携帯電話、スマートフォン、および／またはモバイルデバイスに統合することができる。Ｗｅｂブラウザは、コンポーネントコレクションの他コンポーネントと通信することができる。Ｗｅｂブラウザは、情報サーバ、ＯＳ、統合プログラムコンポーネント（例えばプラグイン）などと通信する。Ｗｅｂブラウザは、プログラムコンポーネント、システム、ユーザ、および／またはデータ通信、リクエスト、および／またはレスポンスを、含み、通信し、生成し、取得し、および／または提供する。Ｗｅｂブラウザと情報サーバに代えて、組み合わせアプリケーションを開発し、これら双方と同様の動作を実施することもできる。組み合わせアプリケーションは同様に、ＭＲＭ実装ノードからユーザやユーザエージェントに対して情報取得または提供を実施する。組み合わせアプリケーションは、標準Ｗｅｂブラウザを採用したシステムにとっては無用である。
【００７２】
＜メールサーバ＞
メールサーバコンポーネント４２１は、ＣＰＵ４０３が実行するプログラムコンポーネントである。メールサーバは、以下のようなインターネットメールサーバであるが、これらに限らない：Ａｐｐｌｅ  Ｍａｉｌ  Ｓｅｒｖｅｒ（３）、ｄｏｖｅｃｏｔ、ｓｅｎｄｍａｉｌ、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ、など。メールサーバにより、以下のような機能を介してプログラムコンポーネントを実行することができる：ＡＳＰ、ＡｃｔｉｖｅＸ、（ＡＮＳＩ）（Ｏｂｊｅｃｔｉｖｅ−）Ｃ（＋＋）、Ｃ＃、および／または．ＮＥＴ、ＣＧＩスクリプト、Ｊａｖａ、ＪａｖａＳｃｒｉｐｔ、ＰＥＲＬ、ＰＨＰ、パイプ、Ｐｙｔｈｏｎ、ＷｅｂＯｂｊｅｃｔｓ、など。メールサーバは、以下のような通信プロトコルをサポートするが、これらに限らない：Ｉｎｔｅｒｎｅｔ  ｍｅｓｓａｇｅ  ａｃｃｅｓｓ  ｐｒｏｔｏｃｏｌ（ＩＭＡＰ）、Ｍｅｓｓａｇｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ（ＭＡＰＩ）／Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ、ｐｏｓｔ  ｏｆｆｉｃｅ  ｐｒｏｔｏｃｏｌ（ＰＯＰ３）、ｓｉｍｐｌｅ  ｍａｉｌ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ（ＳＭＴＰ）、など。メールサーバは、ＭＲＭに対して送信され、リレーされ、および／または通過する発着メールメッセージをルーティングし、転送し、処理する。
【００７３】
ＭＲＭメールへのアクセスは、個々のＷｅｂサーバコンポーネントおよび／またはＯＳが提供するＡＰＩを通じて実現できる。
【００７４】
メールサーバは、プログラムコンポーネント、システム、ユーザ、および／またはデータ通信、リクエスト、および／またはレスポンスを、含み、通信し、生成し、取得し、および／または提供する。
【００７５】
＜メールクライアント＞
メールクライアントコンポーネント４２２は、ＣＰＵ４０３が実行するプログラムコンポーネントである。メールクライアントは、以下のようなメールを見るアプリケーションである：Ａｐｐｌｅ（Ｍｏｂｉｌｅ）Ｍａｉｌ、Ｍｉｃｒｏｓｏｆｔ  Ｅｎｔｏｕｒａｇｅ、Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ、Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ  Ｅｘｐｒｅｓｓ、Ｍｏｚｉｌｌａ、Ｔｈｕｎｄｅｒｂｉｒｄ、など。メールクライアントは、以下のような通信プロトコルをサポートする：ＩＭＡＰ、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ、ＰＯＰ３、ＳＭＴＰ、など。メールクライアントは、コンポーネントコレクションの他コンポーネントと通信することができる。メールクライアントは、メールサーバ、ＯＳ、他メールクライアントなどと通信する。メールクライアントは、プログラムコンポーネント、システム、ユーザ、および／またはデータ通信、リクエスト、および／またはレスポンスを、含み、通信し、生成し、取得し、および／または提供する。一般にメールクライアントは、電子メールメッセージを編集し送信する機能を提供する。
【００７６】
＜暗号サーバ＞
暗号サーバコンポーネント４２０は、ＣＰＵ４０３、暗号プロセッサ４２６、暗号プロセッサインターフェース４２７、暗号プロセッサデバイス４２８などが実行するプログラムコンポーネントである。暗号プロセッサインターフェースにより、暗号コンポーネントは暗号および／または復号リクエストを実行する。ただし暗号コンポーネントはこれに代えて、ＣＰＵ上で動作することもできる。暗号コンポーネントにより、提供されたデータを暗号化しおよび／または復号化する。暗号コンポーネントにより、対称／非対称（例えばＰｒｅｔｔｙ  Ｇｏｏｄ  Ｐｒｏｔｅｃｔｉｏｎ（ＰＧＰ））暗号および／または復号を実施することができる。暗号コンポーネントは、以下のような暗号技術を採用できるが、これらに限らない：デジタル証明書（例えばＸ．５０９認証フレームワーク）、デジタル署名、デュアル署名、ｅｎｖｅｌｏｐｉｎｇ、パスワードアクセス保護、公開鍵管理、など。暗号コンポーネントにより、以下のようなセキュリティプロトコル（暗号化および／または復号化）を実施することができるが、これらに限らない：ｃｈｅｃｋｓｕｍ、Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＤＥＳ）、Ｅｌｌｉｐｔｉｃａｌ  Ｃｕｒｖｅ  Ｅｎｃｒｙｐｔｉｏｎ（ＥＣＣ）、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ（ＩＤＥＡ）、Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５（ＭＤ５、１方向ハッシュ）、パスワード、Ｒｉｖｅｓｔ  Ｃｉｐｈｅｒ（ＲＣ５）、Ｒｉｊｎｄａｅｌ、ＲＳＡ（１９６６年にＲｏｎ  Ｒｉｖｅｓｔ、Ａｄｉ  Ｓｈａｍｉｒ、Ｌｅｏｎａｒｄ  Ａｄｌｅｍａｎが開発したアルゴリズムを用いるインターネット暗号および認証システム）、Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ（ＳＨＡ）、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ（ＳＳＬ）、Ｓｅｃｕｒｅ  Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＨＴＴＰＳ）、など。これら暗号セキュリティプロトコルを用いて、ＭＲＭは全ての発着通信を暗号化し、より広い通信ネットワークを有する仮想プライベートネットワーク（ＶＰＮ）内のノードとして動作する。暗号コンポーネントは、“セキュリティ認証”プロセスを実施し、ソースに対するアクセスはセキュリティプロトコルによって禁止される。暗号コンポーネントは、セキュアリソースに対するアクセス認証を実施する。また暗号コンポーネントは、コンテンツのユニークＩＤを提供する。例えばＭＤ５ハッシュを採用してデジタルオーディオファイルのユニークＩＤを取得する。暗号コンポーネントは、ンポーネントコレクションの他コンポーネントと通信することができる。暗号コンポーネントは、通信ネットワーク上で情報を安全に送信する暗号方式をサポートし、ＭＲＭコンポーネントはこれによりセキュア通信を実施できる。暗号コンポーネントは、ＭＲＭ上のリソースに対するセキュアアクセスを実現し、リモートシステム上のリソースに対するセキュアアクセスを実現する。すなわち、セキュアリソースのクライアントおよび／またはサーバとして動作する。暗号コンポーネントは、情報サーバ、ＯＳ，他プログラムコンポーネントなどと通信する。暗号コンポーネントは、プログラムコンポーネント���システム、ユーザ、および／またはデータ通信、リクエスト、および／またはレスポンスを、含み、通信し、生成し、取得し、および／または提供する。
【００７７】
＜ＭＲＭデータベース＞
ＭＲＭデータベースコンポーネント４１９は、データベースとそのデータ内に実装することができる。データベースはプログラムコンポーネントであり、ＣＰＵが実行する。プログラムコンポーネントは、格納されているデータをＣＰＵに処理させる。データベースは、任意個数のフォールトトレラント、関係、スケーラブル、セキュアデータベースであり、例えばＤＢ２、ＭｙＳＱＬ、Ｏｒａｃｌｅ、Ｓｙｂａｓｅなどである。関係データベースは、フラットファイルの拡張である。関係データベースは、関係テーブルによって構成される。テーブルは、キーフィールドによって相互接続される。キーフィールドを用いて、キーフィールドに対してインデックスすることにより、テーブルを組み合わせることができる。キーフィールドは、複数のテーブルからの情報を組み合わせる次元ピボットポイントとして動作する。関係は一般に、プライマリキーをマッチングすることにより、テーブル間で維持されたリンクを識別する。プライマリキーは、関係データベース内のテーブルの行を一意に識別するフィールドを表す。より正確には、プライマリキーは１：多関係における“一方の”テーブルの行を一意に識別する。
【００７８】
これに代えてＭＲＭデータベースは、様々な標準データ構造を用いて実装することができる。例えば、アレイ、ハッシュ（リンク）リスト、構造、構造化テキストファイル（例えばＸＭＬ）、テーブル、などである。このデータ構造は、メモリおよび／または（構造化）ファイルに格納することができる。他実施例において、オブジェクト指向データベースを用いることもできる。例えばＦｒｏｎｔｉｅｒ、ＯｂｊｅｃｔＳｔｏｒｅ、Ｐｏｅｔ、Ｚｏｐｅなどである。オブジェクトデータベースは、共通属性によりグループ化されおよび／またはリンクされたオブジェクトコレクションを含む。オブジェクトコレクションは、共通属性により他オブジェクトコレクションに関連付けることができる。オブジェクト指向データベースは、関係データベースと同様に動作する。ただし、オブジェクトは単なるデータではなくそのオブジェクトにカプセル化された機能タイプを有する点を除く。ＭＲＭデータベースがデータ構造として実装されている場合、ＭＲＭデータベース４１９をＭＲＭコンポーネント４３５などの他コンポーネントと統合して用いることができる。またデータベースは、データ構造、オブジェクト、関係構造の組み合わせとして実装することができる。データベースは、標準データ処理技術を通じて様々なバリエーションで統合しおよび／または分散させることができる。データベースの一部（例えばテーブル）は、エクスポートおよび／またはインポートすることができ、よって分割および／または統合することができる。
【００７９】
１実施形態において、データベースコンポーネント４１９は、複数のテーブル４１９ａ−ｅを含む。ユーザテーブル４１９ａは、以下のようなフィールドを含むが、これらに限らない：ｕｓｅｒ＿ｉｄ、ｓｓｎ、ｄｏｂ、ｆｉｒｓｔ＿ｎａｍｅ、ｌａｓｔ＿ｎａｍｅ、ａｇｅ、ｓｔａｔｅ、ａｄｄｒｅｓｓ＿ｆｉｒｓｔｌｉｎｅ、ａｄｄｒｅｓｓ＿ｓｅｃｏｎｄｌｉｎｅ、ｚｉｐｃｏｄｅ、ｄｅｖｉｃｅｓ＿ｌｉｓｔ、ｃｏｎｔａｃｔ＿ｉｎｆｏ、ｃｏｎｔａｃｔ＿ｔｙｐｅ、ａｌｔ＿ｃｏｎｔａｃｔ＿ｉｎｆｏ、ａｌｔ＿ｃｏｎｔａｃｔ＿ｔｙｐｅ、など。ユーザテーブルは、ＭＲＭ上の複数要素のアカウントをサポートおよび／またはトラッキングする。クライアントテーブル４１９ｂは、以下のようなフィールドを含むが、これに限らない：ｄｅｖｉｃｅ＿ＩＤ、ｄｅｖｉｃｅ＿ｎａｍｅ、ｄｅｖｉｃｅ＿ＩＰ、ｄｅｖｉｃｅ＿ＭＡＣ、ｄｅｖｉｃｅ＿ｔｙｐｅ、ｄｅｖｉｃｅ＿ｍｏｄｅｌ、ｄｅｖｉｃｅ＿ｖｅｒｓｉｏｎ、ｄｅｖｉｃｅ＿ＯＳ、ｄｅｖｉｃｅ＿ａｐｐｓ＿ｌｉｓｔ、ｄｅｖｉｃｅ＿ｓｅｃｕｒｅｋｅｙ、など。アプリケーションテーブル４１９ｃは、以下のようなフィールドを含むが、これに限らない：ａｐｐｌｉｃａｔｉｏｎ＿ＩＤ、ａｐｐｌｉｃａｔｉｏｎ＿ｎａｍｅ、ａｐｐｌｉｃａｔｉｏｎ＿ｔｙｐｅ、ａｐｐｌｉｃａｔｉｏｎ＿ｂａｃｋｕｐ＿ｌｉｓｔ、ａｐｐｌｉｃａｔｉｏｎ＿ｓｙｎｃ、など。メッセージテーブル４１９ｄは、以下のようなフィールドを含むが、これに限らない：ｍｓｇ＿ｉｄ、ｍｓｇ＿ａｐｐｌｉｃａｔｉｏｎ、ｔｉｍｅｓｔａｍｐ、ｍｓｇ＿ｄｅｔａｉｌｓ＿ｌｉｓｔ、ｍｅｓｓａｇｅ＿ｓｉｚｅ、ｍｅｓｓａｇｅ＿ｏｒｉｇｉｎ、ｍｓｇ＿ｊｏｕｒｎａｌ、ｍｓｇ＿ｒｅａｄ＿ｄｅｔａｉｌ、など。ジャーナルテーブル４１９ｅは、以下のようなフィールドを含むが、これに限らない：ｊｏｕｒｎａｌ＿ＩＤ、ｊｏｕｒｎａｌ＿ｔｉｍｅｓｔａｍｐ、ｍｓｇ＿ｓｏｕｒｃｅ、ｊｏｕｒｎａｌ＿ａｃｃｅｓｓ＿ａｐｐｓ、ｓｅｇｍｅｎｔｅｄ＿ｍｓｇ＿ｌｉｓｔ、など。
【００８０】
１実施形態において、ＭＲＭデータベースは他データベースシステムと通信する。例えばＭＲＭコンポーネントが分散データベース、クエリ、データアクセスを採用すると、ＭＲＭデータベースの組み合わせを単一データベースの統合データセキュリティレイヤとして取り扱うことができる。
【００８１】
１実施形態において、ユーザプログラムは様々なユーザインターフェースを含むことができる。これらはＭＲＭを更新することができる。またアカウントは、環境やＭＲＭがサービスを提供する必要があるクライアントタイプに応じて、カスタムデータベーステーブルを必要とする場合がある。ユニークフィールドは、キーフィールドとして指定することができる。代替実施形態において、これらテーブルは自身のデータベースおよびデータベースコントローラ（すなわち各テーブルのデータベースコントローラ）に分離することができる。標準データ処理技術を用いて、いずれかをさらに複数のコンピュータシステムおよび／またはストレージデバイスに分散することができる。同様に分散データベースコントローラの構成は、データベースコンポーネント４１９ａ−ｅを統合しおよび／または分散させることにより、変更することができる。ＭＲＭは、データベースコントローラを介して、様々な設定、入力、パラメータをトラッキングするように構成することができる。
【００８２】
ＭＲＭデータベースは、コンポーネントコレクションの他コンポーネントと通信することができる。ＭＲＭデータベースは、ＭＲＭコンポーネント、他プログラムコンポーネント、などと通信することができる。データベースは、他ノードおよびデータに関する情報を含み、保持し、提供することができる。
【００８３】
＜ＭＲＭ＞
ＭＲＭコンポーネント４３５は、ＣＰＵが実行するプログラムコンポーネントである。１実施形態において、ＭＲＭコンポーネントは先の図面で説明したＭＲＭ機能の任意および／または全組み合わせを備えることができる。ＭＲＭは通信ネットワークを介して、情報、サービス、トランザクションにアクセスし、取得し、提供することができる。
【００８４】
ＭＲＭコンポーネントは、ＭＲＭコンポーネントを介して変換し、ＭＲＭを用いる。１実施形態においてＭＲＭコンポーネント４３５は、入力を受け取り（例えば完全メッセージジャーナル２０１と３０１など）、ＭＲＭコンポーネントを介してその入力を出力へ変換する（例えば完全メッセージジャーナルのコピー２０２〜２０４；完全メッセージのセグメントを含むジャーナル３０２〜３０４、など）。
【００８５】
ノード間の情報アクセスを可能にするＭＲＭコンポーネントは、標準開発ツールおよび言語により開発することができる。例えば以下を含むがこれらに限らない：Ａｐａｃｈｅコンポーネント、アセンブリ、ＡｃｔｉｖｅＸ、バイナリ実行ファイル、（ＡＮＳＩ）（Ｏｂｊｅｃｔｉｖｅ−）Ｃ（＋＋），Ｃ＃、および／または．ＮＥＴ、データベースアダプタ、ＣＧＩスクリプト、Ｊａｖａ，ＪａｖａＳｃｒｉｐｔ、マッピングツール、手続型およびオブジェクト指向開発ツール、ＰＥＲＬ，ＰＨＰ，Ｐｙｔｈｏｎ、シェルスクリプト、ＳＱＬコマンド、ｗｅｂアプリケーションサーバ拡張、ｗｅｂ開発環境およびライブラリ（例えばＭｉｃｒｏｓｏｆｔ  ＡｃｔｉｖｅＸ、Ａｄｏｂｅ  ＡＩＲ、ＦＬＥＸ＆ＦＬＡＳＨ；ＡＪＡＸ；（Ｄ）ＨＴＭＬ；Ｄｏｊｏ、Ｊａｖａ；ＪａｖａＳｃｒｉｐｔ；ｊＱｕｅｒｙ（ＵＩ）；ＭｏｏＴｏｏｌｓ；Ｐｒｏｔｏｔｙｐｅ；ｓｃｒｉｐｔ．ａｃｕｌｏ．ｕｓ；Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）；ＳＷＦＯｂｊｅｃｔ；Ｙａｈｏｏ！  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ；など）、ＷｅｂＯｂｊｅｃｔｓ、など。１実施形態において、ＭＲＭサーバは暗号サーバを採用し、通信を暗号化および復号化する。ＭＲＭコンポーネントは、コンポーネントコレクションの他コンポーネントなどと通信する。ＭＲＭコンポーネントは、ＭＲＭデータベース、ＯＳ、他プログラムコンポーネント、などと通信する。ＭＲＭは、プログラムコンポーネント、システム、ユーザ、および／またはデータ通信、リクエスト、および／またはレスポンスを含み、通信し、生成し、取得し、および／または提供する。
【００８６】
＜分散ＭＲＭ＞
ＭＲＭノードコントローラコンポーネントの構造および／または動作は、任意の方法で組み合わせ、連結し、および／または分散させて、開発および／または配置を進めることができる。同様にコンポーネントコレクションは、任意の方法で組み合わせて、配置および／または開発を進めることができる。これを実現するため、コンポーネントを共通コードベースに統合し、またはオンデマンドでコンポーネントを動的に読みだして統合することができる。
【００８７】
コンポーネントコレクションは、標準データ処理および／または開発技術を介して、様々な態様で統合しおよび／または分散させることができる。プログラムコンポーネントコレクション内のプログラムコンポーネントの複数のインスタンスは、単一ノード上および／または複数ノードにまたがってインスタンス化し、ロードバランスおよび／またはデータ処理技術を通じてパフォーマンスを向上させることができる。さらに単一インスタンスを複数コントローラおよび／またはストレージデバイス（例えばデータベース）に分散させることができる。全てのプログラムコンポーネントインスタンスおよび連動するコントローラは、標準データ処理通信技術を介してこれを実施できる。
【００８８】
ＭＲＭコントローラの構成は、システム配置に依拠する。予算、性能、位置、および／またはハードウェアリソースなどの要因は、配置要件と構成に影響する。構成が（ｉ）より統合されおよび／または統合プログラムコンポーネントになるか否かによらず、（ｉｉ）より分散したプログラムコンポーネントになるか否かによらず、および／または（ｉｉｉ）統合コンポーネントと分散コンポーネントの組み合わせになるか否かによらず、データを通信し、取得し、および／または提供することができる。プログラムコンポーネントコレクションから共通コードベースへ統合したコンポーネントのインスタンスは、データを通信し、取得し、および／または提供することができる。これはアプリケーション内データ処理通信技術を通じて実現できる。例えば以下のようなものであるが、これに限らない：データ参照（例えばポインタ）、内部メッセージング、オブジェクトインスタンス変数通信、共有メモリ空間、変数引き渡し、など。
【００８９】
コンポーネントコレクションコンポーネントが離散し、分割され、および／または互いに外部コンポーネントである場合、他コンポーネントに対するデータ通信、取得、および／または提供は、アプリケーション間データ処理通信技術を介して実現できる。例えば以下を含むがこれに限らない：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ（ＡＰＩ）情報引き渡し；（Ｄｉｓｔｒｉｂｕｔｅｄ）Ｃｏｍｐｏｎｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ（（Ｄ）ＣＯＭ）、（Ｄｉｓｔｒｉｂｕｔｅｄ）Ｏｂｊｅｃｔ  Ｌｉｎｋｉｎｇ  ａｎｄ  Ｅｍｂｅｄｄｉｎｇ（（Ｄ）ＯＬＥ）、など）、Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＣＯＲＢＡ）、Ｊｉｎｉ  ｌｏｃａｌ  ａｎｄ  ｒｅｍｏｔｅ  ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅ、ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）、Ｒｅｍｏｔｅ  Ｍｅｔｈｏｄ  Ｉｎｖｏｃａｔｉｏｎ（ＲＭＩ）、ＳＯＡＰ、プロセスパイプ、共有ファイル、など。アプリケーション間通信または単一コンポーネントのメモリ空間内でアプリケーション間通信として分離コンポーネント間で送信されたメッセージは、文法を生成しパースすることにより実施される。文法は、ｌｅｘ、ｙａｃｃ、ＸＭＬなどの開発ツールを用いて開発できる。これにより、文法生成とパース機能を実現し、コンポーネント間の通信メッセージの基盤を形成することができる。
【００９０】
例えば文法は、以下のようなＨＴＴＰ  ｐｏｓｔコマンドのトークンを認識するように、構成することができる：
ｗ３ｃ  −ｐｏｓｔ  ｈｔｔｐ：／／．．．Ｖａｌｕｅ１
【００９１】
Ｖａｌｕｅ１はパラメータとして認識される。“ｈｔｔｐ：／／”は文法シンタックスの一部であり、その後はｐｏｓｔ値とみなすことができるからである。同様にこの文法において、変数“Ｖａｌｕｅ１”を“ｈｔｔｐ：／／”ｐｏｓｔコマンドに挿入して送信することができる。文法シンタックスそのものは、構造化データとして提示することができる。この構造化データを解釈および／または用いて、パースメカニズムを生成することができる（例えばｌｅｘ、ｙａｃｃなどが処理するシンタックス記述テキストファイル）。パースメカニズムを生成および／またはインスタンス化すると、パースメカニズムは構造化データを処理し、および／またはパースする。構造化データは例えば以下のようなものであり、これらに限らない：文字（例えばタブ）区切りテキスト、ＨＴＭＬ、構造化テキストストリーム、ＸＭＬ、など。別実施形態において、アプリケーション間処理プロトコル自身が、統合されたおよび／または容易に利用できるパーサ（例えばＪＳＯＮ，ＳＯＡＰなどのパーサ）を備え、これらを用いてデータをパース（例えば通信）できる。さらにパース文法は、メッセージパースに用いることもできるし、以下のようなもののパースに用いることもできる：データベース、データコレクション、データストア、構造化データ、など。所望する構成は、コンテキスト、環境、システム配置要件に依拠する。
【００９２】
例えば実施例において、ＭＲＭコントローラはＰＨＰスクリプトを実行する。ＰＨＰスクリプトは、情報サーバを通じてＳｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ（ＳＳＬ）ソケットサーバを実装する。情報サーバは、クライアントがデータを送信するサーバポート上で到着する通信を待ち受ける。フォーマットは例えばＪＳＯＮ形式である。到着した通信を識別すると、ＰＨＰスクリプトはクライアントデバイスから到着メッセージを読み取り、ＪＳＯＮエンコードされたテキストデータをパースし、ＪＳＯＮエンコードされたテキストデータから情報を抽出してＰＨＰスクリプト変数に格納し、そのデータ（例えばクライアント識別情報など）を保存、および／または抽出された情報は関係データベースに格納されＳｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ（ＳＱＬ）を用いてアクセスできる。ＰＨＰ／ＳＱＬコマンドの形式で記述され、ＪＳＯＮエンコード入力データをクライアントデバイスからＳＳＬ経由で受け取り、そのデータを抽出して変数に格納し、データベースに格納するプログラムリストを、以下に示す：
【数１】
0006523319.tif 000002
【００９３】
以下のリソースを用いて、ＳＯＡＰパーサに関する実施形態を提供することができる：
ｈｔｔｐ：／／ｗｗｗ．ｘａｖ．ｃｏｍ／ｐｅｒｌ／ｓｉｔｅ／ｌｉｂ／ＳＯＡＰ／Ｐａｒｓｅｒ．ｈｔｍｌ
ｈｔｔｐ：／／ｐｕｂｌｉｂ．ｂｏｕｌｄｅｒ．ｉｂｍ．ｃｏｍ／ｉｎｆｏｃｅｎｔｅｒ／ｔｉｖｉｈｅｌｐ／ｖ２ｒ１／ｉｎｄｅｘ．ｊｓｐ？ｔｏｐｉｃ＝／ｃｏｍ．ｉｂｍ．ＩＢＭＤＩ．ｄｏｃ／ｒｅｆｅｒｅｎｃｅｇｕｉｄｅ２９５．ｈｔｍ
【００９４】
他のパーサ実施例は以下である：
ｈｔｔｐ：／／ｐｕｂｌｉｂ．ｂｏｕｌｄｅｒ．ｉｂｍ．ｃｏｍ／ｉｎｆｏｃｅｎｔｅｒ／ｔｉｖｉｈｅｌｐ／ｖ２ｒ１／ｉｎｄｅｘ．ｊｓｐ？ｔｏｐｉｃ＝／ｃｏｍ．ｉｂｍ．ＩＢＭＤＩ．ｄｏｃ／ｒｅｆｅｒｅｎｃｅｇｕｉｄｅ２５９．ｈｔｍ
【００９５】
これら全ては、参照により本願に組み込まれる。
【００９６】
様々な課題を解決し技術を進めるため、本願（カバーページ、タイトル、ヘッダ、フィールド、背景技術、概要、図面の簡単な説明、発明を実施するための形態、特許請求の範囲、要約、図面、付録、など）は、特許請求する発明を実施する様々な形態を説明するためのものである。本願の利点および機能は、実施形態の代表例のみを示しており、それ以外を排除するものではない。これらは特許請求範囲の原理の理解を促し教示するためのみのものである。これらは特許請求する発明の全てを表しているものではないことを理解されたい。よって本発明の一部は本明細書には記載されていない。本発明の特定部分の代替実施形態は記載していない場合もあり、その代替実施形態は特許請求範囲から除外されたものと解釈すべきではない。それら実施形態は本発明と同じ原理を備え、等価なものである。よって、その他実施形態を利用でき、本発明の範囲および／または原理から逸脱することなく機能的、論理的、動作的、組織的、構造的、および／またはトポロジー的変更が可能であることを理解されたい。全ての実施例および／または実施形態は、本明細書全体を通じて非限定的なものである。記載していない実施形態は、スペースと繰り返しを避けるため以外のものとしてみなすべきではない。例えば、図面などに記載したデータフローシーケンス、プログラムコンポーネント（コンポーネントコレクション）、他コンポーネント、および／または機能セットの組み合わせの論理および／またはトポロジー構造は、固定された動作順序および／または配置に限定されるものではない。むしろ説明した順序は例示であり、等価で順序に関係しないものも本開示に含まれると解釈すべきである。さらに、これら機能は順次実行のみに限定されるものではなく、非同期、一斉、平行、同時、同期、などで実行する任意個数のスレッド、プロセス、プロセッサ、サービス、サーバ、なども本開示の範囲内であることを理解されたい。単一実施形態において同時に存在できない場合、これら機能は相互矛盾することもある。同様に機能のなかには、本発明の１側面に対して適用できるものもあり、他側面に対して適用できないものもある。また本開示は、特許請求していない他の発明を含む場合がある。出願人は、それら特許請求していない発明の全権利を留保する。これは、その発明を特許請求し、別出願し、継続出願し、一部継続出願し、および／または分割出願する権利を含む。本発明の利点、実施形態、実施例、機能、特徴、論理、動作、組織、構造、トポロジーに関する側面は、特許請求範囲が定義する本発明の限定、または特許請求範囲の等価物に対する限定とみなすべきではないことを理解されたい。ＭＲＭのニーズおよび／または特徴に応じて、個人および／または企業ユーザ、データベース構成および／または関係モデル、データタイプ、データ通信および／またはネットワークフレームワーク、シンタックス構造、すなわちＭＲＭの実施形態は、柔軟にカスタマイズ実装できることを理解されたい。例えばＭＲＭの側面は、データネットワーク帯域幅管理に合わせることができる。ＭＲＭの様々な実施形態は電子取引プラットフォームに関するものであるが、本実施形態はさまざまな他のオークションベースシステム、アプリケーション、および／または実装のために容易に構成および／またはカスタマイズできることを理解されたい。
【図１】
0006523319.tif 000003
【図１Ａ】
0006523319.tif 000004
【図２】
0006523319.tif 000005
【図３】
0006523319.tif 000006
【図４】
0006523319.tif 000007