JP3851272B2 - ステートフル・プログラム・エンティティの作業負荷管理 - Google Patents

ステートフル・プログラム・エンティティの作業負荷管理 Download PDF

Info

Publication number
JP3851272B2
JP3851272B2 JP2002578132A JP2002578132A JP3851272B2 JP 3851272 B2 JP3851272 B2 JP 3851272B2 JP 2002578132 A JP2002578132 A JP 2002578132A JP 2002578132 A JP2002578132 A JP 2002578132A JP 3851272 B2 JP3851272 B2 JP 3851272B2
Authority
JP
Japan
Prior art keywords
instance
program entity
work
server
unit
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
Application number
JP2002578132A
Other languages
English (en)
Other versions
JP2004531807A (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 JP2004531807A publication Critical patent/JP2004531807A/ja
Application granted granted Critical
Publication of JP3851272B2 publication Critical patent/JP3851272B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5016Session

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Description

【技術分野】
【0001】
本発明は、揮発性メモリ中で状態を保持するプログラム・エンティティの作業負荷管理に関し、より詳細には、Enterprise Java Beans(商標)アーキテクチャのステートフル・セッションBeanなどのオブジェクトの再配置に関する。
【背景技術】
【0002】
クライアント/サーバ・エンタープライズ・システムにおける作業負荷管理は、もはや常識である。作業負荷が管理されたシステムにおいて、サーバ・プロセスのグループ(作業グループ)は、その作業グループ中の各サーバ・プロセスが同様の能力を有するようにセットアップされる。これにより、作業グループ中のあらゆるサーバ・プロセスが、クライアントに代わって所与の要求(またはメッセージ)を処理できるようになる。クライアントが作業グループに要求を送信するとき、作業負荷管理ユニットは、作業グループ中のどのサーバ・プロセスにその要求を割り当てるか決定する。これは、通常、たとえば、最も空いている、あるいはラウンド・ロビンであるなど、ユーザ定義のポリシに基づくものである。これがうまくいけば、サーバ・プロセス・リソースが効率よく使用され、多数のクライアントの要求を同時に実行する単一のサーバ・プロセスによってボトルネックが生じるために応答速度が低下する可能性がずっと低くなる。
【0003】
図1に、典型的な作業負荷管理システムを示す。このシステムは、ネットワーク(11)を介して作業負荷管理ユニット(12)と通信する多数のクライアント(10)を含む。作業負荷管理ユニット(12)は、ネットワーク(11)を介して2つのサーバ・プロセスを含む作業グループに作業を分配する。各サーバ・プロセスはサーバ(13および14)で稼動する。クライアントが要求を行うと、作業負荷管理ユニットがその要求を受信し、その要求の割当て先となるサーバ・プロセスを選択する。作業負荷管理ユニットは、その作業グループを構成する1つまたは複数のサーバ・プロセスの一部とすることができる。
【0004】
そうしたシステムにおいて、理想的には、作業負荷管理ユニットが、選択されたポリシに基づいて、受信した各クライアント要求ごとに自由にサーバ・プロセスを選択できるようにする。というのは、これによって作業をより適切に分配できるからである。しかし、これが常に可能であるとは限らない。たとえば、ある要求において、クライアントが、所与のサーバ・プロセスで、そのクライアントが後続の要求でアクセスを必要とするデータを含むオブジェクト・インスタンスを作成することができる。クライアントが正しく機能するために、作業負荷分配ユニットは、そのクライアントが正しいオブジェクト・インスタンスに確実にアクセスできるようにしなければならない。これは、クライアントが、オブジェクト・インスタンスが作成されたサーバ・プロセスに次にアクセスを要求するときにそのクライアントがそのプロセスに確実に戻るようにする、クライアント/サーバ類縁性の何らかの要素を、そのクライアントの存続期間中保持することによって、あるいは、要求の合間に、状態を失わずに、オブジェクト・インスタンスがサーバ・プロセス間を移動できるようにすることによって実施することができる。使用可能な選択肢がクライアント/サーバ類縁性に限られる場合、クライアント要求のサブセットだけしか作業管理できないことがあるため、作業負荷分配が悪影響を受け、クライアント/サーバ類縁性が固定されるときにクライアントがサーバ・プロセスに課す可能性が高い負荷を予測することは、不可能ではないにしろ、困難である。
【0005】
したがって、オブジェクトが要求の合間にサーバ・プロセスを移動できるようにすることが好ましい。こうすれば、データベース(またはファイル)に状態データを保持するオブジェクトにとっては、そのオブジェクト・インスタンスが作業グループ中のどのサーバ・プロセスからでもそのデータベースまたはファイルにアクセスできるので、非常に直接的で分かりやすい。その結果、そのオブジェクト・インスタンスは、どのサーバ・プロセスにも移動させることができるが、それがトランザクションに関与している場合、そのオブジェクトは、そのトランザクションが完了するまで移動させることができない。というのは、そのトランザクション中に行われるデータベースへの変更が、トランザクションがコミットするときにはじめてデータベースに反映されるからである。しかし、オブジェクト・インスタンスが状態データを揮発性メモリに保持する場合、そのオブジェクト・インスタンスは簡単にサーバ・プロセス間を移動させることができない。これは、揮発性メモリが通常、それを割り振ったサーバ・プロセスからしかアクセスできないためである。その結果、クライアントがこの種のオブジェクトを使用する場合、クライアント/サーバ類縁性が実施され、作業負荷管理は前述の制限を受ける。
【0006】
そのような作業負荷管理クライアント/サーバ・エンタープライズ・システムで用いられる特定のプログラミング・モデルを考察することによってその例を示すことができる。一好例が、業界標準のEnterprise Java Beans(商標)(EJB(商標))プログラミング・モデルである。このモデルは、参照により本明細書に組み込まれる、Sun
Microsystems, Inc.から入手可能なEnterprise Java Beans v1.1仕様で完全に定義されている。分かりやすくするために、次に、この仕様のいくつかの特徴を述べる。
【0007】
Enterprise Java Beans v1.1仕様は、サーバ・プロセスで稼動するEJB(オブジェクト)の機能に基づく分類を記述する。その2つの分類が、セッションBeanおよびエンティティBeanである。セッションBeanは、一般に、クライアントの代わりに実行され、データベースにアクセスできるがデータベースを表さず、存続期間が短く、回復不能である。エンティティBeanは、一般に、複数のクライアントにアクセスでき、データベースを表し、長期間存続でき、回復可能である。セッションBeanはさらに、ステートレスまたはステートフルのどちらかに分類される。ステートレス・セッションBeanインスタンスは対話処理の状態を含まないため、クライアントはそのセッションBeanのどのインスタンスでも使用することができる。しかし、ステートフル・セッションBeanインスタンスは、クライアントが繰り返しそれへのアクセスを必要とすることがある対話処理の状態を含む。その結果、クライアントは常に、その必要な状態を使用してステートフル・セッションBeanのインスタンスにアクセスしなければならない。この状態の少なくとも一部が揮発性メモリに保持され、このため通常、クライアントが常にステートフル・セッションBeanの同じインスタンスにアクセスすることが必要になる。
【0008】
EJBコンテナは、サーバ・プロセスで、EJBの実行環境を提供する。Enterprise
Java Beans v1.1仕様は、クライアントとコンテナの間、およびEJBとそのコンテナの間の規約を指定する。コンテナとクライアントの間の規約の一部は、EJBのホームの規定である。クライアントはそこで、新規のEJBインスタンスを作成し、既存のEJBインスタンスの位置を特定することができる。EJBとそのコンテナの間の規約の一部は、コンテナがBeanインスタンスにコンテナ・サービスへのアクセスを提供し、そのBeanインスタンスへの通知を発行できるようにするために、EJBが実装しなければならないメソッドを規定する。これらのメソッドは、Beanの型に応じて異なる。たとえば、ステートフル・セッションBeanが実装しなければならない2つのメソッドは、ejbActivate()およびejbPassivate()である。ejbPassivate()は、コンテナがBeanインスタンスを直列化しそれをディスクに書き込むことによって、Beanインスタンスを非活性化(passivate)しようとするときに、Beanインスタンス上で呼び出される。これは、Beanのインスタンスを生成したサーバ・プロセスのメモリが不足している、またはBeanインスタンスが指定された期間アクセスされていない、あるいはその両方であるなど、様々な理由で行われる。しかし、セッションBeanはトランザクション対応であり得るため、Beanインスタンスがトランザクションに関係しているとき、コンテナはそれを非活性化することができない。ejbPassivate()メソッドでは、Beanインスタンスは、少なくとも部分的にメモリに保持されるその対話処理の状態が、非活性化後も確実に存続できるようにする必要があり、したがって、たとえば、そのインスタンスが開いたJDBC(商標)接続があればそれを閉じなければならない。Beanインスタンスが非活性化された後、そのインスタンスは、ディスクからその直列化形を読み取り、それを非直列化し、次いでそのejbActivate()メソッドを呼び出すことによって、再活性化(reactivate)される。その結果、ejbActivate()メソッドでは、Beanインスタンスが、たとえば、非活性化中に閉じられた任意のJDBC接続を再開することがある。
【0009】
図2は、前述のEJBプログラミング・モデルの概略図である。この図に、EJBコンテナ(201)を提供するEJBサーバ・プロセス(20)を示す。各実装EJBごとにEJBホーム(202)が提供され、クライアント(10)はそれを使ってそのEJB(203)のインスタンスを作成することができる。EJBサーバ・プロセス(20)は、多くのEJB実装のためのホームを提供することができる。EJBインスタンス(203)は、EJBコンテナ(201)によって提供される環境で実行され、インスタンスが作成されると、クライアント(10)はそのインスタンスに要求を送信することができる。任意の時点に、同じクライアントまたは異なるクライアントによって作成されたEJBの多くのインスタンス(204、205)が存在することがある。
【0010】
図3および図4は、ステートフル・セッションBeanの非活性化および再活性化を表す概略図である。図3に、揮発性メモリにBeanのカウンタを保持する、BeanCounterという名称のステートフル・セッションBeanのインスタンスの非活性化を示す。非活性化時、BeanCounterインスタンス(302)は、EJBServer(20)の揮発性メモリから除去され、ディスク上のBean記憶域(303)にその直列化形(304)として書き込まれる。直列化形は、BeanCounterインスタンス(302)の対話処理の状態(Bean=5)を含む。BeanCounterインスタンス(302)が揮発性メモリから除去され、非活性化の終了時には直列化形(304)としてディスク上にのみ存在することを示すために、これを破線で表してある。図4に、非活性化の逆である再活性化を示す。Beanインスタンス(304)の直列化形がディスクから読み取られ、BeanCounterインスタンス(302)として再活性化される。再活性化後、このインスタンスは揮発性メモリに存在し、非活性化前に含んでいた対話処理の状態(Bean=5)を含む。このプロセスの後、Beanインスタンス(304)の直列化形は、ディスク上に存在することも存在しないこともある。
【0011】
これで、EJBプログラミング・モデルを使用する作業負荷管理システムでは、クライアントが以前にアクセスしたEJBの型を作業負荷管理ユニットが感知しなければならないことがわかった。たとえば、クライアントがステートレス・セッションBeanインスタンスだけにアクセスする場合は、選択された割振りポリシに基づき、作業負荷管理ユニットがクライアントからの任意の要求を作業グループ中の任意のサーバ・プロセスに割り振ることができる。これは、これらのBeanが対話処理の状態を含まないためである。クライアントがエンティティBeanインスタンスにアクセスする場合、それらのBeanもサーバ・プロセスを移動することができるが、エンティティBeanはデータベースに状態を保持し、トランザクション型であるため、それが可能なのはトランザクションの合間だけである。しかし、クライアントがステートフル・セッションBeanインスタンスを作成しそれにアクセスする場合、そのインスタンスが揮発性メモリに対話処理の状態を含むことがあるので、クライアントは、そのクライアントの存続期間中、そのBeanが作成されたサーバ・プロセスとの類縁性を持つことになり、そのため、クライアントからBeanインスタンスへのすべての後続要求が同じサーバ・プロセスに与えられる。要求の合間にそのBeanが非活性化された場合、非活性化後の最初の要求を受信したときに、そのBeanがそのサーバ・プロセスで再活性化される。
【0012】
EJBプログラミング・モデルを使用する作業負荷管理システムを提供する製品の一例が、BEA
Systems, Inc.のBEA Weblogic Server(商標)6.0製品である。この製品では作業グループをサーバ・クラスタと呼ぶ。作業負荷管理は2つの形式で提供される。EJBホーム・オブジェクトは、クラスタ中のすべてのサーバ・プロセス上にあるすべてのEJBHomeオブジェクトの知識を有するクラスタ対応のホーム・スタブを持つことができる。このスタブは、クライアント要求がEJBインスタンスを作成し検索できるように、作業負荷平衡化を提供する。EJBは、クラスタ中のサーバ・プロセス上に存在するそのEJBのすべてのコピーの知識を保持するレプリカ対応のEJBObjectスタブを持つことができる。EJBObjectスタブは、EJBメソッド呼出しのための負荷平衡化およびフェイルオーバ(fail-over)処理を提供する。ステートレス・セッションBeanインスタンスの作成とそれらへのアクセスを求めるすべての要求を作業負荷管理できるように、ステートレス・セッションBeanはレプリカ対応とし、クラスタ対応のホームを持つことができる。しかし、ステートフル・セッションBeanは、クラスタ対応のホームだけしか持つことができず、したがって、ステートフル・セッションBeanの作成を求める呼出しだけしか作業負荷管理することができない。ステートフル・セッションBeanインスタンスへのすべての要求は、一般に、同じサーバ・プロセスに与えられる。これに対して、ステートフル・セッションBeanインスタンスのメモリ内複製を使用する例外がある。メモリ内複製を使用すると、ステートフル・セッションBeanには、そのBeanインスタンスが稼動する1次サーバ・プロセス・インスタンスと、そのBeanの状態を複製するために使用する2次サーバ・プロセス・インスタンスとを保持する短縮したレプリカ対応のオブジェクト・スタブが与えられる。ここで、クライアントが、トランザクションの範囲の下でそのBeanインスタンスの状態を変更した場合、そのトランザクションがコミットされるときに、そのBeanインスタンスの状態が2次サーバ・プロセスで揮発性メモリに複製される。そのBeanインスタンスの1次サーバ・プロセスが失敗した場合、クライアント要求が2次サーバ・プロセスに経路変更され、2次サーバ・プロセスが1次サーバ・プロセスになって、クラスタから新規の2次サーバ・プロセスが割り振られる。この状況では、クライアントは、そのBeanの最後にコミットされた状態に自動的にアクセスできる。これは、作業負荷管理ではなく、ステートフル・セッションBeanのフェイルオーバ・サポートを提供するものであり、サーバによるBeanインスタンスのメモリ内コピー削除の調整を必要とする。また、不完全なトランザクションでステートフル・セッションBeanインスタンスが変更された場合に、1次サーバに障害が起こると、次のEJBインスタンスへの要求は、失敗はしないが、コミットされていない変更を失うことがわかる。その結果、クライアントは、ステートフル・セッションBeanインスタンスが、コミットされていない更新を喪失したかどうかを全く確認できなくなる。
【0013】
EJBの作業負荷管理の別の方法が、 Duvos および Bestavros 、「 An
Infrastructure for Dynamic Distribution of Web Applications and Services Boston
University Technical Report BUCS-TR-2000-027 2000 12 15 日に開示されている。この方法では、性能サービスがサーバ間における Bean の移動を分析および指図し、 Bean を移動するときに、その Bean が移動される先の新しいサーバ内の(受信側)監視 Bean にその Bean のパッケージされた形式を含むメッセージを送信するように、 Bean が存在するサーバ内の(送信側)監視 Bean に指示する。
【非特許文献1】Enterprise Java Beans v1.1仕様
【非特許文献2】
Duvos および Bestavros 、「 An
Infrastructure for Dynamic Distribution of Web Applications and Services Boston
University Technical Report BUCS-TR-2000-027 2000 12 15
【発明の開示】
【発明によって解決すべき課題】
【0014】
したがって、揮発性メモリに保持される状態データを含むプログラム・エンティティのための作業負荷管理を提供することが求められている。
【課題を解決するための手段】
【0015】
第1の態様によれば、本発明は、不揮発性記憶装置と少なくとも1台のサーバとを備え、サーバ・プロセスを実行できるデータ処理システムにおいて第1のサーバ・プロセスの一部として、前記記憶装置上のプログラム・エンティティ記憶域にプログラム・エンティティのインスタンスを書き込むことによってそのインスタンスを非活性化し、前記サーバ・プロセスからそれを除去するステップと、第2のサーバ・プロセスの一部として、前記プログラム・エンティティ・インスタンスの前記インスタンスにアクセスするよう求める要求を処理するステップであって、前記プログラム・エンティティ記憶域から前記プログラム・エンティティの前記インスタンスを読み取り、前記サーバ・プロセスでそれを再作成することによってそのインスタンスを再活性化するステップを含むステップと、前記要求が作業負荷管理分配アルゴリズムに従って処理されるサーバ・プロセスを選択するステップとを含むプログラム・エンティティをデータ処理する方法を提供する。
【0016】
第2の態様によれば、本発明は前述のデータ処理方法を実行するためのコンピュータ・プログラム製品を提供する。
【0017】
第3の態様によれば、本発明は、少なくとも1台のサーバと、前記少なくとも1台のサーバ上で稼動でき、それぞれがプログラム・エンティティをサポートする複数のサーバ・プロセスと、各サーバ・プロセスからアクセス可能な不揮発性記憶装置とを備えるデータ処理システムを提供する。各サーバ・プロセスは、前記記憶装置上のプログラム・エンティティ記憶域に前記プログラム・エンティティのインスタンスを書き込むことによってそれを非活性化する手段と、前記プログラム・エンティティの前記インスタンスにアクセスするよう求める要求を処理する手段であって、前記プログラム・エンティティ記憶域から前記プログラム・エンティティのインスタンスを読み取り、それを使って前記プログラム・エンティティ・インスタンスを再作成することによって、そのインスタンスを再活性化する手段を含み、前記再活性化する手段が、異なるサーバ・プロセスの非活性化する手段によって非活性化されたプログラム・エンティティ・インスタンスを再活性化することができる手段と、前記要求が作業負荷管理アルゴリズムに従って処理されるサーバ・プロセスを選択する手段とを含む。
【0018】
したがって、本発明は、揮発性メモリに状態データを保持するプログラム・エンティティのインスタンスをあるサーバ・プロセスで非活性化し、第2のサーバ・プロセスでそれらを再活性化することによって、それらのインスタンスがサーバ・プロセス間を移動できるようにする。その結果、そのプログラム・エンティティ・インスタンスへのアクセスを求める要求は、そのエンティティが要求の合間にサーバ・プロセスを移動する場合は作業負荷管理を受けることができ、その移動先のサーバ・プロセスが作業負荷管理ユニットによって選択される。非活性化するステップでそのプログラム・エンティティ・インスタンスの直列化形をディスクに書き込み、プログラム・エンティティ・インスタンスを再作成するときに、再活性化するステップでその直列化形を非直列化するので、プログラム・エンティティの状態データが保持される。
【0019】
好ましくは、作業負荷管理サポートを提供する対象のプログラム・エンティティは、Enterprise
Java Beans仕様のステートフル・セッションBeanのインスタンスである。その結果、Enterprise Java Beansについて述べたように、非活性化および再活性化にはejbPassivate()メソッドおよびejbActivate()メソッドが関与する。あるいは、プログラム・エンティティは、たとえば、Java
BeanまたはC++オブジェクトとすることもできる。
【0020】
好ましくは、本発明はさらに、プログラム・エンティティ・インスタンスが関与する作業単位のための作業負荷管理を提供する。作業単位は、要求などの1つまたは複数のイベントを区切って単一の単位にする。好ましくは、作業単位はCORBA Object Transaction Serviceトランザクションである。あるいは、作業単位は、たとえば、異なる種類のトランザクション、セッション、ビジネス・メソッド、IBM
CICS作業単位、クライアント要求とすることもできる。その他の種類のトランザクションの一例が、Java(R)Transaction APIトランザクションである。これは、選択された作業単位の処理中ではなく完了時に、プログラム・エンティティを非活性化することによって実施される。
【0021】
好ましくは、本発明はさらに、トランザクションなどの作業単位の下でアクセスされるプログラム・エンティティ・インスタンスに、その作業単位が完了するまで、作業単位の範囲外から再アクセスできないようにすることを、クライアントに保証する。その結果、たとえば、作業単位が実行されていたサーバ・プロセスが失敗したために、それが完了できなかった場合、そのプログラム・エンティティ・インスタンスは消滅する。これは、再活性化時にプログラム・エンティティ記憶域からプログラム・エンティティ・インスタンスを確実に除去することによって達成することができる。
【0022】
好ましくは、プログラム・エンティティ・インスタンスの位置を特定するために使用できる情報を含む経路指定テーブルが提供される。プログラム・エンティティ・インスタンスは、プログラム・エンティティをサポートする複数のサーバ・プロセスのいずれか1つにおいて、活性状態とすることができ、あるいは、別の時点では、Bean記憶域において非活性とすることもできる。その場合、この経路指定テーブルを使って、プログラム・エンティティ・インスタンスへのアクセスを求める要求の受信時に、そのプログラム・エンティティが現在活性状態であるサーバ・プロセスに、あるいはそのプログラム・エンティティが現在非活性状態である場合は、任意のサーバにその要求を向けることができる。プログラム・エンティティがプログラム・エンティティ記憶域に存在することは、そのプログラム・エンティティに関係するエントリが経路指定テーブルに存在しないことによって示すことができる。
【0023】
好ましくは、経路指定テーブルへのアクセス回数が低減される。これは、プログラム・エンティティ・インスタンスに関連し、プログラム・エンティティを要求の対象であると識別するために使用されるキーが、経路指定テーブル中におけるプログラム・エンティティ・インスタンスの位置情報の有無を示すフラグを含んでいれば達成することができる。その場合、このフラグを使って、到着(inbound)要求の受信時に、経路指定テーブルでBeanインスタンスの位置を探すか否かを決定することができる。たとえば、ステートフル・セッションBeanインスタンスに関連するキーは、そのBeanインスタンスが不完全なBean管理によるトランザクションに関与していることを示すフラグを含むことができる。経路指定テーブルがBeanインスタンスの位置情報を含むのはこの場合だけとすることができ、そうすると、Beanインスタンスについての要求を受信したとき、そのBeanインスタンス・キーのBean管理フラグが設定されている場合にだけ経路指定テーブルをサーチすればよい。
【0024】
次に、図面を参照して、本発明の好ましい実施形態を説明する。
【発明を実施するための最良の形態】
【0025】
図1に本発明の好ましい実施形態が有利に適用されるデータ処理環境を示す。図において、クライアント・データ処理装置(10)は、たとえばインターネットなどとすることができるネットワーク(11)を介して、作業負荷管理ユニット(12)に接続する。クライアントは要求(またはメッセージ)を作業負荷管理ユニット装置(12)に送信し、そこからネットワーク(11)を介してデータ処理サーバサーバ1(13)およびサーバ2(14)に要求が分配される。各サーバはそれらの要求を処理するサーバ・プロセスを含む。サーバ1(13)とサーバ2(14)の各サーバ・プロセスは、同等の要求を処理することができ、1つの作業グループを構成する。この実施形態では、それぞれ異なるデータ処理サーバに含まれる2つのサーバ・プロセスを含むが、他の実施形態では、1台のデータ処理サーバが1つまたは複数のサーバ・プロセスを含むことができ、作業グループが、1台または複数のデータ処理サーバに含まれる2つ以上のサーバ・プロセスを含むこともできる。
【0026】
サーバ1(13)は、このサーバの動作を管理するためのプロセッサ(131)、ステートフル・セッションBeanのメモリ内インスタンスなどのデータを一時的に記憶するためのRAM揮発性メモリ要素(132)、そのデータを非活性化ステートフル・セッションBeanの直列化形として記憶する不揮発性記憶(133)、およびネットワーク(11)とのインタフェースに使用するネットワーク・コネクタ(134)を備える。図示しないが、クライアント(10)、作業負荷管理ユニット(12)およびサーバ2(14)は、サーバ1と同じ構成要素(131、132、133、134)からなり、少なくとも1台のサーバの不揮発性記憶(133)が、作業グループ中の他のサーバからアクセス可能でなければならない。この好ましい実施形態では、作業グループが2台のサーバで構成されるが、他の実施形態では、2台を超えるサーバで作業グループを構成することもできることに留意されたい。また、この好ましい実施形態では、クライアント(10)および作業負荷管理ユニット(12)を、作業グループを構成するサーバ(13および14)とは別に示すが、他の実施形態では、これらの1台または複数をその作業グループ中のサーバとすることもできる。さらに、この好ましい実施形態では、サーバ1(13)が単一の構成要素(131、132、133、134)を備えるが、他の実施形態では、これらの構成要素のうち1つまたは複数が、を複数個存在することができ、また反対に、作業グループ中の1台または複数のサーバがこれらの構成要素を共用することもできる。
【0027】
この好ましい実施形態では、作業グループはEnterprise Java Beansプログラミング・モデルをサポートし、したがって、ステートフル・セッションBeanをサポートする。提供されるトランザクション・サービスは、CORBA準拠Object
Transaction Service (OTS)である。作業負荷管理ユニットは、所与のトランザクションの下におけるすべての要求が作業グループ中の同じサーバ・プロセスによって処理されるように、トランザクション類縁性をサポートする。
【0028】
図5および図6に、本発明の好ましい実施形態において、2つの別々のクライアントで開始されたトランザクションの範囲の下で、所与のステートフル・セッションBeanインスタンスを作成しそれにアクセスするクライアントから生じ得る流れのシーケンスを示す。ただし、図示する流れは、実際に生じるはずの、この好ましい実施形態に関連する関心を引く流れの一部を示すに過ぎないことに留意されたい。この例で、所与のステートフル・セッションBeanはBeanCounter
Beanであり、クライアントはその存続期間中ずっと、それを使ってBeanをカウントする。これは若干単純化されたステートフル・セッションBeanであるが、Beanカウントは、メモリ内に保持される対話処理の状態を有しており、この説明の目的に適している。しかし、本発明はどのような所与のステートフル・セッションBeanインスタンスにも等しく適用でき、そうしたインスタンスは、実際には、より複雑である可能性が高く、また、データベース中のデータにアクセスすることもある。
【0029】
図5には、クライアントの第1のトランザクションの処理が示されている。クライアント(401)がトランザクション開始要求(403)を出し、作業負荷管理ユニット(図示せず)がこれをEJBサーバ1(402)中のTransaction Serviceに割り当て、そのトランザクションとこのサーバ・プロセスとの類縁性を確立する。トランザクションが開始された後で、クライアントはBeanCounter
Homeの位置を特定し、それに作成要求(404)を送信する。作業負荷管理ユニットは、トランザクション/サーバ類縁性を保持するためにこの要求をEJBサーバ1(402)に割り振り、BeanCounter
Homeが新規(405)のBeanCounterインスタンスを生成し、その初期状態をBean=0にする。作成要求から戻る前に、トランザクションの下でBeanCounterインスタンスが作成されたことを知っているコンテナが、コンテナ所有の同期オブジェクトをトランザクション・サービスに登録するように、register_synchronization要求(406)を出す。これによって、トランザクション完了処理中に、after_completionと共にそのコンテナが確実に呼び出されることになる。次に、クライアントが増分要求(407)を出すときにBeanCounterインスタンスにアクセスすると、Bean状態がBean=1に更新される。作業負荷管理ユニットはまた、トランザクション/サーバ類縁性を保持するためにEJBサーバ1(402)にこの要求も割り振る。クライアントは、トランザクションを完了する用意ができたとき、トランザクション・サービスにコミット要求(408)を出し、トランザクション・サービスは、コミット処理の一部として、コンテナ登録の同期オブジェクト上でafter_completion(409)を呼び出す。次いで、このオブジェクトが、BeanCounterインスタンス上でejbPassivate(410)を呼び出す。というのは、本発明では、トランザクションの範囲の下でアクセスされるステートフル・セッションBeanインスタンスが、そのトランザクションの完了時に非活性化されるからである。この例では、BeanCounterインスタンスがJDBC接続を開いておらずその状態が直列化可能であるため、BeanCounterインスタンスはejbPassivateでは何も行わない。ejbPassivateの呼出しに続いて、コンテナはBeanCounterインスタンスを直列化し、それを揮発性メモリから除去してBean記憶域に書き込む(411)。Bean記憶域は回復不能であり、不揮発性記憶装置に保持される。これは、この好ましい実施形態ではハード・ディスクである。トランザクションが完了すると、作業負荷管理ユニットはそのトランザクションのEJBサーバ1(402)との類縁性を取り消す。
【0030】
図5では、トランザクションがコミットされるが、コミット要求(408)がロールバック要求であったとしても、前述の処理は同じになることに留意されたい。さらに、この好ましい実施形態は同期オブジェクトおよびafter_completionメソッドを使ってトランザクション完了時のBeanインスタンスの非活性化を促進するが、他の実施形態で異なるメソッドを用いることもできる。
【0031】
次に処理は図6に進む。図6はクライアントの第2のトランザクションを示す。クライアント(401)はトランザクション開始要求(413)を出し、作業負荷管理ユニット(図示せず)がこれをEJBサーバ2(412)中のTransaction Serviceに割り当て、そのトランザクションとこのサーバ・プロセスとの類縁性を確立する。次いで、クライアントがBeanCounterインスタンスに増分要求(414)を出す。この要求は、確立されたトランザクション/サーバ類縁性に基づいてEJBサーバ2(412)に割り当てられる。コンテナは、そのBeanインスタンスが揮発性メモリにないことを知り、Bean記憶域からそれを読み取ってそこから除去する(415)。次いで、Beanインスタンスは、非直列化されて揮発性メモリに入れられ、ejbActivateメソッド(416)がそのインスタンス上で呼び出される。この例で、Beanカウンタ・インスタンスは、ejbActivateでは、その状態を取り戻すためには何も行わない。次いで、増分要求(414)がBeanCounterインスタンスに渡されて、その状態がBean=2に更新される。この増分メソッドが戻る前に、コンテナは、これがこのトランザクションにおけるBeanCounterインスタンスの第1回目の使用であることを知り、したがって、トランザクション・サービスにコンテナ所有の同期オブジェクトを登録するようにregister_synchronization要求(417)を出す。これによって、トランザクション完了処理中に、after_completionと共にそのコンテナが確実に呼び出される。クライアントは、トランザクションを完了する用意ができたときにコミット要求(418)を出し、図5について述べた、コミット要求(408)から始まるのと同様に処理を続行する。
【0032】
したがって、ステートフル・セッションBeanインスタンスがトランザクションの合間にサーバ・プロセスを移動し、その結果、各トランザクションが作業負荷管理されたことになる。本発明を用いなければ、ステートフル・セッションBeanインスタンスの作成(404)によりクライアント/サーバ類縁性が確立され、その結果、クライアントのトランザクションすべてが同じサーバ・プロセスで稼動することになるはずである。
【0033】
上記の例ではクライアントで開始されたトランザクションを考察しているが、本発明はコンテナまたはBeanで開始されたトランザクションにも適用されることに留意されたい。コンテナおよびBeanで開始されたトランザクションの場合、関与する流れは前述の流れとほぼ(reasonably)同じである。その場合、この好ましい実施形態での違いは、図5および図6においてクライアントによって呼び出されるメソッドが、異なるエンティティによって出されることであろう。たとえば、異なるEJBのコンテナまたは別のEJBインスタンスが開始要求(403、413)およびコミット要求(408、418)を出し、別のEJBインスタンスまたはクライアントが作成メソッド(404)および増分メソッド(407、417)を出すことができる。
【0034】
さらに、コンテナ管理によるトランザクションは、単一のクライアント要求内で開始され完了される。その結果、コンテナ管理によるトランザクションの一部としてアクセスされるステートフル・セッションBeanインスタンスは、クライアント要求の完了時ごとに非活性化される。これによって、コンテナ管理によるトランザクションを使用するすべてのクライアント要求の作業負荷管理が可能になる。すなわち、トランザクションが無いと、コンテナは非トランザクション要求の完了時にもステートフル・セッションBeanを非活性化することができ、したがって、ステートフル・セッションBeanインスタンスがアクセスされる場合であってもすべてのクライアント要求を作業負荷管理できることがわかる。
【0035】
図7は、本発明の好ましい実施形態による、図5および図6に示すトランザクションの概略図である。クライアント(401)は、2つのトランザクションT1およびT2を実行し、各トランザクションの過程でBeanCounterインスタンス(503)にアクセスする。T1−a(501)は、クライアント(401)がトランザクションT1の一部として行う要求を表す。作業負荷管理ユニット(12)は、これらの要求すべてをEJBサーバ1(402)に経路指定する。これらの要求をT1−b(502)で表す。トランザクションが完了すると、BeanCounterインスタンス(503)直列化表現がBean記憶域(509)に書き込まれ(504)、EJBサーバ1(402)のメモリから除去される。T2−a(506)は、クライアント(401)がトランザクションT2の一部として行う要求を表す。作業負荷管理ユニット(12)は、これらの要求すべてをEJBサーバ2(412)に経路指定する。これらの要求をT2−b(507)で表す。T2がBeanCounterインスタンスに最初にアクセスするとき、そのインスタンスをBean記憶域(509)から読み取ってそこから除去し(508)、EJBサーバ2内のメモリで再インスタンス化することによって、EJBサーバ2(402)でBeanCounterインスタンスが再活性化される。その結果、T2は、T1が異なるサーバで実行された場合でも、T1によって残されたBeanCounterインスタンスの状態にアクセスすることができる。次いでT2は、Beanインスタンスの状態をBean=2に増分する。
【0036】
図8は、本発明の好ましい実施例によるステートフル・セッションBeanの作業負荷管理を可能にするために、不揮発性記憶に保持される型情報を示す図である。回復可能の経路指定ファイルと回復不能のBean記憶域の2つのファイル内容を、本発明の下で達成できる状態のシーケンスについて示す。図示の内容は、それらのファイルの実際の内容ではなく、保持される情報の詳細であることに留意されたい。というのは、その情報を保持できる方法が多数あるからである。また、これらの状態は完全ではないが、その概念を示す働きをする。
【0037】
図8に示す第1の状態では、サーバ1にID T1を持つ活性トランザクションがあり、Bean記憶域にキーB1を持つ非活性化されたセッションBeanインスタンスがある。経路指定テーブル(601)は、そのトランザクションID(T1)の表現と、そのトランザクションが開始されたサーバ・プロセス(サーバ1)の表現とを含む。この情報を使って、トランザクションT1に含まれるすべての要求がサーバ1に経路指定されるように、トランザクション/サーバ類縁性を保持する。Bean記憶域はセッションBeanキー(B1)およびその対話処理の状態(Bean=1)を含む(602)。この状態では、Beanインスタンスにアクセスしようとする、作業グループ中のどのサーバ・プロセスからのどのような試みでも成功する。
【0038】
トランザクションT1の範囲の下でBeanインスタンスB1が再活性化された後で、第1の状態に続いて図8の第2の状態が生じる。経路指定テーブルの内容(603)は変更されないが、BeanインスタンスのレコードがBean記憶域から除去されており、Bean記憶域にはBeanインスタンスB1のレコード(604)が無い。これは、BeanインスタンスB1が今やサーバ1の揮発性メモリにあり、したがって、そのインスタンスにサーバ1からアクセスしようとする試みはすべて成功するが、作業グループ中のその他のサーバ・プロセスからアクセスしようとする試みはすべて失敗するからである。
【0039】
トランザクションT1がコミットされた後で、第2の状態に続いて図8の第3の状態が生じる。トランザクション/サーバ類縁性が断たれている(drop)ので、経路指定テーブルには完了したトランザクションT1のレコード(605)が無い。Bean記憶域は、セッションBeanキー(B1)およびその更新された対話処理の状態(Bean=2)を含み(602)、トランザクション完了中にBeanインスタンスが非活性化されたことを示す。
【0040】
まだ完了していないBean管理によるトランザクションの下で、非活性化されたBeanインスタンスB1がサーバ2からアクセスされた後で、第3の状態に続いて図8の第4の状態が生じる。経路指定テーブルは、Beanインスタンス・キーB1と、そのBeanが現在活性状態であるサーバ・プロセス(サーバ2)を含む(607)。さらに、Beanインスタンス・キーB1は、そのBeanが、Bean管理によるトランザクションの下でアクセスされていることを示すフラグを含む。これによって、次にそのBeanインスタンスにアクセスしようとする試みが確実にサーバ2に経路指定されることになる。Bean記憶域には、現在活性状態であるBeanインスタンスB1のレコード(608)が無い。この状態は、Bean管理によるトランザクションが完了するまで留まり、完了した時点でそのBeanが非活性化され、状態が図8の第3の状態と同等の状態に戻る。その場合、経路指定ファイルはBeanキーのレコードを持たず、Bean記憶域がそのセッションBeanインスタンスを含む。
【0041】
図5および図6に示す諸状態は、この好ましい実施形態において可能な状態のうち1つだけを除くすべての状態を表している。図示しない状態は、経路指定テーブルがBeanインスタンスのキーまたはその下でBeanインスタンスがアクセスされているトランザクションのIDを含まず、Bean記憶域がそのBeanインスタンスのレコードを含まない場合である。この状態は、Beanインスタンスが存在しない、あるいは、トランザクションの範囲外で、またはコンテナ管理によるトランザクションの一部として、Beanインスタンスがサーバ・プロセスで活性状態であることによって生じる。
【0042】
したがって、本発明の好ましい実施形態では、セッションBeanインスタンスの直列化形がトランザクションの完了時に非活性化され、非活性化されたBeanインスタンスの直列化形が再活性化時にBean記憶域から除去されることを示した。その結果、再活性化後、Beanインスタンスの状態の表現は、揮発性メモリ内の再活性化Beanインスタンスにしかない。これにより、セッションBeanインスタンスは必ず、一箇所にのみ存在することができ、完了したトランザクションの状態では異なるサーバ・プロセスからのみアクセスでき、トランザクションが完了する前に失敗したサーバ・プロセスからのトランザクションにおいてアクセスされた場合はアクセス不能になる。これで、コミットされていないトランザクションの更新が失われた場合、ステートフル・セッションBeanにはアクセスできず、その結果、ステートフル・セッションBeanインスタンスでアクセス可能な状態が常にすべての更新を反映することが保証される。このようにしてアクセス不能になったステートフル・セッションBeanインスタンスにアクセスしようとする試みがなされると、その要求者は、java.rmi.NosuchObjectExceptionなどの適当な例外を受信する。
【0043】
図9に、本発明の好ましい実施形態による、サーバ・プロセスに到着要求を割り振るときに作業負荷管理ユニットが従う論理を示す。ステップ701で検査を行って、要求がトランザクション型であるかどうか調べる。要求がトランザクション型の場合、その要求からトランザクションIDを取得し、ステップ702でそのIDを経路指定テーブル内のトランザクションIDと比較する。そのIDが見つかった場合、ステップ703で、その要求を経路指定テーブルで指定されるサーバ・プロセスに割り振る。そのIDが見つからなかった場合、ステップ704で、その要求を作業グループ中の任意のサーバ・プロセスに割り振る。要求がトランザクション型ではない場合、ステップ705で検査を行って、その要求がBean管理によるトランザクションの下でアクセスされるBeanインスタンスを対象としているかどうか調べる。この情報はBeanインスタンスのキーのフラグにある。これが該当する場合、Beanインスタンスのキーを要求から取得し、ステップ706で、経路指定テーブル中のBeanインスタンス・キーと比較する。キーが見つかった場合、ステップ707で、その要求を経路指定テーブルで指定されるサーバに割り振る。キーが見つからなかった場合は、ステップ704で、要求を作業グループ中の任意のサーバ・プロセスに割り振る。Beanインスタンスのキーが、BeanインスタンスがBean管理によるトランザクションの下でアクセスされていることを示さなかった場合は、経路指定テーブルをサーチせず、ステップ704でその要求を任意のサーバに割り振る。
【0044】
Beanインスタンスのキーにおける、BeanインスタンスがBean管理によるトランザクションの下でアクセスされていることを示すフラグの使用は、性能の最適化であることに留意されたい。この好ましい実施形態では、Beanキーは、Bean管理によるトランザクションの下でアクセスされる場合に限り、経路指定テーブルに存在する。その結果、フラグの使用は、Beanインスタンスのキーのフラグが設定されていない場合は、経路指定テーブルをサーチする必要が無いことを意味する。フラグを使用しない場合、Beanインスタンスを対象とするすべての到着要求のすべてのBeanインスタンス・キーについて、経路指定テーブルを検査することが必要になる。
【0045】
この好ましい実施形態では、作業単位を示す方法として、CORBA準拠OTSトランザクションを使用することに留意されたい。しかし、本発明はまた、異なる種類のトランザクション、セッション、ビジネス・メソッド、クライアント要求、あるいは1つまたは複数のイベントを1つの単位にグループ化する任意の他の方法など、他の種類の作業単位にも適用することができる。これは、選択された作業単位の完了時に、ステートフル・セッションBeanインスタンスを非活性化することによって実現される。さらに、実装形態によっては、作業単位の階層を用いることができる。たとえば、好ましい実施形態で述べたシステムにおいて、OTSトランザクションが選択された作業単位である場合、トランザクションが無いときはビジネス・プロセス・メソッドを作業単位として使用することもできる。クライアントがトランザクションの範囲外でビジネス・メソッドを要求し、そのビジネス・メソッドが、直接または間接に、ステートフル・セッションBeanインスタンスにアクセスする場合、ビジネス・メソッドの完了時にそのステートフル・セッションBeanインスタンスを非活性化することができる。好ましくは、クライアントによって呼び出されたビジネス・メソッドのpostInvoke処理中にこれを行う。これで、ステートフル・セッションBeanインスタンスが関与するクライアント呼出しによるビジネス・メソッドのための作業負荷管理が実現される。
【0046】
さらに、この好ましい実施形態では、メモリに対話処理の状態を保持するプログラム・エンティティ型の好ましい実施形態としてステートフル・セッションBeanが選択されていることに留意されたい。しかし、本発明は、Java BeanまたはC++オブジェクトなど、メモリ内の状態を保持し作業負荷管理サポートを必要とする任意の型のエンティティに適用することができる。
【0047】
本発明は、好ましくは、コンピュータ・システムと共に使用するコンピュータ・プログラム製品として実施される。そうした実装形態は一連のコンピュータ可読命令を含むことができる。その命令はたとえば、ディスケット、CD−ROM、ROM、ハードディスクにようなコンピュータ可読媒体など有形の媒体上に固定され、あるいは、モデムまたは他のインタフェース装置を介して、光やアナログ通信回線を含むがそれだけに限らない有形の媒体によって、あるいはマイクロ波や赤外線や他の伝送技術を含むがそれだけに限らない無線技術を使用して無形的に(intangibly)コンピュータ・システムに伝送することができる。この一連のコンピュータ可読命令は、本明細書中で述べた機能の全部または一部を実施する。
【0048】
当技術分野の技術者であれば、そうしたコンピュータ可読命令が多くのコンピュータ・アーキテクチャまたはオペレーティング・システムと共に使用するための多数のプログラミング言語で記述できることを理解するであろう。さらに、そうした命令は、半導体、磁気、光学を含むがそれだけに限らない、既存または将来の、任意のメモリ技術を使って記憶することができ、あるいは、光学、赤外線、マイクロ波を含むがそれだけに限らない、既存または将来の、任意の通信技術を使って伝送することができる。そうしたコンピュータ・プログラム製品は、ソフトウェア・パッケージ(shrink wrapped software)など印刷文書または電子文書付きの取り外し可能媒体として配布し、システムROMまたは固定ディスク上などでコンピュータ・システムに事前ロードし、あるいは、インターネットまたはワールド・ワイド・ウェブなどのネットワークを介してサーバまたは電子掲示板から配布できることが企図されている。
【図面の簡単な説明】
【0049】
【図1】本発明の好ましい実施形態が有利に適用されるデータ処理環境の構成図である。
【図2】本発明に関連し本発明を有利に適用できるEnterprise Java
Beansの諸機能の概略図である。
【図3】Enterprise Java Beans仕様によるステートフル・セッションBean非活性化を表す概略図である。
【図4】Enterprise Java Beans仕様によるステートフル・セッションBean再活性化を表す概略図である。
【図5】本発明の好ましい実施形態における主要構成要素間の関連する流れを示すシーケンス図である。
【図6】本発明の好ましい実施形態における主要構成要素間の関連する流れを示すシーケンス図である。
【図7】本発明の好ましい実施形態の概略図である。
【図8】本発明の好ましい実施形態によるステートフル・セッションBeanの作業負荷管理を可能にするためにディスク上に保持される情報の種類を示す図である。
【図9】本発明の好ましい実施形態による、サーバに到着要求を割り振るときに作業負荷管理ユニットが従う論理の流れ図である。
【符号の説明】
【0050】
10 クライアント
11 ネットワーク
12 作業負荷管理ユニット
13、14 サーバ
131 プロセッサ
132 RAM揮発性メモリ要素
133 不揮発性記憶
134 ネットワーク・コネクタ
20 EJBサーバ・プロセス
201 EJBコンテナ
202 EJBホーム
203 EJBインスタンス

Claims (18)

  1. 不揮発性記憶装置と少なくとも1台のサーバとを備えサーバ・プロセスを実行できるデータ処理システムにおいて、
    第1のサーバ・プロセスの一部として、プログラム・エンティティのインスタンスを前記記憶装置上のプログラム・エンティティ記憶域に書き込み、前記サーバ・プロセスからそれを除去することによってそのインスタンスを非活性化するステップと、
    第2のサーバ・プロセスの一部として、前記プログラム・エンティティの前記インスタンスへのアクセス要求を処理するステップであって、前記プログラム・エンティティの前記インスタンスを前記プログラム・エンティティ記憶域から読み取り、前記サーバ・プロセスでそれを再作成することによってそのインスタンスを再活性化するステップを含むステップと、
    前記要求を処理するサーバ・プロセスを作業負荷分配アルゴリズムに従って選択するステップと
    を含み、
    前記非活性化するサーバ・プロセスは、クライアントに代わって作業単位を実行し、前記作業単位の実行下で前記プログラム・エンティティの前記インスタンスをアクセスし、前記非活性化するステップでは前記作業単位の完了時に前記プログラム・エンティティの前記インスタンスを非活性化し、
    前記再活性化するステップでは、前記プログラム・エンティティ記憶域から前記プログラム・エンティティの前記インスタンスを読み取ってそこから除去し、それによって、前記作業単位の実行下で前記プログラム・エンティティのインスタンスが再活性化された場合に、前記作業単位が完了するまで前記作業単位外からそのインスタンスに再アクセスできないようにする、プログラム・エンティティをデータ処理する方法。
  2. 前記作業単位がトランザクションを含む請求項に記載の方法。
  3. 前記作業単位がビジネス・メソッドを含む請求項に記載の方法。
  4. 前記プログラム・エンティティがステートフル・セッションBeanを含む請求項1ないしのいずれかに記載の方法。
  5. 前記記憶装置上の経路指定テーブルにプログラム・エンティティ・インスタンス位置情報を保持するステップをさらに含み、前記経路指定テーブルを使用して複数のプログラム・エンティティ・インスタンスの位置を特定し、前記プログラム・エンティティ・インスタンスが前記複数のサーバ・プロセスの1つで活性状態にあるかそれとも前記プログラム・エンティティ記憶域で非活性状態にあるかを前記情報が示す、請求項1ないしのいずれかに記載の方法。
  6. 前記少なくとも1つのプログラム・エンティティ・インスタンスを要求の対象であると識別する際に使用するために、前記複数のプログラム・エンティティ・インスタンスの少なくとも1つとキーを関連付けるステップをさらに含み、
    前記経路指定テーブルにおける前記少なくとも1つのプログラム・エンティティ・インスタンスについての位置情報の有無を示すフラグを前記キーが含む
    請求項に記載の方法。
  7. 不揮発性記憶装置と少なくとも1台のサーバを備えサーバ・プロセスを実行できるデータ処理システムで使用するための、前記システムが読み取り可能なプログラムが記憶された記憶媒体であって、前記システムに、
    第1のサーバ・プロセスの一部として、プログラム・エンティティのインスタンスを前記記憶装置上のプログラム・エンティティ記憶域に書き込み、前記サーバ・プロセスからそれを除去することによってそのインスタンスを非活性化するステップと、
    第2のサーバ・プロセスの一部として、前記プログラム・エンティティの前記インスタンスへのアクセス要求を処理するステップであって、第2のサーバ・プロセスの一部として、前記プログラム・エンティティの前記インスタンスを、前記プログラム・エンティティ記憶域から読み取り、前記サーバ・プロセスでそれを再作成することによってそのインスタンスを再活性化するステップを含むステップと、
    前記要求を処理するサーバ・プロセスを作業負荷管理アルゴリズムに従って選択するステップと
    を実行させ、
    前記非活性化するサーバ・プロセスは、クライアントに代わって作業単位を実行し、前記作業単位の実行下で前記プログラム・エンティティの前記インスタンスをアクセスし、前記非活性化するステップでは前記作業単位の完了時に前記プログラム・エンティティの前記インスタンスを非活性化し、
    前記再活性化するステップでは、前記プログラム・エンティティ記憶域から前記プログラム・エンティティの前記インスタンスを読み取ってそこから除去し、それによって、前記作業単位の実行下で前記プログラム・エンティティのインスタンスが再活性化された場合に、前記作業単位が完了するまで、前記作業単位外からそのインスタンスに再アクセスできないようにする、記憶媒体
  8. 前記作業単位がトランザクションを含む請求項に記載の記憶媒体
  9. 前記作業単位がビジネス・メソッドを含む請求項に記載の記憶媒体
  10. 前記プログラム・エンティティがステートフル・セッションBeanを含む請求項ないしのいずれか一項に記載の記憶媒体
  11. 前記記憶装置上の経路指定テーブルにプログラム・エンティティ・インスタンス位置情報を保持するステップをさらに実行させ、前記経路指定テーブルを使用して複数のプログラム・エンティティ・インスタンスの位置を特定し、プログラム・エンティティ・インスタンスが、前記複数のサーバ・プロセスの1つで活性状態にあるかそれとも前記プログラム・エンティティ記憶域で非活性状態にあるかを前記情報が示す、請求項ないしのいずれか一項に記載の記憶媒体
  12. 前記少なくとも1つのプログラム・エンティティ・インスタンスを要求の対象であると識別する際に使用するために、前記複数のプログラム・エンティティ・インスタンスの少なくとも1つとキーを関連付けるステップをさらに実行させ
    前記キーが、前記経路指定テーブルにおける前記プログラム・エンティティ・インスタンスについての位置情報の有無を示すフラグを含む
    請求項11に記載の記憶媒体
  13. 少なくとも1台のサーバと、
    前記少なくとも1台のサーバ上で稼動でき、それぞれがプログラム・エンティティへのアクセス要求を処理することが可能な複数のサーバ・プロセスと、
    各サーバ・プロセスからアクセス可能な不揮発性記憶装置とを備え、
    各サーバ・プロセスが、
    前記記憶装置上のプログラム・エンティティ記憶域に前記プログラム・エンティティのインスタンスを書き込むことによってそれを非活性化する手段と、
    前記プログラム・エンティティの前記インスタンスにアクセスするよう求める要求を処理する手段であって、前記プログラム・エンティティ記憶域から前記プログラム・エンティティのインスタンスを読み取り、それを使って前記プログラム・エンティティ・インスタンスを再作成することによってそのインスタンスを再活性化する手段を含む手段と、
    異なるサーバ・プロセスの非活性化する手段によって非活性化されたプログラム・エンティティ・インスタンスを再活性化することができる手段と、
    前記要求を処理するサーバ・プロセスを作業管理分配アルゴリズムに従って選択する手段とを備え
    前記非活性化する手段が、クライアントに代わって作業単位を実行し、前記作業単位の実行下で前記プログラム・エンティティの前記インスタンスをアクセスする手段をさらに含み、前記インスタンスをアクセスする手段が、前記作業単位の完了時に前記サーバ・プロセスから前記プログラム・エンティティの前記インスタンスを除去することによってそのプログラム・エンティティのインスタンスを非活性化し、
    前記再活性化する手段が、前記プログラム・エンティティ記憶域から前記プログラム・エンティティのインスタンスを読み取ってそこから除去し、それによって、前記再活性化する手段が前記作業単位の実行下で前記プログラム・エンティティのインスタンスを再活性化する場合に、前記作業単位が完了するまで、前記作業単位外から前記プログラム・エンティティのインスタンスに再アクセスできないようにする
    データ処理システム。
  14. 前記作業単位がトランザクションを含む請求項13に記載のデータ処理システム。
  15. 前記作業単位がビジネス・メソッドを含む請求項13に記載のデータ処理システム。
  16. 前記プログラム・エンティティがステートフル・セッションBeanを含む請求項13ないし15のいずれか一項に記載のデータ処理システム。
  17. 前記複数のサーバ・プロセスのそれぞれが、
    前記記憶装置上の経路指定テーブルにプログラム・エンティティ・インスタンス位置情報を保持する手段をさらに備え、前記経路指定テーブルを使ってプログラム・エンティティ・インスタンスの位置を特定し、プログラム・エンティティが前記複数のサーバ・プロセスの1つで活性状態にあるかそれとも前記プログラム・エンティティ記憶域で非活性状態にあるかを前記情報が示す、請求項13ないし15のいずれか一項に記載のデータ処理システム。
  18. 各サーバ・プロセスが、
    前記プログラム・エンティティ・インスタンスを要求の対象であると識別する際に使用するために、プログラム・エンティティ・インスタンスにキーを関連付ける手段をさらに備え、
    前記キーが、前記経路指定テーブルにおける前記プログラム・エンティティ・インスタンスについての位置情報の有無を示すフラグを含む
    請求項17に記載のデータ処理システム。
JP2002578132A 2001-03-29 2002-03-07 ステートフル・プログラム・エンティティの作業負荷管理 Expired - Fee Related JP3851272B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0107967.2A GB0107967D0 (en) 2001-03-29 2001-03-29 Workload management of stateful program entities
PCT/GB2002/001032 WO2002079973A2 (en) 2001-03-29 2002-03-07 Workload management of stateful program entities(e.g. enterprise java session beans)

Publications (2)

Publication Number Publication Date
JP2004531807A JP2004531807A (ja) 2004-10-14
JP3851272B2 true JP3851272B2 (ja) 2006-11-29

Family

ID=9911897

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002578132A Expired - Fee Related JP3851272B2 (ja) 2001-03-29 2002-03-07 ステートフル・プログラム・エンティティの作業負荷管理

Country Status (8)

Country Link
US (1) US7349970B2 (ja)
EP (1) EP1374048A2 (ja)
JP (1) JP3851272B2 (ja)
KR (1) KR100579015B1 (ja)
CN (1) CN1291315C (ja)
AU (1) AU2002237437A1 (ja)
GB (1) GB0107967D0 (ja)
WO (1) WO2002079973A2 (ja)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543066B2 (en) * 2001-04-30 2009-06-02 International Business Machines Corporation Method and apparatus for maintaining session affinity across multiple server groups
CN100518176C (zh) * 2002-12-02 2009-07-22 Sap股份公司 实现有状态网络应用的会话返回
US20040122950A1 (en) * 2002-12-20 2004-06-24 Morgan Stephen Paul Method for managing workloads in an autonomic computer system for improved performance
US7406692B2 (en) * 2003-02-24 2008-07-29 Bea Systems, Inc. System and method for server load balancing and server affinity
US8032890B2 (en) * 2003-07-22 2011-10-04 Sap Ag Resources managing in isolated plurality of applications context using data slots to access application global data and specification of resources lifetime to access resources
US7246359B2 (en) * 2003-07-31 2007-07-17 International Business Machines Corporation Methods, systems and computer program products for maintaining association integrity of enterprise JavaBeans (EJB) during EJB passivation and reactivation
US7200608B2 (en) * 2003-10-23 2007-04-03 Microsoft Corporation Application programming interface for centralized storage of principal data
US7631060B2 (en) * 2003-10-23 2009-12-08 Microsoft Corporation Identity system for use in a computing environment
US7386864B2 (en) * 2003-11-12 2008-06-10 Microsoft Corporation Automatic serialization for event driven multi-threaded programs in an object structured system
US7870352B2 (en) * 2003-11-13 2011-01-11 Stalker Altan J State-based memory unloading
US7162647B2 (en) * 2004-03-11 2007-01-09 Hitachi, Ltd. Method and apparatus for cryptographic conversion in a data storage system
US8204931B2 (en) * 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
US7769784B2 (en) 2005-01-27 2010-08-03 International Business Machines Corporation System for autonomically improving performance of Enterprise Java Beans through dynamic workload management
US8589562B2 (en) 2005-04-29 2013-11-19 Sap Ag Flexible failover configuration
US8762547B2 (en) * 2005-04-29 2014-06-24 Sap Ag Shared memory implementations for session data within a multi-tiered enterprise network
JP2007004595A (ja) * 2005-06-24 2007-01-11 Hitachi Ltd コンピュータ制御方法、コンピュータ、情報処理システム、及びプログラム
US8850056B2 (en) * 2005-08-22 2014-09-30 Oracle America, Inc. Method and system for managing client-server affinity
CN100342342C (zh) * 2005-12-14 2007-10-10 浙江大学 支持多进程的Java虚拟机实现方法
US7941332B2 (en) 2006-01-30 2011-05-10 International Business Machines Corporation Apparatus, system, and method for modeling, projecting, and optimizing an enterprise application system
US7675854B2 (en) 2006-02-21 2010-03-09 A10 Networks, Inc. System and method for an adaptive TCP SYN cookie with time validation
US7685131B2 (en) * 2006-02-28 2010-03-23 International Business Machines Corporation Web services database cluster architecture
US7810076B2 (en) * 2006-09-22 2010-10-05 International Business Machines Corporation Method and system for scaling standalone applications to be executed as internet applications
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US8112262B1 (en) * 2008-09-30 2012-02-07 Interactive TKO, Inc. Service modeling and virtualization
JP4888742B2 (ja) 2009-02-25 2012-02-29 ソニー株式会社 情報処理装置および方法、並びにプログラム
US8429606B2 (en) * 2009-05-29 2013-04-23 Red Hat, Inc. Transactional object container
US9960967B2 (en) 2009-10-21 2018-05-01 A10 Networks, Inc. Determining an application delivery server based on geo-location information
CN102217247B (zh) * 2009-12-24 2013-09-11 华为技术有限公司 实现多Web应用请求调度的方法、装置及系统
US9215275B2 (en) 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
US9609052B2 (en) 2010-12-02 2017-03-28 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
US9509504B2 (en) * 2011-08-17 2016-11-29 Red Hat, Inc. Cryptographic key manager for application servers
US8897154B2 (en) 2011-10-24 2014-11-25 A10 Networks, Inc. Combining stateless and stateful server load balancing
US9386088B2 (en) 2011-11-29 2016-07-05 A10 Networks, Inc. Accelerating service processing using fast path TCP
US9094364B2 (en) 2011-12-23 2015-07-28 A10 Networks, Inc. Methods to manage services over a service gateway
US10044582B2 (en) 2012-01-28 2018-08-07 A10 Networks, Inc. Generating secure name records
US8782221B2 (en) 2012-07-05 2014-07-15 A10 Networks, Inc. Method to allocate buffer for TCP proxy session based on dynamic network conditions
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
WO2014052099A2 (en) 2012-09-25 2014-04-03 A10 Networks, Inc. Load distribution in data networks
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9531846B2 (en) 2013-01-23 2016-12-27 A10 Networks, Inc. Reducing buffer usage for TCP proxy session based on delayed acknowledgement
US9900252B2 (en) 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
US9558105B2 (en) 2013-03-15 2017-01-31 Ca, Inc. Transactional boundaries for virtual model generation
US9992107B2 (en) 2013-03-15 2018-06-05 A10 Networks, Inc. Processing data packets using a policy based network path
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
WO2014179753A2 (en) 2013-05-03 2014-11-06 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US10007537B2 (en) 2013-11-26 2018-06-26 Parallels Method for targeted resource virtualization in containers
EA201301283A1 (ru) * 2013-11-26 2015-05-29 Общество С Ограниченной Ответственностью "Параллелз" Способ целевой виртуализации ресурсов в контейнере
US10025839B2 (en) 2013-11-29 2018-07-17 Ca, Inc. Database virtualization
US10230770B2 (en) 2013-12-02 2019-03-12 A10 Networks, Inc. Network proxy layer for policy-based application proxies
US9727314B2 (en) 2014-03-21 2017-08-08 Ca, Inc. Composite virtual services
US9531609B2 (en) 2014-03-23 2016-12-27 Ca, Inc. Virtual service automation
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US9942162B2 (en) 2014-03-31 2018-04-10 A10 Networks, Inc. Active application response delay time
US10133996B2 (en) * 2014-04-22 2018-11-20 International Business Machines Corporation Object lifecycle analysis tool
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US9986061B2 (en) 2014-06-03 2018-05-29 A10 Networks, Inc. Programming a data network device using user defined scripts
US10129122B2 (en) 2014-06-03 2018-11-13 A10 Networks, Inc. User defined objects for network devices
US9992229B2 (en) 2014-06-03 2018-06-05 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US10489213B2 (en) 2014-10-01 2019-11-26 Red Hat, Inc. Execution of a method at a cluster of nodes
US9477454B2 (en) 2015-02-12 2016-10-25 Ca, Inc. Automated software deployment
US10581976B2 (en) 2015-08-12 2020-03-03 A10 Networks, Inc. Transmission control of protocol state exchange for dynamic stateful service insertion
US10243791B2 (en) 2015-08-13 2019-03-26 A10 Networks, Inc. Automated adjustment of subscriber policies
US10296445B2 (en) 2015-09-13 2019-05-21 Ca, Inc. Automated system documentation generation
US10628420B2 (en) 2015-12-18 2020-04-21 Ca, Inc. Dynamic virtual service
US10154098B2 (en) 2016-01-07 2018-12-11 Ca, Inc. Transactional boundaries for software system profiling
US9886365B2 (en) 2016-01-07 2018-02-06 Ca, Inc. Transactional boundaries for software system debugging
US9983856B2 (en) 2016-01-08 2018-05-29 Ca, Inc. Transaction flow visualization
US10341214B2 (en) 2016-03-30 2019-07-02 Ca, Inc. Scenario coverage in test generation
US9898390B2 (en) 2016-03-30 2018-02-20 Ca, Inc. Virtual service localization
US9946639B2 (en) 2016-03-30 2018-04-17 Ca, Inc. Transactional boundaries for virtualization within a software system
US10114736B2 (en) 2016-03-30 2018-10-30 Ca, Inc. Virtual service data set generation
US10394583B2 (en) 2016-03-31 2019-08-27 Ca, Inc. Automated model generation for a software system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862327A (en) * 1996-06-10 1999-01-19 Tactica Corporation Activity based long-lived transaction system
US6199066B1 (en) * 1998-07-20 2001-03-06 Telefonaktiebolaget L M Ericsson Meta-service activating interface between a customer administrative system and database network elements of a communications network
US6236999B1 (en) * 1998-11-05 2001-05-22 Bea Systems, Inc. Duplicated naming service in a distributed processing system
US6571274B1 (en) * 1998-11-05 2003-05-27 Beas Systems, Inc. Clustered enterprise Java™ in a secure distributed processing system
US6581088B1 (en) 1998-11-05 2003-06-17 Beas Systems, Inc. Smart stub or enterprise javaTM bean in a distributed processing system
US6457065B1 (en) * 1999-01-05 2002-09-24 International Business Machines Corporation Transaction-scoped replication for distributed object systems
US6944680B1 (en) * 1999-10-12 2005-09-13 Bea Systems, Inc. Smart handle
AU2001243270A1 (en) * 2000-02-25 2001-09-03 Saba Software, Inc. Method for enterprise workforce planning
AU2001249402A1 (en) * 2000-03-29 2001-10-08 Nextset Software Inc. System and method of generating and using proxy beans
US20030115376A1 (en) * 2001-12-19 2003-06-19 Sun Microsystems, Inc. Method and system for the development of commerce software applications

Also Published As

Publication number Publication date
CN1291315C (zh) 2006-12-20
CN1516831A (zh) 2004-07-28
EP1374048A2 (en) 2004-01-02
AU2002237437A1 (en) 2002-10-15
US7349970B2 (en) 2008-03-25
WO2002079973A2 (en) 2002-10-10
KR100579015B1 (ko) 2006-05-12
WO2002079973A3 (en) 2003-09-18
US20040078782A1 (en) 2004-04-22
GB0107967D0 (en) 2001-05-23
KR20030088459A (ko) 2003-11-19
JP2004531807A (ja) 2004-10-14

Similar Documents

Publication Publication Date Title
JP3851272B2 (ja) ステートフル・プログラム・エンティティの作業負荷管理
EP2288997B1 (en) Distributed cache arrangement
US5687372A (en) Customer information control system and method in a loosely coupled parallel processing environment
US20200159745A1 (en) Conditional master election in distributed databases
US7716181B2 (en) Methods, apparatus and computer programs for data replication comprising a batch of descriptions of data changes
US9344494B2 (en) Failover data replication with colocation of session state data
US8954786B2 (en) Failover data replication to a preferred list of instances
US6523032B1 (en) Servicing database requests using read-only database servers coupled to a master database server
US20030033351A1 (en) Group proxy and method for grouping services in a distributed computing application
US20070043726A1 (en) Affinity-based recovery/failover in a cluster environment
US20100023564A1 (en) Synchronous replication for fault tolerance
JP2007503628A (ja) クラスタ化されたコンピューティングシステムにおける高速なアプリケーション通知
US10698767B1 (en) Decentralized management of multi-service workflows
KR20090055608A (ko) 데이터 처리 시스템 및 요구 처리 방법
US5682507A (en) Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records
US5790868A (en) Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
CN112596762A (zh) 一种滚动升级方法及装置
Steketee et al. Implementation of process migration in amoeba
US5630133A (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
WO2007028249A1 (en) Method and apparatus for sequencing transactions globally in a distributed database cluster with collision monitoring
CN113687935A (zh) 一种基于超融合设计的云原生存储调度方式
CN115080609A (zh) 一种高性能高可靠业务流程引擎实现方法和系统
CN115878269A (zh) 集群迁移方法、相关装置及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060131

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20060216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060216

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060427

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060727

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20060822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060831

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090908

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100908

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100908

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110908

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120908

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120908

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120908

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S202 Request for registration of non-exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R315201

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120908

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees