JP4432733B2 - Cooperation processing apparatus and system - Google Patents

Cooperation processing apparatus and system Download PDF

Info

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
Application number
JP2004321445A
Other languages
Japanese (ja)
Other versions
JP2006134005A (en
Inventor
節 國武
惠久 川邉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2004321445A priority Critical patent/JP4432733B2/en
Publication of JP2006134005A publication Critical patent/JP2006134005A/en
Application granted granted Critical
Publication of JP4432733B2 publication Critical patent/JP4432733B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 Patent Document 1. In this method, the procedure information and the intermediate result information of the joining process are circulated in the network as a transfer information unit, while each node that executes each partial process and holds the result acquires the transfer information unit from the network, and transfers the transfer information unit. Based on the procedure information of the information unit, the partial processing result held by the node and the acquired intermediate result information are used to perform a part of the combining process, and the intermediate result information is updated based on the result, and the network is added together with the procedure information. To send.

また、特許文献2には、ウェブサーバ上の原料ファイルを処理サーバに処理させ、複数の処理サーバの処理を連携させることで、複雑な加工を施した処理結果を求めるシステムが開示されている。このシステムでは、ウェブブラウザは、原料ファイルを手続名、パラメータ、コンピュータ名等で修飾した仮想URL(Uniform Resource Locator)によりリクエストを送出する。複数の部分処理を組み合わせた複合的な処理は、部分処理の仮想URLに対し引数とする他の部分処理の仮想URLを組み込む形で表現しており、各処理サーバは、自分宛の仮想URLを解釈してその中に含まれる自分が処理できない引数(仮想URL)が示すリクエストをそれを処理できる処理サーバにHTTP(Hypertext Transfer Protocol)で転送してその処理結果を取得し、それを自分の処理に利用する。各処理サーバは、自分が実行した部分処理の処理結果(スナップショット)を、その処理の元になった仮想URLに対応づけてテーブルに保持する。そして、処理サーバは、送られてきた自分宛の仮想URLに対応するスナップショットが自装置内のテーブルにあるかどうかを調べ、あれば更にその有効性を調べ、有効であればその仮想URLの示す処理を実行せずにそのスナップショットを処理結果として返す。ここで有効性の検査では、スナップショットの作成時刻が、そのスナップショット作成の原料ファイルの更新日時より新しい場合に、有効と判断する。スナップショットの作成には、他の処理サーバの部分処理の処理結果が引数として用いられている場合には、他の処理サーバに対して引数の部分処理のスナップショットの有効性を問い合わせる。ある部分処理の引数のスナップショットのなかに1つでも無効なものがあれば、その部分処理のスナップショットが無効となる。スナップショットが無効であれば、その部分処理は再実行する。ただし、この場合、その部分処理の引数のスナップショットの中に有効なものがあれば、その引数については処理の再実行は行わず、そのスナップショットを利用する。   Patent Document 2 discloses a system for obtaining a processing result obtained by performing complex processing by causing a processing server to process a raw material file on a web server and linking the processing of a plurality of processing servers. In this system, a web browser sends a request by a virtual URL (Uniform Resource Locator) in which a raw material file is modified with a procedure name, a parameter, a computer name, and the like. A composite process combining a plurality of partial processes is expressed by incorporating a virtual URL of another partial process as an argument with respect to the virtual URL of the partial process, and each processing server displays a virtual URL addressed to itself. Interpret and the request indicated by the argument (virtual URL) that cannot be processed by itself is transferred to a processing server that can process the request by HTTP (Hypertext Transfer Protocol), and the processing result is acquired. To use. Each processing server stores the processing result (snapshot) of the partial processing executed by itself in a table in association with the virtual URL that is the source of the processing. Then, the processing server checks whether there is a snapshot corresponding to the sent virtual URL addressed to itself in the table in its own device, and if so, checks its validity. The snapshot is returned as a processing result without executing the indicated process. Here, in the validity check, if the snapshot creation time is newer than the update date and time of the raw material file for the snapshot creation, it is determined to be valid. When the processing result of the partial processing of another processing server is used as an argument for creating the snapshot, the effectiveness of the snapshot of the partial processing of the argument is inquired to the other processing server. If even one of the snapshots of a partial processing argument is invalid, the partial processing snapshot is invalidated. If the snapshot is invalid, the partial process is re-executed. However, in this case, if there is an effective snapshot of the argument of the partial process, the process is not re-executed for the argument, and the snapshot is used.

特開平10−027164号公報Japanese Patent Laid-Open No. 10-027164 特開2000−076118号公報JP 2000-076118 A

特許文献1の方法では、ネットワーク内に巡回させる転送処理単位に中間処理結果のデータ実体が含まれており、ネットワーク負荷が大きいという問題がある。またこの方法では、ノードに転送処理単位が回ってくるごとに、そのノードに対し転送処理単位のデータのコピーが発生する。また、過去に行った処理とまったく同じ処理でも、そのような処理がプログラムに記述されていればそれを繰り返し実行するので、効率が悪い。   In the method of Patent Document 1, there is a problem that a data load as an intermediate processing result is included in a transfer processing unit to be circulated in the network, and the network load is large. Further, in this method, every time a transfer processing unit comes to a node, a copy of data in the transfer processing unit is generated for that node. Further, even if the processing is exactly the same as the processing performed in the past, if such processing is described in the program, it is repeatedly executed, so that the efficiency is low.

特許文献2の方式では、各処理サーバが、自分の行った部分処理のスナップショットを保持し、再利用しているので、過去に行った処理とまったく同じ処理を繰り返すという無駄は生じにくい。しかし、この方法では、処理サーバは、処理が終わった場合、その処理の結果を利用する処理サーバに対し、その処理結果の実体データを送信している。このため、スナップショット利用により各処理サーバの処理負担を低減することはできても、ネットワークの負荷の低減効果は少ない。   In the method of Patent Document 2, since each processing server holds and reuses a snapshot of a partial process performed by itself, it is difficult to waste that the same process as the process performed in the past is repeated. However, in this method, when the processing is completed, the processing server transmits the actual data of the processing result to the processing server that uses the processing result. For this reason, even if the processing load of each processing server can be reduced by using the snapshot, the effect of reducing the load on the network is small.

また、特許文献2の方式では、ある処理を示す仮想URL内に、その処理の引数となる別の処理の仮想URLを入れ子で記述することで、複数の処理サーバでの処理を連携しているが、このような入れ子方式の記述形態では、処理の繰り返しを表現することが困難である。   Further, in the method of Patent Document 2, the processing in a plurality of processing servers is linked by describing a virtual URL of another processing as an argument of the processing in a virtual URL indicating a certain processing in a nested manner. However, it is difficult to express the repetition of processing in such a nested description form.

また、複数の処理サーバを連携させた、例えばパイプライン処理の連携処理を実行する場合、処理サーバの処理結果の実体データを次の処理サーバに渡した時点から該次の処理サーバの処理を開始したのでは、全体の処理に時間を要するという問題がある。この問題は、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 host 1 performs processing for the service by executing a script described in a script language such as Groovy. The request that the client 2 sends to the host 1 for requesting a service includes, for example, a script name (script name) and parameters as arguments of the script.

ホスト1内の処理機構には、処理制御部10、処理制御手順解釈部20、データ処理部30−1,30−2、原料データ記憶部40、処理結果記憶部50が含まれる。   The processing mechanism in the host 1 includes a processing control unit 10, a processing control procedure interpretation unit 20, data processing units 30-1 and 30-2, a raw material data storage unit 40, and a processing result storage unit 50.

データ処理部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 client 2. There is no particular limitation on the contents of unit data processing (hereinafter referred to as “unit processing”). For example, various things such as document summarization and merging of multiple documents can be considered.

図示例では、データ処理部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 host 1 with more data processing units. The processing of the host 1 is realized by linking the unit processing of these data processing units 30-1, 30-2,. Hereinafter, the data processing units 30-1, 30-2,... Are collectively referred to as the data processing unit 30 for matters that are not unique to the data processing units 30-1 and 30-2 and are generally applicable to the data processing units. .

処理制御部10は、それら複数のデータ処理部30の単位処理の連携を制御するユニットである。処理制御部10は、クライアント2からのリクエストに指定されたスクリプトを起動し、そのスクリプトに記述された各単位処理を実行するデータ処理部30を起動して処理を実行させる。このスクリプト実行の際、処理制御部10は、各データ処理部30の処理結果の受け渡しの制御を行う。   The processing control unit 10 is a unit that controls the unit processing of the plurality of data processing units 30. The process control unit 10 activates the script specified in the request from the client 2 and activates the data processing unit 30 that executes each unit process described in the script to execute the process. When executing the script, the process control unit 10 controls the transfer of the processing results of the data processing units 30.

処理制御部10は、サーブレットプログラムとして実装することができる。図示例では、処理制御部10はJava(登録商標)等のクラスとして実装しており、そのクラス名はEvaluatorである。処理制御部10が実行する処理は、evalメソッド12として実装されている。クライアント2は、スクリプトとその実行に必要なパラメータを指定し、ホスト1のEvaluatorクラスのevalメソッド12を呼び出すことで、ホスト1に対して処理を要求することができる。   The process control unit 10 can be implemented as a servlet program. In the illustrated example, the processing control unit 10 is implemented as a class such as Java (registered trademark), and its class name is Evaluator. The process executed by the process control unit 10 is implemented as an eval method 12. The client 2 can request processing from the host 1 by designating a script and parameters necessary for the execution and calling the eval method 12 of the Evaluator class of the host 1.

例えば、ホスト1をウェブアプリケーションサーバとして構成する場合、クライアント2からホスト1へのリクエストは、以下に例示するようなHTTPのURLの形とすることができる。

http://host.domain/Evaluator?method=eval&script=script1.groovy&arg1=aaa&arg2=bbb
… (1)
For example, when the host 1 is configured as a web application server, a request from the client 2 to the host 1 can be in the form of an HTTP URL as exemplified below.

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 host 1, and domain is the domain name of the domain in which the host 1 is located. Evaluator is the Evaluator class to call. In the URL query part (description below “?”), A method name eval to be called, a script name script1.groovy to be executed, and two arguments (parameters) aaa and bbb of the script are described. The number of arguments required by a script (or whether arguments are not required) varies from script to script. Arguments that match the script to be executed are set in the request.

ホスト1が実行するスクリプトには、個々のデータ処理部30の処理(すなわち単位処理)を起動するための式と、別のスクリプトを実行させるための式とを含み得る。また、スクリプト内にはforループなど、従来から知られている各種の制御構造を記述することができ、単位処理又はスクリプトを示す式の並び順や制御構造の記述により、一連の処理を表すことができる。   The script executed by the host 1 may include an expression for starting the processing (that is, unit processing) of each data processing unit 30 and an expression for causing another script to be executed. In addition, various known control structures such as for loops can be described in the script, and a series of processes can be represented by unit processing or the order of expressions indicating the script or the description of the control structure. Can do.

クライアント2から上記(1)のURLに基づくHTTPリクエストがホスト1に送られた場合、ホスト1では、ウェブサーバがそのリクエストを受け取り、Evaluatorという名前で示されるサーブレットを起動する。これのサーブレットが処理制御部10である。   When an HTTP request based on the above URL (1) is sent from the client 2 to the host 1, the host 1 receives the request and starts a servlet indicated by the name Evaluator. This servlet is the processing control unit 10.

処理制御手順解釈部20は、スクリプトの記述を解釈するユニットであり、処理制御部10から通知されたスクリプトを解釈し、処理制御部10に対してそのスクリプトが示す処理を順次指示していく。   The process control procedure interpreting unit 20 is a unit that interprets the script description, interprets the script notified from the process control unit 10, and sequentially instructs the process indicated by the script to the process control unit 10.

原料データ記憶部40は、データ処理部30での単位処理の原料となる原料データを記憶している。原料データは単位処理の内容による。例えば、文書要約処理の原料データは文書データとなる。図では原料データ記憶部40をホスト1内のユニットとして示したが、この代わりに、LANやインターネット上にある別のサーバ装置を原料データ記憶部40として用いるシステム構成も可能である。   The raw material data storage unit 40 stores raw material data that is a raw material for unit processing in the data processing unit 30. Raw material data depends on the content of the unit process. For example, the raw material data for the document summarization process is document data. Although the raw material data storage unit 40 is shown as a unit in the host 1 in the figure, a system configuration using another server device on the LAN or the Internet as the raw material data storage unit 40 is possible instead.

処理結果記憶部50は、各データ処理部30が実行した単位処理の処理結果を記憶し、管理するユニットである。本実施形態では、各データ処理部30が実行した単位処理の処理結果を処理結果記憶部50に登録するわけであるが、処理結果記憶部50は、登録する処理結果に対して「処理結果ID」と呼ぶ一意な識別情報を付与して管理する。そして、データ処理部30間でのデータの受け渡しを、データ実体を直接受け渡すのではなく、処理結果IDを受け渡すことにより実現する。処理結果IDを受け取ったデータ処理部30は、その処理結果IDに対応するデータ実体を処理結果記憶部50から取得し、自らの処理に用いる。   The processing result storage unit 50 is a unit that stores and manages the processing result of the unit processing executed by each data processing unit 30. In the present embodiment, the processing result of the unit processing executed by each data processing unit 30 is registered in the processing result storage unit 50. The processing result storage unit 50 adds “processing result ID” to the processing result to be registered. Is assigned and managed with unique identification information. Then, the data transfer between the data processing units 30 is realized by not passing the data entity directly but by passing the processing result ID. Receiving the processing result ID, the data processing unit 30 acquires a data entity corresponding to the processing result ID from the processing result storage unit 50 and uses it for its own processing.

処理結果記憶部50は、図示例では、処理結果記憶部50はJava(登録商標)等のクラスとして実装しており、そのクラス名はPoolである。処理結果記憶部50に対する処理結果データの登録処理はregisterメソッド51として、処理結果記憶部50からの処理結果データの取得処理はaccessメソッド52として、それぞれ実装される。処理結果の実体データは、処理結果管理テーブル53に登録され、管理される。処理結果管理テーブル53は、図2に示すように、処理結果の実体データ(「処理結果実体」)を、それに対して付与された処理結果IDと対応づけて登録したテーブルである。   In the illustrated example, the processing result storage unit 50 is implemented as a class such as Java (registered trademark), and its class name is Pool. The process result data registration process for the process result storage unit 50 is implemented as a register method 51, and the process result data acquisition process from the process result storage unit 50 is implemented as an access method 52, respectively. The entity data of the processing result is registered and managed in the processing result management table 53. As shown in FIG. 2, the processing result management table 53 is a table in which the processing result entity data (“processing result entity”) is registered in association with the processing result ID assigned thereto.

以下に、ホスト1内の各処理部で実行されるメソッドの処理内容をまとめる。   The processing contents of the methods executed by each processing unit in the host 1 are summarized below.

<データ処理部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 regiter method 51 of the processing result storage unit 50 (Pool), registers the processing result in the processing result storage unit 50, and the regiter method A processing result ID which is a return value of 51 is returned to the caller of the execute method 32. When the processing result ID is given to the argument of the execute method 32 to be called, the access method 52 of the processing result storage unit 50 is called to acquire the processing result entity corresponding to the processing result ID and use it for data processing.

<処理結果記憶部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 client 2, the processing result is returned as entity data. On the other hand, when called from a script, a processing result ID is returned. Details of the processing of the eval method 12 will be described later in detail with reference to a flowchart.

次に、本実施形態で用いるスクリプトについて説明する。スクリプトを構成する式のうち、データ処理部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 data processing unit 30 is as follows.

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 data processing unit 30 and an expression for instructing execution of another script are described together with statements indicating various control structures such as repetition and selection.

本実施形態では、スクリプトはホスト1内の記憶装置に記憶されている。そして、処理制御手順解釈部20が、処理制御部10から指定されたスクリプト名に該当するスクリプトをその記憶装置から読み出し、解釈する。   In the present embodiment, the script is stored in a storage device in the host 1. Then, the process control procedure interpreting unit 20 reads the script corresponding to the script name designated by the process control unit 10 from the storage device and interprets it.

次に、図3に示す処理制御部10の処理(evalメソッド)の手順と図1とを参照して、ホスト1によるリクエスト処理について説明する。   Next, request processing by the host 1 will be described with reference to the processing (eval method) procedure of the processing control unit 10 shown in FIG. 3 and FIG.

処理制御部10であるサーブレットは、クライアント2からURL形式のリクエストに応じて起動され、まずそのリクエストのクエリ部からスクリプト名とパラメータ(引数)を抽出する(S10)。例えばリクエストが上述のURL(1)であった場合、スクリプト名として"script1.groovy"が、第1のパラメータとしてaaaが、第2のパラメータとしてbbbが抽出される。   The servlet that is the processing control unit 10 is activated in response to a request in the URL format from the client 2, and first extracts a script name and parameters (arguments) from the query part of the request (S10). For example, when the request is the above-described URL (1), “script1.groovy” is extracted as the script name, aaa is extracted as the first parameter, and bbb is extracted as the second parameter.

次に処理制御部10は、そのスクリプト名が示すスクリプトを呼び出す(S12)。すなわち、抽出したスクリプト名及びパラメータを渡して処理制御手順解釈部20を起動する。起動された処理制御手順解釈部20は、そのスクリプト名に対応するスクリプトを記憶装置から取得し、これを解釈して実行すべき処理を順に処理制御部10に指示する。   Next, the process control unit 10 calls a script indicated by the script name (S12). That is, the extracted script name and parameters are passed and the process control procedure interpretation unit 20 is activated. The activated process control procedure interpreting unit 20 acquires a script corresponding to the script name from the storage device, interprets the script, and sequentially instructs the process control unit 10 to execute the process.

例えば、呼び出されたスクリプト"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 procedure interpreting unit 20 first determines that the process indicated by the expression (11) should be executed as shown in FIG.

処理制御部10は、処理制御手順解釈部20に処理指示を受け取りに行き(S14)、これに応じて処理指示を受け取ることができたかどうかを判定する(S16)。上記スクリプト例の場合、最初には(11)式が表す処理指示が取得できるので、この判定結果はYesとなりS18に進む。S18では、その処理指示が、スクリプト実行の指示か否かを判定する。処理指示には、上述の(2)式に示したデータ処理部30を起動する指示と、(3)式に示したスクリプト実行の指示とがあるので、S18ではそのうちのどちらであるかを判定するわけである。   The process controller 10 goes to the process control procedure interpreter 20 to receive a process instruction (S14), and determines whether or not the process instruction has been received (S16). In the case of the above script example, the processing instruction represented by the expression (11) can be acquired first, so the determination result is Yes and the process proceeds to S18. In S18, it is determined whether or not the processing instruction is a script execution instruction. The processing instruction includes an instruction to start the data processing unit 30 shown in the above formula (2) and a script execution instruction shown in the formula (3). That is why.

(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 data processing unit 30, the determination result in S18 is No, and the process proceeds to S20. In S20, the data processing unit 30 indicated by the instruction is activated. For example, in the case of the processing instruction of the expression (11), the processing control unit 10 activates the execute method 32-1 of the data processing unit 30-1 with the argument “url1” specified. The data processing unit 30-1 acquires the raw material data indicated by "url1" from the raw material data storage unit 40, and performs predetermined processing on the raw material data by the execute method 32-1. The execute method 32-1 calls the register method 51 of the processing result storage unit 50 and registers the processing result “A1” of the processing in the processing result management table 53. The register method 51 assigns the processing result ID “id1” to the processing result “A1”, registers it in the processing result management table 53, and returns the processing result ID “id1” to the data processing unit 30-1.

なお、ここで、処理結果管理テーブル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 register method 51 of the processing result storage unit 50, and returns “id1” to the processing control unit 10 as a return value of its own processing. When the processing control unit 10 acquires the processing result ID “id1” from the data processing unit 30-1 (S22), the processing control unit 10 returns to S14 and tries to acquire the next processing instruction from the processing control procedure interpretation unit 20.

上述のスクリプト例"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 result storage unit 50, and acquires the data of the processing result entity indicated by the first and second arguments (processing result ID) from the processing result management table 53. To do. FIG. 1 shows only the flow of acquiring the processing result entity “A1” corresponding to the processing result ID “id1” in order to avoid complexity. The execute method 32-2 performs predetermined data processing on the acquired two entity data, registers the processing result “A2” in the processing result management table 53 by the register method 51, and sets the processing result ID ”. id2 "is acquired and returned to the processing control unit 10. The process control unit 10 acquires the process result ID “id2” and returns to S14. Since the next process in the above script example is to set the received process result ID “id2” in the variable id_result, the process control unit 10 executes it and proceeds to S14 again.

今回のステップ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 processing control unit 10 receives the processing instruction of the expression (12) for the second time of the for loop in the above script example, so in S20 the first argument id_const is set to “id1” and the second argument With the id_result set to “id2”, the execute method 32-2 of the data processing unit 30-2 is called to obtain the ID of the processing result, and the process returns to S14. The above processing is repeated until the last loop of the for loop. In FIG. 1, the processing result ID of the processing result of the data processing unit 30-2 in the last loop is “idN”, and the value of the variable id_result is “idN” at this point. In S14 which is returned after the last loop is completed, there is no next processing instruction, so the processing of the processing control unit 10 proceeds to S24.

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 client 2 and a script called from the above expression (3) from the script. The latter is not included in the above script example, but if a processing instruction such as the above equation (3) is included in the script, the determination result in S18 is Yes in the processing instruction number. In this case, the process control unit 10 returns to S12, activates the eval method 12 of the Evaluator class, and calls the script indicated in the expression of the process instruction. Thus, the final processing result of the script called by a certain expression in the script is passed to the calling script as the return value of the expression. On the other hand, the processing result of the script called from the request of the client 2 is returned to the client 2.

ここで、スクリプトに返される処理結果は、ホスト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 host 1. Receiving this, the process control unit 10 can acquire the process result entity corresponding to the process result ID from the process result storage unit 50 as necessary. On the other hand, it is necessary to return the processing result entity data to the client 2 as a result of the request. In accordance with such distinction, in the branch of S24, if the script a currently being executed is called from another script b, the process control unit 10 determines the process result ID of the final process result of the script a. Is returned to the script b (S26). In the script b that has received this processing result ID, the remaining processing is continued using the ID. On the other hand, if the script a currently being executed is called by a request from the client 2, the process control unit 10 performs a process corresponding to the process result ID set in the variable id_result at the end of the script a. The result entity is retrieved from the processing result storage unit 50 by the access method 52, set in an HTTP response, and returned to the caller client 2.

このように、本実施形態では、各データ処理部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 result storage unit 50 which is a system shared storage area. Is managed by assigning a general processing result ID. In the script describing the process, the process result ID is used to indicate process arguments and return value data. In this way, waste of repeatedly executing the same process can be eliminated. For example, in the above script example, the processing result of the expression (11) before the loop is specified as an argument in the expression (12) in the for loop, but the value of the argument is the number of loop iterations. It doesn't change regardless. Therefore, if the processing result ID of the processing result of the expression (11) once processed is designated as the argument, the processing result of the expression (11) held in the processing result storage unit 50 can be used repeatedly, and therefore a for loop There is no waste of recalculating Eq. (11) each time.

また、本実施形態では、各データ処理部30が求めた処理結果が処理結果記憶部50に保存されているので、クライアント2からのリクエストに対する全体的な処理の途中の各段階での処理結果を必要に応じて観察することができるので、不具合が発生した場合の調査が容易になる。例えば、エラーコードに処理の引数である処理結果IDなどを含めるようにすれば、エラー発生時のエラーコードに示される処理結果IDを用いて処理結果実体を処理結果記憶部50から読み出すことができ、調査ができる。   In this embodiment, since the processing results obtained by the data processing units 30 are stored in the processing result storage unit 50, the processing results at each stage during the overall processing for the request from the client 2 are displayed. Since it can be observed as necessary, it is easy to investigate when a problem occurs. For example, if a process result ID that is a process argument is included in the error code, the process result entity can be read from the process result storage unit 50 using the process result ID indicated in the error code at the time of the error occurrence. Can be investigated.

本実施形態において、処理結果記憶部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 result storage unit 50 is a synchronous object that can write data to the object and read data from the object in parallel. By doing so, the data processing unit 30 calls the register method 51 of the processing result storage unit 50 to obtain a processing result storage area and obtains a processing result ID before the processing result of itself is produced. The processing result ID can be returned to the processing control unit 10. In response to this, the processing control unit 10 can activate the subsequent data processing unit 30 using the processing result of the data processing unit 30 by using the processing result ID. That is, the subsequent data processing unit 30 can be activated before all the processing of the previous data processing unit 30 is completed. From another viewpoint, the end of the process of the previous data processing unit 30 can be delayed until another data processing unit 30 that uses the result of the process needs the process result. For this reason, efficient linkage processing is possible.

[第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 host 1 according to the second embodiment. In this figure, the client 2 is not shown. The same components as those in FIG. 1 are denoted by the same reference numerals, and detailed description thereof is omitted.

第2実施形態のホスト1は、図1の第1実施形態のホスト1に対して利用可能範囲制御部60と有効期間管理部70を追加し、更に処理結果記憶部50にremoveメソッド54を追加したものである。またこの他、処理制御部10や各データ処理部30、処理結果記憶部50の処理内容にも若干の追加がある。以下、これら追加点につき説明する。   The host 1 of the second embodiment adds an available range control unit 60 and an effective period management unit 70 to the host 1 of the first embodiment of FIG. 1, and further adds a remove method 54 to the processing result storage unit 50. It is a thing. In addition, the processing contents of the processing control unit 10, each data processing unit 30, and the processing result storage unit 50 are slightly added. Hereinafter, these additional points will be described.

まず、利用可能範囲制御部60は、リクエストが、処理結果記憶部50にある別のリクエストの処理結果にアクセスできないようにする管理のためのユニットである。   First, the available range control unit 60 is a unit for management that prevents a request from accessing the processing result of another request in the processing result storage unit 50.

すなわち、第1実施形態では、リクエストの処理のために起動された各データ処理部30の処理結果を処理結果記憶部50に登録し、処理制御部10や別のデータ処理部30から利用できるようにしたが、ホスト1には様々なリクエストが到来し、異なるユーザからのリクエストも到来するため、異なるリクエストに関連する処理結果が利用できると、情報セキュリティその他の観点から好ましくない。   That is, in the first embodiment, the processing result of each data processing unit 30 activated for request processing is registered in the processing result storage unit 50 and can be used from the processing control unit 10 or another data processing unit 30. However, since various requests arrive at the host 1 and requests from different users also arrive, it is not preferable from the viewpoints of information security and the like that processing results relating to different requests can be used.

そこで、1つのリクエストに関連して起動されるスレッドに対しては利用可能範囲制御部60が生成する同じ識別情報を付与し、処理結果記憶部50に登録する処理結果についても、その識別情報と関連づけて管理することで、処理結果が他のリクエストから利用できないように制御する。逆に1つのリクエストの実行過程で起動される一連のスレッド群では、処理の連携のためにスレッド同士で処理結果を共有する必要があり、また同じリクエスト内ではそのようにスレッド間で処理結果を共有できてもセキュリティ上の問題はない。そこで、本実施形態では、リクエストに対して一意的な識別情報を付与し、そのリクエストの実行過程で起動されるスレッドは、常に起動元のスレッドに設定された識別情報を引き継ぎ、また、その処理結果にも識別情報を持たせて管理することで、同じリクエスト内のスレッド同士は処理結果を互いに参照でき、異なるリクエストに属するスレッド同士では処理結果の参照ができないように制御する。このように、リクエストを識別する識別情報を、以下では「利用可能範囲ID」と呼ぶ。   Therefore, the same identification information generated by the available range control unit 60 is assigned to a thread that is activated in association with one request, and the processing result registered in the processing result storage unit 50 is also the identification information and By managing in association with each other, control is performed so that the processing result cannot be used from other requests. Conversely, in a series of threads that are activated during the execution of a single request, it is necessary to share the processing results among the threads for the cooperation of the processes. Even if it can be shared, there is no security problem. Therefore, in this embodiment, unique identification information is given to the request, and the thread activated in the course of executing the request always takes over the identification information set in the activation source thread, and the process By managing the result with identification information, it is controlled so that threads in the same request can refer to the processing result, and threads belonging to different requests cannot refer to the processing result. Thus, the identification information for identifying the request is hereinafter referred to as “available range ID”.

この管理のため、利用可能範囲制御部60は、利用可能範囲ID管理テーブル66を備える。利用可能範囲ID管理テーブル66には、図5に示すように、利用可能範囲IDごとに、その利用可能範囲IDが割り当てられたリクエストの処理過程での各データ処理部30の処理結果の処理結果IDの配列が登録される。   For this management, the available range control unit 60 includes an available range ID management table 66. In the available range ID management table 66, as shown in FIG. 5, for each available range ID, the processing result of the processing result of each data processing unit 30 in the process of the request to which the available range ID is assigned. An array of IDs is registered.

利用可能範囲制御部60は、例えばJava(登録商標)等のクラスとして実装することができる。そのクラス名を、ここではVirtualThreadManagerとする。VirtualThreadManagerは、以下のようなメソッドを備える。   The available range control unit 60 can be implemented as a class such as Java (registered trademark), for example. The class name here is VirtualThreadManager. VirtualThreadManager has the following methods:

・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 processing control unit 10 and sets the generated available range ID to the thread executing this method.

・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 result storage unit 50 is called with the processing result ID array of the entry to be deleted as an argument, and each processing result belonging to the usable range is deleted. This method is called from the processing control unit 10 when the processing of the request is completed. The intermediate processing result for the request from the client 2 is basically not required from requests other than that request (however, the request for debugging the script described later is not limited to this), and thus deleted at the end of the request processing. By doing so, the available memory area can be increased.

・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 result storage unit 50 is added to the available range ID management table 66. The process result ID is passed to this method as an argument from the caller. When this method is called, the available range ID set in the thread executing this method is acquired, and the processing result ID array of the entry corresponding to the available range ID in the available range ID management table 66 is acquired. In addition, the processing result ID received as an argument is added.

・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 result storage unit 50. Is. To this method, the processing result ID of the processing result is passed as an argument from the caller. When this thread is called, it acquires the available range ID set in the thread executing this method, and the processing result ID of the entry corresponding to the available range ID in the available range ID management table 66 It is checked whether the processing result ID passed as an argument is included in the array. If it is included, the thread determines that the processing result is usable, and otherwise determines that the thread cannot be used. The determination result is returned to the caller.

・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 result storage unit 50. It is done. A processing result ID is passed to this method as an argument from the caller. This method acquires the available range ID set in the thread executing this method, and from the processing result ID array of the entry corresponding to the available range ID in the available range ID management table 66, the argument The processing result ID is deleted.

次に、有効期間管理部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 result storage unit 50. That is, in this embodiment, the start point and end point of the valid period are explicitly described in the script, and the processing results of each process described between the start point and the end point in the script are only between the start point and the end point. Valid. In other words, when the progress of the script processing exceeds the end point (that is, when the effective period ends), the processing result of the processing described from the corresponding start point to the end point is deleted from the processing result storage unit 50. By explicitly describing in the script the deletion of processing results that are not used later by the script creator, it is possible to prevent the storage area of the processing result storage unit 50 from being wasted due to processing result data that is not used. .

このように有効期間の終了後に関連する処理結果を削除するために、本実施形態では、処理結果記憶部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 result storage unit 50 in this embodiment. The validity period ID is identification information uniquely given to each validity period. When the script is executed and the starting point of the effective period is reached, a unique effective period ID is generated (for example, a serial number is assigned). If the validity period ID is set in the thread that is activated until the end point corresponding to the start point and the processing result is registered in the processing result storage unit 50, the thread that executes the registration process The validity period ID is acquired from the information, and the validity period ID is associated and registered. As a result, when the processing of the script proceeds and exceeds the end point of the effective period, the processing result within the effective period can be collectively deleted from the processing result storage unit 50 by searching the processing result associated with the effective period ID. .

この管理のため、有効期間管理部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 unit 30 is registered.

有効期間管理部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 processing control unit 10. When called, this method generates a unique effective period ID, registers it in the effective period ID management table 75, and sets the generated effective period ID for the thread executing this method.

・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 processing control unit 10 at the end of the effective period in order to collectively delete processing results of threads belonging to the effective period. When this method is called, it obtains the validity period ID set in the thread executing the method (this is set when the open method is called from the caller), and the validity period ID management table The entry corresponding to the ID is deleted from 75. At this time, the remove method 54 of the processing result storage unit 50 is called with the processing result ID array of the entry to be deleted as an argument, and each processing result belonging to the usable range is deleted. The remove method 54 called at this time deletes the entry of the processing result ID received as an argument from the processing result management table 53, calls the remove method 65 of the available range control unit 60, and sets the processing result ID. A request is made to delete from the available range ID management table 66.

・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 result storage unit 50 is added to the valid period ID management table 75. The process result ID is passed to this method as an argument from the caller. When this method is called, it acquires the effective period ID set in the thread executing this method, and for the processing result ID array of the entry corresponding to the effective period ID in the effective period ID management table 75, The processing result ID received as an argument is added.

・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 storage unit 50.

次に、第1実施形態からみた本実施形態の処理結果記憶部50の変更点について説明する。   Next, changes in the processing result storage unit 50 according to the present embodiment as viewed from the first embodiment will be described.

まず本実施形態では、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 range control unit 60 at the end of processing for a request from the client 2, or is called from the valid period management unit 70 at the end of the valid period. This method takes an array of processing result IDs as an argument.

また、registerメソッド51及びaccessメソッド52は、第1実施形態で説明した処理に加え、以下のような処理を行う。   The register method 51 and the access method 52 perform the following processing in addition to the processing described in the first embodiment.

まず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 register method 51 is called, it acquires an available range ID and a valid period ID set for the thread executing the method 51. Then, the add method 63 of the usable range control unit 60 and the add method 73 of the validity period management unit 70 are called, and the processing result ID of the processing result registered in the processing result management table 53 by the register method 51 is passed as an argument. . In response to this, the add method 63 assigns the argument processing result ID to the processing result ID array of the entry corresponding to the usable range ID set in the thread that executes this method in the usable range ID management table 66. to add. In the case of the add method 73, it is added to the valid period ID management table 75.

また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 range control unit 60. That is, the access method 52 calls the validate method 64 with the processing result ID received from the caller as an argument. As described above, the validate method 64 acquires the usable range ID set in the thread that executes the method, determines whether the processing result ID passed as an argument can be accessed, and returns the result to the access method 52. . When the access method 52 receives the determination result that the access is possible, the entity data corresponding to the processing result ID is read from the processing result management table 53 and returned to the caller. When a determination result indicating that access is not possible is received, a value indicating that access is not possible is returned to the caller.

以上のように、有効期間管理部70は、利用可能範囲制御部60と似た部分があるが、根本的な相違は、有効期間管理部70は、スクリプト中に記述された処理指示に応じて呼び出されるのに対し、利用可能範囲制御部60は、スクリプトに記述するものではなく、リクエストの処理開始時と終了時に処理制御部10から必ず呼び出されるという点である。   As described above, the effective period management unit 70 has a portion similar to the usable range control unit 60, but the fundamental difference is that the effective period management unit 70 responds to the processing instruction described in the script. In contrast, the usable range control unit 60 is not described in a script, but is always called from the processing control unit 10 at the start and end of request processing.

次に、図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 processing control unit 10 of the host 1 receives a request from the client 2, it first calls the open method 61 (VirtualThreadManager.open) of the usable range control unit 60 and receives the usable range ID (S5). ). Subsequent processing after step S10 is basically the same as the procedure of FIG. 3 except for the processing of the last step S30. However, in detail, the process control unit 10 performs the process of setting the assigned usable range ID for the process thread that it calls, which is not in the first embodiment.

すなわち、ステップS5で、利用可能範囲IDを受け取った処理制御部10は、自らのスレッドの変数に対してその利用可能範囲IDを設定すると共に、以降、自らが呼び出すスレッドに対しても、その利用可能範囲IDを設定する。例えば、そのリクエストのスクリプトの実行過程においてステップS20で呼び出すデータ処理部30や、ステップS18の判定がYesとなった後ステップS12でそのスクリプトから呼び出すスクリプト(更に呼び出したスクリプトから呼び出すスクリプトなどの派生スクリプトも含む)の実行のために新たなスレッドを起動する場合には、そのスレッドに対して利用可能範囲IDをセットするわけである。   That is, in step S5, the process control unit 10 that has received the available range ID sets the available range ID for the variable of its own thread, and thereafter uses the same for the thread that it calls. Set possible range ID. For example, in the process of executing the script of the request, the data processing unit 30 to be called in step S20 or a script to be called from the script in step S12 after the determination in step S18 is Yes (further derived scripts such as a script to be called from the called script) When a new thread is activated for the execution of (including), an available range ID is set for the thread.

なお、ステップS20で呼び出されたデータ処理部30の処理においても新たなスレッドを起動することがあれば、自スレッドの変数に設定されている利用可能範囲IDを、新たに起動するスレッドの変数に設定する。   If a new thread is activated even in the process of the data processing unit 30 called in step S20, the available range ID set in the variable of the own thread is set as the variable of the newly activated thread. Set.

このようにスレッドの変数に利用可能範囲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 data processing unit 30 in the processing result storage unit 50, the processing result ID assigned to the processing result can be used set in the data processing unit 30. Since it is registered in the usable range ID management table 66 by the add method 63 in association with the range ID, it can be known to which usable range the processing result belongs by using this table 66.

そこで、処理結果記憶部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 data processing unit 30 or the processing control unit 10, the processing result storage unit 50 uses the validate method 64 to make an inquiry to the available range control unit 60. By doing this, it is possible to know whether the thread of the data processing unit 30 or the processing control unit 10 can access the processing result. If access is possible, the processing result storage unit 50 returns the substance of the processing result to the caller, and otherwise returns information notifying that access is impossible.

そして、クライアント2からのリクエストに指定されたスクリプトの処理が終わりクライアント2に処理結果を返す(S28)と、S30にて処理制御部10は利用可能範囲制御部60のcloseメソッド62を呼び、そのリクエストの利用可能範囲IDと、これに関連づけられた処理結果の情報を、利用可能範囲制御部60及び処理結果記憶部50から削除する。リクエストの実行過程で登録された処理結果は、そのリクエストの処理が終了した後に他のリクエストから利用されることは基本的にはないので、S30でデータを削除しても問題はない。   When the processing of the script specified in the request from the client 2 is completed and the processing result is returned to the client 2 (S28), the processing control unit 10 calls the close method 62 of the available range control unit 60 in S30, The available range ID of the request and the processing result information associated therewith are deleted from the available range control unit 60 and the processing result storage unit 50. Since the processing result registered in the request execution process is basically not used by other requests after the processing of the request is completed, there is no problem even if the data is deleted in S30.

なお、この手順において、有効期間管理部70を利用して不要になった処理結果を速やかに削除するのは、スクリプトに記述されたopenメソッド71やcloseメソッド72を、処理制御部10がステップS20で呼び出すことで実行される。   In this procedure, the process control unit 10 uses the open period 71 and the close method 72 described in the script to delete the processing result that is no longer necessary using the effective period management unit 70 immediately. It is executed by calling with.

例えば次のようなスクリプトが与えられたとする。

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 data processing units 30, respectively.

また、(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, Component 1 and Component 2 perform predetermined processing based on the raw material data indicated by url 1 and url 2, respectively. The results of these two processes are merged by Component 3 according to the following formula. The result ID of the result of the merge process is set in the variable id3. Since this processing result (id3) is also used in, for example, the expression (23) outside the function definition, the id3 is called by calling the export method 74 in the expression (26) before closing the valid period according to the expression (27). Is excluded from the data deletion target at the end of the validity period. Then, by executing the expression (27) (close method), the effective period starting from the expression (25) is closed, and the processing result obtained within the period is deleted from the processing result storage unit 50. In this script example, id3 is excluded from the deletion target, so that each processing result entity corresponding to the processing result IDs id1 and id2 is deleted from the processing result storage unit 50.

以上、第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 range control unit 60, so that unauthorized use of the processing result can be prevented. In addition, when the effective period specified in the script has passed by the effective period management unit 70, the processing result generated within that period can be deleted, so that the waste of the storage area of the host 1 can be reduced. . As a result, it is possible to avoid a shortage of memory area in the middle of processing, resulting in an increase in calculation cost and a situation where processing is impossible.

なお、以上の説明から明らかなように、利用可能範囲制御部60と有効期間管理部70の機能は独立している。したがって、上述の例では利用可能範囲制御部60と有効期間管理部70の両方を備えたホスト1を示したが、そのうち利用可能範囲制御部60のみを備える構成、有効期間管理部70のみを備える構成でも、それぞれのユニットによる個別の効果を得ることはできる。   As is clear from the above description, the functions of the usable range control unit 60 and the validity period management unit 70 are independent. Therefore, in the above-described example, the host 1 including both the usable range control unit 60 and the valid period management unit 70 is shown. Of these, only the usable range control unit 60 and only the valid period management unit 70 are included. Even in the configuration, individual effects of each unit can be obtained.

また、以上の例では、データ処理部30の処理結果は、同じ利用可能範囲IDを持つスレッドからしかアクセスできず、また有効期間から外れると削除していたが、スクリプトのデバッグを行う場合、このように処理結果が削除されたり、他のリクエストから処理結果にアクセスできないと、デバッグが困難になってしまう。そこで、スクリプトのデバッグを容易にする第2実施形態の変形例を以下に説明する。   In the above example, the processing result of the data processing unit 30 can be accessed only from threads having the same usable range ID, and has been deleted when it is out of the valid period. Thus, if the processing result is deleted or the processing result cannot be accessed from another request, debugging becomes difficult. A modification of the second embodiment that facilitates script debugging will be described below.

この変形例では、利用可能範囲制御部60と有効期限管理部70に、デバッグモードを指示するためのメソッド(setDebug)を用意する。   In this modification, a method (setDebug) for instructing the debug mode is prepared in the usable range control unit 60 and the expiration date management unit 70.

利用可能範囲制御部60をVirtualThreadManagerクラス、有効期間管理部70をScopeManagerクラスとして実装した場合、デバッグ対象のスクリプト中に以下のように記述することでデバッグモードが指示できる。

VirtualThreadManager.setDebug(true); … (31)
ScopeManager.setDebug(true); … (32)
When the usable range control unit 60 is implemented as a VirtualThreadManager class and the valid period management unit 70 is implemented as a ScopeManager class, the debug mode can be instructed by describing the following in the script to be debugged.

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 range control unit 60 and the expiration date management unit 70.

例えば、利用可能範囲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 range control unit 60 is called, the available range ID management table 66 indicates whether or not the available range ID set for the thread executing the method is a debug target. Set the flag to a value indicating "debugging target". When the close method 62 of the usable range control unit 60 is called, it determines whether or not the usable range ID set in the thread executing the method is a debug target with reference to the flag, and debugs. If it is the target, the deletion processing of the registration information in the usable range ID management table 66 and the processing for deleting the processing result ID information registered in the entry of the usable range ID from the processing result storage unit 50 are not executed. If it is not a debug target, the information is deleted as described above. Further, when the validate method 64 of the usable range control unit 60 is called, it determines whether or not the usable range ID set in the thread executing the method is a debug target with reference to the flag, and debugs. If it is a target, it indicates that the processing result ID that is an argument of the call to the validate method 64 is usable without checking whether the processing range ID is registered in the usable range ID entry in the usable range ID management table 66. The return value is returned to the processing result storage unit 50.

同様に、有効期間管理テーブル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 result storage unit 50 is not executed.

また、デバッグモードの範囲の末尾を、引数を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 range control unit 60 and the expiration date management unit 70, the remove instruction to the processing result storage unit 50 is not performed. Further, in the process of the validate method of the usable range control unit 60, it is possible to prevent the use determination.

以上のことにより、一連の処理が終了しクライアント2に処理結果を返した後も、処理結果記憶部50には、デバッグモードの範囲内の処理結果が残り、しかもそれら残った処理結果に対するアクセスが利用可能範囲制御部60により制限されることもない。したがって、処理結果記憶部50に残った処理結果を調べることで、効率のよいデバッグを行うことが可能になる。   As described above, even after a series of processing ends and the processing result is returned to the client 2, the processing result storage unit 50 retains the processing result within the range of the debug mode, and the remaining processing result is accessed. The usable range control unit 60 is not limited. Therefore, efficient debugging can be performed by examining the processing results remaining in the processing result storage unit 50.

また、本実施形態では、処理結果は、それぞれ利用可能範囲制御部60にて利用可能範囲IDと関連づけて管理されているので、スクリプトのデバッグの際、利用可能範囲IDを指定すれば、その利用可能範囲IDに対応する処理結果群を取り出し、解析することができる。   In the present embodiment, since the processing results are managed in association with the available range IDs by the available range control unit 60, if the available range ID is specified during script debugging, the processing results are used. A processing result group corresponding to the possible range ID can be extracted and analyzed.

[第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 data processing units 30 execute unit processing in cooperation with one host 1. On the other hand, the third embodiment has a system configuration in which a plurality of hosts 1P and 1R cooperate in processing via a network 3 such as the Internet, as shown in FIG.

ホスト1P及び1Rの内部構成は、図4に示した第2実施形態のものと同様である。ただし、ホスト1P及び1R内の各ユニットには、ネットワーク3を介した処理連携のための機能が加わっている。   The internal configuration of the hosts 1P and 1R is the same as that of the second embodiment shown in FIG. However, a function for processing cooperation via the network 3 is added to each unit in the hosts 1P and 1R.

処理連携を行うホスト1P及び1Rは、クライアント2からのリクエストを受け付けるポータル(玄関)のホスト1Pと、他のホスト(1P又は1R)からのリクエストを受けて動作するリモートホスト1Rとに分類できる。このシステムでは、ユーザがクライアント2からホスト1Pへリクエストを送ると、ホスト1Pがそのリクエストに指定されたスクリプトを実行するのであるが、そのスクリプトの中にリモートのホスト1Rが持つスクリプトの実行が記述されていれば、ホスト1Pはそのリモートホスト1Rにスクリプト実行のリクエストを送り、その処理結果を受けて自分の処理を続行する。リモートホスト1Rが実行するスクリプトの中にも、他のホスト1P又は1Rが実行するスクリプトの実行指示を記述することができる。ホスト1P又は1Rへのリクエストは、上記第1実施形態に例示したURL(1)と同様、URLの形で記述される。   Hosts 1P and 1R that perform processing cooperation can be classified into a portal host 1P that receives a request from the client 2 and a remote host 1R that operates in response to a request from another host (1P or 1R). In this system, when a user sends a request from the client 2 to the host 1P, the host 1P executes the script specified in the request, and the execution of the script of the remote host 1R is described in the script. If so, the host 1P sends a script execution request to the remote host 1R, and continues its processing in response to the processing result. An instruction to execute a script executed by another host 1P or 1R can also be described in a script executed by the remote host 1R. The request to the host 1P or 1R is described in the form of a URL, similar to the URL (1) exemplified in the first embodiment.

ネットワーク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 network 3, the processing control unit 10 of each host 1P and 1R has a function of creating a request for instructing another host 1P or 1R processing control unit 10 to execute a script. This function may be incorporated into the eval method 12, for example. For example, the following expression (41) described in the script is “script1” for a host 1P or 1R named host1 (which is a host different from the host host0 executing this script). This indicates that a script named “.groovy” is executed with the data indicated by the processing result ID “id1” as an argument.

id2 = Evaluator.eval (host1, "script1.groovy", id1)… (41)

When receiving the instruction of the expression (41), the processing control unit 10 of the host 0 that is executing the script creates the following HTTP request as a request for the host 1 and transmits it to the host 1.

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 processing control unit 10 of the host 1 executes the script indicated by the URL, creates an HTTP response including the processing result ID of the processing result, and returns this to the caller host host 0. Receiving the response, the processing control unit 10 of host0 substitutes the value of the processing result ID included in the response for the variable id2 of the equation (41), and proceeds to the processing of the following equation. Then, when the processing result is used in the subsequent processing, the processing result entity corresponding to the processing result ID “id2” is copied from host1.

すなわち、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 data processing unit 30 or the processing control unit 10 performs processing using the processing result entity corresponding to the processing result ID “id2”, the data processing unit 30 or the processing control The unit 10 uses the access method 52 to request the entity of id2 from the processing result storage unit 50 of its own host host0. If the entity data corresponding to id2 is held in the processing result storage unit 50 of host0, the entity data is returned to the caller. On the other hand, if the entity data corresponding to id2 is not in the processing result storage unit 50 of host0, the access method 52 creates an HTTP request for requesting the processing result entity corresponding to id2, and this is processed as the processing result entity. To host host1 with The HTTP request created at this time is, for example, as follows.

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 result storage unit 50 of the caller host0. The processing result storage unit 50 of the host 0 passes the received processing result entity to the data processing unit 30 or the processing control unit 10 that is the access method call source, and associates the processing result entity with the processing result ID to the processing result management table. 53. If the processing result of the remote host is also obtained once in this way and registered in the processing result management table 53 of the own host, it can be read from the processing result management table 53 when the processing result in the future is required. Yes, there is no need to get from a remote host.

なお、処理結果記憶部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 result storage unit 50 requests a processing result entity from another host, the host holding the processing result entity is not known. Don't be. For this reason, in the present embodiment, a processing result ID that includes host identification information is used. For example, the processing result ID is obtained by merging the identification information of the host and the identification number unique within the host. When registering the processing result, the register method 51 generates such a processing result ID and assigns it to the processing result. If, for example, the host IP address is used as the host identification information to be incorporated in the processing result ID, when creating an HTTP request for requesting the processing result entity, the IP address is extracted from the processing result ID, and this is designated as the destination host. Can be used. In addition, a network that can be accessed within each host or from each host without using the IP address itself, and a means for replying by searching for the corresponding URL or IP address from the host identification information in the processing result ID. If it is provided in the server 3, the same thing can be done.

次に、スクリプトの例を挙げて、複数のホスト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 hosts 1P and 1R will be described with an example of a script. Here, it is assumed that the portal host 1P (host0) receives a request for executing the following script from the client 2 (however, only a part of the script is illustrated here. Some processing instructions are described before and after).

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 eval method 12 of the processing control unit 10 of the portal host 1P. The arguments of the eval method 12 are only the script name and parameters in the first embodiment that does not consider distributed processing on the network, but in this embodiment, the host name is added. Of the three arguments, the first host1 etc. is the host name. For example, Expression (51) indicates an instruction to cause the remote host1 to execute the script “scriptA.groovy” using the parameter parameter1 and to set the processing result ID of the execution result to the variable id1. .

ポータルホスト1Pの処理制御部10は、まずこの(51)式の処理指示を処理制御手順解釈部20から受けると、リモートホストのhost1に対してスクリプト"scriptA.groovy"の実行を指示する(42)と同様のHTTPリクエストを作成して送信する。そして、そのリクエストの処理結果の処理結果IDがhost1から返ってくると、それを変数id1にセットし、次の処理指示(52)の処理に移る。   When the processing control unit 10 of the portal host 1P first receives the processing instruction of the formula (51) from the processing control procedure interpretation unit 20, it instructs the remote host host1 to execute the script “scriptA.groovy” (42). Create and send an HTTP request similar to Then, when the processing result ID of the processing result of the request is returned from host1, it is set in the variable id1, and the process proceeds to the next processing instruction (52).

(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 processing control unit 10 of host0 sends an HTTP request to execute “scriptB.groovy” to another remote host host2 with the processing result ID set in the variable id1 as an argument. To do. Upon receiving this request, the processing control unit 10 of host 2 requests the processing result storage unit 50 for the processing result entity corresponding to the processing result ID (id1). However, since the processing result entity is only host1 at this time, the processing result storage unit 50 of host2 creates an HTTP request similar to (43) for obtaining the processing result entity corresponding to the processing result ID (id1). In response to this, the processing result entity returned from host 1 is registered in its own processing result management table 53 in association with the processing result ID. When the process result entity corresponding to the process result ID (id1) is obtained in this way, the host 2 process control unit 10 can proceed with the execution of the script.

また、ポータルの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 remote host 1.

このようにして、本実施形態では、複数のホスト1P及び1Rが連携して、クライアント2からのリクエストを実行する。   In this way, in this embodiment, a plurality of hosts 1P and 1R cooperate to execute a request from the client 2.

以上、本実施形態におけるリクエストの分散処理の仕組みを説明したが、本実施形態でも、上述の第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 portal host 1P and the remote host 1R are provided with the same usable range control unit 60 as in the second embodiment. However, the function of the usable range control unit 60 is slightly different between the portal host 1P and the remote host 1R. That is, the usable range control unit 60 of the portal host 1P is the same as that of the second embodiment, and when the open method 61 is called, a unique usable range ID is assigned, whereas the remote host 1R is open. No method is required. This is because the available range ID is assigned for each request from the client 2. The remote host 1R receives and inherits the available range ID assigned by the portal host 1P.

より具体的には、ポータルホスト1Pは、あるリクエストに対する処理の中でリモートホスト1Rにスクリプト実行を依頼する場合、これは現在実行中のスレッドの変数にセットされているそのリクエストの利用可能範囲IDを取得し、これをそのリモートホスト1Rに対して送るHTTPリクエストに組み込む。例えば次のようにリクエストヘッダに組み込めばよい。

X-VirtualThreadID : 11111 … (61)
More specifically, when the portal host 1P requests script execution to the remote host 1R during processing for a certain request, this is the available range ID of the request set in the variable of the currently executing thread. Is incorporated into the HTTP request sent to the remote host 1R. For example, it can be included in the request header as follows.

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 remote host 1R activates the processing control unit 10 and sets the available range ID to a thread variable. In the remote host 1R, if there is a newly activated thread, the available range ID is inherited by the variable in the same manner as in the second embodiment.

この場合、継承した利用可能範囲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 range control unit 60 of the remote host 1R is realized by the function extension of the add method 63. That is, when the processing result of the data processing unit 30 in the remote host 1R is registered in the processing result storage unit 50 in the host 1R by the register method 51, the ID of the processing result is registered in the usable range ID management table 66. The add method 63 of the available range control unit 60 in the host 1R is called from the register method 51. At this time, if it is the add method 63 of the second embodiment, the available range ID management table 66 is used. The processing result ID as an argument is only registered in the processing result ID array corresponding to the usable range ID passed as a thread variable at that time. On the other hand, the add method 63 of this embodiment checks whether or not the available range ID received as the thread variable has been registered in the available range ID management table 66. After creating a new entry for the possible range ID, the argument processing result ID is registered in the processing result ID array of the entry.

なお、リモートホスト1Rでのスクリプトの処理結果は、呼出元のホスト1P又は1Rに処理結果IDの形で返されるので、呼出元はその処理結果IDを、そのスクリプトの呼び出しを行ったスレッドの利用可能範囲IDに対応づけて、利用可能範囲ID管理テーブル66に登録することができる。   Since the script processing result at the remote host 1R is returned to the calling host 1P or 1R in the form of a processing result ID, the calling source uses the processing result ID and the use of the thread that called the script. It can be registered in the usable range ID management table 66 in association with the possible range ID.

また、利用可能範囲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 result storage unit 50 creates and transmits an HTTP request as described in (43) that requests a processing result entity on another host, Then, the usable range ID is incorporated and sent as in (61) above. The processing result storage unit 50 of the host that has received this request calls the validate method 64 for the usable range control unit 60 in its own host, and the usable range ID embedded in the request header is a process requested by the request. It is determined whether or not the processing result of the result ID is accessible. If access is possible as a result of the determination, an HTTP response including the processing result is returned to the processing result storage unit 50 of the calling host. On the other hand, when it is determined that access is impossible, an HTTP response including data indicating that is returned to the determination result storage unit 50 of the calling host.

また、クライアント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 client 2 is completed, the processing control unit 10 of the portal host 1P calls the close method 62 of the available range control unit 60 in the host 1P and relates to the request The processing result is deleted. At this time, the available range control unit 60 calls the close method 62 of the available range control unit 60 of the remote host 1R that is called when the request is processed. This call may be made with an HTTP request as in the case of other request transmissions between hosts. The target available range ID is incorporated in the header of this HTTP request.

この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 remote hosts 1R existing in the system, but only the remote host 1R used for execution when processing the request from the client 2 is narrowed down and deleted. HTTP requests can also be sent. That is, by examining each processing result ID registered in the entry of the usable range ID to be closed in the usable range ID management table 66 of the portal host 1P, it can be seen which host 1P or 1R each processing result is in. This is because the processing result ID includes the identification information of the host that generated it, so that the corresponding remote host 1R can be specified. In the script processing on the remote host 1R, the script processing of another remote host 1R may be called. In this case, the ID of the processing result of the latter remote host 1R may not be returned to the portal host 1P. is there. However, if the remote host 1R that has called the close method 62 calls the close method 62 for another host that it calls, the remote host 1R can process the request from the client 2 even in such a case. It is possible to delete all intermediate processing results generated on the host.

以上、ネットワークを介した分散処理における利用可能範囲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 hosts 1P and 1R is described between the start point and end point of the valid period in the script, the host executing the script generates a valid period ID at the start point. When calling script processing at another host, the valid period ID may be incorporated into the HTTP request header or the like and transmitted to the called host. The called host registers the valid period ID in the valid period ID management table 75 of its own host. This can be dealt with by expanding the function of the add method 73 in the same manner as registering the usable range ID inherited by the remote host 1R by adding the function of the add method 63 in the management table 66. When calling another script of another host in the script instructed to be executed by the caller, the validity period ID is chained to be inherited by sending the HTTP request including the validity period ID. . The processing control unit 10 of the host B that has received the script execution request from the processing control unit 10 of the host A returns at least the processing result ID of the processing result of the script to the processing control unit 10 of the host A. The control unit 10 can associate the processing result ID with the effective period ID of the thread and register it in the effective period ID management table 75 of the host A.

また、スクリプトの実行において、有効期間の終点に達すれば、そのスクリプトを実行しているホストは、有効期間中に呼び出した各ホストに対し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 processing control unit 10 of the portal host 1P and the remote host 1R in this embodiment will be described with reference to the flowcharts of FIGS. This processing procedure corresponds to the system configuration including the usable range control unit 60. 9 and 10, steps that perform the same processing as the steps in the flowcharts of FIGS. 3 and 7 are assigned the same reference numerals, and detailed descriptions thereof are omitted.

図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 processing control unit 10 of the portal host 1P. This procedure is obtained by adding steps S40 to S44 to the procedure of the processing control unit 10 of the second embodiment shown in FIG. That is, in this embodiment, when the process control unit 10 determines that the next process instruction is a script execution instruction in S18, the process control unit 10 further determines whether or not the host that should execute the script is the own host ( S40). This determination can be made by examining the value of the first argument indicating the execution designated host in the description instructing script execution shown in (41). In this determination, if the execution designation host is the own host, the process returns to S12 to call the script. If the execution designation host is another host (remote host 1R), the host information and arguments in the script execution instruction description are obtained. The URL for starting the processing result control unit 10 (servlet) of the other host is created, and an HTTP request corresponding to the URL is sent (S42). And when the HTTP response with respect to the request is received, the process result ID shown in it will be acquired (S44), and it will return to S14.

図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 processing control unit 10 of the remote host 1R. This procedure does not include step S5 of receiving an available range ID from the available range control unit 60 when compared with the processing procedure of the portal host 1P of FIG. This is because the usable range ID is given to the request of the client 2 by the portal host 1P, and other hosts called for the request may inherit the usable range ID. Further, in the procedure of the portal host 1P, after the processing of the requested script is completed (the determination result in S16 is No), it is determined whether the script is a script called from another script (S24). In the remote host 1R, since the script to be executed is always called from another script, the determination processing in S24 is not necessary, and simply performing processing for returning the ID of the final processing result of the script to the caller. Good (S26). Since the processing control unit 10 of the remote host 1R does not generate the usable range ID (open method 61) as described above when starting the processing of the requested script, when the script ends. Then, the related information is not deleted (close method 62). The deletion of the related information is performed based on an instruction from the portal host 1R when the processing of the script designated by the request from the client 2 is completed.

以上に説明した第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 hosts 1P and 1R perform processing in cooperation.

また、本実施形態では、各ホスト1P又は1R内の各ユニット(例えばデータ処理部30)が処理のために必要なデータ(中間処理結果)を自ホスト内の処理結果記憶部50に要求し、その処理結果記憶部50が要求されたデータを持たない場合にのみ、そのデータを持つホストからデータを取得し、それをその処理結果記憶部50に登録するようにした。これにより、呼び出されたホストから呼出元のホストに処理結果の実体データを1回転送してコピーすれば、その後呼出元のホストでその処理結果のデータが必要とされた時には、コピーした処理結果実体を再利用できる。これに対し、上記特許文献2の方式では、各処理サーバは自分の処理結果(スナップショット)を保存しているが、自分が呼び出した他の処理サーバの処理結果をコピーして再利用することまではしていない。このため、特許文献2では、ネットワークの負荷が大きいが、本実施形態ではそのような問題は解消乃至軽減できる。   In this embodiment, each unit (for example, the data processing unit 30) in each host 1P or 1R requests data (intermediate processing result) required for processing from the processing result storage unit 50 in its own host, Only when the processing result storage unit 50 does not have the requested data, the data is acquired from the host having the data and is registered in the processing result storage unit 50. As a result, if the actual data of the processing result is transferred once from the called host to the calling host and copied, the processing result copied when the processing result data is required at the calling host thereafter. The entity can be reused. On the other hand, in the method of Patent Document 2, each processing server stores its processing result (snapshot), but the processing result of another processing server that it calls can be copied and reused. Not up to. For this reason, although the network load is large in Patent Document 2, such a problem can be solved or reduced in the present embodiment.

また、本実施形態では、各ホスト1P及び1Rに保持される処理結果は、それぞれ利用可能範囲制御部60にて利用可能範囲IDと関連づけて管理されている。このため、スクリプトのデバッグの際、利用可能範囲IDを指定すれば、その利用可能範囲IDに対応する処理結果を各ホスト1P及び1Rから取得し、解析することができる。   In the present embodiment, the processing results held in the hosts 1P and 1R are managed in association with the available range ID by the available range control unit 60, respectively. For this reason, if a usable range ID is specified during script debugging, a processing result corresponding to the usable range ID can be acquired from each of the hosts 1P and 1R and analyzed.

なお、以上の説明では、別のホスト(呼出元)からスクリプトの実行を指示されたホスト(呼出先)は、スクリプトの処理が終わった時点では呼出元に対して処理結果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 result storage unit 50. However, this is only an example of a processing procedure. Instead, when the call destination finishes the script processing, both the processing result ID and the processing result entity are sent to the calling source, and the calling source registers this in the processing result storage unit 50 of its own host. Procedures can also be adopted. Further, in this case, only the processing result entity is sent from the call destination to the call source, and the call source that receives this process assigns a new process result ID to the process result entity and registers it in the process result storage unit 50. It is also possible to use a procedure.

[第4実施形態]
上記第3実施形態では、リモートホスト1Rが、他のホストから実行依頼されたスクリプトをどのように入手するかについては特に限定しなかった。しかし、仮に、リモートホスト1Rに対するリクエストの中で、インターネット等のネットワーク上の任意の場所にあるスクリプトのスクリプト名を実行対象に指定できるようにしたり、或いはリクエスト中にスクリプトそのものを組み込めるようにしたりしたのでは、未知のホストから任意のスクリプトを実行させられる可能性があり、セキュリティ上問題となる場合がある。この第4実施形態はそのような問題に対処するものである。
[Fourth Embodiment]
In the third embodiment, there is no particular limitation on how the remote host 1R obtains a script requested to be executed from another host. However, if a request to the remote host 1R is made, the script name of a script in an arbitrary location on the network such as the Internet can be designated as an execution target, or the script itself can be incorporated in the request. In this case, an arbitrary script may be executed from an unknown host, which may cause a security problem. The fourth embodiment addresses such a problem.

図11に、本実施形態のシステム構成を示す。本システムは、各ホスト1P及び1Rにスクリプト管理部80P及び80Rを加えたものであり、それ以外は第3実施形態のシステムと同じである。   FIG. 11 shows the system configuration of this embodiment. This system is obtained by adding script management units 80P and 80R to the hosts 1P and 1R, and is otherwise the same as the system of the third embodiment.

本実施形態では、リモートホスト1Rは、ポータルホスト1Pからスクリプトを取得して実行するようにする。そして、ポータルホスト1P以外からのスクリプトは受け入れないようにする。   In the present embodiment, the remote host 1R acquires a script from the portal host 1P and executes it. A script from other than the portal host 1P is not accepted.

本実施形態の分散処理システムで実行可能なスクリプトは、すべてポータルホスト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 script management unit 80P of the portal host 1P. Each script is assigned identification information (called a script ID) that is unique within the system. In the script execution instruction to the remote host 1R, the script ID to be executed is described. Upon receiving this execution instruction, the processing control unit 10 of the remote host 1R requests the script entity indicated by the script ID from the script management unit 80R in the host. The script management unit 80R that has received this request returns the script entity corresponding to the requested script ID to the processing control unit 10 if it has. If not, a request including the script ID information is transmitted to the script management unit 80P of the portal host 1P using, for example, HTTP, the script entity is acquired, and passed to the processing control unit 10. Here, if the acquired script entity is registered in the script management unit 80R in association with the script ID, it is not necessary to acquire a script from the portal host 1P when a request for the script ID is received in the future. .

このような仕組みによれば、リモートホスト1Rは、自分自身が最初から持っているか、ポータルホスト1Pから取得するかしたスクリプトしか実行できないので、未知のホストから任意のスクリプトを実行させられるというようなことは起こらない。   According to such a mechanism, the remote host 1R can only execute a script that it has from the beginning or that is acquired from the portal host 1P, so that an arbitrary script can be executed from an unknown host. That doesn't happen.

なお、以上の例では、リモートホスト1Rはポータルホスト1Pのみからスクリプトを取得したが、リモートホスト1Rからスクリプトを取得できるようにすることもできる。この場合、スクリプトIDとして、そのスクリプトの実体を持つホスト1P又は1Rの識別情報を組み込んだものを用いる。そして各ホストのスクリプト管理部80P又は80Rは、要求されたスクリプトを持っていない場合、そのスクリプトIDに示されたホストに対してスクリプト実体を要求するリクエストを送って、そのスクリプトを取得する。このような仕組みでも、未知のホスト上にあるスクリプトを実行させられることはない。   In the above example, the remote host 1R has acquired the script only from the portal host 1P, but it is also possible to acquire the script from the remote host 1R. In this case, a script ID incorporating the identification information of the host 1P or 1R having the script entity is used. If the script management unit 80P or 80R of each host does not have the requested script, the script management unit 80P or 80R sends a request for requesting a script entity to the host indicated by the script ID to acquire the script. Even with this mechanism, a script on an unknown host cannot be executed.

[第5実施形態]
第3実施形態では、リモートホスト1Rに対する処理の分散は、スクリプト単位であった。これに対し、この第5実施形態では、データ処理部30の処理の単位で分散を行う場合のシステム構成について説明する。
[Fifth Embodiment]
In the third embodiment, the distribution of processing to the remote host 1R is script units. In contrast, in the fifth embodiment, a system configuration in the case where distribution is performed in units of processing of the data processing unit 30 will be described.

第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 portal host 1P executes the script, and the remote host 1R is not provided with the processing control unit 10. Each processing instruction in the script describes information about the host that executes the processing as follows.

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 processing control unit 10 of the portal host 1P determines whether or not the host information in the processing instruction is that of the own host. A URL for executing the processing is created for another host, and an HTTP request is sent to the other host based on the URL. For example, the URL to be created is as follows.

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 remote host 1R. Then, the web server activates a servlet (data processing unit 30-1) indicated by the name Component1, and executes processing based on the raw material data indicated by the argument url1. The result of this processing is registered in the processing result storage unit 50 of the remote host 1R, and the processing result ID assigned by the processing result storage unit 50 at that time is returned to the data processing unit 30-1. The data processing unit 30-1 returns the processing result ID to the web server, and the web server returns an HTTP response including the processing result ID to the processing control unit 10 of the portal host 1P. When the data processing unit 30 of the portal host 1P needs the processing result, it is provided to the data processing unit 30 if the processing result storage unit 50 of the portal host 1P has it, as in the third embodiment. If not, it is obtained from the processing result storage unit 50 of the remote host 1R and provided to the data processing unit 30. The same applies when the remote host 1R needs the processing result of another remote host 1R.

以上の各実施形態では、クライアントとホストの間、及びホスト同士の間のリクエストとレスポンスを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 host 1 executes the script and the request is made by designating the script to be executed. However, this is just an example.

本発明の第1実施形態のシステム構成を示す図である。It is a figure which shows the system configuration | structure of 1st Embodiment of this invention. 処理結果管理テーブルのデータ構造を示す図である。It is a figure which shows the data structure of a process result management table. 処理制御部の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of a process control part. 本発明の第2実施形態のホストの構成を示す図である。It is a figure which shows the structure of the host of 2nd Embodiment of this invention. 利用可能範囲ID管理テーブルのデータ構造を示す図である。It is a figure which shows the data structure of an available range ID management table. 有効期間ID管理テーブルのデータ構造を示す図である。It is a figure which shows the data structure of an effective period ID management table. 第2実施形態での処理制御部の処理を示すフローチャートである。It is a flowchart which shows the process of the process control part in 2nd Embodiment. 第3実施形態のシステム構成を示す図である。It is a figure which shows the system configuration | structure of 3rd Embodiment. 第3実施形態のポータルホストの処理制御部の処理を示すフローチャートである。It is a flowchart which shows the process of the process control part of the portal host of 3rd Embodiment. 第3実施形態のリモートホストの処理制御部の処理を示すフローチャートである。It is a flowchart which shows the process of the process control part of the remote host of 3rd Embodiment. 第4実施形態のシステム構成を示す図である。It is a figure which shows the system configuration | structure of 4th Embodiment. 第5実施形態のシステム構成を示す図である。It is a figure which shows the system configuration | structure of 5th Embodiment.

符号の説明Explanation of symbols

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 access method 53 Processing result management table.

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.
利用可能範囲識別情報を伴うデバッグモードが指示された場合に、その利用可能範囲識別情報がデバッグ対象である旨を記憶するデバッグモード管理手段、を更に備え、
前記処理制御部は、前記処理手順中のデバッグモード指示を実行する場合、その処理手順の利用可能範囲識別情報を伴うデバッグモード指示を前記デバッグモード管理手段に送り、
前記処理結果提供手段は、その取得要求の際に渡された利用可能範囲識別情報がデバッグ対象であるか否かを前記デバッグモード管理手段を参照して求め、デバッグ対象である場合には、取得要求の対象である処理結果識別情報がその利用可能範囲識別情報に対応づけて前記利用可能範囲情報管理手段に保持されているか否かによらず、前記処理結果提供手段がその処理結果識別情報に対応する処理結果データをそのデータ処理部に提供する、
ことを特徴とする請求項記載の連携処理装置。
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.
処理結果識別情報を伴う削除対象除外要求に応じて、処理結果識別情報に対応する処理結果データを、前記有効期間終了手段による前記共有記憶部からの削除対象から外す削除対象除外手段、を更に備え、
前記処理制御部は、前記処理手順中に処理結果識別情報を指定した削除対象除外指示が記述されている場合は、その処理結果識別情報を伴う削除対象除外要求を前記削除対象除外手段に実行させる、
ことを特徴とする請求項記載の連携処理装置。
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 .
有効期間識別情報を伴うデバッグモードが指示された場合に、その有効期間識別情報がデバッグ対象である旨を記憶するデバッグモード管理手段、を更に備え、
前記処理制御部は、前記処理手順中のデバッグモード指示を実行する場合、有効期間識別情報を伴うデバッグモード指示を前記デバッグモード管理手段に送り、
前記有効期間終了手段は、前記有効期間終了要求に指定された有効期間識別情報がデバッグ対象であるか否かを前記デバッグモード管理手段を参照して求め、デバッグ対象である場合には、前記有効期間情報管理手段に保持されたその有効期間識別情報に対応する各処理結果識別情報に対応する処理結果データの前記共有記憶部からの削除を行わない、
ことを特徴とする請求項記載の連携処理装置。
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.
JP2004321445A 2004-11-05 2004-11-05 Cooperation processing apparatus and system Expired - Fee Related JP4432733B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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