(57)【要約】【課題】複数のデータを一括で処理した結果から任意のデータの処理結果を識別できるようにする。【解決手段】情報処理装置１０は、付与手段１２と処理手段１３とを有する。付与手段１２は、実行すべき一連の複数処理が同一である複数のデータ１ａ〜１ｄそれぞれに識別情報を付与する。処理手段１３は、識別情報が付与された複数のデータ２ａ〜２ｄの一括処理を行う。そして処理手段１３は、識別情報に基づいて、一括処理の結果に含まれる特定のデータを識別する。【選択図】図１
2014199544.tif 000002
【特許請求の範囲】
【請求項１】
実行すべき一連の複数処理が同一である複数のデータそれぞれに識別情報を付与する付与手段と、
識別情報が付与された複数のデータの一括処理を行い、識別情報に基づいて、一括処理の結果に含まれる特定のデータを識別する処理手段と、
を有する情報処理装置。
【請求項２】
前記処理手段は、識別情報が付与された複数のデータに対して実行すべき複数の処理それぞれについて、一括処理が可能か否かが定義された定義情報を参照し、一括処理が可能な処理の実行前に、識別情報が付与された複数のデータが結合されていなければ、識別情報が付与された複数のデータを結合して、結合されたデータ列の一括処理を行い、一括処理ができない処理の実行前に、識別情報が付与された複数のデータが結合されていれば、識別情報に基づいて、該複数のデータが結合されたデータ列をデータ別に分離して、データごとに処理を行うことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記付与手段は、識別情報が付与された複数のデータを記憶手段に格納し、
前記処理手段は、複数のデータの一括処理の結果から、エラーが発生したデータの識別情報を取得し、該識別情報に対応するデータを前記記憶手段から抽出し、抽出した該データについて、処理を再実行することを特徴とする請求項１または２記載の情報処理装置。
【請求項４】
前記処理手段は、識別情報については処理対象から除外することを特徴する請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
前記処理手段は、識別情報が付与された複数のデータを一括処理する場合、識別情報を設定したヘッダとデータを設定したペイロードとの組を生成し、ペイロードの内容を処理対象として一括処理を実行することを特徴とする請求項４記載の情報処理装置。
【請求項６】
情報処理装置が、
実行すべき一連の複数処理が同一である複数のデータそれぞれに識別情報を付与し、
識別情報が付与された複数のデータの一括処理を行い、
識別情報に基づいて、一括処理の結果に含まれる特定のデータを識別する、
データ処理方法。
【請求項７】
情報処理装置に、
実行すべき一連の複数処理が同一である複数のデータそれぞれに識別情報を付与し、
識別情報が付与された複数のデータの一括処理を行い、
識別情報に基づいて、一括処理の結果に含まれる特定のデータを識別する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータに同じ処理を施す情報処理装置、データ処理方法、およびプログラムに関する。
【背景技術】
【０００２】
様々なサービスを利用した処理の実行を容易にする技術として、例えばＥＳＢ（Enterprise Service Bus）がある。ＥＳＢは、サービス間で受け渡されるメッセージのデータ形式を変換する機能、適切な送信先にメッセージを転送する機能（ルーティング）、サービスの呼出機能などを備えている。これらの機能は、メディエーション機能と呼ばれる。ＥＳＢでは、転送するメッセージに応じたメディエーション機能が実行される。
【０００３】
ＥＳＢにおけるメディエーション機能の実行制御は、リアルタイム制御を基本としている。そのため、ＥＳＢでは、メッセージが１件ずつ処理される。ＥＳＢに処理対象の複数のデータがひとかたまりで入力された場合、例えばＥＳＢの入口において、データごとのメッセージに分けられる。そしてＥＳＢは、個々のメッセージに対して、メディエーション機能をシーケンシャルに実行する。
【０００４】
なおＥＳＢに関する技術としては、例えば、同じ処理内容のサービスが複数ある場合にも、それぞれのサービスを意識することなく、最適なサービスを利用することができるようにする技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１６９７９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のＥＳＢはリアルタイム制御を基本としているため、複数のデータに対して同じ処理を実行する場合の処理効率が良くない。例えば、リアルタイム制御では、複数のデータそれぞれに対応するメッセージごとに処理を実行する。そのため複数のデータに対して実行する処理が同じであっても、データごとに処理の起動・停止が行われ、処理が非効率的である。
【０００７】
ここで、複数のデータをひとかたまりにして一括処理することも考えられる。しかし、複数のデータをひとかたまりにして一括で処理してしまうと、その処理結果もひとかたまりとなり、全体の処理結果から任意のデータの処理結果を識別することが困難となる。この問題は、ＥＳＢに限らず、複数のデータを纏めて一括で処理する際に、同様に発生する。
【０００８】
１つの側面では、本発明は、複数のデータを一括で処理した結果から任意のデータの処理結果を識別できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、付与手段と処理手段とを有する情報処理装置が提供される。付与手段は、実行すべき一連の複数処理が同一である複数のデータそれぞれに識別情報を付与する。処理手段は、識別情報が付与された複数のデータの一括処理を行う。そして処理手段は、識別情報に基づいて、一括処理の結果に含まれる特定のデータを識別する。
【発明の効果】
【００１０】
１側面によれば、複数のデータを一括で処理した結果から任意のデータの処理結果を識別できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係る情報処理装置の機能の一例を示す図である。
【図２】第２の実施の形態のシステム構成例を示す図である。
【図３】第２の実施の形態に用いるサーバのハードウェアの一構成例を示す図である。
【図４】ＥＳＢによる処理の実行例を示す図である。
【図５】第２の実施の形態の機能の一例を示すブロック図である。
【図６】シーケンス定義の一例を示す図である。
【図７】メディエーション機能定義の一例を示す図である。
【図８】メッセージ格納処理の手順の一例を示す図である。
【図９】メッセージ記憶部に格納されたメッセージの一例を示す図である。
【図１０】メッセージ仲介処理の一例を示す図である。
【図１１】メッセージ仲介処理の手順の一例を示すフローチャートである。
【図１２】ＥＳＢにおける処理の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。第１の実施の形態は、同じ処理を実行する複数のデータそれぞれに識別情報を付与し、その後、複数のデータを一括で処理することで、一括処理の処理結果から任意のデータを識別できるようにするものである。
【００１３】
図１は、第１の実施の形態に係る情報処理装置の機能の一例を示す図である。情報処理装置１０は、定義情報に基づいて処理を実行するために、記憶手段１１、付与手段１２、および処理手段１３を有する。
【００１４】
記憶手段１１は、定義情報１１ａを格納する。定義情報１１ａには、第１〜第４の処理１３ａ〜１３ｄの実行手順と、第１〜第４の処理１３ａ〜１３ｄにおいて複数のデータの一括処理が可能かどうかが定義されている。
【００１５】
付与手段１２は、実行すべき一連の複数処理が同一である複数のデータ１ａ〜１ｄそれぞれに識別情報を付与する。例えば付与手段１２は、１つのファイルに含まれる複数のデータを、実行すべき一連の複数の処理が同一の複数のデータに決定する。そして付与手段１２は、ファイル内の複数のデータそれぞれに識別情報を付与する。付与手段１２は、識別情報が付与された複数のデータ２ａ〜２ｄを処理手段１３に送信する。なお付与手段１２は、識別情報が付与された複数のデータ２ａ〜２ｄを、一時的に記憶手段１１に格納してもよい。
【００１６】
処理手段１３は、識別情報が付与された複数のデータ２ａ〜２ｄの一括処理を行い、識別情報に基づいて、一括処理の結果に含まれる特定のデータを識別する。例えば処理手段１３は、識別情報が付与された複数のデータ２ａ〜２ｄを結合し、データ列３を生成する。そして処理手段１３は、生成したデータ列３を処理対象として、一括で処理を実行する。
【００１７】
なお処理手段１３は、一括処理を行うとき、識別情報については処理対象から除外することができる。識別情報については処理対象から除外する手法として、処理手段１３は、例えば、識別情報が付与された複数のデータ２ａ〜２ｄを結合する際に、識別情報を設定したヘッダとデータを設定したペイロードとの組を生成する。そして処理手段１３は、ペイロードの内容を処理対象として一括処理を実行する。
【００１８】
一括処理の結果に含まれる特定のデータの識別は、例えば、複数のデータを一括処理できない場合に行われる。例えば処理手段１３は、定義情報１１ａを参照し、第１〜第４の処理１３ａ〜１３ｄで一括処理が可能か否かを判断する。そして処理手段１３は、一括処理が可能な第１・第２・第４の処理１３ａ，１３ｂ，１３ｄの実行前に、識別情報が付与された複数のデータが結合されていなければ、識別情報が付与された複数のデータを結合する。そして処理手段１３は、結合されたデータ列３の一括処理を行う。また処理手段１３は、一括処理ができない第３の処理１３ｃの実行前に、識別情報が付与された複数のデータが結合されていれば、識別情報に基づいて、複数のデータそれぞれを識別し、結合されたデータ列３をデータ別に分離する。そして処理手段１３は、データごとに処理を行う。
【００１９】
このような情報処理装置１０によれば、同じ処理を実行する複数のデータ１ａ，１ｂ，１ｃ，１ｄが入力されると、付与手段１２により、各データに識別情報が付与される。そして識別情報付きの複数のデータ２ａ〜２ｄが、処理手段１３に渡される。
【００２０】
処理手段１３では、例えば定義情報１１ａに示される処理手順に沿って、複数のデータ２ａ〜２ｄに対して処理が実行される。図１に示す定義情報１１ａによると、最初に実行する第１の処理１３ａは、複数のデータの一括処理が可能である。そこで処理手段１３は、識別情報が付与された複数のデータ２ａ〜２ｄを結合し、データ列３を生成する。データ列３では、例えば識別情報とデータとが交互に並べられている。そして処理手段１３は、データ列３に対して第１の処理１３ａを実行する。すると第１の処理１３ａの処理結果を示すデータ列４が得られる。
【００２１】
定義情報１１ａによれば、次に実行する第２の処理１３ｂは、複数のデータの一括処理が可能である。そこで処理手段１３は、第１の処理１３ａの処理結果のデータ列４をそのまま処理対象とし、データ列４に対して、第２の処理１３ｂを実行する。すると第２の処理１３ｂの処理結果を示すデータ列５が得られる。
【００２２】
定義情報１１ａによれば、次に実行する第３の処理１３ｃは、複数のデータを一括処理することができない。そこで処理手段１３は、第２の処理１３ｂの処理結果のデータ列５を、データ６ａ〜６ｄ別に分離する。そして処理手段１３は、識別情報が付与されたデータ６ａ〜６ｄそれぞれを処理対象として、個別に第３の処理１３ｃを行う。するとデータ６ａ〜６ｄごとに、第３の処理１３ｃの処理結果のデータ７ａ〜７ｄが得られる。
【００２３】
定義情報１１ａによれば、最後に実行する第４の処理１３ｄは、複数のデータの一括処理が可能である。そこで処理手段１３は、第３の処理１３ｃの処理結果として得られた、識別情報が付与された複数のデータ７ａ，７ｂ，７ｃ，７ｄを結合し、再度データ列８を生成する。そして処理手段１３は、結合により得られたデータ列８に対して第４の処理１３ｄを実行する。すると、第４の処理１３ｄの処理結果を示すデータ列９が得られる。
【００２４】
ここで、第１〜第４の処理１３ａ〜１３ｄでは、識別情報は処理対象から除外され、データのみが処理される。その結果、第１〜第４の処理１３ａ〜１３ｄの処理結果では、データの内容のみが更新されている。例えば識別情報（ＩＤ）が「１」のデータは、「Ａ０」、「Ａ１」、「Ａ２」、「Ａ３」、「Ａ４」と、処理が行われるごとに更新されている。データの内容が更新されても、そのデータに付与された識別情報は維持されている。そのため、識別情報に基づいて、処理結果から特定のデータを識別することができる。各データの識別により、例えばデータ列をデータ別に分離することが可能となっている。
【００２５】
また、一括処理の結果に含まれる特定のデータの識別を、例えば、エラーが発生した場合に行うこともできる。この場合、例えば処理手段１３は、結合により得られたデータ列に対する一括処理の結果から、エラーが発生したデータの識別情報を取得する。そして処理手段１３は、取得した識別情報に対応するデータについて、処理を再実行する。この場合、例えば付与手段１２は、処理前の複数のデータ２ａ〜２ｄを記憶手段１１に格納しておく。そして処理手段１３は、エラーが発生したデータを記憶手段１１から取得して、処理の再実行（リトライ）を行う。
【００２６】
このように、第１の実施の形態によれば、複数のデータを一括で処理しても、識別情報に基づいて、処理結果から特定のデータの処理結果を識別できる。その結果、例えば、実行する複数の処理のうち、一部の処理で一括処理ができない場合、その処理を実行する場合にのみ、データ別に分離して処理を行うことができる。これにより、一部の処理で一括処理ができない場合であっても、一括処理が可能な処理については、複数のデータの一括処理を行うことができ、効率的な処理が可能となる。その結果、情報処理装置１０の資源の有効活用ができ、単位時間当たりの処理件数も増加する。
【００２７】
さらに、一括処理によりエラーが発生した場合にも、識別情報に基づいてエラーとなったデータを特定し、そのデータのみ処理を再実行することができる。その結果、エラー発生時のリトライ処理を効率的に行うことができる。
【００２８】
なお、付与手段１２および処理手段１３は、例えば情報処理装置１０が有するプロセッサにより実現することができる。記憶手段１１は、例えば情報処理装置１０が有するメモリまたはストレージ装置により実現することができる。また、図１に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
【００２９】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、ＥＳＢにより、入力されたメッセージを処理するものである。
【００３０】
近年、リアルタイムの業務連携に加えて、バッチ処理型の既存業務をＥＳＢで繋げる形態が増加してきている。バッチ処理型ではファイルを入出力としたデータ受け渡しが混在することが多くなり、従来のリアルタイム制御方式における以下の課題が顕著化してきている。
【００３１】
バッチ処理で入出力されるファイルには、複数のレコードが含まれる。複数レコードの処理において、リアルタイム処理のように、レコードのごとのメッセージを１件ずつ処理したのでは、メディエーション機能による処理を効率的に行うことができない。ここで、複数のメッセージを結合し、複数のレコードを１つのかたまりとして処理を行うことも考えられる。複数のレコードを１つのかたまりで処理すれば、メディエーション機能の前処理や後処理でのオーバーヘッドを減らすことができる。例えば、１レコードごとに処理した場合、前処理や後処理のプロセスをレコードごとに起動・停止させることになるのに対し、複数のレコードを１つのかたまりで処理すれば、前処理や後処理のプロセスの起動・停止が１回ずつで済む。
【００３２】
しかし、複数のレコードを１つのかたまりとして処理を行うと、元のメッセージ間の区切りがわからなくなってしまう。すると、例えば処理がエラーとなった場合に、エラーとなったレコードが特定できず、複数のレコード全体を再度処理することとなり、かえって処理効率が悪くなってしまう。
【００３３】
そこで第２の実施の形態では、ＥＳＢにおいて同じ処理を実行するレコードを一括して処理する際に、事前に、各レコードに識別情報を付与するようにする。これにより、一括処理の処理結果から、各レコードが識別可能となる。
【００３４】
図２は、第２の実施の形態のシステム構成例を示す図である。複数のサーバ１００，２００，・・・がネットワーク２０を介して接続されている。例えばサーバ１００は、ＥＳＢにより、複数のサービスを統合した処理を実行することができる。また、例えばサーバ２００は、サーバ１００のＥＳＢからの呼出に応じて、サービスを提供することができる。
【００３５】
図３は、第２の実施の形態に用いるサーバのハードウェアの一構成例を示す図である。サーバ１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１の機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００３６】
メモリ１０２は、サーバ１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００３７】
バス１０９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８がある。
【００３８】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、サーバ１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置を使用することもできる。
【００３９】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００４０】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なおマウス２３はポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４１】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００４２】
機器接続インタフェース１０７は、サーバ１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００４３】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４４】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した装置も、図３に示したサーバ１００と同様のハードウェアにより実現することができる。
【００４５】
サーバ１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。サーバ１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、サーバ１００に実行させるプログラムをＨＤＤ１０３に格納しておくことができる。プロセッサ１０１は、ＨＤＤ１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。またサーバ１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ＨＤＤ１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４６】
図４は、ＥＳＢによる処理の実行例を示す図である。サーバ１００は、入力されたメッセージ３１に対してＥＳＢ１１０により処理を実行し、処理結果のメッセージ３２を出力する。ＥＳＢ１１０では、例えば処理の手順（シーケンス）が予め定義されており、メッセージ３１を、そのシーケンスに沿って実行する。シーケンスには、メディエーション機能（メディエータファンクション）として、ＥＳＢ１１０内部で実行する処理や、他のサービスの呼出処理がある。他のサービスの呼出処理には、サーバ１００内のサービス提供部１２０で提供される、ローカルのサービスを呼び出す処理や、外部のサーバ２００内のサービス提供部２１０で提供される、リモートのサービスを呼び出す処理がある。
【００４７】
なおサーバ１００，２００のサービス提供部１２０，２１０は、例えばアプリケーションソフトウェアをサーバ１００，２００が実行することで実現される処理機能である。
図４の例では、シーケンスの最初のステップ（ステップ＃１）には、ＥＳＢ１１０内で実行する処理が定義されている。そのため、メッセージ３１が入力されると、そのメッセージ３１は、まずＥＳＢ１１０が有する機能で処理が実行される。
【００４８】
次のステップ（ステップ＃２）は、サーバ１００で提供されているサービス提供部１２０を用いた処理（ローカルサービス呼出）である。そこでＥＳＢ１１０は、サービス提供部１２０を呼び出し、最初のステップ（ステップ＃１）の処理の実行結果を処理対象として渡す。するとサーバ１００でサービス提供部１２０の処理が実行され、処理結果がＥＳＢ１１０に返される。
【００４９】
次のステップ（ステップ＃３）は、サーバ２００で提供されているサービス提供部２１０を用いた処理（リモートサービス呼出）である。そこでＥＳＢ１１０は、サーバ２００内のサービス提供部２１０を呼び出し、２番目のステップ（ステップ＃２）の処理の実行結果を処理対象として渡す。するとサーバ２００でサービス提供部２１０の処理が実行され、処理結果がＥＳＢ１１０に返される。
【００５０】
ＥＳＢ１１０は、シーケンスに定義されたすべてを処理した結果を、メッセージ３２として出力する。
第２の実施の形態では、このようなＥＳＢ１１０において、複数のレコードを一括処理できる。しかも一括処理した結果から、任意のレコードの処理結果を、容易に抽出可能とする。これにより、例えばシーケンスの中に、複数のレコードを一括処理できないサービス提供部を利用した処理が含まれていた場合、そのサービス提供部の利用時のみ、１レコードずつの複数のメッセージを、そのサービス提供部に実行させることができる。
【００５１】
図５は、第２の実施の形態の機能の一例を示すブロック図である。サーバ１００は、ＥＳＢ１１０、複数のサービス提供部１２０，１２１，・・・、およびサービス利用部１３０を有している。またサーバ２００は、複数のサービス提供部２１０，２１１，・・・を有している。
【００５２】
サーバ１００のサービス提供部１２０，１２１，・・・は、ＥＳＢ１１０からの呼出に応じてメッセージに対する処理を実行し、処理結果をＥＳＢ１１０に応答する。同様にサーバ２００のサービス提供部２１０，２１１，・・・は、ＥＳＢ１１０からの呼出に応じてメッセージに対する処理を実行し、処理結果をＥＳＢ１１０に応答する。これらのサービス提供部には、複数のレコードを一括で処理できるものと、１レコードずつしか処理できないものとがある。例えばサーバ１００内のサービス提供部１２０，１２１，・・・であれば、サーバ１００の管理者が、複数のレコードを一括で処理できるように改良しておくことができる。ところが、ネットワーク２０を介して接続されているサーバ２００が、サーバ１００の管理者の管理下にないことがある。この場合、サーバ２００内のサービス提供部２１０，２１１，・・・が、１レコードずつしか処理できない場合、サーバ１００から、１レコードずつを処理対象とした呼出を行うこととなる。
【００５３】
サービス利用部１３０は、ＥＳＢ１１０に処理させるメッセージを、ＥＳＢ１１０に対して出力する。メッセージは、例えば、処理対象として例えば１つのレコードのみを含む。サービス利用部１３０は、ＥＳＢ１１０に、複数のレコードを含むファイルを出力し、そのファイル内のレコードに対する処理をＥＳＢ１１０に要求することもできる。なおサービス利用部１３０は、メッセージをＥＳＢ１１０に出力する際に、そのメッセージに対して実行する処理のシーケンスを指定する。例えばサービス利用部１３０は、実行するシーケンスのシーケンス定義を特定する情報をＥＳＢ１１０に通知することで、メッセージに対して実行する処理のシーケンスを指定する。
【００５４】
ＥＳＢ１１０は、サービス利用部１３０からのメッセージの入力を受け付ける。そしてＥＳＢ１１０は、予め設定されたシーケンスに沿って入力されたメッセージに対して処理を実行し、処理結果のメッセージをサービス利用部１３０に出力する。このような処理を実行するためにＥＳＢ１１０は、定義情報記憶部１１１、メッセージ取得部１１２、メッセージ記憶部１１３、およびメッセージ仲介部１１４を有する。
【００５５】
定義情報記憶部１１１は、複数のシーケンス定義４１，４２，・・・とメディエーション機能定義５１とを有する。シーケンス定義４１，４２，・・・は、一連の複数の処理の手順を示す情報である。メディエーション機能定義５１は、ＥＳＢ１１０において呼出可能なメディエーション機能に関する情報を示している。
【００５６】
メッセージ取得部１１２は、サービス利用部１３０からメッセージを取得する。そしてメッセージ取得部１１２は、取得したメッセージに識別情報（メッセージＩＤ）を付与する。そしてメッセージ取得部１１２は、メッセージＩＤを付与したメッセージを、メッセージ記憶部１１３に格納する。なおメッセージ取得部１１２は、処理対象として、複数のレコードを含むファイルを指定したメッセージを取得した場合、そのファイル内の個々のレコードを、個別のメッセージに分割する。そしてメッセージ取得部１１２は、ファイル内のレコードごとのメッセージにメッセージＩＤを付与し、メッセージ記憶部１１３に格納する。
【００５７】
メッセージ記憶部１１３は、メッセージＩＤが付与されたメッセージを記憶する。メッセージ記憶部１１３に記憶されたメッセージは、例えば、そのメッセージに対する処理が終了すると消去される。
【００５８】
メッセージ仲介部１１４は、サービス利用部１３０とサービス提供部１２０，１２１，２１０，２１１，・・・との間、サービス提供部１２０，１２１，２１０，２１１，・・・間で受け渡されるメッセージを仲介する。例えばメッセージ仲介部１１４は、所定のシーケンスに従って、メッセージを仲介する。メッセージ仲介部１１４は、メッセージを仲介する際に、仲介するメッセージ内のデータに対して様々な処理を施すことができる。メッセージ仲介部１１４は、例えばシーケンスエンジン１１４ａと、複数のメディエータファンクション１１４ｂ，１１４ｃ，・・・とを有している。シーケンスエンジン１１４ａは、シーケンス定義を解釈し、シーケンス定義に示された手順でメディエータファンクションを呼び出す。メディエータファンクション１１４ｂ，１１４ｃ，・・・は、サービスの呼出、データの変換、データの編集、メッセージのルーティングなどを行う。例えばメッセージ仲介部１１４は、サービス利用部１３０から指定されたシーケンスに対応するシーケンス定義を、定義情報記憶部１１１から取得する。次にメッセージ仲介部１１４は、取得したシーケンス定義に基づいて、シーケンス内で実行するメディエータファンクションを認識する。
【００５９】
さらにメッセージ仲介部１１４は、定義情報記憶部１１１内の、実行するメディエータファンクションに対応するメディエータファンクション定義を参照し、各メディエータファンクションが、複数のレコードを一括して処理できるかどうかを判断する。そしてメッセージ仲介部１１４は、指定されたシーケンスに沿った処理の実行を制御する。その際、メッセージ仲介部１１４は、複数のレコードの一括処理が可能なメディエータファンクションには、複数のレコードの一括処理を実行させる。他方、メッセージ仲介部１１４は、複数のレコードの一括処理ができないメディエータファンクションには、１レコードを有するメッセージごとの処理を実行させる。以下、複数のレコードの一括処理が可能であることを、マルチレコードに対応していると呼び、複数のレコードの一括処理ができないことを、マルチレコードに対応していないと呼ぶこととする。メッセージ仲介部１１４は、シーケンスに沿った処理が終了すると、処理後のメッセージをサービス利用部１３０に送信する。
【００６０】
またメッセージ仲介部１１４は、複数のレコードの一括処理を実行した結果、エラーが発生した場合、複数のレコードのうち、エラーの発生原因となったレコードを特定する。そしてメッセージ仲介部１１４は、エラーの発生原因となったレコードについてのみ、シーケンスの処理を再度実行する。
【００６１】
このような構成のシステムにより、複数のレコードの一括処理を交えながら、所定のシーケンスに沿った効率的な処理を行うことができる。シーケンスの内容は、シーケンス定義に示される。なお、図５に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、メッセージ記憶部１１３と定義情報記憶部１１１とは、図１に示した第１の実施の形態の記憶手段１１の一例である。メッセージ取得部１１２は、図１に示した第１の実施の形態の付与手段１２の一例である。メッセージ仲介部１１４は、図１に示した第１の実施の形態の処理手段１３の一例である。
【００６２】
図６は、シーケンス定義の一例を示す図である。シーケンス定義４１には、例えば、複数のメディエータファンクション４１ａ〜４１ｄの処理順が定義されている。図６に示したシーケンス定義４１には、データ変換、コマンド実行、サービス呼出、データ変化の順で、メディエータファンクションを実行することが示されている。
【００６３】
メッセージ仲介部１１４が、メディエータファンクションの呼出を行う場合、呼出対象のメディエータファンクションが、複数のレコードを一括して処理できるか否かによって、メディエータファンクションの呼出方法が異なる。メディエータファンクションが、複数のレコードを一括して処理できるか否かは、メディエータファンクション定義に示されている。
【００６４】
図７は、メディエーション機能定義の一例を示す図である。メディエーション機能定義５１は、ＸＭＬ（Extensible Markup Language）タグを用いた構造化文書形式となっている。図７の例では、「ＭＦリスト」タグの下に、「ＭＦ」タグによって、各メディエータファンクションの特性などに関する情報が設定されている。例えば「ＭＦ」タグには、名称や、複数のレコードの一括処理の可否が示される。例えば、メディエータファンクションの変数「マルチレコード」の値が「true」であれば、そのメディエータファンクションはマルチレコードに対応している。またメディエータファンクションの変数「マルチレコード」の値が「false」であれば、そのメディエータファンクションは、マルチレコードに対応していない。このようなメディエーション機能定義５１を参照することで、メディエータファンクションが、マルチレコードに対応しているか否かについて判断できる。
【００６５】
なおシーケンス定義４１，４２，・・・やメディエーション機能定義５１は、サーバ１００の管理者によって、予め作成され、定義情報記憶部１１１に格納される。シーケンス定義４１，４２，・・・やメディエーション機能定義５１が定義情報記憶部１１１に格納されている状況で、ＥＳＢ１１０は、サービス利用部１３０からのメッセージの入力を受け付ける。またＥＳＢ１１０は、処理対象として、複数のレコードを含むファイルの入力を受け付けることもできる。
【００６６】
ＥＳＢ１１０が、メッセージを受信するか、ファイルを読み込んだときは、メッセージ取得部１１２が、メッセージまたはファイル内の１レコードが１メッセージとなるようにして、メッセージをメッセージ記憶部１１３に格納する。その際、メッセージ取得部１１２は、各メッセージにメッセージＩＤを付与する。以下、メッセージ格納処理の手順について説明する。
【００６７】
図８は、メッセージ格納処理の手順の一例を示す図である。
［ステップＳ１０１］メッセージ取得部１１２は、入力されたメッセージ、または処理対象として指定されたファイルを取得する。
【００６８】
［ステップＳ１０２］メッセージ取得部１１２は、取得したのがファイルか否かを判断する。取得したのがファイルであれば、処理がステップＳ１０３に進められる。取得したのがメッセージであれば、処理がステップＳ１０４に進められる。
【００６９】
［ステップＳ１０３］メッセージ取得部１１２は、取得したファイル内のレコードを、１レコードずつの複数のメッセージに分割する。例えば、予めレコードの境界の記号が定義されている場合、メッセージ取得部１１２は、ファイル内の情報を、境界の記号を境に分割し、分割して得られた個々の情報を、レコードと認識する。そして、メッセージ取得部１１２は、ファイルから抽出したレコードそれぞれを、メッセージとする。レコードの境界の記号としては、例えば改行コードがある。また予め１つのレコードのデータフォーマット（データ長など）が決まっている場合もある。その場合、メッセージ取得部１１２は、例えば、ファイル内の情報の先頭から、データフォーマットに合致する情報を抽出する。これにより、ファイル内に含まれるレコードが抽出できる。
【００７０】
［ステップＳ１０４］メッセージ取得部１１２は、各メッセージに、メッセージＩＤを付与する。
［ステップＳ１０５］メッセージ取得部１１２は、メッセージＩＤ付きのメッセージを、メッセージ記憶部１１３に格納する。この際、メッセージ取得部１１２は、例えば各メッセージに、メッセージの処理状態を示すフラグを設定する。
【００７１】
このようにして、メッセージが格納される。
図９は、メッセージ記憶部に格納されたメッセージの一例を示す図である。メッセージ記憶部１１３内には、メッセージ管理テーブル１１３ａが設けられている。メッセージ管理テーブル１１３ａは、メッセージＩＤ、メッセージ、および処理状態の欄が設けられている。
【００７２】
メッセージＩＤの欄には、各メッセージに付与されたメッセージＩＤが設定される。メッセージの欄には、メッセージＩＤに対応するメッセージが設定される。処理状態の欄には、登録されているメッセージの処理状態が設定される。処理状態は、例えば「未処理」と「処理中」である。処理状態の初期値は「未処理」である。処理の実行が開始されたメッセージの処理状態は「処理中」に更新される。なお、処理が完了したメッセージは、メッセージ管理テーブル１１３ａから消去される。
【００７３】
メッセージ記憶部１１３にメッセージが格納されると、メッセージ仲介部１１４によって、処理状態が「未処理」のメッセージに対する処理が実行される。このとき、メッセージ記憶部１１３は、同じシーケンスを適用する「未処理」のメッセージが複数あれば、それらのメッセージを一括して処理する。例えば、同じファイルから抽出された複数のレコードそれぞれに対応するメッセージは、同じシーケンスを適用するメッセージである。
【００７４】
メッセージ仲介部１１４は、メッセージを処理する場合、まず、適用するシーケンスのシーケンス定義と、そのシーケンス内で実行するメディエータファンクションのメディエーション機能定義とに基づいて、シーケンスの処理内容を判断する。そしてメッセージ仲介部１１４は、実行するメディエータファンクションがマルチレコードに対応しているか否かに応じて、メッセージの結合処理または分離処理を挿入する。
【００７５】
図１０は、メッセージ仲介処理の一例を示す図である。図１０には、図６に示したシーケンス定義４１に沿ったメッセージ仲介処理を実行する場合の例を示している。シーケンス定義４１に示されているメディエータファンクション４１ａ〜４１ｄのうち、データ変換とコマンド実行とのメディエータファンクション４１ａ，４１ｂ，４１ｄは、マルチレコードに対応しているものとする。またサービス呼出のメディエータファンクション４１ｃは、マルチレコードに非対応であるものとする。
【００７６】
メッセージ仲介部１１４は、メッセージ記憶部１１３から、処理状態「未処理」のメッセージを取得し、そのメッセージの処理状態を「処理中」に変更する。そしてメッセージ仲介部１１４は、最初に実行するデータ変換処理がマルチレコード対応であるため、まず処理対象の複数のメッセージを結合する（ステップＳ１）。メッセージを結合する際には、メッセージ仲介部１１４は、メッセージとメッセージＩＤとの組を結合する。例えばメッセージＩＤの次に、そのメッセージＩＤに対応するメッセージを設定する。
【００７７】
次にメッセージ仲介部１１４は、結合した複数のメッセージ内のレコードに対して一括してデータ変換処理を行う（ステップＳ２）。なおデータ変換処理では、入力されたメッセージに対して前処理が行われる。複数のメッセージを一括して処理する場合、メッセージ仲介部１１４は、前処理を実行するプロセスを１つ起動して、そのプロセスを用いて複数のメッセージに対する前処理を行う。データ変換後の複数のメッセージは、結合された状態で出力される。
【００７８】
データ変換が終了すると、メッセージ仲介部１１４は、データ変換後のメッセージに対して、所定のコマンドを実行する（ステップＳ３）。コマンド実行のメディエータファンクション４１ｂもマルチレコード対応であるため、メッセージ仲介部１１４は、複数のメッセージを結合したまま、それらのメッセージにコマンド実行処理を施す。そしてコマンド実行後の複数のメッセージが、結合された状態で出力される。なおコマンド実行では、前処理と後処理とが行われる。コマンド実行はマルチレコード対応であり、結合された複数のメッセージが入力されるため、前処理と後処理とは、それぞれ１つずつのプロセスによって纏めて実行することができる。
【００７９】
メッセージ仲介部１１４は、次に実行するメディエータファンクションがマルチレコード非対応であることから結合された複数のメッセージを、個別のメッセージに分離する（ステップＳ４）。メッセージの分離は、各メッセージのメッセージＩＤに基づいて行う。例えば結合されたメッセージ群において、メッセージＩＤの次にそのメッセージＩＤに対応するメッセージが設定されていれば、メッセージ仲介部１１４は、メッセージＩＤの直前を境界として、メッセージ群を複数のメッセージに分離する。
【００８０】
メッセージ仲介部１１４は、分離されたメッセージごとにサービス呼出を行う（ステップＳ５）。サービス呼出では、例えばサーバ２００内のサービス提供部２１０に対して、サービスの呼出が行われる。サービス提供部２１０は、メッセージごとにサービスを実行し、実行結果をメッセージ仲介部１１４に応答する。そしてサービス呼出実行後の複数のメッセージが、メッセージごとに出力される。なおサービス呼出では、前処理と後処理とが行われる。サービス呼出はマルチレコード非対応であり、複数のメッセージが個別に入力される。このとき、サービス呼出の前処理と後処理とは、入力されたメッセージごとのプロセスによって実行される。そのため、プロセスの起動や停止が頻繁に発生する。
【００８１】
最後に実行するデータ変換処理は、マルチレコード対応である。そこでメッセージ仲介部１１４は、サービス呼出の処理結果として出力された複数のレコードを結合する（ステップＳ６）。そしてメッセージ仲介部１１４は、結合した複数のレコードに対して、一括してデータ変換処理を実行する（ステップＳ７）。なおデータ変換処理の際には、複数のレコードに対する前処理が一括で行われる。
【００８２】
データ変換処理が終了すると、メッセージ仲介部１１４は、シーケンス処理の結果を出力する。この際、メッセージ仲介部１１４は、処理を実行したメッセージを、メッセージ記憶部１１３から削除する。
【００８３】
次に、メッセージ仲介部１１４におけるメッセージ仲介処理の手順について説明する。
図１１は、メッセージ仲介処理の手順の一例を示すフローチャートである。
［ステップＳ１１１］メッセージ仲介部１１４は、メッセージ記憶部１１３から未処理のメッセージを取得し、そのメッセージで指定されているシーケンスのシーケンス定義をメモリ１０２に展開する。
【００８４】
［ステップＳ１１２］メッセージ仲介部１１４は、未処理のメッセージのヘッダ付きメッセージを生成する。例えばメッセージ仲介部１１４は、メッセージＩＤを含むヘッダに、メッセージを含むペイロードを結合し、ヘッダ付きメッセージとする。
【００８５】
［ステップＳ１１３］メッセージ仲介部１１４は、未処理のメッセージに含まれるレコードが１つのレコードか、複数のレコードかを判断する。レコードが１つであれば、処理がステップＳ１１４に進められる。レコードが複数であれば、処理がステップＳ１１５に進められる。
【００８６】
［ステップＳ１１４］レコードが１つだけであれば、メッセージ仲介部１１４は、そのレコードを含むメッセージに対して、シーケンス定義に沿ってメディエータファンクションを順次実行する。その後、処理がステップＳ１２６に進められる。
【００８７】
［ステップＳ１１５］レコードが複数あれば、メッセージ仲介部１１４は、次に実行するメディエータファンクションのメディエーション機能定義から、「マルチレコード」の属性を取得する。
【００８８】
［ステップＳ１１６］メッセージ仲介部１１４は、次に実行するメディエータファンクションがマルチレコード対応か否かを判断する。例えば「マルチレコード」の属性に「true」と設定されていれば、マルチレコードに対応している。また「マルチレコード」の属性に「false」と設定されていれば、マルチレコード非対応である。マルチレコードに対応していれば、処理がステップＳ１１７に進められる。マルチレコードに対応していなければ、処理がステップＳ１１９に進められる。
【００８９】
［ステップＳ１１７］メッセージ仲介部１１４は、複数のメッセージが結合されているか否かを判断する。結合されていれば、処理がステップＳ１２１に進められる。結合されていなければ、処理がステップＳ１１８に進められる。
【００９０】
［ステップＳ１１８］メッセージ仲介部１１４は、次に実行するメディエータファンクションがマルチレコード対応でありながら、複数のメッセージが結合されていない場合、それらのメッセージを結合する。その後、処理がステップＳ１２１に進められる。
【００９１】
［ステップＳ１１９］メッセージ仲介部１１４は、複数のメッセージが結合されているか否かを判断する。結合されていれば、処理がステップＳ１２０に進められる。結合されていなければ、処理がステップＳ１２１に進められる。
【００９２】
［ステップＳ１２０］メッセージ仲介部１１４は、次に実行するメディエータファンクションがマルチレコード非対応でありながら、複数のメッセージが結合されている場合、それらのメッセージを個別に分離する。
【００９３】
［ステップＳ１２１］メッセージ仲介部１１４は、複数のメッセージ内のレコードに対して、シーケンス定義の処理順で次のメディエータファンクションを実行する。このとき、メッセージ仲介部１１４は、複数のメッセージが結合されていれば、それらのメッセージ内の複数のレコードを一括で処理する。またメッセージ仲介部１１４は、複数のメッセージが結合されていなければ、個々のメッセージ内の１つずつのレコードを、個別に処理する。
【００９４】
なおメッセージ仲介部１１４は、複数のメッセージが結合されている場合、ヘッダ付きメッセージのヘッダとペイロードとを判別する。例えばメッセージ仲介部１１４は、ヘッダを示すタグで囲まれた部分をヘッダと認識し、ペイロードを示すタグによって囲まれた部分をペイロードと認識する。そしてメッセージ仲介部１１４は、ヘッダ内の情報を処理の対象外として、ペイロード内の情報に対して処理を実行する。
【００９５】
［ステップＳ１２２］メッセージ仲介部１１４は、実行すべきすべてのメディエータファンクションの実行が終了したか否かを判断する。すべてのメディエータファンクションの実行が終了した場合、処理がステップＳ１２３に進められる。未実行のメディエータファンクションがあれば、処理がステップＳ１１５に進められる。
【００９６】
［ステップＳ１２３］メッセージ仲介部１１４は、すべてのメディエータファンクションの実行によりエラーが発生したか否かを判断する。エラーが発生した場合、処理がステップＳ１２４に進められる。エラーが発生していなければ、処理がステップＳ１２６に進められる。
【００９７】
［ステップＳ１２４］エラーが発生した場合、メッセージ仲介部１１４は、エラーとなったメッセージのメッセージＩＤを取得する。例えばメッセージ仲介部１１４のメディエータファンクションは、レコードの処理がエラーとなったときに、そのレコードが格納されているペイロードにエラーコードを挿入して、処理結果とする。そしてシーケンスエンジン１１４ａが、エラーコードが設定されているペイロードのヘッダからメッセージＩＤを取得する。エラーとなったメッセージのメッセージＩＤを取得したメッセージ仲介部１１４は、モニタ２１に表示されている運用管理画面に、エラーが発生したメッセージのメッセージＩＤを表示する。そして管理者からリトライの指示が入力されると、メッセージ仲介部１１４は、処理をステップＳ１２５に進める。
【００９８】
［ステップＳ１２５］メッセージ仲介部１１４は、エラーとなったメッセージに対して、図１１に示す通りのシーケンス処理を実行する。
［ステップＳ１２６］メッセージ仲介部１１４は、シーケンスに沿って実行した処理結果を出力する。この際、メッセージ仲介部１１４は、メッセージ記憶部１１３から、処理を施したメッセージを削除する。
【００９９】
このようにして、ＥＳＢ１１０における効率的な処理が行われる。例えば複数のレコードを含むファイルが入力された場合、レコードごとのメッセージを生成し、そのメッセージの結合や分離を適宜実行することで、メディエータファンクションが効率的に実行される。
【０１００】
図１２は、ＥＳＢにおける処理の一例を示す図である。図１２の例では、複数のレコードを含むファイル６１が、ＥＳＢ１１０に用意されたエンドポイント１１５に入力される。エンドポイント１１５は、サービス利用部１３０からＥＳＢ１１０へメッセージまたはファイルを入力するための情報受け渡しのインタフェースである。エンドポイント１１５に入力されたファイル６１はメッセージ取得部１１２で取得される。そしてメッセージ取得部１１２により、入力されたファイル６１内のレコードが抽出され、レコードごとのメッセージが生成される。さらにメッセージ取得部１１２により、各メッセージにメッセージＩＤが付与される。そしてメッセージ取得部１１２により、メッセージＩＤとメッセージとの組が、メッセージ記憶部１１３に格納される。格納された時点では、そのメッセージの処理状態は「未処理」である。図１２の例では、４つのメッセージが格納されている。
【０１０１】
メッセージ仲介部１１４は、１つのファイル６１から抽出された複数のレコードそれぞれに対応するメッセージが格納されたことを確認すると、各メッセージをメッセージ記憶部１１３から抽出する。その際、メッセージ仲介部１１４は、メッセージＩＤを含むヘッダ６２とメッセージを含むペイロード６３とを結合して、メッセージＩＤ付きのメッセージとする。そしてメッセージ仲介部１１４は、メッセージＩＤ付きの複数のメッセージを結合し、シーケンス定義４１に示される順番に、メディエータファンクションを実行する。メディエータファンクションでは、ペイロード６３の内容に対して処理が施され、ヘッダ６２は変更されない。
【０１０２】
メッセージ仲介部１１４は、シーケンス定義４１に示されるすべてのメディエータファンクションの実行が完了したとき、メッセージごとの処理結果をログ６４に出力する。ログ６４には、例えばメッセージＩＤに対応付けて、処理の結果が成功（ＯＫ）か、失敗（ＮＧ）かが設定される。例えばログ６４の内容を運用管理画面に表示すれば、管理者はレコード単位で処理結果を確認できる。メッセージ仲介部１１４は、処理に失敗したメッセージがある場合、そのメッセージのみをメッセージ記憶部１１３から再取得する。そしてメッセージ仲介部１１４は、再取得したメッセージに対して、メディエータファンクションを再実行する。図１２の例では、メッセージＩＤ「msg002」のメッセージに対する処理でエラーが発生したため、そのメッセージに対してメディエータファンクションが再実行されている。
【０１０３】
すべてのメディエータファンクションを実行後のメッセージは、メッセージ仲介部１１４により、出力側のエンドポイント１１６を介して出力される。
このように、第２の実施の形態によれば、マルチレコード対応のメディエータファンクションを実行する際には、複数のメッセージを結合することで、効率的に処理を実行することができる。例えば、複数のメッセージを個別に処理する場合、前処理や後処理のプロセスを、メッセージごとに起動しなければならない。その結果、プロセスの起動・終了の回数が多くなり、処理効率が悪い。第２の実施の形態のように、複数のメッセージを結合して、１つの処理対象として扱えば、前処理や後処理のプロセスの起動・終了も１回ずつで済み、処理効率が向上する。
【０１０４】
しかも第２の実施の形態では、結合されたメッセージそれぞれにメッセージＩＤが付与されている。そしてそのメッセージＩＤをキーとして、結合されたメッセージ群内の個々のメッセージを識別可能となっている。これにより、例えば複数のメディエータファンクションの一部にマルチレコード非対応のものがあっても、マルチレコード非対応のメディエータファンクションを実行する場合にのみメッセージを分離することができる。その結果、可能な限り、複数のメッセージを一括で処理することができ、処理効率が向上する。
【０１０５】
さらに第２の実施の形態では、メッセージＩＤによって、結合された複数のメッセージの中から、任意のメッセージのみを抽出できる。例えばメディエータファンクションの実行時に、一部のメッセージの処理でエラーが発生する場合がある。このような場合、結合された複数のメッセージの中から、エラーが発生したメッセージを抽出し、そのメッセージのみ、再度シーケンスの処理を実行することができる。これにより、エラー発生時の再実行処理を効率的に行うことができる。
【０１０６】
なお、ＥＳＢ１１０で処理するレコードが、例えばネットワーク上でアクセス可能なデータベースから抽出したレコードの場合がある。ネットワークに接続されたデータベースに格納されているレコードは、多数の装置からのアクセスを受ける。そのため、データベースに格納されている段階でレコードにヘッダを付与することは、データ構造を変えることとなる。データ構造が変わると検索が行えなくなるため、データベース内でヘッダを付与することはできない。第２の実施の形態では、ＥＳＢ１１０に入力された後に各レコードに自動で、メッセージＩＤを含むヘッダが付与される。これにより、データベース内のレコードに処理を施す場合であっても、レコードのデータ形式が変化して検索が行えなくなることを防ぐことができる。
【０１０７】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１０８】
１ａ〜１ｄ，２ａ〜２ｄ，６ａ〜６ｄ，７ａ〜７ｄ  データ
３，４，５，８，９  データ列
１０  情報処理装置
１１  記憶手段
１１ａ  定義情報
１２  付与手段
１３  処理手段
１３ａ  第１の処理
１３ｂ  第２の処理
１３ｃ  第３の処理
１３ｄ  第４の処理
【図１】
2014199544.tif 000003
【図２】
2014199544.tif 000004
【図３】
2014199544.tif 000005
【図４】
2014199544.tif 000006
【図５】
2014199544.tif 000007
【図６】
2014199544.tif 000008
【図７】
2014199544.tif 000009
【図８】
2014199544.tif 000010
【図９】
2014199544.tif 000011
【図１０】
2014199544.tif 000012
【図１１】
2014199544.tif 000013
【図１２】
2014199544.tif 000014