JP4432733B2 - Cooperation processing apparatus and system - Google Patents
Cooperation processing apparatus and system Download PDFInfo
- Publication number
- JP4432733B2 JP4432733B2 JP2004321445A JP2004321445A JP4432733B2 JP 4432733 B2 JP4432733 B2 JP 4432733B2 JP 2004321445 A JP2004321445 A JP 2004321445A JP 2004321445 A JP2004321445 A JP 2004321445A JP 4432733 B2 JP4432733 B2 JP 4432733B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- processing result
- unit
- identification information
- data
- 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
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は複数のデータ処理コンポーネントを連携させて一連の処理を行わせる分散データ処理技術に関する。 The present invention relates to a distributed data processing technique in which a plurality of data processing components are linked to perform a series of processing.
複数のデータ処理コンポーネントを連携させて一連の処理を実行させる分散データ処理方法として、例えば特許文献1に示される方法がある。この方法では、結合処理の手続き情報および中間結果情報を転送情報単位としてネットワーク内を巡回させ、一方各部分処理を実行して結果を保持する各ノードはネットワークから転送情報単位を取得し、この転送情報単位の手続き情報に基づき、当該ノードの保持する部分処理結果と該取得した中間結果情報とを用いて、結合処理の一部を行い、この結果により中間結果情報を更新し、手続き情報とともにネットワークに送出する。
As a distributed data processing method for executing a series of processes in cooperation with a plurality of data processing components, for example, there is a method disclosed in
また、特許文献2には、ウェブサーバ上の原料ファイルを処理サーバに処理させ、複数の処理サーバの処理を連携させることで、複雑な加工を施した処理結果を求めるシステムが開示されている。このシステムでは、ウェブブラウザは、原料ファイルを手続名、パラメータ、コンピュータ名等で修飾した仮想URL(Uniform Resource Locator)によりリクエストを送出する。複数の部分処理を組み合わせた複合的な処理は、部分処理の仮想URLに対し引数とする他の部分処理の仮想URLを組み込む形で表現しており、各処理サーバは、自分宛の仮想URLを解釈してその中に含まれる自分が処理できない引数(仮想URL)が示すリクエストをそれを処理できる処理サーバにHTTP(Hypertext Transfer Protocol)で転送してその処理結果を取得し、それを自分の処理に利用する。各処理サーバは、自分が実行した部分処理の処理結果(スナップショット)を、その処理の元になった仮想URLに対応づけてテーブルに保持する。そして、処理サーバは、送られてきた自分宛の仮想URLに対応するスナップショットが自装置内のテーブルにあるかどうかを調べ、あれば更にその有効性を調べ、有効であればその仮想URLの示す処理を実行せずにそのスナップショットを処理結果として返す。ここで有効性の検査では、スナップショットの作成時刻が、そのスナップショット作成の原料ファイルの更新日時より新しい場合に、有効と判断する。スナップショットの作成には、他の処理サーバの部分処理の処理結果が引数として用いられている場合には、他の処理サーバに対して引数の部分処理のスナップショットの有効性を問い合わせる。ある部分処理の引数のスナップショットのなかに1つでも無効なものがあれば、その部分処理のスナップショットが無効となる。スナップショットが無効であれば、その部分処理は再実行する。ただし、この場合、その部分処理の引数のスナップショットの中に有効なものがあれば、その引数については処理の再実行は行わず、そのスナップショットを利用する。
特許文献1の方法では、ネットワーク内に巡回させる転送処理単位に中間処理結果のデータ実体が含まれており、ネットワーク負荷が大きいという問題がある。またこの方法では、ノードに転送処理単位が回ってくるごとに、そのノードに対し転送処理単位のデータのコピーが発生する。また、過去に行った処理とまったく同じ処理でも、そのような処理がプログラムに記述されていればそれを繰り返し実行するので、効率が悪い。
In the method of
特許文献2の方式では、各処理サーバが、自分の行った部分処理のスナップショットを保持し、再利用しているので、過去に行った処理とまったく同じ処理を繰り返すという無駄は生じにくい。しかし、この方法では、処理サーバは、処理が終わった場合、その処理の結果を利用する処理サーバに対し、その処理結果の実体データを送信している。このため、スナップショット利用により各処理サーバの処理負担を低減することはできても、ネットワークの負荷の低減効果は少ない。
In the method of
また、特許文献2の方式では、ある処理を示す仮想URL内に、その処理の引数となる別の処理の仮想URLを入れ子で記述することで、複数の処理サーバでの処理を連携しているが、このような入れ子方式の記述形態では、処理の繰り返しを表現することが困難である。
Further, in the method of
また、複数の処理サーバを連携させた、例えばパイプライン処理の連携処理を実行する場合、処理サーバの処理結果の実体データを次の処理サーバに渡した時点から該次の処理サーバの処理を開始したのでは、全体の処理に時間を要するという問題がある。この問題は、1つのコンピュータ装置上の複数のデータ処理コンポーネントを連携させる場合にも生じることである。なお、UNIX(登録商標)等のOS(オペレーティングシステム)が提供するパイプライン処理機能は、パイプラインを構成する各プログラムをOSが最初に起動し、それらプログラムの標準出力ストリームをその次のプログラムの標準入力ストリームに割り当てることで、連携処理を実現しているので、上述のような問題がない。しかし、そのように各プログラムの処理結果を入出力のストリームを介して受け渡したのでは、各プログラムごとの処理結果がコンピュータ装置上に残らないため、デバッグなどの様に、途中の処理結果を調べたい場合には不十分であった。 In addition, when executing linked processing of, for example, pipeline processing in which a plurality of processing servers are linked, the processing of the next processing server is started from the time when the entity data of the processing result of the processing server is passed to the next processing server However, there is a problem that the entire process takes time. This problem also occurs when a plurality of data processing components on one computer apparatus are linked. The pipeline processing function provided by an OS (operating system) such as UNIX (registered trademark) starts up each program constituting the pipeline first, and the standard output stream of the program is set to the next program. Since the cooperation process is realized by assigning the standard input stream, there is no problem as described above. However, if the processing results of each program are passed through the input / output stream in this way, the processing results for each program do not remain on the computer device, so the intermediate processing results, such as debugging, are examined. It was not enough if you wanted to.
本発明は、上記従来技術の問題の少なくとも1つを解決するものである。 The present invention solves at least one of the above problems of the prior art.
本発明の1つの側面では、各々が所定の単位処理を実行する複数のデータ処理部を連携動作させることで、要求された処理を実行する連携処理装置を提供する。この連携処理装置は、前記複数のデータ処理部の処理結果データを記憶するための共有記憶部と、前記データ処理部から前記共有記憶部への処理結果データの登録要求を受けた場合に、その処理結果データに対して一意な処理結果識別情報を付与し、付与した処理結果識別情報をその処理結果データと対応づけて前記共有記憶部に登録し、その処理結果識別情報を前記登録要求に対する返り値として前記データ処理部に返す処理結果登録手段と、前記データ処理部から処理結果識別情報を指定した取得要求を受けた場合に、その処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返す処理結果提供手段と、を備え、前記各データ処理部は、処理結果識別情報を処理パラメータとして含む起動要求により起動された場合、その処理結果識別情報を含む取得要求を前記処理結果提供手段に送ってその処理結果識別情報に対応する処理結果データを受け取り、その処理結果データを用いて自らの単位処理を実行すると共に、その単位処理により得られる処理結果データを記憶するために前記処理結果登録手段に対して登録要求を行い、前記連携処理装置は、複数の単位処理を含んだ処理手順の実行要求をクライアント装置から受け取り、その処理手順に記述された各単位処理に対応するデータ処理部を順に起動して各々の単位処理を実行させる処理制御部、を更に備え、前記各データ処理部は、前記登録要求に対して前記処理結果登録手段から受け取った処理結果識別情報を前記処理制御部に返し、前記処理制御部は、前記データ処理部から返された処理結果識別情報を、そのデータ処理部の処理結果データを利用して単位処理を行う他のデータ処理部に対して処理パラメータとして渡し、前記連携処理装置は、クライアント装置からの処理手順の実行要求に対して一意な利用可能範囲識別情報を付与し、付与した利用可能範囲識別情報を前記処理制御部に渡す利用可能範囲識別情報付与手段と、各利用可能範囲識別情報に対応する1以上の処理結果識別情報を保持する利用可能範囲情報管理手段と、を更に備え、前記処理制御部は、前記利用可能範囲識別情報付与手段から付与された利用可能範囲識別情報を、前記処理手順の中で起動する前記データ処理部に対して渡し、前記データ処理部は、前記処理制御部から渡された利用可能範囲識別情報を前記処理結果登録手段に対する登録要求の際に前記処理結果登録手段に渡し、前記処理結果登録手段は、前記データ処理部から登録要求の際に渡された利用可能範囲識別情報を、その登録要求の対象である処理結果データに対応する処理結果識別情報と対応づけて前記利用可能範囲情報管理手段に登録し、前記データ処理部は、前記処理制御部から渡された利用可能範囲識別情報を前記処理結果提供手段に対する取得要求の際に前記処理結果提供手段に渡し、前記処理結果提供手段は、前記データ処理部から取得要求に係る処理結果識別情報が、その取得要求の際に渡された利用可能範囲識別情報に対応づけて前記利用可能範囲情報管理手段に保持されているか否かを調べ、保持されている場合にのみその処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返す。 In one aspect of the present invention, there is provided a cooperative processing apparatus that executes a requested process by causing a plurality of data processing units, each executing a predetermined unit process, to perform a cooperative operation. The cooperative processing apparatus, when receiving a registration request for processing result data from the data processing unit to the shared storage unit and a shared storage unit for storing the processing result data of the plurality of data processing units, Unique processing result identification information is assigned to the processing result data, the assigned processing result identification information is registered in the shared storage unit in association with the processing result data, and the processing result identification information is returned to the registration request. Processing result registering means for returning to the data processing unit as a value, and when receiving an acquisition request designating processing result identification information from the data processing unit, processing result data corresponding to the processing result identification information is sent to the shared storage unit Processing result providing means for acquiring from the data processing unit and returning it to the data processing unit, each data processing unit responding to an activation request including processing result identification information as a processing parameter. Is sent to the processing result providing means to receive the processing result data corresponding to the processing result identification information, and the unit processing is performed using the processing result data. and executes, have rows registration request to the processing result registration means for storing the processing result data obtained by the unit process, the cooperative processing apparatus, the execution request of inclusive procedure a plurality of unit processes And a processing control unit that sequentially activates the data processing unit corresponding to each unit process described in the processing procedure to execute each unit process, and each data processing unit includes: In response to the registration request, the processing result identification information received from the processing result registration unit is returned to the processing control unit, and the processing control unit returns from the data processing unit. The processing result identification information is passed as a processing parameter to another data processing unit that performs unit processing using the processing result data of the data processing unit. One or more corresponding to each usable range identification information and usable range identification information giving means for giving unique usable range identification information to the execution request and passing the given usable range identification information to the processing control unit And an available range information management means for holding the processing result identification information, wherein the processing control unit uses the available range identification information given from the available range identification information giving means in the processing procedure. The data processing unit registers the available range identification information passed from the processing control unit with the processing result registration unit. The processing result registration unit passes the usable range identification information passed from the data processing unit to the processing result data that is the target of the registration request. The data processing unit registers the usable range identification information passed from the processing control unit with the acquisition request to the processing result providing unit in association with the corresponding processing result identification information. The processing result providing means associates the processing result identification information related to the acquisition request from the data processing unit with the usable range identification information passed at the time of the acquisition request. It is checked whether or not it is held in the available range information management means, and if it is held, processing result data corresponding to the processing result identification information is acquired from the shared storage unit Return to the data processing unit Te.
本発明の別の側面では、ネットワークを介して接続された複数のホスト装置を連携動作させることで、要求された処理を実行する連携処理システムを提供する。このシステムでは、各ホスト装置は、各々が単位処理を実行する1以上のデータ処理部と、前記データ処理部の処理結果データを記憶するための共有記憶部と、前記データ処理部から前記共有記憶部への処理結果データの登録要求を受けた場合に、その処理結果データに対して一意な処理結果識別情報を付与し、付与した処理結果識別情報をその処理結果データと対応づけて前記共有記憶部に登録し、その処理結果識別情報を前記登録要求に対する返り値として前記データ処理部に返す処理結果登録手段と、前記データ処理部から処理結果識別情報を指定した取得要求を受けた場合に、その処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返す処理結果提供手段と、を備え、前記各データ処理部は、処理結果識別情報を処理パラメータとして含む起動要求により起動された場合、その処理結果識別情報を含む取得要求を前記処理結果提供手段に送ってその処理結果識別情報に対応する処理結果データを受け取り、その処理結果データを用いて自らの単位処理を実行すると共に、その単位処理により得られる処理結果データを記憶するために前記処理結果登録手段に対して登録要求を行い、当該データ処理部が他のホスト装置から呼び出されたものである場合はその登録要求に対する返り値として受け取った処理結果識別情報を呼出元である該他のホスト装置に返し、前記処理結果提供手段は、前記データ処理部からの取得要求に指定された処理結果識別情報に対応する処理結果データが自ホスト装置の前記共有記憶部にない場合に、その処理結果識別情報が示すホスト装置の共有記憶部に対してその処理結果識別情報を伴う取得要求を行い、この取得要求に対してその共有記憶部から返されてきた処理結果データをそのデータ処理部に渡すと共に、その処理結果データをその処理結果識別情報と対応づけて自ホスト装置の前記共有記憶部に登録し、前記複数のホスト装置は、前記データ処理部の一つとして、複数の単位処理を含んだ処理手順の実行を制御する処理制御部を備え、ホスト装置内の複数のデータ処理部のうちこの処理制御部のみが、他のホスト装置内のデータ処理部に対する起動要求を発し、前記ホスト装置の処理制御部は、他のホスト装置の複数のデータ処理部のうちの前記処理制御部にのみ起動要求を発することができ、前記複数のホスト装置は、クライアント装置からの処理手順の実行要求を受け付けるポータルホスト装置と、それ以外のリモートホスト装置とに分類され、前記ポータルホスト装置は、クライアント装置からの処理手順の実行要求に対して一意な利用可能範囲識別情報を付与し、付与した利用可能範囲識別情報を該ポータルホスト装置の処理制御部に渡す利用可能範囲識別情報付与手段と、各利用可能範囲識別情報に対応する1以上の処理結果識別情報を保持する利用可能範囲情報管理手段と、を備え、該ポータルホスト装置の前記処理制御部は、前記利用可能範囲識別情報付与手段から付与された利用可能範囲識別情報を、前記処理手順の中で起動する自ホスト装置内の前記データ処理部に対して渡すと共に、その処理手順の中で他のホスト装置に対する第2の処理手順の実行指示が含まれる場合は、該他のホスト装置の処理制御部に対し、該第2の処理手順の実行要求をその利用可能範囲識別情報と共に渡し、前記リモートホスト装置は、各利用可能範囲識別情報に対応する1以上の処理結果識別情報を保持する利用可能範囲情報管理手段と、他のホスト装置から処理手順の実行要求を受けた場合に、その実行要求と共に受け取った利用可能範囲識別情報を当該ホスト装置内の前記利用可能範囲情報管理手段に登録する手段と、を備え、該リモートホスト装置の前記処理制御部は、前記他のホスト装置からの処理手順の実行要求と共に受け取った利用可能範囲識別情報を、その処理手順の中で起動する自ホスト装置内の前記データ処理部に対して渡すと共に、その処理手順の中で他のホスト装置に対する第2の処理手順の実行指示が含まれる場合は、該他のホスト装置の処理制御部に対し、該第2の処理手順の実行要求をその利用可能範囲識別情報と共に渡し、前記各ホスト装置の前記データ処理部は、自ホスト装置の前記処理制御部から渡された利用可能範囲識別情報を自ホスト装置の前記処理結果登録手段に対する登録要求の際に前記処理結果登録手段に渡し、該各ホスト装置の前記処理結果登録手段は、自ホスト装置の前記データ処理部から登録要求の際に渡された利用可能範囲識別情報を、その登録要求の対象である処理結果データに対応する処理結果識別情報と対応づけて自ホスト装置の前記利用可能範囲情報管理手段に登録し、前記各ホスト装置の前記データ処理部は、自ホスト装置の前記処理制御部から渡された利用可能範囲識別情報を自ホスト装置の前記処理結果提供手段に対する取得要求の際に前記処理結果提供手段に渡し、前記各ホスト装置の前記処理結果提供手段は、自ホスト装置の前記データ処理部から取得要求に係る処理結果識別情報が自ホスト装置の前記共有記憶部にある場合には、その処理結果識別情報が取得要求と共に渡された利用可能範囲識別情報に対応づけて自ホスト装置の前記利用可能範囲情報管理手段に保持されているか否かを調べ、保持されている場合にのみその処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返し、自ホスト装置の前記データ処理部から取得要求に係る処理結果識別情報が自ホスト装置の前記共有記憶部にない場合には、その処理結果識別情報が示すホスト装置の共有記憶部に対してその処理結果識別情報とその利用可能範囲識別情報とを伴う取得要求を行い、前記各ホスト装置の前記処理結果提供手段は、他のホスト装置の前記処理結果提供手段から処理結果識別情報と利用可能範囲識別情報とを伴う取得要求を受けた場合、その処理結果識別情報が自ホスト装置内の前記利用可能範囲管理手段にその利用可能範囲識別情報と対応づけて保持されているか否かを調べ、保持されている場合にのみその処理結果識別情報に対応する処理結果データを自ホスト装置の前記共有記憶部から取得して前記他の装置の前記処理結果提供手段に返す。 In another aspect of the present invention, a cooperative processing system that executes a requested process by cooperatively operating a plurality of host devices connected via a network is provided. In this system, each host device includes at least one data processing unit that executes unit processing, a shared storage unit for storing processing result data of the data processing unit, and the shared storage from the data processing unit. When the processing result data registration request is received, the processing result data is given unique processing result identification information, and the given processing result identification information is associated with the processing result data in the shared storage. Processing result registration means for returning the processing result identification information to the data processing unit as a return value for the registration request, and when receiving an acquisition request designating processing result identification information from the data processing unit, Processing result providing means for acquiring processing result data corresponding to the processing result identification information from the shared storage unit and returning the processing result data to the data processing unit, and each data processing unit When activated by an activation request including processing result identification information as a processing parameter, an acquisition request including the processing result identification information is sent to the processing result providing means to receive processing result data corresponding to the processing result identification information, The process result data is used to execute its own unit process, and in order to store the process result data obtained by the unit process, a registration request is made to the process result registration unit, and the data processing unit If it is called from the host device, the processing result identification information received as a return value for the registration request is returned to the other host device that is the call source, and the processing result providing means is provided by the data processing unit. If there is no processing result data corresponding to the processing result identification information specified in the acquisition request in the shared storage unit of the local host device, An acquisition request with the processing result identification information is made to the shared storage unit of the host device indicated by the processing result identification information, and the processing result data returned from the shared storage unit in response to the acquisition request is the data processing unit And the processing result data is associated with the processing result identification information and registered in the shared storage unit of the own host device, and the plurality of host devices serve as a plurality of unit processes as one of the data processing units. Including a processing control unit that controls the execution of the processing procedure including: only the processing control unit out of a plurality of data processing units in the host device issues a startup request to the data processing unit in the other host device, The processing control unit of the host device can issue an activation request only to the processing control unit among the plurality of data processing units of other host devices. A portal host device that accepts a processing procedure execution request from a client device and other remote host devices, and the portal host device has a unique usable range for a processing procedure execution request from a client device. An available range identification information adding unit that assigns identification information and passes the assigned available range identification information to the processing control unit of the portal host device, and at least one processing result identification information corresponding to each available range identification information. A usable range information management means for holding, wherein the processing control unit of the portal host device activates the usable range identification information given from the usable range identification information giving means in the processing procedure. To the data processing unit in its own host device and execute the second processing procedure for another host device in the processing procedure Is included, the execution request for the second processing procedure is passed along with the available range identification information to the processing control unit of the other host device, and the remote host device receives each available range identification information. When receiving an execution request for a processing procedure from another host device, the available range identification information received together with the execution request is stored in the available range information management means for holding one or more processing result identification information corresponding to Means for registering in the usable range information management means in the host device, and the processing control unit of the remote host device receives the usable range identification received together with the execution request of the processing procedure from the other host device The information is passed to the data processing unit in the host device that is activated in the processing procedure, and the second processing for the other host device is performed in the processing procedure. When a sequential execution instruction is included, the execution request of the second processing procedure is passed along with the available range identification information to the processing control unit of the other host device, and the data processing unit of each host device Passes the usable range identification information passed from the processing control unit of the own host device to the processing result registration unit at the time of a registration request to the processing result registration unit of the own host device, and the processing of each host device The result registering means associates the usable range identification information passed at the time of the registration request from the data processing unit of the own host device with the processing result identification information corresponding to the processing result data that is the target of the registration request. The data processing unit of each host device registers the usable range identification information passed from the processing control unit of its own host device with its own host device. When the acquisition request to the processing result providing unit of the host device is passed to the processing result providing unit, the processing result providing unit of each host device identifies the processing result related to the acquisition request from the data processing unit of the own host device. When the information is in the shared storage unit of the own host device, the processing result identification information is stored in the available range information management unit of the own host device in association with the available range identification information passed with the acquisition request. The processing result data corresponding to the processing result identification information is acquired from the shared storage unit and returned to the data processing unit only when it is held, and the data processing unit of the own host device If the processing result identification information related to the acquisition request is not in the shared storage unit of the own host device, the shared storage unit of the host device indicated by the processing result identification information The processing result providing unit of each of the host devices can use the processing result identification information from the processing result providing unit of another host device. When receiving an acquisition request with range identification information, check whether the processing result identification information is held in the available range management means in the host device in association with the available range identification information, Only when it is held, the processing result data corresponding to the processing result identification information is acquired from the shared storage unit of the own host device and returned to the processing result providing means of the other device .
更に別の側面では、連携処理システムを構成する各ホスト装置は、各々が単位処理を実行する1以上のデータ処理部と、前記データ処理部の処理結果データを記憶するための共有記憶部と、前記データ処理部から前記共有記憶部への処理結果データの登録要求を受けた場合に、その処理結果データに対して一意な処理結果識別情報を付与し、付与した処理結果識別情報をその処理結果データと対応づけて前記共有記憶部に登録し、その処理結果識別情報を前記登録要求に対する返り値として前記データ処理部に返す処理結果登録手段と、前記データ処理部から処理結果識別情報を指定した取得要求を受けた場合に、その処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返す処理結果提供手段と、を備え、前記各データ処理部は、処理結果識別情報を処理パラメータとして含む起動要求により起動された場合、その処理結果識別情報を含む取得要求を前記処理結果提供手段に送ってその処理結果識別情報に対応する処理結果データを受け取り、その処理結果データを用いて自らの単位処理を実行すると共に、その単位処理により得られる処理結果データを記憶するために前記処理結果登録手段に対して登録要求を行い、当該データ処理部が他のホスト装置から呼び出されたものである場合はその登録要求に対する返り値として受け取った処理結果識別情報とそれに対応して前記共有記憶部に登録された処理結果データを呼出元である該他のホスト装置に返し、前記各データ処理部は、自らの単位処理の実行の中の部分処理のために他のホスト装置のデータ処理部を呼び出した場合、その呼出に対して該他のホスト装置のデータ処理部から返される処理結果識別情報と処理結果データとを前記共有記憶部に登録し、前記複数のホスト装置は、前記データ処理部の一つとして、複数の単位処理を含んだ処理手順の実行を制御する処理制御部を備え、ホスト装置内の複数のデータ処理部のうちこの処理制御部のみが、他のホスト装置内のデータ処理部に対する起動要求を発し、前記ホスト装置の処理制御部は、他のホスト装置の複数のデータ処理部のうちの前記処理制御部にのみ起動要求を発することができ、前記複数のホスト装置は、クライアント装置からの処理手順の実行要求を受け付けるポータルホスト装置と、それ以外のリモートホスト装置とに分類され、前記ポータルホスト装置は、クライアント装置からの処理手順の実行要求に対して一意な利用可能範囲識別情報を付与し、付与した利用可能範囲識別情報を該ポータルホスト装置の処理制御部に渡す利用可能範囲識別情報付与手段と、各利用可能範囲識別情報に対応する1以上の処理結果識別情報を保持する利用可能範囲情報管理手段と、を備え、該ポータルホスト装置の前記処理制御部は、前記利用可能範囲識別情報付与手段から付与された利用可能範囲識別情報を、前記処理手順の中で起動する自ホスト装置内の前記データ処理部に対して渡すと共に、その処理手順の中で他のホスト装置に対する第2の処理手順の実行指示が含まれる場合は、該他のホスト装置の処理制御部に対し、該第2の処理手順の実行要求をその利用可能範囲識別情報と共に渡し、前記リモートホスト装置は、各利用可能範囲識別情報に対応する1以上の処理結果識別情報を保持する利用可能範囲情報管理手段と、他のホスト装置から処理手順の実行要求を受けた場合に、その実行要求と共に受け取った利用可能範囲識別情報を当該ホスト装置内の前記利用可能範囲情報管理手段に登録する手段と、を備え、該リモートホスト装置の前記処理制御部は、前記他のホスト装置からの処理手順の実行要求と共に受け取った利用可能範囲識別情報を、その処理手順の中で起動する自ホスト装置内の前記データ処理部に対して渡すと共に、その処理手順の中で他のホスト装置に対する第2の処理手順の実行指示が含まれる場合は、該他のホスト装置の処理制御部に対し、該第2の処理手順の実行要求をその利用可能範囲識別情報と共に渡し、前記各ホスト装置の前記データ処理部は、自ホスト装置の前記処理制御部から渡された利用可能範囲識別情報を自ホスト装置の前記処理結果登録手段に対する登録要求の際に前記処理結果登録手段に渡し、該各ホスト装置の前記処理結果登録手段は、自ホスト装置の前記データ処理部から登録要求の際に渡された利用可能範囲識別情報を、その登録要求の対象である処理結果データに対応する処理結果識別情報と対応づけて自ホスト装置の前記利用可能範囲情報管理手段に登録し、前記各ホスト装置の前記データ処理部は、自ホスト装置の前記処理制御部から渡された利用可能範囲識別情報を自ホスト装置の前記処理結果提供手段に対する取得要求の際に前記処理結果提供手段に渡し、前記各ホスト装置の前記処理結果提供手段は、自ホスト装置の前記データ処理部から取得要求に係る処理結果識別情報が自ホスト装置の前記共有記憶部にある場合には、その処理結果識別情報が取得要求と共に渡された利用可能範囲識別情報に対応づけて自ホスト装置の前記利用可能範囲情報管理手段に保持されているか否かを調べ、保持されている場合にのみその処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返し、自ホスト装置の前記データ処理部から取得要求に係る処理結果識別情報が自ホスト装置の前記共有記憶部にない場合には、その処理結果識別情報が示すホスト装置の共有記憶部に対してその処理結果識別情報とその利用可能範囲識別情報とを伴う取得要求を行い、前記各ホスト装置の前記処理結果提供手段は、他のホスト装置の前記処理結果提供手段から処理結果識別情報と利用可能範囲識別情報とを伴う取得要求を受けた場合、その処理結果識別情報が自ホスト装置内の前記利用可能範囲管理手段にその利用可能範囲識別情報と対応づけて保持されているか否かを調べ、保持されている場合にのみその処理結果識別情報に対応する処理結果データを自ホスト装置の前記共有記憶部から取得して前記他の装置の前記処理結果提供手段に返す。 In yet another aspect, each host device constituting the cooperative processing system includes one or more data processing units each executing unit processing, a shared storage unit for storing processing result data of the data processing unit, When a registration request for processing result data from the data processing unit to the shared storage unit is received, unique processing result identification information is given to the processing result data, and the given processing result identification information is used as the processing result. Processing result registration means for registering the processing result identification information in association with the data and returning the processing result identification information to the data processing unit as a return value for the registration request; and specifying the processing result identification information from the data processing unit Processing result providing means for acquiring processing result data corresponding to the processing result identification information from the shared storage unit and returning it to the data processing unit when receiving an acquisition request; Each of the data processing units, when activated by an activation request including processing result identification information as a processing parameter, sends an acquisition request including the processing result identification information to the processing result providing means to the processing result identification information Receives corresponding processing result data, executes its own unit processing using the processing result data, and makes a registration request to the processing result registration means to store the processing result data obtained by the unit processing If the data processing unit is called from another host device, the processing result identification information received as a return value for the registration request and the corresponding processing result data registered in the shared storage unit are called up. Returning to the other host device that is the original, each data processing unit transmits another host for partial processing in the execution of its unit processing. If you call a data processing unit of the winding device, and registers the processing result identification information and the processing result data returned from the data processing unit of the other of the host device for that call to the shared storage unit, said plurality of host The apparatus includes a processing control unit that controls execution of a processing procedure including a plurality of unit processes as one of the data processing units, and only the processing control unit among the plurality of data processing units in the host device An activation request is issued to a data processing unit in another host device, and the processing control unit of the host device can issue an activation request only to the processing control unit among a plurality of data processing units of the other host device. The plurality of host devices are classified into a portal host device that receives a processing procedure execution request from a client device, and a remote host device other than the portal host device, and the portal host The device assigns unique usable range identification information to the processing procedure execution request from the client device, and assigns usable range identification information that passes the assigned usable range identification information to the processing control unit of the portal host device And usable range information management means for holding one or more processing result identification information corresponding to each usable range identification information, and the processing control unit of the portal host device includes the usable range identification information. The usable range identification information given from the granting unit is passed to the data processing unit in the own host device activated in the processing procedure, and the second information for the other host device in the processing procedure is given. If the execution instruction of the processing procedure is included, the execution request of the second processing procedure is passed along with the usable range identification information to the processing control unit of the other host device. When the remote host device receives a request for execution of a processing procedure from another host device and a usable range information management unit that holds one or more processing result identification information corresponding to each usable range identification information, the remote host device executes the processing Means for registering the usable range identification information received together with the request in the usable range information management means in the host device, and the processing control unit of the remote host device performs processing from the other host device. The usable range identification information received together with the execution request of the procedure is passed to the data processing unit in the own host device activated in the processing procedure, and the second information for the other host device is included in the processing procedure. When an instruction to execute this processing procedure is included, the execution request for the second processing procedure is shared with the usable range identification information to the processing control unit of the other host device. The data processing unit of each host device passes the usable range identification information passed from the processing control unit of the host device to the processing result registration at the time of a registration request to the processing result registration unit of the host device. The processing result registration unit of each host device passes the available range identification information passed at the time of the registration request from the data processing unit of the own host device to the processing result data that is the target of the registration request. Registered in the usable range information management means of the own host device in association with the processing result identification information corresponding to, and the data processing unit of each host device is used by the processing control unit of the own host device The possible range identification information is passed to the processing result providing means at the time of an acquisition request to the processing result providing means of the own host device, and the processing result providing means of each host device When the processing result identification information related to the acquisition request from the data processing unit of the host device is in the shared storage unit of the own host device, the processing result identification information corresponds to the usable range identification information passed along with the acquisition request. Then, it is checked whether or not it is held in the usable range information management means of its own host device, and if it is held, processing result data corresponding to the processing result identification information is acquired from the shared storage unit. If the processing result identification information related to the acquisition request from the data processing unit of the own host device is not in the shared storage unit of the own host device, the host device sharing indicated by the processing result identification information is returned to the data processing unit An acquisition request with the processing result identification information and the usable range identification information is sent to the storage unit, and the processing result providing means of each host device transmits another host device. When the acquisition request accompanied with the processing result identification information and the usable range identification information is received from the processing result providing means, the processing result identification information is sent to the usable range management means in the own host device. It is checked whether or not it is held in correspondence with the information. Only when it is held, processing result data corresponding to the processing result identification information is acquired from the shared storage unit of the own host device, and the other device's Return to the processing result providing means .
以下、図面を参照して、本発明を実施するための最良の形態(以下「実施形態」と呼ぶ)について説明する。 The best mode for carrying out the present invention (hereinafter referred to as “embodiment”) will be described below with reference to the drawings.
[第1実施形態]
図1は、本発明の第1実施形態のシステム構成を示す図である。このシステムでは、1つのホスト(コンピュータ装置)1が、クライアント2(コンピュータ装置)に対するサービスを実行する。ホスト1は、例えばGroovy等のスクリプト言語で記述されたスクリプトを実行することにより、サービスのための処理を行う。サービスを要求するためにクライアント2がホスト1に対して送るリクエストは、例えば、スクリプトの名前(スクリプト名)と、そのスクリプトの引数とするパラメータとを含んだものとなる。
[First Embodiment]
FIG. 1 is a diagram showing a system configuration of the first embodiment of the present invention. In this system, one host (computer device) 1 executes a service for a client 2 (computer device). The
ホスト1内の処理機構には、処理制御部10、処理制御手順解釈部20、データ処理部30−1,30−2、原料データ記憶部40、処理結果記憶部50が含まれる。
The processing mechanism in the
データ処理部30−1,30−2は、クライアント2に対するサービスを実現するための、個々の単位的なデータ処理を実行するユニットである。単位的なデータ処理(以下「単位処理」という)の内容には特に限定はない。例えば、文書の要約、複数文書のマージ(併合)など、さまざまなものが考えられる。
The data processing units 30-1 and 30-2 are units that execute individual unit data processing for realizing a service for the
図示例では、データ処理部30−1,30−2は、Java(登録商標)等のクラスとして実装している。そのクラス名は、データ処理部30−1がComponent1、データ処理部30−2がComponent2である。データ処理部30−1はComponent1クラスのメソッドであるexecuteメソッド32−1を、データ処理部30−2はComponent2クラスのメソッドであるexecuteメソッド32−2をそれぞれ備えている。executeメソッド32−1,32−2は、それぞれ対応するデータ処理部30−1,30−2が提供する単位処理を実行するためのメソッドである。 In the illustrated example, the data processing units 30-1 and 30-2 are implemented as classes such as Java (registered trademark). The class name is Component1 for the data processing unit 30-1 and Component2 for the data processing unit 30-2. The data processing unit 30-1 includes an execute method 32-1 that is a method of the Component1 class, and the data processing unit 30-2 includes an execute method 32-2 that is a method of the Component2 class. The execute methods 32-1 and 32-2 are methods for executing unit processes provided by the corresponding data processing units 30-1 and 30-2, respectively.
図1には、データ処理部30−1,30−2の2つのデータ処理部を示したが、もっと多くのデータ処理部をホスト1に持たせることももちろん可能である。ホスト1の処理は、これらデータ処理部30−1,30−2,・・・の単位処理を連携させることにより実現される。以下、データ処理部30−1,30−2に固有のものでない、データ処理部一般に妥当する事柄については、データ処理部30−1,30−2,・・・をデータ処理部30と総称する。
Although FIG. 1 shows two data processing units 30-1 and 30-2, it is of course possible to provide the
処理制御部10は、それら複数のデータ処理部30の単位処理の連携を制御するユニットである。処理制御部10は、クライアント2からのリクエストに指定されたスクリプトを起動し、そのスクリプトに記述された各単位処理を実行するデータ処理部30を起動して処理を実行させる。このスクリプト実行の際、処理制御部10は、各データ処理部30の処理結果の受け渡しの制御を行う。
The
処理制御部10は、サーブレットプログラムとして実装することができる。図示例では、処理制御部10はJava(登録商標)等のクラスとして実装しており、そのクラス名はEvaluatorである。処理制御部10が実行する処理は、evalメソッド12として実装されている。クライアント2は、スクリプトとその実行に必要なパラメータを指定し、ホスト1のEvaluatorクラスのevalメソッド12を呼び出すことで、ホスト1に対して処理を要求することができる。
The
例えば、ホスト1をウェブアプリケーションサーバとして構成する場合、クライアント2からホスト1へのリクエストは、以下に例示するようなHTTPのURLの形とすることができる。
http://host.domain/Evaluator?method=eval&script=script1.groovy&arg1=aaa&arg2=bbb
… (1)
For example, when the
http: //host.domain/Evaluator? method = eval & script = script1.groovy & arg1 = aaa & arg2 = bbb
… (1)
このURL(1)において、hostはホスト1のホスト名であり、domainはホスト1が位置するドメインのドメイン名である。Evaluatorは、呼び出すべきEvaluatorクラスである。また、URLのクエリ部("?"以下の記述)には、呼び出すメソッド名eval、実行したいスクリプト名script1.groovy、及びそのスクリプトの2つの引数(パラメータ)aaa、bbbが記述されている。スクリプトが要する引数の数(或いは引数が要らないか)は、スクリプトごとに異なる。リクエストには実行対象のスクリプトに合った引数がセットされる。
In this URL (1), host is the host name of the
ホスト1が実行するスクリプトには、個々のデータ処理部30の処理(すなわち単位処理)を起動するための式と、別のスクリプトを実行させるための式とを含み得る。また、スクリプト内にはforループなど、従来から知られている各種の制御構造を記述することができ、単位処理又はスクリプトを示す式の並び順や制御構造の記述により、一連の処理を表すことができる。
The script executed by the
クライアント2から上記(1)のURLに基づくHTTPリクエストがホスト1に送られた場合、ホスト1では、ウェブサーバがそのリクエストを受け取り、Evaluatorという名前で示されるサーブレットを起動する。これのサーブレットが処理制御部10である。
When an HTTP request based on the above URL (1) is sent from the
処理制御手順解釈部20は、スクリプトの記述を解釈するユニットであり、処理制御部10から通知されたスクリプトを解釈し、処理制御部10に対してそのスクリプトが示す処理を順次指示していく。
The process control
原料データ記憶部40は、データ処理部30での単位処理の原料となる原料データを記憶している。原料データは単位処理の内容による。例えば、文書要約処理の原料データは文書データとなる。図では原料データ記憶部40をホスト1内のユニットとして示したが、この代わりに、LANやインターネット上にある別のサーバ装置を原料データ記憶部40として用いるシステム構成も可能である。
The raw material
処理結果記憶部50は、各データ処理部30が実行した単位処理の処理結果を記憶し、管理するユニットである。本実施形態では、各データ処理部30が実行した単位処理の処理結果を処理結果記憶部50に登録するわけであるが、処理結果記憶部50は、登録する処理結果に対して「処理結果ID」と呼ぶ一意な識別情報を付与して管理する。そして、データ処理部30間でのデータの受け渡しを、データ実体を直接受け渡すのではなく、処理結果IDを受け渡すことにより実現する。処理結果IDを受け取ったデータ処理部30は、その処理結果IDに対応するデータ実体を処理結果記憶部50から取得し、自らの処理に用いる。
The processing
処理結果記憶部50は、図示例では、処理結果記憶部50はJava(登録商標)等のクラスとして実装しており、そのクラス名はPoolである。処理結果記憶部50に対する処理結果データの登録処理はregisterメソッド51として、処理結果記憶部50からの処理結果データの取得処理はaccessメソッド52として、それぞれ実装される。処理結果の実体データは、処理結果管理テーブル53に登録され、管理される。処理結果管理テーブル53は、図2に示すように、処理結果の実体データ(「処理結果実体」)を、それに対して付与された処理結果IDと対応づけて登録したテーブルである。
In the illustrated example, the processing
以下に、ホスト1内の各処理部で実行されるメソッドの処理内容をまとめる。
The processing contents of the methods executed by each processing unit in the
<データ処理部30(Evaluator)>
・executeメソッド32:このメソッドは、呼び出されると、所定のデータ処理を行い、処理結果記憶部50(Pool)のregiterメソッド51を呼んでその処理結果を処理結果記憶部50に登録し、regiterメソッド51の返り値である処理結果IDを、executeメソッド32の呼出元に返す。呼び出されるexecuteメソッド32の引数に処理結果IDが与えられている場合は、処理結果記憶部50のaccessメソッド52を呼んでその処理結果IDに対応する処理結果実体を取得し、データ処理に用いる。
<Data processing unit 30 (Evaluator)>
Execute method 32: When this method is called, it performs predetermined data processing, calls the
<処理結果記憶部50(Pool)>
・registerメソッド51:このメソッドは、引数として渡された処理結果実体に対し、処理結果IDを付与して処理結果管理テーブル53に登録し、呼出元にその処理結果IDを返す。なお、一意の処理結果IDは、例えば通し番号を採番することで生成する。
<Processing result storage unit 50 (Pool)>
Register method 51: This method assigns a processing result ID to the processing result entity passed as an argument, registers it in the processing result management table 53, and returns the processing result ID to the caller. The unique processing result ID is generated, for example, by assigning a serial number.
・accessメソッド52:このメソッドは、引数として渡された処理結果IDに対応する処理結果実体を処理結果管理テーブル53から読み出し、呼出元に返す。 Access method 52: This method reads the processing result entity corresponding to the processing result ID passed as an argument from the processing result management table 53, and returns it to the caller.
<処理制御部10(Evaluator)>
・evalメソッド12:このメソッドは、引数に指定されたスクリプトを起動し、その処理結果を呼出元に返す。呼出元がクライアント2であれば処理結果は実体データで返す。一方、スクリプトから呼び出された場合は、処理結果IDを返す。evalメソッド12の処理の詳細は、後でフローチャートを示して詳細に説明する。
<Processing control unit 10 (Evaluator)>
Eval method 12: This method activates the script specified in the argument and returns the processing result to the caller. If the caller is the
次に、本実施形態で用いるスクリプトについて説明する。スクリプトを構成する式のうち、データ処理部30を起動する式は、次のようなものとなる。
id1 = Component1.execute(url1); …(2)
Next, the script used in this embodiment will be described. Of the expressions constituting the script, the expression for starting the
id1 = Component1.execute (url1);… (2)
この例は、url1というURLが示す原料データをComponent1クラスのexecuteメソッドで処理させることを示す式であり、id1はそのメソッドの返り値である処理結果IDを示す。 This example is an expression indicating that the raw material data indicated by the URL url1 is processed by the execute method of the Component1 class, and id1 indicates a processing result ID which is a return value of the method.
また、スクリプトを構成する式のうち、別のスクリプトの実行を示す式は、次のようなものとなる。
id2 = Evaluator.eval(scriptname, parameter); …(3)
Of the expressions constituting the script, the expression indicating the execution of another script is as follows.
id2 = Evaluator.eval (scriptname, parameter);… (3)
この例が示すように、スクリプトの実行は、Evaluatorクラスのevalメソッドを呼び出すことにより実現する。evalメソッドの最初の引数scriptnameは、実行対象のスクリプトのスクリプト名であり、第2の引数parameterは、そのスクリプトが取るパラメータの配列である。この場合、evalメソッドはスクリプト内から呼ばれているので、その返り値id2はスクリプトの最終処理結果の処理結果IDとなっている。 As this example shows, script execution is achieved by calling the eval method of the Evaluator class. The first argument scriptname of the eval method is the script name of the script to be executed, and the second argument parameter is an array of parameters taken by the script. In this case, since the eval method is called from within the script, the return value id2 is the processing result ID of the final processing result of the script.
スクリプトは、このようにデータ処理部30を起動する式と別のスクリプトの実行を指示する式とを、反復や選択などの各種制御構造を示す文と共に記述したものとなる。
The script is such that an expression for starting the
本実施形態では、スクリプトはホスト1内の記憶装置に記憶されている。そして、処理制御手順解釈部20が、処理制御部10から指定されたスクリプト名に該当するスクリプトをその記憶装置から読み出し、解釈する。
In the present embodiment, the script is stored in a storage device in the
次に、図3に示す処理制御部10の処理(evalメソッド)の手順と図1とを参照して、ホスト1によるリクエスト処理について説明する。
Next, request processing by the
処理制御部10であるサーブレットは、クライアント2からURL形式のリクエストに応じて起動され、まずそのリクエストのクエリ部からスクリプト名とパラメータ(引数)を抽出する(S10)。例えばリクエストが上述のURL(1)であった場合、スクリプト名として"script1.groovy"が、第1のパラメータとしてaaaが、第2のパラメータとしてbbbが抽出される。
The servlet that is the
次に処理制御部10は、そのスクリプト名が示すスクリプトを呼び出す(S12)。すなわち、抽出したスクリプト名及びパラメータを渡して処理制御手順解釈部20を起動する。起動された処理制御手順解釈部20は、そのスクリプト名に対応するスクリプトを記憶装置から取得し、これを解釈して実行すべき処理を順に処理制御部10に指示する。
Next, the
例えば、呼び出されたスクリプト"script1.groovy"が以下のようなものだったとする。
id_const = Component1.execute(url1); … (11)
id_result;
for (i=0; i<10; i++) [
id_current = Component2.execute(id_const, id_result); … (12)
id_result = id_current;
]
return id_result;
For example, suppose the called script "script1.groovy" is as follows:
id_const = Component1.execute (url1);… (11)
id_result;
for (i = 0; i <10; i ++) [
id_current = Component2.execute (id_const, id_result);… (12)
id_result = id_current;
]
return id_result;
このスクリプトにおいて、(11)式は、url1というURLが示す原料データをデータ処理部30−1に処理させる旨の指示を示している。id_constは、この処理の処理結果のIDを保持する変数である。また(12)式は、id_constという処理結果IDが示す処理結果データと、id_resultという処理結果IDが示す処理結果データとを、データ処理部30−2に処理を実行させる旨の指示を示している。id_currentは、この処理の処理結果のIDを保持する変数である。(12)式の処理は、forループにより10回反復されるが、その中で用いられる引数id_constはその反復においても変化しない。すなわち、(11)式の処理の処理結果は変化しない定数としてforループの中で繰り返し使用される。それに対し、もう一つの引数id_resultは、反復の都度、最新のid_currentの値に更新される。 In this script, equation (11) indicates an instruction to cause the data processing unit 30-1 to process the raw material data indicated by the URL url1. id_const is a variable that holds the ID of the processing result of this processing. The expression (12) indicates an instruction to cause the data processing unit 30-2 to execute the process result data indicated by the process result ID “id_const” and the process result data indicated by the process result ID “id_result”. . id_current is a variable that holds the ID of the processing result of this processing. The processing of equation (12) is repeated 10 times by a for loop, but the argument id_const used therein does not change during the iteration. That is, the processing result of the processing of the expression (11) is repeatedly used in the for loop as a constant that does not change. On the other hand, another argument id_result is updated to the latest id_current value at each iteration.
このようなスクリプトが与えられた場合、処理制御手順解釈部20は、図1に示すように、まず最初に(11)式が示す処理を実行すべきと判断する。
When such a script is given, the process control
処理制御部10は、処理制御手順解釈部20に処理指示を受け取りに行き(S14)、これに応じて処理指示を受け取ることができたかどうかを判定する(S16)。上記スクリプト例の場合、最初には(11)式が表す処理指示が取得できるので、この判定結果はYesとなりS18に進む。S18では、その処理指示が、スクリプト実行の指示か否かを判定する。処理指示には、上述の(2)式に示したデータ処理部30を起動する指示と、(3)式に示したスクリプト実行の指示とがあるので、S18ではそのうちのどちらであるかを判定するわけである。
The
(11)式が表す処理指示の場合、データ処理部30を起動する指示なので、S18の判定結果はNoとなり、S20に進むことになる。S20では、その指示が示すデータ処理部30を起動する。例えば(11)式の処理指示の場合、処理制御部10は、データ処理部30−1のexecuteメソッド32−1を、引数"url1"を指定して起動する。データ処理部30−1は、"url1"が示す原料データを原料データ記憶部40から取得し、executeメソッド32−1によりその原料データに対して所定の処理を施す。executeメソッド32−1は、処理結果記憶部50のregisterメソッド51を呼んで、その処理の処理結果"A1"を処理結果管理テーブル53に登録する。registerメソッド51は、処理結果"A1"に対して処理結果ID"id1"を付与して処理結果管理テーブル53に登録し、その処理結果ID"id1"をデータ処理部30−1に返す。
In the case of the processing instruction represented by the expression (11), since it is an instruction to activate the
なお、ここで、処理結果管理テーブル53に対する処理結果の登録は、executeメソッド32−1の処理結果のデータが全て揃う前に行うこともできる。 Here, the registration of the processing result in the processing result management table 53 can be performed before all the processing result data of the execute method 32-1 is prepared.
データ処理部30−1は、処理結果記憶部50のregisterメソッド51からの返り値として処理結果ID"id1"を受け取り、その"id1"を自らの処理の返り値として処理制御部10に返す。処理制御部10は、そのデータ処理部30−1からのその処理結果ID"id1"を取得すると(S22)、S14に戻り、処理制御手順解釈部20から次の処理指示の取得を試みる。
The data processing unit 30-1 receives the processing result ID “id1” as a return value from the
上述のスクリプト例"script1.groovy"の場合、(11)式の処理の次には、forループの1回目の(12)式の処理となる。したがって、S16の判定結果はYes、S18の判定結果はNoとなり、S20でデータ処理部30−2のexecuteメソッド32−2を呼び出すことになる。この呼出の際の第1の引数id_constは、先ほどのデータ処理部30−1の処理結果の処理結果ID"id1"である。第2の引数id_resultは最初のループなので、デフォルト値である。呼び出されたexecuteメソッド32−2は、処理結果記憶部50のaccessメソッド52を呼び出して、第1及び第2の引数(処理結果ID)が示す処理結果実体のデータを処理結果管理テーブル53から取得する。図1では、繁雑さを避けるため、処理結果ID"id1"に対応する処理結果実体"A1"を取得する流れのみ示した。そしてexecuteメソッド32−2は、取得した2つの実体データに対して所定のデータ処理を施し、その処理結果"A2"をregisterメソッド51により処理結果管理テーブル53に登録し、その処理結果のID"id2"を取得して処理制御部10に返す。処理制御部10はその処理結果ID"id2"を取得してS14に戻る。上記スクリプト例における次の処理は、受け取った処理結果ID"id2"を変数id_resultにセットするものなので、処理制御部10はそれを実行し、再びS14に進む。
In the case of the above-described script example “script1.groovy”, the process of the expression (11) is followed by the first process of the expression (12) in the for loop. Therefore, the determination result in S16 is Yes, the determination result in S18 is No, and the execute method 32-2 of the data processing unit 30-2 is called in S20. The first argument id_const at the time of this call is the processing result ID “id1” of the processing result of the data processing unit 30-1. Since the second argument id_result is the first loop, it is the default value. The called execute method 32-2 calls the access method 52 of the processing
今回のステップS14では、処理制御部10は、上述のスクリプト例におけるforループの2回目の(12)式の処理指示を受け取るので、S20で第1の引数id_constを"id1"、第2の引数id_resultを"id2"として、データ処理部30−2のexecuteメソッド32−2を呼び出し、その処理結果のIDを取得してS14に戻る。以上のような処理がforループの最後のループまで繰り返される。図1では、最後のループでのデータ処理部30−2の処理結果の処理結果IDは"idN"であり、この時点で変数id_resultの値は"idN"となる。最後のループが終わった後に戻ってきたS14では、次の処理指示はないので、処理制御部10の処理はS24に進む。
In this step S14, the
S24では、今実行しているスクリプトが、別のスクリプトから呼び出されたものかそうでないかで、以降の処理がS26とS28の2つに分岐する。 In S24, the subsequent processing branches to S26 and S28 depending on whether the currently executed script is called from another script or not.
すなわち、スクリプトの中には、クライアント2からのリクエストにより起動されたサーブレット(処理制御部10)から呼び出されるスクリプトと、スクリプト中から上記(3)式のような式で呼ばれるスクリプトとがある。後者は上述のスクリプト例には含まれないが、仮に上記(3)式のような処理指示がスクリプト中に含まれていたとすれば、その処理指示の番ではS18の判定結果がYesとなる。この場合、処理制御部10は、S12に戻り、Evaluatorクラスのevalメソッド12を起動し、処理指示の式に示されているスクリプトの呼び出しを行わせることになる。このようにスクリプト中のある式により呼び出されたスクリプトの最終的な処理結果は、その式の返り値として呼出元のスクリプトに渡されることになる。それに対し、クライアント2のリクエストから呼び出されたスクリプトの処理結果は、クライアント2に返される。
That is, the script includes a script called from a servlet (processing control unit 10) activated by a request from the
ここで、スクリプトに返される処理結果は、ホスト1内で利用されるのだから処理結果IDでよい。これを受け取った処理制御部10は、必要に応じてその処理結果IDに対応する処理結果実体を処理結果記憶部50から取得できる。これに対し、クライアント2にはリクエストに対する結果として処理結果の実体データを返す必要がある。このような区別に従い、S24の分岐では、現在実行中のスクリプトaが別のスクリプトbから呼び出されたものであるならば、処理制御部10は、スクリプトaの最終的な処理結果の処理結果IDをスクリプトbに返す(S26)。この処理結果IDを受け取ったスクリプトbでは、そのIDを用いて残りの処理を続行することになる。一方、現在実行中のスクリプトaがクライアント2からのリクエストにより呼び出されたものであれば、処理制御部10は、そのスクリプトaの終了時点で変数id_resultにセットされている処理結果IDに対応する処理結果実体を、accessメソッド52により処理結果記憶部50から取り出し、これをHTTPレスポンスにセットして、呼出元のクライアント2に返す。
Here, the processing result returned to the script may be the processing result ID because it is used in the
このように、本実施形態では、各データ処理部30の処理結果(これはリクエスト全体の処理から見れば中間処理結果である)をシステム共有の記憶領域である処理結果記憶部50にて、一意的な処理結果IDを付与して管理している。そして、処理を記述するスクリプトではその処理結果IDを用いて処理の引数や返り値のデータを示している。このようなことにより、同じ処理を繰り返し実行する無駄を省くことができる。例えば、上述のスクリプト例では、forループ内の(12)式には、そのループの前にある(11)式の処理結果が引数に指定されているが、その引数の値はループの繰り返し回数によらず変わらない。したがって、一度処理した(11)式の処理結果の処理結果IDをその引数に指定しておけば、処理結果記憶部50に保持された(11)式の処理結果を繰り返し利用できるため、forループの繰り返しの都度(11)式を再計算するというような無駄はない。
As described above, in the present embodiment, the processing result of each data processing unit 30 (this is an intermediate processing result when viewed from the processing of the entire request) is unique in the processing
また、本実施形態では、各データ処理部30が求めた処理結果が処理結果記憶部50に保存されているので、クライアント2からのリクエストに対する全体的な処理の途中の各段階での処理結果を必要に応じて観察することができるので、不具合が発生した場合の調査が容易になる。例えば、エラーコードに処理の引数である処理結果IDなどを含めるようにすれば、エラー発生時のエラーコードに示される処理結果IDを用いて処理結果実体を処理結果記憶部50から読み出すことができ、調査ができる。
In this embodiment, since the processing results obtained by the
本実施形態において、処理結果記憶部50のPoolオブジェクトを、オブジェクトへのデータの書き込みとオブジェクトからのデータの読み出しを並行して行える同期型オブジェクトとすることが好適である。このようにすることにより、データ処理部30は、自分の処理結果が出そろう前に処理結果記憶部50のregisterメソッド51を呼んで処理結果の記憶領域の確保と処理結果IDの取得を行い、その処理結果IDを処理制御部10に返すことができる。これを受けて、処理制御部10は、そのデータ処理部30の処理結果を用いる後段のデータ処理部30をその処理結果IDを用いて起動することができる。すなわち、前のデータ処理部30の処理が全て終わる前に後のデータ処理部30を起動できる。別の観点から言えば、前のデータ処理部30の処理の終了は、その処理の結果を利用する他のデータ処理部30がその処理結果を必要とする時点まで遅らせることができる。このようなことから、効率的な連携処理が可能となる。
In the present embodiment, it is preferable that the Pool object in the processing
[第2実施形態]
次に本発明の第2実施形態を説明する。図4は、第2実施形態のホスト1の機能構成を示す図である。この図では、クライアント2の図示は省略している。また、図1の構成要素と同様のものには、同一符号を付して詳しい説明は書略する。
[Second Embodiment]
Next, a second embodiment of the present invention will be described. FIG. 4 is a diagram illustrating a functional configuration of the
第2実施形態のホスト1は、図1の第1実施形態のホスト1に対して利用可能範囲制御部60と有効期間管理部70を追加し、更に処理結果記憶部50にremoveメソッド54を追加したものである。またこの他、処理制御部10や各データ処理部30、処理結果記憶部50の処理内容にも若干の追加がある。以下、これら追加点につき説明する。
The
まず、利用可能範囲制御部60は、リクエストが、処理結果記憶部50にある別のリクエストの処理結果にアクセスできないようにする管理のためのユニットである。
First, the available
すなわち、第1実施形態では、リクエストの処理のために起動された各データ処理部30の処理結果を処理結果記憶部50に登録し、処理制御部10や別のデータ処理部30から利用できるようにしたが、ホスト1には様々なリクエストが到来し、異なるユーザからのリクエストも到来するため、異なるリクエストに関連する処理結果が利用できると、情報セキュリティその他の観点から好ましくない。
That is, in the first embodiment, the processing result of each
そこで、1つのリクエストに関連して起動されるスレッドに対しては利用可能範囲制御部60が生成する同じ識別情報を付与し、処理結果記憶部50に登録する処理結果についても、その識別情報と関連づけて管理することで、処理結果が他のリクエストから利用できないように制御する。逆に1つのリクエストの実行過程で起動される一連のスレッド群では、処理の連携のためにスレッド同士で処理結果を共有する必要があり、また同じリクエスト内ではそのようにスレッド間で処理結果を共有できてもセキュリティ上の問題はない。そこで、本実施形態では、リクエストに対して一意的な識別情報を付与し、そのリクエストの実行過程で起動されるスレッドは、常に起動元のスレッドに設定された識別情報を引き継ぎ、また、その処理結果にも識別情報を持たせて管理することで、同じリクエスト内のスレッド同士は処理結果を互いに参照でき、異なるリクエストに属するスレッド同士では処理結果の参照ができないように制御する。このように、リクエストを識別する識別情報を、以下では「利用可能範囲ID」と呼ぶ。
Therefore, the same identification information generated by the available
この管理のため、利用可能範囲制御部60は、利用可能範囲ID管理テーブル66を備える。利用可能範囲ID管理テーブル66には、図5に示すように、利用可能範囲IDごとに、その利用可能範囲IDが割り当てられたリクエストの処理過程での各データ処理部30の処理結果の処理結果IDの配列が登録される。
For this management, the available
利用可能範囲制御部60は、例えばJava(登録商標)等のクラスとして実装することができる。そのクラス名を、ここではVirtualThreadManagerとする。VirtualThreadManagerは、以下のようなメソッドを備える。
The available
・openメソッド61:このメソッドは、呼び出されると、一意的な利用可能範囲IDを生成し、利用可能範囲ID管理テーブル66にその利用可能範囲IDに対応するエントリを作成する。利用可能範囲IDは、例えば、通し番号を採番するなどの形で生成すればよい。このメソッドは、処理制御部10から呼ばれ、生成した利用可能範囲IDをこのメソッドを実行しているスレッドに設定する。
Open method 61: When this method is called, it generates a unique usable range ID and creates an entry corresponding to the usable range ID in the usable range ID management table 66. The usable range ID may be generated, for example, by assigning a serial number. This method is called from the
・closeメソッド62:このメソッドは、呼び出されると、このメソッドを実行しているスレッドに設定されている利用可能範囲IDを取得し、その利用可能範囲IDに該当するエントリを利用可能範囲ID管理テーブル66から削除する。またこのとき、削除するエントリの処理結果ID配列を引数として処理結果記憶部50のremoveメソッドを呼び、その利用可能範囲に属する各処理結果を削除させる。このメソッドは、リクエストの処理が完了するときに、処理制御部10から呼ばれる。クライアント2からのリクエストに対する中間処理結果は、そのリクエスト以外のリクエストからは基本的に必要ない(但し後述のスクリプトのデバッグのためのリクエストはこの限りでない)ので、リクエスト処理の終了時にこのように削除することで、利用可能なメモリ領域を増やすことができる。
Close method 62: When this method is called, the available range ID set in the thread executing this method is acquired, and an entry corresponding to the available range ID is used as an available range ID management table. Delete from 66. At this time, the remove method of the processing
・addメソッド63:このメソッドは、新たに処理結果記憶部50に登録された処理結果のIDを利用可能範囲ID管理テーブル66に追加する際に呼ばれる。このメソッドには、呼出元から、引数として、その処理結果IDが渡される。このメソッドは、呼ばれると、このメソッドを実行しているスレッドに設定されている利用可能範囲IDを取得し、利用可能範囲ID管理テーブル66におけるその利用可能範囲IDに該当するエントリの処理結果ID配列に対し、引数として受け取った処理結果IDを追加する。
Add method 63: This method is called when an ID of a processing result newly registered in the processing
・validateメソッド64:このメソッドは、スレッドが処理結果記憶部50に登録されている処理結果にアクセスしようとする際に、そのスレッドがその処理結果を利用(アクセス)できるかどうかを判定するためのものである。このメソッドには、呼出元から、引数として、その処理結果の処理結果IDが渡される。このスレッドは、呼び出されると、このメソッドを実行しているスレッドに設定されている利用可能範囲IDを取得し、利用可能範囲ID管理テーブル66におけるその利用可能範囲IDに該当するエントリの処理結果ID配列の中に、引数として渡された処理結果IDが含まれているかをチェックする。そして、含まれている場合はそのスレッドがその処理結果を利用可能と判定し、そうでない場合は利用不可と判定する。呼出元には、その判定結果を返す。
Validate method 64: This method is used to determine whether or not a thread can use (access) the processing result when the thread tries to access the processing result registered in the processing
・removeメソッド65:このメソッドは、処理結果記憶部50からの処理結果の削除に伴って、その処理結果の処理結果IDを利用可能範囲ID管理テーブル66の処理結果ID配列から削除するために用いられる。このメソッドには、呼出元から、引数として処理結果IDが渡される。このメソッドは、このメソッドを実行しているスレッドに設定されている利用可能範囲IDを取得し、利用可能範囲ID管理テーブル66におけるその利用可能範囲IDに該当するエントリの処理結果ID配列から、引数の処理結果IDを削除する。
Remove method 65: This method is used to delete the processing result ID of the processing result from the processing result ID array of the available range ID management table 66 in accordance with the deletion of the processing result from the processing
次に、有効期間管理部70について説明する。有効期間管理部70は、処理結果記憶部50の記憶領域の費消を抑制するための管理を行うユニットである。すなわち本実施形態では、スクリプト中に有効期間の始点と終点を明示的記述し、スクリプト中でその始点から終点までの間に記述された各処理の処理結果は、その始点から終点までの間のみ有効とする。別言すれば、スクリプトの処理の進行がその終点を超えると(すなわち有効期間が終了すると)、対応する始点からその終点までに記述された処理の処理結果を処理結果記憶部50から削除する。スクリプト作成者が後で使うことがない処理結果の削除を明示的にスクリプトに記述することで、使用されない処理結果のデータにより処理結果記憶部50の記憶領域が無駄に費消されるのを抑制できる。
Next, the valid period management unit 70 will be described. The effective period management unit 70 is a unit that performs management for suppressing consumption of the storage area of the processing
このように有効期間の終了後に関連する処理結果を削除するために、本実施形態では、処理結果記憶部50に登録する処理結果に対し、有効期間IDを関連づける。有効期間IDは、個々の有効期間に対して一意的に付与される識別情報である。スクリプトを実行して有効期間の始点に至ったときに、一意的な有効期間IDを生成(例えば通し番号の採番)する。そして、その始点に対応する終点に至るまでに起動するスレッドに、その有効期間IDを設定し、処理結果記憶部50に対して処理結果を登録する場合には、登録処理を実行しているスレッドから有効期間IDを取得し、その有効期間IDを関連づけて登録する。これにより、スクリプトの処理が進んで有効期間の終点を超えると、その有効期間IDと関連づけられた処理結果を検索することで、その有効期間内の処理結果を処理結果記憶部50から一括削除できる。
In this embodiment, in order to delete the related processing result after the expiration of the validity period, the validity period ID is associated with the processing result registered in the processing
この管理のため、有効期間管理部70は、有効期間ID管理テーブル75を備える。有効期間ID管理テーブル75には、図6に示すように、有効期間IDごとにエントリが作成され、エントリにはその有効期間IDが割り当てられた範囲の中の処理記述により起動された各データ処理部30の処理結果のIDの配列が登録される。
For this management, the valid period management unit 70 includes a valid period ID management table 75. As shown in FIG. 6, an entry is created for each valid period ID in the valid period ID management table 75, and each data process activated by the process description within the range to which the valid period ID is assigned is entered. An array of IDs of processing results of the
有効期間管理部70は、例えばJava(登録商標)等のクラスとして実装することができる。そのクラス名を、ここではScopeManagerとする。ScopeManagerは、以下のようなメソッドを備える。 The valid period management unit 70 can be implemented as a class such as Java (registered trademark), for example. The class name is ScopeManager here. ScopeManager has the following methods.
・openメソッド71:このメソッドは有効期間の始点で呼び出される。言い換えれば、スクリプト中に有効期間を設定する場合、その期間の始点に当たる位置に、このメソッドを呼び出す式を記述するのである。このメソッドは、処理制御部10から呼び出される。呼び出された場合、このメソッドは、一意的な有効期間IDを生成し、これを有効期間ID管理テーブル75に登録するとともに、生成した有効期間IDをこのメソッドを実行しているスレッドに設定する。
Open method 71: This method is called at the beginning of the validity period. In other words, when a valid period is set in a script, an expression that calls this method is written at a position corresponding to the start point of the period. This method is called from the
・closeメソッド72:このメソッドは、有効期間の終了時に、その有効期間に属するスレッドの処理結果を一括削除するために、処理制御部10から呼ばれる。このメソッドは、呼び出されると、メソッドを実行しているスレッドに設定されている有効期間ID(これはopenメソッドが呼出元から呼び出された際に設定される)を取得し、有効期間ID管理テーブル75からそのIDに該当するエントリを削除する。またこのとき、削除するエントリの処理結果ID配列を引数として処理結果記憶部50のremoveメソッド54を呼び、その利用可能範囲に属する各処理結果を削除させる。なお、このとき呼び出されたremoveメソッド54は、引数として受け取った処理結果IDのエントリを処理結果管理テーブル53から削除すると共に、利用可能範囲制御部60のremoveメソッド65を呼び出し、その処理結果IDを利用可能範囲ID管理テーブル66から削除するよう依頼する。
Close method 72: This method is called from the
・addメソッド73: このメソッドは、新たに処理結果記憶部50に登録された処理結果のIDを有効期間ID管理テーブル75に追加する際に呼ばれる。このメソッドには、呼出元から、引数として、その処理結果IDが渡される。このメソッドは、呼ばれると、このメソッドを実行しているスレッドに設定されている有効期間IDを取得し、有効期間ID管理テーブル75におけるその有効期間IDに該当するエントリの処理結果ID配列に対し、引数として受け取った処理結果IDを追加する。
Add method 73: This method is called when an ID of a processing result newly registered in the processing
・exportメソッド74:スクリプト中に設定した有効期間の範囲内の処理の処理結果のうち、有効期間外の処理で利用したいものがある場合、このメソッドが用いられる。すなわち、スクリプト中にこのメソッドを呼び出す式を記述することで、その式が含まれる有効期間が終了した後も、そのメソッドの引数に指定した処理結果IDに対応する処理結果が削除されず残されるようにすることができる。このメソッドは、対象となる処理結果IDと、別の有効期間IDを引数として呼び出され、このメソッドを実行しているスレッドに設定されている有効期間IDを取得し、引数として受け取った処理結果IDを有効期間ID管理テーブル75におけるその有効期間IDに該当するエントリの処理結果ID配列から、引数として受け取った別の有効期間IDに該当するエントリの処理結果ID配列に移動させる。これにより、有効期間IDを削除するために、有効期間管理部70のcloseメソッドが呼び出された場合でも、別の有効期間IDのエントリに移動させた処理結果IDに対応する処理結果は、処理結果記憶部50から削除されない。
Export method 74: This method is used when there is a process result within the valid period set in the script that is to be used in a process outside the valid period. That is, by describing an expression that calls this method in the script, the processing result corresponding to the processing result ID specified in the argument of the method is not deleted even after the validity period including the expression ends. Can be. This method is called with the target process result ID and another valid period ID as an argument, acquires the valid period ID set for the thread executing this method, and the process result ID received as the argument Are moved from the processing result ID array of the entry corresponding to the effective period ID in the effective period ID management table 75 to the processing result ID array of the entry corresponding to another effective period ID received as an argument. Thereby, even when the close method of the validity period management unit 70 is called to delete the validity period ID, the processing result corresponding to the processing result ID moved to the entry of another validity period ID is the processing result. It is not deleted from the
次に、第1実施形態からみた本実施形態の処理結果記憶部50の変更点について説明する。
Next, changes in the processing
まず本実施形態では、removeメソッド54が追加されている。このremoveメソッド54は、処理結果管理テーブル53から処理結果のエントリを削除するためのものである。このメソッドは、例えばクライアント2からのリクエストに対する処理の終了時に利用可能範囲制御部60から呼ばれたり、有効期間の終点で有効期間管理部70から呼ばれたりする。このメソッドは、引数として処理結果IDの配列をとる。
First, in the present embodiment, a remove method 54 is added. The remove method 54 is used to delete the processing result entry from the processing result management table 53. For example, this method is called from the available
また、registerメソッド51及びaccessメソッド52は、第1実施形態で説明した処理に加え、以下のような処理を行う。
The
まずregisterメソッド51は、呼び出された場合、そのメソッド51を実行しているスレッドに設定されている利用可能範囲ID,有効期間IDを取得する。そして、利用可能範囲制御部60のaddメソッド63及び有効期間管理部70のaddメソッド73をそれぞれ呼び出して、そのregisterメソッド51が処理結果管理テーブル53に登録した処理結果の処理結果IDを引数として渡す。これを受けたaddメソッド63は、利用可能範囲ID管理テーブル66において、このメソッドを実行するスレッドに設定された利用可能範囲IDに対応するエントリの処理結果ID配列に対し、引数の処理結果IDを追加する。addメソッド73の場合は、有効期間ID管理テーブル75に追加する。
First, when the
またaccessメソッド52は、呼出元から引数として渡された処理結果IDに対応する処理結果実体を返す前に、その呼出元がその処理結果実態を利用できるかどうかを調査する。この調査は、利用可能範囲制御部60のvalidateメソッド64を呼び出すことで行う。すなわち、accessメソッド52は、呼出元から受け取った処理結果IDを引数としてvalidateメソッド64を呼び出す。validateメソッド64は、前述の通り、メソッドを実行するスレッドに設定された利用可能範囲IDを取得し、引数として渡された処理結果IDがアクセスできるかを判定し、その結果をaccessメソッド52に返す。accessメソッド52は、アクセス可能との判定結果を受け取った場合は、その処理結果IDに対応する実体データを処理結果管理テーブル53から読み出し、呼出元に返す。アクセス不可との判定結果を受け取った場合は、アクセス不可の旨を示す値を呼出元に返す。
Further, the access method 52 investigates whether or not the caller can use the actual process result before returning the process result entity corresponding to the process result ID passed as an argument from the caller. This investigation is performed by calling the validate method 64 of the usable
以上のように、有効期間管理部70は、利用可能範囲制御部60と似た部分があるが、根本的な相違は、有効期間管理部70は、スクリプト中に記述された処理指示に応じて呼び出されるのに対し、利用可能範囲制御部60は、スクリプトに記述するものではなく、リクエストの処理開始時と終了時に処理制御部10から必ず呼び出されるという点である。
As described above, the effective period management unit 70 has a portion similar to the usable
次に、図7を参照して、この実施形態でのリクエスト処理の流れを説明する。なお、図7において、図3に示した第1実施形態の手順の中のステップと同様の処理を行うステップについては、同一符号を付して詳細な説明を省略する。 Next, the flow of request processing in this embodiment will be described with reference to FIG. In FIG. 7, steps that perform the same processing as the steps in the procedure of the first embodiment shown in FIG. 3 are denoted by the same reference numerals and detailed description thereof is omitted.
図7の手順は、図3の手順のステップS10の前にステップS5を、ステップS28の後にステップS30を追加したものである。 The procedure of FIG. 7 is obtained by adding step S5 before step S10 of the procedure of FIG. 3 and adding step S30 after step S28.
この手順では、ホスト1の処理制御部10は、クライアント2からリクエストを受け取ると、まず利用可能範囲制御部60のopenメソッド61(VirtualThreadManager.open)を呼び、利用可能範囲IDの付与を受ける(S5)。これに続くステップS10以降の処理は、最後のステップS30の処理を除き、図3の手順と基本的に同じ処理を行う。但し、細かくみれば、処理制御部10は、自らが呼び出す処理スレッドに対して、付与を受けた利用可能範囲IDを設定する処理を行う点は、第1実施形態にはない点である。
In this procedure, when the
すなわち、ステップS5で、利用可能範囲IDを受け取った処理制御部10は、自らのスレッドの変数に対してその利用可能範囲IDを設定すると共に、以降、自らが呼び出すスレッドに対しても、その利用可能範囲IDを設定する。例えば、そのリクエストのスクリプトの実行過程においてステップS20で呼び出すデータ処理部30や、ステップS18の判定がYesとなった後ステップS12でそのスクリプトから呼び出すスクリプト(更に呼び出したスクリプトから呼び出すスクリプトなどの派生スクリプトも含む)の実行のために新たなスレッドを起動する場合には、そのスレッドに対して利用可能範囲IDをセットするわけである。
That is, in step S5, the
なお、ステップS20で呼び出されたデータ処理部30の処理においても新たなスレッドを起動することがあれば、自スレッドの変数に設定されている利用可能範囲IDを、新たに起動するスレッドの変数に設定する。
If a new thread is activated even in the process of the
このようにスレッドの変数に利用可能範囲IDを連鎖的に設定していくことで、1つのリクエストから派生する全ての処理ユニットのスレッドには同一の利用可能範囲IDが関連づけられることになる。これにより、各処理ユニットの処理(スレッド)がどの利用可能範囲に属している(すなわちどのリクエストから派生したものか)かは、スレッドの変数をみれば分かることになる。 In this way, by setting the usable range ID to the thread variable in a chain, the same usable range ID is associated with the threads of all the processing units derived from one request. As a result, the usable range to which the process (thread) of each processing unit belongs (that is, from which request is derived) can be understood by looking at the variable of the thread.
その一方、本実施形態では、データ処理部30の処理結果を処理結果記憶部50に登録する際に、その処理結果に付与された処理結果IDを、そのデータ処理部30に設定された利用可能範囲IDと関連づけてaddメソッド63により利用可能範囲ID管理テーブル66に登録するので、このテーブル66を利用すれば処理結果がどの利用可能範囲に属するものかが分かる。
On the other hand, in this embodiment, when registering the processing result of the
そこで、処理結果記憶部50は、データ処理部30や処理制御部10などからaccessメソッド52により処理結果へのアクセスを要求された場合、validateメソッド64を用いて利用可能範囲制御部60へ問い合わせを行うことで、それらデータ処理部30や処理制御部10のスレッドがその処理結果にアクセス可能であるか否かを知ることができる。そして、アクセス可能であれば処理結果記憶部50は呼出元に対し処理結果の実体を返し、そうでなければアクセス不可の旨を知らせる情報を返す。
Therefore, when the access to the processing result is requested by the access method 52 from the
そして、クライアント2からのリクエストに指定されたスクリプトの処理が終わりクライアント2に処理結果を返す(S28)と、S30にて処理制御部10は利用可能範囲制御部60のcloseメソッド62を呼び、そのリクエストの利用可能範囲IDと、これに関連づけられた処理結果の情報を、利用可能範囲制御部60及び処理結果記憶部50から削除する。リクエストの実行過程で登録された処理結果は、そのリクエストの処理が終了した後に他のリクエストから利用されることは基本的にはないので、S30でデータを削除しても問題はない。
When the processing of the script specified in the request from the
なお、この手順において、有効期間管理部70を利用して不要になった処理結果を速やかに削除するのは、スクリプトに記述されたopenメソッド71やcloseメソッド72を、処理制御部10がステップS20で呼び出すことで実行される。
In this procedure, the
例えば次のようなスクリプトが与えられたとする。
id4 = Component4.execute(param4); …(21)
ida = function_a(urla, urlb); …(22)
return Component5.merge(id4, ida); …(23)
function_a(URL url1, URL url2)[
sid = (VirtualThread.currentThread()).getScopeID(); … (24)
ScopeManager.open(); … (25)
id1 = Component1.execute(url1);
id2 = Component2.execute(url2);
id3 = Component3.merge(id1, id2);
ScopeManager.export(id3, sid); … (26)
ScopeManager.close(); … (27)
return id3;
]
For example, given the following script:
id4 = Component4.execute (param4);… (21)
ida = function_a (urla, urlb);… (22)
return Component5.merge (id4, ida);… (23)
function_a (URL url1, URL url2) [
sid = (VirtualThread.currentThread ()). getScopeID ();… (24)
ScopeManager.open ();… (25)
id1 = Component1.execute (url1);
id2 = Component2.execute (url2);
id3 = Component3.merge (id1, id2);
ScopeManager.export (id3, sid);… (26)
ScopeManager.close ();… (27)
return id3;
]
このスクリプトにおいて、ScopeManagerは有効期間管理部70を示し、ComponentN(Nは1〜5の整数)はそれぞれ異なる5つのデータ処理部30を示す。
In this script, ScopeManager indicates an effective period management unit 70, and ComponentN (N is an integer of 1 to 5) indicates five different
また、(21)式から(23)式が実行するスクリプトで、"function_a()"以降は関数定義を表している。 In addition, in the script executed by Expressions (21) to (23), “function_a ()” and subsequent characters represent function definitions.
まず、(21)式で示されたComponent4の処理が実行され、この処理結果id4と、function_aに引数"urla"と"urlb"を指定したときの処理結果idaとが、(23)式でComponent5により併合され、その併合結果がスクリプトの呼び出し側に返される。 First, the processing of Component4 shown in Expression (21) is executed, and this processing result id4 and the processing result ida when arguments “urla” and “urlb” are specified in function_a are Are merged and the merged result is returned to the caller of the script.
function_aにおいては、関数内で生成された処理結果のうち、id3に対応する処理結果のみを残して、それ以外は削除するための手順を示している。 Function_a shows a procedure for leaving only the processing result corresponding to id3 among the processing results generated in the function and deleting the other processing results.
function_aにおいて、まず(24)式の実行により、現在のスレッドに設定されている有効期間IDを取得し、変数sidに格納する。sidに格納した有効期間IDは、function_aの呼び出し側の有効期間IDと同一である。次に、(25)式(openメソッド)の実行より有効期間IDの付与を受ける。その次の2つの式では、Component1,Component2がurl1,url2の示す原料データを元に所定の処理をそれぞれ行う。これら2つの処理の結果は、次の式により、Component3により併合される。この併合(マージ)処理の結果の処理結果IDは変数id3 にセットされる。この処理結果(id3)は、関数定義の外、例えば(23)式でも利用するので、(27)式により有効期間を閉じる前に、(26)式でのexportメソッド74を呼び出すことで、id3を有効期間終了時のデータ削除対象から外す。そして、(27)式(closeメソッド)の実行により、(25)式から始まる有効期間が閉じられて、その期間内で求められた処理結果が処理結果記憶部50から削除される。このスクリプト例では、id3は削除対象から外されているので、処理結果IDid1及びid2に対応する各処理結果実体が処理結果記憶部50から削除されることになる。
In function_a, first, the effective period ID set in the current thread is acquired by executing the expression (24), and stored in the variable sid. The validity period ID stored in sid is the same as the validity period ID of the function_a caller. Next, the validity period ID is given by executing the expression (25) (open method). In the next two expressions,
以上、第2の実施形態について説明した。この実施形態によれば、利用可能範囲制御部60の働きより、リクエストの途中段階での処理結果が、別のリクエストから参照されることがないので、処理結果の不正利用を防止できる。また、有効期間管理部70により、スクリプト中に指定された有効期間が過ぎると、その期間内で生成された処理結果を削除することができるので、ホスト1の記憶領域の無駄遣いを減らすことができる。これにより、処理の途中でメモリ領域が不足し、その結果計算コストが増えたり、処理不能な状態に陥ったりすることを避けることができる。
The second embodiment has been described above. According to this embodiment, the processing result in the middle stage of the request is not referred to from another request by the function of the available
なお、以上の説明から明らかなように、利用可能範囲制御部60と有効期間管理部70の機能は独立している。したがって、上述の例では利用可能範囲制御部60と有効期間管理部70の両方を備えたホスト1を示したが、そのうち利用可能範囲制御部60のみを備える構成、有効期間管理部70のみを備える構成でも、それぞれのユニットによる個別の効果を得ることはできる。
As is clear from the above description, the functions of the usable
また、以上の例では、データ処理部30の処理結果は、同じ利用可能範囲IDを持つスレッドからしかアクセスできず、また有効期間から外れると削除していたが、スクリプトのデバッグを行う場合、このように処理結果が削除されたり、他のリクエストから処理結果にアクセスできないと、デバッグが困難になってしまう。そこで、スクリプトのデバッグを容易にする第2実施形態の変形例を以下に説明する。
In the above example, the processing result of the
この変形例では、利用可能範囲制御部60と有効期限管理部70に、デバッグモードを指示するためのメソッド(setDebug)を用意する。
In this modification, a method (setDebug) for instructing the debug mode is prepared in the usable
利用可能範囲制御部60をVirtualThreadManagerクラス、有効期間管理部70をScopeManagerクラスとして実装した場合、デバッグ対象のスクリプト中に以下のように記述することでデバッグモードが指示できる。
VirtualThreadManager.setDebug(true); … (31)
ScopeManager.setDebug(true); … (32)
When the usable
VirtualThreadManager.setDebug (true);… (31)
ScopeManager.setDebug (true);… (32)
このような記述より後に示された記述の処理については、利用可能範囲制御部60と有効期限管理部70のそれぞれについてデバッグモードの取扱がなされる。
Regarding the processing of the description shown after such description, the debug mode is handled for each of the available
例えば、利用可能範囲ID管理テーブル66には、各利用可能範囲IDがデバッグ対象であるか否かを示すフラグが設けられる。このフラグは、デフォルトでは「デバッグ対象でない」ことを示す値にセットされている。利用可能範囲制御部60のsetDebugメソッドは、呼び出されると、その利用可能範囲ID管理テーブル66において、メソッドを実行しているスレッドに設定された利用可能範囲IDがデバッグ対象か否かを示すためのフラグを「デバッグ対象」を示す値にセットする。そして、利用可能範囲制御部60のcloseメソッド62は、呼び出されると、メソッドを実行しているスレッドに設定された利用可能範囲IDがデバッグ対象か否かをそのフラグを参照して判定し、デバッグ対象であれば、利用可能範囲ID管理テーブル66の登録情報の削除や、その利用可能範囲IDのエントリに登録された処理結果IDの情報の処理結果記憶部50からの削除の処理を実行しない。デバッグ対象でなければ、上述の通り、それらの情報の削除を行う。また、利用可能範囲制御部60のvalidateメソッド64は、呼び出されると、メソッドを実行しているスレッドに設定された利用可能範囲IDがデバッグ対象か否かをそのフラグを参照して判定し、デバッグ対象であれば、そのvalidateメソッド64呼出の引数である処理結果IDが利用可能範囲ID管理テーブル66中のその利用可能範囲IDのエントリに登録されているかどうか調べずに、利用可能の旨を示す返り値を処理結果記憶部50に返す。
For example, the available range ID management table 66 is provided with a flag indicating whether or not each available range ID is a debug target. This flag is set to a value indicating "not a debug target" by default. When the setDebug method of the available
同様に、有効期間管理テーブル75には、各有効期間IDがデバッグ対象であるか否かを示すフラグが設けられ、これは有効期間管理部70のsetDebugメソッドによりセットされる。そして、有効期間制御部70のcloseメソッド72は、呼び出されると、呼出元から渡された利用可能範囲IDがデバッグ対象か否かをそのフラグを参照して判定し、デバッグ対象であれば、有効期間ID管理テーブル75の登録情報の削除や、その有効期間IDのエントリに登録された処理結果IDの情報の処理結果記憶部50からの削除などの処理を実行しない。
Similarly, the valid period management table 75 is provided with a flag indicating whether each valid period ID is a debug target, and this is set by the setDebug method of the valid period management unit 70. When the close method 72 of the valid period control unit 70 is called, it determines whether or not the usable range ID passed from the caller is a debug target by referring to the flag. Processing such as deletion of registration information in the period ID management table 75 and deletion of information on the processing result ID registered in the entry of the effective period ID from the processing
また、デバッグモードの範囲の末尾を、引数をfalseに設定したsetDebugメソッドの記述により示すこともできる。 The end of the debug mode range can also be indicated by the description of the setDebug method with the argument set to false.
このようにして、デバッグモードが指定されている間、利用可能範囲制御部60と有効期限管理部70のcloseメソッドの処理では、処理結果記憶部50に対するremove指示を行わないようにする。また、利用可能範囲制御部60のvalidateメソッドの処理では、利用可能判定を行わないようにすることができる。
In this way, while the debug mode is specified, in the process of the close method of the usable
以上のことにより、一連の処理が終了しクライアント2に処理結果を返した後も、処理結果記憶部50には、デバッグモードの範囲内の処理結果が残り、しかもそれら残った処理結果に対するアクセスが利用可能範囲制御部60により制限されることもない。したがって、処理結果記憶部50に残った処理結果を調べることで、効率のよいデバッグを行うことが可能になる。
As described above, even after a series of processing ends and the processing result is returned to the
また、本実施形態では、処理結果は、それぞれ利用可能範囲制御部60にて利用可能範囲IDと関連づけて管理されているので、スクリプトのデバッグの際、利用可能範囲IDを指定すれば、その利用可能範囲IDに対応する処理結果群を取り出し、解析することができる。
In the present embodiment, since the processing results are managed in association with the available range IDs by the available
[第3実施形態]
第1及び第2実施形態は、1つのホスト1で複数のデータ処理部30が単位処理を連携実行する構成であった。これに対し、この第3実施形態は、図8に示すように、複数のホスト1P,1Rが、インターネット等のネットワーク3を介して処理の連携を行うシステム構成である。
[Third Embodiment]
The first and second embodiments have a configuration in which a plurality of
ホスト1P及び1Rの内部構成は、図4に示した第2実施形態のものと同様である。ただし、ホスト1P及び1R内の各ユニットには、ネットワーク3を介した処理連携のための機能が加わっている。
The internal configuration of the
処理連携を行うホスト1P及び1Rは、クライアント2からのリクエストを受け付けるポータル(玄関)のホスト1Pと、他のホスト(1P又は1R)からのリクエストを受けて動作するリモートホスト1Rとに分類できる。このシステムでは、ユーザがクライアント2からホスト1Pへリクエストを送ると、ホスト1Pがそのリクエストに指定されたスクリプトを実行するのであるが、そのスクリプトの中にリモートのホスト1Rが持つスクリプトの実行が記述されていれば、ホスト1Pはそのリモートホスト1Rにスクリプト実行のリクエストを送り、その処理結果を受けて自分の処理を続行する。リモートホスト1Rが実行するスクリプトの中にも、他のホスト1P又は1Rが実行するスクリプトの実行指示を記述することができる。ホスト1P又は1Rへのリクエストは、上記第1実施形態に例示したURL(1)と同様、URLの形で記述される。
ネットワーク3を介した処理連携のため、各ホスト1P及び1Rの処理制御部10は、別のホスト1P又は1Rの処理制御部10にスクリプト実行を指示するリクエストを作成する機能を備える。この機能は、例えばevalメソッド12に組み込めばよい。例えば、スクリプト中に記述された次の(41)式は、host1(これはこのスクリプトを実行中のホストhost0とは別のホストであるとする)という名のホスト1P又は1Rに対し、 "script1.groovy"という名のスクリプトを、id1という処理結果IDが示すデータを引数として実行させる旨を示している。
id2 = Evaluator.eval(host1, "script1.groovy", id1) … (41)
スクリプト実行中のhost0の処理制御部10は、(41)式の指示を受けると、host1に対するリクエストとして、次のようなHTTPリクエストを作成し、host1宛に送信する。
http://host1.domain/Evaluator?method=eval&script=script1.groovy&arg0=id1…(42)
For processing cooperation via the
id2 = Evaluator.eval (host1, "script1.groovy", id1)… (41)
When receiving the instruction of the expression (41), the
http: //host1.domain/Evaluator? method = eval & script = script1.groovy & arg0 = id1… (42)
host1の処理制御部10は、そのURLに示されるスクリプトを実行し、その処理結果の処理結果IDを含んだHTTPレスポンスを作成し、これを呼出元のホストhost0に返す。レスポンスを受け取ったhost0の処理制御部10は、そのレスポンスに含まれる処理結果IDの値を(41)式の変数id2に代入し、その後に続く式の処理に進む。そして、後続の処理でその処理結果が利用されることになった時点で、その処理結果ID"id2"に該当する処理結果実体を、host1からコピーする。
The
すなわち、host0におけるスクリプト実行の際、データ処理部30又は処理制御部10が処理結果ID"id2"に該当する処理結果実体を用いて処理を行うことになった場合、データ処理部30又は処理制御部10は、自ホストhost0の処理結果記憶部50に対し、accessメソッド52を用いてそのid2の実体を要求する。ここで、id2に対応する実体データがhost0の処理結果記憶部50に保持されている場合は、その実体データが呼出元に返される。これに対し、id2に対応する実体データがhost0の処理結果記憶部50にない場合は、accessメソッド52がそのid2に対応する処理結果実体を要求するHTTPリクエストを作成し、それをその処理結果実体を持つホストhost1に送る。このとき作成されるHTTPリクエストは、例えば次のようなものとなる。
http://host1.domain/Pool?method=access&eid=12345678 … (43)
That is, when executing the script on host0, if the
http: //host1.domain/Pool? method = access & eid = 12345678… (43)
ここで、eidは処理結果IDを示し、12345678は要求する処理結果IDの値であり、言い換えれば(41)式のリクエストに対してhost1から返された処理結果IDの値である。このリクエストは、host1のPoolクラス(すなわち処理結果記憶部50)のaccessメソッド52を呼び出し、その処理結果IDに対応する処理結果実体を渡す旨を指示するものである。これにより取り出された処理結果実体は、HTTPレスポンスに組み込まれて、呼出元であるhost0の処理結果記憶部50に返される。host0の処理結果記憶部50は、受け取った処理結果実体を、accessメソッド呼出元のデータ処理部30又は処理制御部10に渡すと共に、その処理結果実体を処理結果IDに対応づけて処理結果管理テーブル53に登録する。リモートホストの処理結果も、このようにして一度取得して自ホストの処理結果管理テーブル53に登録すれば、今後のその処理結果が必要とされる場合は、処理結果管理テーブル53から読み出すことができ、リモートホストから取得する必要がない。
Here, eid indicates the processing result ID, and 12345678 is the value of the requested processing result ID. In other words, it is the value of the processing result ID returned from host1 in response to the request of equation (41). This request calls the access method 52 of the Pool class of host1 (that is, the processing result storage unit 50) and instructs to pass the processing result entity corresponding to the processing result ID. The processing result entity thus extracted is incorporated into the HTTP response and returned to the processing
なお、処理結果記憶部50のaccessメソッド52が他のホストに処理結果実体を要求する(43)式のようなリクエストを作成するには、その処理結果実体を保持しているホストが分からなければならない。このため、本実施形態では、処理結果IDとして、ホストの識別情報を含んだ形のものを用いる。例えばホストの識別情報とそのホスト内で一意な識別番号とを併合したものを処理結果IDとするなどである。registerメソッド51は、処理結果を登録する際、このような処理結果IDを生成し、これをその処理結果に対して割り当てる。処理結果ID内に組み込むホストの識別情報として例えばホストのIPアドレスを用いれば、処理結果実体を要求するHTTPリクエストを作成する際、処理結果IDからIPアドレスを抽出し、これを宛先のホストの指定に用いることができる。また、このようにIPアドレスそのものを用いなくても、処理結果ID内のホストの識別情報からそれに対応するURLやIPアドレスを求めて回答する手段を各ホスト内、又は各ホストからアクセス可能なネットワーク3上のサーバに設けておけば、同様のことが可能である。
In order to create a request such as the expression (43) in which the access method 52 of the processing
次に、スクリプトの例を挙げて、複数のホスト1P及び1Rの連携動作を説明する。ここでは、ポータルホスト1P(host0)が、クライアント2から、次のようなスクリプトの実行を要求するリクエストを受け取ったとする(但し、ここに例示するのはスクリプトの一部分だけであり、実際にはこの前後にいくつかの処理指示が記述されているものとする)。
id1 = Evaluator.eval(host1, "scriptA.groovy", parameter1) … (51)
id2 = Evaluator.eval(host2, "scriptB.groovy", id1) … (52)
id3 = Evaluator.eval(host2, "scriptC.groovy", id1) … (53)
Next, the cooperation operation of the plurality of
id1 = Evaluator.eval (host1, "scriptA.groovy", parameter1)… (51)
id2 = Evaluator.eval (host2, "scriptB.groovy", id1)… (52)
id3 = Evaluator.eval (host2, "scriptC.groovy", id1)… (53)
このスクリプトにおいて、(51), (52), (53)は、ポータルホスト1Pの処理制御部10のevalメソッド12の実行を指示する式である。evalメソッド12の引数は、ネットワーク上での分散処理を考慮していない第1実施形態ではスクリプト名とパラメータだけであったが、本実施形態ではそれにホスト名が加わる。3つの引数のうちの先頭のhost1などが、ホスト名である。例えば(51)式は、リモートのhost1に対し、スクリプト"scriptA.groovy"を、引数parameter1を用いて実行させ、その実行の結果の処理結果IDを変数id1にセットする旨の指示を示している。
In this script, (51), (52), and (53) are expressions that instruct execution of the
ポータルホスト1Pの処理制御部10は、まずこの(51)式の処理指示を処理制御手順解釈部20から受けると、リモートホストのhost1に対してスクリプト"scriptA.groovy"の実行を指示する(42)と同様のHTTPリクエストを作成して送信する。そして、そのリクエストの処理結果の処理結果IDがhost1から返ってくると、それを変数id1にセットし、次の処理指示(52)の処理に移る。
When the
(52)の処理では、host0の処理制御部10は、別のリモートホストhost2に対し、その変数id1にセットされた処理結果IDを引数として"scriptB.groovy"を実行する旨のHTTPリクエストを送信する。このリクエストを受けたhost2の処理制御部10は、その処理結果ID(id1)に対応する処理結果実体を自らの処理結果記憶部50に要求する。ところが、この時点ではその処理結果実体はhost1にしかないので、host2の処理結果記憶部50は、その処理結果ID(id1)に対応する処理結果実体を求める(43)と同様のHTTPリクエストを作成してhost1へと送り、これに応じてhost1から返されてきた処理結果実体をその処理結果IDと対応づけて自らの処理結果管理テーブル53に登録する。このように処理結果ID(id1)に対応する処理結果実体が得られたら、host2の処理制御部10はスクリプトの実行を進めることができる。
In the processing of (52), the
また、ポータルのhost0は、(53)の指示により、更にhost2に"scriptC.groovy"を実行させる。"scriptC.groovy"はid1を引数にとっているので、これに対応する処理結果実体が必要であるが、host2は既に(52)の処理でその処理結果実体を取得し、処理結果管理テーブル53に登録済みであるので、このときは処理結果管理テーブル53から取得できるので、リモートのhost1に要求する必要はない。
In addition, portal host0 further causes host2 to execute "scriptC.groovy" according to the instruction of (53). Since “scriptC.groovy” takes id1 as an argument, a corresponding processing result entity is required, but host2 has already acquired the processing result entity in the processing of (52) and registered it in the processing result management table 53. Since it can be obtained from the processing result management table 53 at this time, there is no need to make a request to the
このようにして、本実施形態では、複数のホスト1P及び1Rが連携して、クライアント2からのリクエストを実行する。
In this way, in this embodiment, a plurality of
以上、本実施形態におけるリクエストの分散処理の仕組みを説明したが、本実施形態でも、上述の第2実施形態と同様、リクエスト間での処理結果への不正アクセスを防止する仕組みが利用できる。 As described above, the mechanism of distributed processing of requests in the present embodiment has been described. However, in this embodiment as well, a mechanism for preventing unauthorized access to processing results between requests can be used as in the second embodiment.
すなわち、この場合、ポータルホスト1P及びリモートホスト1Rに第2実施形態と同様の利用可能範囲制御部60を設ける。ただし、利用可能範囲制御部60の機能は、ポータルホスト1Pとリモートホスト1Rとで少し異なる。すなわち、ポータルホスト1Pの利用可能範囲制御部60は第2実施形態のものと同じであり、openメソッド61が呼ばれると一意な利用可能範囲IDを採番するのに対し、リモートホスト1Rにはopenメソッドが不要である。これは、利用可能範囲IDは、クライアント2からのリクエストごとに割り当てるものであるからである。リモートホスト1Rは、ポータルホスト1Pが付与した利用可能範囲IDを受け取って継承する。
That is, in this case, the
より具体的には、ポータルホスト1Pは、あるリクエストに対する処理の中でリモートホスト1Rにスクリプト実行を依頼する場合、これは現在実行中のスレッドの変数にセットされているそのリクエストの利用可能範囲IDを取得し、これをそのリモートホスト1Rに対して送るHTTPリクエストに組み込む。例えば次のようにリクエストヘッダに組み込めばよい。
X-VirtualThreadID : 11111 … (61)
More specifically, when the
X-VirtualThreadID: 11111… (61)
ここでX-VirtualThreadIDは利用可能範囲IDを示し、11111は利用可能範囲IDの値である。 Here, X-VirtualThreadID indicates an available range ID, and 11111 is a value of the available range ID.
このようなリクエストを受け取ったリモートホスト1Rは、処理制御部10を起動してこの利用可能範囲IDをスレッドの変数にセットする。そして、リモートホスト1R内では、上記第2実施形態と同様の方式で、新しく起動するスレッドがあれば、その変数に利用可能範囲IDを継承させる。
Receiving such a request, the
この場合、継承した利用可能範囲IDを、リモートホスト1Rの利用可能範囲制御部60に登録するのは、addメソッド63の機能拡張により実現する。すなわち、リモートホスト1R内のデータ処理部30の処理結果を同ホスト1R内の処理結果記憶部50にregisterメソッド51により登録すると、その処理結果のIDを利用可能範囲ID管理テーブル66に登録するため、そのregisterメソッド51から同ホスト1R内の利用可能範囲制御部60のaddメソッド63が呼び出されるわけであるが、このとき第2実施形態のaddメソッド63であれば、利用可能範囲ID管理テーブル66の、その時にスレッド変数として受け渡された利用可能範囲IDに対応する処理結果ID配列に対し、引数である処理結果IDを登録するだけである。これに対し、この実施形態のaddメソッド63は、スレッド変数として受け取った利用可能範囲IDが利用可能範囲ID管理テーブル66に登録済みかどうかを調べ、未登録であれば、そのテーブル66にその利用可能範囲ID用の新たなエントリを作成した上で、そのエントリの処理結果ID配列に、引数の処理結果IDを登録する。
In this case, registering the inherited usable range ID in the usable
なお、リモートホスト1Rでのスクリプトの処理結果は、呼出元のホスト1P又は1Rに処理結果IDの形で返されるので、呼出元はその処理結果IDを、そのスクリプトの呼び出しを行ったスレッドの利用可能範囲IDに対応づけて、利用可能範囲ID管理テーブル66に登録することができる。
Since the script processing result at the
また、利用可能範囲IDに基づくアクセス制御では、処理結果記憶部50が他のホスト上の処理結果実体を要求する上記(43)のようなHTTPリクエストを作成・送信する際、そのリクエストのヘッダに、上記(61)の様に利用可能範囲IDを組み込んで送るようにする。このリクエストを受け取ったホストの処理結果記憶部50は、自ホスト内の利用可能範囲制御部60に対するvalidateメソッド64を呼び出し、そのリクエストヘッダに組み込まれた利用可能範囲IDが、そのリクエストが要求する処理結果IDの処理結果にアクセス可能かどうかを判定させる。そして、判定の結果、アクセス可能ならばその処理結果を含むHTTPレスポンスを呼出元ホストの処理結果記憶部50に返す。逆に、アクセス不可と判定された場合は、その旨を示すデータを含んだHTTPレスポンスを呼出元ホストの判定結果記憶部50に返す。
In the access control based on the usable range ID, when the processing
また、クライアント2からのリクエストで要求されたスクリプトの処理が終了すると、ポータルホスト1Pの処理制御部10が同ホスト1P内の利用可能範囲制御部60のcloseメソッド62を呼び出して、そのリクエストに係る処理結果の削除を行うが、このときその利用可能範囲制御部60は、そのリクエストの処理の際に呼び出したリモートホスト1Rの利用可能範囲制御部60のcloseメソッド62を呼び出す。この呼び出しは、ホスト間の他の要求送信の場合と同様、HTTPリクエストで行えばよい。このHTTPリクエストのヘッダには対象となる利用可能範囲IDを組み込む。
When the processing of the script requested by the request from the
このHTTPリクエストは、システム中に存在するすべてのリモートホスト1Rに送信するようにしてもよいが、クライアント2からのリクエストの処理の際に実施に利用したリモートホスト1Rだけに絞り込んでその削除のためのHTTPリクエストを送ることもできる。すなわち、ポータルホスト1Pの利用可能範囲ID管理テーブル66の、close処理対象の利用可能範囲IDのエントリに登録された各処理結果IDを調べれば、各処理結果がどのホスト1P又は1Rにあるか分かる(処理結果IDには、それを生成したホストの識別情報が含まれているから)ので、該当するリモートホスト1Rを特定できるからである。なお、リモートホスト1Rでのスクリプト処理の中で、別のリモートホスト1Rのスクリプト処理を呼び出すこともあり、この場合、ポータルホスト1Pには後者のリモートホスト1Rの処理結果のIDは戻らないことがある。しかし、closeメソッド62を呼び出されたリモートホスト1Rが、自らが呼び出した他のホストに対してcloseメソッド62を呼び出すようにしておけば、そのような場合でも、クライアント2からのリクエストの処理の際に生成された、各ホスト上の中間処理結果を全て削除することができる。
This HTTP request may be transmitted to all the
以上、ネットワークを介した分散処理における利用可能範囲IDベースのアクセス管理について説明したが、有効期間管理部70による記憶領域確保のための処理も、それと同様の仕組みで、分散処理対応できる。 As described above, the available range ID-based access management in the distributed processing via the network has been described. However, the processing for securing the storage area by the effective period management unit 70 can also support the distributed processing by the same mechanism.
すなわち、スクリプト中の有効期間の始点から終点までの間に、複数のホスト1P及び1Rでの処理が記述されている場合は、そのスクリプトを実行しているホストがその始点で有効期間IDを生成し、他のホストでのスクリプト処理を呼び出す場合は、その有効期間IDをHTTPリクエストのヘッダなどに組み込んで呼び出し先のホストに伝達すればよい。呼び出し先のホストは、その有効期間IDを自ホストの有効期間ID管理テーブル75に登録する。これは、addメソッド63の機能追加によりリモートホスト1Rが継承した利用可能範囲IDを管理テーブル66に登録したのと同様、addメソッド73の機能拡張により対応できる。呼出元から実行を指示されたスクリプトの中で他のホストの別のスクリプトを呼び出す場合には、そのためのHTTPリクエストにその有効期間IDを含めて送ることで、有効期間IDを連鎖的に継承させる。ホストAの処理制御部10からスクリプトの実行要求を受けたホストBの処理制御部10は、少なくともそのスクリプトの処理結果の処理結果IDをホストAの処理制御部10に返すので、ホストAの処理制御部10は、その処理結果IDをスレッドの有効期間IDに対応づけて、ホストAの有効期間ID管理テーブル75に登録することができる。
In other words, if a process in a plurality of
また、スクリプトの実行において、有効期間の終点に達すれば、そのスクリプトを実行しているホストは、有効期間中に呼び出した各ホストに対しcloseメソッド72を要求するHTTPリクエストを送る。このリクエストには、対象とする有効期間IDをヘッダとして組み込む。このclose処理のためのリクエストの送り先は、有効期間ID管理テーブル75の当該有効期間IDのエントリに登録された各処理結果IDから判別できる。 In the execution of the script, when the end point of the valid period is reached, the host executing the script sends an HTTP request for requesting the close method 72 to each host called during the valid period. In this request, the target valid period ID is incorporated as a header. The destination of the request for the close process can be determined from each process result ID registered in the entry of the valid period ID in the valid period ID management table 75.
以上のような仕組みにより、分散環境においても、有効期間内の処理により生成された中間処理結果を、有効期間終了後に削除することができる。 With the above mechanism, even in a distributed environment, the intermediate processing result generated by the processing within the effective period can be deleted after the effective period ends.
なお、あるスクリプトに設定された有効期間内から呼び出したスクリプトの中に、別の有効期間の始点及び終点が記述される場合もある。両方のスクリプトが同じホストで実行される場合は、有効期間管理部70がそれらに別々の有効期間IDを付与するので、管理上の問題はないが、それらスクリプトが別のホストで分散処理される場合、異なるホストが同じ値の有効期間IDを付与すると適切な管理ができない。そこで、例えば有効期間IDには、それを付与したホストの識別情報を組み込むようにすれば、このような問題は解消できる。 Note that the start point and end point of another valid period may be described in a script called from within the valid period set for a script. When both scripts are executed on the same host, the validity period management unit 70 assigns different validity period IDs to them, so there is no management problem, but the scripts are distributedly processed on different hosts. In this case, appropriate management cannot be performed if different hosts give valid period IDs having the same value. Therefore, for example, if the identification information of the host to which the valid period ID is added is incorporated in the effective period ID, such a problem can be solved.
次に、図9及び図10のフローチャートを参照して、本実施形態におけるポータルホスト1P及びリモートホスト1Rの処理制御部10の処理の流れを説明する。この処理手順は、利用可能範囲制御部60を含むシステム構成に対応するものである。なお、図9及び図10において、図3及び図7のフローチャートにおけるステップと同様の処理を行うステップには、同一符号を付して詳しい説明は省略する。
Next, a processing flow of the
図9は、ポータルホスト1Pの処理制御部10の処理手順を示す。この手順は、図7に示した第2実施形態の処理制御部10の手順に、S40〜S44の各ステップを加えたものである。すなわち、本実施形態では、処理制御部10は、次の処理指示がS18でスクリプト実行指示と判定であると判定した場合、更にそのスクリプトを実行すべきホストが自ホストか否かを判定する(S40)。この判定は、(41)等に示したスクリプト実行を指示する記述の中で、実行指定ホストを示す最初の引数の値を調べることにより行える。この判定で、実行指定ホストが自ホストであればS12に戻ってそのスクリプトを呼び出し、実行指定ホストが他のホスト(リモートホスト1R)であれば、そのスクリプト実行指示記述中のホスト情報、引数を用いて、該他のホストの処理結果制御部10(サーブレット)を起動するURLを作成し、これに対応したHTTPリクエストを送出する(S42)。そして、そのリクエストに対するHTTPレスポンスを受け取ると、その中に示される処理結果IDを取得し(S44)、S14に戻る。
FIG. 9 shows a processing procedure of the
図10は、リモートホスト1Rの処理制御部10の処理手順を示す。この手順は、図9のポータルホスト1Pの処理手順と比較した場合、利用可能範囲制御部60から利用可能範囲ID付与を受けるステップS5を含まない。利用可能範囲IDは、クライアント2のリクエストに対してポータルホスト1Pで付与され、そのリクエストのために呼ばれる他のホストでは、その利用可能範囲IDを継承すればよいからである。また、ポータルホスト1Pの手順では、依頼されたスクリプトの処理が終わった(S16の判定結果がNo)後、そのスクリプトが別のスクリプトから呼び出されたスクリプトかどうかを判定していたが(S24)、リモートホスト1Rでは、実行するスクリプトは必ず他のスクリプトの中から呼ばれたものなので、S24の判定処理は不要であり、単にそのスクリプトの最終処理結果のIDを呼出元に返す処理を行えばよい(S26)。なお、リモートホスト1Rの処理制御部10は、依頼されたスクリプトの処理を開始する際に、上述のように利用可能範囲IDの生成(openメソッド61)を行わないので、このスクリプトが終了した時点では、関連情報の削除(closeメソッド62)を行わない。この関連情報の削除は、クライアント2からのリクエストで指定されたスクリプトの処理が終了した時に、ポータルホスト1Rからの指示に基づき行われる。
FIG. 10 shows a processing procedure of the
以上に説明した第3実施形態によれば、複数のホスト1P及び1Rが連携して処理を行うシステム構成おいても、上記第1及び第2実施形態と同様の効果を得ることができる。
According to the third embodiment described above, the same effects as those of the first and second embodiments can be obtained even in a system configuration in which a plurality of
また、本実施形態では、各ホスト1P又は1R内の各ユニット(例えばデータ処理部30)が処理のために必要なデータ(中間処理結果)を自ホスト内の処理結果記憶部50に要求し、その処理結果記憶部50が要求されたデータを持たない場合にのみ、そのデータを持つホストからデータを取得し、それをその処理結果記憶部50に登録するようにした。これにより、呼び出されたホストから呼出元のホストに処理結果の実体データを1回転送してコピーすれば、その後呼出元のホストでその処理結果のデータが必要とされた時には、コピーした処理結果実体を再利用できる。これに対し、上記特許文献2の方式では、各処理サーバは自分の処理結果(スナップショット)を保存しているが、自分が呼び出した他の処理サーバの処理結果をコピーして再利用することまではしていない。このため、特許文献2では、ネットワークの負荷が大きいが、本実施形態ではそのような問題は解消乃至軽減できる。
In this embodiment, each unit (for example, the data processing unit 30) in each
また、本実施形態では、各ホスト1P及び1Rに保持される処理結果は、それぞれ利用可能範囲制御部60にて利用可能範囲IDと関連づけて管理されている。このため、スクリプトのデバッグの際、利用可能範囲IDを指定すれば、その利用可能範囲IDに対応する処理結果を各ホスト1P及び1Rから取得し、解析することができる。
In the present embodiment, the processing results held in the
なお、以上の説明では、別のホスト(呼出元)からスクリプトの実行を指示されたホスト(呼出先)は、スクリプトの処理が終わった時点では呼出元に対して処理結果IDのみを返し、その処理結果が必要となったときに呼出元がその処理結果IDを用いて処理結果実体を呼出先から取得して自分の処理結果記憶部50にコピーした。しかし、これは処理手順の一例に過ぎない。この代わりに、呼出先がスクリプトの処理が終わった時点で呼出元に対して処理結果IDと処理結果実体の両方を送り、呼出元がこれを自ホストの処理結果記憶部50に登録するような手順を採用することもできる。また、この場合、呼出先から呼出元へ処理結果実体のみを送り、これを受け取った呼出元がその処理結果実体に新たな処理結果IDを付与して、処理結果記憶部50に登録するという処理手順を用いることも可能である。
In the above description, the host (calling destination) instructed to execute the script from another host (calling source) returns only the processing result ID to the calling source when the script processing is completed. When the processing result becomes necessary, the caller obtains the processing result entity from the callee using the processing result ID and copies it to the own processing
[第4実施形態]
上記第3実施形態では、リモートホスト1Rが、他のホストから実行依頼されたスクリプトをどのように入手するかについては特に限定しなかった。しかし、仮に、リモートホスト1Rに対するリクエストの中で、インターネット等のネットワーク上の任意の場所にあるスクリプトのスクリプト名を実行対象に指定できるようにしたり、或いはリクエスト中にスクリプトそのものを組み込めるようにしたりしたのでは、未知のホストから任意のスクリプトを実行させられる可能性があり、セキュリティ上問題となる場合がある。この第4実施形態はそのような問題に対処するものである。
[Fourth Embodiment]
In the third embodiment, there is no particular limitation on how the
図11に、本実施形態のシステム構成を示す。本システムは、各ホスト1P及び1Rにスクリプト管理部80P及び80Rを加えたものであり、それ以外は第3実施形態のシステムと同じである。
FIG. 11 shows the system configuration of this embodiment. This system is obtained by adding
本実施形態では、リモートホスト1Rは、ポータルホスト1Pからスクリプトを取得して実行するようにする。そして、ポータルホスト1P以外からのスクリプトは受け入れないようにする。
In the present embodiment, the
本実施形態の分散処理システムで実行可能なスクリプトは、すべてポータルホスト1Pのスクリプト管理部80Pに登録される。各スクリプトにはシステム内で一意な識別情報(スクリプトIDと呼ぶ)が割り当てられている。リモートホスト1Rに対するスクリプトの実行指示には、実行対象のスクリプトIDを記述するようにする。そして、この実行指示を受け取ったリモートホスト1Rの処理制御部10は、自ホスト内のスクリプト管理部80Rに対してそのスクリプトIDの示すスクリプト実体を要求する。この要求を受けたスクリプト管理部80Rは、要求されたスクリプトIDに対応するスクリプト実体を持っていれば、それを処理制御部10に返す。持っていなければ、ポータルホスト1Pのスクリプト管理部80Pに対しそのスクリプトIDの情報を含んだリクエストを例えばHTTPを利用して送信し、スクリプト実体を取得して、処理制御部10に渡す。ここで、取得したスクリプト実体を、スクリプト管理部80RにスクリプトIDと対応づけて登録するようにすれば、今後そのスクリプトIDに対する要求を受けたときに、ポータルホスト1Pからスクリプトを取得する必要がなくなる。
All scripts that can be executed by the distributed processing system of this embodiment are registered in the
このような仕組みによれば、リモートホスト1Rは、自分自身が最初から持っているか、ポータルホスト1Pから取得するかしたスクリプトしか実行できないので、未知のホストから任意のスクリプトを実行させられるというようなことは起こらない。
According to such a mechanism, the
なお、以上の例では、リモートホスト1Rはポータルホスト1Pのみからスクリプトを取得したが、リモートホスト1Rからスクリプトを取得できるようにすることもできる。この場合、スクリプトIDとして、そのスクリプトの実体を持つホスト1P又は1Rの識別情報を組み込んだものを用いる。そして各ホストのスクリプト管理部80P又は80Rは、要求されたスクリプトを持っていない場合、そのスクリプトIDに示されたホストに対してスクリプト実体を要求するリクエストを送って、そのスクリプトを取得する。このような仕組みでも、未知のホスト上にあるスクリプトを実行させられることはない。
In the above example, the
[第5実施形態]
第3実施形態では、リモートホスト1Rに対する処理の分散は、スクリプト単位であった。これに対し、この第5実施形態では、データ処理部30の処理の単位で分散を行う場合のシステム構成について説明する。
[Fifth Embodiment]
In the third embodiment, the distribution of processing to the
第5実施形態のシステムの構成を図12に示す。図12において、図1に示した構成要素に想到する構成要素には同一符号を付した。 The system configuration of the fifth embodiment is shown in FIG. In FIG. 12, the same reference numerals are given to the constituent elements that come to the constituent elements shown in FIG. 1.
この実施形態では、スクリプトを実行するのはポータルホスト1Pのみであり、リモートホスト1Rには処理制御部10が設けられない。スクリプト中の個々の処理指示には、つぎのように、それを実行するホストの情報が記述される。
id1 = Host1.Component1.execute(url1)
In this embodiment, only the
id1 = Host1.Component1.execute (url1)
この指示では、Host1が、その処理を実行するホストを示している。ポータルホスト1Pの処理制御部10は、このような処理指示を受けた場合、その処理指示中のホスト情報が自ホストのものか否かを判定し、自ホストでなければ、そのホスト情報が示す他ホストに対してその処理を実行する旨のURLを作成し、それに基づきその他ホストに対してHTTPリクエストを送信する。作成するURLは例えば次のようになる。
http://host1.domain/Component1?method=execute&arg1=url1
In this instruction, Host1 indicates the host that executes the processing. When receiving the processing instruction, the
http: //host1.domain/Component1? method = execute & arg1 = url1
このリクエストは、リモートホスト1Rのウェブサーバで受け付けられる。そして、そのウェブサーバが、Component1という名前で示されるサーブレット(データ処理部30−1)を起動し、引数url1が示す原料データに基づく処理を実行させる。この処理の結果は、リモートホスト1Rの処理結果記憶部50に登録され、そのとき処理結果記憶部50が付与した処理結果IDがそのデータ処理部30−1に返される。データ処理部30−1はその処理結果IDをウェブサーバに返し、ウェブサーバがその処理結果IDを含んだHTTPレスポンスをポータルホスト1Pの処理制御部10に返す。ポータルホスト1Pのデータ処理部30がその処理結果を必要とするときは、上記第3実施形態と同様、ポータルホスト1Pの処理結果記憶部50がそれを持っていればデータ処理部30に提供し、持っていなければリモートホスト1Rの処理結果記憶部50からそれを取得してデータ処理部30に提供する。リモートホスト1Rが別のリモートホスト1Rの処理結果を必要とする場合も同様である。
This request is accepted by the web server of the
以上の各実施形態では、クライアントとホストの間、及びホスト同士の間のリクエストとレスポンスをHTTPで受け渡すようにしたが、これはあくまで一例に過ぎない。また、以上の例では、ホスト1がスクリプトを実行する様にし、リクエストは実行すべきスクリプトを指定することにより行ったが、これも一例に過ぎない。
In each of the embodiments described above, requests and responses between the client and the host and between the hosts are transferred using HTTP, but this is merely an example. In the above example, the
1 ホスト、2 クライアント、10 処理制御部、12 evalメソッド、20 処理制御手順解釈部、30 データ処理部、32 executeメソッド、40 原料データ記憶部、50 処理結果記憶部、51 registerメソッド、52 accessメソッド、53 処理結果管理テーブル。
1 host, 2 clients, 10 processing control unit, 12 eval method, 20 processing control procedure interpretation unit, 30 data processing unit, 32 execute method, 40 raw material data storage unit, 50 processing result storage unit, 51 register method, 52
Claims (9)
前記複数のデータ処理部の処理結果データを記憶するための共有記憶部と、
前記データ処理部から前記共有記憶部への処理結果データの登録要求を受けた場合に、その処理結果データに対して一意な処理結果識別情報を付与し、付与した処理結果識別情報をその処理結果データと対応づけて前記共有記憶部に登録し、その処理結果識別情報を前記登録要求に対する返り値として前記データ処理部に返す処理結果登録手段と、
前記データ処理部から処理結果識別情報を指定した取得要求を受けた場合に、その処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返す処理結果提供手段と、
を備え、
前記各データ処理部は、処理結果識別情報を処理パラメータとして含む起動要求により起動された場合、その処理結果識別情報を含む取得要求を前記処理結果提供手段に送ってその処理結果識別情報に対応する処理結果データを受け取り、その処理結果データを用いて自らの単位処理を実行すると共に、その単位処理により得られる処理結果データを記憶するために前記処理結果登録手段に対して登録要求を行い、
前記連携処理装置は、複数の単位処理を含んだ処理手順の実行要求をクライアント装置から受け取り、その処理手順に記述された各単位処理に対応するデータ処理部を順に起動して各々の単位処理を実行させる処理制御部、を更に備え、
前記各データ処理部は、前記登録要求に対して前記処理結果登録手段から受け取った処理結果識別情報を前記処理制御部に返し、
前記処理制御部は、前記データ処理部から返された処理結果識別情報を、そのデータ処理部の処理結果データを利用して単位処理を行う他のデータ処理部に対して処理パラメータとして渡し、
前記連携処理装置は、
クライアント装置からの処理手順の実行要求に対して一意な利用可能範囲識別情報を付与し、付与した利用可能範囲識別情報を前記処理制御部に渡す利用可能範囲識別情報付与手段と、
各利用可能範囲識別情報に対応する1以上の処理結果識別情報を保持する利用可能範囲情報管理手段と、
を更に備え、
前記処理制御部は、前記利用可能範囲識別情報付与手段から付与された利用可能範囲識別情報を、前記処理手順の中で起動する前記データ処理部に対して渡し、
前記データ処理部は、前記処理制御部から渡された利用可能範囲識別情報を前記処理結果登録手段に対する登録要求の際に前記処理結果登録手段に渡し、
前記処理結果登録手段は、前記データ処理部から登録要求の際に渡された利用可能範囲識別情報を、その登録要求の対象である処理結果データに対応する処理結果識別情報と対応づけて前記利用可能範囲情報管理手段に登録し、
前記データ処理部は、前記処理制御部から渡された利用可能範囲識別情報を前記処理結果提供手段に対する取得要求の際に前記処理結果提供手段に渡し、
前記処理結果提供手段は、前記データ処理部から取得要求に係る処理結果識別情報が、その取得要求の際に渡された利用可能範囲識別情報に対応づけて前記利用可能範囲情報管理手段に保持されているか否かを調べ、保持されている場合にのみその処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返す、
ことを特徴とする連携処理装置。 A cooperative processing device that executes a requested process by operating a plurality of data processing units, each of which executes a predetermined unit process,
A shared storage unit for storing processing result data of the plurality of data processing units;
When a registration request for processing result data from the data processing unit to the shared storage unit is received, unique processing result identification information is given to the processing result data, and the given processing result identification information is used as the processing result. Processing result registration means for registering in the shared storage unit in association with data and returning the processing result identification information to the data processing unit as a return value for the registration request;
When receiving an acquisition request specifying processing result identification information from the data processing unit, processing result providing means for acquiring processing result data corresponding to the processing result identification information from the shared storage unit and returning it to the data processing unit When,
With
When each data processing unit is activated by an activation request including processing result identification information as a processing parameter, the data processing unit sends an acquisition request including the processing result identification information to the processing result providing unit, and corresponds to the processing result identification information processing result received data, with its own execution unit processing using the processing result data, have rows registration request to the processing result registration means for storing the processing result data obtained by the unit process,
The cooperative processing device receives a request for execution of a processing procedure including a plurality of unit processes from the client device, and sequentially activates each data processing unit corresponding to each unit processing described in the processing procedure to execute each unit processing. A processing control unit to be executed;
Each of the data processing units returns processing result identification information received from the processing result registration unit in response to the registration request to the processing control unit,
The processing control unit passes the processing result identification information returned from the data processing unit as a processing parameter to another data processing unit that performs unit processing using the processing result data of the data processing unit,
The cooperation processing device
A usable range identification information giving means for giving unique usable range identification information to the execution request of the processing procedure from the client device, and passing the given usable range identification information to the processing control unit;
Usable range information management means for holding one or more processing result identification information corresponding to each usable range identification information;
Further comprising
The processing control unit passes the usable range identification information given from the usable range identification information giving unit to the data processing unit activated in the processing procedure,
The data processing unit passes the usable range identification information passed from the processing control unit to the processing result registration unit at the time of a registration request to the processing result registration unit,
The processing result registration unit associates the usable range identification information passed from the data processing unit at the time of the registration request with the processing result identification information corresponding to the processing result data that is the target of the registration request, and Register with the possible range information management means,
The data processing unit passes the usable range identification information passed from the processing control unit to the processing result providing unit in an acquisition request to the processing result providing unit,
The processing result providing unit holds the processing result identification information related to the acquisition request from the data processing unit in the usable range information management unit in association with the usable range identification information passed at the time of the acquisition request. Whether or not, and only when it is held, processing result data corresponding to the processing result identification information is acquired from the shared storage unit and returned to the data processing unit,
A cooperative processing apparatus characterized by that.
前記処理制御部は、前記処理手順中のデバッグモード指示を実行する場合、その処理手順の利用可能範囲識別情報を伴うデバッグモード指示を前記デバッグモード管理手段に送り、
前記処理結果提供手段は、その取得要求の際に渡された利用可能範囲識別情報がデバッグ対象であるか否かを前記デバッグモード管理手段を参照して求め、デバッグ対象である場合には、取得要求の対象である処理結果識別情報がその利用可能範囲識別情報に対応づけて前記利用可能範囲情報管理手段に保持されているか否かによらず、前記処理結果提供手段がその処理結果識別情報に対応する処理結果データをそのデータ処理部に提供する、
ことを特徴とする請求項1記載の連携処理装置。 A debug mode management means for storing that the usable range identification information is a debug target when a debug mode with usable range identification information is instructed;
The process control unit, when executing a debug mode instruction during the process procedure, sends a debug mode instruction with usable range identification information of the process procedure to the debug mode management means,
The processing result providing means refers to the debug mode management means to determine whether or not the usable range identification information passed at the time of the acquisition request is a debug target. Regardless of whether or not the processing result identification information that is the target of the request is held in the usable range information management unit in association with the usable range identification information, the processing result providing unit includes the processing result identification information. Provide corresponding processing result data to the data processing unit,
The cooperation processing apparatus according to claim 1 .
前記複数のデータ処理部の処理結果データを記憶するための共有記憶部と、
前記データ処理部から前記共有記憶部への処理結果データの登録要求を受けた場合に、その処理結果データに対して一意な処理結果識別情報を付与し、付与した処理結果識別情報をその処理結果データと対応づけて前記共有記憶部に登録し、その処理結果識別情報を前記登録要求に対する返り値として前記データ処理部に返す処理結果登録手段と、
前記データ処理部から処理結果識別情報を指定した取得要求を受けた場合に、その処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返す処理結果提供手段と、
を備え、
前記各データ処理部は、処理結果識別情報を処理パラメータとして含む起動要求により起動された場合、その処理結果識別情報を含む取得要求を前記処理結果提供手段に送ってその処理結果識別情報に対応する処理結果データを受け取り、その処理結果データを用いて自らの単位処理を実行すると共に、その単位処理により得られる処理結果データを記憶するために前記処理結果登録手段に対して登録要求を行い、
前記連携処理装置は、複数の単位処理を含んだ処理手順の実行要求をクライアント装置から受け取り、その処理手順に記述された各単位処理に対応するデータ処理部を順に起動して各々の単位処理を実行させる処理制御部、を更に備え、
前記各データ処理部は、前記登録要求に対して前記処理結果登録手段から受け取った処理結果識別情報を前記処理制御部に返し、
前記処理制御部は、前記データ処理部から返された処理結果識別情報を、そのデータ処理部の処理結果データを利用して単位処理を行う他のデータ処理部に対して処理パラメータとして渡し、
前記連携処理装置は、
有効期間開始要求に応じて、一意な有効期間識別情報を付与し、付与した有効期間識別情報を前記処理制御部に返す有効期間開始手段と、
各有効期間識別情報に対応する1以上の処理結果識別情報を保持する有効期間情報管理手段と、
有効期間識別情報を指定した有効期間終了要求に応じて、前記有効期間情報管理手段に保持されたその有効期間識別情報に対応する各処理結果識別情報に対応する処理結果データを、前記共有記憶部から削除する有効期間終了手段と、
を更に備え、
前記処理制御部は、前記処理手順中の有効期間の開始指示を実行する場合は、前記有効期間開始手段に有効期間開始要求を行い、この要求に応じて前記有効期間開始手段から付与された有効期間識別情報を受け取り、この有効期間識別情報を、前記処理手順の中で前記有効期間の開始指示に対応する終了指示までの間に起動する前記データ処理部に対して渡し、
前記データ処理部は、前記処理制御部から渡された有効期間識別情報を前記処理結果登録手段に対する登録要求の際に前記処理結果登録手段に渡し、
前記処理結果登録手段は、前記データ処理部から登録要求の際に渡された有効期間識別情報を、その登録要求の対象である処理結果データに対応する処理結果識別情報と対応づけて前記有効期間情報管理手段に登録し、
前記処理制御部は、前記処理手順中の有効期間の終了指示を実行する場合は、前記有効期間終了手段に対して、その有効期間の有効期間識別情報を伴う有効期間終了要求を行う、
ことを特徴とする連携処理装置。 A cooperative processing device that executes a requested process by operating a plurality of data processing units, each of which executes a predetermined unit process,
A shared storage unit for storing processing result data of the plurality of data processing units;
When a registration request for processing result data from the data processing unit to the shared storage unit is received, unique processing result identification information is given to the processing result data, and the given processing result identification information is used as the processing result. Processing result registration means for registering in the shared storage unit in association with data and returning the processing result identification information to the data processing unit as a return value for the registration request;
When receiving an acquisition request specifying processing result identification information from the data processing unit, processing result providing means for acquiring processing result data corresponding to the processing result identification information from the shared storage unit and returning it to the data processing unit When,
With
When each data processing unit is activated by an activation request including processing result identification information as a processing parameter, the data processing unit sends an acquisition request including the processing result identification information to the processing result providing unit, and corresponds to the processing result identification information Receives the processing result data, executes its own unit processing using the processing result data, and makes a registration request to the processing result registration means for storing the processing result data obtained by the unit processing,
The cooperative processing device receives a request for execution of a processing procedure including a plurality of unit processes from the client device, and sequentially activates each data processing unit corresponding to each unit processing described in the processing procedure to execute each unit processing. A processing control unit to be executed;
Each of the data processing units returns processing result identification information received from the processing result registration unit in response to the registration request to the processing control unit,
The processing control unit passes the processing result identification information returned from the data processing unit as a processing parameter to another data processing unit that performs unit processing using the processing result data of the data processing unit,
The cooperation processing device
In response to the effective period start request, an effective period starting unit that assigns unique effective period identification information and returns the granted effective period identification information to the processing control unit,
Valid period information management means for holding one or more processing result identification information corresponding to each valid period identification information;
In response to an effective period end request specifying effective period identification information, the shared storage unit stores processing result data corresponding to each processing result identification information corresponding to the effective period identification information held in the effective period information management unit. Expiration date expiry means to be removed from,
Further comprising
The process control unit, when executing an instruction to start an effective period in the processing procedure, makes an effective period start request to the effective period start unit, and in response to the request, the effective period start unit assigns the effective period start unit The period identification information is received, and the validity period identification information is passed to the data processing unit that is activated until the end instruction corresponding to the validity period start instruction in the processing procedure,
The data processing unit passes the valid period identification information passed from the processing control unit to the processing result registration unit at the time of a registration request to the processing result registration unit,
The processing result registration means associates the validity period identification information passed at the time of a registration request from the data processing unit with the processing result identification information corresponding to the processing result data that is the object of the registration request, and Register with information management means,
The process control unit, when executing an instruction to end an effective period in the processing procedure, makes an effective period end request with effective period identification information of the effective period to the effective period end unit.
Collaboration processing apparatus you wherein a.
前記処理制御部は、前記処理手順中に処理結果識別情報を指定した削除対象除外指示が記述されている場合は、その処理結果識別情報を伴う削除対象除外要求を前記削除対象除外手段に実行させる、
ことを特徴とする請求項3記載の連携処理装置。 In response to the deletion target exclusion request accompanied by the processing result identification information, further comprising a deletion target exclusion means for excluding the processing result data corresponding to the processing result identification information from the deletion target from the shared storage unit by the valid period ending means. ,
When the deletion target exclusion instruction specifying the processing result identification information is described in the processing procedure, the processing control unit causes the deletion target exclusion unit to execute a deletion target exclusion request with the processing result identification information. ,
The cooperation processing apparatus according to claim 3 .
前記処理制御部は、前記処理手順中のデバッグモード指示を実行する場合、有効期間識別情報を伴うデバッグモード指示を前記デバッグモード管理手段に送り、
前記有効期間終了手段は、前記有効期間終了要求に指定された有効期間識別情報がデバッグ対象であるか否かを前記デバッグモード管理手段を参照して求め、デバッグ対象である場合には、前記有効期間情報管理手段に保持されたその有効期間識別情報に対応する各処理結果識別情報に対応する処理結果データの前記共有記憶部からの削除を行わない、
ことを特徴とする請求項3記載の連携処理装置。 A debug mode management means for storing that the valid period identification information is a debug target when a debug mode with valid period identification information is instructed;
The process control unit, when executing a debug mode instruction during the processing procedure, sends a debug mode instruction with valid period identification information to the debug mode management means,
The effective period ending means obtains whether or not the effective period identification information specified in the effective period end request is a debug target by referring to the debug mode management means. Do not delete the processing result data corresponding to each processing result identification information corresponding to the validity period identification information held in the period information management means from the shared storage unit,
The cooperation processing apparatus according to claim 3 .
各ホスト装置は、
各々が単位処理を実行する1以上のデータ処理部と、
前記データ処理部の処理結果データを記憶するための共有記憶部と、
前記データ処理部から前記共有記憶部への処理結果データの登録要求を受けた場合に、その処理結果データに対して一意な処理結果識別情報を付与し、付与した処理結果識別情報をその処理結果データと対応づけて前記共有記憶部に登録し、その処理結果識別情報を前記登録要求に対する返り値として前記データ処理部に返す処理結果登録手段と、
前記データ処理部から処理結果識別情報を指定した取得要求を受けた場合に、その処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返す処理結果提供手段と、
を備え、
前記各データ処理部は、処理結果識別情報を処理パラメータとして含む起動要求により起動された場合、その処理結果識別情報を含む取得要求を前記処理結果提供手段に送ってその処理結果識別情報に対応する処理結果データを受け取り、その処理結果データを用いて自らの単位処理を実行すると共に、その単位処理により得られる処理結果データを記憶するために前記処理結果登録手段に対して登録要求を行い、当該データ処理部が他のホスト装置から呼び出されたものである場合はその登録要求に対する返り値として受け取った処理結果識別情報を呼出元である該他のホスト装置に返し、
前記処理結果提供手段は、前記データ処理部からの取得要求に指定された処理結果識別情報に対応する処理結果データが自ホスト装置の前記共有記憶部にない場合に、その処理結果識別情報が示すホスト装置の共有記憶部に対してその処理結果識別情報を伴う取得要求を行い、この取得要求に対してその共有記憶部から返されてきた処理結果データをそのデータ処理部に渡すと共に、その処理結果データをその処理結果識別情報と対応づけて自ホスト装置の前記共有記憶部に登録し、
前記複数のホスト装置は、前記データ処理部の一つとして、複数の単位処理を含んだ処理手順の実行を制御する処理制御部を備え、ホスト装置内の複数のデータ処理部のうちこの処理制御部のみが、他のホスト装置内のデータ処理部に対する起動要求を発し、
前記ホスト装置の処理制御部は、他のホスト装置の複数のデータ処理部のうちの前記処理制御部にのみ起動要求を発することができ、
前記複数のホスト装置は、クライアント装置からの処理手順の実行要求を受け付けるポータルホスト装置と、それ以外のリモートホスト装置とに分類され、
前記ポータルホスト装置は、
クライアント装置からの処理手順の実行要求に対して一意な利用可能範囲識別情報を付与し、付与した利用可能範囲識別情報を該ポータルホスト装置の処理制御部に渡す利用可能範囲識別情報付与手段と、
各利用可能範囲識別情報に対応する1以上の処理結果識別情報を保持する利用可能範囲情報管理手段と、
を備え、
該ポータルホスト装置の前記処理制御部は、前記利用可能範囲識別情報付与手段から付与された利用可能範囲識別情報を、前記処理手順の中で起動する自ホスト装置内の前記データ処理部に対して渡すと共に、その処理手順の中で他のホスト装置に対する第2の処理手順の実行指示が含まれる場合は、該他のホスト装置の処理制御部に対し、該第2の処理手順の実行要求をその利用可能範囲識別情報と共に渡し、
前記リモートホスト装置は、
各利用可能範囲識別情報に対応する1以上の処理結果識別情報を保持する利用可能範囲情報管理手段と、
他のホスト装置から処理手順の実行要求を受けた場合に、その実行要求と共に受け取った利用可能範囲識別情報を当該ホスト装置内の前記利用可能範囲情報管理手段に登録する手段と、
を備え、
該リモートホスト装置の前記処理制御部は、前記他のホスト装置からの処理手順の実行要求と共に受け取った利用可能範囲識別情報を、その処理手順の中で起動する自ホスト装置内の前記データ処理部に対して渡すと共に、その処理手順の中で他のホスト装置に対する第2の処理手順の実行指示が含まれる場合は、該他のホスト装置の処理制御部に対し、該第2の処理手順の実行要求をその利用可能範囲識別情報と共に渡し、
前記各ホスト装置の前記データ処理部は、自ホスト装置の前記処理制御部から渡された利用可能範囲識別情報を自ホスト装置の前記処理結果登録手段に対する登録要求の際に前記処理結果登録手段に渡し、
該各ホスト装置の前記処理結果登録手段は、自ホスト装置の前記データ処理部から登録要求の際に渡された利用可能範囲識別情報を、その登録要求の対象である処理結果データに対応する処理結果識別情報と対応づけて自ホスト装置の前記利用可能範囲情報管理手段に登録し、
前記各ホスト装置の前記データ処理部は、自ホスト装置の前記処理制御部から渡された利用可能範囲識別情報を自ホスト装置の前記処理結果提供手段に対する取得要求の際に前記処理結果提供手段に渡し、
前記各ホスト装置の前記処理結果提供手段は、自ホスト装置の前記データ処理部から取得要求に係る処理結果識別情報が自ホスト装置の前記共有記憶部にある場合には、その処理結果識別情報が取得要求と共に渡された利用可能範囲識別情報に対応づけて自ホスト装置の前記利用可能範囲情報管理手段に保持されているか否かを調べ、保持されている場合にのみその処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返し、自ホスト装置の前記データ処理部から取得要求に係る処理結果識別情報が自ホスト装置の前記共有記憶部にない場合には、その処理結果識別情報が示すホスト装置の共有記憶部に対してその処理結果識別情報とその利用可能範囲識別情報とを伴う取得要求を行い、
前記各ホスト装置の前記処理結果提供手段は、他のホスト装置の前記処理結果提供手段から処理結果識別情報と利用可能範囲識別情報とを伴う取得要求を受けた場合、その処理結果識別情報が自ホスト装置内の前記利用可能範囲管理手段にその利用可能範囲識別情報と対応づけて保持されているか否かを調べ、保持されている場合にのみその処理結果識別情報に対応する処理結果データを自ホスト装置の前記共有記憶部から取得して前記他の装置の前記処理結果提供手段に返す、
ことを特徴とする連携処理システム。 A cooperative processing system that executes a requested process by operating a plurality of host devices connected via a network in a cooperative manner,
Each host device
One or more data processing units each executing unit processing;
A shared storage unit for storing processing result data of the data processing unit;
When a registration request for processing result data from the data processing unit to the shared storage unit is received, unique processing result identification information is given to the processing result data, and the given processing result identification information is used as the processing result. Processing result registration means for registering in the shared storage unit in association with data and returning the processing result identification information to the data processing unit as a return value for the registration request;
When receiving an acquisition request specifying processing result identification information from the data processing unit, processing result providing means for acquiring processing result data corresponding to the processing result identification information from the shared storage unit and returning it to the data processing unit When,
With
When each data processing unit is activated by an activation request including processing result identification information as a processing parameter, the data processing unit sends an acquisition request including the processing result identification information to the processing result providing unit, and corresponds to the processing result identification information The processing result data is received, the unit processing is executed using the processing result data, and a registration request is made to the processing result registration means to store the processing result data obtained by the unit processing. If the data processing unit is called from another host device, the processing result identification information received as a return value for the registration request is returned to the other host device that is the call source,
The processing result providing means indicates the processing result identification information when there is no processing result data corresponding to the processing result identification information specified in the acquisition request from the data processing unit in the shared storage unit of the own host device. An acquisition request with the processing result identification information is made to the shared storage unit of the host device, and the processing result data returned from the shared storage unit in response to the acquisition request is passed to the data processing unit, and the processing The result data is registered in the shared storage unit of the own host device in association with the processing result identification information,
The plurality of host devices include, as one of the data processing units, a processing control unit that controls execution of a processing procedure including a plurality of unit processes, and the processing control among the plurality of data processing units in the host device. Only the activation request to the data processing unit in the other host device,
The processing control unit of the host device can issue an activation request only to the processing control unit among a plurality of data processing units of other host devices,
The plurality of host devices are classified into a portal host device that receives a processing procedure execution request from a client device, and other remote host devices,
The portal host device
A usable range identification information giving means for giving unique usable range identification information to a processing procedure execution request from a client device, and passing the given usable range identification information to the processing control unit of the portal host device;
Usable range information management means for holding one or more processing result identification information corresponding to each usable range identification information;
With
The processing control unit of the portal host device sends the usable range identification information given from the usable range identification information giving unit to the data processing unit in the own host device that is activated in the processing procedure. When the processing procedure includes an instruction to execute the second processing procedure for another host device, a request to execute the second processing procedure is sent to the processing control unit of the other host device. Pass along with its available range identification information,
The remote host device is
Usable range information management means for holding one or more processing result identification information corresponding to each usable range identification information;
Means for registering the usable range identification information received together with the execution request in the usable range information managing means in the host device when a processing procedure execution request is received from another host device;
With
The processing control unit of the remote host device uses the usable range identification information received together with the execution request of the processing procedure from the other host device, and the data processing unit in the own host device that starts in the processing procedure And when the execution instruction of the second processing procedure for another host device is included in the processing procedure, the processing control unit of the other host device is informed of the second processing procedure. Pass the execution request along with its available range identification information,
The data processing unit of each host device sends the usable range identification information passed from the processing control unit of the host device to the processing result registration unit at the time of a registration request to the processing result registration unit of the host device. Hand over,
The processing result registration unit of each host device uses the usable range identification information passed from the data processing unit of the host device at the time of the registration request to the processing corresponding to the processing result data that is the target of the registration request. In association with the result identification information, register it in the usable range information management means of the own host device,
The data processing unit of each host device sends the usable range identification information passed from the processing control unit of its own host device to the processing result providing unit at the time of an acquisition request to the processing result providing unit of its own host device. Hand over,
The processing result providing means of each of the host devices, when the processing result identification information related to the acquisition request from the data processing unit of the own host device is in the shared storage unit of the own host device, Corresponding to the usable range identification information passed along with the acquisition request, it is checked whether it is held in the usable range information management means of the own host device, and if it is held, it corresponds to the processing result identification information Processing result data to be acquired from the shared storage unit and returned to the data processing unit, and processing result identification information related to an acquisition request from the data processing unit of the own host device is not in the shared storage unit of the own host device Makes an acquisition request with the processing result identification information and the usable range identification information to the shared storage unit of the host device indicated by the processing result identification information,
When the processing result providing unit of each host device receives an acquisition request with processing result identification information and usable range identification information from the processing result providing unit of another host device, the processing result identification information is automatically stored in the processing result providing unit. It is checked whether or not the usable range management means in the host device is held in association with the usable range identification information, and if it is held, the processing result data corresponding to the processing result identification information is automatically stored. Acquired from the shared storage unit of the host device and returned to the processing result providing means of the other device;
A cooperative processing system characterized by that.
各ホスト装置は、
各々が単位処理を実行する1以上のデータ処理部と、
前記データ処理部の処理結果データを記憶するための共有記憶部と、
前記データ処理部から前記共有記憶部への処理結果データの登録要求を受けた場合に、その処理結果データに対して一意な処理結果識別情報を付与し、付与した処理結果識別情報をその処理結果データと対応づけて前記共有記憶部に登録し、その処理結果識別情報を前記登録要求に対する返り値として前記データ処理部に返す処理結果登録手段と、
前記データ処理部から処理結果識別情報を指定した取得要求を受けた場合に、その処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返す処理結果提供手段と、
を備え、
前記各データ処理部は、処理結果識別情報を処理パラメータとして含む起動要求により起動された場合、その処理結果識別情報を含む取得要求を前記処理結果提供手段に送ってその処理結果識別情報に対応する処理結果データを受け取り、その処理結果データを用いて自らの単位処理を実行すると共に、その単位処理により得られる処理結果データを記憶するために前記処理結果登録手段に対して登録要求を行い、当該データ処理部が他のホスト装置から呼び出されたものである場合はその登録要求に対する返り値として受け取った処理結果識別情報とそれに対応して前記共有記憶部に登録された処理結果データを呼出元である該他のホスト装置に返し、
前記各データ処理部は、自らの単位処理の実行の中の部分処理のために他のホスト装置のデータ処理部を呼び出した場合、その呼出に対して該他のホスト装置のデータ処理部から返される処理結果識別情報と処理結果データとを前記共有記憶部に登録し、
前記複数のホスト装置は、前記データ処理部の一つとして、複数の単位処理を含んだ処理手順の実行を制御する処理制御部を備え、ホスト装置内の複数のデータ処理部のうちこの処理制御部のみが、他のホスト装置内のデータ処理部に対する起動要求を発し、
前記ホスト装置の処理制御部は、他のホスト装置の複数のデータ処理部のうちの前記処理制御部にのみ起動要求を発することができ、
前記複数のホスト装置は、クライアント装置からの処理手順の実行要求を受け付けるポータルホスト装置と、それ以外のリモートホスト装置とに分類され、
前記ポータルホスト装置は、
クライアント装置からの処理手順の実行要求に対して一意な利用可能範囲識別情報を付与し、付与した利用可能範囲識別情報を該ポータルホスト装置の処理制御部に渡す利用可能範囲識別情報付与手段と、
各利用可能範囲識別情報に対応する1以上の処理結果識別情報を保持する利用可能範囲情報管理手段と、
を備え、
該ポータルホスト装置の前記処理制御部は、前記利用可能範囲識別情報付与手段から付与された利用可能範囲識別情報を、前記処理手順の中で起動する自ホスト装置内の前記データ処理部に対して渡すと共に、その処理手順の中で他のホスト装置に対する第2の処理手順の実行指示が含まれる場合は、該他のホスト装置の処理制御部に対し、該第2の処理手順の実行要求をその利用可能範囲識別情報と共に渡し、
前記リモートホスト装置は、
各利用可能範囲識別情報に対応する1以上の処理結果識別情報を保持する利用可能範囲情報管理手段と、
他のホスト装置から処理手順の実行要求を受けた場合に、その実行要求と共に受け取った利用可能範囲識別情報を当該ホスト装置内の前記利用可能範囲情報管理手段に登録する手段と、
を備え、
該リモートホスト装置の前記処理制御部は、前記他のホスト装置からの処理手順の実行要求と共に受け取った利用可能範囲識別情報を、その処理手順の中で起動する自ホスト装置内の前記データ処理部に対して渡すと共に、その処理手順の中で他のホスト装置に対する第2の処理手順の実行指示が含まれる場合は、該他のホスト装置の処理制御部に対し、該第2の処理手順の実行要求をその利用可能範囲識別情報と共に渡し、
前記各ホスト装置の前記データ処理部は、自ホスト装置の前記処理制御部から渡された利用可能範囲識別情報を自ホスト装置の前記処理結果登録手段に対する登録要求の際に前記処理結果登録手段に渡し、
該各ホスト装置の前記処理結果登録手段は、自ホスト装置の前記データ処理部から登録要求の際に渡された利用可能範囲識別情報を、その登録要求の対象である処理結果データに対応する処理結果識別情報と対応づけて自ホスト装置の前記利用可能範囲情報管理手段に登録し、
前記各ホスト装置の前記データ処理部は、自ホスト装置の前記処理制御部から渡された利用可能範囲識別情報を自ホスト装置の前記処理結果提供手段に対する取得要求の際に前記処理結果提供手段に渡し、
前記各ホスト装置の前記処理結果提供手段は、自ホスト装置の前記データ処理部から取得要求に係る処理結果識別情報が自ホスト装置の前記共有記憶部にある場合には、その処理結果識別情報が取得要求と共に渡された利用可能範囲識別情報に対応づけて自ホスト装置の前記利用可能範囲情報管理手段に保持されているか否かを調べ、保持されている場合にのみその処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返し、自ホスト装置の前記データ処理部から取得要求に係る処理結果識別情報が自ホスト装置の前記共有記憶部にない場合には、その処理結果識別情報が示すホスト装置の共有記憶部に対してその処理結果識別情報とその利用可能範囲識別情報とを伴う取得要求を行い、
前記各ホスト装置の前記処理結果提供手段は、他のホスト装置の前記処理結果提供手段から処理結果識別情報と利用可能範囲識別情報とを伴う取得要求を受けた場合、その処理結果識別情報が自ホスト装置内の前記利用可能範囲管理手段にその利用可能範囲識別情報と対応づけて保持されているか否かを調べ、保持されている場合にのみその処理結果識別情報に対応する処理結果データを自ホスト装置の前記共有記憶部から取得して前記他の装置の前記処理結果提供手段に返す、
ことを特徴とする連携処理システム。 A cooperative processing system that executes a requested process by operating a plurality of host devices connected via a network in a cooperative manner,
Each host device
One or more data processing units each executing unit processing;
A shared storage unit for storing processing result data of the data processing unit;
When a registration request for processing result data from the data processing unit to the shared storage unit is received, unique processing result identification information is given to the processing result data, and the given processing result identification information is used as the processing result. Processing result registration means for registering in the shared storage unit in association with data, and returning the processing result identification information to the data processing unit as a return value for the registration request;
When receiving an acquisition request specifying processing result identification information from the data processing unit, processing result providing means for acquiring processing result data corresponding to the processing result identification information from the shared storage unit and returning it to the data processing unit When,
With
When each data processing unit is activated by an activation request including processing result identification information as a processing parameter, the data processing unit sends an acquisition request including the processing result identification information to the processing result providing unit, and corresponds to the processing result identification information The processing result data is received, the unit processing is executed using the processing result data, and a registration request is made to the processing result registration means to store the processing result data obtained by the unit processing. If the data processing unit is called from another host device, the processing result identification information received as a return value for the registration request and the corresponding processing result data registered in the shared storage unit at the caller Return to some other host device,
When each data processing unit calls a data processing unit of another host device for partial processing in the execution of its unit processing, it is returned from the data processing unit of the other host device in response to the call. processing result identification information and the processing result data registered in said shared storage unit that,
The plurality of host devices include, as one of the data processing units, a processing control unit that controls execution of a processing procedure including a plurality of unit processes, and the processing control among the plurality of data processing units in the host device. Only the activation request to the data processing unit in the other host device,
The processing control unit of the host device can issue an activation request only to the processing control unit among a plurality of data processing units of other host devices,
The plurality of host devices are classified into a portal host device that receives a processing procedure execution request from a client device, and other remote host devices,
The portal host device
A usable range identification information giving means for giving unique usable range identification information to a processing procedure execution request from a client device, and passing the given usable range identification information to the processing control unit of the portal host device;
Usable range information management means for holding one or more processing result identification information corresponding to each usable range identification information;
With
The processing control unit of the portal host device sends the usable range identification information given from the usable range identification information giving unit to the data processing unit in the own host device that is activated in the processing procedure. When the processing procedure includes an instruction to execute the second processing procedure for another host device, a request to execute the second processing procedure is sent to the processing control unit of the other host device. Pass along with its available range identification information,
The remote host device is
Usable range information management means for holding one or more processing result identification information corresponding to each usable range identification information;
Means for registering the usable range identification information received together with the execution request in the usable range information managing means in the host device when a processing procedure execution request is received from another host device;
With
The processing control unit of the remote host device uses the usable range identification information received together with the execution request of the processing procedure from the other host device, and the data processing unit in the own host device that starts in the processing procedure And when the execution instruction of the second processing procedure for another host device is included in the processing procedure, the processing control unit of the other host device is informed of the second processing procedure. Pass the execution request along with its available range identification information,
The data processing unit of each host device sends the usable range identification information passed from the processing control unit of the host device to the processing result registration unit at the time of a registration request to the processing result registration unit of the host device. Hand over,
The processing result registration unit of each host device uses the usable range identification information passed from the data processing unit of the host device at the time of the registration request to the processing corresponding to the processing result data that is the target of the registration request. In association with the result identification information, register it in the usable range information management means of the own host device,
The data processing unit of each host device sends the usable range identification information passed from the processing control unit of its own host device to the processing result providing unit at the time of an acquisition request to the processing result providing unit of its own host device. Hand over,
The processing result providing means of each of the host devices, when the processing result identification information related to the acquisition request from the data processing unit of the own host device is in the shared storage unit of the own host device, Corresponding to the usable range identification information passed along with the acquisition request, it is checked whether it is held in the usable range information management means of the own host device, and if it is held, it corresponds to the processing result identification information Processing result data to be acquired from the shared storage unit and returned to the data processing unit, and processing result identification information related to an acquisition request from the data processing unit of the own host device is not in the shared storage unit of the own host device Makes an acquisition request with the processing result identification information and the usable range identification information to the shared storage unit of the host device indicated by the processing result identification information,
When the processing result providing unit of each host device receives an acquisition request with processing result identification information and usable range identification information from the processing result providing unit of another host device, the processing result identification information is automatically stored in the processing result providing unit. It is checked whether or not the usable range management means in the host device is held in association with the usable range identification information, and if it is held, the processing result data corresponding to the processing result identification information is automatically stored. Acquired from the shared storage unit of the host device and returned to the processing result providing means of the other device;
A cooperative processing system characterized by that.
各ホスト装置は、
各々が単位処理を実行する1以上のデータ処理部と、
前記データ処理部の処理結果データを記憶するための共有記憶部と、
前記データ処理部から前記共有記憶部への処理結果データの登録要求を受けた場合に、その処理結果データに対して一意な処理結果識別情報を付与し、付与した処理結果識別情報をその処理結果データと対応づけて前記共有記憶部に登録し、その処理結果識別情報を前記登録要求に対する返り値として前記データ処理部に返す処理結果登録手段と、
前記データ処理部から処理結果識別情報を指定した取得要求を受けた場合に、その処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返す処理結果提供手段と、
を備え、
前記各データ処理部は、処理結果識別情報を処理パラメータとして含む起動要求により起動された場合、その処理結果識別情報を含む取得要求を前記処理結果提供手段に送ってその処理結果識別情報に対応する処理結果データを受け取り、その処理結果データを用いて自らの単位処理を実行すると共に、その単位処理により得られる処理結果データを記憶するために前記処理結果登録手段に対して登録要求を行い、当該データ処理部が他のホスト装置から呼び出されたものである場合はその登録要求に対する返り値として受け取った処理結果識別情報を呼出元である該他のホスト装置に返し、
前記処理結果提供手段は、前記データ処理部からの取得要求に指定された処理結果識別情報に対応する処理結果データが自ホスト装置の前記共有記憶部にない場合に、その処理結果識別情報が示すホスト装置の共有記憶部に対してその処理結果識別情報を伴う取得要求を行い、この取得要求に対してその共有記憶部から返されてきた処理結果データをそのデータ処理部に渡すと共に、その処理結果データをその処理結果識別情報と対応づけて自ホスト装置の前記共有記憶部に登録し、
前記複数のホスト装置は、前記データ処理部の一つとして、複数の単位処理を含んだ処理手順の実行を制御する処理制御部を備え、ホスト装置内の複数のデータ処理部のうちこの処理制御部のみが、他のホスト装置内のデータ処理部に対する起動要求を発し、
前記ホスト装置の処理制御部は、他のホスト装置の複数のデータ処理部のうちの前記処理制御部にのみ起動要求を発することができ、
前記各ホスト装置は、
有効期間開始要求に応じて、一意な有効期間識別情報を付与し、付与した有効期間識別情報を前記処理制御部に返す有効期間開始手段と、
各有効期間識別情報に対応する1以上の処理結果識別情報を保持する有効期間情報管理手段と、
有効期間識別情報を指定した有効期間終了要求に応じて、前記有効期間情報管理手段に保持されたその有効期間識別情報に対応する各処理結果識別情報に対応する処理結果データを、前記共有記憶部から削除する有効期間終了手段と、
を更に備え、
前記処理制御部は、前記処理手順中の有効期間の開始指示を実行する場合は、前記有効期間開始手段に有効期間開始要求を行い、この要求に応じて前記有効期間開始手段から付与された有効期間識別情報を受け取り、この有効期間識別情報を、前記処理手順の中で前記有効期間の開始指示に対応する終了指示までの間に起動する前記データ処理部及び他のホスト装置の処理制御部に対して渡し、
前記データ処理部は、前記処理制御部から渡された有効期間識別情報を前記処理結果登録手段に対する登録要求の際に前記処理結果登録手段に渡し、
前記処理結果登録手段は、前記データ処理部から登録要求の際に渡された有効期間識別情報を、その登録要求の対象である処理結果データに対応する処理結果識別情報と対応づけて前記有効期間情報管理手段に登録し、
前記処理制御部は、前記処理手順中の有効期間の終了指示を実行する場合は、前記有効期間終了手段に対して、その有効期間の有効期間識別情報を伴う有効期間終了要求を行う、
ことを特徴とする連携処理システム。 A cooperative processing system that executes a requested process by operating a plurality of host devices connected via a network in a cooperative manner,
Each host device
One or more data processing units each executing unit processing;
A shared storage unit for storing processing result data of the data processing unit;
When a registration request for processing result data from the data processing unit to the shared storage unit is received, unique processing result identification information is given to the processing result data, and the given processing result identification information is used as the processing result. Processing result registration means for registering in the shared storage unit in association with data and returning the processing result identification information to the data processing unit as a return value for the registration request;
When receiving an acquisition request specifying processing result identification information from the data processing unit, processing result providing means for acquiring processing result data corresponding to the processing result identification information from the shared storage unit and returning it to the data processing unit When,
With
When each data processing unit is activated by an activation request including processing result identification information as a processing parameter, the data processing unit sends an acquisition request including the processing result identification information to the processing result providing unit, and corresponds to the processing result identification information The processing result data is received, the unit processing is executed using the processing result data, and a registration request is made to the processing result registration means to store the processing result data obtained by the unit processing. If the data processing unit is called from another host device, the processing result identification information received as a return value for the registration request is returned to the other host device that is the call source,
The processing result providing means indicates the processing result identification information when there is no processing result data corresponding to the processing result identification information specified in the acquisition request from the data processing unit in the shared storage unit of the own host device. An acquisition request with the processing result identification information is made to the shared storage unit of the host device, and the processing result data returned from the shared storage unit in response to the acquisition request is passed to the data processing unit, and the processing The result data is registered in the shared storage unit of the own host device in association with the processing result identification information,
The plurality of host devices include, as one of the data processing units, a processing control unit that controls execution of a processing procedure including a plurality of unit processes, and the processing control among the plurality of data processing units in the host device. Only the activation request to the data processing unit in the other host device,
The processing control unit of the host device can issue an activation request only to the processing control unit among a plurality of data processing units of other host devices,
Each of the host devices is
In response to the effective period start request, an effective period starting unit that assigns unique effective period identification information and returns the granted effective period identification information to the processing control unit,
Valid period information management means for holding one or more processing result identification information corresponding to each valid period identification information;
In response to an effective period end request specifying effective period identification information, the shared storage unit stores processing result data corresponding to each processing result identification information corresponding to the effective period identification information held in the effective period information management unit. Expiration date expiry means to be removed from,
Further comprising
The process control unit, when executing an instruction to start an effective period in the processing procedure, makes an effective period start request to the effective period start unit, and in response to the request, the effective period start unit assigns the effective period start unit The period identification information is received, and the validity period identification information is sent to the data processing unit and the processing control unit of another host device that are activated before the termination instruction corresponding to the validity period start instruction in the processing procedure. Against
The data processing unit passes the valid period identification information passed from the processing control unit to the processing result registration unit at the time of a registration request to the processing result registration unit,
The processing result registration means associates the validity period identification information passed at the time of a registration request from the data processing unit with the processing result identification information corresponding to the processing result data that is the object of the registration request, and Register with information management means,
The process control unit, when executing an instruction to end an effective period in the processing procedure, makes an effective period end request with effective period identification information of the effective period to the effective period end unit.
A cooperative processing system characterized by that.
各ホスト装置は、
各々が単位処理を実行する1以上のデータ処理部と、
前記データ処理部の処理結果データを記憶するための共有記憶部と、
前記データ処理部から前記共有記憶部への処理結果データの登録要求を受けた場合に、その処理結果データに対して一意な処理結果識別情報を付与し、付与した処理結果識別情報をその処理結果データと対応づけて前記共有記憶部に登録し、その処理結果識別情報を前記登録要求に対する返り値として前記データ処理部に返す処理結果登録手段と、
前記データ処理部から処理結果識別情報を指定した取得要求を受けた場合に、その処理結果識別情報に対応する処理結果データを前記共有記憶部から取得してそのデータ処理部に返す処理結果提供手段と、
を備え、
前記各データ処理部は、処理結果識別情報を処理パラメータとして含む起動要求により起動された場合、その処理結果識別情報を含む取得要求を前記処理結果提供手段に送ってその処理結果識別情報に対応する処理結果データを受け取り、その処理結果データを用いて自らの単位処理を実行すると共に、その単位処理により得られる処理結果データを記憶するために前記処理結果登録手段に対して登録要求を行い、当該データ処理部が他のホスト装置から呼び出されたものである場合はその登録要求に対する返り値として受け取った処理結果識別情報とそれに対応して前記共有記憶部に登録された処理結果データを呼出元である該他のホスト装置に返し、
前記各データ処理部は、自らの単位処理の実行の中の部分処理のために他のホスト装置のデータ処理部を呼び出した場合、その呼出に対して該他のホスト装置のデータ処理部から返される処理結果識別情報と処理結果データとを前記共有記憶部に登録し、
前記複数のホスト装置は、前記データ処理部の一つとして、複数の単位処理を含んだ処理手順の実行を制御する処理制御部を備え、ホスト装置内の複数のデータ処理部のうちこの処理制御部のみが、他のホスト装置内のデータ処理部に対する起動要求を発し、
前記ホスト装置の処理制御部は、他のホスト装置の複数のデータ処理部のうちの前記処理制御部にのみ起動要求を発することができ、
前記各ホスト装置は、
有効期間開始要求に応じて、一意な有効期間識別情報を付与し、付与した有効期間識別情報を前記処理制御部に返す有効期間開始手段と、
各有効期間識別情報に対応する1以上の処理結果識別情報を保持する有効期間情報管理手段と、
有効期間識別情報を指定した有効期間終了要求に応じて、前記有効期間情報管理手段に保持されたその有効期間識別情報に対応する各処理結果識別情報に対応する処理結果データを、前記共有記憶部から削除する有効期間終了手段と、
を更に備え、
前記処理制御部は、前記処理手順中の有効期間の開始指示を実行する場合は、前記有効期間開始手段に有効期間開始要求を行い、この要求に応じて前記有効期間開始手段から付与された有効期間識別情報を受け取り、この有効期間識別情報を、前記処理手順の中で前記有効期間の開始指示に対応する終了指示までの間に起動する前記データ処理部及び他のホスト装置の処理制御部に対して渡し、
前記データ処理部は、前記処理制御部から渡された有効期間識別情報を前記処理結果登録手段に対する登録要求の際に前記処理結果登録手段に渡し、
前記処理結果登録手段は、前記データ処理部から登録要求の際に渡された有効期間識別情報を、その登録要求の対象である処理結果データに対応する処理結果識別情報と対応づけて前記有効期間情報管理手段に登録し、
前記処理制御部は、前記処理手順中の有効期間の終了指示を実行する場合は、前記有効期間終了手段に対して、その有効期間の有効期間識別情報を伴う有効期間終了要求を行う、
ことを特徴とする連携処理システム。 A cooperative processing system that executes a requested process by operating a plurality of host devices connected via a network in a cooperative manner,
Each host device
One or more data processing units each executing unit processing;
A shared storage unit for storing processing result data of the data processing unit;
When a registration request for processing result data from the data processing unit to the shared storage unit is received, unique processing result identification information is given to the processing result data, and the given processing result identification information is used as the processing result. Processing result registration means for registering in the shared storage unit in association with data and returning the processing result identification information to the data processing unit as a return value for the registration request;
When receiving an acquisition request specifying processing result identification information from the data processing unit, processing result providing means for acquiring processing result data corresponding to the processing result identification information from the shared storage unit and returning it to the data processing unit When,
With
When each data processing unit is activated by an activation request including processing result identification information as a processing parameter, the data processing unit sends an acquisition request including the processing result identification information to the processing result providing unit, and corresponds to the processing result identification information The processing result data is received, the unit processing is executed using the processing result data, and a registration request is made to the processing result registration means to store the processing result data obtained by the unit processing. If the data processing unit is called from another host device, the processing result identification information received as a return value for the registration request and the corresponding processing result data registered in the shared storage unit at the caller Return to some other host device,
When each data processing unit calls a data processing unit of another host device for partial processing in the execution of its unit processing, it is returned from the data processing unit of the other host device in response to the call. processing result identification information and the processing result data registered in said shared storage unit that,
The plurality of host devices include, as one of the data processing units, a processing control unit that controls execution of a processing procedure including a plurality of unit processes, and the processing control among the plurality of data processing units in the host device. Only the activation request to the data processing unit in the other host device,
The processing control unit of the host device can issue an activation request only to the processing control unit among a plurality of data processing units of other host devices,
Each of the host devices is
In response to the effective period start request, an effective period starting unit that assigns unique effective period identification information and returns the granted effective period identification information to the processing control unit,
Valid period information management means for holding one or more processing result identification information corresponding to each valid period identification information;
In response to an effective period end request specifying effective period identification information, the shared storage unit stores processing result data corresponding to each processing result identification information corresponding to the effective period identification information held in the effective period information management unit. Expiration date expiry means to be removed from,
Further comprising
The process control unit, when executing an instruction to start an effective period in the processing procedure, makes an effective period start request to the effective period start unit, and in response to the request, the effective period start unit assigns the effective period start unit The period identification information is received, and the validity period identification information is sent to the data processing unit and the processing control unit of another host device that are activated before the termination instruction corresponding to the validity period start instruction in the processing procedure. Against
The data processing unit passes the valid period identification information passed from the processing control unit to the processing result registration unit at the time of a registration request to the processing result registration unit,
The processing result registration means associates the validity period identification information passed at the time of a registration request from the data processing unit with the processing result identification information corresponding to the processing result data that is the object of the registration request, and Register with information management means,
The process control unit, when executing an instruction to end an effective period in the processing procedure, makes an effective period end request with effective period identification information of the effective period to the effective period end unit.
A cooperative processing system characterized by that.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004321445A JP4432733B2 (en) | 2004-11-05 | 2004-11-05 | Cooperation processing apparatus and system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004321445A JP4432733B2 (en) | 2004-11-05 | 2004-11-05 | Cooperation processing apparatus and system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2006134005A JP2006134005A (en) | 2006-05-25 |
| JP4432733B2 true JP4432733B2 (en) | 2010-03-17 |
Family
ID=36727508
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004321445A Expired - Fee Related JP4432733B2 (en) | 2004-11-05 | 2004-11-05 | Cooperation processing apparatus and system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4432733B2 (en) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4852906B2 (en) * | 2005-06-24 | 2012-01-11 | 富士ゼロックス株式会社 | Cooperation processing system and apparatus |
| JP4708311B2 (en) * | 2006-11-10 | 2011-06-22 | 日本電信電話株式会社 | Service cooperation device, service cooperation method, service cooperation program between networks |
| JP4833137B2 (en) * | 2007-03-30 | 2011-12-07 | 日本電信電話株式会社 | Service providing method, service providing apparatus, and service providing program |
| JP2010027007A (en) * | 2008-07-24 | 2010-02-04 | Canon Inc | Processing device, requesting device, and processing method thereof |
| TWI446769B (en) | 2010-10-20 | 2014-07-21 | Htc Corp | Method of handling step execution result in software and application control management object |
| JP5905122B2 (en) * | 2012-11-30 | 2016-04-20 | 株式会社日立製作所 | Management device, management method, and recording medium for storing program |
| JP6204753B2 (en) * | 2013-08-28 | 2017-09-27 | Kddi株式会社 | Distributed query processing apparatus, processing method, and processing program |
| WO2015095411A1 (en) * | 2013-12-17 | 2015-06-25 | Atigeo Llc | Automated experimentation platform |
| JP6299374B2 (en) * | 2014-04-21 | 2018-03-28 | 富士通株式会社 | Processing cooperation method, processing cooperation program, and processing cooperation system |
-
2004
- 2004-11-05 JP JP2004321445A patent/JP4432733B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2006134005A (en) | 2006-05-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110244942B (en) | Page generation method, device and system | |
| US8122292B2 (en) | Debugging of business flows deployed in production servers | |
| US9241047B2 (en) | System and method for providing virtual web access | |
| JP5425699B2 (en) | Information processing apparatus, test case generation method, program, and recording medium | |
| US10372442B2 (en) | Method and system for generating a view incorporating semantically resolved data values | |
| US7016953B2 (en) | HTTP transaction monitor | |
| US11799850B2 (en) | Secure web application delivery platform | |
| WO2020010702A1 (en) | Log search method and system, computer device, and storage medium | |
| US20030200526A1 (en) | Optimistic transaction compiler | |
| CN111880788A (en) | Page rendering method, device, client and computer readable storage medium | |
| JP4432733B2 (en) | Cooperation processing apparatus and system | |
| GB2514460A (en) | Method and system for generating a view | |
| CN103118248B (en) | Monitoring method, monitoring agent, monitoring server and system | |
| US10530709B2 (en) | Container contract for data dependencies | |
| CN115268985B (en) | Mock method and device for RPC service and computer readable storage medium | |
| Erenkrantz | Computational REST: A new model for decentralized, Internet-scale applications | |
| CN117170640A (en) | A component management method, device and readable storage medium for a low-code platform | |
| Troelsen et al. | Introducing ASP. NET MVC | |
| US7209248B1 (en) | Managing the lifetime of distributed resource data using temporal scopes | |
| Raj et al. | Distributed component-based crawler for AJAX applications | |
| JP2000510983A (en) | Method and system for managing a global information entity spanning multiple HTML containers in a multimedia environment | |
| Downey | Spring MVC | |
| CN115514811B (en) | A server proxy access method based on simulated browser | |
| Olsson | Applying REST principles on local client-side APIs | |
| Krause | Enterprise Application Discovery and Monitoring Management with ExplorViz |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071016 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090724 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090915 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091109 |
|
| 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: 20091201 |
|
| 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: 20091214 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4432733 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130108 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130108 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140108 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |