JP2014529141A - クラスタ化クライアントのフェイルオーバ - Google Patents

クラスタ化クライアントのフェイルオーバ Download PDF

Info

Publication number
JP2014529141A
JP2014529141A JP2014529876A JP2014529876A JP2014529141A JP 2014529141 A JP2014529141 A JP 2014529141A JP 2014529876 A JP2014529876 A JP 2014529876A JP 2014529876 A JP2014529876 A JP 2014529876A JP 2014529141 A JP2014529141 A JP 2014529141A
Authority
JP
Japan
Prior art keywords
client
resource
request
application
access
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
JP2014529876A
Other languages
English (en)
Other versions
JP6210987B2 (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2014529141A publication Critical patent/JP2014529141A/ja
Application granted granted Critical
Publication of JP6210987B2 publication Critical patent/JP6210987B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

クライアントクラスタ化環境で動作するとき、要求元にリソースに対する継続したアクセスをもたらすために、アプリケーションインスタンス識別子が様々なシステムおよび方法とともに用いられる。第1のクライアント上に常駐する要求元は、リソースにアクセスしようと試みる。第1のクライアントは、リソースにアクセスすることを求める要求を送る。その要求は、要求元を識別するアプリケーションインスタンス識別子と関連付けることができる。ある時点で、第1のクライアントが失敗し、要求元は、フェイルオーバ機構を介して第2のクライアントと関連付けられる。第2のクライアントは、要求元の代わりにリソースにアクセスすることを求める第2の要求を送る。第2の要求は、要求元のアプリケーションインスタンス識別子と関連付けられる。そのアプリケーションインスタンス識別子は、第2の要求が第1の要求と同じ要求元に属するものとして識別するために使用され、それによって、コンフリクト状況を避けながら、リソースにアクセスすることを求める第2の要求を認める。

Description

本願発明の一実施例は、例えば、クラスタ化クライアントのフェイルオーバに関する。
[0001]クラスタ化環境、たとえば仕事量が複数のマシンにわたって分配される環境は、フェイルオーバを行い、クライアントに高い情報の可用性を提供するのによく使用されている。クラスタ化環境では、クライアントが、その環境の一部である1つまたは複数のノードを介してリソースにアクセスすることが可能になる。クラスタ化環境は、クライアント、サーバまたはその両方として働くことができる。クライアントクラスタのサーバでは、アプリケーションが、クラスタを作り上げるノードのいずれもの上に常駐することができる。アプリケーションは、クライアントクラスタ内にローカルに格納される、または遠隔に格納されるリソースに関する要求を発することができる。エラーがノードで生じた場合、クライアントは、クラスタ中の異なるノードにフェイルオーバまたはマイグレートする。しかし、クライアントがエラー時に一緒に動作していたリソースに対してアクセスすることを、クライアントが再び要求をしたとき、リソースは、そのアプリケーションが常駐する先行するクライアントノードのためのサーバによって、囲われる、またはロックされる可能性がある。
本願発明の一実施例は、例えば、クラスタ化クライアントのフェイルオーバに関する。
[0002]実施形態が構成されているのは、これらおよび他の考慮事項に関するものである。また、比較的具体的な問題が議論されているが、実施形態は、背景技術で識別された具体的な問題を解決することに限定すべきでないことを理解すべきである。
[0003]この概要は、「発明を実施するための形態」で以下にさらに述べる概念の選択されたものを簡単化した形で紹介するために設けている。この概要は、請求する主題のキーまたは絶対に必要な特徴を識別するようには意図していない、また、請求する主題の範囲を決定するための助けとして使用するようにも意図していない。
[0004]本明細書に、アプリケーションがクラスタ化クライアント環境中の新しいノードにマイグレートした後、リソースに対する継続したアクセスをアプリケーションまたはプロセスにもたらすシステムおよび方法を開示する。クライアントクラスタ中のノード上に常駐するアプリケーションまたはプロセスは、リソースにアクセスすることを求める要求をサーバに送る。実施形態では、一意アプリケーションインスタンス識別子は、リソースを要求しているアプリケーションを識別するために使用される。一意アプリケーション識別子は、要求とともに提供することができる。クライアントがリソースにアクセスしたとき、アプリケーションインスタンス識別子は、要求されるリソースと関連付けられる。
[0005]アプリケーションまたはプロセスが、リソースに対するその操作を完了するのに先立ち、クライアントがクラスタ化環境中でその上に常駐するノードがエラーを被る恐れがあり、それによって、ノードは、失敗する、またはそうでなければ、アプリケーションがそのリソースを適切に解放する前に、リソースに対するアクセスを失うことになる。そのような状況下では、リソースは、前のクライアントの要求によって、サーバ上で囲われた、またはロックされた状態のままに留まる恐れがある。クライアントクラスタ中の異なるノードにフェイルオーバしたとき、新しいクライアントノード上のアプリケーションは、リソースを管理するサーバとの接続を再構築し、アプリケーションがエラー時において前にアクセスしていたリソースに関する第2の要求を行うことができる。第2の要求は、第1の要求とともに送られたアプリケーションインスタンス識別子を含むことができる。リソースに関する第2の要求が、クラスタ化環境中の異なるノードから受け取られることがあるが、アプリケーションインスタンス識別子によって、要求を管理するサーバは、前にリソースをロックさせたのと同じアプリケーションまたはプロセスに第2の要求が属すると決定することを許可される。そうすることによって、サーバは、リソースの使用を無効にし、リソースにアクセスすることを求めるクライアントの第2の要求を認め、さらにコンフリクト状況が生じないことを保証することが可能になる。
[0006]実施形態は、コンピュータプロセス、計算システムとして、またはコンピュータプログラム製品またはコンピュータ可読媒体などの製造物品として実施することができる。コンピュータプログラム製品は、コンピュータシステムが可読な、コンピュータプロセスを実行するための命令のコンピュータプログラムをエンコードするコンピュータ記憶媒体とすることができる。また、コンピュータプログラム製品は、コンピュータシステムが可読な、コンピュータプロセスを実行するための命令のコンピュータプログラムをエンコードする、搬送波上で伝搬する信号とすることができる。
[0007]次の図を参照して、限定するものでなく包括的なものでもない実施形態を述べる。
[0008]本明細書に述べる実施形態を実施するために使用することができるシステムを例示する図である。 [0009]本明細書に述べる実施形態を実施するために使用することができるソフトウェア環境を例示するブロック図である。 [0010]クラスタ化環境中でリソースに対する継続したアクセスを得るために、クライアントが実施することができる方法の一実施形態を示すフローチャートである。 [0011]リソースに対する継続したアクセスをもたらすために、クラスタ化環境中のノードによって実施される方法の一実施形態を示すフローチャートである。 [0012]実施形態を実施するのに適切な計算環境のブロック図である。
[0013]以下で添付図面を参照してより詳細に様々な実施形態を述べ、図面は、実施形態の一部をなし、具体的で例示的な実施形態を示す。しかし、実施形態は、多くの異なる形態で実施することができ、本明細書に述べる実施形態に限定するものとして解釈すべきでない、むしろ、これらの実施形態は、この開示が徹底的で完全なものなるように、および実施形態の範囲を当業者に十分伝達するように提示する。実施形態は、方法、システムまたは装置として実施することができる。それゆえ、実施形態は、ハードウェア実施態様、全体がソフトウェアによる実施態様またはソフトウェアおよびハードウェアの態様を組み合わせた実施態様の形態を取ることができる。したがって、次の詳細な記述は、限定する意味で理解すべきでない。
[0014]本開示の実施形態は、要求元が、フェイルオーバ事象の後、リソースに対するアクセスを再取得することを可能にする、クラスタ化クライアントのフェイルオーバ機構を提供することに関するものである。実施形態では、要求元は、プロセス、アプリケーション、またはアプリケーションの1つまたは複数の子プロセスとすることができる。リソースは、計算環境中のファイル、オブジェクト、データ、またはいずれもの他のタイプのリソースとすることができる。実施形態では、リソースは、独立型のサーバ上に常駐することができる、またはそれは、クラスタ化環境中に常駐することができる。本明細書に開示する実施形態では、クラスタ化環境は、1つまたは複数のノード(たとえば、クライアントおよび/またはサーバの装置)を含むことができる。
[0015]例の実施形態では、クラスタ化環境中のノード上に常駐するアプリケーションは、特定のリソースに対するアクセスを要求することができる。実施形態では、リソースは、ローカルに(たとえばクライアントノード上に)、遠隔装置中に(たとえば、遠隔サーバに、またはクライアントクラスタ化環境中の異なるノードに)、またはクライアントクラスタ化環境と異なるクラスタ化環境に(たとえば複数のノードを含む環境に)格納することができる。たとえば、実施形態では、クラスタ化環境が、クライアントまたはサーバのクラスタとすることができるが、しかし、当業者は、本明細書に開示するシステムおよび方法を、ただしこれらには限定されないが、仮想ネットワークなど、いずれもの他のタイプの環境中で用いることができることを理解するはずである。
[0016]そのような環境では、リソースは、クライアントとアプリケーションの間で共有することができる。アプリケーションがリソースにアクセスしたとき、リソースは、囲われている、またはロックされている場合があり、それによって、アクセスしているアプリケーションがそのリソースを解放するまで、他のアプリケーションがリソースにアクセスすることが妨げられる。リソースの囲み込み、またはロックは、コンフリクトから保護する、すなわちアクセスしているアプリケーションが、リソースに対するその操作を実施する前に、別のアプリケーションによってリソースが変更されないように保護するために用いることができる。しかし、クラスタ化クライアント環境中のノードが失敗した場合、リソースにアクセスしているアプリケーションは、リソースを囲われた、またはロックされた状態から適切に解放することができない。たとえば、アプリケーションの代わりにリソースにアクセスしているクライアントノードは、ネットワーク接続を失う恐れがあり、クラッシュする可能性があり、またはそうでなければ、アプリケーションがその操作を完了してリソースを適切に解放するのに先立ち、リソースに対するアクセスを失う恐れがある。それゆえ、リソースは、それが他のクライアントまたはアプリケーションには利用できない状態のままに留まる可能性がある。リソースを囲われた、またはロックされた状態から自動的に解放する機構を用いることができ、それによって、リソースが恒久的に締め出されないように防ぐ。しかし、そのような機構は、しばしば、ある期間を待ってから、囲われた、またはロックされたリソースを解放する。
[0017]いくつかの事例では、アプリケーションが、失敗したクライアントノードからクライアントクラスタ中の異なるクライアントノードにマイグレートするフェイルオーバを行ったとき、そのアプリケーションは、その前のサーバとの接続を再構築し、異なるクライアントノードを介してリソースに対するその操作(複数可)を再開しようと試みることができる。しかし、アプリケーションのためにリソースに前にアクセスし、エラーのために失敗したクライアントノードによって、リソースが適切に解放されていないので、そのリソースに前にアクセスしたアプリケーションは、サーバがリソースをその囲われた、またはロックされた状態から解放するまで、リソースに対するそのアクセスを取り戻すことができない可能性がある。しかし、ここで、異なるノードがアプリケーションのためにリソースにアクセスしようと試みているので、サーバは、リソースに対してロックを前に確立したのと同じアプリケーションとして、そのアプリケーションを識別することができない恐れがある。しかし、同じアプリケーションがリソースにアクセスしようと試みているので、コンフリクト状況は生じない。そのような状況では、サーバがリソースに対する前のロックを解放するのを待つことによって、アプリケーションには受け入れられない遅延が生じる可能性がある。
[0018]述べたように、アプリケーションがクラスタ化クライアント環境で動作しているので、アプリケーションが、2回目に、リソースにアクセスすることを要求したとき、リソースへのアクセスを求める要求は、異なるロケーション、たとえばクライアントクラスタ化環境中の異なるノードから行うことができる。それゆえ、第2の要求は、あるロケーションまたは異なるIPアドレスから来ることができる。要求は、異なるロケーションから行うことができるので、サーバは、リソースに再びアクセスしようと試みるクライアントまたはアプリケーションが、前にそのリソースにアクセスしたのと実際に同じクライアントであると保証するという困難を負う可能性がある。本明細書に開示するシステムおよび方法は、同じアプリケーションがリソースにアクセスしようと試みている状況を識別する機構を提供し、それによって、そのような遅延を防止し、リソースに対する継続したアクセスをアプリケーションにもたらすものである。
[0019]図1は、本明細書に開示する実施形態のいくつかを実施するために使用することができるシステム100を例示する。システム100は、クライアントクラスタ102およびサーバクラスタ106を含む。クライアントクラスタは、クライアント102Aおよび102Bなど、複数のノードを含む。クライアント102Aおよび102Bは、クライアントクラスタ中に常駐する装置またはアプリケーションとすることができる。クライアントクラスタ102は、ネットワーク108を通じてサーバクラスタ106と通信することができる。実施形態では、ネットワーク108は、インターネット、WAN、LAN、または当分野で知られているいずれもの他のタイプのネットワークとすることができる。サーバクラスタ106は、リソースを格納し、それは、クライアントクラスタ102上のアプリケーション(たとえばクライアント102Aおよび102B上に常駐するアプリケーション)によってアクセスされる。実施形態では、クライアント(たとえばクライアント102A)は、クライアント上に常駐するアプリケーションの代わりにクラスタ106上のリソースにアクセスするために、クラスタ106とのセッションを確立することができる。図1では、クライアントクラスタ102は、2つのクライアント(たとえば、クライアント102Aおよび102B)だけを含んでいるが、当業者は、いずれもの数のクライアントをクライアントクラスタ102中に含めることができることを認識するはずである。
[0020]図1に示すように、サーバクラスタ106は、サーバ106A、106Bおよび106Cを含み、それらは、クラスタ106上に格納される情報に対して高い可用性と冗長性の両方を提供する。実施形態では、クラスタ106は、ファイルシステム、データベース、またはクライアント102および104によってアクセスされる他の情報を有することができる。3つのサーバを図1に示しているが、他の実施形態では、クラスタ106は、4つ以上のサーバを含んでも、または2つ以下のサーバを含んでもよい。さらにまた、本明細書に述べる実施形態が、サーバクラスタの一部であるサーバと通信するクライアントに関するものであるが、当業者は、本明細書に開示する実施形態が、また、独立型のサーバを使用して実施することができることを認識するはずである。
[0021]実施形態では、クライアントクラスタ102は、第1のクライアントノード上にエラーまたは失敗が生じた場合に備えて、クライアントが第1のクライアントノードから第2のクライアントノードにマイグレートすることを可能にするフェイルオーバ機構を提供する。当業者は、いずれものタイプのフェイルオーバ機構も、本明細書に開示するシステムおよび方法とともに用いることができることを認識するはずである。本明細書に開示するシステムおよび方法は、アプリケーションが、もしもフェイルオーバの場合、1つのクライアントから別のクライアントに(たとえばクライアント102Aからクライアント102Bに)マイグレートして、リソースに対するアクセスを再取得しようと試みたとき、不当な遅延を避けるために用いることができる。実施形態では、リソースにアクセスしているアプリケーションを識別するアプリケーションインスタンス識別子をリソースと関連付けることができる。アプリケーションインスタンス識別子は、グローバル一意識別子(GUID:globally unique identifier)とすることができ、それは、アプリケーション、アプリケーションによって行われる動作、またはアプリケーションの子プロセスと関連付けられる。たとえば、一実施形態では、アプリケーションは、GUIDであるアプリケーションインスタンス識別子と関連付けることができる。別の実施形態では、アプリケーションインスタンス識別子は、アプリケーションによって行われる具体的な操作または動作と関連付けることができる。たとえば、アプリケーションが、2つの異なるファイルに対して2つの異なるオープン要求を発行した場合、各オープン要求は、それ自体のアプリケーションインスタンス識別子を有することができる。また別の実施形態では、アプリケーションインスタンス識別子は、アプリケーションの1つまたは複数の子プロセスと関連付けることができる。本明細書に述べる実施形態から当業者に明らかになるように、アプリケーションのアプリケーションインスタンス識別子をその1つまたは複数の子プロセスと関連付けると、アプリケーションに属するリソースが、ロックされた、または囲われた状態に置かれた場合、子プロセスがリソースにアクセスすることが可能になるはずである。実施形態では、アプリケーションインスタンス識別子は、リソースに関する要求が送られたとき、またはその後で、クライアントによって送ることができる。
[0022]別の実施形態によれば、サーバクラスタ106は、クライアントクラスタ102の一部であるクライアントによってアクセスされる情報を格納することに加えて、また、もしもサーバノード失敗の場合、リソースの継続したアクセスを可能にするフェイルオーバ機構を提供する。やはり、当業者は、いずれものタイプのフェイルオーバ機構も本明細書に開示するシステムおよび方法とともに用いることができることを認識するはずである。
[0023]実施形態では、クライアントがアプリケーションの代わりにリソースへのアクセスを要求したとき、アプリケーションのアプリケーションインスタンス識別子は、その要求とともに送られる。要求を受け取ったサーバは、アプリケーションインスタンス識別子をリソースと関連付けることができる。たとえば、サーバクラスタは、アプリケーションインスタンス識別子がリソースと関連付けられるように、アプリケーションインスタンス識別子を、サーバクラスタ106中に配置された1つまたは複数のノード(たとえば、サーバ106A、106Bおよび/または106Cなどのサーバ)上に配置されたテーブルまたはキャッシュ中に格納することができる。クライアントにはリソースが用済みになる前に、クライアントがエラーを被る可能性があり、それによって、クライアントはリソースとの接続を失うことを余儀なくされることになる。たとえば、アプリケーションを提供する、またはアプリケーションのために要求または操作を行うクライアントは、サーバクラスタへのそのネットワーク接続を失う恐れがあり、クライアントは、クラッシュする可能性がある、あるいはアプリケーションによるリソースの使用を妨げる、いずれもの他のタイプのエラーが生じる可能性がある。アプリケーションは、エラーを被ったとき、クライアントクラスタ102中の新しいクライアントノードにフェイルオーバすることができる。新しいクライアントノードは、サーバクラスタに再接続して、アプリケーションのためにリソースにアクセスすることを求める第2の要求を送ることができる。実施形態では、クライアントは、サーバクラスタ106中の同じノードに、または異なるノードに再接続することができる。リソースにアクセスすることを求める第2の要求は、アプリケーションのアプリケーションインスタンス識別子を含むことができる。サーバ(たとえばサーバクラスタ106のサーバ106A)は、第2の要求を受け取ったとき、第2の要求のアプリケーションインスタンス識別子を、リソースと関連付けられるアプリケーションインスタンス識別子と比較する。2つのアプリケーションインスタンス識別子が一致した場合、サーバクラスタは、リソースの使用を無効にする。実施形態では、リソースの使用を無効にすることは、ファイルをクローズすること、リソースに対するロックを除去すること、またはそうでなければ、リソースを使用に供するために自由にするいずれもの動作を取ることを含むことができる。そのとき、サーバノードは、リソースにアクセスすることを求める、アプリケーションの第2の要求を認めることができる。第2のノードのアプリケーションインスタンス識別子が、リソースと関連付けられるアプリケーション識別子と一致しない場合、サーバは、リソースが自由になるまで、リソースへのアクセスを可能にしないことになる。
[0024]一実施形態を例示するために、クライアントクラスタ106中のクライアント102A上の要求元(たとえば、プロセス、アプリケーションなど)は、クライアント102Aがサーバクラスタ106のサーバとセッションを確立するように要求することができる。たとえば、クライアント102Aは、格納された、サーバ106A上にある、またはサーバクラスタ106の一部であるデータベースにアクセスするために、サーバ106Aとのセッションを確立することができ、サーバ106Aは、データベースにアクセスすることができる。そのとき、クライアント102Aは、要求元の代わりにリソースに関する要求を送る。要求元を識別するアプリケーションインスタンス識別子は、要求と関連付けられる。実施形態では、要求は、アプリケーションインスタンス識別子を含むことができる、またはアプリケーションインスタンス識別子は、アプリケーションインスタンス識別子が要求と関連付けられていることを、サーバ106Aが決定することができるようにして、別に送ることができる。また別の実施形態では、サーバ106Aまたはサーバクラスタ106Aは、アプリケーションインスタンス識別子を要求と関連付けるために必要な情報を既に持っていて、アプリケーションインスタンス識別子を要求とともに受け取る必要がない場合がある。次いで、サーバ106Aは、要求元がリソースにアクセスすることを認め、それによって、要求元がリソースに対する操作を実施する、またはそうでなければリソースにアクセスすることが可能になる。要求元がリソースにアクセスすることを認めたとき、サーバ106Aは、要求元が現在、リソースにアクセスしていることを示すように、アプリケーションインスタンス識別子をリソースと関連付ける。次いで、リソースは、クライアント102がその操作を完了するまで、他のクライアントまたはアプリケーションがリソースにアクセスする、またはそれを変更することができないように、囲う、またはロックすることができる。
[0025]要求元がリソースに対するその操作を完了する前、エラーが生じると、それによってクライアント102Aが失敗する、またはそうでなければリソースへのその接続を失うことになる。クライアントの要求元がその操作を完了済みであるので、要求元は、リソースの制御を解放していない。それゆえ、リソースは、囲われた、またはロックされた状態のままに留まる恐れがある。要求元またはクライアントクラスタ102は、要求元をクライアント102Aからクライアント102Bにマイグレートさせるために、フェイルオーバ機構を用いることができる。一度フェイルオーバ操作が完了すると、クライアント102Bは、要求元のためにサーバクラスタ106に再接続することができる。クライアント102Bは、サーバ106Aに再接続する、またはサーバクラスタ106中のいずれもの他のサーバ(たとえば、サーバ106Bまたは106C)との新しい接続を確立することができる。一例の状況では、クライアント102Bは、サーバ106Aに再接続する。再接続したとき、クライアント102Bは、要求元の代わりにリソースにアクセスすることを求める第2の要求を送ることができる。既に述べたように、要求元がリソースの制御を解放していないので、リソースは、依然としてロックされた、または囲われた状態にある可能性がある。リソースにアクセスするためには、サーバが、たとえばタイムアウト操作を通じてリソースの状態を自動的に変化させることを待つことをしないで、要求元は、そのアプリケーションインスタンス識別子に第2の要求を再び付加することができる。サーバ106Aは、第2の要求を付加されたアプリケーションインスタンス識別子を、リソースと関連付けられるアプリケーションインスタンス識別子と比較する。たとえば、受け取った、またはそうでなければ、第2の要求と関連付けられるアプリケーションインスタンス識別子を、サーバ106Aがリソースと関連付けたアプリケーションインスタンス識別子と比較することによって比較する。関連付けられるアプリケーションインスタンス識別子は、サーバ106Aのローカルキャッシュまたはテーブル中に格納することができる、またはそれは、サーバクラスタ106中のどこかほかに格納することができる。キャッシュ中に格納されたアプリケーションインスタンス識別子が、リソースと関連付けられるアプリケーションインスタンス識別子と一致した場合、サーバ106Aは、リソースの使用を無効にする、またはそうでなければそれを自由にし、リソースが何らかの他の機構によって(たとえば、囲われた、またはロックされた状態がタイムアウトすることによって)解放されるのを待つことなしに、クライアント102Bが要求元のためにリソースに再びアクセスすることを可能にする。アプリケーションインスタンス識別子が一致しない場合、クライアント102Bは、リソースにアクセスする前に、リソースが自由になるのを待つ必要があることになる。
[0026]上記の例では、クライアント102Bが同じサーバ106Aに再接続したが、他の実施形態では、クライアントがサーバクラスタ106中の別のノードに接続することも可能である。たとえば、クライアント102Bは、サーバ106Bに再接続し、要求元の代わりにリソースに対するアクセスを再取得することを求める第2の要求を提出することができる。第2の要求は、要求元のアプリケーションインスタンス識別子と、たとえば、それを第2の要求中に含める、またはそうでなければ第2の要求と関連付けることによって、再び関連付けることができる。この例では、サーバ106Bは、ローカルキャッシュ中に格納されるリソースと関連付けられるアプリケーションインスタンス識別子を有していない可能性がある、というのはリソースへの元のアクセスがサーバ106A上にあったからである。そのような状況では、サーバ106Bは、サーバクラスタ106中の他のサーバと連絡することができて、それらサーバがリソースと関連付けられるアプリケーション識別子を有するのかどうかを決定する。リソースと関連付けられるアプリケーション識別子がサーバクラスタ中の異なるノード(たとえばサーバ106A)上に格納されている場合、サーバクラスタ中の他のノード上のアプリケーションインスタンス識別子は、第2の要求を付加されたアプリケーションインスタンス識別子と比較される。それらが一致した場合、サーバ106Bは、サーバ106Aに、リソースの使用を無効にすることを求める要求を送ることができ、そのとき、サーバ106Bは、要求元(今はクライアント102B上にある)がリソースにアクセスすることを可能にすることができる。アプリケーションインスタンス識別子が一致しない場合、クライアント102Bは、リソースが自由になるのを待つ必要があることになる。
[0027]上記の例に基づき、当業者は、クライアントクラスタ102中のいずれものクライアントノードが、クライアントクラスタ102中の要求元のためにアクセスし、次いでそれにアクセスをもたらすように要求することができることを認識するはずである。さらにまた、サーバクラスタ中のいずれものサーバノード(たとえばサーバクラスタ106中のいずれものサーバ)は、要求元が前にリソースにアクセスしたのかどうかを、たとえそのアクセスがサーバクラスタ中の異なるサーバノード上で行われたとしても、決定することが可能である。当業者は、次の記述が、図1に示す実施形態がどのように動作することができるかに関する単に一例であり、他の実施形態が存在することを認識するはずである。たとえば、クライアントノードは、遠隔サーバまたはサーバクラスタ上のリソースにアクセスすることよりむしろ、クラスタ化環境中に(たとえば、クライアントクラスタを作り上げる同じ、または異なるクライアントクラスタノード上に)常駐するリソースに対する要求元(たとえば、アプリケーションまたはプロセス)の継続したアクセスをもたらすために、本明細書に述べる実施形態を実施することができる。以下でより詳細に述べるように、本明細書に述べる実施形態は、様々な異なるステップまたは操作を伴うことができる。さらにまた、本明細書に述べる実施形態は、いずれもの適切なソフトウェアまたはハードウェアの構成要素またはモジュールを使用して実施することができる。
[0028]ここで、図2を参照すると、この図は、複数のクライアントノード(たとえば、クライアント202および204)を有するクライアントノードクラスタ201と、複数のサーバノード(たとえば、ノード1 208およびノード2 216)を有するサーバノードクラスタ206とを示す、ソフトウェア環境200のブロック図を例示する。実施形態では、クライアント202は、要求元の代わりにサーバクラスタ環境206中のリソース226などのリソースにアクセスすることを要求する。クライアントノードクラスタ201は、クライアントクラスタ102(図1)などのクライアントクラスタとすることができる。例示していないが、クライアントクラスタは、3つ以上のクライアントを含むことができる。サーバノードクラスタ206は、サーバクラスタ106(図1)などのサーバクラスタとすることができる、またはそれは、ただしこれらに限定されないが、仮想ネットワークなど、いずれもの他のタイプのクラスタ化環境とすることができる。リソース226は、クラスタ化環境の一部であるデータ記憶部228中に格納することができる。示していないが、代替実施形態では、データ記憶部228は、クラスタ化環境の一部としなくてもよいが、しかしネットワークを介してクラスタ化環境に接続することができる。そのようなネットワークの例は、ただしこれらに限定されないが、インターネット、WAN、LAN、または当分野で知られているいずれもの他のタイプのネットワークを含む。またさらなる実施形態では、データ記憶部は、クラスタ206の一部であるノード(たとえば装置)の一部とすることができる。
[0029]サーバノードクラスタ206は、ノード1 208およびノード2 216など、1つまたは複数のノードを含むことができる。2つだけのノードクラスタを図2に例示しているが、いずれもの数のノードクラスタをクラスタ化環境206中に含めることができる。実施形態では、ノードクラスタ208および216は、リソース226を求める要求を受け取り、それに対する操作を行う、および/またはそれへのアクセスを認めることが可能である。実施形態では、リソース226は、ファイル、オブジェクト、アプリケーション、データ、またはノードクラスタ206中のノードまたは独立型のサーバ上に格納される、あるいはそれらがアクセス可能ないずれもの他のタイプのリソースとすることができる。
[0030]実施形態では、クライアントは、初期要求222をクラスタ化環境206に送る。図2に例示するように、初期要求222は、クライアント202が送り、ノード1 208が受け取ることができる。しかし、代替実施形態では、初期要求222は、クライアントまたはクライアントクラスタ201中のいずれもの他のクライアントノードが送り、ノード2 216またはサーバクラスタ206中のいずれもの他のノードが受け取ることができる。例示的な要求は、ただしこれらに限定されないが、ファイルを作成する、それをオープンする、またはそうでなければ、それにアクセスすることを求める要求を含む。要求222は、クライアントからノードクラスタに、たとえば、ただしこれらに限定されないが、インターネット、WAN、LAN、または当分野で知られているいずれもの他のタイプのネットワークネットワークなどのネットワークを介して伝送することができる。初期要求222は、リソース226などのリソースにアクセスすることを求める要求を含むことができる。実施形態では、要求222は、また、クライアント202がそれの代わりに要求を行っている要求元を識別するアプリケーションインスタンス識別子を含むことができる。実施形態では、初期要求222は、1つまたは複数のメッセージから構成することができる。たとえば、要求222は、要求とアプリケーションインスタンス識別子の両方を含む単一メッセージとすることができる。別の実施形態では、要求222は、1つまたは複数の要求、さらにまた1つまたは複数のアプリケーションインスタンス識別子を含む複数のメッセージとすることができる。実施形態では、クライアント202は、要求222とともに伝送することができる、1つまたは複数のアプリケーションインスタンス識別子を格納する、および/またはそれを生成するために使用されるアプリインスタンスキャッシュ(App Instance Cache)214を含むことができる。
[0031]図2に示すように、ノード1 208は、要求222およびアプリケーションインスタンス識別子をクライアント202から受け取ることができる。要求されたリソース226が利用できる場合、たとえば別のクライアントまたはアプリケーションによって囲われていない、またはロックされていない場合、ノード1は、クライアント上で実行している要求元の代わりにリソース226にアクセスすることを求める、クライアント(たとえばクライアント202)の要求を認めることができる。リソース226へのアクセスを認めたとき、フィルタドライバ210は、クライアント202とリソース226の間の関連付けを割り当てる、またはそうでなければ、それがクライアント202から受け取ったアプリケーションインスタンス識別子を格納することによって、関連付けを生成することができる。実施形態では、関連付けは、オブジェクトとして、ノード1の一部であるアプリインスタンスキャッシュ212中に格納することができる。例示する実施形態では、アプリインスタンスキャッシュ212をノード1 208の一部として示しているが、実施形態では、アプリインスタンスキャッシュ212は、ノードクラスタ206の一部としてどこかほかに格納することができる。当業者は、ノードクラスタ206が、ノード2 216上のアプリインスタンスキャッシュ220など、1つまたは複数のアプリインスタンスキャッシュを含むことができることを認識するはずである。実施形態では、2つ以上のアプリインスタンスキャッシュが存在するとき、複数のアプリインスタンスキャッシュ中に格納されるデータは、すべてのアプリインスタンスキャッシュにわたって複製することができる、または各アプリインスタンスキャッシュが、別々のデータを格納することができる。
[0032]一実施形態では、クライアントから受け取った、要求元(たとえば、アプリケーションまたはプロセス)を識別するアプリケーションインスタンス識別子は、_NETWORK_APP_INSTANCE_ECP_CONTEXT構造中に格納することができる。_NETWORK_APP_INSTANCE_ECP_CONTEXT構造は、次のように定義することができる。
typdefstruct_NETWORK_APP_INSTANCE_ECP_CONTEXT {
USHORT Size;
USHORT Reserved;
GUID AppInstcelD;
}_NETWORK_APP_INSTANCE_ECP_CONTEXT,
*PNETWORK_APP_INSTANCE_ECP_CONTEXT;
[0033]そのような実施形態では、変数sizeが、構造のサイズに関する情報を格納することができ、変数AppInstcelDは、フェイルオーバのクラスタクライアントアプリケーション、たとえばクライアント202上で実行している要求元に関する一意アプリケーションインスタンス識別子とすることができる。実施形態では、要求元のアプリケーションインスタンス識別子を含む_NETWORK_APP_INSTANCE_ECP_CONTEXT、あるいは別のオブジェクトまたは変数は、グローバル一意識別子(GUID)キャッシュ214中に格納することができる。実施形態では、_NETWORK_APP_INSTANCE_ECP_CONTEXT構造は、リソースにアクセスすることを求める要求(たとえば、生成またはオープンの要求)と関連してクライアントからサーバに送ることができる。一実施形態では、要求元のアプリケーションインスタンス識別子は、要求元がクラスタ化クライアント環境201中においてその上で実行しているクライアントノードのGUIDキャッシュ中に格納することができる。別の実施形態では、図2には示していないが、クライアントノードクラスタ201は、アプリケーションインスタンス識別子を格納するセントラルレポジトリを有することができる。そのような実施形態では、クライアントノードクラスタ201中の複数のクライアントノードは、集中型のレポジトリにアクセスすることができる。また別の実施形態では、アプリケーションインスタンス識別子は、複数のGUIDキャッシュ(たとえば、GUIDキャッシュ214およびGUIDキャッシュ216)にわたって格納することができる。そのような実施形態では、クライアントノードクラスタ201は、反復アルゴリズムを用いることができて、複数のGUIDキャッシュが同じアプリケーションインスタンス識別子を含むことを保証する。
[0034]既に述べたように、アプリケーションインスタンス識別子は、リソース226と関連付けることができ、さらにクライアント202は、要求元の代わりにリソース226にアクセスする。サーバノード206は、サーバノードクラスタ206の一部である1つまたは複数のアプリインスタンスキャッシュ、たとえばアプリインスタンスキャッシュ212および220中にそのような関連付けを格納することができる。一実施形態では、アプリケーションインスタンス識別子は、リソース226に関するエクストラクリエイトパラメータ(ECP:Extra Create Parameter)リストにリソースを加えることによって、リソースと関連付けることができる。ECPリストは、サーバノードクラスタ206の一部であるアプリインスタンスキャッシュ、たとえばアプリインスタンスキャッシュ212および220中に格納することができる。実施形態では、ECPがサーバによって受け取られたとき、サーバは、ECPからアプリケーションインスタンス識別子を抽出し、それをキャッシュに加えてリソース、リソースハンドルなどと関連付ける。アプリケーションインスタンス識別子をクライアントクラスタ201中に格納することに関して述べたように、ノードと関連付けられるアプリケーションインスタンス識別子は、サーバノードクラスタ206中のノード上の個々のアプリインスタンスキャッシュ中に、サーバクラスタ206中のセントラルレポジトリ中に格納することができる、またはサーバノードクラスタ206中の複数のノード上の複数のアプリインスタンスキャッシュにわたって複製することができる。
[0035]実施形態では、リソース226が、囲われた、またはロックされ、さらにクライアント202上で実行している要求元が、リソース222へのアクセスを有しており、それによって、他のクライアントまたはアプリケーションがリソース226にアクセスしないように防止されて、いずれもの起こり得るコンフリクトを回避する。実施形態では、要求元がリソース226に対するその操作を完了する前に、クライアント202がエラーを被ると、それによってクライアント202が、リソースとの接続が失うことになる。たとえば、クライアントはクラッシュする、オフラインにされる、またはサーバノード208へのそのネットワーク接続を失う恐れがある。そのような事例では、リソース226は、依然として囲われた、またはロックされた状態にある可能性がある、というのは、要求元がリソースに対するロックを解放しておらず、それによって他のクライアントがリソース226にアクセスするのが阻まれるからである。
[0036]エラーがクライアント202に生じたとき、要求元は、クライアントクラスタ201中の新しいクライアントノード(たとえばクライアント204)にマイグレートするために、クライアントのフェイルオーバ機構232を利用することができる。当業者は、クライアントのフェイルオーバ232で、いずれものタイプのフェイルオーバ機構を用いることができることを認識するはずである。実施形態では、フェイルオーバ機構232は、また、今失敗したクライアント202上のGUIDキャッシュ214中に格納されている可能性がある要求元のアプリケーションインスタンス識別子のマイグレートを含むことができる。マイグレートが完了したとき、要求元は、リソース202へのアクセスを再取得しようと試みることができる。実施形態では、クライアント216は、要求元の代わりにリソース226に対するアクセスを要求する第2の要求224をノード1に送ることができる。しかし、継続したアクセスがない場合、本明細書に開示する実施形態では、ノード1 208が、クライアント204(第2の要求224の送信者)の代わりにリソース226にアクセスすることを求める要求を受け取ったとき、それは、その要求を拒否する可能性がある、というのは、クライアント202がリソースの代わりに行った前のアクセスのために、リソース226は依然として囲われた、またはロックされた状態にあるからである。本明細書に開示する実施形態がない場合、ノード1 208は、リソース226にアクセスすることを求める第2の要求が、異なるロケーション(たとえばクライアント204)からのものであると認識するはずである。ノード1 208は、要求が、リソース226に対してロックを保持するのと同じ要求元のためのものであると決定することはできないはずであり、したがって、要求を認めると、コンフリクトをもたらすことになるはずと決定するはずである。しかし、同じ要求元が、リソース224にアクセスしようと試みる場合、コンフリクトの問題は生じず、クライアントに、リソースがシステムによって自由になるのを待たせて、不当な遅延がもたらされる恐れがある。
[0037]アプリケーションインスタンス識別子は、この問題を解決するために使用することができる。実施形態では、第2の要求224は、また、232で示すフェイルオーバの間、クライアント204にマイグレートした要求元を識別することから得られるアプリケーションインスタンス識別子を含むことができる。実施形態では、要求元のアプリケーションインスタンス識別子は、クライアントのフェイルオーバ232の間の要求元のマイグレートに先立ち、クライアント204のGUIDキャッシュ228中に存在する可能性がある。たとえば、反復機構は、クライアントクラスタ201中のノードにわたって要求元のアプリケーションインスタンス識別子を複製するために、用いられた可能性がある。別の実施形態では、要求元203は、そのアプリケーションインスタンス識別子を格納することができる。また別の実施形態では、要求元203のアプリケーションインスタンス識別子は、クライアントのフェイルオーバ232の間、マイグレートさせることができる。
[0038]要求222に関して述べたように、アプリケーションインスタンス識別子は、第2の要求224と同じメッセージで伝送することができる、または第2の要求224は、いくつかの異なるメッセージから構成することができる。第2の要求がノードクラスタ206またはクラスタ中の個々のノード、たとえばノード1 208で受け取られ、受信サーバが、リソースが囲われている、またはロックされていると決定したとき、第2の要求224中のアプリケーションインスタンス識別子がリソース226と関連付けられるアプリケーションインスタンス識別子と同じであるのかどうかについて、決定がなされる。実施形態では、ノード2 216は、第2の要求222とともに受け取られたアプリケーションインスタンス識別子を、リソース226と関連付けられるアプリケーションインスタンス識別子と比較することになる。リソース220と関連付けられるアプリケーション識別子は、ノード1 212のアプリインスタンスキャッシュ212中に格納することができる。複数のアプリインスタンスキャッシュがノードクラスタ206中に存在する実施形態では、決定には、ノードクラスタ206中の2つ以上のアプリケーションインスタンスキャッシュをチェックすることができる。そのような実施形態では、一致するアプリケーションインスタンス識別子がアプリインスタンスキャッシュ212中で見つからない場合、ノード1 216は、一致するアプリケーションインスタンス識別子がアプリインスタンスキャッシュ220中で見つかるかどうかを決定するように求める要求をノード2 212に送ることができる。
[0039]一実施形態では、第2の要求224中で受け取られたアプリケーションインスタンス識別子が、リソース226と関連付けられるアプリケーションインスタンス識別子(それは、アプリケーションインスタンスキャッシュ212および/または220中に格納されている可能性がある)と一致しない場合、第2の要求224は、リソース226が自由になるまで、承認されない場合がある。しかし、一致していることが見つかると、受信サーバ(たとえばノード1 208)および/またはサーバノードクラスタ206は、リソース226に対するアクセスを認める動作を行い、クライアント204および要求元203に不当な遅延を生じない。そのような事例では、ノードクラスタ206は、リソース226の使用を無効にすることができ、それによって、リソース226が囲われた、またはロックされた状態からマイグレートする。実施形態では、先行するアクセスを無効にすることは、囲われた、またはロックされた状態からリソースを引き出すいずれもの動作を含むことができる。1つの限定されない例は、オープンされたファイルをクローズする(たとえばリソース226がファイルである場合)ことである。一度先行するアクセスが無効にされると、リソース226にアクセスすることを求める第2の要求224は、承認することができ、それによって要求元203に継続したアクセスがもたらされる。
[0040]一実施形態では、第2の要求224を受け取るノード、たとえば図2のノード1 208は、異なるノード(たとえばノード2 216)がアクセスおよび/または先行するアクセスを無効にするための許可を有する場合、リソース226への先行するアクセスを無効にするために、必要な動作を取ることができる。しかし、いくつかの事例では、要求を受け取るノードは、アクセスまたは先行するアクセスを無効にする許可を有さないことがある。たとえば、元の要求222がノード2 216に対してなされた場合、そのような事例が起きることがあり、その場合、ノード2 216は、リソースに対する制御を有する場合がある。そのような事例では、第2の要求224を受け取るノードは、先行するアクセスを無効にするように求める要求を制御するノードに送ることができる。一度制御するノードが先行するアクセスを無効にすると、第2の要求224を受け取るノードは、第2の要求224を認めることができる。他の実施形態では、第2の要求224を受け取るノードは、クライアント204および/または要求元203(今は、クライアント204上に常駐する)にリソース226に対するアクセスを与えるように求める要求を異なるノードに送ることができる。
[0041]述べたプロセスによって、前にアクセスし、リソース226に対するロックをなお保持しているリソース203からリソース226にアクセスすることを求める第2の要求224を、アプリケーションインスタンス識別子の使用を通じて認める際に不当な遅延が回避される。さらにまた、アプリケーションインスタンス識別子によって、認められたいずれもの要求がリソース226に対してコンフリクトを生起しないことを保証するという利点がもたらされる。たとえば、異なるアプリケーションから要求が受け取られた場合、その要求は、リソースと関連付けられるアプリケーションインスタンス識別子と異なるアプリケーションインスタンス識別子を含むことになり、その要求は、拒否されることになるはずである。アプリケーションインスタンス識別子は、グローバル一意識別子であるので、異なるアプリケーションに関するアプリケーションインスタンス識別子は、同じものにならない。
[0042]図3は、要求元が、クライアントクラスタ化環境中のリソースに対する継続したアクセスを得るために、用いることができる方法300の実施形態を示すフローチャートである。たとえば、要求元は、クライアント、たとえばクライアント202(図2)とすることができ、それは、方法300を用いて、リソース(たとえばリソース226)にアクセスする。実施形態では、リソースは、遠隔マシン、たとえばサーバ上に常駐することができる。サーバは、独立型のサーバ、またはクラスタ化環境、たとえばサーバクラスタ206(図2)の一部とすることができる。フローは、操作302から始まり、そこでは、リソースに関する要求がサーバに送られる。実施形態では、要求は、リソースにアクセスすることとすることができる。実施形態では、リソースにアクセスするステップは、ファイルをオープンするステップ、ファイルを生成するステップ、またはそうでなければ、クライアントには遠隔である可能性があるリソースにアクセスする、またはそれに対して操作を実施するステップを含むことができる。実施形態では、要求元は、クライアントクラスタ化環境下で動作することができる。そのような実施形態では、操作302で送られた要求は、クライアントクラスタ化環境中で第1のクライアントから送ることができる。
[0043]フローは、操作304に続き、そこでは、アプリケーションインスタンス識別子が、たとえばサーバ(たとえば、独立型のサーバまたはクラスタ化環境中のノード)に送られる。一実施形態では、要求を送った第1のクライアントは、また、要求元の代わりにアプリケーションインスタンス識別子を送ることができる。前に述べたように、アプリケーションインスタンス識別子は、要求元(たとえば、リソースに対するアクセスを要求するアプリケーション、クライアント、またはアプリケーションの子プロセス)を識別するGUIDである。一実施形態では、アプリケーションインスタンス識別子は、ネットワークを介して伝送されるメッセージで送ることができる。アプリケーションインスタンス識別子は、操作302で要求を含む同じメッセージで伝送することができる、またはそれは、異なるメッセージで伝送することができる。そのような実施形態では、アプリケーションインスタンス識別子を含むオブジェクト、たとえば、ただしこれらに限定されないが、図2に関して述べた_NETWORK_APP_INSTANCE_ECP_CONTEXTを操作302で送ることができる。
[0044]一実施形態では、アプリケーションインスタンス識別子を操作304で送るために、インターフェースを使用することができる。インターフェースは、クライアント上に配置される、またはクライアントが利用できてクライアントクラスタ化環境中で動作するカーネルレベルのインターフェースとすることができる。実施形態では、カーネルレベルのインターフェースは、アプリケーションインスタンス識別子をサーバに送るために、要求元および/またはクライアントによって使用することができる。次の事項は、アプリケーションインスタンス識別子を送るために、操作304で用いることができるカーネルレベルのインターフェースの限定されない例である。
#if (NTDDI_VERSION >= NTDDI_WIN8)
//
//アプリケーションがそのインスタンスIDを提供するためのECPコンテキスト
//

typedef struct_NETWORK_APP_INSTANCE_ECP_CONTEXT {
//
//これは、この構造のサイズに設定しなければならない
//

USHORT Size;

//
//これは、ゼロに設定しなければならない
//

USHORT Reserved;

//
//発信者は、アプリケーションの単一インスタンスについて常に一意とすべき
//GUIDを置く
//

GUID AppInstanceID;

} NETWORK_APP_INSTANCE_ECP_CONTEXT,
*PNETWORK_APP_INSTANCE_ECP_CONTEXT;

//
//APP_INSTANCE_ECP_CONTEXT構造について使用されるGUID
//
//{6AA6BC45-A7EF-4af7-9008-FA462E144D74}
//
DEFINE_GUID (GUID_ECP_NETWORK_APP_INSTANCE,0x6aa6bc45,0xa7ef,
0x4af7,0x90,0x8,0xfa,0x46,0x2e,0x14,0x4d,0x74);

#endif//NTDDI_Version >= NTDDI_WIN8
[0045]具体的なカーネルレベルのインターフェースを提示したが、当業者は、他のカーネルレベルのインターフェースを、アプリケーションインスタンス識別子を送るために、操作304で用いることができることを認識するはずである。
[0046]別の実施形態では、アプリケーションユーザインターフェース(API:application user interface)を、アプリケーションインスタンス識別子を送るために、操作304で用いることができる。そのような実施形態では、要求元および/またはクライアントは、APIをコールすることによって、アプリケーションインスタンス識別子を送ることができる。APIは、操作304を実施するクライアント(たとえばサーバクラスタ中の第1のクライアント)上で提供することができる、またはAPIは、別の装置上で提供することができ、要求元または別のアプリケーションまたはプロセスがそれにアクセスすることができる。次の事項は、アプリケーションインスタンス識別子を送るために、操作304で用いることができるAPIの限定されない例である。
NTSTATUS RegisterAppInstance(
_in PGUID Applnstance
);
[0047]具体的なAPIを提示したが、当業者は、他のAPIを操作304で用いることができることを認識するはずである。さらにまた、操作304を明確に区別される操作として例示しているが、当業者は、アプリケーションインスタンス識別子を送るステップは、操作302で要求を送るステップと同時に実施することができることを認識するはずである。
[0048]要求されたリソースが、ロックされていないとき、操作302で送られる要求が認められて、フローは、操作306に続き、そこでは、リソースがアクセスされる。既に述べたように、リソースを制御するサーバまたは装置は、リソースを囲われた、またはロックされた状態に置くことができ、一方要求元は、操作306でリソースにアクセスする。リソースにアクセスしている間のある時点で、エラー、たとえば図2に関して述べたエラーが生じると、それによって、クライアントが失敗する、またはそうでなければ、リソースに対する接続を失うことになる。エラーによって、要求元がリソースのその使用を終える前に、クライアント(たとえばサーバクラスタ中の第1のクライアント)がリソースに対するアクセスを失うことになる可能性がある。そのような状況下では、リソースは、その囲われた、またはロックされた状態から解放されない恐れがある。
[0049]フローは、操作308に続き、そこでは、フェイルオーバ操作が実施される。実施形態では、フェイルオーバ操作は、クライアントノードクラスタ中の異なるクライアント(たとえば第2のクライアント)に要求元およびその状態をそっくりコピーするステップを含むことができる。実施形態では、要求元の状態は、第2のクライアント上にそっくりコピーすることができ、要求元は、第1のクライアントが失敗したところからその要求元が実行を再開することができるように、第2のクライアント上で実行することができる。別の実施形態では、要求元は、第1のクライアントのフェイルオーバの時点で、第1のクライアントと通信し合う状態(むしろ、その上で実行するより)にあることができる。そのような実施形態では、フェイルオーバ操作は、要求元がクライアントクラスタ中の第2のクライアントとの通信を確立するステップを含むことができる。
[0050]実施形態では、ただしこれらに限定されないが、要求元のアプリケーションインスタンス識別子を含む状態情報を、第1のクライアントから第2のクライアントに転送することができる。一実施形態では、第1のクライアントは、要求元のアプリケーションインスタンス識別子および/または要求元の状態情報を含むメッセージを送ることができる。アプリケーションインスタンス識別子および/または状態は、フェイルオーバプロセスの間に送ることができる、または実施形態では、第1のクライアントが失敗する前に、たとえばクライアントクラスタ化環境中のクライアントにわたって情報をそっくりコピーする反復プロセスの間に送ることができる。別の実施形態では、要求元のアプリケーションインスタンス識別子および/または状態情報は、クライアントクラスタ化されたネットワーク中のセントラルロケーションまたはレポジトリに格納することができる。そのような実施形態では、フェイルオーバプロセスは、第2のクライアントに要求元のアプリケーションインスタンス識別子および/または状態情報のロケーションを提供することができる。また別の実施形態では、要求元は、そのアプリケーションインスタンス識別子を維持することができる。そのような実施形態では、クライアントのフェイルオーバ操作は、移転する、または要求元と第2のクライアントの間の接続を確立するステップを含むことができる。
[0051]実施形態では、クライアントのフェイルオーバ操作の後、フローは、操作310に続く。操作310で、同じリソースに関する第2の要求が、クラスタ化環境に送られる。実施形態では、第2の要求は、要求元の代わりにクライアントクラスタ中の第2のクライアントによって送られる。第2の要求は、操作302で第1のリソースに関して述べたのと同じ方法を使用して送ることができる。リソースに対する継続したアクセスを維持し、不当な遅延を避けるためには、フローは、操作312に続き、そこでは、アプリケーションインスタンス識別子が、クラスタ化環境に再び送られる。アプリケーションインスタンス識別子は、操作308で、操作304に関して述べた実施形態の1つによって送ることができる。実施形態では、異なるクライアント(たとえば第2のクライアント)が第2の要求を送ることになり、要求を受け取るサーバは、第2の要求を、リソースに対してロックを保持する同じ要求元に属するものとして識別することができない可能性がある(たとえば、要求が異なるマシン、異なるアドレスなどからなされるからである)。しかし、操作304および308でアプリケーションインスタンス識別子を送ることによって、サーバは、要求を同じ要求元に属するものとして識別することができるようになり、図1および図2に関して既に述べたように、リソースへの継続したアクセスを認めることになる。フローは、操作314に続き、要求元は、リソースへのアクセスを取り戻す。実施形態では、第2のクライアントは、サーバが第2の要求を認めたことを示す、サーバからの第2の要求に対する応答を受け取ることができる。実施形態では、その指示を受け取ったとき、第2のクライアントは、要求元の代わりにリソースにアクセスすることができる。
[0052]図4は、リソースに対する継続したアクセスをもたらすために、サーバクラスタ化環境中のノードによって実施される方法400の実施形態を示すフローチャートである。方法400の実施形態は、ノード、たとえば、クラスタ化環境、たとえばノードクラスタ206(図2)中のノード1 208(図2)によって実施することができる。実施形態では、方法400は、ノードに対してアクセスを有するノードによって実施することができる。フローは、操作402で開始され、そこでは、ノードが、リソースに関する要求を受け取る。実施形態では、リソースは、ファイル、オブジェクト、方法、データ、または操作400を実施するノードの制御下にある、および/またはそれがアクセスすることができる、いずれもの他のタイプのリソースとすることができる。アプリケーションインスタンス識別子は、操作402で、要求とともに受け取ることができる。
[0053]フローは、決定操作404に続き、そこでは、リソースが囲われた、またはロックされた状態にあるのかどうかについての決定がなされる。当業者は、リソースが囲われている、またはロックされているのかどうかを決定するいずれもの方法を操作404で用いることができることを認識するはずである。リソースが囲われていない、またはロックされていない状態にある場合、フローは、NOで操作412に分岐し、そこでは、リソースに関する要求が認められる。実施形態では、要求を認めるステップは、リソースに対する要求元のアクセスを可能にするステップ、要求元の代わりにリソースに対する操作を実施するステップ、またはリソースに対するいずれもの種類のアクセスまたは変更を実施するステップを含むことができる。たとえば、操作412で要求を認めるステップは、ファイルをオープンするステップ、またはファイルを生成するステップを含むことができる。
[0054]リソースが囲われた、またはロックされた状態にある場合、フローは、YESで操作404から決定操作406に分岐する。決定操作406で、操作402で要求とともに受け取られたアプリケーションインスタンス識別子は、リソースと関連付けられるアプリケーションインスタンス識別子と比較される。たとえば、図2に関して述べたように、ノードは、クライアントまたはアプリケーションがリソースにアクセスしたとき、アプリケーションインスタンス識別子をリソースと関連付けることができる。前に述べたように、リソースにアクセスしている要求元のアプリケーションインスタンス識別子の関連付けは、図2で議論した様々な実施形態で述べたように、ノード上に、たとえばアプリインスタンスキャッシュ中に格納することができる。実施形態では、リソースに関する要求とともに送られたECP中で、たとえば_NETWORK_APP_INSTANCE_ECP_CONTEXT構造中で提供されるアプリケーションインスタンス識別子は、リソースと関連付けられるECPリストに加えることができる。
[0055]一実施形態では、アプリケーションインスタンスリソースの関連付けは、方法400を実施するノード上でローカルに常駐することができる。そのような事例では、サーバ上に常駐するローカルのアプリインスタンスキャッシュで比較を行うことができる。しかし、図2に関して議論したように、クラスタ化環境は、異なるノードにわたって分散されるいくつかのアプリインスタンスキャッシュを含むことができる。さらにまた、異なるアプリケーションインスタンスキャッシュは、それぞれが別々の、および/または異なるデータを格納することができる。囲われた、またはロックされたリソースと関連付けられるアプリケーション識別子は、クラスタ化環境中の異なるノード上に格納することができる。そのような事例では、操作406は、操作406で比較を実施するために、要求を異なるノードに送るステップを含むことができる。要求は、操作402で受け取られたアプリケーションインスタンス識別子を含むことができる。
[0056]受け取られたアプリケーションインスタンス識別子が、リソースと関連付けられるアプリケーションインスタンス識別子と同じでない場合、フローは、NOで操作410に分岐する。操作410で、操作402で受け取られたリソースにアクセスすることを求める要求が拒否される。実施形態では、要求は、リソースコンフリクトを避けるために、拒否することができる。受け取られたアプリケーション識別子が、関連付けられたアプリケーションインスタンス識別子と同じものでないので、操作402で受け取られたリソースにアクセスすることを求める要求は、異なる要求元またはアプリケーションからのものである。異なるクライアントまたはアプリケーションに対して要求を認めるステップは、この場合恐らくそうであるように、リソースに現在、アクセスしているアプリケーションを妨げることになるコンフリクト状況を生じる恐れがある。たとえば、異なるアプリケーションは、現在、リソースに対するロックを保持する要求元がリソースに対して実施している操作を変更する、またはそうでなければ、それを妨げるように、リソースを変更する可能性がある。
[0057]しかし、囲われた、またはロックされたリソースと関連付けられるアプリケーション識別子と同じものであるアプリケーション識別子を要求402とともに受け取るステップは、エラーが生じた可能性があり、そのエラーによって、リソースにアクセスしている要求元が、リソースを適切に解放せずに、リソースに対するそのアクセスを失うことになることを示す。たとえば、要求元は、クライアントノードクラスタ中で動作することがある。要求元がその上で動作している特定のクライアントは、サーバへの接続を失ってしまう、またはそうでなければ、要求元がリソースに対するその操作を完了する前に、失敗してしまう恐れがある。リソースに対する継続したアクセスをもたらすために、すなわち不当な、または受け入れられない遅延を被ることなく、要求元がリソースに対するアクセスを再取得するために、フローは、YESで操作408に分岐する。
[0058]操作408で、リソースはその使用が無効にされる。前に本明細書で述べたように、リソースの使用を無効にするステップは、リソースの囲われた状態を変える、またはそうでなければ、リソースに対するロックを除去するステップを含むことができる。たとえば、リソースがファイルである場合、リソースの使用を無効にするステップは、ファイルをクローズするステップを含むことができる。当業者は、囲われた、またはロックされたリソースを解放するいずれもの方法を操作408で用いることができることを認識するはずである。
[0059]図2に戻って参照すると、実施形態では、リソースに対するアクセスは、操作402でリソースへのアクセスを求める要求を受け取るノードと異なる、クラスタ化環境中のノードの制御下にある可能性がある。たとえば、リソースに対するハンドルが、クラスタ化環境中の異なるノード上に常駐する可能性がある。そのような実施形態では、リソースの使用を無効にするステップは、リソースに対するアクセスを制御するノードに、リソースの使用を無効にするように求める要求を送るステップを含むことができる。要求を送るステップに応答して、遠隔ノードは、リソースの使用を無効にすることができる。
[0060]リソースの使用が無効にされた後、フローは、操作412に続き、そこでは、リソースにアクセスすることを求める要求が認められる。要求を認めるステップは、リソースに対する要求元のアクセスを可能にするステップ、要求元の代わりにリソースに対する操作を実施するステップ、またはリソースに対するいずれもの種類のアクセスまたは変更を許可するステップを含むことができる。たとえば、操作412で要求を認めるステップは、ファイルをオープンするステップまたはファイルを生成するステップを含むことができる。そのようなアクセスを認めるステップは、操作402で要求を受け取るノードによって、またはクラスタ化環境中の別のノードによって実施することができる。
[0061]方法300および400は、操作フローの単なるいくつかの例であり、それは、実施形態によって実施することができる。実施形態は、図3〜図6に関して上記に提示した具体的な記述に限定されず、実施形態は、追加の操作を含むことができる。さらに、描いた操作ステップは、他のステップ中に結合する、および/または再配置することができる。さらに、より少ない、または追加のステップを、図3〜図4で述べた方法とともに使用する、採用することができる。
[0062]図5は、汎用コンピュータシステム500を例示し、それは、本明細書に述べた実施形態を実施するために使用することができる。コンピュータシステム500は、計算環境の本の一例にすぎず、コンピュータおよびネットワークのアーキテクチャの使用または機能性の範囲に関するいかなる限定も示唆する意図はない。コンピュータシステム500は、例示的なコンピュータシステム500で例示した構成要素のいずれもの1つ、またはその組合せに対していずれもの依存性または要件を有するものとして解釈すべきでない。実施形態では、システム500は、図1および図2に関して上記で述べたクライアントおよび/またはサーバとして使用することができる。
[0063]システム500は、そのもっとも基本的な構成では、通常、少なくとも1つの処理ユニット502およびメモリ504を含む。計算装置の正確な構成およびタイプに依存して、メモリ504は、揮発性のもの(RAMなど)、不揮発性のもの(ROM、フラッシュメモリなど)または何らかの組合せとすることができる。このもっとも基本的な構成は、図5に破線506によって例示する。システムメモリ504は、本明細書に開示した継続する可用性のための方法を実施する命令などの命令520および記憶装置508などの記憶装置を備えるファイル記憶システム中に格納することができるアプリケーションインスタンス識別子などのデータ522を格納する。
[0064]用語「コンピュータ可読媒体」は、本明細書で使用する際、コンピュータ記憶媒体を含むことができる。コンピュータ記憶媒体は、情報、たとえばコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを記憶するために、いずれもの方法または技術で実現される揮発性および不揮発性の、取外し可能な、および取外しができない媒体を含むことができる。システムメモリ504、取外し可能な記憶装置および取外しができない記憶装置508は、すべてコンピュータ記憶媒体の例である(たとえばメモリ記憶装置)。コンピュータ記憶媒体は、ただしこれらに限定されないが、RAM、ROM、電気的消去可能なリードオンリメモリ(EEPROM)、フラッシュメモリまたは他のメモリ技術、CD−OM、デジタル多用途ディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは情報を格納するために使用することができ、計算装置500がそれにアクセスすることができる、いずれもの他の媒体を含むことができる。いずれものそのようなコンピュータ記憶媒体は、装置500の一部とすることができる。計算装置500は、また、入力装置(複数可)514、たとえばキーボード、マウス、ペン、音声入力装置、タッチ入力装置などを有することができる。出力装置(複数可)516、たとえばディスプレイ、スピーカ、プリンタなどもまた、含めることができる。前述の装置は、例であり、他のものも使用することができる。
[0065]また、用語「コンピュータ可読媒体」は、本明細書で使用する際、通信媒体を含むことができる。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波または他の転送機構など、変調されたデータ信号(modulated data signal)の形の他のデータによって具体化することができ、いずれもの情報配信媒体を含む。用語「変調されたデータ信号」は、1つまたは複数の特性が、その信号中で情報をエンコードするように設定される、または変化させられる信号を記述することができる。例としてだけで限定するものでなく、通信媒体は、ワイヤードネットワークまたは直接配線の接続などのワイヤード媒体、ならびに音響、無線周波(RF)、赤外線などのワイヤレス媒体、および他のワイヤレス媒体を含むことができる。
[0066]本発明の実施形態は、システムオンチップ(SOC)を介して実施することができ、そこでは図5に例示した構成要素のそれぞれまたはその多くを、単一の集積回路上に集積することができる。そのようなSOC装置は、1つまたは複数の処理ユニット、グラフィックユニット、通信ユニット、システム仮想化ユニットおよび様々なアプリケーション機能性を含むことができ、そのすべては、チップ基板上に単一の集積回路として集積(または「焼き付ける(burned)」)される。SOCを介して動作するとき、リソースに対する継続したアクセスをもたらすことに関して本明細書に述べる機能性は、単一の集積回路(チップ)上の計算装置/システム500の他の構成要素とともに集積されるアプリケーション特有のロジックを介して動作することができる。
[0067]本明細書の至るところで、具体的に述べる特徴、構造または特性が少なくとも一実施形態に含まれていることを意味する「一実施形態(one embodiment)」または「ある実施形態(an embodiment)」を参照してきた。それゆえ、そのような語句の使用法は、1つだけより多くの実施形態を言及していることがある。さらにまた、述べる特徴、構造または特性は、いずれもの適切な形で1つまたは複数の実施形態に結合することができる。
[0068]しかし、当業者は、具体的な細部の1つまたは複数が無くても、または他の方法、リソース、マテリアルなどを用いて実施形態を実施することができることを認められるはずである。他の事例では、よく知られた構造、リソース、または操作は、単に実施形態の態様を分かりにくくすることを避けるために、詳細に示していない、または述べていない。
[0069]例の実施形態およびアプリケーションを例示し述べてきたが、実施形態は、上記に述べた正確な構成およびリソースに限定されないことを理解すべきである。請求する実施形態の範囲から逸脱せずに、当業者に明らかな様々な修正、変更および変形は、本明細書に開示した方法およびシステムの構成、操作および細部において行うことができる。

Claims (10)

  1. リソースに対する継続したアクセスをもたらす方法であって、
    要求元(requestor)からのリソースにアクセスすることを求める第1の要求を受け取るステップであって、前記要求は、第1のクライアントから受け取られる、ステップと、
    第1のアプリケーションインスタンス(instance)識別子(identifier)を前記第1のリソースと関連付ける(associating)ステップと、
    前記リソースに対する前記第1の要求のアクセスを可能にするステップと、
    失敗(failure)から回復した(recovering)後、前記要求元からの前記リソースに関する第2の要求を受け取るステップであって、前記第2の要求は、前記第1のクライアントと異なる第2のクライアントから受け取られる、ステップと、
    前記第2の要求と関連付けられる第2のアプリケーション識別子を受け取るステップと、
    前記第1のアプリケーション識別子および前記第2のアプリケーション識別子が同じであるのかどうかを決定するステップと、
    前記第1のアプリケーション識別子および前記第2のアプリケーション識別子が同じであるとき、
    前記第1の要求を無効にする(invalidating)ステップ、および
    前記リソースにアクセスすることを求める前記第2の要求を認める(granting)ステップ
    を含むステップを実施するステップと
    を含む、方法。
  2. 前記第1のアプリケーション識別子は、オープン要求(open request)のアプリケーションインスタンスと関連付けられる、請求項1に記載の方法。
  3. 前記第1のアプリケーション識別子は、プロセスと関連付けられる、請求項1に記載の方法。
  4. 前記第1のアプリケーション識別子は、アプリケーションの少なくとも1つの子プロセス(child process)と関連付けられる、請求項1に記載の方法。
  5. 前記第1のアプリケーションインスタンス識別子を関連付けるステップは、NETWORK_APP_INSTANCE_ECP_CONTEXT構造(structure)中の前記第1のアプリケーションインスタンス識別子(identifier)を受け取るステップを含む、請求項1に記載の方法。
  6. クラスタ化(clustered)クライアントのフェイルオーバ(failover)を提供するための方法であって、
    第2のクライアントで(at)、要求元(requestor)に関するアプリケーションインスタンス識別子(identifier)を受け取るステップであって、前記要求元は、第1のクライアントを使用して、前にリソースにアクセスしている、ステップと、
    前記第2のクライアントから、前記要求元の代わりに(on behalf of)前記リソースにアクセスすることを求める第2の要求を送るステップと、
    前記第2のクライアントから、前記要求元に関する(for)前記アプリケーションインスタンス識別子を送るステップと、
    サーバが前記第2の要求を認めた(granted)という指示(indication)を受け取るステップと、
    前記第2のクライアントによって、前記クライアントの代わりに(on behalf of)前記リソースにアクセスするステップと
    を含む、方法。
  7. 前記第2の要求を認めた前記サーバは、以前に、前記要求元の代わりに、前記第1のクライアントからリソースにアクセスする第1の要求を認めている、請求項6に記載の方法。
  8. 前記第2のクライアントは、クライアントのフェイルオーバに応答して、前記第2の要求を送る、請求項6に記載の方法。
  9. 少なくとも1つのサーバを備えた、クラスタ化(clustered environment)環境中でクライアントのフェイルオーバを容易にするためのシステムであって、
    前記少なくとも1つのサーバは、
    コンピュータ実行可能命令を実行するように構成されている少なくとも1つのプロセッサと、
    前記コンピュータ実行可能命令を格納する少なくとも1つのコンピュータ可読記憶媒体と
    を備え、前記コンピュータ実行可能命令は、前記少なくとも1つのプロセッサによって実行されたとき、
    要求元の代わりに第1のクライアントからのリソースにアクセスすることを求める第1の要求を受け取ること、
    第1のアプリケーションインスタンス識別子を前記第1のリソースと関連付けること、
    前記リソースに対する前記要求元のアクセスを可能にすること、
    第2のクライアントからの前記リソースに関する第2の要求を受け取ることであって、前記第2のクライアントは、前記第1のクライアントと異なる、受け取ること、
    前記第2の要求と関連付けられる第2のアプリケーション識別子を受け取ること、
    前記第1のアプリケーション識別子と前記第2のアプリケーション識別子が同じであるのかどうかを決定すること、
    前記第1のアプリケーション識別子と前記第2のアプリケーション識別子が同じであるとき、
    前記第1の要求を無効にするステップ、および
    前記リソースにアクセスすることを求める前記第2の要求を認めるステップ
    を含むステップを実施すること
    を行う、
    システム。
  10. 前記第1のクライアントをさらに備え、前記第1のクライアントは、
    コンピュータ実行可能命令を実行するように構成されている少なくとも1つのプロセッサと、
    前記コンピュータ実行可能命令を格納する少なくとも1つのコンピュータ可読記憶媒体と
    を備え、前記コンピュータ実行可能命令は、前記少なくとも1つのプロセッサによって実行されたとき、
    前記第1の要求を送り、
    前記アプリケーションインスタンス識別子を第2のクライアントに送る、
    請求項18に記載のシステム。
JP2014529876A 2011-09-09 2012-09-07 クラスタ化クライアントのフェイルオーバ Active JP6210987B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/228,732 US8788579B2 (en) 2011-09-09 2011-09-09 Clustered client failover
US13/228,732 2011-09-09
PCT/US2012/054038 WO2013036697A2 (en) 2011-09-09 2012-09-07 Clustered client failover

Publications (2)

Publication Number Publication Date
JP2014529141A true JP2014529141A (ja) 2014-10-30
JP6210987B2 JP6210987B2 (ja) 2017-10-11

Family

ID=47646871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014529876A Active JP6210987B2 (ja) 2011-09-09 2012-09-07 クラスタ化クライアントのフェイルオーバ

Country Status (18)

Country Link
US (1) US8788579B2 (ja)
EP (1) EP2754059B1 (ja)
JP (1) JP6210987B2 (ja)
KR (1) KR101941728B1 (ja)
CN (1) CN102932164B (ja)
AU (1) AU2012304549B2 (ja)
BR (1) BR112014005191A2 (ja)
CA (1) CA2847597A1 (ja)
CL (1) CL2014000539A1 (ja)
CO (1) CO6900122A2 (ja)
ES (1) ES2626655T3 (ja)
IL (1) IL231373A (ja)
IN (1) IN2014CN01748A (ja)
MX (1) MX336341B (ja)
RU (1) RU2595755C2 (ja)
SG (1) SG11201400442SA (ja)
WO (1) WO2013036697A2 (ja)
ZA (1) ZA201401381B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019516171A (ja) * 2016-03-24 2019-06-13 アリババ グループ ホウルディング リミテッド サービス処理方法、デバイス、及びシステム

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332526B2 (en) 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US9274834B2 (en) * 2012-08-25 2016-03-01 Vmware, Inc. Remote service for executing resource allocation analyses for computer network facilities
WO2015033388A1 (ja) * 2013-09-03 2015-03-12 株式会社東芝 情報処理システム、サーバ装置、情報処理方法及びプログラム
US20150100826A1 (en) * 2013-10-03 2015-04-09 Microsoft Corporation Fault domains on modern hardware
US9801002B2 (en) 2013-11-26 2017-10-24 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for identifying application instances within a machine-to-machine network domain
US9665432B2 (en) * 2014-08-07 2017-05-30 Microsoft Technology Licensing, Llc Safe data access following storage failure
US9847918B2 (en) * 2014-08-12 2017-12-19 Microsoft Technology Licensing, Llc Distributed workload reassignment following communication failure
US9936048B2 (en) * 2014-09-10 2018-04-03 International Business Machines Corporation Client system communication with a member of a cluster of server systems
GB2531341B (en) 2014-10-17 2016-10-12 Ibm Reconnection of a client to a server in a transaction processing server cluster
US10146873B2 (en) 2015-06-29 2018-12-04 Microsoft Technology Licensing, Llc Cloud-native documents integrated with legacy tools
US10884863B2 (en) * 2018-07-20 2021-01-05 Red Hat, Inc. Client session reclaim for a distributed storage system
CN110457114B (zh) * 2019-07-24 2020-11-27 杭州数梦工场科技有限公司 应用集群部署方法及装置
CN111405015B (zh) * 2020-03-09 2022-09-30 中国建设银行股份有限公司 一种数据处理方法、装置、设备及存储介质
US11507512B2 (en) * 2020-12-08 2022-11-22 EMC IP Holding Company LLC Fault tolerant cluster data handling
CN116248748A (zh) * 2023-02-27 2023-06-09 西安奕斯伟材料科技股份有限公司 一种通讯连接方法、装置、设备、介质及产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001077844A1 (fr) * 2000-04-10 2001-10-18 Fujitsu Limited Systeme de traitement d'informations et serveur associe
WO2004003765A1 (ja) * 2002-07-01 2004-01-08 Kabushiki Kaisha Toshiba シームレスシステム及び記録媒体並びにコンピュータシステムの処理継続方法
JP2004078949A (ja) * 2002-08-12 2004-03-11 Docomo Communications Laboratories Usa Inc アプリケーションの移送サービス
JP2004227566A (ja) * 2003-01-02 2004-08-12 Fisher Rosemount Syst Inc プロセス制御システムにおいて利用されるアプリケーションステーション、アプリケーションステーションにおいて利用される冗長マネージャ、第一および第二のアプリケーションステーションを有したプロセス制御システム内に冗長コンテキストを確立する方法、プロセス制御システム内に冗長コンテキストを確立するシステム、内部に格納されたデータを有しているマシンアクセス可能メディア、第一および第二のアプリケーションステーションを有したプロセス制御システム内に冗長コンテキストを維持管理する方法、プロセス制御システム内に冗長コンテキストを維持管理するシステム、内部に格納されたデータを有しているマシンアクセス可能メディア、冗長アプリケーションステーションシステム、および、アプリケーションステーションのコンフィギュレーションを変更する方法。
JP2005032172A (ja) * 2003-07-11 2005-02-03 Nippon Telegr & Teleph Corp <Ntt> セッション制御代行システムと通信サービスシステムおよびセッション制御方法ならびにプログラムと記録媒体
JP2005517241A (ja) * 2002-02-08 2005-06-09 モトローラ・インコーポレイテッド セッション・クライアント間で継続性を提供するためのシステムおよび方法
JP2006191617A (ja) * 2004-12-30 2006-07-20 Lucent Technol Inc エンドユーザ端末間の同一セッションの切り替えを提供する方法および装置

Family Cites Families (188)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399504A (en) 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4825354A (en) 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
US4780821A (en) 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US4914570A (en) 1986-09-15 1990-04-03 Counterpoint Computers, Inc. Process distribution and sharing system for multiple processor computer system
US4887204A (en) 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US5202971A (en) 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US4791566A (en) 1987-03-27 1988-12-13 Digital Equipment Corporation Terminal device session management protocol
US5008853A (en) 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US4891785A (en) 1988-07-08 1990-01-02 Donohoo Theodore J Method for transferring data files between computers in a network response to generalized application program instructions
US5124909A (en) 1988-10-31 1992-06-23 Hewlett-Packard Company Software program for providing cooperative processing between personal computers and a host computer
CA1323448C (en) 1989-02-24 1993-10-19 Terrence C. Miller Method and apparatus for translucent file system
US5109519A (en) 1989-03-28 1992-04-28 Wang Laboratories, Inc. Local computer participating in mail delivery system abstracts from directory of all eligible mail recipients only served by local computer
US5560008A (en) 1989-05-15 1996-09-24 International Business Machines Corporation Remote authentication and authorization in a distributed data processing system
US5113519A (en) 1989-05-15 1992-05-12 International Business Machines Corporation Maintenance of file attributes in a distributed data processing system
US5218696A (en) 1989-07-24 1993-06-08 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5261051A (en) 1989-08-14 1993-11-09 Microsoft Corporation Method and system for open file caching in a networked computer system
US5265261A (en) 1989-08-14 1993-11-23 Microsoft Corporation Method and system for network communications using raw mode protocols
JP2575543B2 (ja) 1990-04-04 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時アクセス管理方法
JPH0619771A (ja) 1992-04-20 1994-01-28 Internatl Business Mach Corp <Ibm> 異種のクライアントによる共用ファイルのファイル管理機構
US5349642A (en) 1992-11-03 1994-09-20 Novell, Inc. Method and apparatus for authentication of client server communication
US5452447A (en) 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5493728A (en) 1993-02-19 1996-02-20 Borland International, Inc. System and methods for optimized access in a multi-user environment
US5491752A (en) 1993-03-18 1996-02-13 Digital Equipment Corporation, Patent Law Group System for increasing the difficulty of password guessing attacks in a distributed authentication scheme employing authentication tokens
US5522042A (en) 1994-01-28 1996-05-28 Cabletron Systems, Inc. Distributed chassis agent for distributed network management
US5588117A (en) 1994-05-23 1996-12-24 Hewlett-Packard Company Sender-selective send/receive order processing on a per message basis
US5513314A (en) 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
US5628005A (en) 1995-06-07 1997-05-06 Microsoft Corporation System and method for providing opportunistic file access in a network environment
US5826027A (en) 1995-10-11 1998-10-20 Citrix Systems, Inc. Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system
US5764887A (en) 1995-12-11 1998-06-09 International Business Machines Corporation System and method for supporting distributed computing mechanisms in a local area network server environment
US6343313B1 (en) 1996-03-26 2002-01-29 Pixion, Inc. Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability
US6438691B1 (en) 1996-04-01 2002-08-20 Hewlett-Packard Company Transmitting messages over a network
RU2118051C1 (ru) * 1996-04-30 1998-08-20 Лихачев Александр Геннадьевич Способ доступа к ресурсам "всемирной паутины" через шлюзы-представители
US6434120B1 (en) 1998-08-25 2002-08-13 Cisco Technology, Inc. Autosensing LMI protocols in frame relay networks
US5933602A (en) 1996-07-31 1999-08-03 Novell, Inc. System for selecting command packet and corresponding response packet from communication stream of packets by monitoring packets sent between nodes on network
US6208952B1 (en) 1996-10-24 2001-03-27 Microsoft Corporation Method and system for delayed registration of protocols
US6125122A (en) 1997-01-21 2000-09-26 At&T Wireless Svcs. Inc. Dynamic protocol negotiation system
US5931913A (en) 1997-05-07 1999-08-03 International Business Machines Corporation Methods, system and computer program products for establishing a session between a host and a terminal using a reduced protocol
US6219799B1 (en) 1997-07-01 2001-04-17 Unisys Corporation Technique to support pseudo-names
US6092199A (en) 1997-07-07 2000-07-18 International Business Machines Corporation Dynamic creation of a user account in a client following authentication from a non-native server domain
US6275953B1 (en) 1997-09-26 2001-08-14 Emc Corporation Recovery from failure of a data processor in a network server
US6247139B1 (en) * 1997-11-11 2001-06-12 Compaq Computer Corp. Filesystem failover in a single system image environment
US6131125A (en) 1997-11-14 2000-10-10 Kawasaki Lsi U.S.A., Inc. Plug-and-play data cable with protocol translation
US6085247A (en) 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US6516351B2 (en) 1997-12-05 2003-02-04 Network Appliance, Inc. Enforcing uniform file-locking for diverse file-locking protocols
US7010532B1 (en) 1997-12-31 2006-03-07 International Business Machines Corporation Low overhead methods and apparatus for shared access storage devices
US6243862B1 (en) 1998-01-23 2001-06-05 Unisys Corporation Methods and apparatus for testing components of a distributed transaction processing system
US6317844B1 (en) * 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6401123B1 (en) 1998-11-24 2002-06-04 International Busines Machines Corporation Systems, methods and computer program products for employing presumptive negotiation in a data communications protocol
US6883000B1 (en) 1999-02-12 2005-04-19 Robert L. Gropper Business card and contact management system
US6324581B1 (en) 1999-03-03 2001-11-27 Emc Corporation File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems
US6453354B1 (en) 1999-03-03 2002-09-17 Emc Corporation File server system using connection-oriented protocol and sharing data sets among data movers
US20040139004A1 (en) 1999-04-08 2004-07-15 Aceinc Pty Ltd. Secure online commerce transactions
US6938096B1 (en) 1999-04-12 2005-08-30 Softricity, Inc. Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port
US7562129B1 (en) 1999-04-15 2009-07-14 Alcatel-Lucent Canada Inc. Subscription management system for data communication network
US6349350B1 (en) 1999-05-04 2002-02-19 International Business Machines Corporation System, method, and program for handling failed connections in an input/output (I/O) system
WO2000068856A2 (en) 1999-05-11 2000-11-16 Webvan Group, Inc. Electronic commerce enabled delivery system and method
US7318102B1 (en) 1999-05-24 2008-01-08 Hewlett-Packard Development Company, L.P. Reliable datagram
US6430691B1 (en) 1999-06-21 2002-08-06 Copytele, Inc. Stand-alone telecommunications security device
US6490666B1 (en) 1999-08-20 2002-12-03 Microsoft Corporation Buffering data in a hierarchical data storage environment
US6636242B2 (en) 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
JP2001094613A (ja) 1999-09-21 2001-04-06 Canon Inc 通信制御装置、方法および記録媒体
US6775707B1 (en) 1999-10-15 2004-08-10 Fisher-Rosemount Systems, Inc. Deferred acknowledgment communications and alarm management
US6910082B1 (en) 1999-11-18 2005-06-21 International Business Machines Corporation Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server
US6658476B1 (en) 1999-11-29 2003-12-02 Microsoft Corporation Client-server protocol support list for standard request-response protocols
US7111060B2 (en) 2000-03-14 2006-09-19 Aep Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, a secure, cost-effective, web-enabled, integrated virtual office environment remotely accessible through a network-connected web browser
US6883015B1 (en) 2000-03-30 2005-04-19 Cisco Technology, Inc. Apparatus and method for providing server state and attribute management for multiple-threaded voice enabled web applications
US6993587B1 (en) 2000-04-07 2006-01-31 Network Appliance Inc. Method and apparatus for election of group leaders in a distributed network
US7225244B2 (en) 2000-05-20 2007-05-29 Ciena Corporation Common command interface
US6452903B1 (en) 2000-05-31 2002-09-17 Fujitsu Network Communications, Inc. Network switch supporting rate-based and credit-based flow control mechanisms on a link-by-link basis
US6961858B2 (en) 2000-06-16 2005-11-01 Entriq, Inc. Method and system to secure content for distribution via a network
US7693976B2 (en) 2000-07-11 2010-04-06 Ciena Corporation Granular management of network resources
US6349250B1 (en) 2000-10-26 2002-02-19 Detroit Diesel Corporation Clear historic data from a vehicle data recorder
JP2002183000A (ja) 2000-12-11 2002-06-28 Hitachi Ltd ネットワークを介するデータ参照方法及びそのシステム
US20020073211A1 (en) 2000-12-12 2002-06-13 Raymond Lin System and method for securely communicating between application servers and webservers
KR100750735B1 (ko) 2001-02-03 2007-08-22 삼성전자주식회사 홈네트워크내의 기기 제어장치 및 방법 및 이를 적용한홈네트워크 시스템
US7055036B2 (en) 2001-04-06 2006-05-30 Mcafee, Inc. System and method to verify trusted status of peer in a peer-to-peer network environment
US8051212B2 (en) 2001-04-11 2011-11-01 Mellanox Technologies Ltd. Network interface adapter with shared data send resources
US20030093678A1 (en) 2001-04-23 2003-05-15 Bowe John J. Server-side digital signature system
JP2002328828A (ja) 2001-04-27 2002-11-15 Fujitsu Ltd ストレージサービス方法、ストレージサービスユーザ及びストレージサービスプロバイダ
JP3797236B2 (ja) 2001-04-27 2006-07-12 日本ビクター株式会社 記録再生装置および記録再生方法
US6640226B1 (en) 2001-06-19 2003-10-28 Informatica Corporation Ranking query optimization in analytic applications
US7409420B2 (en) 2001-07-16 2008-08-05 Bea Systems, Inc. Method and apparatus for session replication and failover
US6944785B2 (en) 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
JP2003069610A (ja) 2001-08-22 2003-03-07 Canon Inc 通信装置、その制御方法、通信システム、及び制御プログラム
JP3663627B2 (ja) 2001-10-18 2005-06-22 ソニー株式会社 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
US7136982B2 (en) 2001-11-09 2006-11-14 Danger, Inc. Apparatus and method for allocating memory blocks
DE60214590T2 (de) 2001-12-07 2007-09-13 Research In Motion Ltd., Waterloo Verfahren und vorrichtung zur steuerung der informationsverteilung zu mobilstationen
US7394764B2 (en) 2001-12-14 2008-07-01 Sasken Communication Technologies Limited Technique for improving transmission control protocol performance in lossy networks
US7313816B2 (en) 2001-12-17 2007-12-25 One Touch Systems, Inc. Method and system for authenticating a user in a web-based environment
US7111035B2 (en) 2001-12-26 2006-09-19 Hewlett-Packard Development Company, L.P. Fault tolerance associations for IP transport protocols
US20030140129A1 (en) 2002-01-24 2003-07-24 Noam Livnat Installing communication protocol in a handheld device
US6829606B2 (en) 2002-02-14 2004-12-07 Infoglide Software Corporation Similarity search engine for use with relational databases
US7178050B2 (en) 2002-02-22 2007-02-13 Bea Systems, Inc. System for highly available transaction recovery for transaction processing systems
US7984157B2 (en) 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US7388866B2 (en) 2002-03-07 2008-06-17 Broadcom Corporation System and method for expediting upper layer protocol (ULP) connection negotiations
US7668306B2 (en) 2002-03-08 2010-02-23 Intel Corporation Method and apparatus for connecting packet telephony calls between secure and non-secure networks
JP2003281091A (ja) 2002-03-25 2003-10-03 Fujitsu Ltd 同時受付制御システム
JP4315696B2 (ja) 2002-03-29 2009-08-19 富士通株式会社 ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法
JP4000905B2 (ja) 2002-05-22 2007-10-31 ソニー株式会社 情報処理システムおよび方法、情報処理装置および方法、記録媒体、並びにプログラム
WO2003105439A1 (en) 2002-06-10 2003-12-18 Caplin Systems Limited Resource management
US20040003210A1 (en) 2002-06-27 2004-01-01 International Business Machines Corporation Method, system, and computer program product to generate test instruction streams while guaranteeing loop termination
US7290141B2 (en) 2002-06-27 2007-10-30 Nokia, Inc. Authentication of remotely originating network messages
CA2393502A1 (en) 2002-07-15 2004-01-15 Mark J. Frazer System and method for reliable transport in a computer network
US20040019660A1 (en) * 2002-07-24 2004-01-29 Sandhya E. Lock holding multi-threaded processes for distibuted data systems
US6829473B2 (en) 2002-07-25 2004-12-07 Utstarcom, Inc. Roaming and hand-off support for prepaid billing for wireless data networks
US6928577B2 (en) 2002-07-29 2005-08-09 Eternal Systems, Inc. Consistent message ordering for semi-active and passive replication
US20040032876A1 (en) 2002-08-19 2004-02-19 Ajay Garg Selection of transmission channels
JP3846384B2 (ja) 2002-08-28 2006-11-15 ブラザー工業株式会社 端末装置、接続制御方法、接続制御用プログラム及び記録媒体
US6957367B2 (en) 2002-08-30 2005-10-18 Hewlett-Packard Development Company L.P. System and method for controlling activity of temporary files in a computer system
US7109430B2 (en) 2002-11-05 2006-09-19 Emrise Corporation Low profile rotary switch with detent in the bushing
US7386889B2 (en) 2002-11-18 2008-06-10 Trusted Network Technologies, Inc. System and method for intrusion prevention in a communications network
US7421502B2 (en) 2002-12-06 2008-09-02 International Business Machines Corporation Method and system for storage-aware flow resource management
US7475142B2 (en) * 2002-12-06 2009-01-06 Cisco Technology, Inc. CIFS for scalable NAS architecture
US7664991B1 (en) * 2002-12-17 2010-02-16 Symantec Operating Corporation System and method for distributed file system I/O recovery
US7290051B2 (en) 2003-01-09 2007-10-30 Sun Microsystems, Inc. Method and apparatus for hardware implementation independent verification of network layers
JP3999135B2 (ja) 2003-01-24 2007-10-31 株式会社エヌ・ティ・ティ・ドコモ 通信システム、データ送信方法、通信装置、プログラムおよび記録媒体
US7571463B1 (en) * 2003-01-24 2009-08-04 Nortel Networks Limited Method an apparatus for providing a scalable and secure network without point to point associations
US7151939B2 (en) 2003-02-18 2006-12-19 Qualcomm Incorporated Method, apparatus, and machine-readable medium for providing indication of location service availability and the quality of available location services
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7490152B2 (en) 2003-04-11 2009-02-10 Alcatel-Lucent Usa Inc. Version caching mechanism
US7339885B2 (en) 2003-06-05 2008-03-04 International Business Machines Corporation Method and apparatus for customizable surveillance of network interfaces
US7363629B2 (en) 2003-06-19 2008-04-22 International Business Machines Corporation Method, system, and program for remote resource management
US7526640B2 (en) 2003-06-30 2009-04-28 Microsoft Corporation System and method for automatic negotiation of a security protocol
US7698115B2 (en) 2003-06-30 2010-04-13 Microsoft Corporation System and method for dynamically allocating resources in a client/server environment
US20050015511A1 (en) 2003-07-02 2005-01-20 Nec Laboratories America, Inc. Accelerated large data distribution in overlay networks
US7296264B2 (en) 2003-07-18 2007-11-13 Bea Systems, Inc. System and method for performing code completion in an integrated development environment
JP4490917B2 (ja) 2003-07-24 2010-06-30 パナソニック株式会社 ファイル管理方法及び情報処理装置
US8028078B2 (en) 2003-08-07 2011-09-27 Teamon Systems, Inc. Communications system including protocol interface device providing enhanced operating protocol selection features and related methods
CN100547583C (zh) 2003-08-14 2009-10-07 甲骨文国际公司 数据库的自动和动态提供的方法
US7870268B2 (en) 2003-09-15 2011-01-11 Intel Corporation Method, system, and program for managing data transmission through a network
US20050091226A1 (en) 2003-10-23 2005-04-28 Yun Lin Persistent caching directory level support
US7539722B2 (en) * 2003-10-24 2009-05-26 Microsoft Corporation Method and system for accessing a file
US7673066B2 (en) 2003-11-07 2010-03-02 Sony Corporation File transfer protocol for mobile computer
JP4836432B2 (ja) 2003-11-17 2011-12-14 株式会社リコー 文書管理システム、文書管理装置、文書管理方法、文書管理プログラム及び記録媒体
US7188273B2 (en) * 2003-11-24 2007-03-06 Tsx Inc. System and method for failover
US20050111030A1 (en) 2003-11-25 2005-05-26 Berkema Alan C. Hard copy imaging systems, print server systems, and print server connectivity methods
FI20031779A0 (fi) 2003-12-05 2003-12-05 Nokia Corp Menetelmä, järjestelmä ja lähetettävän puolen yhteyskäytäntöyksikkö datapakettien lähettämiseksi kuittaamattoman toimintamuodon palveluissa
US7383483B2 (en) 2003-12-11 2008-06-03 International Business Machines Corporation Data transfer error checking
US7243284B2 (en) 2003-12-11 2007-07-10 International Business Machines Corporation Limiting number of retransmission attempts for data transfer via network interface controller
US7177941B2 (en) 2003-12-11 2007-02-13 International Business Machines Corporation Increasing TCP re-transmission process speed
US20050177635A1 (en) 2003-12-18 2005-08-11 Roland Schmidt System and method for allocating server resources
US7698361B2 (en) 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
US7383463B2 (en) 2004-02-04 2008-06-03 Emc Corporation Internet protocol based disaster recovery of a server
EP1728249B1 (en) 2004-03-17 2008-08-27 Koninklijke Philips Electronics N.V. Method and device for scanning a disc-shaped information storage medium
US7444536B1 (en) 2004-04-16 2008-10-28 Sun Microsystems, Inc. RMI-IIOP request failover mechanism
US7627627B2 (en) 2004-04-30 2009-12-01 Hewlett-Packard Development Company, L.P. Controlling command message flow in a network
US20050246803A1 (en) 2004-04-30 2005-11-03 Spencer Andrew M Peripheral device for processing data from a computing device
JP2005321953A (ja) 2004-05-07 2005-11-17 Hitachi Ltd ストレージ制御装置、その動作プログラム、及びアクセス制御方法
JP2005322016A (ja) 2004-05-10 2005-11-17 Yokogawa Electric Corp サーバ装置および情報配信方法
US7380080B2 (en) 2004-05-17 2008-05-27 Hewlett-Packard Development Company, L.P. Calculating unneeded data storage credits for a data transmission to a pair of storage devices
US7330910B2 (en) 2004-05-20 2008-02-12 International Business Machines Corporation Fencing of resources allocated to non-cooperative client computers
US7434087B1 (en) 2004-05-21 2008-10-07 Sun Microsystems, Inc. Graceful failover using augmented stubs
US7080173B2 (en) 2004-05-27 2006-07-18 Microsoft Corporation Reducing information reception delays
US20060059118A1 (en) * 2004-08-10 2006-03-16 Byrd Stephen A Apparatus, system, and method for associating resources using a behavior based algorithm
US8023417B2 (en) 2004-08-30 2011-09-20 International Business Machines Corporation Failover mechanisms in RDMA operations
US7418709B2 (en) 2004-08-31 2008-08-26 Microsoft Corporation URL namespace to support multiple-protocol processing within worker processes
US7418712B2 (en) 2004-08-31 2008-08-26 Microsoft Corporation Method and system to support multiple-protocol processing within worker processes
US20060067244A1 (en) * 2004-09-30 2006-03-30 Microsoft Corporation Registration identifier reuse
US7451347B2 (en) 2004-10-08 2008-11-11 Microsoft Corporation Failover scopes for nodes of a computer cluster
US8156049B2 (en) 2004-11-04 2012-04-10 International Business Machines Corporation Universal DRM support for devices
US7457722B1 (en) 2004-11-17 2008-11-25 Symantec Operating Corporation Correlation of application instance life cycle events in performance monitoring
US8522293B2 (en) 2004-12-15 2013-08-27 Time Warner Cable Enterprises Llc Method and apparatus for high bandwidth data transmission in content-based networks
WO2006084503A1 (en) 2005-02-08 2006-08-17 Telefonaktiebolaget Lm Ericsson (Publ) On-demand multi-channel streaming session over packet-switched networks
US7743245B2 (en) 2005-03-10 2010-06-22 Intel Corporation Security protocols on incompatible transports
US7453879B1 (en) 2005-04-04 2008-11-18 Sun Microsystems, Inc. Method and apparatus for determining the landing zone of a TCP packet
US20060281525A1 (en) 2005-05-17 2006-12-14 Milo Borissov Slot type game with player input opportunity
EP1727055B1 (en) 2005-05-25 2016-09-07 Microsoft Technology Licensing, LLC Data communication coordination with sequence numbers
US8332526B2 (en) 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
EP1727056B1 (en) 2005-05-25 2008-11-05 Microsoft Corporation Data communication protocol
RU2313824C2 (ru) * 2005-09-26 2007-12-27 Михаил Васильевич Беляев Информационная система клиент - сервер и способ предоставления графического пользовательского интерфейса
US8108548B2 (en) 2005-12-22 2012-01-31 Microsoft Corporation Methodology and system for file replication based on a peergroup
US8051179B2 (en) 2006-02-01 2011-11-01 Oracle America, Inc. Distributed session failover
US8024439B2 (en) 2006-03-17 2011-09-20 Microsoft Corporation Server session management application program interface and schema
US7526668B2 (en) 2006-06-08 2009-04-28 Hitachi, Ltd. Failover method of remotely-mirrored clustered file servers
US20090077097A1 (en) 2007-04-16 2009-03-19 Attune Systems, Inc. File Aggregation in a Switched File System
US20090193410A1 (en) 2007-09-28 2009-07-30 Xcerion Aktiebolag Network operating system
EP2066101B1 (en) 2007-11-28 2012-10-17 Alcatel Lucent System and method for an improved high availability component implementation
US8458298B2 (en) 2008-03-03 2013-06-04 Microsoft Corporation Failover in an internet location coordinate enhanced domain name system
JP4549408B2 (ja) 2008-06-24 2010-09-22 富士通株式会社 ファイルサーバのクラスタノード制御プログラム,クラスタノード制御方法及びクラスタノード制御装置
US7840730B2 (en) 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
US8700760B2 (en) 2008-08-18 2014-04-15 Ge Fanuc Intelligent Platforms, Inc. Method and systems for redundant server automatic failover
US8275815B2 (en) 2008-08-25 2012-09-25 International Business Machines Corporation Transactional processing for clustered file systems
US8185566B2 (en) 2009-01-15 2012-05-22 Microsoft Corporation Client-based caching of remote files
US9749387B2 (en) 2009-08-13 2017-08-29 Sap Se Transparently stateful execution of stateless applications
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001077844A1 (fr) * 2000-04-10 2001-10-18 Fujitsu Limited Systeme de traitement d'informations et serveur associe
JP2005517241A (ja) * 2002-02-08 2005-06-09 モトローラ・インコーポレイテッド セッション・クライアント間で継続性を提供するためのシステムおよび方法
WO2004003765A1 (ja) * 2002-07-01 2004-01-08 Kabushiki Kaisha Toshiba シームレスシステム及び記録媒体並びにコンピュータシステムの処理継続方法
JP2004078949A (ja) * 2002-08-12 2004-03-11 Docomo Communications Laboratories Usa Inc アプリケーションの移送サービス
JP2004227566A (ja) * 2003-01-02 2004-08-12 Fisher Rosemount Syst Inc プロセス制御システムにおいて利用されるアプリケーションステーション、アプリケーションステーションにおいて利用される冗長マネージャ、第一および第二のアプリケーションステーションを有したプロセス制御システム内に冗長コンテキストを確立する方法、プロセス制御システム内に冗長コンテキストを確立するシステム、内部に格納されたデータを有しているマシンアクセス可能メディア、第一および第二のアプリケーションステーションを有したプロセス制御システム内に冗長コンテキストを維持管理する方法、プロセス制御システム内に冗長コンテキストを維持管理するシステム、内部に格納されたデータを有しているマシンアクセス可能メディア、冗長アプリケーションステーションシステム、および、アプリケーションステーションのコンフィギュレーションを変更する方法。
JP2005032172A (ja) * 2003-07-11 2005-02-03 Nippon Telegr & Teleph Corp <Ntt> セッション制御代行システムと通信サービスシステムおよびセッション制御方法ならびにプログラムと記録媒体
JP2006191617A (ja) * 2004-12-30 2006-07-20 Lucent Technol Inc エンドユーザ端末間の同一セッションの切り替えを提供する方法および装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019516171A (ja) * 2016-03-24 2019-06-13 アリババ グループ ホウルディング リミテッド サービス処理方法、デバイス、及びシステム
US11445030B2 (en) 2016-03-24 2022-09-13 Advanced New Technologies Co., Ltd. Service processing method, device, and system

Also Published As

Publication number Publication date
MX336341B (es) 2016-01-14
ZA201401381B (en) 2015-07-29
SG11201400442SA (en) 2014-04-28
US20130066941A1 (en) 2013-03-14
EP2754059A2 (en) 2014-07-16
MX2014002783A (es) 2014-06-05
EP2754059B1 (en) 2017-03-15
ES2626655T3 (es) 2017-07-25
CO6900122A2 (es) 2014-03-20
IN2014CN01748A (ja) 2015-05-29
WO2013036697A2 (en) 2013-03-14
IL231373A (en) 2017-03-30
CN102932164A (zh) 2013-02-13
CA2847597A1 (en) 2013-03-14
JP6210987B2 (ja) 2017-10-11
WO2013036697A3 (en) 2013-05-02
IL231373A0 (en) 2014-04-30
KR101941728B1 (ko) 2019-04-12
US8788579B2 (en) 2014-07-22
RU2595755C2 (ru) 2016-08-27
KR20140064850A (ko) 2014-05-28
BR112014005191A2 (pt) 2017-03-21
NZ622122A (en) 2015-01-30
AU2012304549B2 (en) 2017-04-06
AU2012304549A1 (en) 2014-03-20
RU2014108995A (ru) 2015-09-20
CN102932164B (zh) 2016-12-21
EP2754059A4 (en) 2015-03-18
CL2014000539A1 (es) 2014-10-03

Similar Documents

Publication Publication Date Title
JP6210987B2 (ja) クラスタ化クライアントのフェイルオーバ
US7418500B1 (en) Mechanism for controlled sharing of files in a clustered application environment
JP6654183B2 (ja) 通信障害後の分散ワークロード再割り当て
US10270759B1 (en) Fine grained container security
US10862860B2 (en) Rebalancing internet protocol (IP) addresses using distributed IP management
WO2017113261A1 (zh) 加锁请求的处理方法及服务器
WO2016074167A1 (zh) 分布式系统中锁服务器故障的处理方法及其系统
WO2018120810A1 (zh) 一种解决数据冲突的方法和系统
US20220094751A1 (en) Passive Management of Network Connections
US11953997B2 (en) Systems and methods for cross-regional back up of distributed databases on a cloud service
US20200137023A1 (en) Distributed network internet protocol (ip) address management in a coordinated system
US11934548B2 (en) Centralized access control for cloud relational database management system resources
US9747323B1 (en) Method for reconstruction of a distributed lock state after a node addition or removal using a consistent hash
US7849055B2 (en) Method and system for limiting instances of a client-server program within a restricted distributed network
US11507512B2 (en) Fault tolerant cluster data handling
US11086846B2 (en) Group membership and leader election coordination for distributed applications using a consistent database
US8627431B2 (en) Distributed network name
US11563800B1 (en) Distributed semantic network for concurrent access to interconnected objects
US11556334B2 (en) Systems and methods for gradually updating a software object on a plurality of computer nodes
US11909816B2 (en) Distributed network address discovery in non-uniform networks
US20230401337A1 (en) Two person rule enforcement for backup and recovery systems
NZ622122B2 (en) Clustered client failover
WO2022250878A1 (en) Centralized access control for cloud relational database management system resources

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150525

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170405

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: 20170814

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170912

R150 Certificate of patent or registration of utility model

Ref document number: 6210987

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250