JP5752009B2 - Service cooperation apparatus, service cooperation method, and program - Google Patents
Service cooperation apparatus, service cooperation method, and program Download PDFInfo
- Publication number
- JP5752009B2 JP5752009B2 JP2011241226A JP2011241226A JP5752009B2 JP 5752009 B2 JP5752009 B2 JP 5752009B2 JP 2011241226 A JP2011241226 A JP 2011241226A JP 2011241226 A JP2011241226 A JP 2011241226A JP 5752009 B2 JP5752009 B2 JP 5752009B2
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
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
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.
非特許文献1に記載の従来のESBでは、サービスとの入出力で使用するデータが大量になった場合に、以下のような課題がある。
The conventional ESB described in Non-Patent
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
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.
本実施の形態では、サービスの入出力に使用するデータが大量の場合にも、パイプを使用して随時サービスを実行させながら複数のサービスに対しても同じデータを利用できるようにする構成を説明する。
なお、本明細書におけるパイプとは、UNIX(登録商標)におけるパイプと同様の概念であり、プロセス(またはスレッド)間で変数値を送受信させるために、変数値を保持する手段である。
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
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
The
サービス連携装置1000は、サービスを利用するサービス利用システム4000と接続され、サービス利用システム4000からサービスの提供を要求するサービス提供要求を受信し、サービス提供要求に基づいて複数のサービスの連携を行う。
The
また、サービス連携装置1000は、それぞれサービスを実施するアプリケーションプログラムであるサービスアプリケーションA2001〜サービスアプリケーションD2004と通信を行い、複数のサービスを連携する。
サービスアプリケーションA2001により実施されるサービスをサービスA、サービスアプリケーションB2002により実施されるサービスをサービスB、サービスアプリケーションC2003により実施されるサービスをサービスC、サービスアプリケーションD2004により実施されるサービスをサービスDとよぶ。
サービスA〜サービスDは、サービス利用システム4000に提供されるサービスである。
なお、サービスアプリケーションA2001〜サービスアプリケーションD2004は、それぞれ、コンピュータにより実行される。
つまり、サービス連携装置1000は、物理的には、サービスアプリケーションA2001〜サービスアプリケーションD2004を実現するコンピュータと通信を行って、複数のサービスを連携するが、本明細書では便宜的に、サービス連携装置1000は、サービスアプリケーションA2001〜サービスアプリケーションD2004と通信すると表記する。
Further, the
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
Note that service application A2001 to service application D2004 are each executed by a computer.
That is, the
サービス連携装置1000は、サービスアプリケーションA2001〜サービスアプリケーションD2004に対してリクエストデータストリームを送信し、リクエストデータストリームの応答であるレスポンスデータストリームをサービスアプリケーションA2001〜サービスアプリケーションD2004から受信する。
サービス連携にあたっては、サービス連携装置1000は、あるサービスアプリケーションからのレスポンスデータストリームに含まれる変数値を他のサービスアプリケーションへのリクエストデータストリームに含ませる場合がある。
この場合に、サービス連携装置1000は、1つのサービスアプリケーション(例えば、サービスアプリケーションA2001)からのレスポンスデータストリームに含まれる変数値を他の2つ以上のサービスアプリケーション(例えば、サービスアプリケーションB2002とサービスアプリケーションC2003)へのリクエストデータストリームに含ませる場合もある。
The
In service cooperation, the
In this case, the
図2は、本実施の形態に係るサービス連携装置1000の内部構成例を示す。
FIG. 2 shows an internal configuration example of the
図2において、定義解析部1001は、シナリオ定義1101とインターフェース定義1102を解析し、パイプ割り当て定義1103を生成する機能である。
In FIG. 2, the
シナリオ定義1101は、サービス接続部A1008〜サービス接続部D1011を起動する順番を定義した情報であり、図4はシナリオ定義1101の例である。
また、図8は、このシナリオ例の処理フローを表した図である。
図4の例では、サービス接続部A1008を実行した後に、並列に実行する2つの処理に分かれる。
一つ目の処理はサービス接続部B1009を実行する処理であり、もう一つはサービス接続部C1010とサービス接続部D1011を実行する処理である。
なお、後述するように、サービス接続部A1008〜サービス接続部D1011は、サービスアプリケーションA2001〜サービスアプリケーションD2004と通信を行う機能である。
The
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
インターフェース定義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
The
FIG. 5 is an example of the
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
パイプ割り当て定義1103は、各サービス接続部で適用するパイプ処理を定義したものである。
パイプ割り当て定義1103は、例えば図7に示す情報である。
The
The
なお、図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
パイプ管理部1002は、パイプ割り当て定義1103に基づいてサービス接続部の動作時に必要なパイプ1006の作成やパイプ書込み手段1004とパイプ読出し手段1005の割り当てを行う機能である。
より具体的には、パイプ管理部1002は、パイプ書込み手段1004とパイプ読出し手段1005のスレッド(プロセス)を起動し、また、メモリの所定の領域をパイプ1006に割り当てる。
The
More specifically, the
サービス公開部1003は、サービス連携装置1000がサービスアプリケーションA2001〜サービスアプリケーションD2004を連携させて新たに作成した機能を装置の外部から利用できるように、サービス連携装置1000に対する外部からの処理要求を受け付けるための機能である。
例えば、HTTP(Hypertext Transfer Protocol)で機能を呼出すWebサービスなどの形で公開する。
サービス利用システム4000は、サービス公開部1003によって公開されたサービスを呼出すことができる。
サービス公開部1003は、サービス利用システム4000からの処理要求(サービス提供要求)を受け付けると、ESBのメッセージをシナリオ制御部1007に送信する。
サービス公開部1003は、サービス提供要求受信部の例に相当する。
The
For example, it is disclosed in the form of a Web service that calls a function using HTTP (Hypertext Transfer Protocol).
The
Upon receiving a processing request (service provision request) from the
The
シナリオ制御部1007は、シナリオ定義1101にもとづいて、サービス接続部A1008〜サービス接続部D1011にESBのメッセージを送信する機能である。
The
サービス接続部A1008〜サービス接続部D1011は、サービスアプリケーションA2001〜サービスアプリケーションD2004に対応し、対応するサービスアプリケーションにおけるサービスの呼出し処理を行う。
サービス接続部A1008〜サービス接続部D1011は、シナリオ制御部1007からESBのメッセージを受信することで動作する。
サービス接続部A1008〜サービス接続部D1011は、サービスアプリケーションを呼出す前に、パイプ管理部1002からサービスアプリケーションに入力するデータを取得するためのパイプ読出し手段1005への参照と、サービスアプリケーションからの出力を格納するためのパイプ書込み手段1004への参照を取得する。
そして、サービス接続部A1008〜サービス接続部D1011は、パイプ1006への変数値の入出力を行いながら、対応するサービスアプリケーションとの間で変数値を含むリクエストデータストリームとレスポンスデータストリームを送受信する。
なお、図1では、例としてサービス接続部とサービスをそれぞれ4個としているが、実際にはサービスは1個以上あればよく、4個に限定されるものではない。
Service
The service
The service
The service
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
ここで、サービスアプリケーションにより提供されるサービスとは、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
The
図3は、パイプ書込み手段1004、パイプ1006、パイプ読出し手段1005の詳細な構成を示す図である。
FIG. 3 is a diagram showing a detailed configuration of the
パイプ書込み手段1004は、書込みデータコピー機能10041と読捨て機能10042を持つ。
書込みデータコピー機能10041は、同一のデータ(変数値)を複数のパイプ読出し手段1005で使用できるように、データ(変数値)をコピーして複数のパイプ1006に同じデータ(変数値)を書込む機能である。
読捨て機能10042は、パイプ読出し手段1005によって使用されないデータ(変数値)をパイプ1006に書込まずに、捨てるための機能である。
パイプ読出し手段1005は、読出しデータコピー機能10051を持つ。
読出しデータコピー機能10051は、一度読み取ったデータを再度パイプ読出し手段1005で使用できるように、読み取ったデータをコピーし、パイプ1006に書き込む機能である。
The pipe writing means 1004 has a write
The write
The discarding
The
The read
パイプ書込み手段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,
For example, in
When the description of
Also, as the
Also, as pipe reading means 1005, pipe reading means 1005b that reads a variable value from the
Hereinafter, “a” to “d” appended to the end of the
記憶部1020は、シナリオ定義1101、インターフェース定義1102及びパイプ割り当て定義1103を記憶する。
The
次に、動作について説明する。
実施の形態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
The second process is an execution process for executing a service in accordance with a request from the
図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
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
図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
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
The
The analysis ends S0005 by the output of the
なお、図9に例示した解析処理は、サービス連携装置1000の起動時などのように、サービス公開部1003がサービス利用システム4000から呼出されるようになる前に実行しておく。
The analysis processing illustrated in FIG. 9 is executed before the
次に、図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
When the
シナリオ制御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
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
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
Note that when the
サービス処理S1004の処理フローを説明する前に、サービス処理の中で使用するパイプ書込み手段1004、パイプ1006、パイプ読出し手段1005の動作について説明する。
Before describing the processing flow of the service processing S1004, the operations of the
図12〜14は、パイプ書込み手段1004、パイプ1006、パイプ読出し手段1005の処理を示す図である。
通常、パイプ1006に書込まれた変数値は、読み取られることによって廃棄される。
しかし、サービスの実行順序によっては、パイプ1006に書込まれた変数値を複数のサービス接続部で使用する場合がある。
そこで、同じ変数値を複数のサービス接続部で読み取る必要がある場合、パイプ書込み手段1004やパイプ読出し手段1005によって、複数箇所で同じ変数値を使用できるように、変数値の複製処理を行う。
同じ変数値を複数個所で読み取る場合の読み取り方は2つあり、1つはフォークによって複数のサービス接続部で同時に変数値が使用される場合であり、もう1つは変数値の読み取りを行った箇所よりも後の箇所で再度変数値を使用している場合である。
12 to 14 are diagrams showing processing of the
Normally, variable values written to
However, depending on the service execution order, the variable value written in the
Therefore, when it is necessary to read the same variable value by a plurality of service connection units, the
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
For the latter, as shown in FIG. 13, the read
図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
That is, in the
When the description of
Further, the
また、図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
That is, in the
When the description of
Further, the
また、サービス接続部が取得した変数値が以降の処理で使用されない場合、変数値をパイプ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
In such a case, as shown in FIG. 14, the discarding
図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
That is, in the
When the description of
このように、パイプ書込み手段1004とパイプ読出し手段1005がどのような処理を行うかは、パイプ割り当て定義1103に従って、パイプ管理部1002が制御する。
In this way, the
次に、図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
パイプ書込み手段とパイプ読出し手段への参照の取得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
Upon receiving the request, the
That is, when the service connection unit outputs a variable value, the service connection unit requests the
For example, when the service connection unit A 1008 (na) outputs the variable value of the variable p2, the
The
When the
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
リクエストデータストリームの作成S2003では、パイプ読出し手段1005への参照を取得したサービス接続部が、サービスを利用するためのリクエストデータストリームを作成する。
つまり、サービス接続部は、リクエストデータストリームの構成要素のうち変数値以外の部分を生成する。
In request data stream creation S2003, the service connection unit that has acquired the reference to the
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
Here, the
END S2007では、サービス接続部がシナリオ制御部1007に制御を返す。
In END S2007, the service connection unit returns control to the
以上のように、実施の形態1によればパイプ管理部1002がパイプ割り当て定義1103に従って、パイプ書込み手段1004とパイプ読出し手段1005での変数のコピーを制御することで、データの削除を制御することなく複数のサービスで同じデータを使用することが出来るようになる。
また、パイプに無駄なデータが書込まれるのを防ぐことが出来るようになる。
また、外部で実行されるサービスの種類が追加された場合に、追加されたサービスに応じて、新たにサービス接続部を作成する必要があるが、データのコピー処理を、パイプ書込み手段1004とパイプ読出し手段1005で行うようにしたので、コピー処理部分を作りなおす必要がなくなる。
さらに、パイプ割り当て定義1103を生成する定義解析部1001を設けたことで、設計者がパイプ割り当て定義1103を直接作成する必要が無くなり設計者の手間を減らすことが出来る。
As described above, according to the first embodiment, the
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
Furthermore, by providing the
本実施の形態では、以下の機能を持つサービス連携装置を説明した。
サービス連携装置がサービス公開部を使用してサービスを公開する前に、サービスの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
In the second embodiment, a
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
That is, in this embodiment, every time the
このように、実施の形態2では、定義更新機能を設け、処理実行の最中にパイプ割り当て定義1103を更新することができるようにしたので、サービス連携装置1000の稼働中にシナリオ定義1101が更新された場合にも、正しくパイプの割り当てを行うことができるようになる。
As described above, in the second embodiment, the definition update function is provided so that the
以上、本実施の形態では、実施の形態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
The
The message writing function 10043 writes data in the data area in the
The
このように、実施の形態3では、図18の符号1801で示すように、ユーザーがインターフェース定義1102を作成するときに、所定のパラメータ(図18では、p1)に対してパイプを使用しないことを定義しておき、定義解析処理の結果が図19のようにパイプ書込み手段1004とパイプ読出し手段1005においてメッセージ書込み(符号1901)とメッセージ読出し(符号1902)が指定されるようにする。
As described above, in the third embodiment, when the user creates the
以上のように実施の形態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
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
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
The validation of the write
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
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
If it is less than the threshold, the
以上のように、実施の形態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
実施の形態6.
実施の形態6に係るサービス連携装置1000は、実施の形態2と実施の形態4の組み合わせとして、実施の形態2の構成に、実施の形態4のメッセージ書込み機能10043、メッセージ読出し機能10052とレスポンスデータサイズ判定機能を加えた構成とする。
Embodiment 6 FIG.
As a combination of the second and fourth embodiments, the
最後に、実施の形態1〜6に示したサービス連携装置1000のハードウェア構成例について説明する。
図22は、実施の形態1〜6に示すサービス連携装置1000のハードウェア資源の一例を示す図である。
なお、図22の構成は、あくまでもサービス連携装置1000のハードウェア構成の一例を示すものであり、サービス連携装置1000のハードウェア構成は図22に記載の構成に限らず、他の構成であってもよい。
Finally, a hardware configuration example of the
FIG. 22 is a diagram illustrating an example of hardware resources of the
Note that the configuration of FIG. 22 is merely an example of the hardware configuration of the
図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
The
Further, the
The
The “
A
The
通信ボード915は、ネットワークに接続されている。
例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。
The
For example, the
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
The
The programs in the
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
The
The
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
サービス連携装置1000の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
The
When the
上記プログラム群923には、実施の形態1〜6の説明において「〜部」(「記憶部1020」以外、以下同様)、「〜手段」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
The
ファイル群924には、実施の形態1〜6の説明において、「〜の判断」、「〜の判定」「〜の解析」、「〜の指定」、「〜の生成」、「〜の作成」、「〜の複製」、「〜の割当て」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値や暗号鍵・復号鍵や乱数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜6で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
In the
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
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
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
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
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
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
Claims (8)
複数のサービスアプリケーションのいずれかに対応し、サービスの連携時に、対応するサービスアプリケーションとの間で変数値を送受信する複数のサービス接続部と、
サービスの連携が開始する前に、サービスの連携手順が示される連携シナリオを解析して、サービスの連携に用いられる変数ごとに、前記複数のサービス接続部の中から、サービスの連携時に変数値を出力する出力サービス接続部と変数値を入力する入力サービス接続部とを指定し、指定した出力サービス接続部と入力サービス接続部とが変数ごとに示される入出力定義情報を生成する定義解析部と、
サービスの連携が開始する前に、前記定義解析部により生成された入出力定義情報を記憶する記憶部と、
サービスの連携時に、前記入出力定義情報に基づき、変数値が保持されるパイプと、出力サービス接続部から変数値を入力してパイプに書き込むパイプ書き込み手段と、パイプから変数値を読み出して入力サービス接続部に出力するパイプ読み出し手段とを、変数ごとに生成するパイプ管理部とを有し、
各サービス接続部は、
サービスの連携時に、対応するサービスアプリケーションから受信した変数値を当該変数値に対応するパイプ書き込み手段に出力し、パイプ読み出し手段から入力した変数値を対応するサービスアプリケーションに送信し、
前記定義解析部は、
前記連携シナリオを解析した結果、いずれかの変数に対して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.
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 JP2013097666A (en) | 2013-05-20 |
JP5752009B2 true 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) |
Family Cites Families (5)
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 |
US6868442B1 (en) * | 1998-07-29 | 2005-03-15 | Unisys Corporation | Methods and apparatus for processing administrative requests of a distributed network application executing in a clustered computing environment |
WO2002057917A2 (en) * | 2001-01-22 | 2002-07-25 | Sun Microsystems, Inc. | Peer-to-peer network computing platform |
JP4051703B2 (en) * | 2003-03-31 | 2008-02-27 | 日本電気株式会社 | Parallel processing system and parallel processing program by OS for single processor |
-
2011
- 2011-11-02 JP JP2011241226A patent/JP5752009B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013097666A (en) | 2013-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11228570B2 (en) | Safe-transfer exchange protocol based on trigger-ready envelopes among distributed nodes | |
US7949999B1 (en) | Providing support for multiple interface access to software services | |
CN111736775B (en) | Multi-source storage method, device, computer system and storage medium | |
US8386608B1 (en) | Service scripting framework | |
Mendes et al. | Charon: A secure cloud-of-clouds system for storing and sharing big data | |
JP6188713B2 (en) | Autonomous network streaming | |
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 | |
CN108351806A (en) | Database trigger of the distribution based on stream | |
EP3346379A1 (en) | Database management system with dynamic allocation of database requests | |
US10706027B2 (en) | Database management system with dynamic allocation of database requests | |
US11948005B2 (en) | Managed integration of constituent services of multi-service applications | |
US12052253B2 (en) | Context tracking across a data management platform | |
US20210406039A1 (en) | Managed control plane service | |
Vega et al. | Loginson: a transform and load system for very large-scale log analysis in large IT infrastructures | |
WO2016023372A1 (en) | Data storage processing method and device | |
EP3997572A1 (en) | Blockchain transaction processing systems and methods | |
US9619518B2 (en) | Tracking tuples to reduce redundancy in a graph | |
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 | |
KR20100091757A (en) | Method, system and computer-readable recording medium for providing distributed programming environment by using distributed space | |
JP2020119207A (en) | Database management service provision system | |
US9596292B1 (en) | Client-side scripts in a service-oriented API environment | |
Popescu et al. | Towards a responsive CernVM-FS architecture |
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 |