JP2013097666A - Service cooperation device and service cooperation method and program - Google Patents

Service cooperation device and service cooperation method and program Download PDF

Info

Publication number
JP2013097666A
JP2013097666A JP2011241226A JP2011241226A JP2013097666A JP 2013097666 A JP2013097666 A JP 2013097666A JP 2011241226 A JP2011241226 A JP 2011241226A JP 2011241226 A JP2011241226 A JP 2011241226A JP 2013097666 A JP2013097666 A JP 2013097666A
Authority
JP
Japan
Prior art keywords
service
pipe
variable
input
variable value
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.)
Granted
Application number
JP2011241226A
Other languages
Japanese (ja)
Other versions
JP5752009B2 (en
Inventor
Satoru Tanaka
覚 田中
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2011241226A priority Critical patent/JP5752009B2/en
Publication of JP2013097666A publication Critical patent/JP2013097666A/en
Application granted granted Critical
Publication of JP5752009B2 publication Critical patent/JP5752009B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To use the same data with respect to a plurality of services in the case of performing service cooperation by using a pipe.SOLUTION: A definition analysis part 1001 designates a service connection part of the output source and output destination of a variable value for every variable before service cooperation, and designates one of duplication/writing processing of, when there are two or more output destinations for a certain variable, duplicating the variable value for the variable and writing the variable values in parallel in two or more pipes and reading/duplication processing of reading the variable value from one pipe, duplicating the read variable value, and writing the variable value in the other pipe, and generates pipe allocation definition 1103. A pipe management part 1002 generates pipe writing means 1004 capable of performing the duplication/writing processing, pipe reading means 1005 capable of performing the reading/duplication processing and a pipe 1006 during service cooperation, and makes the plurality of service connection parts transfer the variable values by using them to achieve service cooperation.

Description

本発明は、2つ以上のサービスを連携させるサービス連携装置等に関する。   The present invention relates to a service cooperation apparatus that links two or more services.

複数のシステムのデータや機能を利用して新しい機能を作成する方法としては、SOA(Service Oriented Architecture:サービス指向アーキテクチャ)のように、それぞれのシステムのデータや機能をWebサービスのようなサービスとして公開し、公開されたサービスを順次起動するという方法がある。
このとき、順次起動したサービスを連携させるために、先に起動したサービスの出力を次に起動するサービスの入力にするという処理が行われる。
As a method of creating a new function by using data and functions of a plurality of systems, each system data and function is disclosed as a service such as a Web service, such as SOA (Service Oriented Architecture). Then, there is a method of sequentially starting published services.
At this time, in order to link the sequentially activated services, a process is performed in which the output of the first activated service is used as the input of the next activated service.

従来のESB(Enterprise Service Bus)というサービス連携を行うミドルウェアでは、サービスの起動をメッセージのフローによって制御しており、サービスで入出力されるデータはそのメッセージによって運ばれている(例えば、非特許文献1の第15ページ 「4.4 Normalized Message Exchange」を参照)。
サービスを連携させる場合は、ESBは先に起動されたサービスの出力データをメッセージに格納する。
次に、ESBはメッセージからデータを取り出し、後に起動するサービスへの入力とする。
ESBはこれを繰り返すことでサービス連携を行う。
In middleware that performs service cooperation, such as a conventional ESB (Enterprise Service Bus), service activation is controlled by a message flow, and data input and output by the service is carried by the message (for example, non-patent literature) 1 page 15 “4.4 Normalized Message Exchange”).
When linking services, the ESB stores the output data of the previously activated service in a message.
Next, the ESB extracts data from the message and uses it as an input to a service to be activated later.
The ESB performs service cooperation by repeating this.

また、サービスの呼出しは通信によって行われることが多く、通信をデータストリームと見なした場合、データストリームを連携させるという方法も提案されている(例えば、特許文献1)。
特許文献1では、あるデータストリームから取得できるデータをパイプ(特許文献1ではキューとして記載されている)に溜め込み、パイプに溜め込まれたデータをリレーショナルデータベースの表と見なして、そこからデータを抽出(SELECT)する。
抽出したデータは、文字コードの変換や、別の表との結合などを行いながら、仮想的な表に格納する。
この仮想的な表に格納されたデータを別のサービスの入力となるストリームに書き出すことでサービス連携が行われる。
In addition, a service call is often performed by communication, and when communication is regarded as a data stream, a method of linking data streams has also been proposed (for example, Patent Document 1).
In Patent Document 1, data that can be acquired from a certain data stream is stored in a pipe (described as a queue in Patent Document 1), and the data stored in the pipe is regarded as a table in a relational database, and data is extracted therefrom ( SELECT).
The extracted data is stored in a virtual table while character code conversion or combination with another table is performed.
Service linkage is performed by writing the data stored in this virtual table to a stream that is input to another service.

特開2011−13989号公報JP 2011-13989 A

Java Business Integration 1.0(Javaは登録商標) <http://jcp.org/aboutJava/communityprocess/final/jsr208/index.html>Java Business Integration 1.0 (Java is a registered trademark) <http: // jcp. org / aboutJava / communityprocess / final / jsr208 / index. html>

非特許文献1に記載の従来のESBでは、サービスとの入出力で使用するデータが大量になった場合に、以下のような課題がある。   The conventional ESB described in Non-Patent Document 1 has the following problems when a large amount of data is used for input / output with a service.

1)サービスの入出力データをメッセージに格納したり、取り出したりする処理がボトルネックになるという課題がある。
メッセージにデータを格納する方式では、あるサービスから出力されたデータをメッセージに格納する処理や、格納されたデータを取り出す処理が終了しなければ、次のサービスを起動することが出来ない。
そのため、データが大量にある場合などは、複数のサービスを連携させる処理の中で、データをメッセージに格納したり、取り出したりする処理がボトルネックとなる可能性がある。
特に、サービスをそれぞれ外部の計算機で実行しているような場合、メッセージにデータを格納したりする処理の間は、計算機が待ち状態となってしまう。
1) There is a problem that processing for storing and retrieving service input / output data becomes a bottleneck.
In the method of storing data in a message, the next service cannot be started unless the process of storing the data output from a certain service or the process of retrieving the stored data is completed.
Therefore, when there is a large amount of data, the process of storing or retrieving data in a message may be a bottleneck in the process of linking multiple services.
In particular, when a service is executed by an external computer, the computer is in a waiting state during the process of storing data in a message.

2)メッセージは実質的にメモリ上に格納されているため、メッセージ上にデータを格納するということはサービスの出力(メッセージの全体)を一度にメモリに格納することになり、メモリを大量に消費する可能性がある。 2) Since messages are actually stored in memory, storing data on messages means that the output of the service (the entire message) is stored in memory at once, which consumes a large amount of memory. there's a possibility that.

これに対して特許文献1に書かれているストリーム統合のように、データストリームから取得されたデータを随時、連携先のデータストリームに書きだすという方法を採った場合、非特許文献1の2つの課題は解決される。
しかし、この場合でも、以下のような課題がある。
On the other hand, when the method of writing the data acquired from the data stream to the data stream of the cooperation destination at any time like the stream integration described in Patent Document 1, the two of Non-Patent Document 1 are used. The problem is solved.
However, even in this case, there are the following problems.

1つのデータストリームから取得されたデータを単純にパイプに溜めておく方法では、複数のデータストリームに書くことが出来ないという課題がある。
通常のパイプでは読み取ったデータは、読み取った時点で捨てられてしまうため、同一のデータを複数のサービスで使用するようなサービス連携が実現できない。
パイプからデータを読み取る際にデータを捨てないようにすることも考えられるが、そのようにした場合、パイプに溜められたデータを捨てるタイミングについて制御を行う必要がある。
The method of simply storing data acquired from one data stream in a pipe has a problem that it cannot be written in a plurality of data streams.
In a normal pipe, the read data is discarded at the time of reading, and thus service cooperation that uses the same data for a plurality of services cannot be realized.
Although it is conceivable that data is not discarded when data is read from the pipe, in such a case, it is necessary to control the timing at which the data stored in the pipe is discarded.

この発明は上記のような課題を解決することを主な目的としており、パイプを使用してサービス連携を行う場合に、複数のサービスに対しても同じデータを利用できるようにすることを主な目的とする。   The main object of the present invention is to solve the above-mentioned problems, and when performing service cooperation using a pipe, the main object is to make it possible to use the same data for a plurality of services. Objective.

本発明に係るサービス連携装置は、
いずれかのサービスアプリケーションにより実施される2つ以上のサービスを連携させるサービス連携装置であって、
複数のサービスアプリケーションのいずれかに対応し、サービスの連携時に、対応するサービスアプリケーションとの間で変数値を送受信する複数のサービス接続部と、
サービスの連携が開始する前に、サービスの連携手順が示される連携シナリオを解析して、サービスの連携に用いられる変数ごとに、前記複数のサービス接続部の中から、サービスの連携時に変数値を出力する出力サービス接続部と変数値を入力する入力サービス接続部とを指定し、指定した出力サービス接続部と入力サービス接続部とが変数ごとに示される入出力定義情報を生成する定義解析部と、
サービスの連携が開始する前に、前記定義解析部により生成された入出力定義情報を記憶する記憶部と、
サービスの連携時に、前記入出力定義情報に基づき、変数値が保持されるパイプと、出力サービス接続部から変数値を入力してパイプに書き込むパイプ書き込み手段と、パイプから変数値を読み出して入力サービス接続部に出力するパイプ読み出し手段とを、変数ごとに生成するパイプ管理部とを有し、
各サービス接続部は、
サービスの連携時に、対応するサービスアプリケーションから受信した変数値を当該変数値に対応するパイプ書き込み手段に出力し、パイプ読み出し手段から入力した変数値を対応するサービスアプリケーションに送信し、
前記定義解析部は、
前記連携シナリオを解析した結果、いずれかの変数に対して1つの出力サービス接続部と2つ以上の入力サービス接続部とを指定する場合に、当該変数に対して、
出力サービス接続部から入力した変数値を複製して2つ以上の入力サービス接続部への2つ以上のパイプに並行して書き込む複製書込み処理と、
1つのパイプから変数値を読み出し、読み出した変数値を複製し、変数値を当該パイプの入力サービス接続部に出力するとともに他の入力サービス接続部へのパイプに書き込む読出し複製処理とのいずれかを指定し、
当該変数に対して複製書込み処理及び読出し複製処理のいずれかが示される入出力定義情報を生成し、
前記パイプ管理部は、
複製書込み処理及び読出し複製処理のいずれかが示されている変数に対して、1つのパイプ書き込み手段を生成するとともに、入力サービス接続部ごとにパイプとパイプ読み出し手段とを生成し、
複製書込み処理が示されている変数に対しては、生成したパイプ書き込み手段に複製書込み処理を実行させ、
読出し複製処理が示されている変数に対しては、生成したパイプ読出し手段に読出し複製処理を実行させることを特徴とする。
The service cooperation apparatus according to the present invention is:
A service cooperation device for linking two or more services implemented by any service application,
A plurality of service connection units that correspond to any one of a plurality of service applications and that transmit and receive variable values with the corresponding service application at the time of service linkage,
Before starting service linkage, analyze the linkage scenario showing the service linkage procedure, and for each variable used for service linkage, set the variable value during service linkage from the multiple service connections. A definition analysis unit that specifies an output service connection unit to output and an input service connection unit to input a variable value, and the input service connection unit and the input service connection unit that generate the input / output definition information indicated for each variable; ,
A storage unit that stores the input / output definition information generated by the definition analysis unit before service cooperation starts;
When linking services, based on the input / output definition information, a pipe that holds the variable value, a pipe writing means that inputs the variable value from the output service connection unit and writes the variable value to the pipe, and an input service that reads the variable value from the pipe A pipe reading unit for outputting to the connection unit, and a pipe management unit for generating each variable,
Each service connection
At the time of service linkage, the variable value received from the corresponding service application is output to the pipe writing means corresponding to the variable value, the variable value input from the pipe reading means is transmitted to the corresponding service application,
The definition analysis unit
As a result of analyzing the cooperation scenario, when one output service connection unit and two or more input service connection units are specified for any variable,
A duplicate write process that duplicates the variable value input from the output service connection and writes it in parallel to two or more pipes to two or more input service connections;
Read variable value from one pipe, duplicate the read variable value, output the variable value to the input service connection part of the pipe and write to the pipe to the other input service connection part. Specify
Generate I / O definition information that indicates either replication write processing or read replication processing for the variable,
The pipe management unit
One pipe writing means is generated for a variable in which either of the replication writing process and the reading replication process is indicated, and a pipe and a pipe reading means are generated for each input service connection unit.
For variables for which duplicate write processing is indicated, the created pipe write means executes duplicate write processing,
For the variable for which the read duplication processing is indicated, the generated pipe read means is caused to execute the read duplication processing.

本発明によれば、変数値を複製して2つ以上のパイプに並行して書き込む複製書込み処理及び1つのパイプから読み出した変数値を複製して別のパイプに書き込む読み出し複製処理が可能なので、複数のサービスの実行に同じ変数値を利用することができる。   According to the present invention, it is possible to perform a replication write process in which a variable value is duplicated and written in parallel to two or more pipes, and a read replication process in which a variable value read from one pipe is duplicated and written to another pipe. The same variable value can be used to execute multiple services.

実施の形態1に係るシステム構成例を示す図。FIG. 3 is a diagram illustrating an example of a system configuration according to the first embodiment. 実施の形態1に係るサービス連携装置の構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of a service cooperation apparatus according to the first embodiment. 実施の形態1に係るパイプ書き込み手段とパイプ読出し手段の構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of a pipe writing unit and a pipe reading unit according to the first embodiment. 実施の形態1に係るシナリオ定義例を示す図。FIG. 3 is a diagram illustrating a scenario definition example according to the first embodiment. 実施の形態1に係るインターフェース定義例を示す図。FIG. 5 is a diagram showing an example of interface definition according to the first embodiment. 実施の形態1に係るアクセス経路例を示す図。FIG. 3 is a diagram illustrating an example of an access route according to the first embodiment. 実施の形態1に係るパイプ割り当て定義例を示す図。FIG. 6 is a diagram showing a pipe allocation definition example according to the first embodiment. 実施の形態1に係るシナリオ定義例の処理フローを示す図。FIG. 4 is a diagram showing a process flow of a scenario definition example according to the first embodiment. 実施の形態1に係る解析処理フロー図。FIG. 3 is an analysis processing flowchart according to the first embodiment. 実施の形態1に係る処理実行フロー図。FIG. 3 is a process execution flowchart according to the first embodiment. 実施の形態1に係るサービス接続部の処理フロー図。FIG. 4 is a process flow diagram of a service connection unit according to the first embodiment. 実施の形態1に係るパイプ書き込み手段とパイプ読出し手段の処理例を示す図。The figure which shows the processing example of the pipe writing means and pipe reading means which concern on Embodiment 1. FIG. 実施の形態1に係るパイプ書き込み手段とパイプ読出し手段の処理例を示す図。The figure which shows the processing example of the pipe writing means and pipe reading means which concern on Embodiment 1. FIG. 実施の形態1に係るパイプ書き込み手段の処理例を示す図。FIG. 4 is a diagram illustrating a processing example of a pipe writing unit according to the first embodiment. 実施の形態2に係るサービス連携装置の構成例を示す図。FIG. 4 is a diagram illustrating a configuration example of a service cooperation apparatus according to a second embodiment. 実施の形態2に係る処理実行フロー図。FIG. 6 is a process execution flowchart according to the second embodiment. 実施の形態3に係るパイプ書き込み手段とパイプ読出し手段の構成例を示す図。FIG. 10 is a diagram illustrating a configuration example of a pipe writing unit and a pipe reading unit according to the third embodiment. 実施の形態3に係るインターフェース定義例を示す図。FIG. 10 is a diagram illustrating an example of interface definition according to the third embodiment. 実施の形態3に係るパイプ割り当て定義例を示す図。FIG. 10 is a diagram showing an example of pipe allocation definition according to the third embodiment. 実施の形態4に係るサービス連携装置の構成例を示す図。FIG. 10 is a diagram illustrating a configuration example of a service cooperation apparatus according to a fourth embodiment. 実施の形態4に係るサービス接続部の処理例を示すフロー図。FIG. 10 is a flowchart showing a processing example of a service connection unit according to the fourth embodiment. 実施の形態1〜6に係るサービス連携装置のハードウェア構成例を示す図。The figure which shows the hardware structural example of the service cooperation apparatus which concerns on Embodiment 1-6.

実施の形態1.
本実施の形態では、サービスの入出力に使用するデータが大量の場合にも、パイプを使用して随時サービスを実行させながら複数のサービスに対しても同じデータを利用できるようにする構成を説明する。
なお、本明細書におけるパイプとは、UNIX(登録商標)におけるパイプと同様の概念であり、プロセス(またはスレッド)間で変数値を送受信させるために、変数値を保持する手段である。
Embodiment 1 FIG.
In this embodiment, even when a large amount of data is used for input / output of a service, a configuration is described in which the same data can be used for multiple services while executing the service at any time using a pipe. To do.
The pipe in this specification is a concept similar to the pipe in UNIX (registered trademark), and is a means for holding a variable value in order to transmit and receive the variable value between processes (or threads).

また、本実施の形態では、パイプを使用してサービスを連携する場合に、後のサービスの処理では使用されないデータはパイプに書き込まないようにして無駄を排除する構成も説明する。
例えば、特許文献1のようにデータストリームの出力が複数の項目(表でのカラム)から構成されている場合、パイプには後の処理では使用されないデータも格納されることがあり、無駄がある。
本実施の形態では、このような後の処理で使用されないデータはパイプに書き込まないようにする。
In the present embodiment, a configuration is also described in which, when services are linked using a pipe, data that is not used in subsequent service processing is not written to the pipe to eliminate waste.
For example, when the output of the data stream is composed of a plurality of items (columns in the table) as in Patent Document 1, data that is not used in later processing may be stored in the pipe, which is useless. .
In the present embodiment, data that is not used in such subsequent processing is not written to the pipe.

図1は、実施の形態1に係るシステム構成例を示す図である。   FIG. 1 is a diagram illustrating a system configuration example according to the first embodiment.

図1において、サービス連携装置1000は、複数のサービスを連携するための装置である。
サービス連携装置1000は、PC(Personal Computer)やサーバ装置のような計算機上にプログラムを用いて実現されることが多い(例えばESB)が、専用の装置であってもかまわない。
In FIG. 1, a service cooperation apparatus 1000 is an apparatus for linking a plurality of services.
The service cooperation apparatus 1000 is often implemented using a program on a computer such as a PC (Personal Computer) or a server apparatus (for example, ESB), but may be a dedicated apparatus.

サービス連携装置1000は、サービスを利用するサービス利用システム4000と接続され、サービス利用システム4000からサービスの提供を要求するサービス提供要求を受信し、サービス提供要求に基づいて複数のサービスの連携を行う。   The service cooperation apparatus 1000 is connected to a service utilization system 4000 that uses a service, receives a service provision request for requesting provision of a service from the service utilization system 4000, and coordinates a plurality of services based on the service provision request.

また、サービス連携装置1000は、それぞれサービスを実施するアプリケーションプログラムであるサービスアプリケーションA2001〜サービスアプリケーションD2004と通信を行い、複数のサービスを連携する。
サービスアプリケーションA2001により実施されるサービスをサービスA、サービスアプリケーションB2002により実施されるサービスをサービスB、サービスアプリケーションC2003により実施されるサービスをサービスC、サービスアプリケーションD2004により実施されるサービスをサービスDとよぶ。
サービスA〜サービスDは、サービス利用システム4000に提供されるサービスである。
なお、サービスアプリケーションA2001〜サービスアプリケーションD2004は、それぞれ、コンピュータにより実行される。
つまり、サービス連携装置1000は、物理的には、サービスアプリケーションA2001〜サービスアプリケーションD2004を実現するコンピュータと通信を行って、複数のサービスを連携するが、本明細書では便宜的に、サービス連携装置1000は、サービスアプリケーションA2001〜サービスアプリケーションD2004と通信すると表記する。
Further, the service cooperation apparatus 1000 communicates with service application A2001 to service application D2004, which are application programs for executing services, and cooperates with a plurality of services.
A service executed by the service application A2001 is called service A, a service executed by the service application B2002 is called service B, a service executed by the service application C2003 is called service C, and a service executed by the service application D2004 is called service D.
Service A to service D are services provided to the service use system 4000.
Note that service application A2001 to service application D2004 are each executed by a computer.
That is, the service cooperation apparatus 1000 physically communicates with a computer that implements the service application A2001 to the service application D2004 to cooperate with a plurality of services. However, for convenience, the service cooperation apparatus 1000 is used in this specification. Is described as communicating with service application A2001 to service application D2004.

サービス連携装置1000は、サービスアプリケーションA2001〜サービスアプリケーションD2004に対してリクエストデータストリームを送信し、リクエストデータストリームの応答であるレスポンスデータストリームをサービスアプリケーションA2001〜サービスアプリケーションD2004から受信する。
サービス連携にあたっては、サービス連携装置1000は、あるサービスアプリケーションからのレスポンスデータストリームに含まれる変数値を他のサービスアプリケーションへのリクエストデータストリームに含ませる場合がある。
この場合に、サービス連携装置1000は、1つのサービスアプリケーション(例えば、サービスアプリケーションA2001)からのレスポンスデータストリームに含まれる変数値を他の2つ以上のサービスアプリケーション(例えば、サービスアプリケーションB2002とサービスアプリケーションC2003)へのリクエストデータストリームに含ませる場合もある。
The service cooperation apparatus 1000 transmits a request data stream to the service application A2001 to the service application D2004, and receives a response data stream that is a response to the request data stream from the service application A2001 to the service application D2004.
In service cooperation, the service cooperation apparatus 1000 may include a variable value included in a response data stream from a certain service application in a request data stream to another service application.
In this case, the service cooperation apparatus 1000 converts the variable value included in the response data stream from one service application (for example, service application A2001) into two or more other service applications (for example, service application B2002 and service application C2003). ) May be included in the request data stream.

図2は、本実施の形態に係るサービス連携装置1000の内部構成例を示す。   FIG. 2 shows an internal configuration example of the service cooperation apparatus 1000 according to the present embodiment.

図2において、定義解析部1001は、シナリオ定義1101とインターフェース定義1102を解析し、パイプ割り当て定義1103を生成する機能である。   In FIG. 2, the definition analysis unit 1001 has a function of analyzing a scenario definition 1101 and an interface definition 1102 and generating a pipe allocation definition 1103.

シナリオ定義1101は、サービス接続部A1008〜サービス接続部D1011を起動する順番を定義した情報であり、図4はシナリオ定義1101の例である。
また、図8は、このシナリオ例の処理フローを表した図である。
図4の例では、サービス接続部A1008を実行した後に、並列に実行する2つの処理に分かれる。
一つ目の処理はサービス接続部B1009を実行する処理であり、もう一つはサービス接続部C1010とサービス接続部D1011を実行する処理である。
なお、後述するように、サービス接続部A1008〜サービス接続部D1011は、サービスアプリケーションA2001〜サービスアプリケーションD2004と通信を行う機能である。
The scenario definition 1101 is information defining the order in which the service connection unit A 1008 to the service connection unit D 1011 are activated. FIG. 4 is an example of the scenario definition 1101.
FIG. 8 is a diagram showing the processing flow of this scenario example.
In the example of FIG. 4, after executing the service connection unit A1008, it is divided into two processes executed in parallel.
The first process is a process for executing the service connection unit B1009, and the other process is a process for executing the service connection unit C1010 and the service connection unit D1011.
As will be described later, the service connection unit A 1008 to the service connection unit D 1011 are functions for communicating with the service application A 2001 to the service application D 2004.

インターフェース定義1102は、サービス接続部A1008〜サービス接続部D1011の入出力を定義したものである。
インターフェース定義1102には、サービス接続部間でデータを受け渡すために、サービス接続部で取得する変数とその変数を使用するサービス接続部を記述する。
図5はインターフェース定義1102の例である。
図5の例では、サービス接続部A1008(図5ではnaと表記)が出力する変数p1の変数値を、サービス接続部B1009(図5ではnbと表記)が入力することが示され、また、サービス接続部A1008(na)が出力する変数p2の変数値を、サービス接続部B1009(nb)とサービス接続部C1010(図5ではncと表記)が入力することが示されている。
また、サービス接続部A1008(na)が出力する変数p3の変数値を、サービス接続部C1010(nc)とサービス接続部D1011(図5ではndと表記)が入力することが示され、また、サービス接続部B1009(nb)が出力する変数p4の変数値はどのサービス接続部でも入力しないことが示されている。
The interface definition 1102 defines the input / output of the service connection unit A 1008 to the service connection unit D 1011.
The interface definition 1102 describes a variable acquired by the service connection unit and a service connection unit that uses the variable in order to exchange data between the service connection units.
FIG. 5 is an example of the interface definition 1102.
In the example of FIG. 5, it is shown that the service connection unit B 1009 (denoted as nb in FIG. 5) inputs the variable value of the variable p1 output from the service connection unit A 1008 (denoted as na in FIG. 5). It is shown that the service connection unit B 1009 (nb) and the service connection unit C 1010 (denoted as nc in FIG. 5) input the variable value of the variable p2 output by the service connection unit A 1008 (na).
In addition, it is shown that the service connection unit C1010 (nc) and the service connection unit D1011 (denoted as nd in FIG. 5) input the variable value of the variable p3 output by the service connection unit A1008 (na). It is shown that the variable value of the variable p4 output by the connection unit B1009 (nb) is not input by any service connection unit.

シナリオ定義1101とインターフェース定義1102では、図4、図5及び図8に示すように、サービスの連携手順が示されており、シナリオ定義1101とインターフェース定義1102は連携シナリオの例に相当する。   In the scenario definition 1101 and the interface definition 1102, as shown in FIGS. 4, 5, and 8, service cooperation procedures are shown. The scenario definition 1101 and the interface definition 1102 correspond to examples of cooperation scenarios.

パイプ割り当て定義1103は、各サービス接続部で適用するパイプ処理を定義したものである。
パイプ割り当て定義1103は、例えば図7に示す情報である。
The pipe allocation definition 1103 defines pipe processing applied in each service connection unit.
The pipe allocation definition 1103 is information shown in FIG. 7, for example.

なお、図7の詳細は後述するが、パイプ割り当て定義1103では、サービスの連携に用いられる変数(図7の例では、p1、p2、p3、p4)ごとに、サービスの連携時に変数値を出力する出力サービス接続部(図7の例では、na(p1〜p3)、nb(p4))と変数値を入力する入力サービス接続部(図7の例では、nb(p1)、nbとnc(p2)、ncとnd(p3))とが示されており、パイプ割り当て定義1103は入出力定義情報の例に相当する。   Although details of FIG. 7 will be described later, the pipe allocation definition 1103 outputs a variable value for each variable (p1, p2, p3, and p4 in the example of FIG. 7) when the service is linked. Output service connection units (in the example of FIG. 7, na (p1 to p3), nb (p4)) and input service connection units for inputting variable values (in the example of FIG. 7, nb (p1), nb and nc ( p2), nc, and nd (p3)), and the pipe allocation definition 1103 corresponds to an example of input / output definition information.

パイプ管理部1002は、パイプ割り当て定義1103に基づいてサービス接続部の動作時に必要なパイプ1006の作成やパイプ書込み手段1004とパイプ読出し手段1005の割り当てを行う機能である。
より具体的には、パイプ管理部1002は、パイプ書込み手段1004とパイプ読出し手段1005のスレッド(プロセス)を起動し、また、メモリの所定の領域をパイプ1006に割り当てる。
The pipe management unit 1002 has a function of creating a pipe 1006 necessary for the operation of the service connection unit and allocating the pipe writing unit 1004 and the pipe reading unit 1005 based on the pipe allocation definition 1103.
More specifically, the pipe management unit 1002 activates threads (processes) of the pipe writing unit 1004 and the pipe reading unit 1005, and allocates a predetermined area of the memory to the pipe 1006.

サービス公開部1003は、サービス連携装置1000がサービスアプリケーションA2001〜サービスアプリケーションD2004を連携させて新たに作成した機能を装置の外部から利用できるように、サービス連携装置1000に対する外部からの処理要求を受け付けるための機能である。
例えば、HTTP(Hypertext Transfer Protocol)で機能を呼出すWebサービスなどの形で公開する。
サービス利用システム4000は、サービス公開部1003によって公開されたサービスを呼出すことができる。
サービス公開部1003は、サービス利用システム4000からの処理要求(サービス提供要求)を受け付けると、ESBのメッセージをシナリオ制御部1007に送信する。
サービス公開部1003は、サービス提供要求受信部の例に相当する。
The service disclosure unit 1003 receives a processing request from the outside to the service cooperation apparatus 1000 so that the service cooperation apparatus 1000 can use the newly created function by linking the service application A2001 to the service application D2004 from the outside of the apparatus. It is a function.
For example, it is disclosed in the form of a Web service that calls a function using HTTP (Hypertext Transfer Protocol).
The service utilization system 4000 can call a service published by the service disclosure unit 1003.
Upon receiving a processing request (service provision request) from the service utilization system 4000, the service disclosure unit 1003 transmits an ESB message to the scenario control unit 1007.
The service disclosure unit 1003 corresponds to an example of a service provision request reception unit.

シナリオ制御部1007は、シナリオ定義1101にもとづいて、サービス接続部A1008〜サービス接続部D1011にESBのメッセージを送信する機能である。   The scenario control unit 1007 has a function of transmitting an ESB message to the service connection unit A 1008 to the service connection unit D 1011 based on the scenario definition 1101.

サービス接続部A1008〜サービス接続部D1011は、サービスアプリケーションA2001〜サービスアプリケーションD2004に対応し、対応するサービスアプリケーションにおけるサービスの呼出し処理を行う。
サービス接続部A1008〜サービス接続部D1011は、シナリオ制御部1007からESBのメッセージを受信することで動作する。
サービス接続部A1008〜サービス接続部D1011は、サービスアプリケーションを呼出す前に、パイプ管理部1002からサービスアプリケーションに入力するデータを取得するためのパイプ読出し手段1005への参照と、サービスアプリケーションからの出力を格納するためのパイプ書込み手段1004への参照を取得する。
そして、サービス接続部A1008〜サービス接続部D1011は、パイプ1006への変数値の入出力を行いながら、対応するサービスアプリケーションとの間で変数値を含むリクエストデータストリームとレスポンスデータストリームを送受信する。
なお、図1では、例としてサービス接続部とサービスをそれぞれ4個としているが、実際にはサービスは1個以上あればよく、4個に限定されるものではない。
Service connection unit A 1008 to service connection unit D 1011 correspond to service application A 2001 to service application D 2004, and perform service call processing in the corresponding service application.
The service connection unit A 1008 to the service connection unit D 1011 operate by receiving an ESB message from the scenario control unit 1007.
The service connection unit A 1008 to the service connection unit D 1011 store a reference to the pipe reading unit 1005 for acquiring data to be input to the service application from the pipe management unit 1002 and an output from the service application before calling the service application. To obtain a reference to the pipe writing means 1004 for
The service connection unit A 1008 to the service connection unit D 1011 transmit / receive a request data stream and a response data stream including the variable value to / from the corresponding service application while inputting / outputting the variable value to / from the pipe 1006.
In FIG. 1, four service connection units and four services are provided as an example. However, in practice, one or more services are sufficient, and the number is not limited to four.

リクエストデータストリームA3001〜リクエストデータストリームD3004とレスポンスデータストリームA3101〜レスポンスデータストリームD3104は、それぞれサービスアプリケーションへの入力のデータとサービスアプリケーションから出力されたデータを表す。   The request data stream A 3001 to the request data stream D 3004 and the response data stream A 3101 to the response data stream D 3104 represent data input to the service application and data output from the service application, respectively.

ここで、サービスアプリケーションにより提供されるサービスとは、WebサービスやFTP(File Transfer Protocol)のような通信によって利用できる機能や、ファイルシステムのような計算機上の機能であり、データストリームはサービス接続部がサービスを利用する際に作成される。
例えば、Webサービスの場合は、サービス接続部はサービスアプリケーションとの間にTCP(Transmission Control Protocol)のコネクションを確立し、HTTPリクエストを送信し、サービスアプリケーションからのHTTPレスポンスを取得する。
これらのHTTPリクエストとHTTPレスポンスが、それぞれリクエストデータストリームとレスポンスデータストリームに該当する。
また、例えばサービスアプリケーションがファイルシステムであり、サービスアプリケーションで実行する動作がファイルを作成し、シーケンシャルにデータを書込むことである場合を考える。
このとき、サービス接続部はfopenなどのAPI(Application Programming Interface)によりファイルを開き、ファイルシステムに対してシーケンシャルにデータを渡す。
このときファイルに書込むデータがリクエストデータストリームにあたる。
また、この場合はファイルからデータを取得することは無いので、レスポンスデータストリームの中にはデータが存在しない。
Here, the service provided by the service application is a function that can be used by communication such as Web service or FTP (File Transfer Protocol), or a function on a computer such as a file system, and a data stream is a service connection unit. Is created when using the service.
For example, in the case of a Web service, the service connection unit establishes a TCP (Transmission Control Protocol) connection with the service application, transmits an HTTP request, and acquires an HTTP response from the service application.
These HTTP requests and HTTP responses correspond to a request data stream and a response data stream, respectively.
For example, consider a case where the service application is a file system and the operation executed by the service application is to create a file and write data sequentially.
At this time, the service connection unit opens the file by API (Application Programming Interface) such as fopen, and sequentially passes the data to the file system.
At this time, the data to be written to the file corresponds to the request data stream.
In this case, since no data is acquired from the file, there is no data in the response data stream.

パイプ1006は、サービス接続部によって取得されたデータ(変数値)を別のサービス接続部に渡すために使用するデータ(変数値)の入れ物(通信路)である。
パイプ書込み手段1004は、サービス接続部によって取得されたデータ(変数値)をパイプ1006に書込む処理を行う機能であり、パイプ読出し手段1005は、パイプに書込まれているデータ(変数値)をサービス接続部で使用するためにパイプからデータ(変数値)を読み出す機能である。
The pipe 1006 is a container (communication path) of data (variable value) used to pass data (variable value) acquired by the service connecting unit to another service connecting unit.
The pipe writing unit 1004 has a function of performing processing for writing the data (variable value) acquired by the service connection unit into the pipe 1006, and the pipe reading unit 1005 stores the data (variable value) written in the pipe. This function reads data (variable values) from a pipe for use in a service connection unit.

図3は、パイプ書込み手段1004、パイプ1006、パイプ読出し手段1005の詳細な構成を示す図である。   FIG. 3 is a diagram showing a detailed configuration of the pipe writing unit 1004, the pipe 1006, and the pipe reading unit 1005.

パイプ書込み手段1004は、書込みデータコピー機能10041と読捨て機能10042を持つ。
書込みデータコピー機能10041は、同一のデータ(変数値)を複数のパイプ読出し手段1005で使用できるように、データ(変数値)をコピーして複数のパイプ1006に同じデータ(変数値)を書込む機能である。
読捨て機能10042は、パイプ読出し手段1005によって使用されないデータ(変数値)をパイプ1006に書込まずに、捨てるための機能である。
パイプ読出し手段1005は、読出しデータコピー機能10051を持つ。
読出しデータコピー機能10051は、一度読み取ったデータを再度パイプ読出し手段1005で使用できるように、読み取ったデータをコピーし、パイプ1006に書き込む機能である。
The pipe writing means 1004 has a write data copy function 10041 and a read discard function 10042.
The write data copy function 10041 copies the data (variable value) and writes the same data (variable value) to the plurality of pipes 1006 so that the same data (variable value) can be used by the plurality of pipe reading means 1005. It is a function.
The discarding function 10042 is a function for discarding data (variable values) that are not used by the pipe reading unit 1005 without writing them to the pipe 1006.
The pipe reading unit 1005 has a read data copy function 10051.
The read data copy function 10051 is a function for copying the read data and writing it to the pipe 1006 so that the data once read can be used again by the pipe reading means 1005.

パイプ書込み手段1004、パイプ1006、パイプ読出し手段1005は、各変数について、変数値のアクセス経路ごとに生成される。
例えば、図7のパイプ割り当て定義1103の符号7011〜7013では、変数p2の変数値について、サービス接続部A1008(na)からサービス接続部B1009(nb)へのアクセス経路と、サービス接続部A1008(na)からサービス接続部C1010(nc)へのアクセス経路が示されている。
そして、符号7011〜7013の記述を実行する場合は、パイプ書込み手段1004として、サービス接続部A1008(na)から変数p2の変数値を入力し、パイプ1006に変数値を書き込むパイプ書込み手段1004aが生成される。
また、パイプ1006として、サービス接続部B1009(nb)へ変数値を伝達するためのパイプ1006bと、サービス接続部C1010(nc)へ変数値を伝達するためのパイプ1006cが生成される。
また、パイプ読出し手段1005として、パイプ1006bから変数値を読み出してサービス接続部B1009(nb)に変数値を出力するパイプ読出し手段1005bと、パイプ1006cから変数値を読み出してサービス接続部C1010(nc)に変数値を出力するパイプ読出し手段1005cが生成される。
なお、以降、パイプ書込み手段1004、パイプ1006、パイプ読出し手段1005の末尾に付記されるa〜dは、サービス接続部A1008〜サービス接続部D1011を意味するものとする。
Pipe writing means 1004, pipe 1006, and pipe reading means 1005 are generated for each variable value access path for each variable.
For example, in reference numerals 7011 to 7013 of the pipe allocation definition 1103 in FIG. 7, the access path from the service connection unit A 1008 (na) to the service connection unit B 1009 (nb) and the service connection unit A 1008 (na) for the variable value of the variable p2. ) To the service connection unit C1010 (nc).
When the description of reference numerals 7011 to 7013 is executed, the pipe writing unit 1004a generates the pipe writing unit 1004a that inputs the variable value of the variable p2 from the service connection unit A1008 (na) and writes the variable value to the pipe 1006. Is done.
Also, as the pipe 1006, a pipe 1006b for transmitting a variable value to the service connection unit B 1009 (nb) and a pipe 1006c for transmitting a variable value to the service connection unit C1010 (nc) are generated.
Also, as pipe reading means 1005, pipe reading means 1005b that reads a variable value from the pipe 1006b and outputs the variable value to the service connection unit B1009 (nb), and reads a variable value from the pipe 1006c and service connection unit C1010 (nc) The pipe reading means 1005c for outputting the variable value is generated.
Hereinafter, “a” to “d” appended to the end of the pipe writing unit 1004, the pipe 1006, and the pipe reading unit 1005 mean the service connection unit A 1008 to the service connection unit D1011.

記憶部1020は、シナリオ定義1101、インターフェース定義1102及びパイプ割り当て定義1103を記憶する。   The storage unit 1020 stores a scenario definition 1101, an interface definition 1102, and a pipe allocation definition 1103.

次に、動作について説明する。
実施の形態1の動作は2段階の処理に分かれる。
1つ目の処理は、インターフェース定義1102とシナリオ定義1101を解析し、パイプ割り当て定義1103を作成する解析処理である。
2つ目の処理は、パイプ割り当て定義1103を使用しながらサービス利用システム4000からの要求にしたがって、サービスを実行する実行処理である。
Next, the operation will be described.
The operation of the first embodiment is divided into two stages of processing.
The first process is an analysis process for analyzing the interface definition 1102 and the scenario definition 1101 to create a pipe allocation definition 1103.
The second process is an execution process for executing a service in accordance with a request from the service utilization system 4000 while using the pipe allocation definition 1103.

図9に基づいて解析処理について説明する。   The analysis process will be described with reference to FIG.

解析開始S0001は、解析処理の開始を表す。
変数アクセスの競合判定S0002では、定義解析部1001が、インターフェース定義1102とシナリオ定義1101を解析し、変数へのアクセスについての競合判定を行う。
例えば、フォークにより分割された先のそれぞれの処理で同じ変数を更新している場合に競合ありとなる。
競合がある場合は、解析失敗として解析失敗S0006に移行する。
競合がない場合は、変数アクセス経路の作成S0003に移行する。
変数アクセス経路の出力S0003では、定義解析部1001は、変数ごとに何処で値を更新し、何処でその値を使用するかを解析し図6のようなアクセス経路を出力する。
Analysis start S0001 represents the start of analysis processing.
In the variable access conflict determination S0002, the definition analysis unit 1001 analyzes the interface definition 1102 and the scenario definition 1101, and performs a conflict determination regarding access to a variable.
For example, there is a conflict when the same variable is updated in each of the processes divided by fork.
If there is a conflict, the process proceeds to analysis failure S0006 as an analysis failure.
If there is no conflict, the process proceeds to variable access path creation S0003.
In the variable access path output S0003, the definition analysis unit 1001 analyzes where the value is updated for each variable and uses the value, and outputs the access path as shown in FIG.

図6のアクセス経路は、図4のシナリオ定義1101と図5のインターフェース定義1102に基づいて生成されたものである。
図6の例では、変数p1の変数値は、サービス接続部A1008(図6ではnaと表記)から出力され、サービス接続部B1009(図6ではnbと表記)に入力されるのみであるため、パス(アクセス経路)は1つである。
一方、変数p2の変数値は、サービス接続部A1008(na)から出力され、サービス接続部B1009(nb)とサービス接続部C1010(図6ではncと表記)に入力されるので、パス(アクセス経路)は2つとなる。
同様に、変数p3の変数値は、サービス接続部A1008(na)から出力され、サービス接続部C1010(nc)とサービス接続部D1011(図6ではndと表記)に入力されるので、パス(アクセス経路)は2つとなる。
また、変数p4の変数値は、サービス接続部B1009(nb)から出力されるが、どのサービス接続部にも入力されないことから、パス(アクセス経路)は1つである。
The access route in FIG. 6 is generated based on the scenario definition 1101 in FIG. 4 and the interface definition 1102 in FIG.
In the example of FIG. 6, the variable value of the variable p1 is only output from the service connection unit A1008 (indicated as na in FIG. 6) and input to the service connection unit B1009 (indicated in FIG. 6 as nb). There is one path (access route).
On the other hand, the variable value of the variable p2 is output from the service connection unit A1008 (na) and input to the service connection unit B1009 (nb) and the service connection unit C1010 (denoted as nc in FIG. 6). ) Is two.
Similarly, the variable value of the variable p3 is output from the service connection unit A1008 (na) and input to the service connection unit C1010 (nc) and the service connection unit D1011 (denoted as nd in FIG. 6). There are two routes.
In addition, the variable value of the variable p4 is output from the service connection unit B1009 (nb), but is not input to any service connection unit, so there is one path (access route).

次のパイプ割り当て定義の出力S0004では、アクセス経路をもとに図7のようなパイプ割り当て定義1103を生成し、生成したパイプ割り当て定義1103を記憶部1020に出力し、記憶部1020にパイプ割り当て定義1103を記憶させる。
パイプ割り当て定義1103は、変数を読み書きするパイプをどのノードでどのように使用するかの定義である。
パイプ割り当て定義1103の出力によって解析終了S0005となる。
In the next pipe allocation definition output S0004, a pipe allocation definition 1103 as shown in FIG. 7 is generated based on the access path, the generated pipe allocation definition 1103 is output to the storage unit 1020, and the pipe allocation definition is output to the storage unit 1020. 1103 is stored.
The pipe allocation definition 1103 is a definition of how and in which node a pipe for reading and writing variables is used.
The analysis ends S0005 by the output of the pipe allocation definition 1103.

なお、図9に例示した解析処理は、サービス連携装置1000の起動時などのように、サービス公開部1003がサービス利用システム4000から呼出されるようになる前に実行しておく。   The analysis processing illustrated in FIG. 9 is executed before the service disclosure unit 1003 is called from the service use system 4000, such as when the service cooperation apparatus 1000 is activated.

次に、図10に基づいて実行処理について説明する。   Next, the execution process will be described with reference to FIG.

START S1001は処理の開始を表す。
要求受付S1002では、サービス公開部1003が、サービス利用システム4000からのサービス提供要求を受け付ける。
サービス公開部1003は、サービス提供要求を受け付けるとシナリオ制御部1007に対してサービスの実行要求を行う。
START S1001 represents the start of processing.
In the request reception S1002, the service disclosure unit 1003 receives a service provision request from the service use system 4000.
When the service disclosure unit 1003 receives the service provision request, the service disclosure unit 1003 makes a service execution request to the scenario control unit 1007.

シナリオ制御S1003では、サービスの実行要求を受け付けたシナリオ制御部1007が、シナリオ定義1101に基づいて、実行するサービスに対応したサービス接続部を呼出す。
サービス処理S1004では、呼出されたサービス接続部が外部のサービスアプリケーションと通信を行ってサービスを実行させる。サービス処理S1004の詳細は後述する。
サービス接続部からシナリオ制御部1007に応答が返るとシナリオ終了判定S1005で、シナリオ制御部1007はシナリオ定義1101に定義されたサービスを全て実行したかが判定される。
まだ実行していないサービスが残っている場合には、シナリオ制御S1003に戻りサービスを実行する。
全てのサービスを実行している場合は、次のサービス終了待ちS1006にて全てのサービスが終了するまで待機する。
サービスの終了後は、要求回答S1007にてサービス公開部1003はサービス利用システム4000に対して実行結果の回答を返し、処理の終了であるEND S1008に移行する。
なお、サービス利用システム4000がサービス提供要求を出す場合に、非同期的な動作を行うこともでき、その場合は要求回答S1007が実行されず、処理結果をサービス利用システム4000に通知しない。
In the scenario control S1003, the scenario control unit 1007 that has received the service execution request calls the service connection unit corresponding to the service to be executed based on the scenario definition 1101.
In service processing S1004, the called service connection unit communicates with an external service application to execute the service. Details of the service processing S1004 will be described later.
When a response is returned from the service connection unit to the scenario control unit 1007, it is determined in scenario end determination S1005 whether the scenario control unit 1007 has executed all the services defined in the scenario definition 1101.
If there are still services that have not been executed, the process returns to the scenario control S1003 to execute the services.
When all the services are being executed, the process waits until all the services are completed in the next service completion waiting S1006.
After the service is completed, the service disclosure unit 1003 returns an execution result response to the service use system 4000 in the request response S1007, and the process proceeds to END S1008, which is the end of the process.
Note that when the service use system 4000 issues a service provision request, an asynchronous operation can be performed. In this case, the request response S1007 is not executed, and the processing result is not notified to the service use system 4000.

サービス処理S1004の処理フローを説明する前に、サービス処理の中で使用するパイプ書込み手段1004、パイプ1006、パイプ読出し手段1005の動作について説明する。   Before describing the processing flow of the service processing S1004, the operations of the pipe writing unit 1004, the pipe 1006, and the pipe reading unit 1005 used in the service processing will be described.

図12〜14は、パイプ書込み手段1004、パイプ1006、パイプ読出し手段1005の処理を示す図である。
通常、パイプ1006に書込まれた変数値は、読み取られることによって廃棄される。
しかし、サービスの実行順序によっては、パイプ1006に書込まれた変数値を複数のサービス接続部で使用する場合がある。
そこで、同じ変数値を複数のサービス接続部で読み取る必要がある場合、パイプ書込み手段1004やパイプ読出し手段1005によって、複数箇所で同じ変数値を使用できるように、変数値の複製処理を行う。
同じ変数値を複数個所で読み取る場合の読み取り方は2つあり、1つはフォークによって複数のサービス接続部で同時に変数値が使用される場合であり、もう1つは変数値の読み取りを行った箇所よりも後の箇所で再度変数値を使用している場合である。
12 to 14 are diagrams showing processing of the pipe writing unit 1004, the pipe 1006, and the pipe reading unit 1005.
Normally, variable values written to pipe 1006 are discarded by being read.
However, depending on the service execution order, the variable value written in the pipe 1006 may be used by a plurality of service connection units.
Therefore, when it is necessary to read the same variable value by a plurality of service connection units, the pipe writing unit 1004 and the pipe reading unit 1005 perform variable value duplication processing so that the same variable value can be used at a plurality of locations.
There are two ways to read the same variable value at multiple locations. One is when the variable value is used simultaneously in multiple service connections by fork, and the other is when the variable value is read. This is a case where the variable value is used again at a location after the location.

前者に対しては、図12のように、パイプ書込み手段1004内の書込みデータコピー機能10041が同じ変数値を複数のパイプ1006に対して書き込むことで変数の複製処理を行う(複製書込み処理)。
後者に対しては、図13のようにパイプ読出し手段1005内の読出しデータコピー機能10051が、読み取った変数値を再度別のパイプ1006に対して書き込むことで変数値の複製処理を行う(読み出し複製処理)。
For the former, as shown in FIG. 12, the write data copy function 10041 in the pipe writing means 1004 writes the same variable value to a plurality of pipes 1006 to perform variable duplication processing (duplicate write processing).
For the latter, as shown in FIG. 13, the read data copy function 10051 in the pipe reading unit 1005 performs the variable value duplication processing by writing the read variable value to another pipe 1006 again (read duplication). processing).

図12は、図7のパイプ割り当て定義1103の符号7011〜7013の記述を実行している状態を示している。
つまり、図7のパイプ割り当て定義1103では、符号7011〜7013において変数p2に対して複製書込み処理が記述されている。
そして、符号7011〜7013の記述を実行すると、サービス接続部A1008(na)に対応するパイプ書込み手段1004aが、サービス接続部A1008(na)から変数p2の変数値を入力し、変数p2の変数値を複製し、2つの同じ変数値をサービス接続部B1009(nb)へのパイプ1006bとサービス接続部C1010(nc)へのパイプ1006cに書き込む。
更に、サービス接続部B1009(nb)に対応するパイプ読出し手段1005bがパイプ1006bから変数p2の変数値を読み出し、サービス接続部B1009(nb)に出力すること、サービス接続部C1010(nc)に対応するパイプ読出し手段1005cがパイプ1006cから変数p2の変数値を読み出し、サービス接続部C1010(nc)に出力する。
FIG. 12 shows a state where the description of reference numerals 7011 to 7013 of the pipe allocation definition 1103 in FIG. 7 is being executed.
That is, in the pipe allocation definition 1103 in FIG. 7, reference numerals 7011 to 7013 describe the replication write process for the variable p2.
When the description of reference numerals 7011 to 7013 is executed, the pipe writing means 1004a corresponding to the service connection unit A1008 (na) inputs the variable value of the variable p2 from the service connection unit A1008 (na), and the variable value of the variable p2 And writes the same two variable values into the pipe 1006b to the service connection B 1009 (nb) and the pipe 1006c to the service connection C 1010 (nc).
Further, the pipe reading unit 1005b corresponding to the service connection unit B1009 (nb) reads the variable value of the variable p2 from the pipe 1006b and outputs it to the service connection unit B1009 (nb), corresponding to the service connection unit C1010 (nc). The pipe reading means 1005c reads the variable value of the variable p2 from the pipe 1006c and outputs it to the service connection unit C1010 (nc).

また、図13は、図7のパイプ割り当て定義1103の符号7021〜7023の記述を実行している状態を示している。
つまり、図7のパイプ割り当て定義1103では、符号7021〜7023において変数p3に対して読み出し複製処理が記述されている。
そして、符号7021〜7023の記述を実行すると、サービス接続部A1008(na)に対応するパイプ書込み手段1004aが、サービス接続部A1008(na)から変数p3の変数値を入力し、入力した変数値をサービス接続部C1010(nc)へのパイプ1006cに書き込む。
更に、サービス接続部C1010(nc)に対応するパイプ読出し手段1005cがパイプ1006cから変数p3の変数値を読み出し、読み出した変数p3の変数値を複製し、一方の変数値をサービス接続部C1010(nc)に出力するとともに、他方の変数値をサービス接続部D1011(nd)へのパイプ1006dに書き込み、サービス接続部D1011(nd)に対応するパイプ読出し手段1005dがパイプ1006dから変数p3の変数値を読み出し、サービス接続部D1011(nd)に出力する。
FIG. 13 shows a state where the description of reference numerals 7021 to 7023 of the pipe allocation definition 1103 in FIG. 7 is being executed.
That is, in the pipe allocation definition 1103 in FIG. 7, reference numerals 7021 to 7023 describe the read replication process for the variable p3.
When the description of reference numerals 7021 to 7023 is executed, the pipe writing means 1004a corresponding to the service connection unit A1008 (na) inputs the variable value of the variable p3 from the service connection unit A1008 (na), and the input variable value is Write to the pipe 1006c to the service connection C1010 (nc).
Further, the pipe reading unit 1005c corresponding to the service connection unit C1010 (nc) reads the variable value of the variable p3 from the pipe 1006c, duplicates the read variable value of the variable p3, and transfers one variable value to the service connection unit C1010 (nc). ) And the other variable value is written to the pipe 1006d to the service connection unit D1011 (nd), and the pipe reading unit 1005d corresponding to the service connection unit D1011 (nd) reads the variable value of the variable p3 from the pipe 1006d. To the service connection unit D1011 (nd).

また、サービス接続部が取得した変数値が以降の処理で使用されない場合、変数値をパイプ1006に書込むことは無駄である。
そのような場合は、図14のようにパイプ書込み手段1004内の読み捨て機能10042が、パイプ1006に変数値を書き込まずに変数値の読み捨てを行う(削除処理)。
If the variable value acquired by the service connection unit is not used in the subsequent processing, it is useless to write the variable value to the pipe 1006.
In such a case, as shown in FIG. 14, the discarding function 10042 in the pipe writing unit 1004 discards the variable value without writing the variable value to the pipe 1006 (deleting process).

図14は、図7のパイプ割り当て定義1103の符号7031の記述を実行している状態を示している。
つまり、図7のパイプ割り当て定義1103では、符号7031において変数4に対して削除処理が記述されている。
そして、符号7031の記述を実行すると、サービス接続部B1009(nb)に対応するパイプ書込み手段1004bが、サービス接続部B1009(nb)から変数p4の変数値を入力するが、パイプ書込み手段1004bにおいて変数値を読み捨てる。
FIG. 14 shows a state in which the description of reference numeral 7031 of the pipe allocation definition 1103 in FIG. 7 is being executed.
That is, in the pipe allocation definition 1103 in FIG. 7, reference numeral 7031 describes a deletion process for the variable 4.
When the description of reference numeral 7031 is executed, the pipe writing unit 1004b corresponding to the service connection unit B1009 (nb) inputs the variable value of the variable p4 from the service connection unit B1009 (nb). Discard the value.

このように、パイプ書込み手段1004とパイプ読出し手段1005がどのような処理を行うかは、パイプ割り当て定義1103に従って、パイプ管理部1002が制御する。   In this way, the pipe management unit 1002 controls what processing is performed by the pipe writing unit 1004 and the pipe reading unit 1005 according to the pipe allocation definition 1103.

次に、図11に基づいて実行処理の中のサービス処理について説明する。   Next, service processing in the execution processing will be described with reference to FIG.

S2001は、サービス処理の開始を表し、シナリオ制御部1007からサービス接続部の呼出しが行われることで処理が開始される。   S2001 represents the start of the service process, and the process is started when the scenario control unit 1007 calls the service connection unit.

パイプ書込み手段とパイプ読出し手段への参照の取得S2002では、呼出されたサービス接続部が、パイプ管理部1002に対してパイプ読出し手段1005とパイプ書込み手段1004への参照を要求する。
要求を受けたパイプ管理部1002は、パイプ割り当て定義1103に基づいて、パイプ読出し手段1005に関しては既に作成されているパイプ読出し手段1005の参照を、パイプ書込み手段1004に関しては、パイプ書込み手段1004、パイプ読出し手段1005の組を新たに作成し、その中のパイプ書込み手段1004の参照をサービス接続部に返す。
つまり、サービス接続部が変数値を出力する場合には、サービス接続部はパイプ管理部1002にパイプ書込み手段1004の参照を要求し、パイプ管理部1002は、パイプ割り当て定義1103に基づいて、パイプ書込み手段1004、パイプ読出し手段1005を生成し、生成したパイプ書込み手段1004への参照(例えば、ポインタ)をサービス接続部に返す。
例えば、サービス接続部A1008(na)が変数p2の変数値を出力する場合は、パイプ管理部1002は、図7のパイプ割り当て定義1103の符号7011〜7013の記述に基づき、図12に示すように、サービス接続部A1008(na)に対応するパイプ書込み手段1004aと、サービス接続部B1009(nb)に対応するパイプ読出し手段1005bと、サービス接続部C1010(nc)に対応するパイプ読出し手段1005cの組を新たに作成し、サービス接続部A1008(na)に、パイプ書込み手段1004aへの参照を通知する。
なお、パイプ1006b、1006cは、このときにパイプ管理部1002が作成しておいてもよいし、パイプ書込み手段1004aが実際に変数値をパイプに書き込む際に作成してもよい。
パイプ1006を生成する際には、パイプ管理部1002は、所定のメモリ領域を、生成するパイプ1006に割り当てる。
また、サービス接続部が変数値を入力する場合、例えば、サービス接続部B1009(nb)が変数p2の変数値を入力する場合には、サービス接続部B1009(nb)はパイプ管理部1002にパイプ読出し手段1005への参照を要求し、パイプ管理部1002は、既に作成されているパイプ読出し手段1005bへの参照をサービス接続部B1009(nb)に通知する。
In S2002, obtaining a reference to the pipe writing unit and the pipe reading unit, the called service connection unit requests the pipe management unit 1002 to refer to the pipe reading unit 1005 and the pipe writing unit 1004.
Upon receiving the request, the pipe management unit 1002 refers to the pipe reading unit 1005 that has already been created for the pipe reading unit 1005 based on the pipe allocation definition 1103, and pipe writing unit 1004, pipe for the pipe writing unit 1004. A new set of reading means 1005 is created, and the reference of the pipe writing means 1004 therein is returned to the service connection unit.
That is, when the service connection unit outputs a variable value, the service connection unit requests the pipe management unit 1002 to refer to the pipe writing unit 1004, and the pipe management unit 1002 performs pipe writing based on the pipe allocation definition 1103. A means 1004 and a pipe reading means 1005 are generated, and a reference (for example, a pointer) to the generated pipe writing means 1004 is returned to the service connection unit.
For example, when the service connection unit A 1008 (na) outputs the variable value of the variable p2, the pipe management unit 1002 is based on the description of reference numerals 7011 to 7013 of the pipe allocation definition 1103 in FIG. , A pipe writing unit 1004a corresponding to the service connection unit A1008 (na), a pipe reading unit 1005b corresponding to the service connection unit B1009 (nb), and a pipe reading unit 1005c corresponding to the service connection unit C1010 (nc). Create a new one and notify the service connection unit A 1008 (na) of the reference to the pipe writing means 1004a.
The pipes 1006b and 1006c may be created by the pipe management unit 1002 at this time, or may be created when the pipe writing unit 1004a actually writes a variable value to the pipe.
When the pipe 1006 is generated, the pipe management unit 1002 allocates a predetermined memory area to the pipe 1006 to be generated.
When the service connection unit inputs a variable value, for example, when the service connection unit B 1009 (nb) inputs a variable value of the variable p2, the service connection unit B 1009 (nb) reads the pipe to the pipe management unit 1002. The pipe management unit 1002 requests the reference to the unit 1005, and notifies the service connection unit B 1009 (nb) of the reference to the pipe reading unit 1005b that has already been created.

リクエストデータストリームの作成S2003では、パイプ読出し手段1005への参照を取得したサービス接続部が、サービスを利用するためのリクエストデータストリームを作成する。
つまり、サービス接続部は、リクエストデータストリームの構成要素のうち変数値以外の部分を生成する。
In request data stream creation S2003, the service connection unit that has acquired the reference to the pipe reading unit 1005 creates a request data stream for using the service.
That is, the service connection unit generates a part other than the variable value among the constituent elements of the request data stream.

リクエストデータストリームのパイプ読出し手段への割当てS2004では、サービス接続部は、スレッド(もしくはプロセス)を起動し、作成したスレッドに対して、パイプ読出し手段1005からリクエストに使用するデータ(変数値)を取得して、リクエストデータストリームにリクエストを書込む処理を割り当てる。
そして、サービス接続部は、変数値が書き込まれたリクエストデータストリームを、対応するサービスアプリケーションに送信する。
In allocation of request data stream to pipe reading means S2004, the service connection unit activates a thread (or process) and acquires data (variable value) used for the request from the pipe reading means 1005 for the created thread. Then, assign a process to write the request to the request data stream.
Then, the service connection unit transmits the request data stream in which the variable value is written to the corresponding service application.

レスポンスデータストリームの作成S2005では、サービスアプリケーションからの応答を取得するためのレスポンスデータストリームが作成される。
レスポンスデータストリームは、通信プロトコルによって、サービス接続部が生成する場合とサービスアプリケーションが生成する場合がある。
In response data creation S2005, a response data stream for obtaining a response from the service application is created.
The response data stream may be generated by a service connection unit or a service application depending on a communication protocol.

レスポンスデータストリームのパイプ書込み手段への割当てS2006では、サービス接続部はスレッド(もしくはプロセス)を起動し、作成したスレッドに対して、レスポンスデータストリームからレスポンスデータ(変数値)を取得して、パイプ書込み手段1004にレスポンスデータ(変数値)を書込む処理を割り当てる。
ここで、書き込み先となるパイプ書込み手段1004は、S2002で参照を取得したパイプ書込み手段1004である。
In step S2006, the service connection unit starts a thread (or process), acquires response data (variable value) from the response data stream, and writes the response data stream to the pipe writing unit. A process for writing response data (variable value) is assigned to the means 1004.
Here, the pipe writing unit 1004 serving as the writing destination is the pipe writing unit 1004 that has acquired the reference in S2002.

END S2007では、サービス接続部がシナリオ制御部1007に制御を返す。   In END S2007, the service connection unit returns control to the scenario control unit 1007.

以上のように、実施の形態1によればパイプ管理部1002がパイプ割り当て定義1103に従って、パイプ書込み手段1004とパイプ読出し手段1005での変数のコピーを制御することで、データの削除を制御することなく複数のサービスで同じデータを使用することが出来るようになる。
また、パイプに無駄なデータが書込まれるのを防ぐことが出来るようになる。
また、外部で実行されるサービスの種類が追加された場合に、追加されたサービスに応じて、新たにサービス接続部を作成する必要があるが、データのコピー処理を、パイプ書込み手段1004とパイプ読出し手段1005で行うようにしたので、コピー処理部分を作りなおす必要がなくなる。
さらに、パイプ割り当て定義1103を生成する定義解析部1001を設けたことで、設計者がパイプ割り当て定義1103を直接作成する必要が無くなり設計者の手間を減らすことが出来る。
As described above, according to the first embodiment, the pipe management unit 1002 controls the deletion of data by controlling the copying of variables in the pipe writing unit 1004 and the pipe reading unit 1005 according to the pipe allocation definition 1103. The same data can be used by multiple services.
In addition, it is possible to prevent unnecessary data from being written to the pipe.
In addition, when a type of service to be executed externally is added, it is necessary to create a new service connection unit according to the added service. However, data copy processing is performed using the pipe writing unit 1004 and the pipe. Since the reading means 1005 is used, there is no need to recreate the copy processing portion.
Furthermore, by providing the definition analysis unit 1001 for generating the pipe allocation definition 1103, it is not necessary for the designer to directly create the pipe allocation definition 1103, and the time and effort of the designer can be reduced.

本実施の形態では、以下の機能を持つサービス連携装置を説明した。
サービス連携装置がサービス公開部を使用してサービスを公開する前に、サービスのI/F定義とサービスの実行順番の書かれたシナリオ定義を解析し、各サービスの実行で必要となるパイプを決定するためのパイプ割り当て定義を作成する定義解析部、
パイプ割り当て定義に従って、パイプ書込み手段、パイプ、パイプ読出し手段を作成するパイプ管理部、
パイプ書込み手段、パイプ、パイプ読出し手段を使用してサービスを実行するサービス接続部。
In the present embodiment, a service cooperation apparatus having the following functions has been described.
Before the service linkage device uses the service disclosure unit to publish a service, it analyzes the scenario definition in which the service I / F definition and the execution order of the service are written, and determines the pipes required for the execution of each service. Definition analysis unit that creates a pipe allocation definition for
Pipe management unit for creating pipe writing means, pipes, pipe reading means according to the pipe allocation definition,
A service connection unit that executes a service using a pipe writing unit, a pipe, and a pipe reading unit.

実施の形態2.
図15は、実施の形態2に係るサービス連携装置1000の内部構成例を示す図である。
実施の形態2では、実施の形態1に加えて定義更新部1012を設けている。
定義更新部1012は、定義解析部1001を呼出してパイプ割り当て定義1103を作成し直すための機能であり、サービス公開部1003がサービス利用システム4000から呼出されたときに、サービス公開部1003から呼出される。
Embodiment 2. FIG.
FIG. 15 is a diagram illustrating an internal configuration example of the service cooperation apparatus 1000 according to the second embodiment.
In the second embodiment, a definition update unit 1012 is provided in addition to the first embodiment.
The definition update unit 1012 is a function for re-creating the pipe allocation definition 1103 by calling the definition analysis unit 1001, and is called from the service disclosure unit 1003 when the service disclosure unit 1003 is called from the service usage system 4000. The

図16は、実施の形態2の動作例を表すフロー図である。   FIG. 16 is a flowchart illustrating an operation example of the second embodiment.

実施の形態1の処理フローである図10との違いは、要求受付S3002の後に、解析処理S3003が追加されている点である。
解析処理S3003では、上記のように定義更新部1012により定義解析部1001を呼出してパイプ割り当て定義1103を更新する。
つまり、本実施の形態では、サービス公開部1003がサービス提供要求を受信する度に、当該サービス提供要求に基づいて行われるサービスの連携が開始する前に、定義解析部1001が、シナリオ定義1101及びインターフェース定義1102を解析して、当該サービス提供要求に基づいて行われるサービスの連携に用いられる変数に対して、パイプ割り当て定義1103を更新する。
The difference from FIG. 10 which is the process flow of the first embodiment is that an analysis process S3003 is added after the request reception S3002.
In the analysis process S3003, the definition update unit 1012 calls the definition analysis unit 1001 to update the pipe allocation definition 1103 as described above.
That is, in this embodiment, every time the service disclosure unit 1003 receives a service provision request, the definition analysis unit 1001 performs the scenario definition 1101 and the scenario definition 1101 before the service cooperation performed based on the service provision request starts. The interface definition 1102 is analyzed, and the pipe allocation definition 1103 is updated with respect to variables used for service cooperation performed based on the service provision request.

このように、実施の形態2では、定義更新機能を設け、処理実行の最中にパイプ割り当て定義1103を更新することができるようにしたので、サービス連携装置1000の稼働中にシナリオ定義1101が更新された場合にも、正しくパイプの割り当てを行うことができるようになる。   As described above, in the second embodiment, the definition update function is provided so that the pipe allocation definition 1103 can be updated during the execution of the process. Therefore, the scenario definition 1101 is updated while the service linkage apparatus 1000 is in operation. In this case, pipes can be assigned correctly.

以上、本実施の形態では、実施の形態1の構成に加えて、
サービス公開部によって公開されているサービスが実行されるときに定義解析部を実行し、パイプ割り当て定義を更新させる定義更新部
を持つサービス連携装置を説明した。
As described above, in the present embodiment, in addition to the configuration of the first embodiment,
Described a service linkage device that has a definition update unit that updates the pipe allocation definition by executing the definition analysis unit when a service published by the service disclosure unit is executed.

実施の形態3.
実施の形態3では、実施の形態1に加えて、パイプ書込み手段1004の中にメッセージ書込み機能を設け、パイプ読出し手段1005の中にメッセージ読出し機能を設ける。
Embodiment 3 FIG.
In the third embodiment, in addition to the first embodiment, a message writing function is provided in the pipe writing means 1004, and a message reading function is provided in the pipe reading means 1005.

図17は、実施の形態3におけるパイプ書込み手段1004とパイプ読出し手段1005の詳細な構成を表す図である。
メッセージ1013は、従来の技術(非特許文献1)にあるサービスの起動を制御するためのメッセージ(ESBのメッセージ)である。
メッセージ書込み機能10043は、パイプ1006の代わりにメッセージ1013の中のデータ領域にデータを書き込む。
また、メッセージ読出し機能10052はメッセージのデータ領域からデータを読出す。
FIG. 17 is a diagram illustrating a detailed configuration of the pipe writing unit 1004 and the pipe reading unit 1005 according to the third embodiment.
The message 1013 is a message (ESB message) for controlling the activation of the service in the conventional technology (Non-patent Document 1).
The message writing function 10043 writes data in the data area in the message 1013 instead of the pipe 1006.
The message reading function 10052 reads data from the message data area.

このように、実施の形態3では、図18の符号1801で示すように、ユーザーがインターフェース定義1102を作成するときに、所定のパラメータ(図18では、p1)に対してパイプを使用しないことを定義しておき、定義解析処理の結果が図19のようにパイプ書込み手段1004とパイプ読出し手段1005においてメッセージ書込み(符号1901)とメッセージ読出し(符号1902)が指定されるようにする。   As described above, in the third embodiment, when the user creates the interface definition 1102 as indicated by reference numeral 1801 in FIG. 18, a pipe is not used for a predetermined parameter (p1 in FIG. 18). As a result of the definition analysis processing, message writing (reference numeral 1901) and message reading (reference numeral 1902) are designated in the pipe writing means 1004 and the pipe reading means 1005 as shown in FIG.

以上のように実施の形態3では、メッセージ書込み機能とメッセージ読出し機能を設けることで、メッセージのデータ領域を使用してサービス間でデータを運ぶことができるようになる。
サービスを連携させるために必要なデータが小さい場合は、パイプを使用してデータをメモリ上に溜め込まないようにするメリットは小さく、パイプを作成するデメリットが大きくなるが、これを回避することができる。
As described above, in the third embodiment, by providing the message writing function and the message reading function, it is possible to carry data between services using the data area of the message.
If the data required to link services is small, the advantage of not using pipes to store data in memory is small and the disadvantage of creating pipes is large, but this can be avoided. .

以上、本実施の形態では、実施の形態1の構成に加えて、
メッセージにデータを格納できるようにするためのメッセージ書込み機能とメッセージ読出し機能
を持つサービス連携装置を説明した。
As described above, in the present embodiment, in addition to the configuration of the first embodiment,
We have described a service linkage device that has a message write function and a message read function that allow data to be stored in messages.

実施の形態4.
実施の形態4では、実施の形態3に加えて、レスポンスデータサイズ判定機能を設ける。
Embodiment 4 FIG.
In the fourth embodiment, a response data size determination function is provided in addition to the third embodiment.

実施の形態4に係るサービス連携装置1000の内部構成例を図20に示す。
実施の形態3との違いは、レスポンスデータサイズ判定機能A10081〜レスポンスデータサイズ判定機能D10111を設けていることである。
FIG. 20 shows an internal configuration example of the service cooperation apparatus 1000 according to the fourth embodiment.
The difference from the third embodiment is that a response data size determination function A10081 to a response data size determination function D10111 are provided.

実施の形態4では、レスポンスのデータを取得する前にレスポンスデータのサイズを確認できる場合に、データサイズを取得し、レスポンスデータサイズ判定機能によって、データを運ぶのにパイプを使用するか、メッセージを使用するかの判定と、判定結果に合わせてパイプを作成したり、パイプ書込み手段1004やパイプ読出し手段1005でメッセージ書込み機能10043やメッセージ読出し機能10052を使用するかを制御する。
データの取得前にデータサイズを取得できる例としては、サービスを利用するための通信プロトコルのヘッダにデータサイズが書かれている場合や、ファイルを取得するようなサービスでfsize()などを利用してあらかじめファイルサイズを取得する場合がある。
In the fourth embodiment, when the response data size can be confirmed before the response data is acquired, the data size is acquired, and the response data size determination function uses a pipe to carry the data or a message. It is determined whether to use and a pipe is created according to the determination result, and whether the message writing function 10043 or the message reading function 10052 is used by the pipe writing unit 1004 or the pipe reading unit 1005 is controlled.
Examples of the data size that can be acquired before data acquisition include the case where the data size is written in the header of the communication protocol for using the service, or the use of fsize () in a service that acquires a file. The file size may be acquired in advance.

実施の形態4におけるサービス処理の処理フローを図21に示す。   FIG. 21 shows a processing flow of service processing in the fourth embodiment.

実施の形態1のサービス処理の違いは、パイプ書込み手段とパイプ読出し手段への参照の取得S4002の処理内容と、レスポンスデータサイズの取得可否判定S4006以降の処理である。
パイプ書込み手段とパイプ読出し手段への参照の取得S4002では、パイプ管理部1002はパイプ書込み手段1004とパイプ読出し手段1005の作成だけを行い、書込みデータコピー機能10041などの有効化やパイプ1006の作成を行わない。
書込みデータコピー機能10041などの有効化やパイプ1006の作成は、レスポンスデータサイズの取得可否判定S4006以降で行う。
レスポンスデータサイズの取得可否判定S4006では、実行中のサービスのレスポンスデータを取得する前に、レスポンスデータサイズ判定機能がレスポンスデータのデータサイズを取得可能かを判定する。
データサイズを取得できない場合は、パイプの作成S4007にて、パイプ管理部1002が、データ格納用のパイプ1006を作成し、パイプ割り当て定義1103に従って、書込みデータコピー機能10041などの有効化を行う。
レスポンスデータサイズの取得可否判定S4006でデータサイズの取得が可能と判定した場合は、レスポンスデータサイズ判定機能が、レスポンスデータサイズの閾値判定S4008でレスポンスデータサイズを取得し、閾値判定を行う。
データサイズが閾値以上の場合は、パイプの作成S4010にて、パイプ管理部1002が、データ格納用のパイプ1006を作成し、パイプ割り当て定義1103に従って、書込みデータコピー機能10041などの有効化を行う。
閾値未満の場合は、メッセージ書込み機能10043とメッセージ読出し機能の有効化S4009にて、パイプ管理部1002は、レスポンスデータをメッセージに格納する準備処理を行う。
The differences in the service processing of the first embodiment are the processing contents of the acquisition of reference S4002 to the pipe writing means and the pipe reading means, and the processing after the response data size acquisition availability determination S4006.
In step S4002, the pipe management unit 1002 only creates the pipe writing unit 1004 and the pipe reading unit 1005, and activates the write data copy function 10041 and creates the pipe 1006. Not performed.
The validation of the write data copy function 10041 and the creation of the pipe 1006 are performed after the response data size acquisition possibility determination S4006.
In response data size acquisition possibility determination S4006, the response data size determination function determines whether or not the response data size can be acquired before acquiring response data of the service being executed.
If the data size cannot be acquired, in pipe creation S4007, the pipe management unit 1002 creates a data storage pipe 1006, and validates the write data copy function 10040 and the like according to the pipe allocation definition 1103.
When it is determined in the response data size acquisition possibility determination step S4006 that the data size can be acquired, the response data size determination function acquires the response data size in the response data size threshold determination step S4008 and performs threshold determination.
If the data size is greater than or equal to the threshold value, in pipe creation S4010, the pipe management unit 1002 creates a data storage pipe 1006, and validates the write data copy function 10040 and the like according to the pipe allocation definition 1103.
If it is less than the threshold, the pipe management unit 1002 performs a preparation process for storing the response data in the message in S4009 for enabling the message writing function 10043 and the message reading function.

以上のように、実施の形態4では、レスポンスデータサイズ判定機能を設けることで、実行時のレスポンスのデータサイズに合わせて、データの処理方法を選択することができるようになる。   As described above, in the fourth embodiment, by providing a response data size determination function, a data processing method can be selected according to the response data size at the time of execution.

以上、本実施の形態では、実施の形態3の構成に加えて、
レスポンスのサイズを判定し、サイズに合わせたデータの処理方法を実行するレスポンスデータサイズ判定機能
を持つサービス連携装置を説明した。
As described above, in the present embodiment, in addition to the configuration of the third embodiment,
The service linkage device that has a response data size determination function that determines the response size and executes the data processing method according to the size has been described.

実施の形態5.
実施の形態5に係るサービス連携装置1000は、実施の形態2と実施の形態3の組み合わせとして、実施の形態2の構成に、実施の形態3のメッセージ書込み機能10043とメッセージ読出し機能10052を加えた構成とする。
Embodiment 5 FIG.
The service cooperation apparatus 1000 according to the fifth embodiment adds the message writing function 10043 and the message reading function 10052 of the third embodiment to the configuration of the second embodiment as a combination of the second and third embodiments. The configuration.

実施の形態6.
実施の形態6に係るサービス連携装置1000は、実施の形態2と実施の形態4の組み合わせとして、実施の形態2の構成に、実施の形態4のメッセージ書込み機能10043、メッセージ読出し機能10052とレスポンスデータサイズ判定機能を加えた構成とする。
Embodiment 6 FIG.
As a combination of the second and fourth embodiments, the service cooperation apparatus 1000 according to the sixth embodiment adds the message writing function 10043, message reading function 10052, and response data of the fourth embodiment to the configuration of the second embodiment. A configuration with a size determination function added.

最後に、実施の形態1〜6に示したサービス連携装置1000のハードウェア構成例について説明する。
図22は、実施の形態1〜6に示すサービス連携装置1000のハードウェア資源の一例を示す図である。
なお、図22の構成は、あくまでもサービス連携装置1000のハードウェア構成の一例を示すものであり、サービス連携装置1000のハードウェア構成は図22に記載の構成に限らず、他の構成であってもよい。
Finally, a hardware configuration example of the service cooperation apparatus 1000 shown in the first to sixth embodiments will be described.
FIG. 22 is a diagram illustrating an example of hardware resources of the service cooperation apparatus 1000 illustrated in the first to sixth embodiments.
Note that the configuration of FIG. 22 is merely an example of the hardware configuration of the service cooperation apparatus 1000, and the hardware configuration of the service cooperation apparatus 1000 is not limited to the configuration illustrated in FIG. Also good.

図22において、サービス連携装置1000は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態1〜6で説明した「記憶部1020」は、RAM914、磁気ディスク装置920等により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
In FIG. 22, the service cooperation apparatus 1000 includes a CPU 911 (also referred to as a central processing unit, a central processing unit, a processing unit, a processing unit, a microprocessor, a microcomputer, and a processor) that executes a program.
The CPU 911 is connected to, for example, a ROM (Read Only Memory) 913, a RAM (Random Access Memory) 914, a communication board 915, a display device 901, a keyboard 902, a mouse 903, and a magnetic disk device 920 via a bus 912. Control hardware devices.
Further, the CPU 911 may be connected to an FDD 904 (Flexible Disk Drive), a compact disk device 905 (CDD), a printer device 906, and a scanner device 907. Further, instead of the magnetic disk device 920, a storage device such as an SSD (Solid State Drive), an optical disk device, or a memory card (registered trademark) read / write device may be used.
The RAM 914 is an example of a volatile memory. The storage media of the ROM 913, the FDD 904, the CDD 905, and the magnetic disk device 920 are an example of a nonvolatile memory. These are examples of the storage device.
The “storage unit 1020” described in the first to sixth embodiments is realized by the RAM 914, the magnetic disk device 920, and the like.
A communication board 915, a keyboard 902, a mouse 903, a scanner device 907, and the like are examples of input devices.
The communication board 915, the display device 901, the printer device 906, and the like are examples of output devices.

通信ボード915は、ネットワークに接続されている。
例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。
The communication board 915 is connected to the network.
For example, the communication board 915 is connected to a LAN (local area network), the Internet, a WAN (wide area network), a SAN (storage area network), and the like.

磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
The magnetic disk device 920 stores an operating system 921 (OS), a window system 922, a program group 923, and a file group 924.
The programs in the program group 923 are executed by the CPU 911 using the operating system 921 and the window system 922.

また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
The RAM 914 temporarily stores at least part of the operating system 921 program and application programs to be executed by the CPU 911.
The RAM 914 stores various data necessary for processing by the CPU 911.

また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
サービス連携装置1000の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
The ROM 913 stores a BIOS (Basic Input Output System) program, and the magnetic disk device 920 stores a boot program.
When the service cooperation apparatus 1000 is activated, the BIOS program in the ROM 913 and the boot program in the magnetic disk device 920 are executed, and the operating system 921 is activated by the BIOS program and the boot program.

上記プログラム群923には、実施の形態1〜6の説明において「〜部」(「記憶部1020」以外、以下同様)、「〜手段」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。   The program group 923 stores a program for executing the functions described as “˜unit” (except for “storage unit 1020” in the following) and “˜means” in the description of the first to sixth embodiments. Yes. The program is read and executed by the CPU 911.

ファイル群924には、実施の形態1〜6の説明において、「〜の判断」、「〜の判定」「〜の解析」、「〜の指定」、「〜の生成」、「〜の作成」、「〜の複製」、「〜の割当て」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値や暗号鍵・復号鍵や乱数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜6で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
In the file group 924, in the description of the first to sixth embodiments, “determination of”, “determination of”, “analysis of”, “designation of”, “generation of”, “creation of”. , "Duplicate of", "Assignment of", "Updating of", "Setting of", "Registering of", "Selection of", "Input of", "Output of", etc. Information, data, signal values, variable values, encryption keys / decryption keys, random values, and parameters indicating the results of the processing described are stored as items of “˜file” and “˜database”.
The “˜file” and “˜database” are stored in a recording medium such as a disk or a memory.
Information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the CPU 911 via a read / write circuit.
The read information, data, signal value, variable value, and parameter are used for CPU operations such as extraction, search, reference, comparison, calculation, calculation, processing, editing, output, printing, and display.
Information, data, signal values, variable values, and parameters are stored in the main memory, registers, cache memory, and buffers during the CPU operations of extraction, search, reference, comparison, calculation, processing, editing, output, printing, and display. It is temporarily stored in a memory or the like.
In addition, the arrows in the flowcharts described in the first to sixth embodiments mainly indicate input / output of data and signals.
Data and signal values are recorded on a recording medium such as a memory of the RAM 914, a flexible disk of the FDD 904, a compact disk of the CDD 905, a magnetic disk of the magnetic disk device 920, other optical disks, a mini disk, and a DVD.
Data and signals are transmitted online via a bus 912, signal lines, cables, or other transmission media.

また、実施の形態1〜6の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態1〜6で説明したフローチャートに示すステップ、手順、処理により、本発明に係る「サービス連携方法」を実現することができる。
また、「〜部」、「〜手段」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1〜6の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、実施の形態1〜6の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
In addition, in the description of the first to sixth embodiments, what is described as “to part” and “to means” may be “to circuit”, “to device”, and “to device”. It may be “˜step”, “˜procedure”, “˜processing”.
That is, the “service cooperation method” according to the present invention can be realized by the steps, procedures, and processes shown in the flowcharts described in the first to sixth embodiments.
In addition, what is described as “˜unit” and “˜means” may be realized by firmware stored in the ROM 913.
Alternatively, it may be implemented only by software, or only by hardware such as elements, devices, substrates, and wirings, by a combination of software and hardware, or by a combination of firmware.
Firmware and software are stored as programs in a recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD.
The program is read by the CPU 911 and executed by the CPU 911.
That is, the program causes the computer to function as “to part” and “to means” in the first to sixth embodiments. Alternatively, the procedures and methods of “to part” and “to means” in the first to sixth embodiments are executed by a computer.

このように、実施の形態1〜6に示すサービス連携装置1000は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
As described above, the service cooperation apparatus 1000 shown in the first to sixth embodiments includes a CPU that is a processing device, a memory that is a storage device, a magnetic disk, a keyboard that is an input device, a mouse, a communication board, and a display device that is an output device, and a communication device. A computer including a board or the like.
As described above, the functions indicated as “˜unit” and “˜means” are realized by using these processing devices, storage devices, input devices, and output devices.

1000 サービス連携装置、1001 定義解析部、1002 パイプ管理部、1003 サービス公開部、1004 パイプ書込み手段、1005 パイプ読出し手段、1006 パイプ、1008 サービス接続部A、1009 サービス接続部B、1010 サービス接続部C、1011 サービス接続部D、1020 記憶部、1101 シナリオ定義、1102 インターフェース定義、1103 パイプ割り当て定義。   1000 service cooperation device, 1001 definition analysis unit, 1002 pipe management unit, 1003 service disclosure unit, 1004 pipe writing unit, 1005 pipe reading unit, 1006 pipe, 1008 service connection unit A, 1009 service connection unit B, 1010 service connection unit C 1011 Service connection unit D, 1020 storage unit, 1101 scenario definition, 1102 interface definition, and 1103 pipe allocation definition.

Claims (8)

いずれかのサービスアプリケーションにより実施される2つ以上のサービスを連携させるサービス連携装置であって、
複数のサービスアプリケーションのいずれかに対応し、サービスの連携時に、対応するサービスアプリケーションとの間で変数値を送受信する複数のサービス接続部と、
サービスの連携が開始する前に、サービスの連携手順が示される連携シナリオを解析して、サービスの連携に用いられる変数ごとに、前記複数のサービス接続部の中から、サービスの連携時に変数値を出力する出力サービス接続部と変数値を入力する入力サービス接続部とを指定し、指定した出力サービス接続部と入力サービス接続部とが変数ごとに示される入出力定義情報を生成する定義解析部と、
サービスの連携が開始する前に、前記定義解析部により生成された入出力定義情報を記憶する記憶部と、
サービスの連携時に、前記入出力定義情報に基づき、変数値が保持されるパイプと、出力サービス接続部から変数値を入力してパイプに書き込むパイプ書き込み手段と、パイプから変数値を読み出して入力サービス接続部に出力するパイプ読み出し手段とを、変数ごとに生成するパイプ管理部とを有し、
各サービス接続部は、
サービスの連携時に、対応するサービスアプリケーションから受信した変数値を当該変数値に対応するパイプ書き込み手段に出力し、パイプ読み出し手段から入力した変数値を対応するサービスアプリケーションに送信し、
前記定義解析部は、
前記連携シナリオを解析した結果、いずれかの変数に対して1つの出力サービス接続部と2つ以上の入力サービス接続部とを指定する場合に、当該変数に対して、
出力サービス接続部から入力した変数値を複製して2つ以上の入力サービス接続部への2つ以上のパイプに並行して書き込む複製書込み処理と、
1つのパイプから変数値を読み出し、読み出した変数値を複製し、変数値を当該パイプの入力サービス接続部に出力するとともに他の入力サービス接続部へのパイプに書き込む読出し複製処理とのいずれかを指定し、
当該変数に対して複製書込み処理及び読出し複製処理のいずれかが示される入出力定義情報を生成し、
前記パイプ管理部は、
複製書込み処理及び読出し複製処理のいずれかが示されている変数に対して、1つのパイプ書き込み手段を生成するとともに、入力サービス接続部ごとにパイプとパイプ読み出し手段とを生成し、
複製書込み処理が示されている変数に対しては、生成したパイプ書き込み手段に複製書込み処理を実行させ、
読出し複製処理が示されている変数に対しては、生成したパイプ読出し手段に読出し複製処理を実行させることを特徴とするサービス連携装置。
A service cooperation device for linking two or more services implemented by any service application,
A plurality of service connection units that correspond to any one of a plurality of service applications and that transmit and receive variable values with the corresponding service application at the time of service linkage,
Before starting service linkage, analyze the linkage scenario showing the service linkage procedure, and for each variable used for service linkage, set the variable value during service linkage from the multiple service connections. A definition analysis unit that specifies an output service connection unit to output and an input service connection unit to input a variable value, and the input service connection unit and the input service connection unit that generate the input / output definition information indicated for each variable; ,
A storage unit that stores the input / output definition information generated by the definition analysis unit before service cooperation starts;
When linking services, based on the input / output definition information, a pipe that holds the variable value, a pipe writing means that inputs the variable value from the output service connection unit and writes the variable value to the pipe, and an input service that reads the variable value from the pipe A pipe reading unit for outputting to the connection unit, and a pipe management unit for generating each variable,
Each service connection
At the time of service linkage, the variable value received from the corresponding service application is output to the pipe writing means corresponding to the variable value, the variable value input from the pipe reading means is transmitted to the corresponding service application,
The definition analysis unit
As a result of analyzing the cooperation scenario, when one output service connection unit and two or more input service connection units are specified for any variable,
A duplicate write process that duplicates the variable value input from the output service connection and writes it in parallel to two or more pipes to two or more input service connections;
Read variable value from one pipe, duplicate the read variable value, output the variable value to the input service connection part of the pipe and write to the pipe to the other input service connection part. Specify
Generate I / O definition information that indicates either replication write processing or read replication processing for the variable,
The pipe management unit
One pipe writing means is generated for a variable in which either of the replication writing process and the reading replication process is indicated, and a pipe and a pipe reading means are generated for each input service connection unit.
For variables for which duplicate write processing is indicated, the created pipe write means executes duplicate write processing,
A service cooperation apparatus that causes a generated pipe reading unit to execute read and copy processing for a variable for which read and copy processing is indicated.
前記定義解析部は、
前記連携シナリオを解析した結果、いずれかの変数について、当該変数の変数値を入力するサービス接続部が存在しない場合に、
当該変数に対して、入力サービス接続部を指定せずに出力サービス接続部のみを指定し、更に、出力サービス接続部から当該変数の変数値を入力するとともに、入力した当該変数の変数値を削除する削除処理を指定し、
当該変数に対して出力サービス接続部と削除処理とが示される入出力定義情報を生成し、
前記パイプ管理部は、
削除処理が示されている変数に対して、1つのパイプ書き込み手段を生成するとともに、生成したパイプ書き込み手段に削除処理を実行させることを特徴とする請求項1に記載のサービス連携装置。
The definition analysis unit
As a result of analyzing the cooperation scenario, for any variable, when there is no service connection part for inputting the variable value of the variable,
For the variable, specify only the output service connection without specifying the input service connection, and also input the variable value of the variable from the output service connection, and delete the variable value of the input variable Specify the delete process to
Generate input / output definition information that indicates the output service connection and deletion processing for the variable,
The pipe management unit
The service cooperation apparatus according to claim 1, wherein one pipe writing unit is generated for a variable for which deletion processing is indicated, and the generated pipe writing unit is caused to execute deletion processing.
前記サービス連携装置は、更に、
サービスを利用するサービス利用システムから、サービスの提供を要求するサービス提供要求を受信するサービス提供要求受信部を有し、
前記定義解析部は、
前記サービス提供要求受信部がサービス提供要求を受信する度に、サービス提供要求に基づいて行われるサービスの連携が開始する前に、
前記連携シナリオを解析して、前記サービス提供要求に基づいて行われるサービスの連携に用いられる変数ごとに、出力サービス接続部と入力サービス接続部とを指定し、指定した出力サービス接続部と入力サービス接続部とが変数ごとに示される入出力定義情報を生成することを特徴とする請求項1又は2に記載のサービス連携装置。
The service cooperation apparatus further includes:
A service provision request receiving unit that receives a service provision request for requesting provision of a service from a service utilization system that uses the service;
The definition analysis unit
Each time the service provision request receiving unit receives a service provision request, before service cooperation performed based on the service provision request starts,
Analyzing the cooperation scenario, specifying an output service connection section and an input service connection section for each variable used for service cooperation performed based on the service provision request, and specifying the specified output service connection section and the input service The service linkage apparatus according to claim 1, wherein the connection unit generates input / output definition information indicated for each variable.
各サービス接続部は、
対応するサービスアプリケーションから変数値が含まれるレスポンスデータストリームを受信し、受信したレスポンスデータストリームを、レスポンスデータストリームに含まれる変数値に対応するパイプ書き込み手段に出力し、
前記パイプ管理部は、
出力サービス接続部から入力したレスポンスデータストリームから該当する変数値を抽出し、抽出した変数値をパイプに書き込むパイプ書き込み手段を、変数ごとに生成することを特徴とする請求項1〜3のいずれかに記載のサービス連携装置。
Each service connection
The response data stream including the variable value is received from the corresponding service application, and the received response data stream is output to the pipe writing means corresponding to the variable value included in the response data stream.
The pipe management unit
The pipe writing means for extracting a corresponding variable value from the response data stream input from the output service connection unit and writing the extracted variable value to the pipe is generated for each variable. The service linkage apparatus described in 1.
前記パイプ管理部は、
出力サービス接続部から入力したレスポンスデータストリームから該当する変数値を抽出し、抽出した変数値が含まれるESB(Enterprise service bus)のメッセージをメモリに書き込む機能を併有するパイプ書き込み手段を、変数ごとに生成し、
メモリからESBのメッセージを読み出し、読み出したESBのメッセージから該当する変数値を抽出し、抽出した変数値を入力サービス接続部に出力する機能を併有するパイプ読み出し手段を、変数ごとに生成することを特徴とする請求項4に記載のサービス連携装置。
The pipe management unit
For each variable, a pipe writing means that has a function of extracting a corresponding variable value from the response data stream input from the output service connection unit and writing an ESB (Enterprise service bus) message including the extracted variable value to the memory. Generate and
Generating pipe reading means for each variable, having a function of reading out an ESB message from the memory, extracting a corresponding variable value from the read ESB message, and outputting the extracted variable value to the input service connection unit; 5. The service cooperation apparatus according to claim 4, wherein
前記パイプ管理部は、
出力サービス接続部からのレスポンスデータストリームに含まれる該当する変数値のデータサイズが所定の閾値未満であれば、出力サービス接続部から入力したレスポンスデータストリームから該当する変数値を抽出し、抽出した変数値が含まれるESBのメッセージをメモリに書き込むパイプ書き込み手段を、生成し、
出力サービス接続部からのレスポンスデータストリームに含まれる該当する変数値のデータサイズが閾値以上であれば、出力サービス接続部から入力したレスポンスデータストリームから該当する変数値を抽出し、抽出した変数値をパイプに書き込むパイプ書き込み手段を、生成することを特徴とする請求項5に記載のサービス連携装置。
The pipe management unit
If the data size of the corresponding variable value included in the response data stream from the output service connection unit is less than the predetermined threshold, the corresponding variable value is extracted from the response data stream input from the output service connection unit, and the extracted variable A pipe writing means for writing an ESB message including a value to a memory;
If the data size of the corresponding variable value included in the response data stream from the output service connection unit is greater than or equal to the threshold, the corresponding variable value is extracted from the response data stream input from the output service connection unit, and the extracted variable value is 6. The service cooperation apparatus according to claim 5, wherein pipe writing means for writing into the pipe is generated.
複数のサービスアプリケーションのいずれかに対応し、サービスの連携時に、対応するサービスアプリケーションとの間で変数値を送受信する複数のサービス接続部を有するコンピュータが、
いずれかのサービスアプリケーションにより実施される2つ以上のサービスを連携させるサービス連携方法であって、
サービスの連携が開始する前に、前記コンピュータが、サービスの連携手順が示される連携シナリオを解析して、サービスの連携に用いられる変数ごとに、前記複数のサービス接続部の中から、サービスの連携時に変数値を出力する出力サービス接続部と変数値を入力する入力サービス接続部とを指定し、指定した出力サービス接続部と入力サービス接続部とが変数ごとに示される入出力定義情報を生成する定義解析ステップと、
サービスの連携が開始する前に、前記コンピュータが、前記定義解析ステップにより生成された入出力定義情報を記憶する記憶ステップと、
サービスの連携時に、前記コンピュータが、前記入出力定義情報に基づき、変数値が保持されるパイプと、出力サービス接続部から変数値を入力してパイプに書き込むパイプ書き込み手段と、パイプから変数値を読み出して入力サービス接続部に出力するパイプ読み出し手段とを、変数ごとに生成するパイプ管理ステップとを有し、
各サービス接続部は、
サービスの連携時に、対応するサービスアプリケーションから受信した変数値を当該変数値に対応するパイプ書き込み手段に出力し、パイプ読み出し手段から入力した変数値を対応するサービスアプリケーションに送信し、
前記定義解析ステップでは、
前記連携シナリオを解析した結果、いずれかの変数に対して1つの出力サービス接続部と2つ以上の入力サービス接続部とを指定する場合に、前記コンピュータは、当該変数に対して、
出力サービス接続部から入力した変数値を複製して2つ以上の入力サービス接続部への2つ以上のパイプに並行して書き込む複製書込み処理と、
1つのパイプから変数値を読み出し、読み出した変数値を複製し、変数値を当該パイプの入力サービス接続部に出力するとともに他の入力サービス接続部へのパイプに書き込む読出し複製処理とのいずれかを指定し、
当該変数に対して複製書込み処理及び読出し複製処理のいずれかが示される入出力定義情報を生成し、
前記パイプ管理ステップでは、
前記コンピュータは、
複製書込み処理及び読出し複製処理のいずれかが示されている変数に対して、1つのパイプ書き込み手段を生成するとともに、入力サービス接続部ごとにパイプとパイプ読み出し手段とを生成し、
複製書込み処理が示されている変数に対しては、生成したパイプ書き込み手段に複製書込み処理を実行させ、
読出し複製処理が示されている変数に対しては、生成したパイプ読出し手段に読出し複製処理を実行させることを特徴とするサービス連携方法。
A computer having a plurality of service connection units that correspond to any of a plurality of service applications and transmit / receive variable values to / from the corresponding service application at the time of service cooperation,
A service linkage method for linking two or more services implemented by any service application,
Before the service cooperation starts, the computer analyzes a cooperation scenario indicating a service cooperation procedure, and for each variable used for service cooperation, the service cooperation is performed from the plurality of service connection units. Specify an output service connection part that outputs variable values and an input service connection part that inputs variable values from time to time, and the specified output service connection part and input service connection part generate input / output definition information for each variable. A definition analysis step;
A storage step in which the computer stores the input / output definition information generated by the definition analysis step before service cooperation starts;
At the time of service cooperation, the computer, based on the input / output definition information, a pipe in which a variable value is held, a pipe writing means for inputting a variable value from an output service connection unit and writing it into the pipe, and a variable value from the pipe Pipe reading means for reading and outputting to the input service connection unit, and a pipe management step for generating for each variable,
Each service connection
At the time of service linkage, the variable value received from the corresponding service application is output to the pipe writing means corresponding to the variable value, the variable value input from the pipe reading means is transmitted to the corresponding service application,
In the definition analysis step,
As a result of analyzing the cooperation scenario, when one output service connection unit and two or more input service connection units are specified for any variable, the computer
A duplicate write process that duplicates the variable value input from the output service connection and writes it in parallel to two or more pipes to two or more input service connections;
Read variable value from one pipe, duplicate the read variable value, output the variable value to the input service connection part of the pipe and write to the pipe to the other input service connection part. Specify
Generate I / O definition information that indicates either replication write processing or read replication processing for the variable,
In the pipe management step,
The computer
One pipe writing means is generated for a variable in which either of the replication writing process and the reading replication process is indicated, and a pipe and a pipe reading means are generated for each input service connection unit.
For variables for which duplicate write processing is indicated, the created pipe write means executes duplicate write processing,
A service cooperation method, characterized by causing a generated pipe reading means to execute read and copy processing for a variable for which read and copy processing is indicated.
複数のサービスアプリケーションのいずれかに対応し、サービスの連携時に、対応するサービスアプリケーションとの間で変数値を送受信する複数のサービス接続部を有し、
いずれかのサービスアプリケーションにより実施される2つ以上のサービスを連携させるコンピュータに、
サービスの連携が開始する前に、サービスの連携手順が示される連携シナリオを解析して、サービスの連携に用いられる変数ごとに、前記複数のサービス接続部の中から、サービスの連携時に変数値を出力する出力サービス接続部と変数値を入力する入力サービス接続部とを指定し、指定した出力サービス接続部と入力サービス接続部とが変数ごとに示される入出力定義情報を生成する定義解析ステップと、
サービスの連携が開始する前に、前記定義解析ステップにより生成された入出力定義情報を記憶する記憶ステップと、
サービスの連携時に、前記入出力定義情報に基づき、変数値が保持されるパイプと、出力サービス接続部から変数値を入力してパイプに書き込むパイプ書き込み手段と、パイプから変数値を読み出して入力サービス接続部に出力するパイプ読み出し手段とを、変数ごとに生成するパイプ管理ステップとを実行させ、
各サービス接続部は、
サービスの連携時に、対応するサービスアプリケーションから受信した変数値を当該変数値に対応するパイプ書き込み手段に出力し、パイプ読み出し手段から入力した変数値を対応するサービスアプリケーションに送信し、
前記定義解析ステップでは、
前記連携シナリオを解析した結果、いずれかの変数に対して1つの出力サービス接続部と2つ以上の入力サービス接続部とを指定する場合に、前記コンピュータに、当該変数に対して、
出力サービス接続部から入力した変数値を複製して2つ以上の入力サービス接続部への2つ以上のパイプに並行して書き込む複製書込み処理と、
1つのパイプから変数値を読み出し、読み出した変数値を複製し、変数値を当該パイプの入力サービス接続部に出力するとともに他の入力サービス接続部へのパイプに書き込む読出し複製処理とのいずれかを指定させ、
当該変数に対して複製書込み処理及び読出し複製処理のいずれかが示される入出力定義情報を生成させ、
前記パイプ管理ステップでは、
前記コンピュータに、
複製書込み処理及び読出し複製処理のいずれかが示されている変数に対して、1つのパイプ書き込み手段を生成させるとともに、入力サービス接続部ごとにパイプとパイプ読み出し手段とを生成させ、
複製書込み処理が示されている変数に対しては、生成されたパイプ書き込み手段により複製書込み処理を実行させ、
読出し複製処理が示されている変数に対しては、生成されたパイプ読出し手段により読出し複製処理を実行させることを特徴とするプログラム。
Corresponding to one of a plurality of service applications, at the time of service cooperation, having a plurality of service connection units for sending and receiving variable values with the corresponding service application,
To a computer that links two or more services implemented by any service application,
Before starting service linkage, analyze the linkage scenario showing the service linkage procedure, and for each variable used for service linkage, set the variable value during service linkage from the multiple service connections. A definition analysis step that specifies an output service connection part to be output and an input service connection part to which a variable value is input, and the specified output service connection part and the input service connection part generate input / output definition information for each variable; ,
A storage step for storing the input / output definition information generated by the definition analysis step before the cooperation of the service is started;
When linking services, based on the input / output definition information, a pipe that holds the variable value, a pipe writing means that inputs the variable value from the output service connection unit and writes the variable value to the pipe, and an input service that reads the variable value from the pipe A pipe reading means for outputting to the connection unit, and a pipe management step for generating each variable,
Each service connection
At the time of service linkage, the variable value received from the corresponding service application is output to the pipe writing means corresponding to the variable value, the variable value input from the pipe reading means is transmitted to the corresponding service application,
In the definition analysis step,
As a result of analyzing the cooperation scenario, when one output service connection unit and two or more input service connection units are specified for any variable,
A duplicate write process that duplicates the variable value input from the output service connection and writes it in parallel to two or more pipes to two or more input service connections;
Read variable value from one pipe, duplicate the read variable value, output the variable value to the input service connection part of the pipe and write to the pipe to the other input service connection part. Let me specify
Generate input / output definition information that indicates either replication write processing or read replication processing for the variable,
In the pipe management step,
In the computer,
One pipe writing means is generated for a variable in which either the replication writing process or the reading replication process is indicated, and a pipe and a pipe reading means are generated for each input service connection unit.
For the variable for which the replication writing process is indicated, the replication writing process is executed by the generated pipe writing means,
A program that causes a read pipe process to be executed by a generated pipe reading unit for a variable for which a read process is indicated.
JP2011241226A 2011-11-02 2011-11-02 Service cooperation apparatus, service cooperation method, and program Expired - Fee Related JP5752009B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011241226A JP5752009B2 (en) 2011-11-02 2011-11-02 Service cooperation apparatus, service cooperation method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011241226A JP5752009B2 (en) 2011-11-02 2011-11-02 Service cooperation apparatus, service cooperation method, and program

Publications (2)

Publication Number Publication Date
JP2013097666A true JP2013097666A (en) 2013-05-20
JP5752009B2 JP5752009B2 (en) 2015-07-22

Family

ID=48619525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011241226A Expired - Fee Related JP5752009B2 (en) 2011-11-02 2011-11-02 Service cooperation apparatus, service cooperation method, and program

Country Status (1)

Country Link
JP (1) JP5752009B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07262025A (en) * 1994-03-18 1995-10-13 Fujitsu Ltd Execution control system
JPH10320218A (en) * 1997-05-19 1998-12-04 Hitachi Ltd Automatic starting method for cooperative job in data transfer processing
JP2002521765A (en) * 1998-07-29 2002-07-16 ユニシス コーポレイシヨン Method and apparatus for processing a request for management of a distributed network application executing in a clustered computing environment
US20020143855A1 (en) * 2001-01-22 2002-10-03 Traversat Bernard A. Relay peers for extending peer availability in a peer-to-peer networking environment
JP2004302837A (en) * 2003-03-31 2004-10-28 Nec Corp Parallel processing system and program by os for single processor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07262025A (en) * 1994-03-18 1995-10-13 Fujitsu Ltd Execution control system
JPH10320218A (en) * 1997-05-19 1998-12-04 Hitachi Ltd Automatic starting method for cooperative job in data transfer processing
JP2002521765A (en) * 1998-07-29 2002-07-16 ユニシス コーポレイシヨン Method and apparatus for processing a request for management of a distributed network application executing in a clustered computing environment
US20020143855A1 (en) * 2001-01-22 2002-10-03 Traversat Bernard A. Relay peers for extending peer availability in a peer-to-peer networking environment
JP2004302837A (en) * 2003-03-31 2004-10-28 Nec Corp Parallel processing system and program by os for single processor

Also Published As

Publication number Publication date
JP5752009B2 (en) 2015-07-22

Similar Documents

Publication Publication Date Title
Shapira et al. Kafka: the definitive guide
US11228570B2 (en) Safe-transfer exchange protocol based on trigger-ready envelopes among distributed nodes
CN111736775B (en) Multi-source storage method, device, computer system and storage medium
Mendes et al. Charon: A secure cloud-of-clouds system for storing and sharing big data
JP6188713B2 (en) Autonomous network streaming
US8812683B2 (en) Service scripting framework
WO2011108695A1 (en) Parallel data processing system, parallel data processing method and program
Calcote et al. Istio: Up and running: Using a service mesh to connect, secure, control, and observe
US20100058118A1 (en) Storage medium recording information reacquisition procedure generation program and information reacquisition procedure generation apparatus
EP3346379A1 (en) Database management system with dynamic allocation of database requests
CN106446159B (en) A kind of method of storage file, the first virtual machine and name node
US10706027B2 (en) Database management system with dynamic allocation of database requests
US12052253B2 (en) Context tracking across a data management platform
US20210311925A1 (en) Blockchain transaction processing systems and methods
Vega et al. Loginson: a transform and load system for very large-scale log analysis in large IT infrastructures
US9619518B2 (en) Tracking tuples to reduce redundancy in a graph
WO2016023372A1 (en) Data storage processing method and device
CN109829094A (en) Distributed reptile system
CN113626510A (en) Transaction checking method, device, electronic equipment and storage medium
JP5752009B2 (en) Service cooperation apparatus, service cooperation method, and program
US8938715B2 (en) Using the z/OS load module system status index to distinguish product tag files
US20060004838A1 (en) Sharing large objects in distributed systems
JP2020119207A (en) Database management service provision system
KR20100091757A (en) Method, system and computer-readable recording medium for providing distributed programming environment by using distributed space
US11526490B1 (en) Database log performance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140926

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150413

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150519

R150 Certificate of patent or registration of utility model

Ref document number: 5752009

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees