JP4876438B2 - コンポーネントソフトウェアの運用方法および運用基盤 - Google Patents
コンポーネントソフトウェアの運用方法および運用基盤 Download PDFInfo
- Publication number
- JP4876438B2 JP4876438B2 JP2005158299A JP2005158299A JP4876438B2 JP 4876438 B2 JP4876438 B2 JP 4876438B2 JP 2005158299 A JP2005158299 A JP 2005158299A JP 2005158299 A JP2005158299 A JP 2005158299A JP 4876438 B2 JP4876438 B2 JP 4876438B2
- Authority
- JP
- Japan
- Prior art keywords
- component
- container
- identifier
- ejb
- remote
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
ネームサーバ400はJNDI(Java Naming and Directory Interface)APIをサポートする名前とオブジェクトの対応関係を管理するサーバである。ネームサーバ400はテーブル401と制御部402を持つ。テーブル401は名前411とオブジェクト412の欄を持つ。制御部402はJNDI APIをクライアントに提供し、各APIの機能を実現する。ネームサーバの主要なAPIとして、以下の4つがある。
(2)lookup
(3)rebind
(4)unbind
bindは名前NとオブジェクトOの組(N、O)をネームサーバ400に登録し、lookupは名前Nでネームサーバ400を引いて名前Nに対応するオブジェクトOを取り出し、rebindは名前NとオブジェクトOの組(N、O)のオブジェクト部分をOからOnに変更し、unbindは名前Nのエントリ(N、O)をネームサーバから取り除く。図2のネームサーバ400のテーブル401には2つのエントリ421と422が登録されている。図1ではネームサーバ400はアプリケーション運用基盤中に存在しているが、アプリケーション運用基盤とは独立して存在する場合もある。
デプロイヤ110はEJBをファイルシステムから読み込んで、それを元にEJBのコンテナと、リモート送受信部を生成する。この動作を配備(デプロイ)と呼ぶ。例えばEJB Aを配備する場合、デプロイヤ110はファイルシステム200からEJB Aのクラスファイル210を読み込み、EJB Aのコンテナ300、リモートA受信部310、リモートA送信部311を生成する。そして、EJB Aの名前Aとコンテナ300のリモートインタフェースIntConAの組(A、IntConA)をネームサーバ400のbind APIを呼び出してネームサーバ400に登録する。登録されたエントリは421である。同様にEJB Bを配備すると、ファイルシステム200からEJB Bのクラスファイル211を読み込み、EJB Bのコンテナ320、リモートB受信部330、リモートB送信部(リモートB送信部は以後使用しないので図2には示していない)を生成する。そして、コンポーネントBの名前Bとコンテナ320のリモートインタフェースIntConBの組(B、IntConB)をネームサーバ400のbind APIを呼び出して登録する。登録されたエントリは422である。
コンテナ300、コンテナ320はそれぞれEJB Aのインスタンス301、EJB Bのインスタンス321の実行をサポートする実行環境である。クライアントからのcreateメソッド呼び出しに従ってインスタンス301、321を生成する。
リモートA受信部310とリモートA送信部311はペアとなっておりクライアントからのEJB Aのリモートメソッド呼び出しのための通信をサポートする。同様にリモートB受信部330とリモートB送信部(図2中には記述無し)はペアとなっておりクライアントからのEJB Bのリモートメソッド呼び出しのための通信をサポートする。これらの通信は一般的にRMI−IIOPなどのプロトコルが使用される。一般的にリモート受信部(310、330)はRMIのスケルトン、リモート送信部(311)はRMIのスタブである。これらリモート受信部とリモート送信部のペアはEJBデプロイ時にJ2EEサーバによって自動的に生成されるか、あるいは、はじめからJ2EEサーバに組み込まれているかのどちらかである。
ファイルシステム200はコンポーネントソフトウェア運用基盤100のが動作するOSのファイルシステムである。
クラスファイル210、211はJavaのオブジェクトファイルであり、Javaで記述されたソースコードをJavaコンパイラでコンパイルして得られる。あるいは、コンパイルして得られたオブジェクトファイルとそれを配備するデプロイメントデスクリプタをJARファイルとしてアーカイブしたものである。
この再起動の考え方を粒度の小さなコンポーネントレベルで行うことでより効率的に障害から復旧する方法が特許文献1や非特許文献1に示されている。
アプリケーション運用基盤に、各コンポーネントの状態や運用基盤自身の状態を監視する監視部、監視部の情報に基づいて各コンポーネント毎に定義された条件が成立するかどうかを判定する判定部、判定部によって条件が成立したコンポーネントを指定された代替コンポーネントに入替える制御を行う制御部、既にアプリケーション運用基盤に配備されたコンポーネントを重複して配備する重複デプロイヤ、コンポーネント間の通信を制御する通信制御部、2つのエントリの名前とオブジェクトとをアトミックに入替える機能を持ったネームサーバを儲ける。
(1)ネームサーバ
ネームサーバ450は図2のネームサーバ400に機能を追加したものである。テーブル401は図2のテーブルそのものである。制御部452は図2の制御部402がサポートする全てのAPIの他に図8に示すreplaceというAPIとその処理機能を備える。制御部452がサポートする主要なAPIを以下に示す。
(1)bind
(2)lookup
(3)rebind
(4)unbind
(5)replace
後述するように既存のbind等のAPIの処理も処理がアトミックとなるように機能を修正している。replace APIは2つの名前name1、name2を引数として取り、テーブル401に登録されている名前がname1のエントリのオブジェクトと、名前がname2であるエントリのオブジェクトをアトミックに入替える。例えばテーブル401に名前NaとオブジェクトOaの組(Na、Oa)と、名前NbとオブジェクトObの組(Nb、Ob)が登録されており、replace(Na、Nb)が呼び出された場合、2つのエントリは(Na、Ob)、(Nb、Oa)となる。このreplaceの処理はlookupとrebindを組み合わせることで実現できる。まずNa、NbをそれぞれlookupしオブジェクトOa、 Obを取り出す。次に、名前Naに対してObをrebindし、名前Nbに対してOaをrebindする。ただし、これらの処理の実行途中に、replace処理とは別にlookup、 rebind、 unbind処理が発生すると、テーブルが不整合になるなどの問題が発生する可能性がある。そこでまず制御部452にロック変数Lを設ける。また、従来のbind、 lookup、 rebind、 unbindをそれぞれibind、 ilookup、 irebind、 iunbindと名称変更し、bindやlookupはロック変数とibindやilookupを組み合わせて実現する。図9にreplace(Na、Nb)の処理フローを示す。1001でまずロック変数Lをロックする。既に他の処理がロック変数Lをロック中の場合はアンロックするまで待たされる。
入替え定義ファイル220、221は図4に示すように、XMLで記述され、EJB名(2行目)、代替EJB名(3行目)、入替え条件(4行目〜6行目)、優先度(7行目)などの項目から構成される。図4はEJB Aに関する入替えを定義しており、代替コンポーネントとしてEJB Aを(すなわち同一EJBの別の実体に入替える)、入替え条件として生存期間300秒(5行目)を指定しており、配備されてから300秒立つと入替えを行うことを意味する。優先度は、同時に複数のEJBで入替え条件が成立したときに、入替えEJBの順序を決定するのに使用する。入替え条件としては図4の生存期間の他、図5、図6、図7などが指定できる。図5はEJBの呼び出し回数が10000回になった場合、図6はOSのメモリ使用量が90%を超えた場合、図7はEJB Aにて例外(種類は問わない)が5回発生した場合それぞれ入替えを行う。これらの条件をandやorで複数結合し、複合条件を指定することもできる。定義ファイル220、221はXMLで記述されているが、他の形式や、独自形式であっても良い。また、図1ではEJB Aの入替え定義と、EJB Bの入替え定義を別々の入替え定義ファイルに記述しているが、幾つかのEJBの入替え定義を一つのファイルにまとめて記述しても良い。ファイルの代わりに、これらの値を入力するユーザインタフェースを設けてユーザに入力させても良い。
デプロイヤ120は図2のデプロイヤ110を機能拡張したものであり、クラスファイルと入替え定義ファイルを読み込みEJBを配備する。以下ではEJB Aを配備する場合を例に説明する。EJB Aがコンポーネントソフトウェア運用基盤101に配備されていない場合、前述の図2の110とほぼ同様に動作する。すなわちファイルシステム200からEJB Aのクラスファイル210を読み込み、EJB Aのコンテナ300、リモートA受信部312、リモートA送信部311を生成する。そして、EJB Aの名前Aとコンテナ300のリモートインタフェースIntConAの組(A、IntConA)をネームサーバ450のbind APIを呼び出して登録する。次にA入替え定義ファイル220を読み込んで、EJB名、代替EJB名、優先度を制御部130に設定し、EJB名、入替え条件、現在時刻を判定部150に設定する。
デプロイヤ120はデプロイヤ110と同様に配備解除機能を持つ。配備解除は、配備解除対象EJBのインスタンスを破棄し、コンテナ、リモート受信部、リモート送信部を破棄する。この配備解除機能の他に、デプロイヤ120は部分配備解除機能を持つ。部分配備解除機能とは、対象EJBのインスタンスとコンテナの破棄のみ行い、リモート受信部、リモート送信部の破棄を行わない。
監視部140は、各EJB呼び出し回数、例外やエラーの発生、OSのメモリ使用率等を例えば30秒間隔ごとに定期的に計測する。EJBの呼び出し回数はコンテナ300、320、500内に整数カウンターを設け、呼び出しがあるたびにそれを1インクリメントすることで実現する。例外やエラーの発生は、コンテナ330、320、500にvectorを設け、エラーや例外が発生すると、発生したエラーの種類、メソッドの名称、呼び出し時刻をそれに追記していく。これらカウンタやlistを返すメソッドをコンテナに用意し、監視部140は定期的にこれらのメソッドを呼び出して情報を取得する。OSのメモリ使用率はコンポーネントソフトウェア運用基盤に用意されているAPIがあればそれを使用し、そうでなければOSにシステムコールを発行してコンポーネントソフトウェア運用基盤が使用しているメモリサイズと、最大メモリサイズを取得して、これらから使用率を計算する。監視部140はこれらのEJB呼び出し回数、例外やエラーの発生、メモリ使用率のそれぞれを外部から取得するメソッドgetCount、 getEvent、 getMemを備えている。
判定部150は一定の間隔、例えば1分毎に各EJBの入替え条件が成立するか判定する。判定部150は図12に示す条件表600を備えている。条件表600は3つの欄EJB名610、入替え条件611、配備時刻612から構成されている。図12では2つのエントリ620と621が登録されている。これらのエントリはデプロイヤ120がEJBを配備する際に条件表600に登録される。エントリ620はEJB Aの入替え条件を示しており、配備時間が300秒を超えたら入替えを行うことを示す。配備時間を判定するために、配備時刻の欄612が用いられる。エントリ621はEJB Bの入替え条件を示しており、EJB Bの呼び出し回数が10000回となったら入替えを実行することを意味している。
リモートA受信部312、リモートB受信部332(以後リモート受信部)は図2のリモートA受信部310、リモートB受信部330に機能を追加したものである。これらはそれぞれリモートA送信部311、リモートA送信部(図中に記述無し)(以後リモート送信部)とペアになっており、EJB A、EJB Bとのリモート通信を実現する。リモート受信部はRMIのスケルトンとして実現され、リモート送信部はRMIのスタブとして実現される。リモートA送信部311、リモートB送信部(図中に記述なし)はそれぞれ公知のRMIスタブである。デプロイヤ120がこれらはEJB AやEJB Bを配備する際に、公知のRMIコンパイラrmicを使用して自動的に生成する。その手法は公知のデプロイヤ110と同様である。リモートA受信部312、リモートB受信部332は公知のRMIスケルトンに機能追加している。
制御部130はEJBの入替えを行う。制御部は図13の入替表700と図20のユーザインタフェース1200とを持つ。
入替表700はEJB名710、代替EJB名711、優先度712の欄を持つ。デプロイヤ120がEJBを配備する際に入替定義ファイル220、221を読んで値を入替表700に登録する。EJB Aを配備した場合に登録されたエントリが720であり、EJB Bを配備した場合のエントリが721である。エントリ720は、EJB Aの代替EJBはEJB Aであり、その優先度は3であることを意味する。エントリ721はEJB Bの代替EJBがEJB Bnewであり、その優先度は5であることを意味する。
コンポーネント入替えは以下のフェーズ1とフェーズ2から構成される。
(フェーズ1)
制御部130は判定部150から呼び出される。判定部は入替え条件の成立したEJB名をリストとして制御部130に渡す。制御部130は、このリストを参照し、リストにある全てのEJBに対して入替表700から優先度を取り出し、優先度の高い順にEJBの入替えを行う。優先度が同じ場合にはランダムに選ぶ。他の選択方法であっても良い。以後決定した順番でEJBの入替えを行っていく。このとき、例えば10秒間隔で一つずつ入替える。あるいは、間隔をあけずに順次入替えても良い。
以下EJB Aを入替える場合を例として処理方法を説明する。入替え処理は図15のフローに従って実行される。まず900で入替表700を参照して入替え対象EJBの代替EJBを取り出す。EJB Aの場合はEJB A自身が代替EJBである。次に901でデプロイヤ120に対し、EJB Aの代替EJBであるEJB Aの配備を指示する。代替EJB AがEJB Aと同一であるため、デプロイヤ120はコンテナを重複して配備する。配備後のコンポーネントソフトウェア運用基盤は図11の101となる。500は重複して配備されたEJB AのコンテナAs、512はEJB AのリモートAs受信部である。(識別容易化のためAの代わりにAsという記号を用いている)。図11の501はコンテナAs500上のEJB Aのインスタンスであるが、この時点ではまだインスタンスは生成されない。そしてデプロイヤ120はネームサーバ450にエントリ423を追加する。次に制御部130は902で入替え対象EJB Aの名前Aと、新たに配備した代替EJB Aの名前Asを引数としてネームサーバ450のreplace APIを呼び出す。これによって、ネームサーバ450のテーブル401のエントリは図16のようになる。424は名前Aと新規に配備されたEJB AのコンテナAsの組であり、425は名前Asと旧コンテナAの組である。次に制御部130は、903において、リモートA受信部312のsetContainerメソッドをコンテナAs500を引数として呼び出す。これによってリモートA受信部312のコンテナ管理変数800はNULLからコンテナAs500に書き換えられる。以後リモート受信部312を介するメソッド呼び出しはコンテナAs500で実行される。次に制御部130は、904にてコンテナA300で実行中の全ての処理が終了するまで待ち、905でデプロイヤ120の部分配備解除機能を呼び出して、旧EJB Aのインスタンス301と、コンテナ300を終了(配備解除)する。最後に906でネームサーバ450のunbind APIを名前Asを引数として呼び出し、エントリ(As、IntConAs)425をネームサーバ450から抹消する。以上でEJB Aの入替え処理は終了する。
これまで主にEJB Aの入替え処理について説明してきた。ここでは、クライアントであるEJB BがEJB Aのメソッドを呼び出す観点からその動作を説明する。まずEJB BにおけるEJB Aのメソッド呼び出しコードの一部は図3のようになっているものとする。図1においてEJB Bのインスタンス321はまず図3の1〜2行目を実行すると、ネームサーバ450が参照されて、名前の欄がAであるエントリが検索される。結果としてエントリ421のオブジェクト欄に登録されているコンテナAのホームインタフェースIntConAが得られる。インスタンス321は図3の3行目を実行し、lookupによって得られたホームインタフェースIntConAのcreateリモートメソッドを呼び出す。このリモートメソッド呼び出しは、コンテナB320経由でリモートA送信部311に送られ、ここでメッセージ1100に変換されてリモート受信部312に到達する。メッセージ1100の対象識別子1101はコンテナA312であり、メソッド1102はcreateである。リモートA受信部はこのメッセージを受け取ると、まずコンテナ管理変数800を参照し、その値がNULLであるので、メッセージ1100の対象識別子1101で識別されるコンテナA312のcreateメソッドを呼び出す。
幅広いアプリケーションを運用するアプリケーションプラットフォームソフトウェアとして利用可能である。特に、高い可用性が要求されるミッションクリティカルアプリケーションを運用するアプリケーションプラットフォームソフトウェアとしても利用できる。
110、120 デプロイヤ
130 制御部
140 監視部
150 判定部
200 ファイルシステム
210、211 EJBクラスファイル
220、221 入替定義ファイル
300、320、500 コンテナ
301、321、501 EJBインスタンス
310、312、330、512 リモート受信部
311 リモート送信部
400、450 ネームサーバ
401 テーブル
402、452 ネームサーバの制御部
411 名前
412 オブジェクト
421、422、423、424、425 ネームサーバのエントリ
600 条件表
610 EJB名
611 入替条件
612 EJB配備時刻
620、621 条件表のエントリ
700 入替表
710 EJB名
711 代替EJB
712 優先度
800 コンテナ管理変数
801 リモート受信部の制御部
802 EJBインスタンス管理テーブル
810 旧EJBインスタンスID欄
811 新EJBインスタンスID欄
1100 リモートメソッド呼び出しメッセージ
1101 対象識別子
1102 メソッド
1103 メソッド引数リスト
1200 ユーザインタフェース
1201 自動入替え制御Onボタン
1202 自動入替え制御Offボタン
1203 手動入替え対象EJB入力欄
1204 手動入替え開始ボタン。
Claims (6)
- ソフトウェア部品であるコンポーネントから構成されるコンポーネントソフトウェアの運用方法であって、
前記コンポーネントを識別する識別子と、前記コンポーネントに対する処理要求を前記コンポーネントを用いて実行する実行環境であるコンテナと、の間の対応関係を管理し、
前記コンポーネントソフトウェアの運用基盤であるコンポーネントソフトウェア運用基盤の中に第1のコンテナを生成し、
前記第1のコンテナを前記コンポーネントの中の第1のコンポーネントの実行環境として、前記第1のコンポーネントを識別する第1の識別子と、前記第1のコンテナと、の前記対応関係である第1の対応関係を生成し、
前記第1のコンポーネントに対する第1の処理要求を受信すると、前記第1の識別子に基づいて前記第1の対応関係を参照して、前記第1の識別子に対応付けられた前記第1のコンテナにおいて、前記第1のコンポーネントを用いて前記第1の処理要求を実行し、
前記コンポーネントソフトウェア運用基盤の中に第2のコンテナを生成し、
前記第1のコンポーネントと同じ内容の前記コンポーネントを前記第1のコンポーネントの代替のコンポーネントである第2のコンポーネントとして設定し、
前記第2のコンテナを前記コンポーネントの中の第2のコンポーネントの実行環境として、前記第2のコンポーネントを識別する第2の識別子と、前記第2のコンテナと、の前記対応関係である第2の対応関係を生成し、
予め設定された前記第1のコンポーネントの入れ替えの環境が整った場合、または他のソフトウェアやユーザからの入れ替え指示を受信した場合に、前記第2のコンテナにおいて前記第2のコンポーネントの使用を開始し、
前記第2のコンポーネントの使用を開始した際に、前記第1の対応関係における前記第1の識別子を前記第2の識別子に、前記第2の対応関係における前記第2の識別子を前記第1の識別子に、それぞれ変更し、
前記第2のコンポーネントの使用開始より前に受信済みの前記第1のコンポーネントに対する処理要求を前記第1のコンポーネントを用いて実行し、
前記第2のコンポーネントの開始以降に前記第1の処理要求を受信した場合は、前記第1の識別子に基づいて前記変更後の前記第2の対応関係を参照して、前記第1の識別子に対応付けられた前記第2のコンテナにおいて、前記第2のコンテナを実行環境とする前記第2のコンポーネントを用いて前記第1の処理要求を実行し、
前記第2のコンポーネントの開始より前に受信した前記第1のコンポーネントに対する処理要求の実行が完了したことを契機に、前記第1のコンポーネントを終了し、前記第1のコンテナを前記コンポーネントソフトウェア運用基盤から削除し、前記第1の対応関係を削除する、こと、
を特徴とするコンポーネントソフトウェアの運用方法。 - 前記第2のコンポーネントの起動を、あらかじめ運用の開始前に行っておくこと、を特徴とする請求項1記載のコンポーネントソフトウェアの運用方法。
- 前記第2のコンポーネントを起動する際は、前記第1のコンポーネントの他に前記第1のコンポーネントと同一のコンポーネントを重複して、前記第2のコンポーネントとして起動すること、を特徴とする請求項1記載のコンポーネントソフトウェアの運用方法。
- ソフトウェア部品であるコンポーネントから構成されるコンポーネントソフトウェアの運用を行うコンポーネントソフトウェア運用基盤であって、
前記コンポーネントと、前記コンポーネントに対する処理要求を前記コンポーネントを用いて実行する実行環境であるコンテナ、の生成及び削除を管理し、前記コンポーネントを識別する識別子と前記コンテナとの間の対応関係を管理する管理部と、
前記コンポーネントに対する処理要求を受信すると、前記処理要求の対象である前記コンポーネントの前記識別子に基づいて前記対応関係を参照して、前記処理要求の対象である前記コンポーネントの前記識別子に対応付けられた前記コンテナにおいて、前記コンテナを実行環境とする前記コンポーネントを用いて前記処理要求を実行する処理要求実行部と、を有し、
前記管理部は、
第1のコンテナを生成し、前記第1のコンテナを前記コンポーネントの中の第1のコンポーネントの実行環境として、前記第1のコンポーネントを識別する第1の識別子と、前記第1のコンテナと、の前記対応関係である第1の対応関係を生成し、
前記コンポーネントソフトウェア運用基盤の中に第2のコンテナを生成し、
前記第1のコンポーネントと同じ内容の前記コンポーネントを前記第1のコンポーネントの代替のコンポーネントである第2のコンポーネントとして設定し、
前記第2のコンテナを前記コンポーネントの中の第2のコンポーネントの実行環境として、前記第2のコンポーネントを識別する第2の識別子と、前記第2のコンテナと、の前記対応関係である第2の対応関係を生成し、
前記第2のコンポーネントの使用が開始された際に、前記第1の対応関係における前記第1の識別子を前記第2の識別子に、前記第2の対応関係における前記第2の識別子を前記第1の識別子に、それぞれ変更し、
前記第2のコンポーネントの開始より前に受信した前記第1のコンポーネントに対する処理要求の実行が完了したことを契機に、前記第1のコンポーネントを終了し、前記第1のコンテナを前記コンポーネントソフトウェア運用基盤から削除し、前記第1の対応関係を削除し、
前記処理要求実行部は、
前記第1のコンポーネントに対する第1の処理要求を受信すると、前記第1の識別子に基づいて前記第1の対応関係を参照して、前記第1の識別子に対応付けられた前記第1のコンテナにおいて、前記第1のコンポーネントを用いて前記第1の処理要求を実行し、
予め設定された前記第1のコンポーネントの入れ替えの環境が整った場合、または他のソフトウェアやユーザからの入れ替え指示を受信した場合に、前記第2のコンテナにおいて前記第2のコンポーネントの使用を開始し、
前記第2のコンポーネントの使用開始より前に受信済みの前記第1のコンポーネントに対する処理要求を前記第1のコンポーネントを用いて実行し、
前記第2のコンポーネントの開始以降に前記第1の処理要求を受信した場合は、前記第1の識別子に基づいて前記変更後の前記第2の対応関係を参照して、前記第1の識別子に対応付けられた前記第2のコンテナにおいて、前記第2のコンテナを実行環境とする前記第2のコンポーネントを用いて前記第1の処理要求を実行する、こと、
を特徴とするコンポーネントソフトウェア運用基盤。 - 前記管理部は、
前記第2のコンポーネントの起動を、あらかじめ運用の開始前に行っておくこと、を特徴とする請求項4記載のコンポーネントソフトウェア運用基盤。 - 前記管理部は、
前記第2のコンポーネントを起動する際は、前記第1のコンポーネントの他に前記第1のコンポーネントと同一のコンポーネントを重複して、前記第2のコンポーネントとして起動することを特徴とする請求項4記載のコンポーネントソフトウェア運用基盤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005158299A JP4876438B2 (ja) | 2005-05-31 | 2005-05-31 | コンポーネントソフトウェアの運用方法および運用基盤 |
US11/288,265 US8782666B2 (en) | 2005-05-31 | 2005-11-29 | Methods and platforms for highly available execution of component software |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005158299A JP4876438B2 (ja) | 2005-05-31 | 2005-05-31 | コンポーネントソフトウェアの運用方法および運用基盤 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006338069A JP2006338069A (ja) | 2006-12-14 |
JP4876438B2 true JP4876438B2 (ja) | 2012-02-15 |
Family
ID=37558603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005158299A Expired - Fee Related JP4876438B2 (ja) | 2005-05-31 | 2005-05-31 | コンポーネントソフトウェアの運用方法および運用基盤 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8782666B2 (ja) |
JP (1) | JP4876438B2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225310B1 (en) | 2006-03-30 | 2012-07-17 | Emc Corporation | Automatic detection and redistribution of content management code |
JP5052955B2 (ja) * | 2007-05-09 | 2012-10-17 | 株式会社日立製作所 | アプリケーションの高可用運用方法、オンラインバージョン変更方法及び計算機システム |
JP2008310628A (ja) * | 2007-06-15 | 2008-12-25 | Toppan Printing Co Ltd | 障害監視装置 |
KR101313692B1 (ko) * | 2009-12-18 | 2013-10-02 | 한국전자통신연구원 | 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 |
TW201126335A (en) * | 2010-01-26 | 2011-08-01 | Chi Mei Comm Systems Inc | System and method for detecting components |
US20120239589A1 (en) * | 2011-03-14 | 2012-09-20 | Oracle International Corporation | System and method for maintaining a business catalog |
JP5799706B2 (ja) * | 2011-09-26 | 2015-10-28 | 富士通株式会社 | 検索要求処理装置 |
US10157110B2 (en) | 2012-09-24 | 2018-12-18 | Nec Corporation | Distributed system, server computer, distributed management server, and failure prevention method |
JP6019995B2 (ja) | 2012-09-24 | 2016-11-02 | 日本電気株式会社 | 分散システム、サーバ計算機、及び障害発生防止方法 |
JP6387747B2 (ja) * | 2013-09-27 | 2018-09-12 | 日本電気株式会社 | 情報処理装置、障害回避方法およびコンピュータプログラム |
US9207966B2 (en) * | 2013-12-19 | 2015-12-08 | Red Hat, Inc. | Method and system for providing a high-availability application |
CN106203460A (zh) | 2015-05-05 | 2016-12-07 | 杜比实验室特许公司 | 训练信号处理模型以用于信号处理系统中的部件替换 |
US9871940B2 (en) | 2015-08-19 | 2018-01-16 | Ricoh Company, Ltd. | Information processing system, information processing apparatus, and method for processing information |
IL249816B (en) * | 2016-12-28 | 2019-03-31 | Gross Amit | System and methods for diagnosing and repairing a smart mobile device by neutralization |
CN112840321A (zh) * | 2018-12-03 | 2021-05-25 | 易享信息技术有限公司 | 用于自动化操作管理的应用程序编程接口 |
JP7171458B2 (ja) * | 2019-01-25 | 2022-11-15 | エヌ・ティ・ティ・アドバンステクノロジ株式会社 | シナリオ実行システム、管理装置、シナリオ実行管理方法及びプログラム |
JP2021033469A (ja) * | 2019-08-20 | 2021-03-01 | ファナック株式会社 | 情報処理装置及びプログラム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3291931B2 (ja) | 1994-08-31 | 2002-06-17 | 日本電信電話株式会社 | サービス障害復旧方法 |
JP2639370B2 (ja) * | 1994-12-29 | 1997-08-13 | 日本電気株式会社 | プログラムの動的置換方式 |
US5920725A (en) * | 1997-07-02 | 1999-07-06 | Adaptivity Inc. | Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors |
US6581088B1 (en) * | 1998-11-05 | 2003-06-17 | Beas Systems, Inc. | Smart stub or enterprise javaTM bean in a distributed processing system |
US20030208641A1 (en) * | 1999-03-09 | 2003-11-06 | Wesemann Darren L. | Software components as virtual processors |
JP2001290637A (ja) * | 2000-04-05 | 2001-10-19 | Nec Corp | コンポーネントの動的置換装置及びコンピュータ読み取り可能な記憶媒体 |
JP2002082926A (ja) * | 2000-09-06 | 2002-03-22 | Nippon Telegr & Teleph Corp <Ntt> | 分散アプリケーション試験・運用管理システム |
US20020087612A1 (en) * | 2000-12-28 | 2002-07-04 | Harper Richard Edwin | System and method for reliability-based load balancing and dispatching using software rejuvenation |
US7266816B1 (en) * | 2001-04-30 | 2007-09-04 | Sun Microsystems, Inc. | Method and apparatus for upgrading managed application state for a java based application |
US7246350B2 (en) * | 2002-01-07 | 2007-07-17 | Intel Corporation | Dynamic composition and maintenance of applications |
JP4392490B2 (ja) * | 2002-03-05 | 2010-01-06 | 独立行政法人産業技術総合研究所 | コンポーネントバスシステム及びコンポーネントバス用プログラム |
US7363612B2 (en) * | 2002-03-06 | 2008-04-22 | Sun Microsystems, Inc. | Application programs with dynamic components |
US7302609B2 (en) * | 2003-03-12 | 2007-11-27 | Vladimir Matena | Method and apparatus for executing applications on a distributed computer system |
US7526771B2 (en) * | 2003-11-12 | 2009-04-28 | Ntt Docomo, Inc. | Method and apparatus for configuring an application while the application is running |
US7300123B2 (en) * | 2003-11-24 | 2007-11-27 | International Business Machines Corporation | Method and apparatus for a container managed persistent entity bean support architecture |
-
2005
- 2005-05-31 JP JP2005158299A patent/JP4876438B2/ja not_active Expired - Fee Related
- 2005-11-29 US US11/288,265 patent/US8782666B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006338069A (ja) | 2006-12-14 |
US20070006212A1 (en) | 2007-01-04 |
US8782666B2 (en) | 2014-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4876438B2 (ja) | コンポーネントソフトウェアの運用方法および運用基盤 | |
US8762929B2 (en) | System and method for exclusion of inconsistent objects from lifecycle management processes | |
JP5052955B2 (ja) | アプリケーションの高可用運用方法、オンラインバージョン変更方法及び計算機システム | |
KR101970839B1 (ko) | 서비스의 2차 위치에서의 작업의 재생 기법 | |
US20020161840A1 (en) | Adapter for interfacing with a workflow engine | |
US7698391B2 (en) | Performing a provisioning operation associated with a software application on a subset of the nodes on which the software application is to operate | |
US8756461B1 (en) | Dynamic tracing of thread execution within an operating system kernel | |
US20070234295A1 (en) | Method for executing an application in a virtual container forming a virtualized environment session | |
US7526734B2 (en) | User interfaces for developing enterprise applications | |
US20040088397A1 (en) | System and method for management of software applications | |
EP1597654A2 (en) | System and method and api for progressively installing a software application | |
CN111930355A (zh) | 一种web后端开发框架及其构建方法 | |
US20060101059A1 (en) | Employment method, an employment management system and an employment program for business system | |
US11874758B2 (en) | High-performance mechanism for generating logging information within application thread in respect of a logging event of a computer process | |
JP6993577B2 (ja) | インタフェース変換プログラム、インタフェース変換方法および情報処理装置 | |
CN114489847A (zh) | 进程管理器的管控方法、系统、设备及存储介质 | |
JP5052472B2 (ja) | プログラムの設定情報切替システム及び切替方法 | |
JP5403447B2 (ja) | 仮想マシン管理装置、仮想マシン管理システム、仮想マシン管理方法、及びプログラム | |
CN108228266A (zh) | 一种Android插件框架下不同插件间启动Fragment组件的方法和装置 | |
JP2004126863A (ja) | オブジェクト管理装置とその方法、およびプログラム | |
US20030212919A1 (en) | Updateable event forwarding discriminator incorporating a runtime modifiable filter | |
JP2012212462A (ja) | アプリケーションの高可用運用方法、オンラインバージョン変更方法及び計算機システム | |
JP5784792B1 (ja) | 通信機器及びプログラム | |
WO2011117954A1 (ja) | 仮想マシン管理装置、仮想マシン管理方法、及びプログラム | |
JP5504876B2 (ja) | プロセス異常復旧装置及びプロセス異常復旧方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080121 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110325 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110419 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110705 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110901 |
|
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: 20111101 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111114 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141209 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |