(57)【要約】【課題】一連の処理をなすプロセスを構成するサービスであって、ＳＯＡ等のメッセージ指向のサービスの開発において、メッセージの設計開発の負荷を小さくすることを目的とする。【解決手段】処理を実行したサービスでは、処理の実行結果をメッセージにより他のサービスへ送信せず、記憶領域に記憶する。他のサービスへ送信するメッセージには、前記記憶領域の識別情報を含める。メッセージを受信した前記他のサービスは、メッセージに含まれる識別情報に基づき、前記記憶領域へアクセスして、サービスの実行結果を利用して処理を実行する。【選択図】図１
2011034392.tif 000002
【特許請求の範囲】
【請求項１】
プロセスを構成する複数のサービスを連携して動作させるサービス連携装置であり、
前記プロセスが実行される場合に、前記複数のサービスの所定のサービスで生成される情報であって、前記所定のサービス以外の他のサービスで使用される情報を格納するための記憶領域を記憶装置に生成する記憶領域生成部と、
前記記憶領域生成部が生成した記憶領域の識別情報を含めたメッセージを、次に実行されるサービスへ送信して、前記次に実行されるサービスを起動させるメッセージ送信部と、
前記所定のサービスが実行された場合に前記所定のサービスから前記識別情報に基づき呼び出され、前記記憶領域にアクセスして、前記所定のサービスで生成した情報を前記記憶領域に格納するとともに、前記記憶領域に格納された情報を使用する前記他のサービスが実行された場合に前記他のサービスから前記識別情報に基づき呼び出され、前記記憶領域にアクセスして、前記所定のサービスで生成した情報を読み出す記憶装置操作部と
を備えることを特徴とするサービス連携装置。
【請求項２】
前記サービス連携装置は、自己が管理するサービスと、他のサービス連携装置が管理するサービスとで構成されるプロセスについて、前記他のサービス連携装置とともにサービスを連携して動作させ、
前記サービス連携装置は、さらに、
自己が管理するサービスの後に前記他のサービス連携装置が管理するサービスが実行される場合、前記プロセスを構成するサービスに加え、前記記憶領域に格納された情報のうち、前記他のサービス連携装置が管理するサービスで使用される情報を取得して、前記他のサービス連携装置へ取得した情報をメッセージに含めて送信する装置間連携情報送信サービスを追加するサービス追加部を備え、
前記メッセージ送信部は、次に実行されるサービスが前記他のサービス連携装置が管理するサービスである場合、前記装置間連携情報送信サービスへ前記メッセージを送信する
ことを特徴とする請求項１に記載のサービス連携装置。
【請求項３】
前記サービス追加部は、自己が管理するサービスの前に前記他のサービス連携装置が管理するサービスが実行される場合、前記プロセスを構成するサービスに加え、前記装置間連携情報送信サービスからメッセージが送信された場合に起動して、前記装置間連携情報送信サービスから送信された情報を格納するための記憶領域を自己の記憶装置に生成するとともに、生成した記憶領域に送信された情報を格納して、生成した記憶領域の識別情報を含めたメッセージを次に実行されるサービスへ送信して、前記次に実行されるサービスを起動させる装置間連携情報受信サービスを追加する
ことを特徴とする請求項２に記載のサービス連携装置。
【請求項４】
前記装置間連携情報送信サービスは、前記他のサービス連携装置へ情報を送信する場合に、予め指定された情報を除き、前記記憶領域に格納された情報を削除する
ことを特徴とする請求項２又は３に記載のサービス連携装置。
【請求項５】
プロセスを構成する複数のサービスを連携して動作させるサービス連携方法であり、
前記プロセスが実行される場合に、前記複数のサービスの所定のサービスで生成される情報であって、前記所定のサービス以外の他のサービスで使用される情報を格納するための記憶領域を記憶装置に生成する記憶領域生成ステップと、
前記記憶領域生成ステップで生成した記憶領域の識別情報を含めたメッセージを、次に実行されるサービスへ送信して、前記次に実行されるサービスを起動させるメッセージ送信ステップと、
前記所定のサービスが実行された場合に前記所定のサービスから前記識別情報に基づき呼び出され、前記記憶領域にアクセスして、前記所定のサービスで生成した情報を前記記憶領域に格納するとともに、前記記憶領域に格納された情報を使用する前記他のサービスが実行された場合に前記他のサービスから前記識別情報に基づき呼び出され、前記記憶領域にアクセスして、前記所定のサービスで生成した情報を読み出す記憶装置操作ステップと
を備えることを特徴とするサービス連携方法。
【請求項６】
プロセスを構成する複数のサービスを連携して動作させるサービス連携プログラムであり、
前記プロセスが実行される場合に、前記複数のサービスの所定のサービスで生成される情報であって、前記所定のサービス以外の他のサービスで使用される情報を格納するための記憶領域を記憶装置に生成する記憶領域生成処理と、
前記記憶領域生成処理で生成した記憶領域の識別情報を含めたメッセージを、次に実行されるサービスへ送信して、前記次に実行されるサービスを起動させるメッセージ送信処理と、
前記所定のサービスが実行された場合に前記所定のサービスから前記識別情報に基づき呼び出され、前記記憶領域にアクセスして、前記所定のサービスで生成した情報を前記記憶領域に格納するとともに、前記記憶領域に格納された情報を使用する前記他のサービスが実行された場合に前記他のサービスから前記識別情報に基づき呼び出され、前記記憶領域にアクセスして、前記所定のサービスで生成した情報を読み出す記憶装置操作処理と
をコンピュータに実行させることを特徴とするサービス連携プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、ＳＯＡ（Ｓｅｒｖｉｃｅ  Ｏｒｉｅｎｔｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）等におけるメッセージバスを通じたサービス間の連携技術に関する。
【背景技術】
【０００２】
ＳＯＡとは、複数のサービスを組み合わせてシステムを構築する設計手法である。
サービスとは、意味のある単位の機能を持つ一まとまりのソフトウェアの集合であって、外部から標準化された手順によって呼び出すことができるものである。意味のあるとは、業務上、あるいは人間にとって何らかの意味があることを指す。なお、複数のサービスを組み合わせて構成された一連の処理をプロセスと呼ぶ。
【０００３】
ＳＯＡに基づくシステム構築では、ＥＳＢ（Ｅｎｔｅｒｐｒｉｓｅ  Ｓｅｒｖｉｃｅ  Ｂｕｓ）と呼ばれるミドルウェアを用いることが一般的である。
ＥＳＢとは、外部システムとサービスとの間の連携や、サービス間の連携を図るミドルウェアである。ＥＳＢでは、メッセージルータ（メッセージバス）を提供し、このメッセージルータを通じて、外部システムとサービスとの間や、サービス間でメッセージの交換を行い、外部システムとサービスとの間の連携や、サービス間の連携を図る。
つまり、ＥＳＢは、メッセージ指向のアプリケーション構築を可能にするミドルウェアということができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２０４４３０号公報
【非特許文献】
【０００５】
【非特許文献１】Ｇｒｅｇｏｒ  Ｈｏｈｐｅ、Ｂｏｂｂｙ  Ｗｏｏｌｆ著、「Ｅｎｔｅｒｐｒｉｓｅ  Ｉｎｔｅｇｒａｔｉｏｎ  Ｐａｔｔｅｒｎｓ：  Ｄｅｓｉｇｎｉｎｇ，  Ｂｕｉｌｄｉｎｇ，  ａｎｄ  Ｄｅｐｌｏｙｉｎｇ  Ｍｅｓｓａｇｉｎｇ  Ｓｏｌｕｔｉｏｎｓ」Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ  Ｐｕｂ出版、２００３年１０月１０日発行、ｐ．３１２−３２１
【非特許文献２】Ｒｏｎ  Ｔｅｎ−Ｈｏｖｅ，  Ｐｅｔｅｒ  Ｗａｌｋｅｒ著、「Ｊａｖａ  Ｂｕｓｉｎｅｓｓ  Ｉｎｔｅｇｒａｔｉｏｎ（ＪＢＩ）１．０」Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ  Ｉｎｃ．、２００５年８月１７日発行
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のＥＳＢでは、サービス間でのデータ交換はメッセージを介してしか行うことができない。したがって、サービスを開発する場合には、必ずメッセージの設計が必要となる。メッセージの設計は、他のサービスとの関係を考慮して行わなければならない。特に、メッセージの設計は、プロセス全体を見渡して設計を行わなければならない場合もあり、メッセージの設計にかかる負荷が大きい。
この発明は、例えば、プロセスを構成するサービスを開発する場合におけるメッセージの設計開発の負荷を小さくすることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るサービス連携装置は、例えば、
プロセスを構成する複数のサービスを連携して動作させるサービス連携装置であり、
前記プロセスが実行される場合に、前記複数のサービスの所定のサービスで生成される情報であって、前記所定のサービス以外の他のサービスで使用される情報を格納するための記憶領域を記憶装置に生成する記憶領域生成部と、
前記記憶領域生成部が生成した記憶領域の識別情報を含めたメッセージを、次に実行されるサービスへ送信して、前記次に実行されるサービスを起動させるメッセージ送信部と、
前記所定のサービスが実行された場合に前記所定のサービスから前記識別情報に基づき呼び出され、前記記憶領域にアクセスして、前記所定のサービスで生成した情報を前記記憶領域に格納するとともに、前記記憶領域に格納された情報を使用する前記他のサービスが実行された場合に前記他のサービスから前記識別情報に基づき呼び出され、前記記憶領域にアクセスして、前記所定のサービスで生成した情報を読み出す記憶装置操作部と
を備えることを特徴とする。
【発明の効果】
【０００８】
この発明に係るサービス連携装置では、記憶領域を介してサービス間でデータ交換するため、メッセージ開発の負荷を小さくすることができる。
【図面の簡単な説明】
【０００９】
【図１】ＥＳＢの基本的な仕様を説明するための図。
【図２】実施の形態１に係るＥＳＢサービス間自動連携装置１００の構成図。
【図３】タスク基盤１４２の説明図。
【図４】変数基盤１６０の説明図。
【図５】実施の形態１に係るＥＳＢサービス間自動連携装置１００において、外部システム２００からメッセージを受信してから、タスク１〜４で構成されるプロセスがどのように実行されるかを示した図。
【図６】実施の形態２に係るＥＳＢサービス間自動連携装置１００の構成図。
【図７】実施の形態２に係るＥＳＢサービス間自動連携装置１００において、外部システム２００からメッセージを受信してから、タスク１〜３で構成されるプロセスがどのように実行されるかを示した図。
【図８】実施の形態３に係るＥＳＢサービス間自動連携装置１００の構成図。
【図９】実施の形態３に係るＥＳＢサービス間自動連携装置１００において、外部システム２００からメッセージを受信してから、タスク１〜４で構成されるプロセスがどのように実行されるかを示した図。
【図１０】ＥＳＢサービス間自動連携装置１００と及びサービス実行装置３００のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【００１０】
以下、図に基づきこの発明の実施の形態について説明する。
なお、以下の説明において、処理装置とは、後述するＣＰＵ９１１等であり、記憶装置とは、後述するＲＡＭ９１３等のことである。
【００１１】
まず、ＥＳＢの基本的な仕様と、その課題について説明する。
なお、ＥＳＢの基本的な仕様は、非特許文献２に記載されたＪＢＩ（Ｊａｖａ  Ｂｕｓｉｎｅｓｓ  Ｉｎｔｅｇｒａｔｉｏｎ）で規定されている。
【００１２】
図１は、ＥＳＢの基本的な仕様を説明するための図である。
図１に示すように、ＥＳＢは、ＥＳＢコンテナ８００、タスクコンポーネント８１０、メッセージルータ８２０、ルーティング定義８３０から構成される。
ＥＳＢコンテナ８００は、ＥＳＢ全体の制御を行うものであり、ＥＳＢにおけるベースプログラムである。つまり、ＥＳＢコンテナ８００は、ＥＳＢにおけるＯＳのような役割を果たすものである。ＥＳＢにおける全ての構成要素はＥＳＢコンテナ８００に配置される。
タスクコンポーネント８１０は、メッセージを送受信する機能と、サービスとを備える。つまり、タスクコンポーネント８１０は、メッセージルータ８２０を介してメッセージを受信し、受信したメッセージに基づきサービスを起動させる。そして、サービスで生成されたメッセージをメッセージルータ８２０を介して他のタスクコンポーネント８１０等へ送信する。図１では、タスク１コンポーネント、タスク２コンポーネント、タスク３コンポーネント、タスク４コンポーネントを備える。
メッセージルータ８２０は、メッセージのルーティングを行う。例えば、メッセージルータ８２０は、タスク２コンポーネント宛てとして送信されたメッセージの宛先を、タスク２コンポーネントの実際のアドレスに置き換えして、タスク２コンポーネントへ送信する。また、メッセージルータ８２０は、タスクコンポーネント８１０間のプロトコルの違いを吸収して、タスクコンポーネント８１０がプロトコルを意識することなく通信することを可能にする。
ルーティング定義８３０は、サービス間の接続方法（実行順序やプロトコル）を定義したものであり、これに基づきタスクコンポーネント８１０、メッセージルータ８２０によりメッセージの送受信が制御される。
【００１３】
従来のＥＳＢでは、タスクコンポーネント８１０は、メッセージを介してしかデータ交換できない。つまり、例えば、タスク１コンポーネントがタスク２コンポーネントへデータを渡すには、タスク１コンポーネントがタスク２コンポーネントへ送信するメッセージｍｓｇ＿１＿２に渡したいデータを含めて送信するしかない。
そのため、サービスを開発する場合、必ずメッセージを設計する必要がある。つまり、サービスを開発する場合、そのサービスで使用するメッセージスキーマの設計をするとともに、各メッセージスキーマに対して、そのメッセージを送受信できるメッセージ送信プログラム及びメッセージ受信プログラムを開発する必要がある。
また、次のタスクコンポーネント８１０で使用される情報だけでなく、後続のタスクコンポーネント８１０で使用される情報は全て含めなければならない。また、この他に、メッセージには、プロセス制御に必要な情報、プロセス全体で使用する情報等を含めなければならない。つまり、メッセージに含める情報は、プロセス全体を俯瞰的に見て決める必要がある。そのため、メッセージを設計することは、個々のサービス内容を局所的に把握して設計、開発を行う一般的な業務アプリケーション開発者には、非常に難しい。
【００１４】
例えば、図１であれば、４つのタスクコンポーネント８１０間で受け渡す３つのメッセージについて、メッセージ変数ｍｓｇ＿１＿２，ｍｓｇ＿２＿３，ｍｓｇ＿３＿４を定義し、４つのタスクコンポーネント８１０を俯瞰的に見て、各メッセージ変数ｍｓｇ＿１＿２，ｍｓｇ＿２＿３，ｍｓｇ＿３＿４に対して、ＷＳＤＬ（ＷｅｂＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）等を使用して、メッセージスキーマを定義する必要がある。
【００１５】
また、設計した各メッセージのフォーマットに対応して、メッセージを生成するメッセージ送信プログラムと、メッセージを解釈するメッセージ受信プログラムとを実装する必要がある。
つまり、ｎ個（図１では４個）のタスクコンポーネント８１０がある場合には、（ｎ−１）個（図１では３個）のメッセージを設計するだけでなく、（ｎ−１）×２個（図１では６個）のメッセージ送受信プログラムを開発する必要がある。
【００１６】
また、プロセスを変更した場合、メッセージ設計とメッセージ送受信プログラムの修正とが必要となる。
特に、プロセス中の１つのサービスを変更した場合、そのサービスに対応するタスクコンポーネント８１０で送受信するメッセージと送受信プログラムだけでなく、その前のタスクコンポーネント８１０のメッセージ送信プログラム、後続のタスクコンポーネント８１０で送受信するメッセージとメッセージ送受信プログラムも修正しなければならない可能性がある。
例えば、図１においてタスク２コンポーネントを修正した場合、タスク２コンポーネントの中の要素だけでなく、メッセージｍｓｇ＿３＿４、メッセージ送信１プログラム、メッセージ受信３プログラム、メッセージ送信３プログラム、メッセージ受信４プログラムを修正しなければいけない可能性がある。
【００１７】
つまり、従来のＥＳＢでは、サービスの開発、修正に対するメッセージの設計、修正負荷が非常に高い。
【００１８】
次に、ＥＳＢにおいて、プロセスを制御する方法、すなわち、各サービスを業務フローに従った順序で実行する方法について説明する。
プロセスを制御する方法としては、非特許文献１のＰｒｏｃｅｓｓ  Ｍａｎａｇｅｒパターンがある。
Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｒパターンでは、プロセスを構成するサービスとは別にプロセス実行サービスというサービスを設け、プロセス実行サービスが各サービスを業務フローに従った順序に起動させる。特許文献１には、Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｒ型の制御を行うためのプロセス実行サービスをＥＳＢに追加したシステムについての記載がある。
【００１９】
図１では、ＰｒｏｃｅｓｓＭａｎａｇｅｒ型のプロセス制御を行う場合のＥＳＢについて示している。そのため、図１では、上記構成に加え、ビジネスプロセス実行コンポーネント８５０と、ビジネスプロセス定義８４０とが設けられている。
ビジネスプロセス実行コンポーネント８５０は、プロセスの実行を制御するプロセス実行サービスである。つまり、ビジネスプロセス実行コンポーネント８５０は、プロセスを構成するタスクコンポーネント８１０とは別に設けられたタスクコンポーネント８１０である。
ビジネスプロセス定義８４０は、ビジネスプロセス実行コンポーネント８５０が使用するプロセスの定義情報である。ビジネスプロセス定義８４０は、プロセスの実行順序を定義したプロセス定義８４１、メッセージの変数を定義したメッセージ変数定義８４２、メッセージのスキーマを定義したメッセージスキーマ定義８４３を備える。
【００２０】
図１に示すＥＳＢにおいてプロセスが実行される場合の動作を説明する。なお、以下の説明において、（１）から（８）の番号は、図１のルーティング定義８３０における番号と対応している。
まず、ビジネスプロセス実行コンポーネント８５０は、外部システム等からプロセスの実行メッセージを受信する。そして、ビジネスプロセス実行コンポーネント８５０は、メッセージルータ８２０を介してメッセージをタスク１コンポーネントへ送信する（１）。タスク１コンポーネントでは、サービス１を実行して、ルーティング定義８３０に従いメッセージｍｓｇ＿１＿２をメッセージルータ８２０を介してビジネスプロセス実行コンポーネント８５０へ送信する（２）。
次に、ビジネスプロセス実行コンポーネント８５０は、メッセージルータ８２０を介してメッセージｍｓｇ＿１＿２をタスク２コンポーネントへ送信する（３）。タスク２コンポーネントでは、サービス２を実行して、ルーティング定義８３０に従いメッセージｍｓｇ＿２＿３をメッセージルータ８２０を介してビジネスプロセス実行コンポーネント８５０へ送信する（４）。
次に、ビジネスプロセス実行コンポーネント８５０は、メッセージルータ８２０を介してメッセージｍｓｇ＿２＿３をタスク３コンポーネントへ送信する（５）。タスク３コンポーネントでは、サービス３を実行して、ルーティング定義８３０に従いメッセージｍｓｇ＿３＿４をメッセージルータ８２０を介してビジネスプロセス実行コンポーネント８５０へ送信する（６）。
次に、ビジネスプロセス実行コンポーネント８５０は、メッセージルータ８２０を介してメッセージｍｓｇ＿３＿４をタスク４コンポーネントへ送信する（７）。タスク４コンポーネントでは、サービス４を実行して、ルーティング定義８３０に従い外部システム等へ送信するメッセージをメッセージルータ８２０を介してビジネスプロセス実行コンポーネント８５０へ送信する（８）。
そして、ビジネスプロセス実行コンポーネント８５０は、外部システム等へ送信するメッセージを外部システム等へ送信する。
【００２１】
以上のように、ＰｒｏｃｅｓｓＭａｎａｇｅｒ型のプロセス制御を行う場合、プロセスに含まれるタスクコンポーネント８１０がｎ個（図１では４個）ある場合、メッセージルータ８２０を介してメッセージが送受信される回数は２ｎ回（図１では（１）から（８）の８回）となる。なお、外部システムとの通信もカウントするなら、メッセージルータ８２０を介してメッセージが送受信される回数は２回増え、２ｎ＋２回となるが、ここではカウントしていない。
つまり、ＰｒｏｃｅｓｓＭａｎａｇｅｒ型のプロセス制御では、ビジネスプロセス実行コンポーネント８５０を介してメッセージが送受信されるため、メッセージルータ８２０におけるメッセージの通信量が多くなる。つまり、メッセージルータ８２０にかかる負荷が大きい。
【００２２】
実施の形態１．
図２は、実施の形態１に係るＥＳＢサービス間自動連携装置１００（サービス連携装置）の構成図である。
【００２３】
まず、実施の形態１に係るＥＳＢサービス間自動連携装置１００の特徴を簡単に説明する。
ＥＳＢサービス間自動連携装置１００では、プロセスインスタンス１４３と呼ぶ記憶領域に記憶した変数を介して、タスクコンポーネント１４０間でデータ交換可能である。そのため、他のタスクコンポーネント１４０へ送信するメッセージには、渡したいデータを含める必要はなく、変数を記憶したプロセスインスタンス１４３を特定可能な情報（及びプロセス制御に必要な情報、プロセス全体で使用する情報）のみを送信すればよい。したがって、各タスクコンポーネント１４０におけるメッセージのスキーマ及びメッセージの送受信プログラムは、共通化することが可能であり、メッセージ設計、開発の負荷を小さくすることができる。
また、ＥＳＢサービス間自動連携装置１００では、各タスクコンポーネント１４０が、直接次に実行されるサービスを管理するタスクコンポーネント１４０へメッセージを送信する。したがって、メッセージルータ１５０におけるメッセージの通信量が少なくなる。
【００２４】
次に、実施の形態１に係るＥＳＢサービス間自動連携装置１００について詳細に説明する。
図２に示すように、ＥＳＢサービス間自動連携装置１００は、ＥＳＢコンテナ１１０、ＥＳＢ定義エディタ１２０、ＥＳＢ定義記憶部１３０を備える。
【００２５】
ＥＳＢコンテナ１１０は、処理装置により実行され、ＥＳＢ全体の制御を行うベースプログラムである。ＥＳＢコンテナ１１０には、タスクコンポーネント１４０、メッセージルータ１５０、変数基盤１６０（記憶装置操作部）、ＥＳＢ定義管理部１７０が配置される。メッセージルータ１５０は、従来と同様に、サービスが通信プロトコル等を意識せずに通信を行えるようにするためのメッセージバスである。
【００２６】
タスクコンポーネント１４０は、メッセージルータ８２０を介してメッセージを受信し、サービスを処理装置により実行する。図２では、タスク１，２，３の３つのタスクコンポーネント１４０を備える。また、各タスクコンポーネント１４０は、サービス実行部１４１と、タスク基盤１４２とを備える。
【００２７】
サービス実行部１４１は、割り当てられたサービスを処理装置により起動して実行する。つまり、タスク１のサービス実行部１４１であれば、割り当てられたサービス１を起動して実行する。同様に、タスク２のサービス実行部１４１であればサービス２を、タスク３のサービス実行部１４１であればサービス３を起動して実行する。
なお、サービス実行部１４１をサービスの実態と読み替えてもよい。つまり、タスク１であれば、サービス実行部１４１に代えサービス１を備え、タスク２であれば、サービス実行部１４１に代えサービス２を備え、タスク３であれば、サービス実行部１４１に代えサービス３を備えると読み替えてもよい。
【００２８】
タスク基盤１４２は、処理装置により実行され、サービス実行部１４１とメッセージルータ１５０とを連携する役割を果たす。なお、タスク基盤１４２は、後述するタスクパラメータ記憶部１４８が記憶する情報を除き、全てのタスクコンポーネント１４０で同一とすることができる。
図３は、タスク基盤１４２の説明図である。
図３に示すように、タスク基盤１４２は、インスタンス管理部１４４（記憶領域生成部）、共通メッセージ処理部１４５（メッセージ送信部）、サービス実行管理部１４６、タスクパラメータ解釈部１４７、タスクパラメータ記憶部１４８を備える。
【００２９】
インスタンス管理部１４４は、プロセスが実行される場合に、サービスで生成される情報を記憶するための変数を格納する記憶領域（プロセスインスタンス１４３）を記憶装置に生成（確保）するインスタンス初期化機能を有する。このプロセスインスタンス１４３に格納される変数には、サービスの内部でのみ使用される情報ではなく、情報を生成したサービス以外の他のサービスでも使用される情報が記憶される。つまり、このプロセスインスタンス１４３に格納される変数には、複数のサービス間で共有する情報が記憶される。すなわち、このプロセスインスタンス１４３に格納される変数には、従来、メッセージに含めてサービス間で送受信されていたサービスの実行結果が記憶される。また、このプロセスインスタンス１４３は、プロセスが実行される度に生成され、各プロセスインスタンス１４３には、インスタンス識別情報が割り当てられる。
また、インスタンス管理部１４４は、プロセスの実行が終了した場合等に、生成したプロセスインスタンス１４３を削除（解放）するインスタンス解放機能を有する。
【００３０】
共通メッセージ処理部１４５は、共通メッセージを用いて、他のタスクコンポーネント１４０と通信を行う。
共通メッセージ処理部１４５は、プロセス全体で使用する情報が格納される共通情報とプロセスインスタンス１４３のインスタンス識別情報とを含めた共通メッセージを生成する共通メッセージ生成機能を有する。また、共通メッセージ処理部１４５は、メッセージルータ１５０を介して受信した共通メッセージを解釈する共通メッセージ解釈機能と、メッセージルータ１５０を介して受信した共通メッセージを送受信する共通メッセージ通信機能とを有する。
【００３１】
サービス実行管理部１４６は、割り当てられたサービスの実行状態を管理する。つまり、サービス実行管理部１４６は、割り当てられたサービスが実行中であるか、実行が終了したか等を監視し、管理する。
【００３２】
タスクパラメータ解釈部１４７は、後述するタスクパラメータ記憶部１４８が記憶したタスクパラメータを解釈して、タスクパラメータに応じた処理を実行する。
【００３３】
タスクパラメータ記憶部１４８は、後述するＥＳＢ定義管理部１７０により、プロセスの実行前に、タスクコンポーネント１４０に関するタスクパラメータ（サービス名、初期化する変数グループ、メッセージの宛先等）を格納される。
【００３４】
図４は、変数基盤１６０の説明図である。
変数基盤１６０は、処理装置により実行され、タスクコンポーネント１４０からプロセスインスタンス１４３に記憶した変数へのアクセスを可能とする。
図４に示すように、変数基盤１６０は、変数ＡＰＩ１６１、変数マネージャ１６２、変数定義パラメータ記憶部１６３を備える。
【００３５】
変数ＡＰＩ１６１は、サービス等から呼び出し可能なＡＰＩである。
変数ＡＰＩ１６１は、変数グループを初期化する機能や変数グループを削除する機能を有する。変数グループとは、複数の変数をまとめたもので、変数の領域確保の単位である。また、変数ＡＰＩ１６１は、変数に格納された値を取得する変数取得機能や、変数に値を格納する変数更新機能を有する。また、後述する複合型の変数を用いる場合に使用される複合型指定機能を有する。
【００３６】
ここで、変数としては、文字列や整数といった単純型の他に、ツリー構造、ハッシュマップ構造、配列構造を組み合わせた複合型を扱う事が可能である。
変数ＡＰＩ１６１は、変数取得機能や変数更新機能を用いる場合、変数型が単純型であれば、変数グループ名と変数名とを指定して変数を指定する。また、変数型が複合型であれば、変数グループと、複合型の内部の入れ子要素、配列要素、ハッシュ型の要素を直接指定する複合型指定子とを指定して変数を指定する。複合型指定子を解釈するのが複合型指定機能である。
【００３７】
変数マネージャ１６２は、変数ＡＰＩ１６１から指示を受けて、プロセスインスタンス１４３に記憶された変数を操作する。
【００３８】
変数定義パラメータ記憶部１６３は、後述するＥＳＢ定義管理部１７０により、プロセスの実行前に、変数に関する変数定義パラメータ（グループ名、変数の有効範囲（スコープ）、変数名、変数型、初期値等）を格納される。
【００３９】
ＥＳＢ定義管理部１７０は、ＥＳＢコンテナ１１０が起動した時に、後述するＥＳＢ定義記憶部１３０に記憶されたデータを読み込んで、タスク基盤１４２のタスクパラメータ記憶部１４８と、変数基盤１６０の変数定義パラメータ記憶部１６３とに格納する。
【００４０】
ＥＳＢ定義エディタ１２０は、ＥＳＢコンテナ１１０に設定する定義情報を編集して、後述するＥＳＢ定義記憶部１３０に記憶する。ＥＳＢ定義エディタ１２０は、プロセス定義編集部１２１、変数定義編集部１２２、ＥＳＢ定義配置部１２３を備える。
プロセス定義編集部１２１は、後述するプロセス定義記憶部１３１が記憶するプロセス定義を編集する機能であり、プロセスにおけるタスクコンポーネント１４０の呼び出し順序（サービスの実行順序）と、各タスクコンポーネント１４０のタスクパラメータに設定される値とを編集する。
変数定義編集部１２２は、後述する変数定義記憶部１３２が記憶する変数定義を編集する機能であり、プロセスインスタンス１４３に記憶する変数を編集する。
ＥＳＢ定義配置部１２３は、プロセス定義編集部１２１と変数定義編集部１２２とが編集したデータをＥＳＢ定義記憶部１３０に記憶させる。
【００４１】
ＥＳＢ定義記憶部１３０は、ＥＳＢ定義エディタ１２０が編集したプロセス定義を記憶装置に記憶するプロセス定義記憶部１３１と、変数定義を記憶装置に記憶する変数定義記憶部１３２とを備える。
【００４２】
次に、ＥＳＢサービス間自動連携装置１００の動作について説明する。
図５は、外部システム２００からメッセージを受信してから、タスク１〜３で構成されるプロセスがどのように実行されるかを示した図である。なお、以下の説明において、（ｓ１）から（ｓ１０）の番号は、処理の流れを表し、図５における番号と対応している。
【００４３】
まず、前提として、ＥＳＢコンテナ１１０が起動した時に、ＥＳＢ定義記憶部１３０に記憶された定義情報を、ＥＳＢ定義管理部１７０が読み込み、タスクパラメータ記憶部１４８と変数定義パラメータ記憶部１６３とに設定される。
その結果、ここでは、タスク１のタスクパラメータ記憶部１４８には、メッセージの宛先としてタスク２が登録されている。タスク２のタスクパラメータ記憶部１４８には、メッセージの宛先としてタスク３が登録されている。タスク３のタスクパラメータ記憶部１４８には、メッセージの宛先としてプロセスの実行を指示した装置（ここでは、外部システム２００となる）が登録されている。また、プロセスの実行を指示する外部システム２００等からのメッセージの宛先として、タスク１がメッセージルータ１５０に設定されている。
さらに、タスク１のタスクパラメータ記憶部１４８には、初期化する変数グループとして、ｇｒｏｕｐ１が設定されている。
また、さらに、変数定義パラメータ記憶部１６３には、変数１と変数２とが設定されている。
【００４４】
（ｓ１）
外部システム２００からメッセージルータ１５０へ外部メッセージ１が入力される。入力された外部メッセージ１は、メッセージルータ１５０により、タスク１へ送信される。
【００４５】
（ｓ２）
タスク１のインスタンス管理部１４４は、プロセスインスタンス１４３を生成する。また、インスタンス管理部１４４は、生成したプロセスインスタンス１４３にインスタンス識別情報を付与する。
また、タスクパラメータ解釈部１４７は、タスクパラメータ記憶部１４８に初期化する変数グループとしてｇｒｏｕｐ１が設定されているため、変数ＡＰＩ１６１を呼び出し、変数マネージャ１６２を介して生成したプロセスインスタンス１４３にｇｒｏｕｐ１の領域を確保する。そして、確保したｇｒｏｕｐ１の領域に、変数グループｇｒｏｕｐ１の定義に従って、変数１＝“ａａａ”と、変数２＝“１”とを設定（初期化）する。
なお、タスクパラメータ解釈部１４７が変数ＡＰＩ１６１を呼び出す際、生成したプロセスインスタンス１４３のインスタンス識別情報を引数として与える。これにより、変数ＡＰＩ１６１及び変数マネージャ１６２では、プロセスインスタンス１４３を特定することができる。
【００４６】
（ｓ３）
タスク１のサービス実行部１４１は、（ｓ２）で生成したプロセスインスタンス１４３のインスタンス識別情報と外部メッセージ１とを引数として、サービス１を起動して実行する。サービス１は、変数ＡＰＩ１６１を呼び出し、（ｓ２）でプロセスインスタンス１４３に設定された変数を読み出し、処理が実行される。つまり、サービス１は、初期化された情報を参照して処理を実行する。また、サービス１は、変数ＡＰＩ１６１を呼び出し、サービス１で生成した情報を、プロセスインスタンス１４３に設定された変数へ格納する。
なお、変数ＡＰＩ１６１を呼び出す際、（ｓ２）で生成したプロセスインスタンス１４３のインスタンス識別情報を引数として与える。
【００４７】
（ｓ４）
タスク１のサービス実行管理部１４６により、サービス１が終了したことが確認されると、タスク１の共通メッセージ処理部１４５により共通メッセージ１が生成される。そして、共通メッセージ処理部１４５は、タスクパラメータ記憶部１４８に設定された宛先であるタスク２を宛先として設定して、共通メッセージ１をメッセージルータ１５０へ送信する。
なお、共通メッセージ１には、（ｓ２）で生成したプロセスインスタンス１４３のインスタンス識別情報が含まれる。
【００４８】
（ｓ５）
共通メッセージ１は、メッセージルータ１５０によりタスク２へルーティングされ、タスク２へ送信される。すると、タスク２の共通メッセージ処理部１４５は、共通メッセージ１を解釈して、共通メッセージ１に含まれたインスタンス識別情報を取得する。
【００４９】
（ｓ６）
タスク２のサービス実行部１４１は、（ｓ５）で取得したプロセスインスタンス１４３のインスタンス識別情報を引数として、サービス２を起動して実行する。サービス２は、変数ＡＰＩ１６１を呼び出し、サービス１でプロセスインスタンス１４３に設定された変数を読み出し、処理が実行される。つまり、サービス２は、サービス１で生成された情報を参照して処理を実行する。また、サービス２は、変数ＡＰＩ１６１を呼び出し、サービス２で生成した情報を、プロセスインスタンス１４３に設定された変数へ格納する。
なお、変数ＡＰＩ１６１を呼び出す際、（ｓ５）で取得したプロセスインスタンス１４３のインスタンス識別情報を引数として与える。
【００５０】
（ｓ７）
タスク２のサービス実行管理部１４６により、サービス２が終了したことが確認されると、タスク２の共通メッセージ処理部１４５により共通メッセージ２が生成される。そして、共通メッセージ処理部１４５は、タスクパラメータ記憶部１４８に設定された宛先であるタスク３を宛先として設定して、共通メッセージ２をメッセージルータ１５０へ送信する。
なお、共通メッセージ１には、（ｓ５）で取得したプロセスインスタンス１４３のインスタンス識別情報が含まれる。
【００５１】
（ｓ８）
共通メッセージ２は、メッセージルータ１５０によりタスク３へルーティングされ、タスク３へ送信される。すると、タスク３の共通メッセージ処理部１４５は、共通メッセージ２を解釈して、共通メッセージ２に含まれたインスタンス識別情報を取得する。
【００５２】
（ｓ９）
タスク３のサービス実行部１４１は、（ｓ８）で取得したプロセスインスタンス１４３のインスタンス識別情報を引数として与えて、サービス３を起動して実行する。サービス３では、変数ＡＰＩ１６１を呼び出し、サービス１，２でプロセスインスタンス１４３に設定された変数を読み出し、処理が実行される。つまり、サービス３では、サービス１，２で生成された情報を参照して処理を実行する。
なお、変数ＡＰＩ１６１を呼び出す際、（ｓ８）で取得したプロセスインスタンス１４３のインスタンス識別情報を引数として与える。
【００５３】
（ｓ１０）
タスク３のサービス実行管理部１４６により、サービス３が終了したことが確認されると、タスク３の共通メッセージ処理部１４５により、サービス３の結果等を含んだ外部メッセージ２が生成される。そして、共通メッセージ処理部１４５は、タスクパラメータ記憶部１４８に設定された宛先である外部システム２００を宛先として設定して、外部メッセージ２をメッセージルータ１５０へ送信する。
なお、インスタンス管理部１４４は、（ｓ２）で生成したプロセスインスタンス１４３と、変数グループｇｒｏｕｐ１を削除（解放）する。
【００５４】
そして、外部メッセージ２は、メッセージルータ１５０を介して外部システム２００へ送信される。
【００５５】
以上のように、ＥＳＢサービス間自動連携装置１００では、プロセスインスタンス１４３と呼ぶ記憶領域に記憶した変数を介して、タスクコンポーネント１４０間でデータ交換を行い、タスクコンポーネント１４０間で送受信するメッセージは、共通メッセージを用いる。これにより、各サービスで固有のメッセージ設計を行うことなく、サービス間でデータ交換が可能となる。したがって、メッセージ設計の負荷が小さくなる。
【００５６】
また、予めタスクコンポーネント１４０毎にプロセス定義に基づく宛先情報を設定することで、タスクコンポーネント１４０が直接次のタスクコンポーネント１４０を指定することが可能となる。そのため、メッセージルータ１５０におけるメッセージ通信は、タスクコンポーネント１４０間だけの通信となる。つまり、メッセージルータ１５０でメッセージを送受信する回数は（ｎ−１）回となる。したがって、メッセージルータ１５０におけるメッセージの通信量が少なくなる。
【００５７】
なお、以上の説明では、ＥＳＢサービス間自動連携装置１００を１つの装置として説明した。しかし、ＥＳＢサービス間自動連携装置１００は複数の装置から構成されていてもよい。
例えば、サービス実行部１４１が実行するサービスは、他の装置（サービス実行装置３００と呼ぶ）が備えていてもよい。つまり、サービス実行部１４１は、サービス実行装置３００が備えたサービスの起動を行うとしてもよい。
【００５８】
実施の形態２．
実施の形態１では、１つのＥＳＢコンテナ１１０において実行されるサービスにより構成されたプロセスを扱うＥＳＢサービス間自動連携装置１００について説明した。
実施の形態２では、あるＥＳＢコンテナ１１０において実行されるサービスと、前記あるＥＳＢコンテナ１１０とは異なるＥＳＢコンテナ１１０において実行されるサービスとにより構成されたプロセスを扱うＥＳＢサービス間自動連携装置１００について説明する。つまり、実施の形態２では、複数のＥＳＢコンテナ１１０を跨るプロセスを扱うＥＳＢサービス間自動連携装置１００について説明する。
なお、実施の形態２に係るＥＳＢサービス間自動連携装置１００について、実施の形態１に係るＥＳＢサービス間自動連携装置１００と異なる部分のみ説明する。
【００５９】
ここで、一般に、ＥＳＢコンテナ１１０は１つのコンピュータにおいて、１つだけ実行される。つまり、複数のＥＳＢコンテナ１１０を跨ぐプロセスとは、複数のコンピュータ（ＥＳＢサービス間自動連携装置１００）を跨ぐプロセスであると言い換えてもよい。すなわち、この実施の形態において、ＥＳＢサービス間自動連携装置１００は、ＥＳＢコンテナ１１０毎にＥＳＢサービス間自動連携装置１００を備えるＥＳＢサービス間自動連携システムであると考えてもよい。
【００６０】
図６は、実施の形態２に係るＥＳＢサービス間自動連携装置１００の構成図である。
図６では、コンテナ１とコンテナ２との２つのＥＳＢコンテナ１１０を跨るプロセスを扱うＥＳＢサービス間自動連携装置１００を示す。
また、ここでは、図６のプロセス定義記憶部１３１に記憶された情報が示すように、まずコンテナ１のタスク１が実行され、次にコンテナ２のタスク２とタスク３とが実行され、そしてコンテナ１のタスク４が実行されるプロセスについて説明する。つまり、ここでは、タスク１が終了した後に、コンテナ１がコンテナ２をリモートコンテナとして呼び出しタスク２とタスク３とを実行させて、その実行結果を取得し、タスク４を実行する例について説明する。
【００６１】
実施の形態２に係るＥＳＢサービス間自動連携装置１００のＥＳＢコンテナ１１０には、コンテナ間タスク自動挿入部１７１、コンテナ間通信タスク１８０が配置される。
【００６２】
コンテナ間通信タスク１８０は、処理装置により実行され、ＥＳＢコンテナ１１０間を連携させて動作させる。
コンテナ間通信タスク１８０は、リモートコンテナＣＡＬＬ送信タスク１８１、リモートコンテナＣＡＬＬ受信タスク１８２、リモートコンテナＲＥＴＵＲＮ送信タスク１８３、リモートコンテナＲＥＴＵＲＮ受信タスク１８４を備える。
リモートコンテナＣＡＬＬ送信タスク１８１は、他のＥＳＢコンテナ１１０に配置されたタスクコンポーネント１４０を呼び出す場合に実行されるコンテナ間変換取得サービスを備える。
リモートコンテナＣＡＬＬ受信タスク１８２は、リモートコンテナＣＡＬＬ送信タスク１８１から呼び出される場合に実行されるリモートコンテナ初期化サービスを備える。
リモートコンテナＲＥＴＵＲＮ送信タスク１８３は、呼び出し元のＥＳＢコンテナ１１０へ処理を返す場合に実行されるリモートコンテナ終了サービスを備える。
リモートコンテナＲＥＴＵＲＮ受信タスク１８４は、リモートコンテナＲＥＴＵＲＮ送信タスク１８３から処理が返される場合に実行されるコンテナ間変数展開サービスを備える。
ここで、コンテナ間変換取得サービスとリモートコンテナ終了サービスとが装置間連携情報送信サービスの一例であり、リモートコンテナ初期化サービスとコンテナ間変数展開サービスとが装置間連携情報受信サービスの一例である。
図６では、後述するＥＳＢコンテナ設定部１２４により、コンテナ１側には、リモートコンテナＣＡＬＬ送信タスク１８１とリモートコンテナＲＥＴＵＲＮ受信タスク１８４とが設定され、コンテナ２側には、リモートコンテナＣＡＬＬ受信タスク１８２とリモートコンテナＲＥＴＵＲＮ送信タスク１８３とが設定されている。
【００６３】
コンテナ間タスク自動挿入部１７１は、ＥＳＢ定義管理部１７０により起動され、プロセスの実行前に、コンテナ間通信タスク１８０に関するタスクパラメータをコンテナ間通信タスク１８０のタスクパラメータ記憶部１８５に格納する。
特に、コンテナ間タスク自動挿入部１７１は、コンテナ間通信タスク１８０を設定することにより、タスクコンポーネント１４０における共通メッセージの宛先を変更する。図６の例であれば、元々は、タスク１における共通メッセージの宛先はタスク２であり、タスク２における共通メッセージの宛先はタスク３であり、タスク３における共通メッセージの宛先はタスク４である。しかし、コンテナ間通信タスク１８０を設定することにより、タスク１における共通メッセージの宛先をリモートコンテナＣＡＬＬ送信タスク１８１とし、リモートコンテナＣＡＬＬ送信タスク１８１からリモートコンテナＣＡＬＬ受信タスク１８２へメッセージ（ＥＳＢ間連携ＣＡＬＬメッセージ）を送信し、リモートコンテナＣＡＬＬ受信タスク１８２からタスク２へ共通メッセージを送信するように変更する。また、タスク３における共通メッセージの宛先をリモートコンテナＲＥＴＵＲＮ送信タスク１８３とし、リモートコンテナＲＥＴＵＲＮ送信タスク１８３からリモートコンテナＲＥＴＵＲＮ受信タスク１８４へメッセージ（ＥＳＢ間連携ＲＥＴＵＲＮメッセージ）を送信し、リモートコンテナＲＥＴＵＲＮ受信タスク１８４からタスク４へ共通メッセージを送信するように変更する。
【００６４】
また、実施の形態２に係るＥＳＢ定義エディタ１２０は、ＥＳＢコンテナ設定部１２４（サービス追加部）を備える。
ＥＳＢコンテナ設定部１２４は、必要に応じて、ＥＳＢコンテナ１１０にコンテナ間通信タスク１８０を配置する。例えば、ＥＳＢコンテナ設定部１２４は、プロセス定義編集部１２１に設定されたプロセス定義に応じて、ＥＳＢコンテナ１１０にコンテナ間通信タスク１８０を設定する。
つまり、他のＥＳＢコンテナ１１０に配置されたタスクコンポーネント１４０を呼び出す側のＥＳＢコンテナ１１０には、リモートコンテナＣＡＬＬ送信タスク１８１とリモートコンテナＲＥＴＵＲＮ受信タスク１８４とを設定し、呼び出される側のＥＳＢコンテナ１１０には、リモートコンテナＣＡＬＬ受信タスク１８２とリモートコンテナＲＥＴＵＲＮ送信タスク１８３とを設定する。
その結果、上述したように、図６では、後述するＥＳＢコンテナ設定部１２４により、コンテナ１側には、リモートコンテナＣＡＬＬ送信タスク１８１とリモートコンテナＲＥＴＵＲＮ受信タスク１８４とが設定され、コンテナ２側には、リモートコンテナＣＡＬＬ受信タスク１８２とリモートコンテナＲＥＴＵＲＮ送信タスク１８３とが設定されている。
【００６５】
また、実施の形態２に係る変数基盤１６０は、コンテナ間変数同期部１６４を備える。
コンテナ間変数同期部１６４は、コンテナ間変換取得サービス、リモートコンテナ初期化サービス、リモートコンテナ終了サービス、コンテナ間変数展開サービスから呼び出され、変数の有効範囲としてコンテナ間を指定された変数を操作する。
【００６６】
実施の形態２に係る変数定義編集部１２２は、変数の有効範囲として、特定のコンテナだけで有効なコンテナ内と、複数のコンテナを跨って有効なコンテナ間とを選択的に設定する。
【００６７】
次に、ＥＳＢサービス間自動連携装置１００の動作について説明する。動作の説明において、コンテナ間通信タスク１８０の機能についても説明する。
図７は、外部システム２００からメッセージを受信してから、上述したタスク１〜４で構成されるプロセスがどのように実行されるかを示した図である。なお、以下の説明において、（ｔ１）から（ｔ２６）の番号は、処理の流れを表し、図７における番号と対応している。
【００６８】
まず、前提として、コンテナ１とコンテナ２とのＥＳＢコンテナ１１０が起動した時に、ＥＳＢコンテナ設定部１２４により、コンテナ１側のコンテナ間通信タスク１８０にリモートコンテナＣＡＬＬ送信タスク１８１とリモートコンテナＲＥＴＵＲＮ受信タスク１８４とが設定され、コンテナ２側のコンテナ間通信タスク１８０にリモートコンテナＣＡＬＬ受信タスク１８２とリモートコンテナＲＥＴＵＲＮ送信タスク１８３とが設定される。
また、ＥＳＢ定義記憶部１３０に記憶された定義情報を、ＥＳＢ定義管理部１７０が読み込み、タスクパラメータ記憶部１４８と変数定義パラメータ記憶部１６３とに設定される。さらに、コンテナ間タスク自動挿入部１７１により、タスクパラメータ記憶部１４８の情報が変更されるとともに、タスクパラメータ記憶部１８５に情報が設定される。
その結果、ここでは、タスク１のタスクパラメータ記憶部１４８には、メッセージの宛先としてリモートコンテナＣＡＬＬ送信タスク１８１が登録されている。リモートコンテナＣＡＬＬ送信タスク１８１のタスクパラメータ記憶部１８５には、メッセージの宛先としてリモートコンテナＣＡＬＬ受信タスク１８２が登録されている。リモートコンテナＣＡＬＬ受信タスク１８２のタスクパラメータ記憶部１８５には、メッセージの宛先としてタスク２が登録されている。タスク２のタスクパラメータ記憶部１４８には、メッセージの宛先としてタスク３が登録されている。タスク３のタスクパラメータ記憶部１４８には、メッセージの宛先としてリモートコンテナＲＥＴＵＲＮ送信タスク１８３が登録されている。リモートコンテナＲＥＴＵＲＮ送信タスク１８３のタスクパラメータ記憶部１８５には、メッセージの宛先としてリモートコンテナＲＥＴＵＲＮ受信タスク１８４が登録されている。リモートコンテナＲＥＴＵＲＮ受信タスク１８４のタスクパラメータ記憶部１８５には、メッセージの宛先としてタスク４が登録されている。また、プロセスの実行を指示する外部システム２００等からのメッセージの宛先として、タスク１がメッセージルータ１５０に設定されている。
さらに、タスク１のタスクパラメータ記憶部１４８には、初期化する変数グループとして、ｇｒｏｕｐ１とｇｒｏｕｐ２とが設定され、タスク２のタスクパラメータ記憶部１４８には、初期化する変数グループとして、ｇｒｏｕｐ３とが設定されている。なお、変数グループｇｒｏｕｐ１は、変数の有効範囲としてコンテナ間が指定されている。変数グループｇｒｏｕｐ２，３は、変数の有効範囲としてコンテナ内が指定されている。
【００６９】
（ｔ１）−（ｔ３）
外部メッセージ１がタスク１へ送信され、コンテナ１の記憶装置にプロセスインスタンス１４３が生成される。プロセスインスタンス１４３には、ｇｒｏｕｐ１とｇｒｏｕｐ２との領域が確保される。そして、サービス１が実行される。サービス１が終了すると、インスタンス識別情報が含まれた共通メッセージがリモートコンテナＣＡＬＬ送信タスク１８１を宛先として送信される。
【００７０】
（ｔ４）
共通メッセージがリモートコンテナＣＡＬＬ送信タスク１８１へ送信され、共通メッセージを解釈して、共通メッセージに含まれたインスタンス識別情報を取得する。
【００７１】
（ｔ５）
リモートコンテナＣＡＬＬ送信タスク１８１では、（ｔ４）で取得したプロセスインスタンス１４３のインスタンス識別情報を引数として、コンテナ間変数取得サービスを起動して実行する。コンテナ間変数取得サービスは、コンテナ間変数同期部１６４を呼び出し、変数の有効範囲がタスク間と指定された変数グループｇｒｏｕｐ１の変数データを読み出す。そして、コンテナ間変数取得サービスは、読み出した変数グループｇｒｏｕｐ１の変数データを含めたＥＳＢ間連携ＣＡＬＬメッセージを生成する。
【００７２】
（ｔ６）
リモートコンテナＣＡＬＬ送信タスク１８１では、コンテナ２のリモートコンテナＣＡＬＬ受信タスク１８２を宛先として、ＥＳＢ間連携ＣＡＬＬメッセージをメッセージルータ１へ送信する。
【００７３】
（ｔ７）
ＥＳＢ間連携ＣＡＬＬメッセージはコンテナ２のＥＳＢ間連携キュー１に記憶される。ＥＳＢ間連携ＣＡＬＬメッセージの処理順序が回ってくると、ＥＳＢ間連携ＣＡＬＬメッセージは、メッセージルータ２でルーティングされ、リモートコンテナＣＡＬＬ受信タスク１８２へ送信される。
【００７４】
（ｔ８）
リモートコンテナＣＡＬＬ受信タスク１８２では、ＥＳＢ間連携ＣＡＬＬメッセージに含まれる変数データを取得する。
【００７５】
（ｔ９）
リモートコンテナＣＡＬＬ受信タスク１８２では、（ｔ８）で取得した変数データを引数として、リモートコンテナ初期化サービスを起動して実行する。リモートコンテナ初期化サービスは、コンテナ２の記憶装置にプロセスインスタンス１４３を生成し、インスタンス識別情報を付与する。そして、リモートコンテナ初期化サービスは、コンテナ間変数同期部１６４を呼び出し、引数として与えられた変数データを記憶する領域を、生成したプロセスインスタンス１４３に確保して、変数データを格納する。つまり、変数グループｇｒｏｕｐ１を格納する領域を確保して、変数グループｇｒｏｕｐ１のデータを格納する。
【００７６】
（ｔ１０）
リモートコンテナＣＡＬＬ受信タスク１８２では、（ｔ９）で付与したインスタンス識別情報を含めた共通メッセージを生成して、タスク２を宛先としてメッセージルータ２へ送信する。
【００７７】
（ｔ１１）−（ｔ１６）
共通メッセージがタスク２へ送信され、共通メッセージからインスタンス情報が取得される。取得されたインスタンス情報に基づき、インスタンス管理部１４４によりプロセスインスタンス１４３に変数グループｇｒｏｕｐ３を格納する領域が確保され、初期化される。そして、共通メッセージから取得したインスタンス識別情報を引数として、サービス２が実行される。サービス２は、（ｔ９）で生成したプロセスインスタンス１４３に記憶された変数を参照して、処理を実行する。サービス２が終了すると、インスタンス識別情報が含まれた共通メッセージがタスク３を宛先として送信される。
共通メッセージがタスク３へ送信され、共通メッセージからインスタンス情報が取得される。そして、共通メッセージから取得したインスタンス識別情報を引数として、サービス３が実行される。サービス３は、プロセスインスタンス１４３に記憶された変数を参照して、処理を実行する。サービス３が終了すると、インスタンス識別情報が含まれた共通メッセージがリモートコンテナＲＥＴＵＲＮ送信タスク１８３を宛先として送信される。
【００７８】
（ｔ１７）
共通メッセージがリモートコンテナＲＥＴＵＲＮ送信タスク１８３へ送信され、共通メッセージを解釈して、共通メッセージに含まれたインスタンス識別情報を取得する。
【００７９】
（ｔ１８）
リモートコンテナＲＥＴＵＲＮ送信タスク１８３では、（ｔ１７）で取得したプロセスインスタンス１４３のインスタンス識別情報を引数として、リモートコンテナ終了サービスを起動して実行する。リモートコンテナ終了サービスは、コンテナ間変数同期部１６４を呼び出し、変数の有効範囲がタスク間と指定された変数グループｇｒｏｕｐ１の変数データを読み出す。そして、リモートコンテナ終了サービスは、読み出した変数グループｇｒｏｕｐ１の変数データを含めたＥＳＢ間連携ＲＥＴＵＲＮメッセージを生成する。
また、リモートコンテナ終了サービスは、（ｔ９）で生成したプロセスインスタンス１４３と、変数グループｇｒｏｕｐ１，３を削除する。
【００８０】
（ｔ１９）
リモートコンテナＲＥＴＵＲＮ送信タスク１８３では、コンテナ１のリモートコンテナＲＥＴＵＲＮ受信タスク１８４を宛先として、ＥＳＢ間連携ＲＥＴＵＲＮメッセージをメッセージルータ２へ送信する。
【００８１】
（ｔ２０）
ＥＳＢ間連携ＲＥＴＵＲＮメッセージはコンテナ１のＥＳＢ間連携キュー２に記憶される。ＥＳＢ間連携ＲＥＴＵＲＮメッセージの処理順序が回ってくると、ＥＳＢ間連携ＲＥＴＵＲＮメッセージは、メッセージルータ１でルーティングされ、リモートコンテナＲＥＴＵＲＮ受信タスク１８４へ送信される。
【００８２】
（ｔ２１）
リモートコンテナＲＥＴＵＲＮ受信タスク１８４では、ＥＳＢ間連携ＣＡＬＬメッセージに含まれる変数データを取得する。
【００８３】
（ｔ２２）
リモートコンテナＲＥＴＵＲＮ受信タスク１８４では、（ｔ２１）で取得した変数データを引数として、コンテナ間変数展開サービスを起動して実行する。コンテナ間変数展開サービスは、コンテナ間変数同期部１６４を呼び出し、引数として与えられた変数データをコンテナ１のプロセスインスタンス１４３に格納する。つまり、変数グループｇｒｏｕｐ１の変数の値を更新する。
【００８４】
（ｔ２３）
リモートコンテナＲＥＴＵＲＮ受信タスク１８４では、（ｔ１）で付与したインスタンス識別情報を含めた共通メッセージを生成して、タスク４を宛先としてメッセージルータ１へ送信する。
【００８５】
（ｔ２４）−（ｔ２６）
共通メッセージがタスク４へ送信され、共通メッセージからインスタンス情報が取得される。そして、共通メッセージから取得したインスタンス識別情報を引数として、サービス４が実行される。サービス４は、（ｔ１）で生成したプロセスインスタンス１４３に記憶された変数を参照して、処理を実行する。サービス３が終了すると、外部メッセージ２が外部システム２００を宛先として送信される。なお、プロセスインスタンス１４３と、変数グループｇｒｏｕｐ１，２は削除される。
【００８６】
以上のように、ＥＳＢコンテナ１１０を跨ぐプロセスを扱う場合、ＥＳＢコンテナ設定部１２４がコンテナ間通信タスク１８０を自動的に設定するとともに、コンテナ間タスク自動挿入部１７１が共通メッセージの宛先を自動的に変更する。これにより、変数の有効範囲がコンテナ間に指定されている変数を、他のＥＳＢコンテナ１１０においても使用可能となる。そのため、ＥＳＢコンテナ１１０を跨ぐプロセスを扱う場合であっても、各サービスで固有のメッセージ設計を行うことなく、サービス間でデータ交換が可能となり、メッセージ設計の負荷が小さくなる。
【００８７】
実施の形態３
実施の形態２では、複数のＥＳＢコンテナ１１０を跨るプロセスを扱うＥＳＢサービス間自動連携装置１００について説明した。特に、実施の形態２では、同一のリモートコンテナを１度だけ呼び出す場合のＥＳＢサービス間自動連携装置１００について説明した。
実施の形態３では、同一のリモートコンテナを複数回呼び出す場合のＥＳＢサービス間自動連携装置１００について説明する。
なお、実施の形態３に係るＥＳＢサービス間自動連携装置１００について、実施の形態２に係るＥＳＢサービス間自動連携装置１００と異なる部分のみ説明する。
【００８８】
図８は、実施の形態３に係るＥＳＢサービス間自動連携装置１００の構成図である。
図８では、コンテナ１とコンテナ２との２つのＥＳＢコンテナ１１０を跨るプロセスを扱うＥＳＢサービス間自動連携装置１００を示す。特に、図８では、プロセス定義記憶部１３１が記憶したプロセス定義が示すように、コンテナ１がコンテナ２をリモートコンテナとして２度呼び出す場合について説明する。
【００８９】
実施の形態３に係るＥＳＢサービス間自動連携装置１００のリモートコンテナＣＡＬＬ受信タスク１８２は、リモートコンテナ保留変数取得サービスを備える。
また、実施の形態３に係るＥＳＢサービス間自動連携装置１００のリモートコンテナＲＥＴＵＲＮ送信タスク１８３は、さらに、リモートコンテナ変数保留サービスを備える。
【００９０】
実施の形態３に係るプロセス定義編集部１２１は、タスクコンポーネント１４０毎に、処理が終了した後、変数の有効範囲がタスク内とされた変数グループを削除するか否かを指定する。
【００９１】
次に、ＥＳＢサービス間自動連携装置１００の動作について説明する。
図９は、外部システム２００からメッセージを受信してから、タスク１〜４で構成されるプロセスがどのように実行されるかを示した図である。なお、以下の説明において、（ｕ１）から（ｕ４５）の番号は、処理の流れを表し、図９における番号と対応している。
【００９２】
まず、前提として、図７に基づき実施の形態２で説明した場合と同様に設定される。但し、ここでは、タスク２の終了時には、変数グループｇｒｏｕｐ３の削除をしない設定とし、タスク４の終了時には、変数グループｇｒｏｕｐ３の削除をする設定とする。
【００９３】
（ｕ１）−（ｕ１４）
実施の形態２と同様に、タスク１、リモートコンテナＣＡＬＬ送信タスク１８１、リモートコンテナＣＡＬＬ受信タスク１８２、タスク２の順に処理が実行される。
なお、タスクパラメータとして、タスク２の終了時には変数グループｇｒｏｕｐ３の削除をしない設定になっているため、（ｕ１２）において、タスクパラメータ解釈部１４７は、変数ＡＰＩ１６１を呼び出して、プロセスインスタンス１４３に記憶された変数グループｇｒｏｕｐ３に変数保留フラグを設定する。
【００９４】
（ｕ１５）−（ｕ１７）
共通メッセージがリモートコンテナＲＥＴＵＲＮ送信タスク１８３へ送信され、読み出した変数グループｇｒｏｕｐ１の変数データを含めたＥＳＢ間連携ＲＥＴＵＲＮメッセージが生成される。そして、コンテナ１のリモートコンテナＲＥＴＵＲＮ受信タスク１８４を宛先として、ＥＳＢ間連携ＲＥＴＵＲＮメッセージがメッセージルータ２へ送信される。
この際、リモートコンテナ終了サービスは、変数グループｇｒｏｕｐ３に変数保留フラグが設定されているため、変数グループｇｒｏｕｐ３の削除を行わない。
【００９５】
（ｕ１８）−（ｕ３２）
リモートコンテナＲＥＴＵＲＮ受信タスク１８４、タスク３、リモートコンテナＣＡＬＬ送信タスク１８１、リモートコンテナＣＡＬＬ受信タスク１８２の順に処理が実行される。
【００９６】
（ｕ３３）−（ｕ３５）
共通メッセージがタスク４に送信され、サービス４が実行される。サービス４は、プロセスインスタンス１４３に記憶された変数を参照して、処理を実行する。ここで、プロセスインスタンス１４３には、サービス２で生成された値が変数グループｇｒｏｕｐ３の変数に格納されたまま残っている。したがって、サービス４では、変数グループｇｒｏｕｐ３の変数を参照することができる。
サービス４が終了すると、リモートコンテナＲＥＴＵＲＮ送信タスク１８３を宛先として、共通メッセージが送信される。
【００９７】
（ｕ３６）−（ｕ３８）
共通メッセージがリモートコンテナＲＥＴＵＲＮ送信タスク１８３へ送信され、読み出した変数グループｇｒｏｕｐ１の変数データを含めたＥＳＢ間連携ＲＥＴＵＲＮメッセージが生成される。そして、コンテナ１のリモートコンテナＲＥＴＵＲＮ受信タスク１８４を宛先として、ＥＳＢ間連携ＲＥＴＵＲＮメッセージがメッセージルータ２へ送信される。
この際、リモートコンテナ終了サービスは、変数グループｇｒｏｕｐ３に変数保留フラグが設定されていないため、変数グループｇｒｏｕｐ３の削除を行う。
【００９８】
（ｕ３９）−（ｕ４５）
リモートコンテナＲＥＴＵＲＮ受信タスク１８４、タスク５の順に処理が実行される。
【００９９】
以上のように、変数の有効範囲がコンテナ内を指定された変数グループについて、削除するタイミングを指定可能とすることにより、複数回呼び出されるリモートコンテナにおいて、前の呼び出しで生成した情報を次の呼び出しの時に参照することが可能となる。つまり、このような場合であっても、プロセスインスタンス１４３を介してデータ交換することができる。
【０１００】
以上をまとめると、以上の実施の形態に係るＥＳＢサービス間自動連携装置１００は、以下の手段を備えたＥＳＢサービス間の自動連携装置である。
（ａ）ＥＳＢの実行基盤であるＥＳＢコンテナ上で、一連のサービスを連携させるプロセスとして実行する際に、サービスとメッセージルータの間に配置して、サービスの実行を管理し、共通メッセージを使ってサービス同士を連携可能にする事により、サービス開発者がメッセージ（メッセージフォーマットや、メッセージ送受信タイミング）を意識せずにサービスを開発可能にするタスク基盤、
（ｂ）ＥＳＢコンテナでサービスをタスクとして連携させる順番や条件判断等の連携のフローを定義したプロセス定義、および、変数基盤が使用する変数定義からなる、ＥＳＢ定義を、サービス開発者が設定する事が可能なＥＳＢ定義エディタ、
（ｃ）ＥＳＢコンテナ起動時に、ＥＳＢ定義を読み込み、タスク基盤のタスクパラメータ、変数基盤の変数定義パラメータに設定し、ＥＳＢ定義を生成し、ＥＳＢコンテナに配置する、ＥＳＢ定義管理機能、
（ｄ）サービスの中から直接使用できる変数ＡＰＩ、
（ｅ）変数ＡＰＩからの要求により、タスク基盤がプロセスの実行単位の情報を保持するプロセスインスタンス上で、変数定義パラメータを元に、変数の管理（生成・変更・削除・取得）が可能な変数マネージャ、
（ｆ）変数ＡＰＩと変数マネージャを備える事により、サービスでアプリケーションとして連携させたい情報を、メッセージによらず、プロセスインスタンスにより分離された変数によりデータ交換できる事を特徴とした変数基盤。
【０１０１】
また、ＥＳＢサービス間自動連携装置１００は、ＥＳＢサービス間の自動連携装置に対して以下の手段を備える事により、ＥＳＢ間に跨るサービス間でも自動連携を可能にする装置である。
（ａ）ＥＳＢ定義エディタに対して、複数のＥＳＢコンテナに跨るプロセス記述可能にするために、タスクごとにどのＥＳＢコンテナで実行するかを指定するＥＳＢコンテナ設定機能を備え、複数のコンテナに跨るコンテナ間のスコープを設定可能な変数定義編集機能を備えた、ＥＳＢ定義エディタ、
（ｂ）ＥＳＢコンテナ起動時に、ＥＳＢ定義管理機能から呼び出されて、プロセス内のコンテナを跨るタスク遷移が必要な箇所に対して、コンテナ間でのデータ送受信を行うコンテナ間通信タスクを自動挿入する、コンテナ間タスク自動挿入機能、
（ｃ）変数基盤において、コンテナ間通信に伴い、スコープがコンテナ間に指定されている変数を連携先のコンテナとの間で同期させる、コンテナ間変数同期機能、
（ｄ）元のコンテナからリモートコンテナへの境界のタスク遷移において、コンテナ間通信を行う際の呼び出し元のコンテナに配置され、コンテナ間変数同期機能から、コンテナ間スコープの変数を取得するコンテナ間変数取得サービスを備え、連携用のＥＳＢ間連携ＣＡＬＬメッセージにより、相手コンテナに送信のための通信を行う、リモートコンテナＣＡＬＬ送信タスク、
（ｅ）元のコンテナからリモートコンテナへの境界のタスク遷移において、コンテナ間通信を行う際の呼び出し先のリモートコンテナに配置され、リモートコンテナ上のプロセスインスタンスを初期化して、リモートコンテナＣＡＬＬ送信タスクから送られたＥＳＢ間連携ＣＡＬＬメッセージを受信して、コンテナ間スコープの変数データを取り出し、リモートコンテナ上のプロセスインスタンスを初期化して、コンテナ間変数同期機能に伝えるリモートコンテナ初期化サービスを備え、リモートコンテナ上に配置されたタスクで、コンテナ間スコープのタスク変数を使用できるようにするリモートコンテナＣＡＬＬ受信タスク、
（ｆ）リモートコンテナから元のコンテナに戻る境界のタスク遷移において、コンテナ間通信を行う際のリモートコンテナに配置され、コンテナ間変数同期機能から、コンテナ間スコープの変数を取得して、連携用のＥＳＢ間連携ＲＥＴＵＲＮメッセージを生成し、リモートコンテナ上のプロセスインスタンスを削除するリモートコンテナ終了サービスを備え、連携用のＥＳＢ間連携ＣＡＬＬメッセージにより、相手コンテナに送信のための通信を行う、リモートコンテナＲＥＴＵＲＮ送信タスク、
（ｇ）リモートコンテナから元のコンテナに戻る境界のタスク遷移において、コンテナ間通信を行う際の元のコンテナに配置され、リモートコンテナＲＥＴＵＲＮ送信タスクから送られたＥＳＢ間連携ＲＥＴＵＲＮメッセージを受信して、コンテナ間スコープの変数データを取り出し、コンテナ間変数同期機能に伝えるコンテナ間変数展開サービスを備え、リモートコンテナ上で変更されたコンテナ間スコープの変数の修正を反映してその後のタスクで使用可能にする、リモートコンテナＲＥＴＵＲＮ受信タスク。
【０１０２】
また、ＥＳＢサービス間自動連携装置１００は、ＥＳＢサービス間の自動連携装置に対して以下の手段を備えた装置である。
（ａ）リモートコンテナＲＥＴＲＵＮ送信タスクにおいて、元のコンテナに戻る際にコンテナ内スコープの変数を削除せず保留する事により、再びリモートコンテナが呼び出された際に、以前のリモートコンテナ上で実行されたタスクによる変数変更の結果を取得できるようにする、リモートコンテナ変数保留サービス、
（ｂ）リモートコンテナＣＡＬＬ受信タスクにおいて、リモートコンテナ変数保留サービスにより保留されているコンテナ内スコープの変数を取得する、リモートコンテナ保留変数取得サービス。
【０１０３】
次に、以上の実施の形態におけるＥＳＢサービス間自動連携装置１００及びサービス実行装置３００のハードウェア構成について説明する。
図１０は、ＥＳＢサービス間自動連携装置１００及びサービス実行装置３００のハードウェア構成の一例を示す図である。
図１０に示すように、ＥＳＢサービス間自動連携装置１００及びサービス実行装置３００は、プログラムを実行するＣＰＵ９１１（中央処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０（固定ディスク装置）の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置９２０は、所定の固定ディスクインタフェースを介して接続される。
【０１０４】
ＲＯＭ９１３、磁気ディスク装置９２０は、不揮発性メモリの一例である。ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３とＲＡＭ９１４と磁気ディスク装置９２０とは、メモリ（記憶装置）の一例である。
【０１０５】
磁気ディスク装置９２０又はＲＯＭ９１３などには、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【０１０６】
プログラム群９２３には、上記の説明において「ＥＳＢコンテナ１１０」、「ＥＳＢ定義エディタ１２０」、「ＥＳＢ定義記憶部１３０」、「タスクコンポーネント１４０」、「メッセージルータ１５０」、「変数基盤１６０」、「ＥＳＢ定義管理部１７０」、「コンテナ間通信タスク１８０」、「サービス」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、上記の説明において「タスクパラメータ」、「変数定義パラメータ」、「共通メッセージ」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵ９１１の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵ９１１の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【０１０７】
なお、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、その他光ディスク等の記録媒体やＩＣチップに記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「ＥＳＢコンテナ１１０」、「ＥＳＢ定義エディタ１２０」、「ＥＳＢ定義記憶部１３０」、「タスクコンポーネント１４０」、「メッセージルータ１５０」、「変数基盤１６０」、「ＥＳＢ定義管理部１７０」、「コンテナ間通信タスク１８０」、「サービス」等として説明したものは、「回路」、「装置」、「機器」、「手段」、「機能」として実現されてもよい。すなわち、「ＥＳＢコンテナ１１０」、「ＥＳＢ定義エディタ１２０」、「ＥＳＢ定義記憶部１３０」、「タスクコンポーネント１４０」、「メッセージルータ１５０」、「変数基盤１６０」、「ＥＳＢ定義管理部１７０」、「コンテナ間通信タスク１８０」、「サービス」等として説明したものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ＲＯＭ９１３等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。
【符号の説明】
【０１０８】
１００  ＥＳＢサービス間自動連携装置、１１０  ＥＳＢコンテナ、１２０  ＥＳＢ定義エディタ、１２１  プロセス定義編集部、１２２  変数定義編集部、１２３  ＥＳＢ定義配置部、１２４  ＥＳＢコンテナ設定部、１３０  ＥＳＢ定義記憶部、１３１  プロセス定義記憶部、１３２  変数定義記憶部、１４０  タスクコンポーネント、１４１  サービス実行部、１４２  タスク基盤、１４３  プロセスインスタンス、１４４  インスタンス管理部、１４５  共通メッセージ処理部、１４６  サービス実行管理部、１４７  タスクパラメータ解釈部、１４８  タスクパラメータ記憶部、１５０  メッセージルータ、１６０  変数基盤、１６１  変数ＡＰＩ、１６２  変数マネージャ、１６３  変数定義パラメータ記憶部、１６４  コンテナ間変数同期部、１７０  ＥＳＢ定義管理部、１７１  コンテナ間タスク自動挿入部、１８０  コンテナ間通信タスク、１８１  リモートコンテナＣＡＬＬ送信タスク、１８２  リモートコンテナＣＡＬＬ受信タスク、１８３  リモートコンテナＲＥＴＵＲＮ送信タスク、１８４  リモートコンテナＲＥＴＵＲＮ受信タスク、１８５  タスクパラメータ記憶部、２００  外部システム、８００  ＥＳＢコンテナ、８１０  タスクコンポーネント、８２０  メッセージルータ、８３０  ルーティング定義、８４０  ビジネスプロセス定義、８４１  プロセス定義、８４２  メッセージ変数定義、８４３  メッセージスキーマ定義、８５０  ビジネスプロセス実行コンポーネント。
【図１】
2011034392.tif 000003
【図２】
2011034392.tif 000004
【図３】
2011034392.tif 000005
【図４】
2011034392.tif 000006
【図５】
2011034392.tif 000007
【図６】
2011034392.tif 000008
【図７】
2011034392.tif 000009
【図８】
2011034392.tif 000010
【図９】
2011034392.tif 000011
【図１０】
2011034392.tif 000012