JP2009545788A - フェイルオーバシステムおよび方法 - Google Patents

フェイルオーバシステムおよび方法 Download PDF

Info

Publication number
JP2009545788A
JP2009545788A JP2009522059A JP2009522059A JP2009545788A JP 2009545788 A JP2009545788 A JP 2009545788A JP 2009522059 A JP2009522059 A JP 2009522059A JP 2009522059 A JP2009522059 A JP 2009522059A JP 2009545788 A JP2009545788 A JP 2009545788A
Authority
JP
Japan
Prior art keywords
server
service
servers
message
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009522059A
Other languages
English (en)
Other versions
JP5355400B2 (ja
Inventor
モロサン,トゥドル
アレン,グレゴリー,エイ.
パブレンコ,ヴィクター
ラム,ベンソン,ゼ−キット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TSX Inc
Original Assignee
TSX Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TSX Inc filed Critical TSX Inc
Publication of JP2009545788A publication Critical patent/JP2009545788A/ja
Application granted granted Critical
Publication of JP5355400B2 publication Critical patent/JP5355400B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage

Abstract

本発明に係る1つの形態は、少なくとも1つのクライアントを備えるフェイルオーバのためのシステムであって、当該システムにおける当該クライアントが、ネットワーク接続を介して相互接続された少なくとも2つのサーバのうちの1つに選択的に接続可能であるシステムを提供する。通常状態において、クライアントに接続されるときにはサーバのうちの1つが一次サーバに指定され、クライアントに接続されないときには残りのサーバがバックアップサーバに指定される。少なくとも1つのクライアントが、一次サーバにメッセージを送信するように構成されている。サーバは、サーバの各々において同一である少なくとも1つのサービスを用いてメッセージを処理するように構成されている。サービスは、個々のサービスに関するサーバが一次サーバかバックアップサーバのいずれで動作しているか認識しない。サーバは、サービスが一次サーバであるか、または、サービスがバックアップサーバであるかを示すライブラリなどを維持するようにさらに構成されている。各サーバ内部にあるサービスが、その個々のライブラリを介して外部呼び出しを行う。一次サーバにおけるライブラリは、外部呼び出しを完了させて一次サーバにおけるサービスに外部呼び出しの結果を戻すように、かつ、バックアップサーバにおけるサービスに対して外部呼び出しの結果を提出するように構成されている。二次サーバにおけるライブラリは、外部呼び出しを行わず、単に、二次サーバにおけるサービスから要求されたときに、二次サーバにおけるサービスに、一次サーバから受信した通りに外部呼び出しの結果を提出する。

Description

本発明は、コンピュータおよびネットワークアーキテクチャに関する。より具体的には、フェイルオーバシステムおよび方法に関する。
相互交流やビジネスを行う上で、社会はコンピュータおよびネットワークにますます依存している。重要なシステムにおいて求められる高レベルの可用性を確保するために、ソフトウエアおよびハードウエアの欠陥によって起こる不測のダウンタイムを最小限に抑える必要がある。
金融サービス産業は、高可用性を有するシステムを必要とする産業の一例である。実際、今日の金融産業における多くのデータ処理活動がコンピュータシステムに支えられている。特に興味深いのは、いわゆるリアルタイムおよびニアリアルタイムオンライントランザクション処理(OLTP)のアプリケーションであり、それらは通常、多数のビジネス取引を長期間にわたって高速かつ低遅延で行う。これらのアプリケーションは、概して下記の特徴を示す:(1)高度かつ高速のデータ処理(2)信頼性の高い不揮発性データ記憶(3)高レベルの可用性、すなわち、実質的に継続可能な基本原理に基づいてサービスを支える能力。しかし、実行する場合、下記に概要を詳述するように、システム動作に与える相反する影響のため、3つの特徴全てを同時に完全に満たすことができる設計は存在しない。
第一に、高度なデータ処理とは、タイムリーな方法で、多数のコンピュータ処理、データベース検索/アップデートなどを実行する能力のことを指す。並列処理を介して上記処理が実施され、同様の物理的機械または分散型ネットワーク上で同時に作業の統括ユニット(multiple unit of work)が実行される。あるシステムにおいて、各トランザクションの結果は既に完了したトランザクションの結果によって決まる。そのようなシステム並行の形態は、本質的に非決定性を有する。すなわち、乱調状態、オペレーティングシステムのスケジュールタスク、または可変ネットワーク遅延(variable network delay)が原因で、メッセージのシーケンスおよびスレッド実行(thread execution)が予測できず、単に複製システムに入力メッセージのコピーを送信するだけでは、それらを並列処理することができない。非決定性のシステムは非同一性のアウトプットを有するので、障害が起きた場合に代替物と代えようとしても、2つの異なるコンピュータ機器上で並列にそれらを動作させることができない。
第二に、信頼性の高い不揮発性データ記憶とは、多数のシステムのソフトウエアまたはハードウエア機器が不測の障害に晒された場合であっても、処理済みのデータを持続して保存できる能力のことを指す。共有データにアクセスするか、または変更するときに、アトミック性(Atomic)、一貫性(Consistent)、独立性(Isolated)、および永続性(Durable)(”ACID”)トランザクションを使用することによって、通常、上記処理を実施することができる。作業単位が完了すると、ACIDトランザクションがデータ保全とデータ持続性とを直ちに確保することができる。コミットメントされた全ACIDを非揮発性コンピュータメモリ(ハードディスク)に書き込み、それによってデータ持続性が確保される。しかし、パフォーマンスの点と一般に全システムを減速させる点とを鑑みると、上記は非常にコストがかかる。
第三に、高可用性のシステムとは、既定のコンピュータシステムにおける可用性率を時間あたり100%に可能な限り近づけることを確実にすることを目的とする。冗長ソフトウエアおよび/またはハードウエアを介してそのような可用性が実施可能であり、それらのソフトウエアまたはハードウエアが、機器障害が検出された場合に機能性を引き継ぐ。引き継ぐために、ファイルオーバがデータだけでなく処理状態をも複製する。当業者であればわかるように、非決定性システム(すなわち、同じ一連のイベントのコンピュータ処理が、それらのイベントの処理順序に従って1つ以上の結果を有し得るシステム)において、状態の複製は特に困難な問題をはらんでいる。
高可用性のソフトウエアアプリケーションは冗長環境上に配備されることが多く、基盤となるハードウエアと共通する障害の一点を低減、および/または、除去する。2つの一般的なアプローチとしては、ホットフェイルオーバおよびウォームフェイルオーバが知られている。ホットフェイルオーバとは、複合システムにおいて同じ入力を同時に処理し、基本的に、これらシステムのうちの一つにおける障害のイベントにおいて完全な冗長化を提供することを指す。ウォームフェイルオーバとは、バックアップシステムにおけるアプリケーション(すなわち、データ)の状態を複製することを指す。このとき、バックアップシステムにおいて当該データの複製処理を行うことはないが、一次システムにおける障害のイベントにおいて、読み込み済みでスタンバイ状態のデータを処理することができるアプリケーションを有する。コールドフェイルオーバとは、単にバックアップシステムを立ち上げ、一次システムからの処理負担を想定してバックアップシステムを準備することを指すが、一般に高可用性を有するとは考えられていない。
ホットフェイルオーバ設定におけるアプリケーションの二つの例としては、同時に、2種類のハードウエア機器において実行するものと、同じ入力のコピーを処理するものとがある。そのうちの一つが重大な障害を起こした場合、補助同期システムは、もう一方が継続して作業負荷をサポートするように確保することができる。ウォームフェイルオーバ設定において、システムのうちの一つ、すなわち、一次に指定されたシステムが、アプリケーションを起動させる。障害の場合は、スタンバイ状態で待機している二次システム、すなわちバックアップに指定されたシステムが起動し、引き継いで上記機能性を再開する。
ホットフェイルオーバアプローチに関する従来技術は、少なくとも2つの欠点を有する。第一に、2つのシステムの同期を維持するために、補助ソフトウエアを起動する必要がある。非決定性システムの場合では、この同期化のための注力によって、イベントの発生順序の同一性を保証するというパフォーマンスおよび高度性において、許容範囲外の(または、不要な)低下を招き得る。また、そのようなアプリケーションにおいて使用される従来技術に関する並行システムによって、通常は、多重スレッドが同時に実行できるようになるので、当該スレッドは本来的に非決定性を有する。また、非決定性は、サーバおよび地理的に離れたクライアントを含むシステムであり、当該システムにおいて、可変ネットワーク遅延によって、不測のシーケンスでサーバにメッセージが分配される。
ホットフェイルオーバに関する問題を克服するのにウォームフェイルオーバを使用することができる。ウォームフェイルオーバは、冗長性のバックアップシステムにシステムデータを複製し、二次システムにアプリケーション機能性を保存することによって、非決定性システムのフェイルオーバを実行する他の方法であり得る。このアプローチは、まず安定状態にデータを修復し、それからアプリケーションを機能状態にし、最終的に中断した処理地点にアプリケーションを戻すのに要する時間という点で欠点を有する。この処理には通常数時間かかり、手動介入が必要であり、一般的にはインフライトトランザクション(in-flight transaction)を復旧させることができない。
多数の特許が、上記問題のうちの少なくとも一部に対処しようとしている。US特許第5,305,200では、要約すると、買い手/売り手と販売人(値付け業者)との間の協議による貿易シナリオにおけるコミュニケーションのための非冗長性機構について提案している。障害発生のイベントにおいて非冗長性機構の作業を確保するために、冗長性が提供される。上記特許は、非決定性環境におけるオンライン・トランザクション・アプリケーションのフェイルオーバに対処していない。簡単に言うと、US特許第5,305,200は、ネットワーク障害が起こった後で「命令が送信されたか、されていないか」という問いに対する明確な答えを提供することを目的としている。
US特許第5,381,545では、データのアップデートをしている間に、(データベース内に)保存されたデータをバックアップするための技術を提案している。US特許第5,987,432は、地域的分布に関する世界規模の金融市場データを収集するための耐障害性市場データ相場表示装置システム(fault-tolerant market data ticker plant system)に対処している。これは決定性環境であって、解決策は、データを消費者に送信する連続した一方向のフローを提供することに焦点を当てている。US特許第6,154,847は、従来の不揮発性記憶装置上のトランザクションログと揮発性記憶装置内のトランザクションリストとを組み合わせることによって、トランザクションのロールバックを行うことについての改善方法を提供する。US特許第6,199,055は、無認証(unsecured)のコミュニケーションリンクを介して、システムとポータブルプロセッサとの間のトランザクション分配を扱うための方法を提案している。US特許第6,199,055は、遠隔装置との完全なトランザクションを確保する認証について扱っており、障害のイベントにおける遠隔装置のリセットについて扱っている。概して、上記は非決定性環境におけるオンライン・トランザクション・アプリケーションのフェイルオーバに対処していない。
US特許第6,202,149は、タスクを自動的に再分配してコンピュータ停止の影響を低減させるための方法および装置を提案している。装置は、1つ以上のコンピュータシステムからなる少なくとも1つの冗長性グループを含んでおり、当該コンピュータシステムはコンピュータパーティションからなる。パーティションは、各コンピュータシステムパーティションにおいて複製されたデータベーススキーマのコピーを含む。冗長性グループはコンピュータシステムおよびコンピュータシステムパーティションの状態をモニタし、モニタされたコンピュータシステムの状態に基づいて当該コンピュータシステムにタスクを割り当てる。US特許第6,202,149の問題は、バックアップシステムが処理トランザクションの負荷を想定する場合のワークフロー復旧方法について教示しておらず、代わりに、非効率的および/または低速になり得る、全データベースの複製を目的としている点である。さらに、そのような複製によって、インフライトにおける重要なトランザクション情報が失われる可能性がある。特に、一次システムにおいて障害が発生するか、または、一次とバックアップシステムとを相互接続させるネットワークにおいて障害が発生することによって、一次とバックアップとの間で非一貫性(inconsistent)状態が生じ得る。概して、US特許第6,202,149は、オンライントランザクションなどの処理に必要な特徴、特に、非決定性システムのフェイルオーバに必要とされる特徴を欠いている。
US特許第6,308,287は、機器トランザクションの障害を検知し、障害を除去し(back out)、システム障害後に回復可能になるように障害表示器を確実に保存し、この障害表示器がさらなるトランザクションに対して可用性を有するようにするための方法を提案している。当該特許は非決定性環境におけるトランザクションアプリケーションのフェイルオーバに対処していない。US特許第6,574,750は、分配および複製されたオブジェクトに関するシステムを提供しており、この場合、オブジェクトは非決定性を有する。当該特許は、複製されたオブジェクトにおいて障害が発生した場合に、一貫性を保証するとともにロールバックを制限するための方法を提案している。この方法には、オブジェクトが着信中のクライアント要求(incoming client request)を受信すること、および、要求IDと、オブジェクトのレプリカによって前処理された全要求のログとを比較することについて記載されている。適合がわかると、関連のレスポンスがクライアントに返ってくる。しかし、この方法だけでは、従来技術における様々な問題を解決するには不十分である。
他の問題として、US特許第6,575,750は同期起動チェーン(synchronous invocation chain)を想定しており、当該チェーンは高性能オンライントランザクション処理(OLTP)アプリケーションには不適であることが挙げられる。同期起動の場合、クライアントは応答またはタイムアウトのいずれかを待ってから続行する。続いて、起動したオブジェクトが他のオブジェクトのクライアントとなって同期コールチェーンを伝搬させてもよい。結果は、広域同期オペレーションとなり得るものであり、このとき、発信元クライアントにおいて構成されたロングタイムアウトを処理および必要とするクライアントをブロックする。
本発明の形態は、ネットワークを介して相互接続された少なくとも2つのサーバのうちのいずれか1つを選択可能であって、選択した方と接続する少なくとも1つのクライアントを備える、フェイルオーバのためのシステムを提供する。通常状態において、サーバのうちの1つがクライアントに接続される場合に当該サーバが一次サーバに指定され、もう一方のサーバがクライアントに接続されない場合に当該もう一方のサーバがバックアップサーバに指定される。少なくとも1つのクライアントが一次サーバにメッセージを送信するように構成されている。サーバは、各サーバにおいて同一の少なくとも1つのサービスを用いてメッセージ処理を行うように構成されている。サービスは、サービスに関するサーバが一次サーバとして動作しているのか、バックアップサーバとして動作しているのか認識しない。サーバは、ライブラリまたは他の固有の有効コードを維持するよう構成されており、当該ライブラリまたは有効コードは、サーバが一次サーバであるかバックアップサーバであるかの表示を含む様々なタスクを実行するように構成されている。各サーバ内部にあるサービスは、その個々のライブラリに対して外部呼び出しを行うものである。一次サーバにおけるライブラリは、外部呼び出しを完了し、一次サーバにおけるサービスに外部呼び出しの結果を戻し、バックアップサーバにおけるサービスに外部呼び出しの結果を転送するように構成されている。二次サーバにおけるライブラリは、二次サーバにおけるサービスに要求されたとき、外部呼び出しを行わず、単に、一次サーバから受信したとおりに外部呼び出しの結果を二次サーバにおけるサービスに転送する。
ライブラリは、1つ以上の固有の有効コードとして実施され得る。
サーバは、サービスがメッセージ処理の結果を保存することが可能な共有リソースを維持するようにそれぞれ構成されている。性能上の理由から、個々のサーバにおけるランダムアクセスメモリ内に共有リソースを維持することが好ましい。しかし、必ずしもランダムアクセスメモリ内に共有リソースを維持する必要はない。
外部呼び出しは、(例示の非制限リストとして)タイムスタンプを要求するか、または、同サーバ上に配置された他のサービスを呼び出すか、または、物理的に離れた機械上に配置された別のサービスを呼び出すかであり得る。
システムは電子取引システムの一部であり得るので、メッセージはセキュリティの売買注文であり得る。この場合、外部呼び出しは、セキュリティの値についての市場供給相場を要求するものであり得る。システムが電子取引システムである場合、少なくとも1つのサービスが、注文受付サービス;注文取消サービス;注文変更サービス;注文適合サービス;予め実行された取引を行うためのサービス;またはクロス取引を行うためのサービスのうちのいずれか1つを含み得る。
一次サーバにおけるサービスは、外部呼び出しが完全にバックアップサーバに転送されたことをバックアップサーバが認証した場合に限って、メッセージの処理が行われたことをクライアントが認証するように構成され得る。
一次サーバにおけるサービスは、外部呼び出しがバックアップサーバに完全に転送されたという結果をバックアップサーバが認証するかどうかに関わらず、メッセージの処理が行われたことをクライアントが認証するように構成され得る。バックアップサーバが、所定の期限内に外部呼び出しが当該バックアップサーバに完全に転送されたという結果を認証しない場合、一次サーバは、バックアップサーバにおいて障害が発生したとみなし得る。
本発明の他の形態は、ネットワークを介して相互接続された少なくとも2つのサーバのうちのいずれか1つを選択可能であって、選択した方と接続する少なくとも1つのクライアント;クライアントに接続される場合に一次サーバに指定されるサーバのうちの1つ、および、クライアントに接続されない場合にバックアップサーバに指定されるもう一方のサーバ;および、一次サーバにメッセージを送信するように構成された少なくとも1つのクライアントを有する、システムにおけるフェイルオーバのための方法である。
当該方法は、サーバの各々と同一で、かつ、サービスに対応するサーバが、一次サーバかバックアップサーバのいずれで動作しているかを認識しない、少なくとも1つのサービスを用いてメッセージを処理するようにサーバを構成する工程、
サーバが一次サーバであるか、バックアップサーバであるかを表示するライブラリを維持するようにサーバを構成する工程、
その各ライブラリに対して外部呼び出しを行うようにサービスを構成する工程、および、
外部呼び出しを完了させて一次サーバにおけるサービスに外部呼び出しの結果を戻し、バックアップサーバにおけるサービスに外部呼び出しの結果を転送するように、一次サーバにおけるライブラリを構成する工程を含む。
本発明の他の形態は、選択された少なくとも1つのクライアントと接続可能なネットワークを介して相互接続された少なくとも2つのサーバのうちのいずれか1つのサーバ上で実行可能な一連のプログラミングインストラクションを保存するコンピュータ読み取り可能な記録媒体であって、当該相互接続されたサーバが、少なくとも1つのクライアントと選択的に接続可能である記録媒体を提供する。サーバのうちの1つがクライアントと接続されたときに、当該サーバが一次サーバに指定され得、このとき、クライアントに接続されていないもう一方のサーバが、バックアップサーバに指定され得る。少なくとも1つのクライアントが一次サーバにメッセージを送信するように構成されている。プログラミングインストラクションは、
サーバの各々と同一で、かつ、サービスに対応するサーバが一次サーバまたはバックアップサーバとしてのいずれで動作するかを認識しない、少なくとも1つのサービスを用いてメッセージを処理するようにサーバを構成するためのインストラクション、
サーバが一次サーバであるか、バックアップサーバであるかを表示するライブラリを維持するようにサーバを構成するためのインストラクション、
その各ライブラリに対して外部呼び出しを行うようにサービスを構成するためのインストラクション、および、
外部呼び出しを完了させて外部呼び出しの結果を一次サーバにおけるサービスに戻し、バックアップサーバにおけるサービスに外部呼び出しの結果を転送するようにライブラリを構成するためのインストラクション、を含む。
本発明は、添付の図面を参照し、例示することによってのみ説明される。
本発明の実施形態に係るフェイルオーバのためのシステムの概略図である。 通常状態で動作する場合の図1のシステムの概略図であって、システムにおけるサービスを実行する様々なソフトウエア部材の例示の詳細を含む。 本発明の他の実施形態に係る通常状態でのフェイルオーバのためのシステムの起動方法を示すフローチャートである。 図3の方法に関するパフォーマンス中の図2のシステムを示す。 図3の方法に関するパフォーマンス中の図2のシステムを示す。 図3の方法に関するパフォーマンス中の図2のシステムを示す。 図3の方法に関するパフォーマンス中の図2のシステムを示す。 図3の方法に関するパフォーマンス中の図2のシステムを示す。 図3の方法に関するパフォーマンス中の図2のシステムを示す。 図3の方法に関するパフォーマンス中の図2のシステムを示す。 図3の方法に関するパフォーマンス中の図2のシステムを示す。 図3の方法に関するパフォーマンス中の図2のシステムを示す。 図3の方法に関するパフォーマンス中の図2のシステムを示す。 図3の方法に関するパフォーマンス中の図2のシステムを示す。 本発明の他の実施形態に係るフェイルオーバのための方法を示すフローチャートである。 本発明の他の実施形態に係る一次単独(primary-only)状態で動作するサーバのうちの一つについての図2のシステムを示す。 本発明の他の実施形態に係る一次単独(primary-only)状態で動作するサーバのうちのもう一方についての図16のシステムを示す。 本発明の他の実施形態に係る一次単独状態でサーバのうちの一つを動作させるための方法を示すフローチャートである。 通常状態から、本発明の他の実施形態に係る一次単独状態において動作するバックアップサーバまでフェイルオーバするための方法を示すフローチャートである。
ここで図1を参照すると、フェイルオーバのためのシステムは主に符号50で示されている。システム50は複数の遠隔クライアント54−1および54−2を備える(ここで言う「クライアント54」とは、総じて集合的な「クライアント54」を指す。図面における他の部材を指すときも同様に用語を定義する)。クライアント54をネットワーク58に接続する。ネットワーク58は、インターネットやローカルエリアネットワーク、広域ネットワークまたはその組合せなど、あらゆるタイプのコンピュータネットワークであり得る。続いて、第一サーバ62−1および第二サーバ62−2にネットワーク58を接続する。その結果、下記に詳述するように、クライアント54がネットワーク58を介してサーバ62−1および62−2にそれぞれ交信することができる。
クライアント54は、個々のクライアント54を用いてサーバ62−2にリクエストを送信する個人および/または団体にそれぞれ属する。便宜上、そのような個人または団体をここでは取引者Tとし、クライアント54−1を使用するものを取引者T−1、クライアント54−2を使用するものを取引者T−2とする。各クライアント54は、典型的には、キーボードおよびマウス(または他の入力装置)と、モニタ(または他の出力装置)ならびに上記キーボード、マウス、およびモニタに接続されたデスクトップモジュールとを有するパーソナルコンピュータなどのコンピュータデバイスであって、1つ以上の中央演算処理装置と、揮発性メモリ(すなわち、ランダムアクセスメモリ)と、非揮発性メモリ(すなわち、ハードディスクデバイス)と、ネットワーク58を介してクライアント54の交信を可能にするネットワークインターフェイスとを内蔵するパーソナルコンピュータなどのコンピュータデバイスである。しかし、クライアント54は、電子手帳、携帯電話、ノート型パソコン、e-mailページング装置などのあらゆるタイプのコンピュータデバイスであり得ることを理解されたい。
サーバ62は、UNIX(登録商標)オペレーティングシステムを実行する、カリフォルニア州パロアルト(Palo Alto Calif)に住所を有するサンマイクロシステムズ株式会社(Sun Microsystems Inc.)製のSun Fire V480など、クライアント54からメッセージを受信および処理するように動作可能なあらゆるタイプのコンピュータデバイスであり得る。さらに、サーバ62は、約900メガヘルツで各々動作する4つの中央演算処理装置、および、4ギガバイトのランダムアクセスメモリおよびハードディスクドライブなどの非揮発性記憶装置を有する。サーバ62に適する他のタイプのコンピュータデバイスとしては、アメリカ合衆国 コロラド州 80537,ラブランド,サウス タフト 800(800 South Taft, Loveland, CO 80537)に住所を有するヒューレットパッカード株式会社(Hewlett-Packard Company)製のHP ProLiant BL25pサーバが挙げられる。しかし、これらの具体的なサーバは単なる例示であり、サーバ62−1および62−2について他の様々なタイプのコンピュータ環境が本発明の範囲内であることを強調したい。サーバ62−1によって受信および処理されるメッセージのタイプは特に限定されていないが、本実施形態において、サーバ62−1はオンライン取引システムを実行するので、オンラインで取引可能なセキュリティを購入する、売る、取り消すなどのリクエストを含むメッセージを処理することができるものである。より具体的には、サーバ62−1は中央適合エンジン(不図示)を維持するように動作可能であり、そこで互いに対してリクエストを実行し、さらに、注文を行う中央保存装置に対してリクエストを実行し、セキュリティ取引を処理する。
サーバ62−2は、通常、サーバ62−1と同一の(または、少なくとも実質的に同一の)コンピュータ環境を有する。下記にさらに説明するように、ハードウエア、オペレーティングシステム、アプリケーションなどを含むコンピュータ環境が、サーバ62−2として選択される。このとき、当該サーバ62−2は、サーバ62−1の障害発生時にサーバ62−1の機能性を代替するように動作可能である。
システム50はまた、サーバ62−1とサーバ62−2とを相互接続する複製リンク78を備える。本実施形態において、複製リンク78それ自体がメインリンク82とフェイルセーフリンク86とを備えており、サーバ62−1とサーバ62−2との間の交信において、より高いロバスト性を有する。
一次サーバ62−1、バックアップサーバ62−2、および、複製リンク78の機能についてのさらなる詳細、ひいては、サーバ62−1および62−2を実行するのに使用可能な多種のハードウエアについて、下記の説明で明らかとなるだろう。
図2において、サーバ62−1およびサーバ62−2をより詳細に示す。また、図1においてシステム50における様々な物理的な接続を実線で表すのに対し、図2においてはシステム50における様々なネットワーク上の接続を点線で示す。したがって、図2に示されたような接続は、サーバ62−1が一次サーバに指定されるとともに、サーバ62−2がバックアップサーバに指定されている通常状態で動作するシステム50を表すことを意図している。当該通常状態において、一次サーバ62−1がクライアント54からのリクエストに応答する。通常状態、および、システム50が動作可能な他の状態についての更なる詳細を以下に記載する。
さらに図2を参照すると、サーバ62−1およびサーバ62−2がそれぞれ複数のソフトウエア構成要素を含んでおり、当該ソフトウエア構成要素は個々のハードウエア環境で実行され、クライアントからのリクエストに応答し、フェイルオーバ機能性を有する。
サーバ62−1およびサーバ62−2は、フェイルオーバエージェント90−1および90−2をそれぞれ備える。フェイルオーバエージェント90は相互交信し、リンク78および相互のインテグリティを定期的にテストするように動作可能である。本実施形態において、通常状態では、フェイルオーバエージェント90−1が、フェイルオーバエージェント90−2にキープアライブ信号(例えば、「アライブ状態になっているか?」)を定期的に送り、フェイルオーバエージェント90−2が定期的に応答する(例えば、「はい、アライブ状態です」)とされる。フェイルオーバエージェント90−2がそのようなリクエストに応答するとし、さらに、一次サーバ62−1が通常通り動作し続けるとすると、システム50は図2に示した通常状態を維持する。したがって、フェイルオーバエージェント90−1はまた、サーバ62−1における他のソフトウエア構成部材と交信し、通常状態が有効であることを示すように動作可能である。
フェイルオーバ90が、適切に、または、所望のように、リンク78を備えるメインリンク82とフェイルセーフリンク86の両方を利用するよう動作可能であることは明白である。この場合、メインリンク82とフェイルセーフリンク86のうちの少なくとも1つが動作している限り、システム50は通常状態を維持する。
サーバ62は、1つ以上のクライアント54からの多種の要求を受信および処理することができる1つ以上のサービスをそれぞれ含む。サービスのタイプは特に限定されておらず、フェイルオーバ保護が必要とされるあらゆるタイプのサービス、アプリケーション、または処理などを含み得る。システム50がオンライン取引システムであるという、この単なる例示の実施形態において、サーバ62は注文受付サービス94および注文取消サービス98をそれぞれ含む。注文受付サービス94とは、その名前からもわかるように、特定のセキュリティの売り注文または買い注文を受け付けるためにクライアント54からの要求を受信するように構成されている。注文取消サービス98とは、その名前からもわかるように、特定のセキュリティの売り注文または買い注文を取り消すためにクライアント54からの要求を受信するように構成されている。このとき、当該セキュリティは、サービス94によってすでに受け付けられているが、当該特定の注文が実際に実行される前のものである。電子取引の分野の当業者であれば想定し得る実行可能な他のタイプのサービスは、これらに制限されるものではないが、注文適合、注文変更、取引開始、または、クロス開始を含む。本実施形態において、要件ではないものの、サービス94およびサービス98はマルチスレッドである。(ここで使用するとき、マルチスレッドとは限定的な意味で使用するものではなく、複合メッセージが同時に処理されるという並行処理の様々な形態を指す。これは、さらに、システムの非決定性特性の一因となる。例えば、複合処理、または、単一処理を用いた実行のマルチスレッドを用いて、マルチスレッドが実行され得る。)
サーバ62はまた、各々に付属する対応のサービス94およびサービス98にアクセス可能なライブラリ102をそれぞれ有する。各ライブラリ102はシーケンサ106およびキャッシュメモリ110を有する。下記に詳述するように、シーケンサ106が、シーケンスナンバを発生させ、ライブラリ102に関してサービス94または98からの要求に応答する。シーケンサ106−2は通常状態で非アクティブであり、そのような非アクティブ性は、オーバル型シーケンサ106−2を介してハッシュすることによって図2に示されている。(既定の特定状態において構成要素がアクティブであるか、非アクティブであるかを表示する他の構成要素において、ハッシュが使用される。)キャッシュメモリ110は、ライブラリ102によってなされる外部機能呼び出し結果の保存領域である。
各ライブラリ102はまた、システム50が並列処理を行う状態を維持する状態記録装置(state register)114を有する。当該状態記録装置114は、システム50が並行処理している状態を適合するために、その各フェイルオーバエージェント90と絶えず交信する。図2において、システム50は通常状態で作動する。それに従って、サーバ62−1が現時点で一次サーバに指定されていることを状態記録装置114−1が表示し、一方で、サーバ62−2が現時点でバックアップサーバに指定されていることを情報記録装置114−2が表示する。しかし、下記に詳述するように、システム50の状態は、システム50における様々な構成材の動作状態によって変化し得る。
各サーバ62はまた、サービス94および98に代わって外部リソースに外部呼び出しを行う機能を果たす外部リソースエージェント118を備えているが、当該呼び出しはライブラリ102を経由して行われる。外部リソースは、サービス94および98に外付けのリソースであって、各サーバ62上に設置されているリソースを備える。当該外部リソースは、各サーバに外付けの、オペレーティングシステムクロック(不図示)からのタイムスタンプ、および/または、リソースなどであり、電子取引システムの場合では、マーケットフィード(不図示)などである。当該マーケットフィードは、注文受付サービス94を経由して受け付けられた売り注文または買い注文のサブジェクトであり得る様々なセキュリティの市場価格についての最新情報を維持するものである。ここで、当業者であれば、サービス94および98が行うそのような外部リソースに対する呼び出しは、システム50の有する非決定性特性の一因となることがわかるだろう。通常状態において、外部リソースエージェント118−1のみがアクティブであり、外部リソースエージェント118−2は非アクティブである。オーバル型の外部リソースエージェント118−2を介してハッシュすることによって、外部リソースエージェント118−2の非アクティブ性が図2に示される。
各サーバ62はまた、共有リソース122を維持しており、当該共有リソース122は、サービス94および98によって実行された処理ステップの結果、および/または、サービス94および98がアクセス可能であることを要求するデータを維持する。例えば、本発明に係る電子取引システムにおいて、共有リソース122が票を維持および注文する。当該票は、サービス94によって受け付けられた注文の記録に過ぎない。それゆえ、注文サービス94は、例えば、共有リソース122において買い注文についての記録を作成してもよい。後に、注文を取り消してそれを共有リソース122に表示するために、注文取消サービス98が上記買い注文にアクセスする必要性が生じる可能性もある。同様に、サーバ62上で実行される適合サービス(不図示)が上記買い注文にアクセスする必要性が生じる可能性もある。当該適合サービスは、上記買い注文と、適する対応の売り注文とを市場法則に従って適合させ、上記買い注文および売り注文をアップデートし、適合が有効で取引が完了可能であることを示す。
各サーバ62はまた、複製エージェント126を維持する。通常状態において、複製エージェント126−2のみがアクティブであって、複製エージェント126−1は非アクティブである。オーバル型エージェント126−1を介してハッシュすることによって、複製エージェント126−1の非アクティブ性が図2に示されている。下記に詳述するように、アクティブ複製エージェント126が、カウンターパートサーバ62におけるライブラリ102と交信し、一次サーバからバックアップサーバへの情報のミラーリングを助ける。
ここで図3を参照すると、本発明の他の形態に係る、通常状態の間に要求を処理するための方法は、概して符号300に示されている。上記方法の説明を容易にするために、図2に示された、通常状態でのシステム50を用いて方法300を実行すると想定する。さらに、方法300についての詳細な説明によって、システム50およびその様々な構成材をよりよく理解できるだろう。しかし、便宜上の理由のみであるが、方法300の様々な処理ステップが、システム50の特定の構成部材内で起こるように図3に示されている。そのような表示は、限定的な意味で解釈すべきものではない。しかし、当然のことながら、システム50および/または方法300は異なったものである可能性があり、本発明において互いに組み合わせて説明されたように機能する必要はなく、さらに、方法300におけるステップは、図示されたような注文において実施される必要はない。そのような変形は本発明の範囲内である。そのような変形は、ここに説明された他の方法およびシステム図にも適用される。
まず、クライアントからメッセージを受信するステップ310から始める。メッセージタイプは特に限定されておらず、概して、サーバ上で実行するサービスのうちの1つについてのインプットの想定タイプを補完するものである。システム50上で実行されるとき、メッセージは、注文受付サービス94のためのインプットを意図する売り注文または買い注文か、または、注文取消サービス98のためのインプットを意図する取消注文であり得る。例えば、取引者T−1による買い注文が、クライアント54−1からのメッセージの内に受信され、当該メッセージが、ネットワーク58を介して注文サービス94−1に送信されることを想定する。この場合、ステップ310によると、注文受付サービス94−1が当該メッセージを受信する。図4に、ステップ310の例示の性能を示す。メッセージM(O)はクライアント54−1から発信され、注文受付サービス94−1においてサーバ62−1内に受信されるように示されている。表1は、注文受付メッセージM(O)の例示のフォーマットを示す。
Figure 2009545788
より具体的には、取引者と名付けられた表1のフィールド1は、メッセージM(O)の発信元となる取引者が取引者T−1であると認識する。セキュリティネームと名付けられた表2のフィールド2は、取引のサブジェクトである特定のセキュリティの名前を、この例では、ABC Co.と認識する。トランザクションタイプと名付けられた表1のフィールド3は、フィールド2で認識されたセキュリティが買い注文なのか、売り注文なのか、などを認識する。この例では、トランザクションタイプは買い、であり、これは、買い注文であることを示している。量と名付けられた表1のフィールド4は、必要なセキュリティ量を認識する。この例では、量は1,000ユニットであり、ABC Co.の1,000ユニット買いを意図する。ここで、当業者であれば、注文の価格が、フィールド2のセキュリティに関する現行市場価格を基礎としていることから、表1の注文が市場注文であることがわかるだろう。
ステップ310でメッセージを受信した後、方法300はステップ315に進み、この時点で、関連するサービスが、メッセージのさらなる処理に使用される外部データに対して、いずれかの呼び出しを行う。引き続き上記例でみていくと、ステップ315において、注文受付サービス94−1が、そのような外部呼び出しを一次ライブラリ102−1に対して行う。この例では、そのような呼び出しは下記i)、ii)を目的とすると想定されている。
i)注文が受信された時間を認識するメッセージM(O)において注文に割り当てられるタイムスタンプ、
ii)メッセージM(O)における注文で認識されるセキュリティに対する現行市場価格。
図5に、ステップ315のパフォーマンスを点線で示す。点線130は、注文受付サービス94−1から一次ライブラリ102−1への呼び出しを示す。
続いて、ステップ320において、一次ライブラリ102−1が呼び出しを行う。一次ライブラリ102−1はフェイルオーバエージェント114−1から情報を得て(consult)、サーバ62−1が一次サーバに指定されており、かつ、システム50が通常状態であることを認証する。上記認証後、下記i)、ii)によって、サービス94−1が行う呼び出しに対して、一次ライブラリ102−1が応答する。
i)タイムスタンプを得るために、外部リソースエージェント118−1に対して外部呼び出しを行う。
ii)現行市場価格を得るために外部リソースエージェント118−1にさらなる外部呼び出しを行う。
その結果、ステップ325において、外部リソースエージェント118−1がタイムスタンプを得るためにシステムクロック(不図示)に外部呼び出しを、現行市場価格を得るために市場供給(不図示)に外部呼び出しを、それぞれ行う。
図6に、ステップ320およびステップ325のパフォーマンスを点線で示す。点線は、外部リソースエージェント118−1を介するタイムスタンプのための呼び出しを132に、外部リソースエージェント118−1を介する市場価格のための呼び出しを134に、それぞれ示す。
ここで、当業者であれば、外部呼び出し132および134によって、特にシステム50に非決定性特性を有するようになることがわかり、それゆえ、フェイルオーバの発生において、復旧中に、当該復旧が取引者Tに自明であるように、システムにおける非決定性特性に対処しているフェイルオーバシステムを提供するという点で、本発明独自の取り組みが理解できるだろう。(さらなる説明によって、両サーバ62が各メッセージに対する呼び出しを行うようにシステム50が変更されたと想定される。しかし、既定のメッセージMのいずれに関しても、市場の公正さを確保するためには、タイムスタンプに対する呼び出しが行われるその瞬間が非常に重要であって、両サーバ62が、同時に同じメッセージのためにタイムスタンプに対して呼び出しを行う確率は非常に低いと考えられる。それゆえ、各サーバ62が同じメッセージMについて異なる時間優先を割り当てることが可能であり、その結果、同じ機械処理の結果が異なることになる。フェイルオーバの間、各サーバ62が一貫したビジネスデータを有することはなく、フェイルオーバは無意味であり得る。)さらに読み進めると、当業者であれば、そのようなチャレンジに対する対処法および本発明の他の形態が理解できるだろう。
ステップ330において、外部呼び出し132および外部呼び出し134の結果が一次ライブラリ102−1に戻ってくる。ステップ335において、キャッシュメモリ110−1内に呼び出し132および134の全ての結果が保存され、サーバ94−1に戻される。
引き続き上記例でみていくと、呼び出し132の結果はタイムスタンプ2000年1月5日午後12時であると考えられる。さらに、呼び出し134の結果は$2.00の市場価格であると考えられる。表2および図7に、キャッシュメモリ110−1におけるこれらの結果の保存を示す。
Figure 2009545788
ステップ340で、サービスが呼び出し結果を受信する。上記例で続けると、図7にも示されているように、表2で保存された呼び出し結果はサービス94−1に戻される。
続いて、ステップ345において、サービスが共有リソースのための要求を行う。上記例において、サービス94−1がライブラリ102−1に対して要求を行う。次に、ステップ350において、ライブラリ102−1が共有リソース122−1に対して、当該リソース122−1をロックするように指示を発行し、他のあらゆるサービス(例えば、サービス98−1またはサービス94−1内の他のスレッド)が共有リソース122−1にアクセスしないようにする。(下記に詳述するように、共有リソース122−1がすでにロックされている場合、共有リソース122−1が解除されるまで、方法300はステップ345で停止する。)ステップ345およびステップ350のパフォーマンスを図8に点線で示す。このとき、共有リソース要求を符号140で示す。共有リソース122−1のロックをパッドロック138で表す。
続いて、ステップ355において、共有リソースシーケンスナンバーが戻される。シーケンサ106−1を利用するライブラリ102−1によって、このステップが実行され得る。当該シーケンサ106−1は、メッセージM(O)に関するシーケンスナンバーを生成する。上記例で続けると、シーケンスナンバー1が生成されると考えられる。表3および図8に、キャッシュメモリ110−1内の結果の保存を示す。表3は表2をアップデートしたものであることに留意されたい。
Figure 2009545788
続いて、ステップ360において、複製が要求される。サービス94−1が上記例におけるステップ360を実行し、当該サービス94−1がライブラリ102−1に複製実行の指示を送信する。ステップ365において、メッセージ、呼び出し結果およびシーケンスナンバーの複製が開始される。上記例において、ライブラリ102−1が表3の内容を複製する。ステップ365については後に説明する。
ステップ370において、呼び出し結果およびロックされた共有リソースを用いてメッセージを処理する。上記例において、サービス94−1がステップ370を実行する。サービス94−1は、表3の結果を生み出すために、表3の内容を用いて、サービス94−1に関する処理ステップを実行する。サービス94−1は注文受付サービスであり、メッセージM(O)は買い注文を示すので、ステップ370において、サービス94−1は、共有リソース122−1に記録される買い注文を作り出し、例えば取引者T−2からの買い注文に対して買い注文を続けて適合させるか、または、サービス98−1を用いた注文の取消など他の取引処理を行う。
上記例の目的に関して、メッセージM(O)が適合し得る共有リソース122−1に注文がない場合、ステップ370の結果は、単に、メッセージM(O)に関する買い注文の詳細についての完全な記録を作り出すことである。表4に、ステップ370のパフォーマンスの例示結果を示す。
Figure 2009545788
続いて、ステップ375において、ステップ370のパフォーマンス結果が共有リソースに書き込まれ、その後、共有リソースが解除される。ステップ370におけるサービス94−1による表4の生成と、ステップ375における共有リソース122−1内の結果の保存を図9に示す。
続いて、ステップ380では、ステップ375において結果が書き込まれたこと、および、ステップ400において複製が実行されたことについての認証を、サービスが認証する。上記例では、ステップ380において、サービス94−1が、表4が共有リソース122−1に書き込まれたという共有リソース122−1からの認証を待つ。同様に、ステップ380では、サービス94−1は、ステップ365によって開始された複製が完了したというステップ400からの認証を待つ。ステップ365および400については下記に詳述する。
(代替的実施例において、ステップ380は、ステップ390に進む前に、ステップ400からの認証を実際に待つ必要はない。しかし、ステップ380は、ステップ400から最終的にはそのような認証を受信することを想定しており、そのような認証が得られない場合には、ステップ380はサーバ62−2が障害を起こしたとみなす。このとき、以下に説明するように、イベントサーバ62−1が方法600の実行を開始する。ここで、当業者であれば、これが非同期モードの動作であり、サーバ62−2の状態を認証する速度が早いことが好まれる特定の状況において好適である可能性があることがわかるだろう。)
続いて、ステップ390において、クライアントに認証が戻される。上記例において、ステップ390で、サービス94−1は、取引者T−1が要求した通りにメッセージM(O)が処理されたという認証メッセージをクライアント54−1に送信する。
繰り返し述べるが、方法300におけるステップ390(すなわち、通常状態中の動作)は、ステップ380で初めて完了する。続いて、ステップ380は、ステップ365において開始される複製が完了して初めて完了する。ここで、ステップ365に戻ると、メッセージ、呼び出し結果、および、共有リソースシーケンスナンバーが複製される。本例では、ステップ360においてサービス94−1からの要求に応答するライブラリ102−1が、ステップ365を実行する。それゆえ、ライブラリ102−1が表3の内容を一括し、それを複製エージェント126−2に伝達する。
図10に、ステップ365、370、375、395、400および390のパフォーマンスを示す(図10は、図9に示されたステップ370および375のパフォーマンスに関する表示に基づく)。ステップ365、すなわち、ライブラリ102−1のキャッシュメモリ110−1から複製エージェント126−2への表3における伝達のステップを、線142で表す。図9に関連して上述したように、図10にステップ370および375を示す。ステップ395、すなわち、メッセージ、呼び出し結果、および、共有リソースシーケンスナンバーの待機するステップを、複製エージェント126−2内部に表された表3のように楕円形で示す。ステップ400、すなわち、複製エージェント126−2から(ライブラリ102−1を介して運ばれる)サービス94−1への複製の認証に戻ることを144の線で示す。ステップ390、すなわち、サービス94−1からクライアント54−1までの認証に戻るステップを、点線146で示す。
上記記述で、通常状態での動作中に一次サーバが行う1つのメッセージ処理の説明は実質的に終わりである。ここで、ステップ400を介するステップ310の上述に従って、一次サーバ62−1が直列、および/または略並行かのいずれかで、複合メッセージを処理し得ることを理解すべきである。例えば、サービス94−1が、あるメッセージMを扱っているとき、同様に、サービス98−1もまた、実質的に上記のように他のメッセージMを処理することができる。このとき、ライブラリ102−1が両サービス94−1、98−1と交信する。加えて、サービス94−1におけるあるスレッドが、あるメッセージMを扱うとき、サービス94−1における他のスレッドがまた、実質的に上記のように他のメッセージMを処理することができる。このとき、ライブラリ102−1がサービスにおける両スレッドと交信する。ステップ350は、サービス94−1と98−1(または、そのスレッド)との間のコンテンションを避けるように共有リソース122−1を確実にロックし、一度に共有リソース122−1と交信し得るサービスが、確実にそれらサービスのうちの一つだけであるようにする。(交信とは、リーディング、ライティング、削除に留まらず、それらを含むあらゆるタイプの機能を含み得ることに留意されたい。)回避すべきコンテンションの例として、共有リソース122−1が、与えられた注文を取り消すためにロックされているときに、注文取消サービス98−1が共有リソース122−1からの読み取り、および、リソース122−1への書き込みを行い、それによって、取り消された注文と適合サービス(不図示)とが適合できないようになることが挙げられる。
同じ特徴から、ステップ335がシーケンサ106−1を利用し、サービス94−1または98−1(またはそのスレッド)のいずれかがメッセージMを扱っているのに関わらず、各メッセージに固有のシーケンスナンバーを生成する。したがって、共有リソース122−1がロックされているときに、特定のサービス94−1または98−1(またはそのスレッド)がステップ345において共有リソース122−1への要求を行うときがあり得る。それゆえ、ステップ345より後に進む前に、共有リソース122−1が解除されるまでは特定のサービス(またはそのスレッド)は停止する。
通常状態で動作中である、プライマリサーバ62−1によるメッセージ処理について記述したが、方法300に関して、ステップ405およびその先のステップにおけるパフォーマンス、ならびに二次サーバ62−2によるメッセージ処理を説明する。
再び図3を参照すると、ステップ405において、共有リソースシーケンスナンバーに従って、メッセージ、呼び出し結果およびシーケンスナンバーが発信(dispatch)する。上記例で続けると、この時点で、メッセージM(O)(すなわち、表3からの記録1におけるフィールド1の内容)をサービス94−2に発信し、一方で、呼び出し結果(すなわち、表3からの記録1におけるフィールド2および3の内容)およびシーケンスナンバー(すなわち、表3からの記録1におけるフィールド4の内容)を二次ライブラリ102−2に発信する。
したがって、ステップ310Sでは、ステップ310でサービス94−1がクライアント54−1からメッセージM(O)を受信したのとほぼ同じ方法で、サービス94−2が複製エージェント126−2からメッセージM(O)を受信する。サービス94−2において、クライアントからメッセージM(O)を受信していた。この段階で、サービス94−2は、全ての面においてサービス94−1と実質的に同一であることが明白になるだろう(同様に、サービス98−2はサービス98−1と実質的に同一である)。サーバ62−2におけるサービス94−2は、サーバ62−1におけるサービス94−1の動作とほぼ同じ方法で動作する。換言すれば、サーバ62−1におけるサービス94−1がステップ310、315、340、345、360、370、380、および390を実行するのと同じ方法で、サービス94−2がステップ310S、315S、340S、345S、360S、370S、380S、および390Sを実行する。サービス94−1およびサービス94−2の両方ともが、それらサービスが内部で動作させている特定のサーバが、一次サーバかバックアップサーバかのいずれに指定されているかを認識しない。これは、本発明の数ある利点のうちの一つを提示する。すなわち、サービスは、一括で2つ(またはそれ以上)のサーバのためのサービスを進めることができ、一次サーバに指定されたサーバのための一連のサービス、および、バックアップサーバに指定されたサーバのための一連のサービスを進める必要がないのである。
しかし、各ライブラリ102は、個々のフェイルオーバエージェント90および状態記録装置114と通信する中で、その個々のサーバ62が一次サーバかバックアップサーバのいずれに指定されているかを認識している。したがって、サービス94−2がステップ315Sを実行して呼び出しを行うとき、ライブラリ102−2は外部リソースエージェント118−2を利用せず、ステップ415において、ステップ410でライブラリ102−2が受信した呼び出し結果(すなわち、表3からの記録1におけるフィールド2および3の内容)を単に戻すだけである。
図11に、ステップ405、310S、410のパフォーマンスを示す。図12に、ステップ315S、415、および340Sを示す。
同じ特徴から、サービス94−2がステップ345Sを実行して共有リソースに要求するとき、共有リソース122−2をロックすること、および、ステップ425で共有リソースシーケンスナンバー(すなわち、表3からの記録1におけるフィールド4の内容)を戻すことによって、ライブラリ102−2が応答する。当該シーケンスナンバーはステップ410においてライブラリ102−2が受信するものであって、シーケンサ106−2を利用するものではない。
図13に、ステップ345S、420、425のパフォーマンスを示す。
同じ特徴から、サービス94−2がステップ360Sを実行して複製を要求するとき、実際の複製実行によってではなく、基本的にステップ400を模倣して、ステップ380Sにおいてサービス94−2に対する複製認証を戻すことによって、ライブラリ102−2がステップ430において応答する。ステップ370および375と実質的に、サービス94−2が独立して表4の内容を生成し、共有リソース122−2の内部に保存するようにステップ370Sおよび435を実行する。
図14に、ステップ370Sおよび435のパフォーマンスを示す。
同様に、ステップ380およびステップ390と同じ方法で、ステップ380Sおよび390Sを実行する。但し、上記ステップは、ステップ390Sにおいて戻された認証は、クライアント54−1ではなく、複製エージェント126−2に戻される。
当該段階、方法300における当該パフォーマンスの結論として、表4のように、処理メッセージM(O)の結果が共有リソース122−1と共有リソース122−2との両方に保存されることがわかるだろう。ステップ310S、315S、340S、345S、360S、370S、380S、390Sのパフォーマンスとステップ310、315、340、345、360、370、380、390のパフォーマンスとの間の実際の待機時間は実際ごく短いこともわかるだろう。そのような待機時間は、ステップ365におけるネットワークの待機時間と、ステップ395および405の処理とによって決定可能であって、それらは非常に高速であり得る。あらゆるイベントにおいて、システム50は、待機時間がハードディスクにバックアップ情報を書き込むよりも数段速くなるように構成されており、これは本発明の他の利点である。
したがって、サービス94−1(および後続のサービス94−2)を用いてセキュリティの売買注文を受け付けるためのメッセージを処理するのに、方法300を使用することができる。同様に、サービス98−1(および後続のサービス98−2)を用いてこれらの注文を取り消すのに、方法300を使用することができる。サーバ62−1内に付加的サービスを生成および包含することができ、当該サービスのためのロバストフェイルオーバを備えるサーバ62−2上に当該サービスを容易に配置することができる。しかし、当該サービスは、サーバ62−1上にあるサービス用の1組のコードを必要とせず、サーバ62−2上にあるサービスのための他の組のコードを必要とする。このとき、特定のサービスのための1組のコードとは、両サーバにとって必要なものすべてである。おそらく、ある観点からより重要なことは、システム50が、通常はハードディスクへの書き込みに付随して起こる減速を起こすことなく、フェイルオーバ発生時の結果を実質的に保証することができる。
通常状態において、サーバ62−2がサーバ62−1において実行される処理の最新ミラーを維持するので、サーバ62−1がレフトオフ(left-off)であるサーバ62−1の処理タスクをサーバ62−2が想定することによって、サーバ62−1の障害が速やかに復旧し得る。図15は、1対のサーバを運用するための方法500を表すフローチャートである。このとき、該サーバのうちの一つが一次サーバに指定されており、もう一つがバックアップサーバに指定されている。システム50を用いて実行するとき、ステップ505において、両サーバが有効かどうかが決定される。フェイルオーバエージェント90および状態記録装置114を用いてステップ505を実行する。ハイの場合、ステップ505はステップ510に進み、そこで、システム50が方法300に関して上述のような通常状態で動作する。両サーバが無効であると判断されない限りは、ステップ505およびステップ510が循環し続ける。両サーバが無効であると判断された場合、方法はステップ520に進む。ステップ520において、第一サーバのみが有効かどうかを決定する。たとえば、何らかの理由で、フェイルオーバエージェント90−1がフェイルオーバエージェント90−2との接続を確立できない場合、ステップ520において第一サーバのみが有効であることを決定し、方法500はステップ530に進む。当該ステップ530において、システム50が一次単独状態(primary-only state)で動作する。フェイルオーバエージェント90−1がフェイルオーバエージェント90−2との接続が確立できない理由として考えられるのは、これらに留まるわけではないが、サーバ62−2が致命的な損傷を被ったか、または、リンク78が切断されたかである。
第一サーバが無効である場合、方法500はステップ520からステップ540に進む。ステップ540では、第二サーバのみが有効であるかどうかが決定される。異なる場合、方法500は例外として終了する。しかし、第二サーバが有効であると判断された場合、方法500はステップ540からステップ550に進む。ステップ550において、第二サーバがさらなる処理を実行できるように、システム50がフェイルオーバする。続いて、ステップ560において、第二単独状態においてさらなる処理を行うようにオペレーションが続行される。両サーバが再び有効になるまで、方法500はステップ560と570との間を循環する。両サーバが再び有効になった時点で、方法500はステップ510に進み、システム50は通常状態に戻る。
図16は、一次単独状態でのシステム50の例を示すものであり、そこではサーバ62−1が一次サーバに指定されているが、サーバ62−2はオフライン(または、リンク78の障害によって無効)である。図16において、サーバ62−1が一次単独状態で動作するので、状態記録装置114−1は、サーバ62−1が現在一次サーバに指定されており、かつ、一次単独状態で動作中であることを表示する。
図17は、二次単独状態におけるシステム50の例を示すものであり、そこではサーバ62−2が一次サーバに指定されているが、サーバ62−1はオフラインである。図17において、サーバ62−2が一次単独状態で動作しているので、状態記録装置114−2は、サーバ62−2が現在一次サーバに指定されており、かつ、一次単独状態で動作中であることを表示する。
図示されていないが、システム50はまた、サーバ62−2が一次サーバに指定されており、サーバ62−1がバックアップサーバに指定されている通常状態で構成され得ることに留意されたい。
図18は、サーバ62のうちの一つのみが有効なときにメッセージを処理するための方法600を表すフローチャートである。方法500におけるステップ530にあるサーバ62−1が方法600を実行するか、または、方法500におけるステップ560にあるサーバ62−2が方法600を実行する。ここで、当業者であれば、方法600が方法300における一次サーバの動作を実質的に反映していることがわかるだろう。より具体的には、方法300におけるステップ310〜360およびステップ370〜390が、方法600におけるカウンターパート(同じ番号を有し、後ろにFが付記する)に対応する。しかし、方法600におけるステップ365Fは、方法300におけるステップ365とは異なる。ステップ365Fは、方法300におけるステップ430に対応している。ステップ365Fでは、ライブラリ102は複製が成されたという認証を単に複製することによって、サービス94(または98)からの複製要求に応答するので、サービス94(または98)がステップ380Fにおいてそのような認証を受信することができ、方法600がステップ390Fに進むことができる。
図19は、一次サーバから、方法500におけるステップ550を実行するのに使用可能であるバックアップサーバにフェイルオーバするための方法700を表すフローチャートである。フェイルオーバエージェント114−2がサーバ62−1の障害(故障、または、何らかの理由でもはや有効ではないこと)を発見した場合、例えば、サーバ62−2が方法700を実行する。サーバ62−2は、サーバ62−1が障害を起こしており、当該サーバが一次サーバであるとみなすのだが、クライアント54は既にサーバ62−1と交信しているので、当該クライアント54はそのままサーバ62−1と交信し続ける。この場合、方法700はステップ710から始まる。当該ステップにおいて、複製エージェントキューが解消される。上記例において、サーバ62−1が障害を起こす前に当該サーバ62−1において処理された全メッセージ(および関連の外部呼び出し)処理を削除および複製するために、ステップ405(および後続のステップ310S、315S、340S、345S、360S、370S、380S、390S、410、415、420、425、430、および435)に従って、サーバ62−2は複製エージェント126−2に保存された全データの処理を続ける。サーバ62−1がステップ370において障害を起こした場合は、サーバ62−2はクライアントから複製メッセージを受信してもよい。該クライアントは、ギャップリカバリや他の例、例えば、出願人の同時係属出願であるUS公開公報US20050138461において説明されているタイプのリカバリなどのリカバリプロトコルを実行する。クライアントが、メッセージを処理するサーバ62−1からの認証を受信することはない。この場合、サーバ62−2は、複製メッセージを認識し、複製メッセージの再処理を試みることなく、単に同じ返答を返すように構成されている。
続いて、ステップ720において、複製エージェントが停止する。上記例において、複製エージェント126−2は、サーバ62−1から受信されたデータのキューをもはや維持しないように停止するか、または、サービス94−2および98−2にメッセージを送信するように構成されている。ステップ730では、外部リソースエージェントおよびシーケンサがアクティブになる。上記例において、外部リソースエージェント118−2がアクティブになるので、該エージェントは、方法600におけるステップ325Fおよびステップ330Fで示された外部機能呼び出しを行うように構成されている。シーケンサ106−2も同様にアクティブになるので、該シーケンサ106−2は、方法600のステップ335において示されたシーケンスナンバーを割り当てるように構成され得る。同様に、シーケンサ106−2は、方法600におけるステップ355Fにおいて示された外部機能呼び出しを行うように構成され得る。続いて、ステップ740において、フェイルオーバエージェントが一次単独状態を表示するように設定されている。上記例において、フェイルオーバエージェント114−2が一次単独状態を表示するよう設定されているので、方法600におけるステップ320F、335F、350F、355Fおよび365Fに従ってライブラリ102−2が動作を認識する。続いて、ステップ720では、サーバの存在(presence)がクライアントに伝えられる。上記例において、サーバ62−2は、サーバ62−2がクライアント54からのメッセージを受容および処理する準備ができたことを、ネットワーク58を介してクライアント54に伝える。これを行う方法は特に限定されていないが、方法300の開始に先立ってサーバ62−1がクライアント54に伝えた方法と実質的に同じ方法である。セッションプロトコルがギャップリカバリを実行することができるので、各サイドは、カウンターパーティが受信しない可能性のある交信を再送信し得る。この時点で、システム50は図17に示された状態である。該状態では、サーバ62−2が一次サーバに指定されており、システム50は、一次サーバに指定されたサーバ62−2を用いて一次単独状態で動作する準備ができている。この時点で、方法は方法500におけるステップ560に戻り、そこで、クライアントからのメッセージを受信し、方法600に従って処理が行われる。
本発明の様々な特徴および構成要素の特定の組合せのみをここで述べたが、当業者であれば、開示された特徴、および構成要素、および/または、これら特徴および構成要素の代替的組合せについての所望の部分を、その希望に応じて利用し得ることが明らかであろう。例えば、システム50は2つのサーバ62−1および62−2を含んでいるが、あらゆる数のサーバが利用可能であると考えられる。ここに記載された方法の応用形を用いて、あるサーバを一次サーバに指定し、あらゆる数の付加的サーバをバックアップサーバに指定することができ、かつ、当該付加的サーバを直列または並列に接続することができる。そのような付加的サーバは、ここに開示されたサーバ62と実質的に同じコンピュータ環境および構造を有する。該付加的サーバは、あらゆる場合において、ライブラリおよび他のソフトウエア構成要素と交信する同一のサービスを有しており、これらサービスに代わって(一次サーバの場合は)外部呼び出しを行うか、または、これらサービスの複製に代わって(バックアップサーバの場合は)外部呼び出しの複製を提供する。
また、方法300が変更可能であることを理解されたい。例えば、方法300は完全に同時に動作するように構成可能であって、その場合、一次および二次共有リソースの両方が、特定のサービスによる処理の結果とともに書き込みされたことを鑑みると、一次サーバは、メッセージが処理されたことをクライアントに対して認証するのみである。ステップ380Sが実行されると直ちに、ステップ400が実行されるように方法300を変更することによって、上記を実行することができる。

Claims (19)

  1. ネットワークを介して相互接続された少なくとも2つのサーバのうちのいずれか1つを選択可能であって、選択した方と接続する少なくとも1つのクライアントを備えており、
    上記サーバのうちの1つは、上記クライアントに接続されるときに一次サーバに指定されており、かつ、上記サーバのうちの残りは、上記クライアントに接続されないときにバックアップサーバに指定されており、
    上記少なくとも1つのクライアントが、上記一次サーバにメッセージを送信するように構成されており、
    上記サーバの各々が、異なるタイプの上記メッセージを処理する複数のサービスを介して上記メッセージの全てを処理するように構成されており、
    上記サービスの各々が、上記メッセージの処理の結果に基づいて上記サーバの各々によって維持された共有リソースに対してアクセスおよびアップデートの少なくともいずれかを行なうように構成されており、
    上記サーバの各々が、上記サービスと連結されたライブラリを維持しており、
    上記ライブラリは、上記一次サーバによって維持されるとき、
    i)外部リソースに対して少なくとも1つの外部呼び出しを実行すること、
    ii)上記個々のメッセージに関するサービスからの要求に基づいて、各メッセージにシーケンスを付けること、
    iii)上記個々のメッセージに関する上記サービスに対する外部呼び出し結果および上記シーケンスの結果を戻すこと、並びに、
    iv)上記サーバによって共有されるキャッシュメモリに、上記外部呼び出し結果および上記シーケンスの結果を保存すること、
    によって、上記個々のメッセージに関する上記サービスからの要求に応答するように構成されており、かつ、
    上記一次サーバおよび上記バックアップサーバは、
    i)上記一次サーバにおいて受信される上記少なくとも1つのクライアントからのメッセージ、および、
    ii)上記保存された上記外部呼び出し結果、
    が上記バックアップサーバに複製されるように、互いに接続されており、
    上記ライブラリは、上記バックアップサーバによって維持されるとき、
    i)上記一次サーバが複製した上記保存された外部呼び出し結果の内容を利用して上記外部呼び出し結果をライブラリに戻すこと、
    によって、上記個々のメッセージに関するサービスからの要求に応答するように構成されており、
    上記バックアップサーバは、上記一次サーバと同じシーケンスにおける上記メッセージの処理に上記キャッシュメモリを利用し、上記一次サーバおよび上記バックアップサーバにおいて上記共有リソースは実質的に同一であり、上記一次サーバが障害を起こした場合、上記バックアップサーバが上記一次サーバに指定され、実質的にトランスペアレントな方法において、上記クライアントに代わって他のさらなるメッセージを処理し続けるフェイルオーバのためのシステム。
  2. 上記キャッシュメモリが揮発性メモリ内で維持される、請求項1に記載のシステム。
  3. 上記システムが電子取引システムの一部であって、上記サービスは取引エンジンに含まれており、
    上記システムが、2つの他のさらなるメッセージを上記一次サーバにそれぞれ送信する2つのさらなるクライアントを備えており、
    上記他のさらなるメッセージの各々が上記メッセージと実質的に同じ方法で処理される、請求項1に記載のシステム。
  4. 上記メッセージのうちの1つが買い注文を示しており、上記受信された2つの他のさらなるメッセージが、実質的に同じ回数(different but nearly identical times)受信されており、
    上記2つの他のさらなるメッセージの両方が、上記買い注文に適応する売り注文を示しており、上記一次サーバが障害を起こした場合に、上記バックアップサーバが上記メッセージの処理を続けて、上記売り注文のうちの注文のタイミングが早い方が上記買い注文と適合されるようになっている、請求項3に記載のシステム。
  5. 上記外部リソースが、オペレーティングシステムのタイムスタンプおよびマーケットフィードである、請求項4に記載のシステム。
  6. 上記外部リソースが、オペレーティングシステムのタイムスタンプである、請求項1に記載のシステム。
  7. ネットワークを介して相互接続された少なくとも2つのサーバのうちのいずれか1つを選択可能であって、選択した方と接続する少なくとも1つのクライアントを備えており、
    上記サーバのうちの1つは、上記クライアントに接続されるときに一次サーバに指定され、かつ、上記サーバのうちの残りは、上記クライアントに接続されないときにバックアップサーバに指定されており、
    上記少なくとも1つのクライアントが、上記一次サーバにメッセージを送信するように構成されており、
    上記サーバは、上記クライアントに代わって複合スレッドを用いて上記メッセージを処理するように構成されており、さらに、上記メッセージの処理に関して使用される上記スレッドの各々にアクセス可能な共有リソースを維持するように構成されており、
    上記一次サーバは、上記1つ以上の個々のメッセージに関する外部リソースに対して少なくとも1回の外部機能呼び出しを行うことによって上記メッセージを処理するように構成されており、
    上記一次サーバは、
    i)上記メッセージ、
    ii)上記メッセージに関する上記外部機能呼び出し結果、および、
    iii)上記メッセージを処理するためのシーケンス、
    を、上記バックアップサーバに複製するように構成されており、
    上記バックアップサーバは、上記シーケンスに従って上記一次サーバから受信される上記複製された外部機能呼び出し結果を用いて、上記メッセージを処理するように構成されており、上記サーバの各々による上記メッセージ処理の間、上記共有リソースが、上記一次サーバおよび上記バックアップサーバの両方において実質的に同一であるように構成されている、フェイルオーバのためのシステム。
  8. ネットワークを介して相互接続された少なくとも2つのサーバのうちのいずれか1つを選択可能であって、選択した方と接続する少なくとも1つのクライアントを備えており、
    上記サーバのうちの1つは、上記クライアントに接続されるときに一次サーバに指定され、かつ、上記サーバのうちの残りは、上記クライアントに接続されないときにバックアップサーバに指定されており、
    上記少なくとも1つのクライアントが、上記一次サーバにメッセージを送信するように構成されており、
    上記サーバは、上記サーバの各々において同一である少なくとも1つのサービスであって、上記個々のサービスに関するサーバが上記一次サーバか上記バックアップサーバのいずれで動作しているかを認識しない少なくとも1つのサービスを用いて、上記メッセージを処理するように構成されており、
    上記サーバは、上記サーバが上記一次サーバであるか、または、上記サーバが上記バックアップサーバであるかを示すライブラリを維持するようにさらに構成されており、
    各サーバ内部にて提供される上記サービスは、その個々の上記ライブラリを介して少なくとも1回の外部呼び出しを行うように構成されており、
    上記一次サーバにおける上記ライブラリは、上記外部呼び出しを完了させて当該外部呼び出しの結果を上記一次サーバにおける上記サービスに戻すように構成されており、上記バックアップサーバにおける上記サービスに対して上記外部呼び出しの結果を送信するようにさらに構成されている、フェイルオーバのためのシステム。
  9. 上記ライブラリが、1組または異なる複数の組の固有の有効コードとして実施されている、請求項8に記載のシステム。
  10. 上記サーバ各々が、上記サービスが上記メッセージの処理結果を保存することができる共有リソースを維持するように構成されている、請求項8に記載のシステム。
  11. 上記共有リソースが、個々のサーバにおけるランダムアクセスメモリ内に維持されている、請求項10に記載のシステム。
  12. 上記外部呼び出しがタイムスタンプ要求である、請求項8に記載のシステム。
  13. 上記システムが電子取引システムの一部であって、メッセージは、セキュリティが買い注文または売り注文であるかのメッセージであって、上記外部呼び出しが、上記セキュリティの価値に関するマーケットフィード相場要求である、請求項8に記載のシステム。
  14. 上記少なくとも1つのサービスが、注文受付サービス、注文取消サービス、注文変更サービス、注文適合サービス、予め実行された取引を行うためのサービス、またはクロス取引を行うためのサービス、を含んでいる、請求項8に記載のシステム。
  15. 上記一次サーバにおける上記サービスは、上記外部呼び出しの結果が正しく上記バックアップサーバに送信されたことを上記バックアップサーバが確認した場合、上記メッセージが処理されたことを上記クライアントが認証できるように構成されている、請求項10に記載のシステム。
  16. 上記一次サーバにおける上記サービスは、上記外部呼び出しの結果が正しく上記バックアップサーバに送信されたことを上記バックアップサーバが確認するか否かに関わらず、上記メッセージが処理されたことを上記クライアントが認証できるように構成されている、請求項10に記載のシステム。
  17. 上記一次サーバは、所定の期限内に、上記外部呼び出しの結果が正しく上記バックアップサーバに送信されたことが、上記バックアップサーバが確認しない場合、当該バックアップサーバが障害を起こしたとみなす、請求項16に記載のシステム。
  18. システムにおけるフェイルオーバのための方法であって、
    ネットワークを介して相互接続された少なくとも2つのサーバのうちのいずれか1つを選択可能であって、選択した方と接続する少なくとも1つのクライアントを備えており、
    上記サーバのうちの1つは、上記クライアントに接続されるときに一次サーバに指定され、かつ、上記サーバのうちの残りは、上記クライアントに接続されないときにバックアップサーバに指定されており、
    上記少なくとも1つのクライアントが、上記一次サーバにメッセージを送信するように構成されており、
    上記方法は、
    上記サーバの各々において同一である少なくとも1つのサービスであって、上記個々のサービスに関するサーバが上記一次サーバか上記バックアップサーバのいずれで動作しているか認識しない上記少なくとも1つのサービスを用いて、上記メッセージを処理するように上記サーバを構成するステップと、
    上記サーバが上記一次サーバであるか、または、上記サーバが上記バックアップサーバであるかを示すライブラリを維持するように上記サーバを構成するステップと、
    その個々の上記ライブラリを介して外部呼び出しを行うように上記サービスを構成するステップと、
    上記外部呼び出しを完了させて当該外部呼び出しの結果を上記一次サーバにおける上記サービスに戻すように、かつ、上記バックアップサーバにおける上記サービスに対して上記外部呼び出しの結果を送信するように上記一次サーバにおける上記ライブラリを構成するステップと、を含む方法。
  19. 選択された少なくとも1つのクライアントと接続可能なネットワークを介して相互接続された少なくとも2つのサーバのうちのいずれか1つのサーバ上で実行可能な、一組のプログラミング命令を保存するコンピュータ読み取り可能な記録媒体であって、
    上記サーバのうちの1つが、上記クライアントに接続されるときに一次サーバに指定されており、かつ、上記サーバのうちの残りが、上記クライアントに接続されないときにバックアップサーバに指定されており、上記少なくとも1つのクライアントが、上記一次サーバにメッセージを送信するように構成されており、
    上記プログラミング命令は、
    上記サーバの各々において同一の少なくとも1つのサービスを用いて上記メッセージを処理するように、かつ、上記個々のサービスに関するサーバが上記一次サーバか上記バックアップサーバかのいずれで動作しているかを認識しないように、上記サーバを構成するための命令と、
    上記サーバが上記一次サーバであるか、上記サーバが上記バックアップサーバであるかを示すライブラリを維持するように、上記サーバを構成するための命令と、
    上記個々のライブラリを介して外部呼び出しを行うように、上記サービスを構成するための命令と、
    上記外部呼び出しを完了させて上記一次サーバにおける上記サービスに対して上記外部呼び出しの結果を戻すように、かつ、上記バックアップサーバにおける上記サービスに対して上記外部呼び出し結果を送信するように、上記一次サーバにおける上記ライブラリを構成するための命令とを含む、コンピュータ読み取り可能な記録媒体。
JP2009522059A 2006-08-04 2007-02-19 フェイルオーバシステムおよび方法 Expired - Fee Related JP5355400B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/498,802 US7725764B2 (en) 2006-08-04 2006-08-04 Failover system and method
US11/498,802 2006-08-04
PCT/CA2007/000246 WO2008014585A1 (en) 2006-08-04 2007-02-19 Failover system and method

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2012219878A Division JP5551749B2 (ja) 2006-08-04 2012-10-01 フェイルオーバシステムおよび方法
JP2013136434A Division JP5536939B2 (ja) 2006-08-04 2013-06-28 フェイルオーバシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2009545788A true JP2009545788A (ja) 2009-12-24
JP5355400B2 JP5355400B2 (ja) 2013-11-27

Family

ID=38996808

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2009522059A Expired - Fee Related JP5355400B2 (ja) 2006-08-04 2007-02-19 フェイルオーバシステムおよび方法
JP2012219878A Expired - Fee Related JP5551749B2 (ja) 2006-08-04 2012-10-01 フェイルオーバシステムおよび方法
JP2013136434A Expired - Fee Related JP5536939B2 (ja) 2006-08-04 2013-06-28 フェイルオーバシステムおよび方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2012219878A Expired - Fee Related JP5551749B2 (ja) 2006-08-04 2012-10-01 フェイルオーバシステムおよび方法
JP2013136434A Expired - Fee Related JP5536939B2 (ja) 2006-08-04 2013-06-28 フェイルオーバシステムおよび方法

Country Status (8)

Country Link
US (4) US7725764B2 (ja)
EP (3) EP2479670A3 (ja)
JP (3) JP5355400B2 (ja)
CN (2) CN101523355B (ja)
AU (1) AU2007281055B2 (ja)
CA (2) CA2923373A1 (ja)
MX (1) MX2009001241A (ja)
WO (1) WO2008014585A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011048678A (ja) * 2009-08-27 2011-03-10 Fujitsu Ltd 業務操作支援方法及びコンピュータ装置
JP2011514561A (ja) * 2008-03-20 2011-05-06 華為技術有限公司 背景雑音生成方法および雑音処理装置
JP2013025365A (ja) * 2011-07-15 2013-02-04 Nec Corp 二重化システムにおける予備装置の障害通知方法
JP2013250918A (ja) * 2012-06-04 2013-12-12 Hitachi Ltd 複数計算機が独立動作する制御システム
JP5698865B2 (ja) * 2013-03-12 2015-04-08 株式会社東芝 データベースシステム、プログラムおよびデータ処理方法
WO2015145586A1 (ja) * 2014-03-25 2015-10-01 株式会社Murakumo データベースシステム、情報処理装置、方法およびプログラム

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7113980B2 (en) * 2001-09-06 2006-09-26 Bea Systems, Inc. Exactly once JMS communication
US7870265B2 (en) 2005-06-30 2011-01-11 Oracle International Corporation System and method for managing communications sessions in a network
US8621275B1 (en) 2010-08-06 2013-12-31 Open Invention Network, Llc System and method for event-driven live migration of multi-process applications
US8584145B1 (en) 2010-08-06 2013-11-12 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
US8589953B1 (en) * 2010-08-06 2013-11-19 Open Invention Network, Llc System and method for transparent consistent application-replication of multi-process multi-threaded applications
US9141481B1 (en) * 2010-08-06 2015-09-22 Open Invention Network, Llc System and method for reliable non-blocking messaging for multi-process application replication
CN101346634B (zh) 2005-11-04 2012-10-24 甲骨文国际公司 用于通信网络中的网守的系统和方法
US8001250B2 (en) 2006-05-16 2011-08-16 Oracle International Corporation SIP and HTTP convergence in network computing environments
US8171466B2 (en) 2006-05-16 2012-05-01 Oracle International Corporation Hitless application upgrade for SIP server architecture
US8219697B2 (en) * 2006-05-17 2012-07-10 Oracle International Corporation Diameter protocol and SH interface support for SIP server architecture
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US7480827B2 (en) * 2006-08-11 2009-01-20 Chicago Mercantile Exchange Fault tolerance and failover using active copy-cat
US8041985B2 (en) * 2006-08-11 2011-10-18 Chicago Mercantile Exchange, Inc. Match server for a financial exchange having fault tolerant operation
US7434096B2 (en) 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation
US7661027B2 (en) * 2006-10-10 2010-02-09 Bea Systems, Inc. SIP server architecture fault tolerance and failover
US20080086567A1 (en) * 2006-10-10 2008-04-10 Bea Systems, Inc. SIP server architecture for improving latency in message processing
US20080147551A1 (en) * 2006-12-13 2008-06-19 Bea Systems, Inc. System and Method for a SIP Server with Online Charging
US7844851B2 (en) * 2006-12-13 2010-11-30 Oracle International Corporation System and method for protecting against failure through geo-redundancy in a SIP server
US8078737B2 (en) * 2006-12-13 2011-12-13 Oracle International Corporation System and method for efficient storage of long-lived session state in a SIP server
US9667430B2 (en) * 2006-12-13 2017-05-30 Oracle International Corporation System and method for a SIP server with offline charging
US8195340B1 (en) * 2006-12-18 2012-06-05 Sprint Communications Company L.P. Data center emergency power management
GB0706494D0 (en) * 2007-04-03 2007-05-09 British Telecomm Computer telephony system
US7685044B1 (en) * 2007-05-11 2010-03-23 Morgan Stanley Low latency trading system
CA2630014C (en) * 2007-05-18 2014-05-27 Nec Infrontia Corporation Main device redundancy configuration and main device replacing method
US8201016B2 (en) * 2007-06-28 2012-06-12 Alcatel Lucent Heartbeat distribution that facilitates recovery in the event of a server failure during a user dialog
US20100017321A1 (en) * 2008-07-18 2010-01-21 Chicago Mercantile Exchange, Inc. Adaptive Implied Spread Matching
US20100070471A1 (en) * 2008-09-17 2010-03-18 Rohati Systems, Inc. Transactional application events
WO2010090325A1 (ja) 2009-02-09 2010-08-12 日本電気株式会社 通信システム、通信装置、制御装置、制御方法及びプログラム
US8682954B2 (en) * 2009-07-15 2014-03-25 International Business Machines Corporation Replication in a network environment
US8676753B2 (en) 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US8074107B2 (en) 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances
US8335765B2 (en) * 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US10572937B2 (en) 2010-06-17 2020-02-25 Chicago Mercantile Exchange Inc. Generating implied orders based on electronic requests for quotes
JP5441834B2 (ja) * 2010-06-25 2014-03-12 古野電気株式会社 航法データ共有システム及び航法機器
US8578202B2 (en) * 2010-07-29 2013-11-05 Ca, Inc. System and method for providing high availability for distributed application
JP5481315B2 (ja) * 2010-08-20 2014-04-23 株式会社東芝 証券売買システム及び装置
US9002946B2 (en) * 2010-08-25 2015-04-07 Autodesk, Inc. Dual modeling environment in which commands are executed concurrently and independently on both a light weight version of a proxy module on a client and a precise version of the proxy module on a server
US8589732B2 (en) 2010-10-25 2013-11-19 Microsoft Corporation Consistent messaging with replication
KR101413298B1 (ko) 2010-11-04 2014-06-27 한국전자통신연구원 단편적 정보를 이용하여 메타 데이터를 복구하기 위한 장치, 시스템 및 그 방법
US8451828B2 (en) 2010-11-23 2013-05-28 Mitel Network Corporation Registering an internet protocol phone in a dual-link architecture
CA2745823C (en) * 2010-11-23 2014-06-17 Mitel Networks Corporation Fast detection and reliable recovery on link and server failures in a dual link telephony server architecture
US8345840B2 (en) 2010-11-23 2013-01-01 Mitel Networks Corporation Fast detection and reliable recovery on link and server failures in a dual link telephony server architecture
US8850261B2 (en) * 2011-06-01 2014-09-30 Microsoft Corporation Replaying jobs at a secondary location of a service
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
CN102891762B (zh) * 2011-07-20 2016-05-04 赛恩倍吉科技顾问(深圳)有限公司 连续处理网络数据的系统及方法
US8745157B2 (en) 2011-09-02 2014-06-03 Trading Technologies International, Inc. Order feed message stream integrity
CN102541498B (zh) * 2011-12-20 2015-02-25 人民网股份有限公司 一种通过移动终端在pc服务器上显示图片的方法及系统
CN103176516B (zh) * 2011-12-23 2016-07-06 英业达股份有限公司 机柜系统及机柜系统的监控方法
US9058326B1 (en) 2012-06-29 2015-06-16 Emc Corporation Recovery and flush of endurant cache
US8862642B1 (en) * 2012-06-29 2014-10-14 Emc Corporation Endurant cache
CN105379229A (zh) 2013-06-13 2016-03-02 多伦多证券交易所 使用分段队列远程数据存取的设备互联失效备援系统和方法
CA2911001C (en) * 2013-06-13 2019-11-19 Tsx Inc. Failover system and method
US10664548B2 (en) 2013-07-12 2020-05-26 Trading Technologies International, Inc. Tailored messaging
US9280426B2 (en) * 2013-07-24 2016-03-08 Solar Turbines Incorporated System and method for server redundancy
JP6307858B2 (ja) * 2013-11-29 2018-04-11 富士通株式会社 伝送装置、伝送システム、及び監視制御方法
CN103942127B (zh) * 2014-02-21 2016-08-24 上海华力微电子有限公司 一种wat测试的备份结构及备份方法
US9578112B2 (en) * 2014-04-30 2017-02-21 Jive Communications, Inc. Reliability of a connection during a communication session on a network device
CN104052799B (zh) * 2014-05-23 2018-01-26 上海爱数信息技术股份有限公司 一种利用资源环实现高可用存储的方法
CN105629907B (zh) * 2014-10-30 2018-12-28 台达电子工业股份有限公司 区域控制系统及其自动配置方法
TWI556076B (zh) 2014-10-30 2016-11-01 台達電子工業股份有限公司 區域控制系統及其自動配置方法
CN105550064A (zh) * 2015-12-04 2016-05-04 广州中海达定位技术有限公司 基于gnss接收机的存储器固件双重备份方法及装置
CN105573861B (zh) * 2015-12-08 2019-01-25 曙光信息产业股份有限公司 分布式文件系统中小文件的修复方法和装置
CN105550065A (zh) * 2015-12-11 2016-05-04 广州华多网络科技有限公司 一种进行数据库服务器通信管理的方法和装置
CN105573863A (zh) * 2015-12-14 2016-05-11 北京尚易德科技有限公司 一种索引文件恢复方法、装置及视频监控系统
US10599676B2 (en) 2015-12-15 2020-03-24 Microsoft Technology Licensing, Llc Replication control among redundant data centers
US10235406B2 (en) 2015-12-15 2019-03-19 Microsoft Technology Licensing, Llc Reminder processing of structured data records among partitioned data storage spaces
US11226985B2 (en) 2015-12-15 2022-01-18 Microsoft Technology Licensing, Llc Replication of structured data records among partitioned data storage spaces
US10248709B2 (en) 2015-12-15 2019-04-02 Microsoft Technology Licensing, Llc Promoted properties in relational structured data
CN106685697B (zh) * 2016-12-06 2020-03-13 中国工商银行股份有限公司 一种异常边际消息数据恢复处理的方法及系统
CN106789257B (zh) * 2016-12-23 2019-03-05 中科星图股份有限公司 一种云系统服务器状态可视化管理方法
CN106648996A (zh) * 2017-01-10 2017-05-10 郑州云海信息技术有限公司 一种存储管理软件的用户数据保护方法
CN107368507B (zh) * 2017-03-28 2020-03-27 创新先进技术有限公司 一种基于区块链的共识方法及装置
CN107480002B (zh) * 2017-07-26 2020-06-30 阿里巴巴集团控股有限公司 消息处理方法及装置、电子设备
CN107886328B (zh) * 2017-11-23 2021-01-26 深圳壹账通智能科技有限公司 交易处理方法、装置、计算机设备及存储介质
CN108415797A (zh) * 2018-03-05 2018-08-17 山东超越数控电子股份有限公司 一种避免服务器故障切换时数据库数据丢失的方法
EP4283482A3 (en) * 2018-07-06 2024-01-24 Snowflake Inc. Data replication and data failover in database systems
CN109472680A (zh) * 2018-10-26 2019-03-15 中国银行股份有限公司 一种账务处理方法及系统
US10887382B2 (en) * 2018-12-18 2021-01-05 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US10983886B2 (en) 2018-12-18 2021-04-20 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11252019B2 (en) 2018-12-18 2022-02-15 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11489730B2 (en) 2018-12-18 2022-11-01 Storage Engine, Inc. Methods, apparatuses and systems for configuring a network environment for a server
US11176002B2 (en) 2018-12-18 2021-11-16 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US10958720B2 (en) 2018-12-18 2021-03-23 Storage Engine, Inc. Methods, apparatuses and systems for cloud based disaster recovery
US11178221B2 (en) 2018-12-18 2021-11-16 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
CN109992384B (zh) * 2019-03-18 2020-07-14 北京方鸿智能科技有限公司 服务注册发现协调系统及其方法
CN110298758B (zh) * 2019-07-09 2021-10-01 恒生电子股份有限公司 订单申报方法及装置
US11360866B2 (en) * 2020-04-14 2022-06-14 International Business Machines Corporation Updating stateful system in server cluster
CN112669148A (zh) * 2020-12-22 2021-04-16 深圳市富途网络科技有限公司 一种处理订单的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11502659A (ja) * 1996-01-26 1999-03-02 ヒューレット・パッカード・カンパニー 故障許容処理方法
JP2002522845A (ja) * 1998-08-11 2002-07-23 テレフオンアクチーボラゲツト エル エム エリクソン(パブル) フォールトトレラント・コンピュータシステム
JP2002287999A (ja) * 2001-03-26 2002-10-04 Duaxes Corp サーバの二重化方法、二重化サーバシステム、および二重化データベースサーバ

Family Cites Families (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339392A (en) * 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
US5307481A (en) * 1990-02-28 1994-04-26 Hitachi, Ltd. Highly reliable online system
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5157663A (en) 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
US5305200A (en) 1990-11-02 1994-04-19 Foreign Exchange Transaction Services, Inc. Financial exchange system having automated recovery/rollback of unacknowledged orders
GB9027249D0 (en) * 1990-12-17 1991-02-06 Reuters Ltd Offer matching system
JP3409859B2 (ja) 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
DE69119222T2 (de) 1991-06-04 1996-11-21 Ibm Datensicherung und Beseitigung in einem Datenverarbeitungssystem
US5437022A (en) 1992-12-17 1995-07-25 International Business Machines Corporation Storage controller having additional cache memory and a means for recovering from failure and reconfiguring a control unit thereof in response thereto
GB2281644A (en) 1993-09-02 1995-03-08 Ibm Fault tolerant transaction-oriented data processing.
US5987432A (en) 1994-06-29 1999-11-16 Reuters, Ltd. Fault-tolerant central ticker plant system for distributing financial market data
JP3611894B2 (ja) * 1995-03-30 2005-01-19 富士通株式会社 二重化構成をもつシステム制御装置
US5713017A (en) * 1995-06-07 1998-01-27 International Business Machines Corporation Dual counter consistency control for fault tolerant network file servers
US5796934A (en) 1996-05-31 1998-08-18 Oracle Corporation Fault tolerant client server system
US6101497A (en) 1996-05-31 2000-08-08 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
US6000020A (en) 1997-04-01 1999-12-07 Gadzoox Networks, Inc. Hierarchical storage management from a mirrored file system on a storage network segmented by a bridge
US7389312B2 (en) 1997-04-28 2008-06-17 Emc Corporation Mirroring network data to establish virtual storage area network
US6108300A (en) 1997-05-02 2000-08-22 Cisco Technology, Inc Method and apparatus for transparently providing a failover network device
US6490610B1 (en) * 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US6199055B1 (en) 1997-11-05 2001-03-06 E-Stamp Corporation System and method for providing fault tolerant transcriptions over an unsecured communication channel
US6317844B1 (en) * 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6959323B1 (en) * 1998-08-27 2005-10-25 Lucent Technologies Inc. Scalable atomic multicast
US6247141B1 (en) * 1998-09-24 2001-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Protocol for providing replicated servers in a client-server system
US6202149B1 (en) 1998-09-30 2001-03-13 Ncr Corporation Automated application fail-over for coordinating applications with DBMS availability
GB2343020A (en) 1998-10-19 2000-04-26 Ibm Handling transaction failures in a transaction processing system
US6697960B1 (en) * 1999-04-29 2004-02-24 Citibank, N.A. Method and system for recovering data to maintain business continuity
US7082410B1 (en) * 1999-07-02 2006-07-25 The Nasdaq Stock Market, Inc. Line handler
US7454372B1 (en) * 1999-07-02 2008-11-18 The Nasdaq Stock Market, Inc. Market event alerts and user access to monitoring data
US8239303B2 (en) 1999-09-23 2012-08-07 The Nasdaq Omx Group, Inc. Match-off of order flow in electronic market system
US6647410B1 (en) * 1999-11-05 2003-11-11 Reuters Limited Method, apparatus and program for delivery and display of information from dynamic and static data sources
US6338126B1 (en) 1999-12-06 2002-01-08 Legato Systems, Inc. Crash recovery without complete remirror
US6574750B1 (en) * 2000-01-06 2003-06-03 Oracle Corporation Preserving consistency of passively-replicated non-deterministic objects
US6480970B1 (en) 2000-05-17 2002-11-12 Lsi Logic Corporation Method of verifying data consistency between local and remote mirrored data storage systems
US7058853B1 (en) 2000-06-09 2006-06-06 Hewlett-Packard Development Company, L.P. Highly available transaction processing
WO2002001473A1 (en) * 2000-06-26 2002-01-03 Tradingscreen, Inc. Securities trade state tracking method and apparatus
US6701455B1 (en) * 2000-08-29 2004-03-02 Hitachi, Ltd. Remote copy system with data integrity
US6823336B1 (en) 2000-09-26 2004-11-23 Emc Corporation Data storage system and method for uninterrupted read-only access to a consistent dataset by one host processor concurrent with read-write access by another host processor
US20020120546A1 (en) * 2000-12-18 2002-08-29 Paul Zajac Mutli-interface financial transaction system and method
JP2002189570A (ja) 2000-12-20 2002-07-05 Hitachi Ltd 記憶システムの二重化方法および記憶システム
US6681339B2 (en) 2001-01-16 2004-01-20 International Business Machines Corporation System and method for efficient failover/failback techniques for fault-tolerant data storage system
US7539746B2 (en) * 2001-02-01 2009-05-26 Emc Corporation Highly available transaction failure detection and recovery for electronic commerce transactions
US7480633B2 (en) * 2001-02-13 2009-01-20 American Express Bank Ltd. Real-time brokerage account application system and method
US6715098B2 (en) * 2001-02-23 2004-03-30 Falconstor, Inc. System and method for fibrechannel fail-over through port spoofing
US6523087B2 (en) 2001-03-06 2003-02-18 Chaparral Network Storage, Inc. Utilizing parity caching and parity logging while closing the RAID5 write hole
US6772363B2 (en) * 2001-03-12 2004-08-03 Hewlett-Packard Development Company, L.P. Fast failover database tier in a multi-tier transaction processing system
US20030055776A1 (en) * 2001-05-15 2003-03-20 Ralph Samuelson Method and apparatus for bundling transmission rights and energy for trading
US20020174058A1 (en) * 2001-05-18 2002-11-21 Baghdady George J. System for providing orders from a market analysis platform to the electronic communication network
US6928580B2 (en) * 2001-07-09 2005-08-09 Hewlett-Packard Development Company, L.P. Distributed data center system protocol for continuity of service in the event of disaster failures
CN100568214C (zh) * 2001-07-16 2009-12-09 Bea系统公司 用于会话复制和故障切换的方法和装置
EP1407359B1 (en) 2001-07-16 2009-09-30 Sap Ag Parallelized redo-only logging and recovery for highly available main memory database systems
US6910150B2 (en) 2001-10-15 2005-06-21 Dell Products L.P. System and method for state preservation in a stretch cluster
US7069468B1 (en) * 2001-11-15 2006-06-27 Xiotech Corporation System and method for re-allocating storage area network resources
US6954877B2 (en) * 2001-11-29 2005-10-11 Agami Systems, Inc. Fault tolerance using logical checkpointing in computing systems
US7996517B2 (en) * 2002-01-23 2011-08-09 Novell, Inc. Transparent network connection takeover
CN1714545A (zh) * 2002-01-24 2005-12-28 艾维西系统公司 容错的数据通信的方法和系统
US20040078625A1 (en) * 2002-01-24 2004-04-22 Avici Systems, Inc. System and method for fault tolerant data communication
US7107355B2 (en) * 2002-02-11 2006-09-12 Sun Microsystems, Inc. High availability lightweight directory access protocol service
US20030167224A1 (en) * 2002-02-22 2003-09-04 Periwal Vijay K. Sequential execution system of trading orders
US7143307B1 (en) * 2002-03-15 2006-11-28 Network Appliance, Inc. Remote disaster recovery and data migration using virtual appliance migration
GB0206604D0 (en) * 2002-03-20 2002-05-01 Global Continuity Plc Improvements relating to overcoming data processing failures
US6978396B2 (en) * 2002-05-30 2005-12-20 Solid Information Technology Oy Method and system for processing replicated transactions parallel in secondary server
US9311673B2 (en) * 2002-06-05 2016-04-12 Nasdaq, Inc. Security transaction matching
US20040107381A1 (en) * 2002-07-12 2004-06-03 American Management Systems, Incorporated High performance transaction storage and retrieval system for commodity computing environments
US6928577B2 (en) 2002-07-29 2005-08-09 Eternal Systems, Inc. Consistent message ordering for semi-active and passive replication
US7058850B2 (en) 2002-07-31 2006-06-06 Hewlett-Packard Development Company, L.P. Method and system for preventing data loss within disk-array pairs supporting mirrored logical units
US7752116B2 (en) * 2002-10-30 2010-07-06 Nasdaq Liffe Markets, Llc Liquidity engine for futures trading exchange
US7769650B2 (en) * 2002-12-03 2010-08-03 Jp Morgan Chase Bank Network-based sub-allocation systems and methods for swaps
US20040148247A1 (en) * 2003-01-24 2004-07-29 Lawrence Miller Network-based systems, methods, and software for initiating or executing financial transactions
JP2004259079A (ja) 2003-02-27 2004-09-16 Hitachi Ltd データ処理システム
US7587422B2 (en) * 2003-04-24 2009-09-08 Neopath Networks, Inc. Transparent file replication using namespace replication
US7251745B2 (en) * 2003-06-11 2007-07-31 Availigent, Inc. Transparent TCP connection failover
EP1678853A2 (en) * 2003-10-03 2006-07-12 Quantum Trading Analytics, Inc. Method and apparatus for measuring network timing and latency
US8655755B2 (en) * 2003-10-22 2014-02-18 Scottrade, Inc. System and method for the automated brokerage of financial instruments
US7188273B2 (en) * 2003-11-24 2007-03-06 Tsx Inc. System and method for failover
US6996502B2 (en) 2004-01-20 2006-02-07 International Business Machines Corporation Remote enterprise management of high availability systems
US8370247B2 (en) * 2004-02-13 2013-02-05 Omx Technology Ab Multi site solution for securities trading
US8601049B2 (en) * 2004-03-04 2013-12-03 The United States Postal Service System and method for providing centralized management and distribution of information to remote users
US7478275B1 (en) * 2004-03-29 2009-01-13 Symantec Operating Corporation Method and apparatus for performing backup storage of checkpoint data within a server cluster
JP2005293315A (ja) * 2004-03-31 2005-10-20 Nec Corp データミラー型クラスタシステム及びデータミラー型クラスタシステムの同期制御方法
US7523341B2 (en) * 2004-05-13 2009-04-21 International Business Machines Corporation Methods, apparatus and computer programs for recovery from failures in a computing environment
US7590706B2 (en) * 2004-06-04 2009-09-15 International Business Machines Corporation Method for communicating in a computing system
US7321906B2 (en) * 2004-07-23 2008-01-22 Omx Technology Ab Method of improving replica server performance and a replica server system
JP4491330B2 (ja) * 2004-11-08 2010-06-30 富士通株式会社 ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム
JP4383321B2 (ja) * 2004-11-09 2009-12-16 富士通株式会社 記憶制御装置および外部記憶装置
US7668962B2 (en) * 2005-02-07 2010-02-23 Symantec Operating Corporation System and method for connection failover using redirection
EP1867097B1 (en) * 2005-03-10 2016-11-02 Telecom Italia S.p.A. Disaster recovery architecture
US8191078B1 (en) * 2005-03-22 2012-05-29 Progress Software Corporation Fault-tolerant messaging system and methods
US7519859B2 (en) * 2005-08-30 2009-04-14 International Business Machines Corporation Fault recovery for transaction server
US20070113031A1 (en) * 2005-11-16 2007-05-17 International Business Machines Corporation Memory management system and method for storing and retrieving messages
US8233384B2 (en) 2005-12-21 2012-07-31 Rockstar Bidco, LP Geographic redundancy in communication networks
ATE532313T1 (de) * 2006-02-15 2011-11-15 Software Ag Ausfallsicheres system zum verwalten von client- server-kommunikation
US7496579B2 (en) * 2006-03-30 2009-02-24 International Business Machines Corporation Transitioning of database service responsibility responsive to server failure in a partially clustered computing environment
US7991683B2 (en) * 2006-04-11 2011-08-02 Fx Alliance, Llc Credit data processing system for controlling electronic trading based on credit arrangements
US8001036B2 (en) * 2006-05-30 2011-08-16 Altex-Ats Ltd System for matching orders for futures contracts which facilitate electronic trading of over the counter futures contracts
US8122144B2 (en) * 2006-06-27 2012-02-21 International Business Machines Corporation Reliable messaging using redundant message streams in a high speed, low latency data communications environment
US8676876B2 (en) * 2006-06-27 2014-03-18 International Business Machines Corporation Synchronizing an active feed adapter and a backup feed adapter in a high speed, low latency data communications environment
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US7480827B2 (en) * 2006-08-11 2009-01-20 Chicago Mercantile Exchange Fault tolerance and failover using active copy-cat
US7434096B2 (en) * 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation
US8190572B2 (en) * 2007-02-15 2012-05-29 Yahoo! Inc. High-availability and data protection of OLTP databases
US7631214B2 (en) * 2007-05-31 2009-12-08 International Business Machines Corporation Failover processing in multi-tier distributed data-handling systems
CN102224518A (zh) * 2008-11-21 2011-10-19 多伦多证券交易所 用于集合计算服务器资源的方法和系统
US8745157B2 (en) * 2011-09-02 2014-06-03 Trading Technologies International, Inc. Order feed message stream integrity
US20150135010A1 (en) 2011-09-07 2015-05-14 Scott Thomas MacQuarrie High availability system, replicator and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11502659A (ja) * 1996-01-26 1999-03-02 ヒューレット・パッカード・カンパニー 故障許容処理方法
JP2002522845A (ja) * 1998-08-11 2002-07-23 テレフオンアクチーボラゲツト エル エム エリクソン(パブル) フォールトトレラント・コンピュータシステム
JP2002287999A (ja) * 2001-03-26 2002-10-04 Duaxes Corp サーバの二重化方法、二重化サーバシステム、および二重化データベースサーバ

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011514561A (ja) * 2008-03-20 2011-05-06 華為技術有限公司 背景雑音生成方法および雑音処理装置
US8494846B2 (en) 2008-03-20 2013-07-23 Huawei Technologies Co., Ltd. Method for generating background noise and noise processing apparatus
JP2011048678A (ja) * 2009-08-27 2011-03-10 Fujitsu Ltd 業務操作支援方法及びコンピュータ装置
JP2013025365A (ja) * 2011-07-15 2013-02-04 Nec Corp 二重化システムにおける予備装置の障害通知方法
JP2013250918A (ja) * 2012-06-04 2013-12-12 Hitachi Ltd 複数計算機が独立動作する制御システム
JP5698865B2 (ja) * 2013-03-12 2015-04-08 株式会社東芝 データベースシステム、プログラムおよびデータ処理方法
WO2015145586A1 (ja) * 2014-03-25 2015-10-01 株式会社Murakumo データベースシステム、情報処理装置、方法およびプログラム

Also Published As

Publication number Publication date
MX2009001241A (es) 2009-03-26
EP2479670A3 (en) 2013-11-13
AU2007281055B2 (en) 2012-01-19
US7725764B2 (en) 2010-05-25
CA2659844A1 (en) 2008-02-07
US20080126832A1 (en) 2008-05-29
JP5551749B2 (ja) 2014-07-16
CN101523355A (zh) 2009-09-02
EP2049999B1 (en) 2014-05-07
US20140115380A1 (en) 2014-04-24
WO2008014585A1 (en) 2008-02-07
JP2014002751A (ja) 2014-01-09
US20110225448A1 (en) 2011-09-15
CN103593267A (zh) 2014-02-19
AU2007281055A2 (en) 2009-02-26
EP2479671A3 (en) 2013-11-13
CN101523355B (zh) 2013-07-24
JP5536939B2 (ja) 2014-07-02
US20100198718A1 (en) 2010-08-05
CA2923373A1 (en) 2008-02-07
JP5355400B2 (ja) 2013-11-27
CA2659844C (en) 2016-10-18
JP2013033493A (ja) 2013-02-14
US8909977B2 (en) 2014-12-09
US8683257B2 (en) 2014-03-25
EP2049999A1 (en) 2009-04-22
EP2049999A4 (en) 2009-11-18
EP2479671A2 (en) 2012-07-25
AU2007281055A1 (en) 2008-02-07
US7975174B2 (en) 2011-07-05
EP2479670A2 (en) 2012-07-25

Similar Documents

Publication Publication Date Title
JP5536939B2 (ja) フェイルオーバシステムおよび方法
CA2921108C (en) System and method for failover
US9798639B2 (en) Failover system and method replicating client message to backup server from primary server
AU2012202229B2 (en) Failover system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120529

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120828

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121001

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130402

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130628

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130628

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130722

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130827

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees