JP3610120B2 - トランザクション・システム内のサーバの数を動的に制御する方法 - Google Patents
トランザクション・システム内のサーバの数を動的に制御する方法 Download PDFInfo
- Publication number
- JP3610120B2 JP3610120B2 JP14588595A JP14588595A JP3610120B2 JP 3610120 B2 JP3610120 B2 JP 3610120B2 JP 14588595 A JP14588595 A JP 14588595A JP 14588595 A JP14588595 A JP 14588595A JP 3610120 B2 JP3610120 B2 JP 3610120B2
- Authority
- JP
- Japan
- Prior art keywords
- service
- servers
- server
- service unit
- queue
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Description
【産業上の利用分野】
本発明は、メッセージ主導トランザクション環境における作業負荷の動的平衡化に関する。
【0002】
【従来の技術】
メッセージ主導トランザクション環境では、ユーザ・インタフェースまたはその他のアプリケーション・プロセスとの通信が、待ち行列に入れられたメッセージに基づいて行われる。メッセージとは、あるクライアント・プロセスからサーバ・プロセスにまたはその逆に送信されるサービス要求または応答(たとえば、資金移動要求、照会要求)であると見なすことができる。
【0003】
図1は、典型的なクライアント/サーバ概念を示している。サーバ10は、ネットワーク15内に設置され、少なくとも1台のクライアント20にサービスを提供する。このようなサービスとしては、たとえば、顧客に関する情報の照会が考えられる。ネットワーク15は、複数のサーバ10と複数のクライアント20とを含むことができ、それにより、各種サービスがクライアントによって要求され、サーバによって提供される。クライアントはサーバからのサービスを要求でき、そのサーバはクライアントとしてさらにサービスを要求できるので、「クライアント」と「サーバ」という用語は置き換えることができる。また、サーバまたはクライアントは、どのようなタイプのプロセス、コンピュータ・プログラムなどでもよいことに留意されたい。サーバ10は、クライアント20からサービス要求を受け取るために要求待ち行列25を含んでいる。サーバ10は、この要求待ち行列25からの要求を処理し、それぞれのクライアント20に適切な応答を送信し、この応答はまずクライアント20の応答待ち行列30に入る。最終的にクライアント20はこの応答待ち行列30から応答を受け取る。並列処理または直列処理により、クライアントとサーバとの間の複数の対話を同時に処理できることは明らかである。また、それぞれのサーバまたはクライアントが複数の待ち行列を含むことができることも明らかである。
【0004】
基本的に、クライアント/サーバのシナリオでは、要求の処理のために以下の2通りの構成のいずれかが必要になる。第1の構成では、サーバ10が事前始動され、いずれかのクライアントからのサービス要求メッセージが要求待ち行列25に届くのを待つ。要求が要求待ち行列25に届くと、サーバ10は、その要求を処理し、応答を送り返し、次の要求を待つ。
【0005】
着信要求の並列処理を達成するため、1台のサーバ10の複数の処理ユニットを事前始動させ、サーバ10の同一要求待ち行列25のサービス要求を処理するためにそのユニットを待機させることもできる。このようにすると、特に、複数のサーバが入出力処理(たとえば、データベースへのアクセス)を実行したり、初期サービス要求に対する応答として他のサーバへの2次メッセージの流れを開始したりするときに、サーバ10上でのパフォーマンスおよび負荷が改善される。
【0006】
クライアント/サーバのシナリオの第2の構成では、サービス要求メッセージが要求待ち行列25に入ったときに、サーバ10だけが(たとえば、開始プロセスによって自動的に)始動される。最終的にその要求が処理されると、サーバ10が終了し、次の要求を処理するために別の処理ユニットが始動される。
【0007】
パフォーマンスと資源の使用状況を考慮して、適切な機構を選択する必要がある。しかし、どちらの構成でも、システムが動的挙動をするため、条件の厳しい管理方式または複雑な手作業による対話が必要になる。また、1営業日中でもシステムの作業負荷(たとえば、1時間当たりのメッセージ数)が変化する(たとえば、ある顧客がテープで多数のサービス要求を提供する場合もあれば、処理する要求がまったくない場合もある)ので、いくつかの問題が発生する可能性がある。
【0008】
考えられる問題の1つは、作業負荷が低いために事前始動したサーバ10の処理ユニットが遊んでしまう点である。記憶装置、ディスク空間、またはディスパッチ・リストなどのシステム資源が占有されるので、他のシステム・ユーザのパフォーマンスに影響する場合がある。
【0009】
考えられるもう1つの問題は、事前始動したサーバ10の処理ユニットの数が少なすぎて、満足できる応答時間内に待ち行列25の多数の要求メッセージを処理できない点である。サーバ10が入出力処理が完了するまで待ってから次の要求が処理されるので、このシナリオでは中央演算処理装置(CPU)が十分活用されない可能性がある。サーバ10が使用した処理ユニットが1台だけの場合には、すべての着信要求が完全に順次処理される。
【0010】
考えられるもう1つの問題は、要求メッセージの到着後に追加サーバを始動すると、プロセスの始動と停止のためにシステム・オーバヘッドが高くなる点である。
【0011】
【発明が解決しようとする課題】
したがって、本発明の目的は、システム資源のパフォーマンスおよび使用効率が高く、システム・オーバヘッドが低い、トランザクション・システムを提供することにある。
【0012】
【課題を解決するための手段】
本発明の目的は、サービス要求を処理するための少なくとも1つのサービス単位55を備えたトランザクション・システム内のサーバ60〜68の数を動的に制御する方法において、各サービス単位55が、着信サービス要求を受け取って待ち行列化する待ち行列57と、サービス要求を実行する複数のサーバ60〜68とを有し、前記方法が、現在のサービス要求の数と、サービス単位55のそれぞれに割り振られている現在のサーバ60〜68の数とを監視する第1のステップ240と、現在のサービス要求の数と、現在のサーバ60〜68の数とに応じて、各サービス単位55ごとにサーバ60〜68の最適数を決定する第2のステップ260と、各サービス単位55ごとに最適数のサーバ60〜68を割り振る第3のステップ260とを含み、各サービス単位55に割り振られたサーバ60〜68が、永続サーバと一時サーバとを含み、一時サーバのそれぞれが、定義可能な期間または待ち行列57内の少なくとも1つのサービス要求がそれぞれの一時サーバによって処理可能である間のみ、サービス単位55に割り振られることを特徴とする方法によって解決される。
【0013】
一例として、添付図面に関して本発明について説明する。
【0014】
【実施例】
図2は、本発明によるメッセージ主導トランザクション・システムの実施例を示している。このシステムは少なくとも1つのサービス・ポイント50を含み、さらにこのサービス・ポイントは少なくとも1つのサービス単位55を含んでいる。明確にするため、本発明の原理を説明するために図2には1つのサービス単位55を備えたサービス・ポイントを1つだけ示す。サービス単位55は、サービス・ポイント50に接続されたクライアント20のいずれかからサービス要求を受け取るサービス単位待ち行列57を含んでいる。このサービス単位待ち行列57は複数のサーバ60〜68とリンクされ、それにより、サーバ60〜68はサービス単位待ち行列57に待ち行列化されているサービス要求を実行する。サーバ60〜68のそれぞれは、要求されたサービスを実行するためにさらに複数のサービス・ルーチン70〜74とリンクされており、それにより、サービス・ルーチン70〜74のそれぞれが要求されたサービスのモジュラ・ステップを実行する。サーバ60〜68のそれぞれは、他のサーバまたは資源管理プログラムにもサービス要求を出すことができることに留意されたい。
【0015】
図2では、サーバ60〜68の処理の例をサーバ60についてのみ示すが、この例は他のどのサーバについても同様である。サーバ60はサービス単位待ち行列57からサービス要求の1つを受け取る。サービス要求は、サービスの処理に必要な情報(たとえば、要求されたサービスのタイプ、サービスに必要なデータ)を提供する。次に、サーバは対応するサービス・ルーチン(この例では、サービス・ルーチン70および72)をリンクし、サービス・ルーチン70および72を使用することにより要求されたサービスを実行する。
【0016】
サービス・ポイント50は、待ち行列化モニタ85に接続された開始待ち行列80をさらに含んでいる。サービス単位待ち行列57に最初のサービス要求が入ると、待ち行列化システムによってトリガ・メッセージ87が生成され、それが開始待ち行列80に送られる。待ち行列化モニタ85は、サービス単位待ち行列57の名前と始動するサーバの名前とが入っているトリガ・メッセージ87を受け取る。次に、待ち行列化モニタ85は、サービス・ポイント50の各サービス単位55についてサーバ60〜68を監視し制御する。待ち行列化モニタ85が使用する監視および制御の方法については、後述する。
【0017】
図3は、複数のサービス・ポイント50、100、および102を有するメッセージ主導トランザクション・システムの実施例を示しているが、これらのサービス・ポイントはさらに複数のサービス単位55、104、および120を含んでいる。明確にするため、図2と同じ特徴を示す参照番号はそのまま使用する。たとえば、サービス・ポイント50は、複数のサービス単位55、104、および120を示している。サービス単位104は、サーバ110および112にリンクされたサービス単位待ち行列105を含んでいる。また、サービス単位120は、サーバ130〜136にリンクされたサービス単位待ち行列125を含んでいる。サーバ60〜64、110〜112、および130〜136のそれぞれは複数のサービス・ルーチン150〜174にリンク可能であり(図3にはそれらのリンクの一部のみ示す)、それぞれのサービス要求内の情報に応じたサービスを提供する。また、それぞれのサーバは、初期サービス要求を処理するために2次要求になりうるサービス要求を出すこともできる。
【0018】
サービス単位55、104、および120のそれぞれは、サービス単位待ち行列57、105、または125がそれぞれの最初のサービス要求を受け取ったときに、それぞれのトリガ・メッセージを開始待ち行列80に送信する。待ち行列化モニタ85は、そのトリガ・メッセージを受け取り、各サービス単位55、104、および120ごとに複数のセットアップ・プロファイル90〜94からの対応するセットアップ・プロファイルをリンクする。各セットアップ・プロファイル90〜94は複数のサービス単位についてリンク可能で、特定のサービス単位1つについてのみカスタマイズされるのではないことは明らかである。次に、待ち行列化モニタ85は、各サービス単位55、104、および120ごとにサーバの数を監視し制御する。
【0019】
前述のサービス・ポイント50と同様に、サービス・ポイント100および102を構築することができ、それにより、各サービス・ポイントにおけるサービス単位の数と実行回数が変化する可能性がある。
【0020】
図2および図3の待ち行列化モニタ85は、サーバ10の各種プロセスに対して動的作業負荷平衡化と定義済みの構造(図7で説明する)を提供する。動的作業負荷平衡化については以下に説明するが、その際、明確にするために図2の参照番号を使用することが好ましい。
【0021】
待ち行列化モニタ85は、指定のセットアップ・プロファイル90〜94から、監視対象の各サービス単位55に関する制御情報を受け取る。この制御情報は、以下の顧客定義のサービス単位パラメータを含む。
1.監視対象のサービス単位待ち行列57(複数も可)の名前。これにより、1つの待ち行列化モニタ85によって1つのサービス・ポイント50内の複数のサービス単位待ち行列を監視することができる。
2.着信サービス要求の処理のためのそれぞれのサービス単位55の関連サーバ(複数も可)60〜68の名前。
3.各サービス単位55のサーバの最小数。この最小数は、処理すべきメッセージがない場合でも永続的に動作する必要があるサービス単位55内のサーバ・プロセスの数に相当する。この最小数の値は、各サービス単位待ち行列57ごとに指定することができる。
4.各サービス単位55のサーバの最大数。この最大数は、待ち行列に多くの業務要求が入っている高作業負荷状況で動作する必要があるサービス単位55内のサーバ・プロセスの数に相当する。この最大数の値は、各サービス単位待ち行列57ごとに指定することができる。
5.それぞれのサービス単位待ち行列内の業務要求を迅速に処理するためにリンクする必要があるサーバの数を定義するしきい値。リンクする必要があるサーバの数は、待ち行列内の業務要求の数(待ち行列内項目数)をしきい値で割った数によって決まる。サーバの最大数と、リンクする必要があるサーバの数とを組み合わせると、最終的に、各サービス単位55によってリンクされるサーバ60〜68の数が決まる。
6.待ち行列化モニタ85がサービス単位(複数も可)55の現在の状態の監視を繰り返す時間間隔を定義するモニタ時間間隔。
7.サービス単位55をただちに始動するか、トリガ・メッセージ87の到着後に始動するかを決定する自動始動指示。
【0022】
作業負荷状況の変化に対応するため、上記のパラメータはいずれもユーザが動的に変更することができる。
【0023】
待ち行列化モニタ85は永続的に動作し、実行時環境が開始されたときに自動的に始動する。待ち行列化モニタ85は、サービス・ポイント50内で待ち行列化モニタ85が監視する各サービス単位55、104、および120ごとに最適数のサーバを使用する。図4は、監視する各サービス単位ごとに最適数のサーバを使用するために待ち行列化モニタ85または他の待ち行列化モニタが提供する動的作業負荷平衡化方法を示している。
【0024】
ステップ200で、待ち行列化モニタ85は、トリガ・メッセージ(複数も可)87が開始待ち行列80に到着するのを待ち、次にステップ210で、リンクされたセットアップ・プロファイルの定義通り、各サービス単位55、104、および120ごとに指定の最小数のサーバを始動する。ただし、220の自動始動指示に応じて、待ち行列化モニタの始動後ただちに待ち行列化モニタ85によってステップ210の最小数のサーバを始動することもできる。
【0025】
待ち行列化モニタ85は、ステップ210に続く次のステップ230で、リンクするサーバのパラメータとして、処理する必要があるサービス単位待ち行列の名前と、状態指示とを提供する。この状態指示は、それぞれのサーバが永続的に使用されるのか、一時的に使用されるだけなのかを決定するものである。永続サーバはシステムが終了するまでそれぞれのサービス単位にリンクされるが、一時実行マネージャは、サービス単位待ち行列からの1つのサービス要求を処理する場合のみ、それぞれのサービス単位にリンクされる。このサービス要求の処理が完了したときに処理すべきサービス要求が他になければ、この一時サーバへのリンクが終了するか、サーバ自体が終了する。
【0026】
最小数のサーバとしてリンクされているサーバは永続サーバとして示されるので、サービス単位当たりの永続サーバの数は、通常の条件下でサービス単位パラメータによって示されるサーバの指定の最小数によって決まる。しかし、サービス単位当たりの一時サーバの数は、指定のサービス単位パラメータと、それぞれのサービス単位待ち行列57内のサービス要求の数とによって決まる。
【0027】
指定のモニタ時間間隔が経過すると、待ち行列化モニタ85は、次のステップ240でサービス単位55(104および120)のそれぞれから以下の情報を問い合わせる。
1.それぞれのサービス単位待ち行列内の現在のサービス要求の数。これは待ち行列内項目数ともいう。
2.このサービス単位待ち行列にリンクされている現在のサーバの数。
【0028】
それぞれのサービス単位55内の現在のサービス要求(SR)の数が指定のしきい値以下であるときは、待ち行列化モニタ85は追加のサーバを始動する必要がない。保全性を維持するため、待ち行列化モニタ85は、ステップ250で最小数のサーバが動作していることを検査する。動作しているサーバが指定の最小数のサーバより少ない場合は、待ち行列化モニタ85は、このサーバの最小数に達するために必要な数のサーバのみ再始動する。
【0029】
サービス単位待ち行列57内のサービス要求の数が指定のしきい値を上回る場合は、待ち行列化モニタ85は、以下の式に基づいてステップ260で追加のサーバをリンクまたは始動する。
【0030】
【数1】
リンク/始動するサーバの数=待ち行列内項目数/しきい値
【0031】
リンク/始動するサーバの数の計算値にすでに動作しているサーバの数を加えた合計がサーバ数の指定の最大値を上回る場合は、待ち行列化モニタ85は、このサーバの最大数に達するために必要な数のサーバのみリンクまたは始動する。
【0032】
ステップ250または260のいずれかに続いて、もう一度ステップ230に戻り、そこでステップ250で再始動されたサーバが永続サーバとして示され、ステップ260で始動された追加のサーバが一時サーバとして示される。
【0033】
実行時環境が終了すると、待ち行列化モニタは、監視したすべてのサービス単位待ち行列を使用禁止にし、サーバに対してこの事象に関する通知を行う。
【0034】
図5および図6は、動的作業負荷平衡化の例を示している。図5の例では、待ち行列化モニタ85は、指定のセットアップ・プロファイル90〜94から以下の顧客定義のサービス単位パラメータを受け取る。
1.監視するサービス単位待ち行列57
3.サーバの最小数は3である。
4.サーバの最大数は10である。
5.しきい値は2である。
【0035】
次に、待ち行列化モニタ85は、サービス単位待ち行列57の現在の待ち行列内項目数を要求し、この例では「待ち行列内項目数は6である」というメッセージを受け取る。さらに待ち行列化モニタ85は、サービス単位55で使用されている現在のサーバの数を要求し、「3台の永続サーバと2台の一時サーバが使用され、現在のサーバの数は5である」というメッセージを受け取る。
【0036】
ここで待ち行列化モニタ85は、リンクするサーバの数を決定する。待ち行列内項目数(=6)をしきい値(=2)で割ると、リンクする必要がある一時サーバの数が3になる。ただし、待ち行列化モニタ85は、3台の一時サーバをリンクする前に、使用するサーバの総数がサーバの最大数(=10)を超えていないかどうか検査する。すでに使用している5台のサーバに、使用する必要がある3台のサーバを加えると、合計8台のサーバになるはずだが、10台のサーバという所与の最大数を超えない。これは、サービス単位待ち行列57からのサービス要求を迅速に処理するために待ち行列化モニタが最終的に3台のサーバを一時サーバとしてリンクすることを意味する。
【0037】
図6の例では、待ち行列化モニタ85は、指定のセットアップ・プロファイル90〜94から図5の例と同じサービス単位パラメータを受け取るが、以下の点のみ異なっている。
3.サーバの最小数は4である。
5.しきい値は3である。
【0038】
次に、待ち行列化モニタ85は、サービス単位待ち行列57の現在の待ち行列内項目数とサービス単位55で使用されている現在のサーバの数とをもう一度要求し、「待ち行列内項目数は9であり、4台の永続サーバと4台の一時サーバが使用され、現在のサーバの数は8である」というメッセージを受け取る。
【0039】
待ち行列内項目数(=9)をしきい値(=3)で割ると、リンクする必要がある一時サーバの数が3になる。ただし、すでに使用されている8台のサーバに追加して使用する必要があるサーバ3台を加えると合計11台のサーバになり、10台のサーバという所与の最大数を1台上回るので、使用するサーバの総数がサーバの最大数(=10)を超えるはずである。これは、待ち行列化モニタがサービス単位待ち行列57に対して2台の追加サーバしか一時サーバとしてリンクできないことを意味する。
【0040】
図7は、サーバによるサービス要求の処理を示すものである。ステップ300で、サーバ60〜68は、ステップ230で待ち行列化モニタ85によって提供されたパラメータを受け取る。このパラメータは、処理する必要があるサービス単位待ち行列の名前と、それぞれのサーバが永続的に使用されるのか、一時的にのみ使用されるのかを示す状態指示とを含んでいる。
【0041】
次のステップ310で、サーバ60〜68は、それぞれのサービス単位待ち行列57によってサービス単位が割り振られるように所定の待ち時間待機する。サーバの待ち時間の値は、状態指示によって決まる。一時サーバの待ち時間は定義可能な期間であるが、永続サーバの待ち時間は不定として設定される。すなわち、一時サーバは、ゼロにもなりうる定義可能な期間だけ待機するが、永続サーバは、サービス単位待ち行列からサービス要求が最終的に割り振られるまで待機することになる。
【0042】
指定の待ち時間内にサービス単位待ち行列57にサービス要求が入っている場合、そのサービス要求はステップ320でそれぞれのサーバによって読み取られ、処理される。サービス要求が最終的に処理されると、サーバは、処理したサービス要求の送信側(クライアント)に応答信号を出し、ステップ310に戻る。
【0043】
指定の待ち時間内にサービス単位待ち行列57にサービス要求が一切入っていない場合(たとえば、待ち行列が空であるか、使用禁止になっているとき)は、一時サーバが終了し、そのサービス単位へのリンクはステップ330で解除される。
【0044】
前述の待ち行列化モニタとサーバ構造により、メッセージ・システム内で最良の資源使用効率と応答時間を達成することが可能になる。この平衡化方法は完全に動的なものなので、システムの動作中にすべての構成データを変更することができる。
【0045】
リンクするサーバの数を決定するために提供される方法は前述の実施例に限定されないことに留意されたい。サービス単位内の現在のサーバの数を現在の作業負荷に動的に適応させるという要件を満たすものであれば、他の方法も適用可能である。
【0046】
オブジェクト指向アプリケーションでは、本明細書で使用する「サーバ」という用語が「サーバ・インスタンス」(”Object−oriented Software Construction”、Bertrand Meyer著、1988年、Prentice Hall International Ltd(英国)発行、ISBN 0−13−629049−3、71ページ、5.2.1章を参照)という用語で置換え可能であることに留意されたい。
【0049】
【発明の効果】
本願発明によれば、サービス要求を処理するための少なくとも1つのサービス単位(55)を含むトランザクション・システム内のサーバ(60〜68)の数を動的に制御することができることとなった。
【図面の簡単な説明】
【図1】典型的なクライアント/サーバの概念を示す図である。
【図2】本発明によるメッセージ主導トランザクション・システムの実施例を示す図である。
【図3】複数のサービス・ポイントを有するメッセージ主導トランザクション・システムの実施例を示す図である。
【図4】待ち行列化モニタによって提供される動的作業負荷平衡化方法を示す図である。
【図5】動的作業負荷平衡化の例を示す図である。
【図6】動的作業負荷平衡化の例を示す図である。
【図7】サーバによるサービス要求の処理を示す図である。
【符号の説明】
50 サービス・ポイント
55 サービス単位
57 サービス単位待ち行列
60 サーバ
62 サーバ
64 サーバ
66 サーバ
68 サーバ
70 サービス・ルーチン
72 サービス・ルーチン
74 サービス・ルーチン
80 開始待ち行列
85 待ち行列化モニタ
87 トリガ・メッセージ
90 セットアップ・プロファイル
92 セットアップ・プロファイル
94 セットアップ・プロファイル
Claims (2)
- サービス要求を処理するための少なくとも1つのサービス単位55を備え、各サービス単位55が、着信サービス要求を受け取って待ち行列化する待ち行列57と、サービス要求を実行する複数のサーバ60〜68とを有するトランザクション・システム内のサーバ60〜68の数を動的に制御する方法であって、
各サービス単位55内の現在のサービス要求の数と、当該各サービス単位55に割り振られている現在のサーバ60〜68の数とを監視する第1のステップ240と、
各サービス単位55内の現在のサービス要求の数を定義可能なしきい値で割ることにより、当該各サービス単位55ごとにサーバ60〜68の最適数を決定する第2のステップ260と、
各サービス単位55内の現在のサービス要求の数がしきい値以下である場合には、最小数のサーバ60〜68を永続サーバ60〜68として当該各サービス単位55に割り振る第3のステップ250と、
各サービス単位55内の現在のサービス要求の数がしきい値を上回る場合には、最適数のサーバ60〜68を一時サーバとして、定義可能な期間または待ち行列57内の少なくとも1つのサービス要求がそれぞれの一時サーバによって処理可能である間のみ、当該各サービス単位55に割り振る第4のステップ260とを含む、方法。 - サーバ60〜68の数が、各サービス単位55内のサーバの定義可能な最大数を超えないことを特徴とする、請求項1に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE94111579.2 | 1994-07-25 | ||
EP94111579A EP0694837A1 (en) | 1994-07-25 | 1994-07-25 | Dynamic workload balancing |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0844576A JPH0844576A (ja) | 1996-02-16 |
JP3610120B2 true JP3610120B2 (ja) | 2005-01-12 |
Family
ID=8216147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14588595A Expired - Lifetime JP3610120B2 (ja) | 1994-07-25 | 1995-06-13 | トランザクション・システム内のサーバの数を動的に制御する方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5799173A (ja) |
EP (1) | EP0694837A1 (ja) |
JP (1) | JP3610120B2 (ja) |
Families Citing this family (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761507A (en) * | 1996-03-05 | 1998-06-02 | International Business Machines Corporation | Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling |
US6182109B1 (en) * | 1996-03-08 | 2001-01-30 | International Business Machines Corporation | Dynamic execution unit management for high performance user level network server system |
US6272559B1 (en) * | 1997-10-15 | 2001-08-07 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading for event notification in a distributed system |
US6138238A (en) * | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
US6421704B1 (en) * | 1998-03-20 | 2002-07-16 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system |
US6185611B1 (en) * | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
US6938263B2 (en) * | 1996-04-23 | 2005-08-30 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space |
US6466947B2 (en) * | 1998-03-20 | 2002-10-15 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
US6393497B1 (en) | 1998-03-20 | 2002-05-21 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system |
JPH1049374A (ja) * | 1996-08-06 | 1998-02-20 | Nippon Telegr & Teleph Corp <Ntt> | 分散オブジェクトおよびその生成方法 |
US6298386B1 (en) * | 1996-08-14 | 2001-10-02 | Emc Corporation | Network file server having a message collector queue for connection and connectionless oriented protocols |
GB2320112B (en) * | 1996-12-07 | 2001-07-25 | Ibm | High-availability computer server system |
US6078943A (en) * | 1997-02-07 | 2000-06-20 | International Business Machines Corporation | Method and apparatus for dynamic interval-based load balancing |
US5933606A (en) * | 1997-02-19 | 1999-08-03 | International Business Machines Corporation | Dynamic link page retargeting using page headers |
US6192389B1 (en) | 1997-03-28 | 2001-02-20 | International Business Machines Corporation | Method and apparatus for transferring file descriptors in a multiprocess, multithreaded client/server system |
US6085217A (en) * | 1997-03-28 | 2000-07-04 | International Business Machines Corporation | Method and apparatus for controlling the assignment of units of work to a workload enclave in a client/server system |
US5974462A (en) * | 1997-03-28 | 1999-10-26 | International Business Machines Corporation | Method and apparatus for controlling the number of servers in a client/server system |
US5950212A (en) * | 1997-04-11 | 1999-09-07 | Oracle Corporation | Method and system for workload based group committing for improved performance |
JPH10334064A (ja) * | 1997-05-27 | 1998-12-18 | Shikoku Nippon Denki Software Kk | 負荷分散方式 |
JP3784137B2 (ja) * | 1997-06-04 | 2006-06-07 | 富士通株式会社 | 負荷分散システム |
US6675195B1 (en) * | 1997-06-11 | 2004-01-06 | Oracle International Corporation | Method and apparatus for reducing inefficiencies caused by sending multiple commands to a server |
US6081906A (en) * | 1997-11-21 | 2000-06-27 | Fuji Xerox Co., Ltd. | Multi-thread processing with queuing and recovery |
CN1292115A (zh) * | 1998-02-26 | 2001-04-18 | 太阳微系统公司 | 分布系统中动态验证信息的装置和方法 |
WO1999044127A1 (en) * | 1998-02-26 | 1999-09-02 | Sun Microsystems, Inc. | Dynamic lookup service in a distributed system |
US6230183B1 (en) | 1998-03-11 | 2001-05-08 | International Business Machines Corporation | Method and apparatus for controlling the number of servers in a multisystem cluster |
GB2336449A (en) * | 1998-04-14 | 1999-10-20 | Ibm | A server selection method in an asynchronous client-server computer system |
US6789050B1 (en) * | 1998-12-23 | 2004-09-07 | At&T Corp. | Method and apparatus for modeling a web server |
GB2346302B (en) * | 1999-01-29 | 2003-06-18 | Ibm | Pre-emptive network load balancing by predictive configuration |
US6292856B1 (en) * | 1999-01-29 | 2001-09-18 | International Business Machines Corporation | System and method for application influence of I/O service order post I/O request |
JP2000242509A (ja) * | 1999-02-18 | 2000-09-08 | Nec Corp | ディスパッチ装置 |
US6845393B1 (en) | 1999-06-14 | 2005-01-18 | Sun Microsystems, Inc. | Lookup discovery service in a distributed system having a plurality of lookup services each with associated characteristics and services |
US6542920B1 (en) * | 1999-09-24 | 2003-04-01 | Sun Microsystems, Inc. | Mechanism for implementing multiple thread pools in a computer system to optimize system performance |
US6976258B1 (en) | 1999-11-30 | 2005-12-13 | Ensim Corporation | Providing quality of service guarantees to virtual hosts |
US6728770B1 (en) * | 1999-12-03 | 2004-04-27 | Storage Technology Corporation | Method and apparatus for workload balancing along multiple communication paths to a plurality of devices |
US6687729B1 (en) * | 1999-12-20 | 2004-02-03 | Unisys Corporation | System and method for providing a pool of reusable threads for performing queued items of work |
US6842899B2 (en) | 1999-12-21 | 2005-01-11 | Lockheed Martin Corporation | Apparatus and method for resource negotiations among autonomous agents |
US6711607B1 (en) | 2000-02-04 | 2004-03-23 | Ensim Corporation | Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service |
US6754716B1 (en) | 2000-02-11 | 2004-06-22 | Ensim Corporation | Restricting communication between network devices on a common network |
US7343421B1 (en) * | 2000-02-14 | 2008-03-11 | Digital Asset Enterprises Llc | Restricting communication of selected processes to a set of specific network addresses |
US6968556B1 (en) * | 2000-02-15 | 2005-11-22 | Microsoft Corporation | Automatic message-based module invocation |
US6948003B1 (en) | 2000-03-15 | 2005-09-20 | Ensim Corporation | Enabling a service provider to provide intranet services |
US7054943B1 (en) * | 2000-04-28 | 2006-05-30 | International Business Machines Corporation | Method and apparatus for dynamically adjusting resources assigned to plurality of customers, for meeting service level agreements (slas) with minimal resources, and allowing common pools of resources to be used across plural customers on a demand basis |
US6985937B1 (en) | 2000-05-11 | 2006-01-10 | Ensim Corporation | Dynamically modifying the resources of a virtual server |
US6907421B1 (en) | 2000-05-16 | 2005-06-14 | Ensim Corporation | Regulating file access rates according to file type |
US7143128B1 (en) * | 2000-06-08 | 2006-11-28 | International Business Machines Corporation | Interactive data processor controlled display interface for tracking of allocated messages in a dynamic workload balancing communication system |
US7085805B1 (en) * | 2000-07-07 | 2006-08-01 | Sun Microsystems, Inc. | Remote device management in grouped server environment |
US7143024B1 (en) | 2000-07-07 | 2006-11-28 | Ensim Corporation | Associating identifiers with virtual processes |
EP1312007A4 (en) * | 2000-07-17 | 2008-01-02 | Galactic Computing Corp Bvi Ib | PROCESS AND SYSTEM FOR PROVIDING THE MANAGEMENT OF A DYNAMIC HOST SERVICE |
US6909691B1 (en) | 2000-08-07 | 2005-06-21 | Ensim Corporation | Fairly partitioning resources while limiting the maximum fair share |
US20020052909A1 (en) * | 2000-08-24 | 2002-05-02 | Glen Seeds | Efficient assignment of processing resources in a fair queuing system |
US6763520B1 (en) * | 2000-08-24 | 2004-07-13 | Cognos Incorporated | Fair assignment of processing resources to queued requests |
US7565394B1 (en) | 2000-09-07 | 2009-07-21 | ReportEdge, LLC | Distributed report processing system and methods |
FR2814827B1 (fr) * | 2000-10-02 | 2003-01-10 | Amadeus Developement Company | Unite de multiplexage, systeme et procede de communication dans un reseau informatique |
US6879984B2 (en) * | 2000-10-05 | 2005-04-12 | Clareos, Inc. | Analytical database system that models data to speed up and simplify data analysis |
US7296268B2 (en) * | 2000-12-18 | 2007-11-13 | Microsoft Corporation | Dynamic monitor and controller of availability of a load-balancing cluster |
US7219354B1 (en) | 2000-12-22 | 2007-05-15 | Ensim Corporation | Virtualizing super-user privileges for multiple virtual processes |
US6907461B2 (en) * | 2001-03-29 | 2005-06-14 | International Business Machines Corporation | Interactive data processor controlled display interface for tracking allocated messages in a dynamic workload balancing communication system |
US7174379B2 (en) | 2001-08-03 | 2007-02-06 | International Business Machines Corporation | Managing server resources for hosted applications |
US6823382B2 (en) * | 2001-08-20 | 2004-11-23 | Altaworks Corporation | Monitoring and control engine for multi-tiered service-level management of distributed web-application servers |
US7660887B2 (en) | 2001-09-07 | 2010-02-09 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system |
US7756969B1 (en) | 2001-09-07 | 2010-07-13 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system |
US20030051029A1 (en) * | 2001-09-07 | 2003-03-13 | Reedy Dennis G. | Dynamic provisioning of sevice components in a distributed system |
US6862691B2 (en) * | 2001-09-19 | 2005-03-01 | Hewlett-Packard Development Company, L.P. | Redundant component system and method for facilitating endsystem functionality |
CA2372092C (en) * | 2002-02-15 | 2010-04-06 | Cognos Incorporated | A queuing model for a plurality of servers |
US7698434B2 (en) * | 2002-08-29 | 2010-04-13 | Bea Systems, Inc. | J2EE connector architecture |
JP4306269B2 (ja) * | 2003-02-12 | 2009-07-29 | 住友化学株式会社 | 偏光板、その製造方法、光学部材及び液晶表示装置 |
GB0312171D0 (en) * | 2003-05-28 | 2003-07-02 | Ibm | Workload balancing |
US7783740B2 (en) * | 2003-09-25 | 2010-08-24 | Rockwell Automation Technologies, Inc. | Embedded network traffic analyzer |
US8145731B2 (en) * | 2003-12-17 | 2012-03-27 | Hewlett-Packard Development Company, L.P. | System and method for determining how many servers of at least one server configuration to be included at a service provider's site for supporting an expected workload |
US8346909B2 (en) * | 2004-01-22 | 2013-01-01 | International Business Machines Corporation | Method for supporting transaction and parallel application workloads across multiple domains based on service level agreements |
US20050188075A1 (en) * | 2004-01-22 | 2005-08-25 | International Business Machines Corporation | System and method for supporting transaction and parallel services in a clustered system based on a service level agreement |
US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
US7590623B2 (en) * | 2005-01-06 | 2009-09-15 | International Business Machines Corporation | Automated management of software images for efficient resource node building within a grid environment |
US7881961B2 (en) * | 2005-02-10 | 2011-02-01 | International Business Machines Corporation | Method and system of managing a business process |
JP2006309691A (ja) * | 2005-03-28 | 2006-11-09 | Hitachi Ltd | リソース割当管理装置およびリソース割当方法 |
JP2006277458A (ja) * | 2005-03-30 | 2006-10-12 | Hitachi Ltd | リソース割当管理装置およびリソース割当方法 |
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 |
US7945251B2 (en) * | 2006-03-27 | 2011-05-17 | Sony Ericsson Mobile Communications Ab | Locating a service device for a portable communication device |
US20070233843A1 (en) * | 2006-03-30 | 2007-10-04 | Gabriele Frey-Ganzel | Method and system for an improved work-load balancing within a cluster |
US20080010642A1 (en) * | 2006-06-30 | 2008-01-10 | Maclellan Scot | Method, system and computer program for scheduling execution of work units with monitoring of progress thereof |
JP5011927B2 (ja) * | 2006-10-02 | 2012-08-29 | セイコーエプソン株式会社 | アプリケーション実行システム、コンピュータ、アプリケーション実行システムのアプリケーション実行方法およびプログラム |
US7730171B2 (en) * | 2007-05-08 | 2010-06-01 | Teradata Us, Inc. | Decoupled logical and physical data storage within a database management system |
EP2026500B1 (en) * | 2007-08-13 | 2010-01-06 | Accenture Global Services GmbH | Message sequence management of enterprise based correlated events |
US7882399B2 (en) * | 2007-12-13 | 2011-02-01 | International Business Machines Corporation | Intelligent job functionality |
US20090241118A1 (en) * | 2008-03-20 | 2009-09-24 | American Express Travel Related Services Company, Inc. | System and method for processing interface requests in batch |
US20120179793A1 (en) * | 2009-06-29 | 2012-07-12 | Nokia Corporation | Resource Allocation |
JP5361659B2 (ja) | 2009-10-27 | 2013-12-04 | キヤノン株式会社 | 情報処理システム、情報処理システム制御方法、およびそのプログラム |
US8504556B1 (en) | 2010-03-08 | 2013-08-06 | Amazon Technologies, Inc. | System and method for diminishing workload imbalance across multiple database systems |
JP5712694B2 (ja) * | 2010-03-24 | 2015-05-07 | 富士ゼロックス株式会社 | 計算資源制御装置及び計算資源制御プログラム |
US8612578B2 (en) | 2011-03-10 | 2013-12-17 | International Business Machines Corporation | Forecast-less service capacity management |
JP5652281B2 (ja) * | 2011-03-18 | 2015-01-14 | 富士通株式会社 | 業務処理サーバ、業務処理方法及び業務処理プログラム |
WO2013117225A1 (en) * | 2012-02-09 | 2013-08-15 | Telefonaktiebolaget L M Ericsson (Publ) | Distributed mechanism for minimizing resource consumption |
JP5855057B2 (ja) * | 2013-09-04 | 2016-02-09 | キヤノン株式会社 | 情報処理システム、システム、情報処理システム制御方法、およびそのプログラム |
JP5885818B2 (ja) * | 2014-12-16 | 2016-03-16 | キヤノン株式会社 | 情報処理システム、情報処理システム制御方法、およびそのプログラム |
CN110352590A (zh) * | 2018-02-05 | 2019-10-18 | 思科技术公司 | 具有多个插槽的可配置存储服务器 |
US11886437B2 (en) | 2021-12-08 | 2024-01-30 | International Business Machines Corporation | Reduced latency query processing |
US12013870B2 (en) | 2022-07-29 | 2024-06-18 | International Business Machines Corporation | Distribution of workloads among online analytics processing systems |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4700340A (en) * | 1986-05-20 | 1987-10-13 | American Telephone And Telegraph Company, At&T Bell Laboratories | Method and apparatus for providing variable reliability in a telecommunication switching system |
DE69030340T2 (de) * | 1989-02-24 | 1997-11-20 | Digital Equipment Corp | Makler für die Auswahl von Rechnernetzwerkservern |
US5249290A (en) * | 1991-02-22 | 1993-09-28 | At&T Bell Laboratories | Method of and apparatus for operating a client/server computer network |
US5223897A (en) * | 1991-09-05 | 1993-06-29 | Xerox Corporation | Tri-level imaging apparatus using different electrostatic targets for cycle up and runtime |
US5504894A (en) * | 1992-04-30 | 1996-04-02 | International Business Machines Corporation | Workload manager for achieving transaction class response time goals in a multiprocessing system |
-
1994
- 1994-07-25 EP EP94111579A patent/EP0694837A1/en not_active Withdrawn
-
1995
- 1995-06-13 JP JP14588595A patent/JP3610120B2/ja not_active Expired - Lifetime
-
1997
- 1997-05-21 US US08/861,188 patent/US5799173A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5799173A (en) | 1998-08-25 |
JPH0844576A (ja) | 1996-02-16 |
EP0694837A1 (en) | 1996-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3610120B2 (ja) | トランザクション・システム内のサーバの数を動的に制御する方法 | |
Hamscher et al. | Evaluation of job-scheduling strategies for grid computing | |
US5875329A (en) | Intelligent batching of distributed messages | |
JP3121584B2 (ja) | 多重システム・クラスタ内のサーバの数を制御する方法及び装置 | |
US6985937B1 (en) | Dynamically modifying the resources of a virtual server | |
EP1672498B1 (en) | Control interfaces for distributed system applications | |
US7080378B1 (en) | Workload balancing using dynamically allocated virtual servers | |
US7773522B2 (en) | Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems | |
US7996593B2 (en) | Interrupt handling using simultaneous multi-threading | |
US7328294B2 (en) | Methods and apparatus for distributing interrupts | |
JPH113232A (ja) | 2レベル・マルチスレッド・システムにおける信号の生成および配信 | |
WO2003025745A2 (en) | System and method for performing power management on a distributed system | |
GB2532834A (en) | A method and system for scalable job processing | |
US6993764B2 (en) | Buffered coscheduling for parallel programming and enhanced fault tolerance | |
US10523746B2 (en) | Coexistence of a synchronous architecture and an asynchronous architecture in a server | |
US20030033345A1 (en) | Thread-based methods and systems for using the idle processing power of one or more networked computers to solve complex scientific problems | |
Bucur et al. | The influence of the structure and sizes of jobs on the performance of co-allocation | |
US6704766B1 (en) | Method and apparatus for dynamically controlling the execution of a request handler on a processor resource | |
CN117472570A (zh) | 用于调度加速器资源的方法、装置、电子设备和介质 | |
EP1234230B1 (en) | Thread-based methods and systems for using the idle processing power of one or more networked computers to solve complex scientific problems | |
Saphir et al. | Job management requirements for NAS parallel systems and clusters | |
CA2316643C (en) | Fair assignment of processing resources to queued requests | |
Kalogeraki et al. | Dynamic migration algorithms for distributed object systems | |
Evers et al. | A literature study on scheduling in distributed systems | |
JP2001034583A (ja) | 分散オブジェクト性能管理機構 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040323 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040517 |
|
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: 20041005 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041018 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20031215 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071022 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091022 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091022 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101022 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101022 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111022 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121022 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121022 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term |