Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5476316B2 - ソフトウェア・コンポーネントの再開可能なプロビジョニングのためのシステムおよび方法 - Google Patents
[go: Go Back, main page]

JP5476316B2 - ソフトウェア・コンポーネントの再開可能なプロビジョニングのためのシステムおよび方法 - Google Patents

ソフトウェア・コンポーネントの再開可能なプロビジョニングのためのシステムおよび方法 Download PDF

Info

Publication number
JP5476316B2
JP5476316B2 JP2010542361A JP2010542361A JP5476316B2 JP 5476316 B2 JP5476316 B2 JP 5476316B2 JP 2010542361 A JP2010542361 A JP 2010542361A JP 2010542361 A JP2010542361 A JP 2010542361A JP 5476316 B2 JP5476316 B2 JP 5476316B2
Authority
JP
Japan
Prior art keywords
state
computer
software component
global
transitioning
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.)
Active
Application number
JP2010542361A
Other languages
English (en)
Other versions
JP2011510381A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2011510381A publication Critical patent/JP2011510381A/ja
Application granted granted Critical
Publication of JP5476316B2 publication Critical patent/JP5476316B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、コンピュータ・ネットワーク管理に関し、特に、ソフトウェア・コンポーネントの再開可能なプロビジョニングを提供するシステムおよび方法に関する。
データ・センタにおいてソリューションを展開するには、複数層にわたっていくつかのソフトウェア・コンポーネントをインストールおよび構成することが要求される。各ソフトウェア・コンポーネントが独立してインストールおよび構成される必要がある。このタスクは通常、手動で行われるか、または自動プロビジョニング用の、IBMのTivoli(IBM社の登録商標)Provisioning Manager(商標)などのツールを使用して行われる。いずれかのコンポーネントのインストール/構成中に障害が発生すると、そのプロビジョニング実行が破棄され、プロビジョニングが再開されることになる。これは、個別のコンポーネントが各構成を通してリンクし合っていることが多く、このことが選択的な構成解除/アンインストールを難しくするためである。
単一プロセス・コンポーネントのチェックポイント/再開に対する従来の取り組みは、単一ノード環境内における、1つ以上の関連コンポーネントのインストールおよび障害回復に焦点を当てている。さらに、いくつかの関連技術の特許には、次のものが含まれる。「Apparatus and methods for controlling restart conditions of a faulted process」という題の米国特許第6,453,430号は、複数の多様な回復手順による、単一ノード内での処理障害の回復戦略に焦点を当てている。「Restart and recovery of OMG−compliant transaction systems」という題の米国特許第5,923,833号は、トランザクション・システムにおける再開および回復技術に焦点を当てている。「Scheme for restarting processes at distributed checkpoints in client−server computer system」という題の米国特許第6,026,499号は、1つのノードで障害が発生した場合に、複数のノードにわたってプロセスを再開する分散型の方法に焦点を当てており、プロビジョニング、グローバル状態(global state)の捕捉、またはロールバック機能の提供のプロセスは検討されていない。
米国特許第6,453,430号 米国特許第5,923,833号 米国特許第6,026,499号
障害の処理および再開可能性に対する従来の手法は、少なくとも、当該方法において一貫性のある分散したチェックポイントをとることが実行可能でないことが理由で、うまく作用しない。
状態と、分散型システムとを関連付け、コンポーネント状態(component state)を、遷移試行(transitioning attempt)を取り消す回復を用いて遷移させるシステムおよび方法は、システムに関与する複数のコンポーネントの全体的なプロビジョニング状態を表すグローバル状態を定義することを含み、グローバル状態のセットが、プロビジョニング・チェックポイント(provisioning checkpoint)として用いられる。1つの状態から別の状態に遷移するための個別のソフトウェア・コンポーネント・メソッド(software component method)が定義される。個別の状態がグローバル状態に関連付けられる。障害が発生した場合に、ロールバック・メソッド(rollback method)によって目標のグローバル状態が前のグローバル状態にロールバックされることが可能な、該ロールバック・メソッドが定義される。
これらの特徴および利点、ならびに他の特徴および利点が、その実例としての、以下の実施形態の詳細な説明から明らかとなる。この説明は添付の図面と併せて読むものとする。
本開示は、以下の好適な実施形態の説明において、次の図面を参照しながら詳説を提供する。
本原理による例示実施形態を実装するのに使用されるとよいネットワーク・データ処理システムを示すブロック図である。 本原理による例示実施形態を実装するのに使用されるとよいデータ処理システムのブロック図である。 本原理による例示実施形態を実装するのに使用されるとよいサービス配信環境の概略図である。 本原理による例示実施形態を実装するのに使用されるとよい多層モデルの例を示すブロック図である。 本原理による、関与するソフトウェア・コンポーネントの基本状態で構成されるグローバル状態を、1つのグローバル状態から次へ移行するコンポーネント・レベルの状態遷移およびロールバック・パターンとともに示す図である。 例示実施形態による、障害が発生したステップの回復ステップを含む複数のシステム状態を経て進行することで、分散型コンピューティング・ネットワークにおいてソフトウェア・コンポーネントをプロビジョニングするシステム/方法を示すブロック/フロー図である。 本原理による、関与するソフトウェア・コンポーネントの複数のコンポーネント状態または基本状態(elemental state)で構成されているグローバル状態のセットを管理する状態管理を、1つのグローバル状態から次へ移行するためのコンポーネント・レベルの状態遷移およびロールバック・パターンとともに示す図である。 本原理による、図5のグローバル状態を、複数のグローバル状態間を移行するためのコンポーネント・レベルの状態遷移およびロールバック遷移とともに示す別の図である。
分散型コンピューティング・ネットワークにおけるコンピューティング・リソースの自動プロビジョニングのシステムおよび方法が提供される。これにはグローバル状態チェックポイントの使用が含まれ、障害が発生した場合にプロビジョニングの制御されたロールバックを行うことが可能になる。グローバル状態は、プロビジョニングに関与している複数のソフトウェア・コンポーネントの個別の状態を含む。1つのチェックポイントから次へ移行するプロビジョニング試行中に障害が発生した場合に、前のグローバル状態チェックポイントへ逆行するために必要なロールバック手順(単数または複数)が、各グローバル状態に関連付けられている。
例示実施形態によれば、分散型コンピューティング・ネットワークにおけるコンピューティング・リソースの自動プロビジョニングの一方法は、自動プロビジョニング・プロセスの現行の状態を表す単一のグローバル状態の生成を含む。グローバル状態は、分散型コンピューティング・ネットワーク内のソフトウェア・コンポーネントの個別の状態を含む。グローバル状態は、分散型システム内の個別のソフトウェア・コンポーネントのインクリメンタル・プロビジョニング・ステップを通して1つの状態から次へ遷移する。各状態にはロールバック手順が関連付けられている。プロビジョニングで障害が発生した場合には、システムを前のシステム状態に戻すために、この関連付けられているロールバック手順を使用可能である。
当然のことながら、本願明細書に記載される本発明の例示実施形態は、様々な形態のハードウェア、ソフトウェア、ファームウェア、専用プロセッサ、またはその組み合わせにおいて実装され得る。本発明の例示実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアおよびソフトウェア構成要素の両方を含む実施形態という形態をとり得る。
さらに、本発明は、コンピュータもしくは任意の命令実行システムにより使用されるかまたはそれと関連して使用されるプログラム・コードを提供する、コンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能な、コンピュータ・プログラム製品という形態をとることができる。本記載では、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置もしくはデバイスによって、またはそれと関連して使用されるプログラムを、含むこと、格納すること、伝達すること、伝播させること、または移送することができる任意の装置とすることができる。媒体は、電子、磁気、光学、電磁気、赤外線または半導体のシステム(もしくは装置もしくはデバイス)または伝搬媒体とすることができる。コンピュータ可読媒体の例には、半導体または固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、リジッド磁気ディスク、および光学ディスクが含まれる。光学ディスクの現時点における例には、コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disk−read only memory)、コンパクト・ディスク読み取り/書き込み(CD−R/W:compact disk−read/write)、およびDVD(digital versatile disc:デジタル多目的ディスク)が含まれる。
例示実施形態は、例えば、コンピュータなど、命令のプログラムを実行することができるマシンにより読み取り可能なコンピュータのハード・ディスク・ドライブ、CD−ROM(コンパクト・ディスク読み取り専用メモリ)ドライブ、ならびに、CD、DVD(デジタル多目的ディスクまたはデジタル・ビデオ・ディスク(digital video disc))、ユニバーサル・シリアル・バス(USB:Universal Serial Bus)ドライブ、フレキシブル・ディスク、ディスケットおよびテープなどの取り外し可能な媒体など1つ以上のプログラム記憶デバイス上で有形に具現化されたアプリケーション・プログラムとして、ソフトウェア媒体において実装されてもよい。任意の適切なアーキテクチャを含む命令実行システム、装置またはデバイスにアプリケーション・プログラムがアップロードされること、およびそれによってアプリケーション・プログラムが実行されることが可能である。さらに、当然のことながら、添付の図面に示されている本発明の例示実施形態は、ソフトウェアにおいて実装され得るため、システム・コンポーネント間の実際の接続(またはプロセス・ステップのフロー)は、アプリケーションがプログラムされている様式次第で異なってもよい。好適な実施形態では、本発明はソフトウェアにおいて実装され、ソフトウェアは、次に限定されるものではないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含み得る。
プログラム・コードの格納または実行あるいはその両方に適したデータ処理システムには、システム・バスを介してメモリ素子に直接または間接的に結合された少なくとも1つのプロセッサが含まれると考えられる。メモリ素子は、プログラム・コードを実際に実行する間に用いられるローカル・メモリ、大容量記憶装置、および、実行中にコードが大容量記憶装置から読み出される回数を減らすために少なくとも一部のプログラム・コードの一時的な記憶装置となるキャッシュ・メモリを含み得る。入出力、すなわちI/O(Input/Output)デバイス(限定されるものではないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む)は、直接、または介在するI/Oコントローラを介して、システムに結合されているとよい。
さらにネットワーク・アダプタがシステムに結合され、データ処理システムが、介在する私設または公衆ネットワークを介して他のデータ処理システムまたはリモート・プリンタまたは記憶デバイスに結合できるようにするとよい。モデム、ケーブル・モデムおよびイーサネット(R)カードが、現在利用可能な種類のネットワーク・アダプタのごく一部である。
以下、図面を参照するが、図面では、同じ数字は同じ構成要素または類似した構成要素を表している。まず図1を参照する。本発明の例示実施形態を実装するのに使用されるとよいネットワーク・データ処理システム100が、例示的に示されている。ネットワーク・データ処理システム100は、適切な任意のコンピュータを使用して実装できるコンピュータ104、106、110、112、114…のネットワークを含む。ネットワーク・データ処理システム100は、例えば、パーソナル・コンピュータ、ワークステーション、またはメインフレームを含むとよい。ネットワーク・データ処理システム100は、ネットワーク上の各コンピュータまたはプロセスがクライアントまたはサーバのいずれかであるクライアント−サーバ・ネットワーク・アーキテクチャを採用するとよい。
ネットワーク・データ処理システム100は、ネットワーク・データ処理システム100内の様々なデバイスおよびコンピュータ間の通信リンクを提供するために使用される媒体であるネットワーク102を含む。ネットワーク102は、ワイヤ、ワイヤレス通信リンク、光ファイバ・ケーブル、電話による接続、または他の通信リンク、あるいはそのいずれかの組み合わせなど、様々な接続を含み得る。
様々なサーバ、クライアント、およびその他のデバイスが、ネットワーク102に接続できる。例えば、図1に示されているように、記憶ユニット108ならびにクライアント110、112、および114に加えて、サーバ104およびサーバ106が、ネットワーク102に接続されているとよい。記憶ユニット108は、例えば、コンピュータのハード・ディスク・ドライブ、CD−ROMドライブ、または取り外し可能な媒体、あるいはそのいずれかの組み合わせなど、様々な種類の記憶媒体を含むとよく、取り外し可能な媒体とは、例えばCD、DVD、USBドライブ、フレキシブル・ディスク、ディスケット、またはテープあるいはそのいずれかの組み合わせなどである。クライアント110、112および114は、例えば、パーソナル・コンピュータまたはネットワーク・コンピュータ、あるいはその両方とするとよい。
クライアント110は、パーソナル・コンピュータとしてもよい。クライアント110は、処理ユニットおよびメモリ・デバイスを含むシステム・ユニットと、ビデオ・ディスプレイ端末と、キーボードと、フレキシブル・ディスク・ドライブおよびその他の種類の常設または取り外し可能な記憶媒体などの記憶デバイスと、マウスなどのポインティング・デバイスとを含むとよい。例えばジョイスティック、タッチパッド、タッチスクリーン、トラックボール、マイクロホン、および同様のものなど、さらなる入力デバイスがクライアント110に含まれていてもよい。
クライアント110、112、および114は、例えば、サーバ104に対するクライアントとしてもよい。サーバ104は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータをクライアント110、112、および114に提供するとよい。ネットワーク・データ処理システム100は、図示されていない他のデバイスを含んでもよい。
ネットワーク・データ処理システム100は、インターネットを含むことができ、例えば、ネットワーク102は、伝送制御プロトコル/インターネット・プロトコル(TCP/IP:Transmission Control Protocol/Internet Protocol)スイートのプロトコルを使用して相互通信するネットワークおよびゲートウェイの世界的規模の集合を表す。インターネットは、データおよびメッセージをルーティングする多数の商用、政府機関用、教育関連、およびその他のコンピュータ・システムを含む主要ノードまたはホスト・コンピュータ間の、高速データ通信回線のバックボーンを含む。
ネットワーク・データ処理システム100は、例えばイントラネット、ローカル・エリア・ネットワーク(LAN:local area network)、または広域ネットワーク(WAN:wide area network)、あるいはそのいずれかの組み合わせなど、適切な任意の種類のネットワークとして実装されるとよい。図1のネットワーク・データ処理構成要素は、例示を意図したものであり、本発明の実施形態のアーキテクチャを制限するものではない。
図2を参照する。例示実施形態を実装するために使用されるとよいデータ処理システム200のブロック図が、例示的に示されている。データ処理システム200は、図1のサーバ104またはクライアント110などのコンピュータの例であり、ここに本原理によるプロセスを実装するコンピュータ使用可能コードまたは命令があるとよい。
この例では、データ処理システム200は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH:north bridge and memory controller hub)202ならびにサウス・ブリッジおよび入出力(I/O)コントローラ・ハブ(SB/ICH:south bridge and input/output(I/O)controller hub)204を含むハブ・アーキテクチャを採用している。1つ以上のプロセッサを含むとよい処理ユニット206、メイン・メモリ208、およびグラフィックス・プロセッサ210が、ノース・ブリッジおよびメモリ・コントローラ・ハブ202に結合されている。グラフィックス・プロセッサ210は、アクセラレーテッド・グラフィックス・ポート(AGP:accelerated graphics port)を介してNB/MCH202に結合されてもよい。データ処理システム200は、例えば、処理ユニット206内に複数のプロセッサを含む対称型マルチプロセッサ(SMP:symmetric multiprocessor)システムとしてもよい。データ処理システム200は、単一プロセッサ・システムとしてもよい。
ローカル・エリア・ネットワーク(LAN)アダプタ212が、サウス・ブリッジおよびI/Oコントローラ・ハブ204に結合されている。オーディオ・アダプタ216、キーボードおよびマウス・アダプタ220、モデム222、読み出し専用メモリ(ROM)224、ユニバーサル・シリアル・バス(USB)ポートおよびその他の通信ポート232、ならびにPCI/PCIe(PCI Express)デバイス234が、バス238を介してサウス・ブリッジおよびI/Oコントローラ・ハブ204に結合され、ハード・ディスク・ドライブ(HDD:hard disk drive)226ならびにCD−ROMドライブ230が、バス240を介してサウス・ブリッジおよびI/Oコントローラ・ハブ204に結合されている。
PCI/PCIeデバイスの例には、イーサネット(R)アダプタ、アドイン・カード、およびノートブック・コンピュータ用のPCカードがある。一般に、PCIはカード・バス・コントローラを使用するが、PCIeはカード・バス・コントローラを使用しない。ROM224は、例えばフラッシュ・バイナリ入出力システム(BIOS:binary input/output system)としてもよい。ハード・ディスク・ドライブ226およびCD‐ROMドライブ230は、例えば、統合ドライブ・エレクトロニクス(IDE:integrated drive electronics)またはシリアル・アドバンスト・テクノロジ・アタッチメント(SATA:serial advanced technology attachment)インターフェースを使用してもよい。スーパーI/O(SIO:super I/O)デバイス236が、サウス・ブリッジおよびI/Oコントローラ・ハブ204に結合されているとよい。
オペレーティング・システムは、処理ユニット206上で実行されるとよく、データ処理システム200内の様々なコンポーネントを連携させ、その制御を実現する。例えば、オペレーティング・システムは、Microsoft(R)Windows(R)XP(MicrosoftおよびWindowsは、Microsoft Corporationの商標または登録商標)などの市販のオペレーティング・システムとするとよい。
Java(商標)プログラミング・システムなどのオブジェクト指向プログラミング・システムが、オペレーティング・システムとともに実行されてもよく、データ処理システム200上で実行されているJavaプログラムまたはアプリケーションからオペレーティング・システムへのコールを実現する(JavaおよびJavaに基づくすべての商標は、Sun Microsystems,Inc.の商標または登録商標である)。
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションの命令、または命令のプログラム、あるいはそのいずれかの組み合わせは、例えばハード・ディスク・ドライブ226などの記憶デバイスにあり、処理ユニット206による実行のためにメイン・メモリ208にロードされるとよい。例示実施形態のプロセスは、コンピュータ使用可能プログラム・コードを使用して処理ユニット206により実行されるとよく、コードは、例えばメイン・メモリ208、読み出し専用メモリ224などのメモリまたは1つ以上の周辺デバイスにあるとよい。
当然のことながら、図1および2に示されているハードウェアは、実装に応じて異なってもよい。フラッシュ・メモリ、等価な不揮発性メモリ、もしくは光ディスク・ドライブおよび同様のものなど、他の内部ハードウェアまたは周辺デバイスが、示されているハードウェアに加えて、またはその代わりに使用されてもよい。本原理による実施形態のプロセスは、マルチプロセッサ・データ処理システムに適用されてもよい。
データ処理システム200は、様々な形態をとり得る。例えば、データ処理システム200は、タブレット・コンピュータ、ラップトップ・コンピュータ、または電話機としてもよい。データ処理システム200は、例えば携帯情報端末(PDA:personal digital assistant)としてもよい。PDAは、オペレーティング・システム・ファイルまたはユーザ生成データ、あるいはその両方を格納する不揮発性メモリを提供するフラッシュ・メモリを備えた構成であるとよい。データ処理システム200内のバス・システムは、システム・バス、I/Oバス、およびPCIバスなど、1つ以上のバス238、240を含むとよい。当然のことながら、バス・システムは、通信構造またはアーキテクチャに結合された種々のコンポーネントまたはデバイス間のデータ転送を提供する、任意の種類の通信構造またはアーキテクチャを使用して実装されるとよい。通信ユニットは、モデム222またはネットワーク・アダプタ212など、データの送受信に使用される1つ以上のデバイスを含むとよい。メモリは、例えば、メイン・メモリ208、ROM224、またはノース・ブリッジおよびメモリ・コントローラ・ハブ202にあるようなキャッシュとしてもよい。処理ユニット206は、1つ以上のプロセッサ、すなわちCPUを含むとよい。
例示実施形態による自動プロビジョニングの方法は、図1に示されているデータ処理システム100または図2に示されているデータ処理システム200などのデータ処理システムにおいて実行されるとよい。
命令のプログラムの格納または実行あるいはその両方に適しているデータ処理システムは、システム・バスによってメモリ素子に直接または間接的に結合された1つ以上のプロセッサを含み得る。メモリ素子は、プログラム・コードを実際に実行する間に用いられるローカル・メモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを読み出さなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的な記憶装置となるキャッシュ・メモリとを含むことができる。
データ処理システム200は、例えばキーボード、ディスプレイ、およびポインティング・デバイスなどの入出力(I/O)デバイスを含むとよく、これは、直接または介在するI/Oコントローラを介してシステムに結合されているとよい。さらにネットワーク・アダプタがシステムに結合され、データ処理システムが、介在する私設または公衆ネットワークを介して他のデータ処理システムまたはリモート・プリンタまたは記憶デバイスに結合できるようにするとよい。ネットワーク・アダプタは、限定されるものではないが、モデム、ケーブル・モデムおよびイーサネット(R)カードを含む。
図3を参照する。一例示実施形態を実装するために使用されるとよいサービス配信環境300の略図が、例示的に示されている。サービス配信環境300は、複数の物理サーバのファーム(farm)302、DMZ(demilitarized zone:非武装地帯)306、および複数の管理サーバ312を含む。「非武装地帯」という用語、または「DMZ」という頭字語は、組織の内部ネットワークと、インターネットなどの外部ネットワークとの間に位置するネットワーク領域を指す。
インターネットまたはイントラネットからのユーザ・リクエストは、ルータ・デバイスによって受信される。例えば、ルータ・デバイスは、DMZ306内にあってもよい。ルータ・デバイスは、IBMのWebSeal(商標)製品などのリバース・プロキシによって実装されてもよい。
ユーザ・リクエストは、ネットワーク308を介して、サーバ・ファーム(server farm)302上で実行されている実または仮想マシン310の集合でホストされているプロビジョニング・ソリューションへ送られるとよい。サーバ・ファーム302の管理に使用可能な管理サーバ312が、ネットワーク308を介して物理サーバ302に結合されている。管理サーバ312は、システム・アドミニストレータ304によって、サーバ・ファームの管理および監視に使用されるとよい。管理サーバ312上で実行されているソフトウェアが、ソフトウェア・メータリング、アプリケーション・プロビジョニング、すべての(または選択された)アプリケーションの監視、およびサーバ・ファームの問題判別などの様々なタスクを支援するとよい。
本原理による例示実施形態を実装するために使用されるとよい多層システムの例を示すブロック/フロー図である図4を参照する。示されているモデルは3層モデル400である。各層は、それ自体が多層であってもよい(その場合、全体的なアーキテクチャが「n層アーキテクチャ」と呼ばれる)。ロジック層を様々な形で物理的に実装することができる。例えば、3層すべてが別々のサーバに物理的に実装されてもよく、これにより、拡張性の向上、および同時により多くのクライアント・リクエストを処理する能力をもたらすことができる。
第1層402は、プレゼンテーションまたはウェブ層であり、ユーザ向けに様々な形式でコンテンツを動的に生成する。プレゼンテーション層402は、ユーザとビジネス層404との間のインタラクションを処理するコンポーネントを含む。プレゼンテーション層402とのユーザ・インタラクションは、ウェブ・ブラウザを介するとよい。例えば、HTMLベースのフロント・エンドをサポートするウェブ・ブラウザがウェブ・サーバと通信して、ウェブ・サーバが、変更されたウェブ・ページまたは新たなウェブ・ページをユーザに対し送り返す。当然のことながら、ウェブ・サーバは、様々な手法を用いてユーザ・リクエストに応じることができる。当該手法には、次に限定されるものではないが、共通ゲートウェイ・インターフェース(CGI:Common Gateway Interface)、Microsoftのアクティブ・サーバ・ページ(ASP:Active Server Page)、およびJavaサーバ・ページ(JSP:Java Server Page)がある。プレゼンテーション層(402)のコンポーネントには、HTMLページと、イメージと、ポートレットまたはサーブレットあるいはその両方などのHTMLページを表示および処理するためのコンピュータ可読コードとが含まれるとよい。
第2層404は、アプリケーションまたはビジネス層である。ビジネス層404のコンポーネントは、クライアント・リクエストを処理し、アプリケーションのビジネス・ロジックを提供する。ビジネス・ロジックは、特定のアプリケーション・ドメインに機能性を提供するコンピュータ可読コードを含む。ビジネス・ロジックは、実際のJ2EE(Java 2 Platform,Enterprise Edition:Java2プラットフォーム・エンタープライズ・エディション)アプリケーション、またはプロビジョニング・ソリューションに特有の機能性を実行するビジネス・プロセスによって具現化されるとよい。
第3層406はデータベース層である。データベース層406は、データと、データベース管理ソフトウェアなど、データへのアクセスを管理および提供するコンポーネントとを含む。
図5を参照する。本原理による、個別の複数ソフトウェア・コンポーネント状態で構成されたグローバル状態の例が例示的に示されている。グローバル状態502は、一組のコンポーネント状態508、510、および512で構成されている。システムのプロビジョニングには、各コンポーネントの、508から514へ、510から516へ、および512から518への個別の状態遷移によって、状態502から状態504にグローバル状態を移行させることが含まれる。508および510から新たなグローバル状態504へと遷移するコンポーネントCとCとの間の順序依存性が原因で、コンポーネントC1Bは、中間状態(C1B’)506を経て移行する。
実際には、例示の方法は、複数の個別コンポーネント状態を表す組として、コンポーネント状態を捕捉する。有効な状態の例示のセットには、NotInstalled、Installed、Started、Phase<n>、Completedが含まれると考えられ、Phase<n>はコンポーネント特有である。図5では、コンポーネント[C,C,C]のグローバル状態B(502)は、[Installed,Installed,NotInstalled]であり得る。Cの部分的遷移によって表される中間状態(506)は、[Started,Installed,NotInstalled]であり得る。最後のグローバル状態C(504)は、[Phase1,Phase1,Installed]であり得る。
図6は、例示実施形態による、分散型コンピューティング・ネットワークにおけるコンピューティング・リソースの自動プロビジョニングの方法を示すフロー図である。
図6を参照する。プロビジョニング・リクエストが、ブロック602で受信される。ブロック604は、システムを構成する各コンポーネントの現在の状態を検査することによって、システムの初期グローバル状態を確立する。例えば、個別のソフトウェア・コンポーネントは、プロビジョニング・リクエストの前に展開および構成されているとよい。ブロック606は、システム内の各ソフトウェア・コンポーネントの現在の状態を調べて、次のグローバル状態に移行するのに必要な個別のステップと、当該ステップ間の順序依存性とを特定する。
ブロック608は、ブロック606で特定された実際のプロビジョニング・ステップを開始する。このステップは、状態遷移方法で定義された任意の順序依存性を保持しながら、順次実行されても、または並行して実行されてもよい。ブロック610は、個別のコンポーネント状態遷移の成功を調べ、新たなグローバル状態が実現されたかどうかを判断する。
いずれかのブロックで障害が発生すると、グローバル状態遷移全体が失敗したということであり、ロールバック手順の開始が必要となる。ロールバック手順はブロック616から始まる。ブロック616は、試行された、ロールバックが必要な個別のコンポーネント状態遷移を特定する。ブロック618は、ブロック616で特定された、前のグローバル状態チェックポイントへと逆行するために必要なロールバック・ステップを開始する。
既知状態にロールバックした後、障害の原因が、プロビジョニング・プロセスの外部での手動または自動介入によって修正されるとよい。ブロック620は、問題が修正されたかどうかの判断である。修正されていない場合、ブロック622に示されているように、システムは、既知の障害状態のままとなる。問題が修正されている場合には、制御はブロック606に戻る。
ブロック610で、状態遷移分析が成功すると、ブロック612で、プロビジョニング・リクエストのさらなる評価が行われ、別のグローバル状態遷移が必要であるかどうかが判断されることになる。別のグローバル状態遷移が必要であれば、制御はブロック606に返される。ブロック612で、さらなる状態遷移が必要でなければ、ブロック614に表されているように、システムのプロビジョニングが成功したことになる。
実際には、例示の方法は、対象の環境を検査することによって、初期のコンポーネント状態を特定する。プロビジョニング・ロジックは、グローバル状態の定義と、遷移ステップのセットとを、メタデータ定義によって組み込む。プロビジョニング・ロジックは、初期コンポーネント状態を所与として、次のグローバル状態を判断する。その状態に達するために必要な各遷移ステップが開始される。すべてのステップが成功すれば、新たなグローバル状態に達する。残っているグローバル状態があれば、このパターンが繰り返される。ステップが失敗した場合、そのグローバル状態遷移に関連付けられているロールバック・ステップが開始される。障害の原因の自動修正によって、プロビジョニング・プロセスが、前のグローバル状態から再開可能となる。原因が修正されなければ、前のグローバル状態にて、プロビジョニング全体が失敗状態のままとなる。
以下、本原理による、より詳しい例を提示する。個別のソフトウェア・コンポーネントの状態がプロビジョニング・プロセスの単一のグローバル状態にリンクされる、状態に基づく手法について記載する。ソリューションのプロビジョニングは、プロビジョニングが進むにつれて1つの状態から別の状態へ遷移する。ソフトウェア・コンポーネントの各状態には、自動回復に使用されるロールバック手順が関連付けられている。
障害が発生すると、分散型システムの状態は、グローバル状態によって表される各ソフトウェア・コンポーネントに関連付けられている「アンドゥ」手順を実行することによって、前の一貫した状態にロールバックされる。グローバル状態は、手動での回復のためにソフトウェア・コンポーネントの現在の状態を理解する手がかりとなる。
図7を参照する。実例としての実施形態による状態管理が示されている。各グローバル状態702は、そのサブコンポーネントCの複合状態である。例えば、初期状態(702)は、状態C10およびC20に2つのサブコンポーネントを含む。
実線矢印704は、1つのグローバル状態から別のグローバル状態へ、および各サブコンポーネント状態から別のサブコンポーネント状態への状態遷移を示している。ラベルがある破線706は、1つのサブコンポーネントの状態を前の状態にロールバックする回復手順を示す。例えば、手順proc2は、コンポーネントCの状態を、状態C1BからC1Aにロールバックする。
1つのグローバル状態から別のグローバル状態への遷移中に障害が発生した場合、プロビジョニング・サブシステムは、個別のコンポーネントの状態を前のコンポーネント状態にロールバックするアンドゥ手順を自動実行する。「アンドゥ」手順は、次の状態に移動した、または移動する途中のコンポーネントに対してのみ実行される。
すべてのサブコンポーネントが、次の状態に同時に遷移する必要はない。次の状態への遷移に関連するタスクを完了するのに必要なプロビジョニング・ステップに基づき、特有の順序依存性、すなわちコンポーネントおよび手順両方の依存性がある可能性がある。さらに、すべてのコンポーネントが、グローバル状態が変化するにつれて次の状態に遷移する必要はない。例えば、図7では、コンポーネントCの状態は、グローバル状態が状態Aから状態Bに遷移するとき、C3Aのままである。
図8を参照する。状態遷移中の順序依存性の例が例示的に示されている。コンポーネントCは、手順(a)実行の結果、中間状態C1B’に遷移する。次に、コンポーネントCは、手順(b)実行の結果、状態C2BからC2Cに遷移する。この遷移が完了した後、コンポーネントCは、手順(c)実行の結果、中間状態C1B’からC1Cに遷移する。コンポーネントCは、手順(d)実行の結果、C3AからC3Cに遷移する。ステップ(a)〜(d)のうちいずれかが失敗すると、前のグローバル状態に達するよう、個別のロールバック手順(例えばproc1’、proc1’’、proc23、proc33)が、逆の順序で実行される。
ソフトウェア・コンポーネントの再開可能なプロビジョニングのシステムおよび方法の好適な実施形態(実例となるものであり、制限的ではないもとする)について記載してきたが、当業者によって、上記の教示を踏まえて変更が加えられること、および変形物がつくられることが可能であることに留意されたい。したがって、当然のことながら、添付の特許請求の範囲によって示される本発明の範囲および意図の範囲内で、開示された特定の実施形態に変更が加えられてもよい。このように、本発明の各側面について、特許法により要求される細目および詳細事項とともに記載してきたが、特許請求され、特許証による保護が望まれる範囲は、添付の特許請求の範囲に記載されている。

Claims (16)

  1. 状態と、分散型システムとを関連付け、ソフトウェア・コンポーネント状態を、遷移試行を取り消す回復能力を用いて遷移させる方法であって、コンピュータが、
    分散型システムに関与する複数のソフトウェア・コンポーネントの全体的なプロビジョニング状態を表すグローバル状態を定義するステップであって、グローバル状態のセットが、プロビジョニング・チェックポイントとして用いられる、前記ステップと、
    1つの状態から別の状態に遷移するための個別のソフトウェア・コンポーネント・メソッドを定義するステップと、
    前記ソフトウェア・コンポーネントの個別の状態と、グローバル状態とを関連付けるステップと、
    ソフトウェア・コンポーネントの状態遷移において障害が発生した場合に、ロールバック・メソッドによって目標のグローバル状態が前のグローバル状態にロールバックされることが可能な、前記ロールバック・メソッドを定義するステップと、
    を含む方法。
  2. ロールバック・メソッドを定義するステップは、前記障害が発生した遷移において開始された個別のソフトウェア・コンポーネント遷移すべてをロールバックする単一プロセスを定義するステップを含む、請求項1に記載の方法。
  3. ロールバック・メソッドを定義するステップは、ソフトウェア・コンポーネント・レベルでの個別の状態遷移アクティビティに関連付けられた個別のロールバック手順を定義するステップを含む、請求項1に記載の方法。
  4. 前記コンピュータが初期のグローバル状態から次のグローバル状態に直接、単一ステップでソフトウェア・コンポーネントを遷移させるステップをさらに含む、請求項1に記載の方法。
  5. 前記コンピュータがいずれのグローバル状態チェックポイントの一部でもない中間のソフトウェア・コンポーネント・レベル状態にソフトウェア・コンポーネントを遷移させるステップをさらに含む、請求項1に記載の方法。
  6. 前記コンピュータが1つのグローバル状態チェックポイントから別のグローバル状態チェックポイントに移行するソフトウェア・コンポーネント間に何らの順序依存性も保持せずに、前記ソフトウェア・コンポーネントを遷移させるステップをさらに含む、請求項1に記載の方法。
  7. 1つのグローバル状態チェックポイントから別のグローバル状態チェックポイントに移行するソフトウェア・コンポーネント間に順序依存性を保持しながら、前記ソフトウェア・コンポーネントを遷移させるステップをさらに含む、請求項1に記載の方法。
  8. 前記コンピュータが障害の原因を判断するステップ
    をさらに含み、
    障害の前記原因が判断されれば、状態間の遷移を継続し、
    判断されなければ、前記システムは既知の障害状態のままとなる、
    請求項1に記載の方法。
  9. 状態と、分散型システムとを関連付け、ソフトウェア・コンポーネント状態を、遷移試行を取り消す回復能力を用いて遷移させるコンピュータ可読プログラムを記憶するコンピュータ可読媒体であって、前記コンピュータ可読プログラムは、コンピュータ上で実行されると、前記コンピュータに、
    分散型システムに関与する複数のソフトウェア・コンポーネントの全体的なプロビジョニング状態を表すグローバル状態を定義するステップであって、グローバル状態のセットが、プロビジョニング・チェックポイントとして用いられる、前記ステップと、
    1つの状態から別の状態に遷移するための個別のソフトウェア・コンポーネント・メソッドを定義するステップと、
    前記ソフトウェア・コンポーネントの個別の状態と、グローバル状態とを関連付けるステップと、
    ソフトウェア・コンポーネントの状態遷移において障害が発生した場合に、ロールバック・メソッドによって目標のグローバル状態が前のグローバル状態にロールバックされることが可能な、前記ロールバック・メソッドを定義するステップと、
    を実行させる、コンピュータ可読媒体。
  10. ロールバック・メソッドを定義するステップは、前記障害が発生した遷移において開始された個別のソフトウェア・コンポーネント遷移すべてをロールバックする単一プロセスを定義することを含む、請求項9に記載のコンピュータ可読媒体。
  11. ロールバック・メソッドを定義するステップは、ソフトウェア・コンポーネント・レベルでの個別の状態遷移アクティビティに関連付けられた個別のロールバック手順を定義することを含む、請求項9に記載のコンピュータ可読媒体。
  12. 初期のグローバル状態から次のグローバル状態に直接、単一ステップでソフトウェア・コンポーネントを遷移させることをさらに含む、請求項9に記載のコンピュータ可読媒体。
  13. いずれのグローバル状態チェックポイントの一部でもない中間のソフトウェア・コンポーネント・レベル状態にソフトウェア・コンポーネントを遷移させることをさらに含む、請求項9に記載のコンピュータ可読媒体。
  14. 1つのグローバル状態チェックポイントから別のグローバル状態チェックポイントに移行するソフトウェア・コンポーネント間に何らの順序依存性も保持せずに、前記ソフトウェア・コンポーネントを遷移させることをさらに含む、請求項9に記載のコンピュータ可読媒体。
  15. 1つのグローバル状態チェックポイントから別のグローバル状態チェックポイントに移行するソフトウェア・コンポーネント間に順序依存性を保持しながら、前記ソフトウェア・コンポーネントを遷移させることをさらに含む、請求項9に記載のコンピュータ可読媒体。
  16. 障害の原因を判断すること
    をさらに含み、
    障害の前記原因が判断されれば、状態間の遷移を継続し、
    判断されなければ、前記システムは既知の障害状態のままとなる、
    請求項9に記載のコンピュータ可読媒体。
JP2010542361A 2008-01-11 2009-01-09 ソフトウェア・コンポーネントの再開可能なプロビジョニングのためのシステムおよび方法 Active JP5476316B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/972,763 2008-01-11
US11/972,763 US8776018B2 (en) 2008-01-11 2008-01-11 System and method for restartable provisioning of software components
PCT/US2009/030530 WO2009089408A1 (en) 2008-01-11 2009-01-09 System and method for restartable provisioning of software components

Publications (2)

Publication Number Publication Date
JP2011510381A JP2011510381A (ja) 2011-03-31
JP5476316B2 true JP5476316B2 (ja) 2014-04-23

Family

ID=40851586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010542361A Active JP5476316B2 (ja) 2008-01-11 2009-01-09 ソフトウェア・コンポーネントの再開可能なプロビジョニングのためのシステムおよび方法

Country Status (7)

Country Link
US (1) US8776018B2 (ja)
EP (1) EP2247996A4 (ja)
JP (1) JP5476316B2 (ja)
KR (1) KR101354228B1 (ja)
CN (1) CN101910971B (ja)
TW (1) TW200937218A (ja)
WO (1) WO2009089408A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003270322A1 (en) * 2003-09-05 2005-04-21 Itron, Inc. Synchronizing and controlling software downloads, such as for utility meter-reading data collection and processing
US10013277B2 (en) * 2009-05-29 2018-07-03 Red Hat, Inc. Rolling back state changes in distributed transactions
FR2968422B1 (fr) * 2010-12-01 2013-07-19 Commissariat Energie Atomique Procédé et dispositif de fiabilisation d'un système multi-processeur par pointage hybride
US9021138B2 (en) 2011-08-26 2015-04-28 Microsoft Technology Licensing, Llc Performance of multi-processor computer systems
US10127084B2 (en) * 2012-11-15 2018-11-13 Red Hat Israel, Ltd. Pre-provisioning resources for composite applications
US9081964B2 (en) 2012-12-27 2015-07-14 General Electric Company Firmware upgrade error detection and automatic rollback
FR3003365B1 (fr) 2013-03-12 2015-04-10 Airbus Operations Sas Procede et dispositif de gestion de mises a jour logicielles d'un ensemble d'equipements d'un systeme tel qu'un systeme d'un aeronef
US20160179627A1 (en) * 2013-07-30 2016-06-23 Nec Europe Ltd. Method and system for checkpointing a global state of a distributed system
US9461976B1 (en) 2015-03-25 2016-10-04 Mcafee, Inc. Goal-driven provisioning in IoT systems
US10148489B2 (en) 2015-09-01 2018-12-04 At&T Intellectual Property I, L.P. Service impact event analyzer for cloud SDN service assurance
CN107528709A (zh) * 2016-06-22 2017-12-29 中兴通讯股份有限公司 一种配置状态回退方法和装置
WO2019155827A1 (ja) * 2018-02-06 2019-08-15 日本電気株式会社 システム更新装置およびシステム更新方法
CN112579315B (zh) * 2019-09-30 2025-01-07 北京国双科技有限公司 操作执行状态的处理方法、装置、存储介质和设备

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3154942B2 (ja) 1995-09-11 2001-04-09 株式会社東芝 分散チェックポイント生成方法および同方法が適用される計算機システム
US5630047A (en) * 1995-09-12 1997-05-13 Lucent Technologies Inc. Method for software error recovery using consistent global checkpoints
US5712971A (en) 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
GB2311391A (en) * 1996-03-19 1997-09-24 Ibm Restart and recovery of OMG compliant transaction systems
US6185702B1 (en) * 1997-01-24 2001-02-06 Kabushiki Kaisha Toshiba Method and system for process state management using checkpoints
JP3253883B2 (ja) * 1997-01-31 2002-02-04 株式会社東芝 プロセスリスタート方法及びプロセス監視装置
SE510050C2 (sv) * 1997-07-21 1999-04-12 Ericsson Telefon Ab L M Metod för insamlande av logginformation vid förändring av databas
US6795966B1 (en) * 1998-05-15 2004-09-21 Vmware, Inc. Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US6453430B1 (en) * 1999-05-06 2002-09-17 Cisco Technology, Inc. Apparatus and methods for controlling restart conditions of a faulted process
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US6556544B1 (en) * 1999-10-22 2003-04-29 Nortel Networks Limited Method and system for provisioning network resources for dynamic multicast groups
GB0017336D0 (en) * 2000-07-15 2000-08-30 Ibm Preferable modes of software package deployment
US7334004B2 (en) * 2001-06-01 2008-02-19 Oracle International Corporation Consistent read in a distributed database environment
US6898702B1 (en) * 2001-06-29 2005-05-24 Ciena Corporation System and method for staggered starting of embedded system modules in an optical node
US7203866B2 (en) * 2001-07-05 2007-04-10 At & T Corp. Method and apparatus for a programming language having fully undoable, timed reactive instructions
US7471625B2 (en) 2001-10-31 2008-12-30 Nec Corporation Fault recovery system and method for a communications network
US20040001476A1 (en) * 2002-06-24 2004-01-01 Nayeem Islam Mobile application environment
US7337195B2 (en) * 2002-12-31 2008-02-26 International Business Machines Corporation Method and device for establishing synchronized recovery log points
US7093088B1 (en) * 2003-04-23 2006-08-15 Emc Corporation Method and apparatus for undoing a data migration in a computer system
US7263590B1 (en) * 2003-04-23 2007-08-28 Emc Corporation Method and apparatus for migrating data in a computer system
US7174479B2 (en) * 2003-09-10 2007-02-06 Microsoft Corporation Method and system for rollback-free failure recovery of multi-step procedures
JP2008502953A (ja) * 2003-11-17 2008-01-31 ヴァージニア テック インテレクチュアル プロパティーズ,インコーポレイテッド 分散システムにおけるトランスペアレントなチェックポインティング及びプロセス移行
US7447710B2 (en) 2003-12-11 2008-11-04 Sybase, Inc. Database system providing self-tuned parallel database recovery
US20050132351A1 (en) * 2003-12-12 2005-06-16 Randall Roderick K. Updating electronic device software employing rollback
US7275183B2 (en) * 2004-04-30 2007-09-25 Hewlett-Packard Development Company, L.P. Method of restoring processes within process domain
US7787360B2 (en) * 2004-07-23 2010-08-31 Cisco Technology, Inc. System and method for preserving multicast data forwarding during control failures in a router
US7613743B1 (en) * 2005-06-10 2009-11-03 Apple Inc. Methods and apparatuses for data protection
US7516361B2 (en) * 2005-06-27 2009-04-07 Sun Microsystems, Inc. Method for automatic checkpoint of system and application software
US7707451B2 (en) * 2005-06-28 2010-04-27 Alcatel-Lucent Usa Inc. Methods and devices for recovering from initialization failures
US7761739B2 (en) * 2006-02-23 2010-07-20 Librato, Inc. Method for checkpointing a system already engaged in a concurrent checkpoint
US7996716B2 (en) * 2008-06-12 2011-08-09 International Business Machines Corporation Containment and recovery of software exceptions in interacting, replicated-state-machine-based fault-tolerant components
US8108718B2 (en) * 2009-11-13 2012-01-31 Hewlett-Packard Development Company, L.P. Checkpointing in massively parallel processing
US8132043B2 (en) * 2009-12-17 2012-03-06 Symantec Corporation Multistage system recovery framework

Also Published As

Publication number Publication date
CN101910971A (zh) 2010-12-08
TW200937218A (en) 2009-09-01
CN101910971B (zh) 2012-09-19
KR20100120131A (ko) 2010-11-12
US20090182782A1 (en) 2009-07-16
EP2247996A4 (en) 2012-06-27
JP2011510381A (ja) 2011-03-31
KR101354228B1 (ko) 2014-01-22
EP2247996A1 (en) 2010-11-10
WO2009089408A1 (en) 2009-07-16
US8776018B2 (en) 2014-07-08

Similar Documents

Publication Publication Date Title
JP5476316B2 (ja) ソフトウェア・コンポーネントの再開可能なプロビジョニングのためのシステムおよび方法
US7434220B2 (en) Distributed computing infrastructure including autonomous intelligent management system
JP4900982B2 (ja) サーバ・クラスタにおいてフェイルオーバを管理するための方法、フェイルオーバ・サーバ及びコンピュータ・プログラム
US9569480B2 (en) Method and system for stateful recovery and self-healing
US9946587B2 (en) Intelligent rolling upgrade for data storage systems
CN102105867B (zh) 维护跨数据中心的数据服务器中的数据完整性的方法和系统
US20160239396A1 (en) Preserving management services with distributed metadata through the disaster recovery life cycle
US7987394B2 (en) Method and apparatus for expressing high availability cluster demand based on probability of breach
Van Vugt Pro Linux high availability clustering
CN116324754A (zh) 来自分布式文件系统的事件通知的递送
Carter Implementing AlwaysOn Availability Groups
Vargas et al. Sun Cluster Environment: Sun Cluster 2.2

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130625

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140207

R150 Certificate of patent or registration of utility model

Ref document number: 5476316

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250