(57)【要約】【課題】データの多重化処理を効率的におこなうことができること。【解決手段】業務システム１２２０からＦＴＰ、メッセージキュー、ＳＯＡＰなど様々な通信プロトコルで通信されるデータは、アダプタ／メッセージバックボーン１２０１経由でＪＭＳ１２０５のキュー１２１１を介し入力処理１２０６ａに渡される。以降、ＪＭＳ１２０５のキュー１２１２〜１２１５を契機にイベント通知され、振分処理１２０７ａ、変換処理１２０８ａなどの処理に制御が渡っていく。出力処理１２０９ａがＪＭＳ１２０５を介してアダプタ／メッセージバックボーン１２０１に処理を渡し、業務システム１２３０にデータを転送する。このシステム連携処理の間、振分処理１２０７ａおよび複数の宛先に振り分けられた一括形式の大容量データまたは複数の宛先のデータは多重で処理され、処理時間の短縮化を図ることができる。【選択図】        図１２
2006215968.tif 000002
【特許請求の範囲】
【請求項１】
異なる宛先が指定された複数のデータの入力を受け付ける入力手段と、
前記入力手段によって入力された複数のデータを所定数のグループに分割する分割手段と、
前記分割手段によって分割された各グループの中から並列にデータを抽出することによって、抽出されたデータを宛先ごとに振り分ける振分け手段と、
前記振分け手段によって振り分けられたデータの集合を、当該集合内のデータに指定された宛先に出力する出力手段と、
を備えることを特徴とするデータ処理装置。
【請求項２】
前記振分け手段は、
任意の宛先に振り分けられたデータの集合を、前記入力手段による入力順に入れ替えることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
異なる宛先が指定された複数のデータを入力する入力工程と、
前記入力工程によって入力された複数のデータを所定数のグループに分割する分割工程と、
前記分割工程によって分割された各グループの中から並列にデータを抽出することによって、抽出されたデータを宛先ごとに振り分ける振分け工程と、
前記振分け工程によって振り分けられたデータの集合を、当該集合内のデータに指定された宛先に出力する出力工程と、
を含んだことを特徴とするデータ処理方法。
【請求項４】
異なる宛先が指定された複数のデータを入力させる入力工程と、
前記入力工程によって入力された複数のデータを所定数のグループに分割させる分割工程と、
前記分割工程によって分割された各グループの中から並列にデータを抽出することによって、抽出されたデータを宛先ごとに振り分けさせる振分け工程と、
前記振分け工程によって振り分けられたデータの集合を、当該集合内のデータに指定された宛先に出力させる出力工程と、
をコンピュータに実行させることを特徴とするデータ処理プログラム。
【請求項５】
請求項４に記載のデータ処理プログラムを記録したコンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、業務データを処理するデータ処理装置、データ処理方法、データ処理プログラム、および記録媒体に関し、特に、ＥＳＢ(Enterprise Service Bus)の実現のために実装するデータ処理装置、データ処理方法、データ処理プログラム、および記録媒体である。
【背景技術】
【０００２】
従来、システム連携において、ワークフローによるアプリケーション連携と、データ連携の実装技術が未分化であった。ワークフローは、業務ワークフロー、つまり人が認識できる業務の流れをシステム的に制御することを含み、その機能にデータ連携の機能の実行機構や定義ビューが混在していた。業務ワークフローは、データ容量が比較的小さく、また振分宛先数が比較的少ないことを想定しており、データ容量が大きな場合や振り分け先が多い場合に適した実行機構および定義ビューではない。
【０００３】
ここで、従来から、銀行や会社などの業務処理システムについては、ＥＡＩ(Enterprise Application Integration)が用いられている。ＥＡＩは、内外の情報システムを束ねるシステム形態の一つであり、あたかもソケットを差し込むようなイメージで複数の業務システムを効率的に連携できるようにしている。これにより、ＥＡＩでは、ある業務システムから出た業務データを、宛先の業務システムへの振分け処理やフォーマット変換処理などをして、複数の業務システムに受け渡すことができる。図１３は、従来のＥＡＩを示すシステム構成図である。
【０００４】
図１３に示したＥＡＩ１３００において、ハブとなるデータ処理装置１３０１は、各業務システム１３１１〜１３１５から伝票や電文などの業務データＤ１〜Ｄ５を受け取って、データ処理装置１３０１内部でフォーマット変換などの加工を行い、宛先となる業務システム１３１１〜１３１５に送信する。このＥＡＩ１３００により、複数の業務システム１３１１〜１３１５から送られてくる業務データＤ１〜Ｄ５を並列に処理することができる。なお、図１３において、各業務システム１３１１〜１３１５から送信される業務データＤ１〜Ｄ５の図形の大きさは、その業務データＤ１〜Ｄ５のデータ容量の大きさまたはデータ件数の多さを表している。
【０００５】
また、アプリケーション統合のインフラとして、ＥＡＩから進んだＥＳＢという技術分野が発展している。ＥＳＢは、ＷｅｂサービスやＪＣＡなどのオープンな標準仕様に準拠してシステムを統合する考え方であるが、システム間連携の規模の拡大など、ＥＡＩをベースとして可用性を拡大するものでもある。単票伝票あるいは小容量データのリアルタイム連携を行うと同時に、基幹システムから受信したバッチデータや、アタッチメントなどの連携で、百万件、ギガバイトの大容量データや、振分け宛先数が１０００程度の事例があり、この用途に適した高速な連携機構を考案する必要が生じている。さらに、これらの機構は、利用者に複雑な設定をさせずに自動で最適化できることが望ましい。
【０００６】
なお、従来において、既存のシステムに変更を行わずに異種アプリケーション間をネットワークで相互接続し、データと機能の相互利用を実現するための技術が示されている（たとえば、下記特許文献１を参照。）。また、ＦＡＸ送信機が、送信するＦＡＸを送信先と送信すべき時間と併せて一旦メモリ上に蓄積し、メモリ上の送信すべき時間と送信すべき宛先が同じ電文を、所定時間になれば送信することが示されている（たとえば、下記特許文献２を参照。）。さらに、ＦＡＸ送信機が、送信するＦＡＸを一旦メモリ上に蓄積し、所定時間がくると、メモリ上に溜められた同一宛先へのＦＡＸを纏めて送信することで、通信費を節減することが示されている（たとえば、下記特許文献３を参照。）。
【０００７】
【特許文献１】特開２０００−１８７６２６号公報
【特許文献２】特開平２−１５９１４８号公報
【特許文献３】特開平１−０００８７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、図１３に示したＥＡＩ１３００では、各業務システム１３１１〜１３１５から送信されてくる業務データＤ１〜Ｄ５のデータ容量やデータ件数が、業務システム１３１１〜１３１５ごとにまたは時期（月末、年末、年度末）によっても異なっている。たとえば、図１３においては、業務システム１３１１からの業務データＤ１が他の業務データＤ２〜Ｄ５よりも大きい。
【０００９】
したがって、業務システム１３１１が大量の業務データＤ１をデータ処理装置１３０１に送信した場合、データ処理装置１３０１内部において、業務データＤ１の振分け処理やフォーマット変換処理などのデータ処理に時間がかかるという問題があった。また、Ｄ１の後にＤ２〜Ｄ５を処理しなければならない業務要件がある場合、業務データＤ１のデータ処理遅延のため、他の業務データＤ２〜Ｄ５のデータ処理をおこなうことができないという問題があった。
【００１０】
また、データ容量や振分宛先数が大きくなった場合に性能が低下するという問題があった。すなわち、複数の宛先に振り分けられた業務データは、業務が分配されるごとく別々に格納・処理される機構であり、並行に動作するよう定義しても、上述したワークフローで整合性を保つために内部的には順次処理される場合があった。また、定義ビューは画面に分岐を記述するため、分岐数が多くなると現実的に定義が困難であった。
【００１１】
この発明は、上述した従来技術による問題点を解消するため、データの多重化処理を効率的におこなうことができるデータ処理装置、データ処理方法、データ処理プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、この発明にかかるデータ処理装置、データ処理方法、データ処理プログラム、および記録媒体は、異なる宛先または宛先に対応する情報が指定された複数のデータを入力し、入力された複数のデータを所定数のグループに分割し、分割された各グループの中から並列にデータを抽出することによって、抽出されたデータを宛先ごとに振り分け、振り分けられたデータの集合を、当該集合内のデータに指定された宛先に出力することを特徴とする。
【００１３】
また、上記発明において、任意の宛先に振り分けられたデータの集合を、前記入力手段による入力順に入れ替えることを特徴とする。
【００１４】
また、上記発明において、振り分けられた宛先ごとのデータの集合を前記所定数のスレッドに割り当てることによって、前記各スレッドに割り当てられたデータの集合を、当該集合内のデータに指定された宛先に応じたフォーマットに、並列に変換し、フォーマット変換されたデータの集合を、当該集合内のデータに指定された宛先に出力することを特徴とする。
【００１５】
また、上記発明において、振り分けられたデータの集合のデータ容量が、所定のしきい値以上であるか否かを判定し、振り分けられたデータの集合を、複数種類の格納媒体のうち、判定された判定結果に応じた格納媒体に格納し、格納されたデータの集合を前記所定数のスレッドに割り当てることを特徴とする。
【００１６】
また、上記発明において、フォーマット変換されたデータの集合のデータ容量が、所定のしきい値以上であるか否かを判定し、フォーマット変換されたデータの集合を、複数種類の格納媒体のうち、判定結果に応じた格納媒体に格納する。
【００１７】
これらの発明によれば、データの振分けを並列に実行することができ、また、データ変換（たとえば、データのフォーマット変換、文字コード変換）やデータ内容のチェック（たとえば、伝票内容の検算、必須項目の欠落や不備）も並列に実行することができる。
【発明の効果】
【００１８】
本発明にかかるデータ処理装置、データ処理方法、データ処理プログラム、および記録媒体によれば、データの多重化処理を効率的におこなうことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照して、この発明にかかるデータ処理装置、データ処理方法、データ処理プログラム、および記録媒体の好適な実施の形態を詳細に説明する。
【００２０】
（データ処理システムの概要）
図１は、この発明の実施の形態にかかるＥＡＩを示すシステム構成図である。図１において、ＥＡＩ１００は、ハブとなるデータ処理装置１０１とデータ処理装置１０１に対し業務データを送受信する業務システム１１０（Ａ〜Ｄ，Ｘ）とが連携されており、相互に交信可能とされている。ＥＡＩ１００は、内外の情報システムを束ねるシステム形態の一つである。なお、本実施の形態では、伝票に関する業務データを一例に挙げて説明する。
【００２１】
任意の業務システム１１０から送信された業務データは、データ処理装置１０１に取り込まれ、宛先となる業務システム１１０への振分け処理や宛先の業務システム１１０と同一のフォーマットに変換する変換処理をおこなって、各宛先の業務システム１１０に送信する。なお、業務システム１１０としては、たとえば、コールセンター、生産管理システム、販売管理システム、代理店システム、ヘルプデスク、インターネットシステムなどが挙げられる。
【００２２】
（データ処理装置および業務システムのハードウェア構成）
つぎに、この発明の実施の形態にかかるデータ処理装置および業務システム（以下、「データ処理装置等」という）のハードウェア構成について説明する。図２は、この発明の実施の形態にかかるデータ処理装置等のハードウェア構成を示すブロック図である。
【００２３】
図２において、データ処理装置１０１等は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（ハードディスクドライブ）２０４と、ＨＤ（ハードディスク）２０５と、ＦＤＤ（フレキシブルディスクドライブ）２０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）２０７と、ディスプレイ２０８と、Ｉ／Ｆ（インターフェース）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００２４】
ここで、ＣＰＵ２０１は、データ処理装置１０１等の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤ２０５は、ＨＤＤ２０４の制御で書き込まれたデータを記憶する。
【００２５】
ＦＤＤ２０６は、ＣＰＵ２０１の制御にしたがってＦＤ２０７に対するデータのリード／ライトを制御する。ＦＤ２０７は、ＦＤＤ２０６の制御で書き込まれたデータを記憶したり、ＦＤ２０７に記憶されたデータをデータ処理装置１０１等に読み取らせたりする。
【００２６】
着脱可能な記録媒体として、ＦＤ２０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Digital Versatile Disk）、メモリーカードなどであってもよい。ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２７】
Ｉ／Ｆ２０９は、通信回線を通じてインターネットなどのネットワーク２１４に接続され、このネットワーク１０４を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２８】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００２９】
スキャナ２１２は、画像を光学的に読み取り、データ処理装置１０１等内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３０】
（データ処理装置の機能的構成）
つぎに、この発明の実施の形態にかかるデータ処理装置１０１の機能的構成について説明する。図３は、この発明の実施の形態にかかるデータ処理装置１０１の機能的構成を示すブロック図である。図３において、データ処理装置１０１は、入力部３０１と、多重度設定部３０２と、振分け部３０３と、変換部３０４と、判定部３０５と、格納部３０６と、出力部３０７と、から構成されている。
【００３１】
入力部３０１は、異なる宛先が指定された複数の業務データの入力を受け付ける。業務データは、一または複数の業務システムから送信されてくる。そして、入力された業務データを一括して入力（受信）順に格納部３０６に格納する。
【００３２】
ここで、入力部３０１による入力処理を、具体例を挙げて説明する。図４は、この発明の実施の形態にかかる入力処理を示す説明図である。入力部３０１は、任意の業務システムからの業務データ、ここでは一例として、業務システムＸの業務データ４Ｘ、業務システムＡの業務データ４Ａ、業務システムＢの業務データ４Ｂ、業務システムＣの業務データ４Ｃの入力を受け付ける。
【００３３】
図４において、各業務データ４Ｘ、４Ａ〜４Ｃは、宛先ヘッダと伝票データとから構成されている。宛先ヘッダの情報（記号）は、宛先となる業務システムの符号の末尾を示している。たとえば、業務データ４Ｘに着目すると、伝票データｘａ１〜ｘａ４の宛先ヘッダの情報は「Ａ」、すなわち、業務システムＡを宛先としている。なお、宛先ヘッダに相当する情報は伝票データ内に含まれている場合や、伝票データ内の情報と宛先定義の対応付けによって宛先が求められる場合がある。
【００３４】
業務データ４Ｘ、４Ａ〜４Ｃは、宛先フィールド４０１と伝票データフィールド４０２からなるレコード単位で、一括業務データ４００としてファイル３１３に保持される。一括業務データ４００は、入力された業務データ４Ｘ、４Ａ〜４Ｃが、その入力順に保持された状態を示している。
【００３５】
多重度設定部３０２は、データ処理装置１０１の多重度を設定する。多重度とは同時並行処理できる数であり、具体的には、複数のスレッドを用意することによって多重度を設定することができる。スレッドの数は、図２に示したＣＰＵ２０１の数やメモリ（図２に示したＲＡＭ２０３、ＨＤ２０５）の容量によって決定する。これにより、振分け部３０３による振分け処理や変換部３０４による変換処理を並列処理することができる。
【００３６】
なお、マシン規模により起動できるスレッド数（多重度）には限界値がある。性能に影響が大きい単純な係数を用いることでオーバーヘッドを少なくすることができる。起動時またはシステムの動的更新時に、連携基盤が情報収集したメモリ容量のしきい値以上の場合、ＣＰＵの数を上限にスレッドを立ち上げて並列処理をおこなう。なお、スレッドの多重度はマシン形式によってはＣＰＵの数に係数を掛ける場合がある。この方式は通常では利用者の設定作業は不要である。
【００３７】
また、振分け部３０３は、入力部３０１によって入力された業務データ、すなわち、ファイル３１３に保持された一括業務データ４００を宛先ごとに振り分ける。具体的には、振分け部３０３は、分割部３１０を備えており、一括業務データ４００を、多重度設定部３０２によって設定されたスレッド数に分割する。図５は、この発明の実施の形態にかかる振分け処理を示す説明図である。図５では、図４に示した一括業務データ４００の振分け処理を示している。
【００３８】
図５においては、スレッド数を３としているため、一括業務データ４００は３つのグループに分割される。分割された業務データを「分割業務データ」と称す。なお、各スレッドにおいて、スレッド内の分割業務データ５０１〜５０３に付されている括弧数字は、格納位置を示すポインタである。振分け部３０３は、スレッドごとの分割業務データ５０１〜５０３を、ポインタを参照することにより、並行して振分け処理を実行する。具体的には、各スレッドは、宛先フィールド４０１を参照して、業務データをポインタ順に振り分ける。
【００３９】
たとえば、スレッドＴ１では、分割業務データ５０１の中から、ポインタ（１）の伝票データｘａ１を、宛先Ａへのデータとして振り分ける。また、これに並行して、スレッドＴ２では、分割業務データ５０２の中から、ポインタ（１）の伝票データｘｂ１を、宛先Ｂへのデータとして振り分け、スレッドＴ３では、分割業務データ５０３の中から、ポインタ（１）の伝票データｂｃ２を、宛先Ｃへのデータとして振り分ける。
【００４０】
つぎに、スレッドＴ１では、分割業務データ５０１の中から、ポインタ（２）の伝票データｘａ２を、宛先Ａへのデータとして振り分ける。また、これに並行して、スレッドＴ２では、分割業務データ５０２の中から、ポインタ（２）の伝票データａｂ１を、宛先Ｂへのデータとして振り分け、スレッドＴ３では、分割業務データ５０３の中から、ポインタ（２）の伝票データｂｄ１を、宛先Ｄへのデータとして振り分ける。
【００４１】
つぎに、スレッドＴ１では、分割業務データ５０１の中から、ポインタ（３）の伝票データｘａ３を、宛先Ａへのデータとして振り分ける。また、これに並行して、スレッドＴ２では、分割業務データ５０２の中から、ポインタ（３）の伝票データａｃ１を、宛先Ｃへのデータとして振り分け、スレッドＴ３では、分割業務データ５０３の中から、ポインタ（３）の伝票データｃｄ１を、宛先Ｄへのデータとして振り分ける。
【００４２】
つぎに、スレッドＴ１では、分割業務データ５０１の中から、ポインタ（４）の伝票データｘａ４を、宛先Ａへのデータとして振り分ける。また、これに並行して、スレッドＴ２では、分割業務データ５０２の中から、ポインタ（４）の伝票データｂｃ１を、宛先Ｃへのデータとして振り分け、スレッドＴ３では、分割業務データ５０３の中から、ポインタ（４）の伝票データｃｘ１を、宛先Ｘへのデータとして振り分ける。振分け後の業務データを、それぞれ振分け業務データ５Ａ，５Ｂ，５Ｃ，５Ｄ，５Ｘと称す。
【００４３】
また、振分け部３０３では、スレッドＴ１〜Ｔ３で振り分けたデータのポインタを、宛先毎に再編しスレッドＴ１〜Ｔ３の順につなぎ変える。スレッドＴ１〜Ｔ３はお互いを意識せずに振り分け処理を実行する。これにより、振分け業務データにおいても、入力処理時における入力順を維持して、業務データを宛先に送信することができる。
【００４４】
また、振分け部３０３では、振分け業務データ５Ａ，５Ｂ，５０Ｃ，５Ｄ，５Ｘを結合した結合業務データを生成する。図６は、結合業務データを示す説明図である。図６において、結合業務データ６００は、管理情報６０１と、宛先ごとの伝票データ群６Ａ，６Ｂ，６Ｃ，６Ｄ，６Ｘとを有している。
【００４５】
伝票データ群６Ａは宛先Ａの伝票データの集合であり、伝票データ群６Ｂは宛先Ｂの伝票データの集合であり、伝票データ群６Ｃは宛先Ｃの伝票データの集合であり、伝票データ群６Ｄは宛先Ｄの伝票データの集合であり、伝票データ（群）６Ｘは宛先Ｘの伝票データ６Ｘの伝票データの集合である。管理情報６０１には、伝票データ群のデータサイズや伝票データ群を送信する宛先が含まれている。
【００４６】
このように、振分け部３０３では、振り分けられた業務データは宛先が異なり、殆どの場合は宛先毎の処理順序を制御する必要がない。したがって、多重で処理することで処理時間の短縮化を図ることができる。また、多重で処理できるマシン規模の場合は、宛先毎に振り分けられたデータへの変換、ユーザアプリケーション、ログ編集、出力などの同時処理を高効率におこなうため、各宛先の処理をスレッドにディスパッチして並列処理する。
【００４７】
起動可能なスレッド多重度に比べて宛先数が大きいときは、設定したスレッド多重度上限までディスパッチを繰り返す。データ容量が大きいものほど処理時間が大である傾向があることから、ディスパッチはデータ容量が大きいものほど優先度大で、順次スレッドに割り当てられる。結果的に各スレッドには等しく処理が割り当てられ、当該処理を早期に終了することができる。
【００４８】
また、図３において、変換部３０４は、振分け部３０３から得られた結合業務データ６００に含まれている宛先ごとの伝票データ群６Ａ，６Ｂ，６Ｃ，６Ｄ，６Ｘを、宛先に応じたフォーマットに変換する。このフォーマット変換処理は、多重度設定部３０２によって設定された複数のスレッドＴ１〜Ｔ３において並行処理される。図７は、この発明の実施の形態にかかるフォーマット変換処理を示す説明図である。
【００４９】
図７において、結合業務データ６００内の宛先ごとの伝票データ群６Ａ，６Ｂ，６Ｃ，６Ｄ，６Ｘは、各スレッドＴ１〜Ｔ３に割り当てられる。割り当て手法としては、管理情報６０１を参照して、データ件数が多い伝票データ群（またはデータ容量が大きい伝票データ群）から順にスレッドＴ１〜Ｔ３に割り当てる。たとえば、各スレッドＴ１〜Ｔ３が最大４個の伝票データまで受け付けるとする。
【００５０】
まず、データ件数４の伝票データ群６Ａが、スレッドＴ１に割り当てられる。つぎに、データ件数３の伝票データ群６Ｃが、スレッドＴ２に割り当てられる。そして、データ件数２の伝票データ群６Ｂが、スレッドＴ３に割り当てられる。スレッドＴ３には、伝票データ２個分の空きがあるため、伝票データ群６ＤをスレッドＴ３に割り当てる。また、スレッドＴ２にも伝票データ１個分の空きがあるため、伝票データ群６Ｘ（伝票データｃｘ１）をスレッドＴ３に割り当てる。
【００５１】
これにより、フォーマット変換後の伝票データ群７Ａ（伝票データＸＡ１〜ＸＡ４），７Ｂ（伝票データＸＢ１，ＡＢ１），７Ｃ（伝票データＡＣ１，ＢＣ１，ＢＣ２），７Ｄ（伝票データＢＤ１，ＣＤ１），７Ｘ（伝票データＣＸ１）が生成される。変換部３０４では、フォーマット変換後の各伝票データ群７Ａ，７Ｂ，７Ｃ，７Ｄ，７Ｘを結合して結合業務データ７００を生成する。
【００５２】
結合業務データ７００は、伝票データ群７Ａ，７Ｂ，７Ｃ，７Ｄ，７Ｘと、管理情報７０１とを有する。管理情報７０１には、伝票データ群７Ａ，７Ｂ，７Ｃ，７Ｄ，７Ｘの宛先や、データサイズ、データ件数が含まれている。
【００５３】
なお、変換部３０４は、データのフォーマット変換のほか、文字コードの変換も並列に実行することができる。さらに、図示しないが、フォーマット変換や文字コード変換と同様、検査（チェック）機能も有しており、データの内容を並列にチェックする。たとえば、伝票データである場合には金額の検算や、必須項目の欠落、不備などを並列にチェックすることもできる。
【００５４】
また、図３において、判定部３０５は、振分け処理またはフォーマット変換処理後における、結合業務データ６００，７００のデータ容量の大きさ、または、データ保証の有無を判定する。これにより、振分け処理とフォーマット変換処理との間、フォーマット変換処理と出力処理との間における、結合業務データ６００，７００を格納する格納媒体を決定することができる。
【００５５】
具体的には、結合業務データ６００，７００の管理情報６０１，７０１に含まれている結合業務データ６００，７００のデータ容量や、データ保証（トランザクション処理の有効性）の有無を示すフラグを参照して判定する。これにより、各処理間における結合業務データの書き込みや読み出しの高速化を図ることができる。
【００５６】
格納部３０６は、変換部３０４によってフォーマット変換された結合業務データ７００を、複数種類の格納媒体のうち、判定部３０５によって判定された判定結果に応じた格納媒体に格納する。ここで、格納媒体は、たとえば、メモリ３１１、キュー３１２、ファイル３１３（トランザクションを保証するデータベース）を備えている。キュー３１２は不揮発である。
【００５７】
また、格納部３０６も、適した格納媒体（メモリ３１１、キュー３１２、ファイル３１３）に切り換えて、結合業務データ６００，７００を格納する。結合業務データ６００，７００は、管理情報６０１，７０１のポインタまたはファイル名で保持する。なお本図で、データ容量の閾値は設定可能である。なお、連携処理プログラムに処理イベントを通知する容量が小さい管理情報は、キュー３１２に格納する。
【００５８】
また、出力部３０７は、変換部３０４によるフォーマット変換後の結合業務データ７００内の伝票データ群７Ａ，７Ｂ，７Ｃ，７Ｄ，７Ｘを宛先ごとに出力（送信）する。具体的には、格納部３０６に格納されている結合業務データ７００を読み出し、管理情報７０１内の宛先を参照することで出力処理を実行する。
【００５９】
なお、上述した入力部３０１、多重度設定部３０２、振分け部３０３、変換部３０４、判定部３０５、格納部３０６、出力部３０７、および分割部３１０は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ＨＤ２０５などの記録媒体に記録されたプログラムを、ＣＰＵ２０１が実行することによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【００６０】
（データ処理手順）
つぎに、この発明の実施の形態にかかるデータ処理装置１０１のデータ処理手順について説明する。図８は、この発明の実施の形態にかかるデータ処理装置１０１のデータ処理手順を示すフローチャートである。図８において、まず、入力部３０１による入力処理を実行する（ステップＳ８０１）。
【００６１】
宛先が１つに固定されていない場合は、つぎに、振分け部３０３による振分け処理を実行する（ステップＳ８０２）。そして、振分け処理から得られた結合業務データ６００の格納処理を実行する（ステップＳ８０３）。つぎに、変換部３０４によるフォーマット変換処理を実行する（ステップＳ８０４）。そして、フォーマット変換処理から得られた結合業務データ７００の格納処理を実行する（ステップＳ８０５）。最後に、出力部３０７による出力処理を実行する（ステップＳ８０６）。
【００６２】
つぎに、この発明の実施の形態にかかる振分け処理について説明する。図９は、この発明の実施の形態にかかる振分け処理を示すフローチャートである。図９において、まず、多重度設定部３０２によってスレッド数を設定する（ステップＳ９０１）。つぎに、入力処理（ステップＳ８０１）によって入力されファイル３１３に保持された一括業務データ４００が、所定容量以上であるか否かを判定する（ステップＳ９０２）。
【００６３】
所定容量以上である場合（ステップＳ９０２：Ｙｅｓ）、一括業務データ４００内の各業務データが、固定長レコードであるか否かを判定する（ステップＳ９０３）。これにより、伝票データの単位を識別することができる。固定長レコードである場合（ステップＳ９０３：Ｙｅｓ）、一括業務データ４００内の業務データの件数が所定数以上であるか否かを判定する（ステップＳ９０４）。所定数以上である場合（ステップＳ９０４：Ｙｅｓ）、分割部３１０により、一括業務データ４００をスレッド数で分割する（ステップＳ９０５）。
【００６４】
そして、各スレッドＴ１〜Ｔ３において、多重振分け、すなわち、分割業務データ５０１〜５０３を宛先ごとに並列的に振り分ける（ステップＳ９０６）。そして、振り分けられた振分け業務データ５Ａ，５Ｂ，５０Ｃ，５Ｄ，５Ｘを結合する（ステップＳ９０７）。これにより、結合業務データ６００を得ることができる。
【００６５】
なお、ステップＳ９０２において所定容量以上でない場合（ステップＳ９０２：Ｎｏ）、ステップＳ９０３において各業務データが固定長レコードでない場合（ステップＳ９０３：Ｎｏ）、ステップＳ９０４において、所定数以上でない場合（ステップＳ９０４：Ｎｏ）、一括業務データ４００内の業務データを宛先ごとに振り分ける（ステップＳ９０８）。したがって、この場合は分割部３１０による一括業務データ４００の分割は実行されない。
【００６６】
つぎに、この発明の実施の形態にかかる格納処理について説明する。図１０は、この発明の実施の形態にかかる格納処理を示すフローチャートである。図１０において、結合業務データ６００，７００の管理情報６０１，７０１を読み込み（ステップＳ１００１）、結合業務データ６００，７００が所定容量以下である場合（ステップＳ１００２：Ｙｅｓ）、データ保証の有無を判定する（ステップＳ１００３）。
【００６７】
データ保証有りの場合（ステップＳ１００３：Ｙｅｓ）、一括業務データ４００をキュー３１２に格納する（ステップＳ１００４）。一方、データ保証なしの場合（ステップＳ１００３：Ｎｏ）、管理情報６０１，７０１をキュー３１２に、業務データ群をメモリ３１１に格納する（ステップＳ１００５）。
【００６８】
また、ステップＳ１００２において、一括業務データ４００が所定容量以下でない場合（ステップＳ１００２：Ｎｏ）、データ保証の有無を判定する（ステップＳ１００６）。データ保証有りの場合（ステップＳ１００６：Ｙｅｓ）、管理情報６０１，７０１をキュー３１２に、業務データ群を宛先ごとにレコードとしてファイル３１３（トランザクションを保証するデータベース）に格納する（ステップＳ１００７）。一方、データ保証なしの場合（ステップＳ１００６：Ｎｏ）、管理情報をキュー３１２に、業務データ群を個々のファイル３１３に格納する（ステップＳ１００８）。
【００６９】
この格納処理によれば、データ容量やデータ保証などの運用要件に応じて、適切な記録媒体を選択することができ、並列処理の高速化を図るとともに、リソースの節約化を図ることができる。
【００７０】
つぎに、この発明のフォーマット変換処理手順について説明する。図１１は、この発明のフォーマット変換処理手順を示すフローチャートである。図１１において、まず、結合業務データ６００の管理情報６０１を読み込み（ステップＳ１１０１）、その管理情報６０１の中に優先処理する宛先情報があるか否かを判定する（ステップＳ１１０２）。
【００７１】
優先処理する宛先情報がない場合（ステップＳ１１０２：Ｎｏ）、結合業務データ６００が所定容量以上であるか否かを判定する（ステップＳ１１０３）。所定容量以上である場合（ステップＳ１１０３：Ｙｅｓ）、宛先が複数か否かを判定する（ステップＳ１１０４）。宛先が複数である場合（ステップＳ１１０４：Ｙｅｓ）、複数のスレッドを用いることとなり、宛先ごとの業務データ群を、データ件数の多い順に、スレッドＴ１〜Ｔ３に割り当てる（ステップＳ１１０５）。
【００７２】
そして、多重変換処理、すなわち、スレッドＴ１〜Ｔ３ごとに並列的にフォーマット変換を実行する（ステップＳ１１０６）。未処理の業務データ群がない場合（ステップＳ１１０７：Ｎｏ）、一連のフォーマット変換処理を終了する。一方、未処理の業務データ群がある場合（ステップＳ１１０７：Ｙｅｓ）、空きスレッドがあるときは（ステップＳ１１０８：Ｙｅｓ）、未処理の業務データ群を、データ容量の大きい順に空きスレッドに割り当てる（ステップＳ１１０９）。そして、ステップＳ１１０９のあと、または、ステップＳ１１０８で空きスレッドがないときは（ステップＳ１１０８：Ｎｏ）、ステップＳ１１０７に移行する。
【００７３】
また、ステップＳ１１０２において、優先処理する宛先情報がある場合（ステップＳ１１０２：Ｙｅｓ）、優先順に業務データ群を抽出する（ステップＳ１１１０）。また、ステップＳ１１０３において所定容量以上でない場合（ステップＳ１１０３：Ｎｏ）、使用するスレッドは１つで足りることとなるため、宛先順に業務データ群を抽出する（ステップＳ１１１１）。同様に、ステップＳ１１０４において、宛先が複数でない場合（ステップＳ１１０４：Ｎｏ）も、宛先順に業務データ群を抽出する（ステップＳ１１１１）。
【００７４】
そして、ステップＳ１１１０またはステップＳ１１１１の後、抽出順にフォーマット変換処理を実行する（ステップＳ１１１２）。未処理の業務データ群がある場合（ステップＳ１１１３：Ｙｅｓ）、ステップＳ１１１２に移行する。一方、未処理の業務データ群がない場合（ステップＳ１１１３：Ｎｏ）、一連の処理を終了する。
【００７５】
つぎに、この発明の実施の形態にかかるデータ処理装置１０１の具体的構成例について説明する。図１２は、この発明の実施の形態にかかるデータ処理装置１０１の具体的構成例を示すブロック図である。図１２において、ＥＳＢ１２００は、アダプタ／メッセージバックボーン１２０１、コントローラ１２０２、ルーティング制御１２０３、定義ＧＵＩ１２０４などから構成される。
【００７６】
ＥＳＢ１２００は、ＳＯＡ(Service Oriented Architecture)に基づいたアプリケーション統合のインフラとなるミドルウェアテクノロジーである。ＷｅｂサービスやＪＣＡなどのオープンな標準仕様に準拠して開発されたサービス（アプリケーションやコンポーネント）を相互に連携させるインテグレーションブローカの役割を担う。
【００７７】
アダプタ／メッセージバックボーン１２０１は、各種プロトコルのメッセージ転送や、同期(要求応答型)／非同期(突き放し型)など連携形態に関わる制御をおこなう。コントローラ１２０２は、ＥＳＢ１２００の基本制御エンジンであり、内部のキュー制御、トランザクション制御によるデータの一貫性保証、多重度制御や異常監視機能などを備えたアプリケーション実行制御をおこなう。メッセージ受渡しの共通フレームワークとしてはＪ２ＥＥの非同期通信機能であるＪＭＳ１２０５を用いるとよい。
【００７８】
ルーティング制御１２０３は、メッセージの宛先制御、経路制御および処理プログラムの呼出制御をおこなう。また、ルーティング制御１２０３は、コントローラ１２０２と協調して動作し、入力処理１２０６ａ、振分処理１２０７ａ、変換処理１２０８ａ、出力処理１２０９ａ、同報処理、待合せ処理、集約処理、分割処理、ログ編集、チェック処理、ユーザアプリケーションなどの様々な常駐プロセスの形態の処理プログラム１２０６〜１２０９と、それらの呼び出しを制御する定義で構成される。定義は定義ＧＵＩ１２０４により作成されリポジトリ１２１０に格納される。
【００７９】
ここで、データの流れを波線で示す。業務システム１２２０からＦＴＰ、メッセージキュー、ＳＯＡＰなど様々な通信プロトコルで通信されるデータは、アダプタ／メッセージバックボーン１２０１経由でＪＭＳ１２０５のキュー１２１１を介し入力処理１２０６ａに渡される。以降、ＪＭＳ１２０５のキュー１２１２〜１２１５を契機にイベント通知され、振分処理１２０７ａ、変換処理１２０８ａなどの処理に制御が渡っていく。
【００８０】
最後に出力処理１２０９ａがＪＭＳ１２０５を介してアダプタ／メッセージバックボーン１２０１に処理を渡し、業務システム１２３０にデータを転送する。このシステム連携処理の間、振分処理１２０７ａおよび複数の宛先に振り分けられた一括形式の大容量データまたは複数の宛先のデータは多重で処理され、処理時間の短縮化を図ることができる。
【００８１】
以上説明したように、データ処理装置、データ処理方法、データ処理プログラムおよび記録媒体によれば、システム連携処理において、小容量のデータ連携での性能のみならず、特に基幹システムあるいはその連携などで、データ容量や振分宛先数が多い伝票に対する振分処理および分割された伝票に対するデータ加工などの処理の高速化を図ることができる。
【００８２】
また、宛先毎に振り分けられたデータを構造化した１つの構造に纏め、また、データ容量や運用要件に応じて、適切なデータ記憶媒体において、実行時に自動的に切り換える機構により、処理イベントや入出力回数、メモリなどのリソースの低減化を図ることができる。
【００８３】
振分け処理や振り分けられたデータに対する多重処理方式は、データが大容量の処理や、振分宛先数が多い場合の処理高速化に寄与する。多重処理とそのリソース割り当てを比較的シンプルな方式でおこなうことで、複雑な管理情報が不要でオーバーヘッドの少ない、汎用性のある処理を実現できる。
【００８４】
なお、本実施の形態で説明したデータ処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００８５】
（付記１）異なる宛先が指定された複数のデータの入力を受け付ける入力手段と、
前記入力手段によって入力された複数のデータを所定数のグループに分割する分割手段と、
前記分割手段によって分割された各グループの中から並列にデータを抽出することによって、抽出されたデータを宛先ごとに振り分ける振分け手段と、
前記振分け手段によって振り分けられたデータの集合を、当該集合内のデータに指定された宛先に出力する出力手段と、
を備えることを特徴とするデータ処理装置。
【００８６】
（付記２）前記振分け手段は、
任意の宛先に振り分けられたデータの集合を、前記入力手段による入力順に入れ替えることを特徴とする付記１に記載のデータ処理装置。
【００８７】
（付記３）前記振分け手段によって振り分けられた宛先ごとのデータの集合を前記所定数のスレッドに割り当てることによって、前記各スレッドに割り当てられたデータの集合を、当該集合内のデータに指定された宛先に応じて並列に変換する変換手段を備え、
前記出力手段は、
前記変換手段によって変換されたデータの集合を、当該集合内のデータに指定された宛先に出力することを特徴とする付記２に記載のデータ処理装置。
【００８８】
（付記４）前記振分け手段によって振り分けられた宛先ごとのデータの集合を前記所定数のスレッドに割り当てることによって、前記各スレッドに割り当てられたデータの集合を、当該集合内のデータに指定された宛先に応じて並列に検査する検査手段を備え、
前記出力手段は、
前記検査手段によって検査されたデータの集合を、当該集合内のデータに指定された宛先に出力することを特徴とする付記２に記載のデータ処理装置。
【００８９】
（付記５）前記振分け手段によって振り分けられたデータの集合のデータ容量が、所定のしきい値以上であるか否かを判定する判定手段と、
前記振分け手段によって振り分けられたデータの集合を、複数種類の格納媒体のうち、前記判定手段によって判定された判定結果に応じた格納媒体に格納する格納手段と、を備え、
前記変換手段は、
前記格納手段によって格納されたデータの集合を前記所定数のスレッドに割り当てることを特徴とする付記３に記載のデータ処理装置。
【００９０】
（付記６）前記変換手段によって変換されたデータの集合のデータ容量が、所定のしきい値以上であるか否かを判定する判定手段と、
前記変換手段によって変換されたデータの集合を、複数種類の格納媒体のうち、前記判定手段によって判定された判定結果に応じた格納媒体に格納する格納手段と、を備え、
前記出力手段は、
前記格納手段によって格納されたデータの集合を、当該集合内のデータに指定された宛先に出力することを特徴とする付記３に記載のデータ処理装置。
【００９１】
（付記７）前記振分け手段によって振り分けられた宛先ごとのデータの集合を前記所定数のスレッドに割り当てることによって、前記各スレッドに割り当てられたデータの集合を、当該集合内のデータに指定された宛先に応じて並列に検査する検査手段を備え、
前記出力手段は、
前記検査手段によって検査されたデータの集合を、当該集合内のデータに指定された宛先に出力することを特徴とする付記２に記載のデータ処理装置。
【００９２】
（付記８）異なる宛先が指定された複数のデータを入力する入力工程と、
前記入力工程によって入力された複数のデータを所定数のグループに分割する分割工程と、
前記分割工程によって分割された各グループの中から並列にデータを抽出することによって、抽出されたデータを宛先ごとに振り分ける振分け工程と、
前記振分け工程によって振り分けられたデータの集合を、当該集合内のデータに指定された宛先に出力する出力工程と、
を含んだことを特徴とするデータ処理方法。
【００９３】
（付記９）異なる宛先が指定された複数のデータを入力させる入力工程と、
前記入力工程によって入力された複数のデータを所定数のグループに分割させる分割工程と、
前記分割工程によって分割された各グループの中から並列にデータを抽出することによって、抽出されたデータを宛先ごとに振り分けさせる振分け工程と、
前記振分け工程によって振り分けられたデータの集合を、当該集合内のデータに指定された宛先に出力させる出力工程と、
をコンピュータに実行させることを特徴とするデータ処理プログラム。
【００９４】
（付記１０）付記９に記載のデータ処理プログラムを記録したコンピュータに読み取り可能な記録媒体。
【産業上の利用可能性】
【００９５】
以上のように、本発明にかかるデータ処理装置、データ処理方法、データ処理プログラムおよび記録媒体は、ＨＴＴＰ、ＳＯＡＰ、ＪＭＳなどの標準的なプロトコルに対応し、パブリッシュ＆サブスクライブ、ストア＆フォワード・メッセージ伝送、同期／非同期連携、ルーティング、ＸＭＬ、変換などの機能を提供し、広域に分散しているサービスを統合する。実際では、レガシー接続機能を併せ持ち、ＥＡＩの用途で使用することができる。
【図面の簡単な説明】
【００９６】
【図１】この発明の実施の形態にかかるＥＡＩを示すシステム構成図である。
【図２】この発明の実施の形態にかかるデータ処理装置１０１等のハードウェア構成を示すブロック図である。
【図３】この発明の実施の形態にかかるデータ処理装置の機能的構成を示すブロック図である。
【図４】この発明の実施の形態にかかる入力処理を示す説明図である。
【図５】この発明の実施の形態にかかる振分け処理を示す説明図である。
【図６】結合業務データを示す説明図である。
【図７】この発明の実施の形態にかかるフォーマット変換処理を示す説明図である。
【図８】この発明の実施の形態にかかるデータ処理装置のデータ処理手順を示すフローチャートである。
【図９】この発明の実施の形態にかかる振分け処理を示すフローチャートである。
【図１０】この発明の実施の形態にかかる格納処理を示すフローチャートである。
【図１１】この発明のフォーマット変換処理手順を示すフローチャートである。
【図１２】この発明の実施の形態にかかるデータ処理装置の具体的構成例を示すブロック図である。
【図１３】従来のＥＡＩを示すシステム構成図である。
【符号の説明】
【００９７】
１０１  データ処理装置
３０１  入力部
３０２  多重度設定部
３０３  振分け部
３０４  変換部
３０５  判定部
３０６  格納部
３０７  出力部
３１０  分割部
【図１】
2006215968.tif 000003
【図２】
2006215968.tif 000004
【図３】
2006215968.tif 000005
【図４】
2006215968.tif 000006
【図５】
2006215968.tif 000007
【図６】
2006215968.tif 000008
【図７】
2006215968.tif 000009
【図８】
2006215968.tif 000010
【図９】
2006215968.tif 000011
【図１０】
2006215968.tif 000012
【図１１】
2006215968.tif 000013
【図１２】
2006215968.tif 000014
【図１３】
2006215968.tif 000015