(57)【要約】【課題】複数ページある帳票ファイルを別々の装置で分散して生成させることを可能とする。【解決手段】帳票の形式を定義するフォームファイルと、フォームファイルに対応するデータファイルとを用いて帳票ファイルを生成する際に、データファイルを、所定の条件から求められるサイズに分割し、分割データファイルと、対応する前記フォームファイルとを、複数のコンピュータに送信し、複数のコンピュータでオーバーレイ処理された帳票ファイルの一部のファイルを受け取り、分割した順序で帳票ファイルを生成する。【選択図】図１
2010146351.tif 000002
【特許請求の範囲】
【請求項１】
帳票の形式を定義するフォームファイルと、当該フォームファイルに対応するデータファイルとを用いて帳票ファイルを生成する情報処理装置であって、
指定された前記フォームファイルと前記データファイルとを用いて前記帳票ファイルの生成の要求を受け付ける受付手段と、
前記受付手段により受け付けたデータファイルを、所定の条件から求められるサイズに分割する分割手段と、
前記分割手段により分割した複数の分割データファイルと、当該分割データファイルに対応する前記フォームファイルとを、それぞれの前記コンピュータに送信する送信手段と、
前記送信手段により送信した、分割データファイルの分割の順序を管理する管理手段と、
前記複数のコンピュータによりそれぞれオーバーレイ処理されることにより生成された複数の前記帳票ファイルの一部のファイルを受信する受信手段と、
前記受信手段により受信した複数の前記帳票ファイルの一部のファイルを、前記管理手段により管理される順序で結合して前記帳票ファイルを生成する生成手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記受信手段により集計用データを受信した場合、当該集計用データを用いて、集計結果を算出する集計手段を更に有し、
前記生成手段は、前記集計手段による集計結果を反映させて、前記帳票ファイルを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記受信手段により集計用データを受信した場合、当該集計用データが複数のコンピュータにより生成された集計用データに分散している場合、前記集計手段は、分散している集計用データを用いて再集計することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記帳票ファイルの一部を生成させる複数のコンピュータの処理能力情報を記憶する記憶手段と、
前記分割手段は、前記記憶手段により記憶される処理能力情報に応じて前記サイズを算出することを特徴とする請求項１乃至３に記載の情報処理装置。
【請求項５】
帳票の形式を定義するフォームファイルと、当該フォームファイルに対応するデータファイルとを用いて帳票ファイルを生成する情報処理装置と、フォームファイルとデータファイルをオーバーレイ処理する複数のコンピュータがネットワークを介して通信可能な情報処理システムであって、
前記情報処理装置は、
指定された前記フォームファイルと前記データファイルとを用いて前記帳票ファイルの生成の要求を受け付ける受付手段と、
前記受付手段により受け付けたデータファイルを、所定の条件から求められるサイズに分割する分割手段と、
前記分割手段により分割した複数の分割データファイルと、当該分割データファイルに対応する前記フォームファイルとを、それぞれの前記コンピュータに送信する送信手段と、
前記送信手段により送信した、分割データファイルの分割の順序を管理する管理手段と、
前記複数のコンピュータによりそれぞれオーバーレイ処理されることにより生成された複数の前記帳票ファイルの一部のファイルを受信する受信手段と、
前記受信手段により受信した複数の前記帳票ファイルの一部のファイルを、前記管理手段により管理される順序で結合して前記帳票ファイルを生成する生成手段とを有し
前記複数のコンピュータは、
前記送信手段により送信された前記分割データファイルと、当該分割データファイルに対応する前記フォームファイルを受信して、当該分割データファイルおよびフォームファイルを用いてオーバーレイ処理を実行するオーバーレイ処理手段と
前記オーバーレイ手段により生成された前記帳票ファイルの一部のファイルを前記情報処理装置へ送信するファイル送信手段と
を有することを特徴とする情報処理システム。
【請求項６】
帳票の形式を定義するフォームファイルと、当該フォームファイルに対応するデータファイルとを用いて帳票ファイルを生成する情報処理装置の制御方法であって、
指定された前記フォームファイルと前記データファイルとを用いて前記帳票ファイルの生成の要求を受け付ける受付ステップと、
前記受付ステップにより受け付けたデータファイルを、所定の条件から求められるサイズに分割する分割ステップと、
前記分割ステップにより分割した複数の分割データファイルと、当該分割データファイルに対応する前記フォームファイルとを、それぞれの前記コンピュータに送信する送信ステップと、
前記送信ステップにより送信した、分割データファイルの分割の順序を管理する管理ステップと、
前記複数のコンピュータによりそれぞれオーバーレイ処理されることにより生成された複数の前記帳票ファイルの一部のファイルを受信する受信ステップと、
前記受信ステップにより受信した複数の前記帳票ファイルの一部のファイルを、前記管理ステップにより管理される順序で結合して前記帳票ファイルを生成する生成ステップと
を有することを特徴とする情報処理装置の制御方法。
【請求項７】
帳票の形式を定義するフォームファイルと、当該フォームファイルに対応するデータファイルとを用いて帳票ファイルを生成する情報処理装置において実行可能なプログラムであって、
指定された前記フォームファイルと前記データファイルとを用いて前記帳票ファイルの生成の要求を受け付ける受付手段、
前記受付手段により受け付けたデータファイルを、所定の条件から求められるサイズに分割する分割手段、
前記分割手段により分割した複数の分割データファイルと、当該分割データファイルに対応する前記フォームファイルとを、それぞれの前記コンピュータに送信する送信手段、
前記送信手段により送信した、分割データファイルの分割の順序を管理する管理手段、
前記複数のコンピュータによりそれぞれオーバーレイ処理されることにより生成された複数の前記帳票ファイルの一部のファイルを受信する受信手段、
前記受信手段により受信した複数の前記帳票ファイルの一部のファイルを、前記管理手段により管理される順序で結合して前記帳票ファイルを生成する生成手段
として前記情報処理装置を機能させることを特徴とするプログラム。
【請求項８】
請求項７に記載のプログラムをコンピュータ読み取り可能に記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、帳票の形式を定義するフォームファイルと、帳票の実データファイルとを用いて帳票データを生成する帳票生成システムの分野において、帳票生成を複数のコンピュータに分散処理させる技術に関する。
【背景技術】
【０００２】
帳票の形式を定義するフォームファイルと、帳票の実データファイルとを用いて帳票ファイルを生成する帳票生成システムがある。
【０００３】
現在の帳票生成システムでは、サーバが帳票生成を行っているため、大量の帳票ファイルを生成する場合、サーバの処理負担が大きくなることから、帳票生成の処理を分散する技術が望まれている。
【０００４】
ここで、帳票生成の分散処理を実現するためには、複数ページある帳票ファイルを別々の装置で分散生成する場合に生じる次の課題を解決しなければならない。
【０００５】
（１）別々に生成された帳票ファイルの結合順序を解決する必要がある。
【０００６】
（２）表の途中で実データが区切れた際の処理を解決する必要がある。
【０００７】
（３）集計用の実データが別々の帳票ファイルにまたがっている際の集計を解決する必要がある。
【０００８】
（４）２．３．の組み合わせで発生するブレイク（強制的にされる改行）を解決する必要がある。
【０００９】
特許文献１および特許文献２には、帳票生成システムにおける分散処理技術が開示されている。
【００１０】
また、特許文献３には、帳票データを分割して処理し、生成したページから順次印刷する技術が、特許文献４には、各種データ（オーバーレイを含む）を分散処理する技術が開示されている。
【特許文献１】特開２００６−２５９９９６号公報
【特許文献２】特開２００６−１４６７２６号公報
【特許文献３】特開２００５−５００４４号公報
【特許文献４】特開平８−１９０５４４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１および特許文献２に記載の分散処理技術は、オーバーレイ時の処理に言及しているだけで、複数ページある帳票ファイルを別々の装置で分散生成するものではない。
【００１２】
また、特許文献３に記載の技術は、帳票データが全て生成される前に印刷を開始することにより全体のスループット向上を実現するものであり、特許文献４に記載の技術は、帳票生成システムに特化したものではなく、一般的な概念を述べたものであり、いずれも複数ページある帳票ファイルを別々の装置で分散生成するものではない。
【００１３】
本発明は、上記課題を解決するものであり、複数ページある帳票ファイルを別々の装置で分散して生成させることを可能とする。
【課題を解決するための手段】
【００１４】
本発明は、帳票の形式を定義するフォームファイルと、当該フォームファイルに対応するデータファイルとを用いて帳票ファイルを生成する情報処理装置であって、指定された前記フォームファイルと前記データファイルとを用いて前記帳票ファイルの生成の要求を受け付ける受付手段と、前記受付手段により受け付けたデータファイルを、所定の条件から求められるサイズに分割する分割手段と、前記分割手段により分割した複数の分割データファイルと、当該分割データファイルに対応する前記フォームファイルとを、それぞれの前記コンピュータに送信する送信手段と、前記送信手段により送信した、分割データファイルの分割の順序を管理する管理手段と、前記複数のコンピュータによりそれぞれオーバーレイ処理されることにより生成された複数の前記帳票ファイルの一部のファイルを受信する受信手段と、前記受信手段により受信した複数の前記帳票ファイルの一部のファイルを、前記管理手段により管理される順序で結合して前記帳票ファイルを生成する生成手段とを有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、上記課題を解決するものであり、複数ページある帳票ファイルを別々の装置で分散して生成させることができる。
【発明を実施するための最良の形態】
【００１６】
図１〜図１９を用いて、本発明を説明する。
【００１７】
図１は、本発明の実施形態の帳票生成システムにおける分散処理の構成を示す図である。
【００１８】
帳票生成システム（または帳票生成サーバ、情報処理装置。以下、同じ。）１０１、コンピュータ１０２、１０３、１０４、１０５（以下、資源という。また、資源数はいくつでもよい。）、およびクライアント１１７とがネットワークを介して通信可能に接続されている。
【００１９】
帳票生成システム１０１は、同一ネットワークに繋がった資源の情報を取得・管理する機能および、資源に対して帳票生成プログラム１０８を配信し、その実行を指示する機能を備える。
【００２０】
図１９に帳票生成プログラム１０８の配信の流れを示す。
【００２１】
ステップＳ２００１において、帳票生成システム１０１は、帳票生成プログラム１０８を配信する。配信方法としては、（１）ｐｕｓｈ型による配信（２）ＡｃｔｉｖｅＸによる配信等がある。ステップＳ２００２において、各資源は、帳票生成プログラム１０８を受信する。ステップＳ２００３において、各資源は、帳票生成プログラム１０８を起動する。なお、各資源は、帳票生成システム１０１の指示に従って、帳票生成プログラム１０８を実行する機能を備える。また、帳票生成システムは、配信先の資源を管理することで、分散処理に用いることができる資源を把握することが可能となる。
【００２２】
次に、クライアント１１７は、帳票生成システム１０１に対して、帳票ファイル（または帳票データ。以下同じ。）の生成を要求するコンピュータである。
【００２３】
次に、本実施の形態における処理の全体の流れを説明する。
【００２４】
まず、帳票生成システム１０１は、クライアント１１７（またはバッチ用プログラム１１８）からフォームファイル１０６（例えば、図１５）とデータファイル１０７（例えば、図１６）が指定されることにより処理を開始する。
【００２５】
帳票生成システム１０１は、クライアント１１７から指定されたフォームファイル１０６とデータファイル１０７とを取得し、各資源に分散処理させるための分割データファイル１１９〜１２２を生成する。
【００２６】
この各分割ファイルデータは、各資源の処理能力に応じてデータファイル１０７から生成する。
【００２７】
そして、帳票生成システム１０１は、各資源の帳票生成プログラム１０８に対して実行を指示すると共に、実行に必要なフォームファイル１０６および分割データファイル１１９〜１２２を送信する。
【００２８】
なお、分散データファイルは、各資源が平均的に生成できるデータ量から生成しているため、各資源が生成するファイルは、完全な帳票ファイルであるとは限らず、場合によっては帳票ファイルの一部分が生成されることになる。つまり、複数ページを有する帳票ファイルＡを生成する場合、資源１０２が、あるページまでのファイルＡ１を生成し、資源１０３が、あるページ以降のファイルＡ２を生成することがある。この場合、ファイルＡ１とファイルＡ２を結合することにより帳票ファイルＡが生成される。
【００２９】
各資源１０２〜１０５の帳票生成プログラム１０８は、帳票生成システム１０１から受信したフォームファイル１０６と分割データファイル１１９〜１２２を用いて、それぞれファイル１０９〜１１２を生成（オーバーレイ）し、生成したファイルと、その情報と（帳票名・集計用データなど）を帳票生成システムへ送信する。
【００３０】
帳票生成システム１０１は、各資源から受信したファイル１０９〜１２２等と、自身が保持するインデックスデータを基に結合することで、帳票ファイル１１３〜１１６を生成する。また、集計用データを用いて集計を行い、その結果も反映させる。
【００３１】
図２は、帳票生成サーバのハードウェア構成を示す図である。
【００３２】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ(Basic Input / Output System)やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な各種プログラム（本実施の形態では、帳票生成グリッドコンピューティングプログラム）等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。また、入力コントローラ（入力Ｃ）２０５は、キーボード２０９や不図示のマウス等のポインティングデバイスからの入力を制御する。ビデオコントローラ（ＶＣ）２０６は、ＣＲＴディスプレイ（ＣＲＴ）２１０等の表示器にへの表示を制御する。表示器はＣＲＴだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。本発明には直接関係があるものではない。メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフロッピー（登録商標）ディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ２１１へのアクセスを制御する。通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。なお、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ＣＲＴ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３３】
なお、外部メモリ２１１には、後述するインデックステーブル３０１、集計用テーブル４０１、処理能力テーブル５０１が記憶される。
【００３４】
また、資源１０２〜１０５のハードウェア構成図も同様であるため、説明は省略する。
【００３５】
図３は、本発明の実施形態の帳票生成サーバにおけるインデックステーブルを示す図である。
【００３６】
インデックステーブル３０１は、帳票生成システム１０１が、各資源１０２〜１０５へ送信した情報を管理するテーブルである。なお、項目「Ｉｎｄｅｘ」は、本テーブルにおける各レコードを特定する一意の値である。項目「資源」は、各資源の名前である。項目「帳票ファイル名」は、各資源で作成されるファイルの名前である。項目「フォームファイル」は、フォームファイルの名前である。項目「データファイル」は、分割したデータファイルの名前である。項目「結合順序」は、結合順序を示す数字であり、結合時に用いる。
【００３７】
図４は、本発明の実施形態の帳票生成サーバにおける集計用テーブルを示す図である。
【００３８】
集計用テーブルは、各資源にて生成する分割データファイルに含まれる集計用データのフォーマット例を示しているが、これに限られるものではない。
【００３９】
図５は、本発明の実施形態の帳票生成サーバにおける処理能力テーブルを示す図である。
【００４０】
処理能力テーブル５０１は、帳票生成システム１０１が、各資源１０２〜１０５の処理能力を判定する際に用いるものである。なお、項目「資源」は、資源の名前である。項目「ＣＰＵ」は、各資源のＣＰＵ処理能力を示す。項目「メモリ」は、各資源のメモリ量を示す。項目「データサイズ」は、データサイズを示す。項目「能力値」は、各資源の平均に対する処理能力を示す値である。
【００４１】
次に、帳票生成サーバの基本的な処理フローについて、図６を用いて説明する。
【００４２】
図６は、本発明の実施形態における全体の流れを示すフローチャートである。
【００４３】
まず、ステップＳ６０１において、帳票生成サーバは、クライアント１１７（または、バッチ用プログラム１１８）からフォームファイルとデータファイルが指定されることで帳票生成の処理を開始する。
【００４４】
ステップＳ６０２において、帳票生成サーバは、図５に示す処理能力テーブル５０１を作成する。処理能力テーブルの作成方法については、図７を用いて後に説明する。
【００４５】
ステップＳ６０３において、帳票生成サーバは、ステップＳ６０２において作成した処理能力テーブル５０１を基に、指定されたデータファイルから、各資源が平均的に処理ができるように、各資源へ送信するための分割データファイルを生成する。分割データファイルの生成方法については、図８、図９を用いて後に説明する。
【００４６】
ステップＳ６０４において、帳票生成サーバは、ステップＳ６０３において生成した分割データファイルと、ステップＳ６０１においてクライアント１１７から指定されたフォームファイルとを各資源へ送信すると共に、各資源の帳票生成プログラムに対して実行を指示する。
【００４７】
例えば、帳票ファイルＡを生成するにあたり、クライアントからフォームファイルＡおよびデータファイルＡが指定された場合、フォームファイルＡについては全ての資源に共通に、データファイルＡについては、それぞれの資源毎に作成された分割データファイルＡ１、分割データファイルＡ２、分割データファイルＡ３等として送付する。
【００４８】
また、ステップＳ６０８において、帳票生成サーバは、各資源へ送信した分割データファイル、フォームファイル、結合順序等を保持するインデックステーブルを作成する。
【００４９】
次に、ステップＳ６０５において、各資源は、ステップＳ６０４において帳票生成サーバから送信されたフォームファイルと分割データファイルを受信する。
【００５０】
ステップＳ６０６において、各資源は、ステップＳ６０５において受信したフォームファイルと分割データファイルを用いてオーバーイ処理と集計処理を行う。オーバーレイ処理については、図１０を用いて、集計処理については、図１１を用いて後に説明する。
【００５１】
ステップＳ６０７において、各資源は、オーバーレイ処理して生成したファイル（帳票ファイルの一部分）を帳票生成サーバへ送信する。
【００５２】
そして、ステップＳ６０９において、帳票生成サーバは、各資源から複数のファイルを受信した後、Ｓ６０８において作成したインデックステーブルを用いて、帳票ファイルを結合する。この結合をする処理については、図１２〜１８を用いて後に説明する。
【００５３】
ステップＳ６１０において、帳票生成サーバは、ステップＳ６０９において、結合した帳票ファイルを出力して処理を終了する。
【００５４】
図７は、本発明の実施形態における処理能力テーブルを作成する流れを示すフローチャートである。
【００５５】
図７は、図６におけるステップＳ６０２の詳細な処理の流れを説明するものであり、帳票生成サーバにおける処理である。
【００５６】
ステップＳ７０１において、帳票生成プログラムがインストールされた資源から、「ＣＰＵ能力・Ｈｚ」「メモリ」等の資源の処理能力を測るための指標となる情報を取得する。
【００５７】
ステップＳ７０２において、あらかじめ用意されている標準的なコンピュータの処理能力を基準として、ステップＳ７０３において取得した各資源の処理能力を算出する。
【００５８】
例えば、ＣＰＵ２．８ＧＨｚ、メモリ５１２ＭＢであるコンピュータの能力値を「１」とした場合における、各資源の能力値を算出するための算出式の一例を示す。
【００５９】
（能力値の算出式）＝資源ＣＰＵ（ＧＨｚ）／平均ＣＰＵ（ＧＨｚ）＋０．５×資源メモリ（ＭＢ）／平均メモリ（ＭＢ）
この場合、ＣＰＵ３．２ＧＨｚ、メモリ１０２４ＭＢである資源（図５の処理能力テーブルにおけるＧｒｉｄＡの場合）の能力値は下記の通り算出される。
【００６０】
３．２ＧＨｚ／２．８ＧＨｚ＋０．５×（１０２４（ＭＢ）／５１２（ＭＢ））＝１．６４  （およそ１．７）
なお、この例では、ＣＰＵのクロック数に重点をおいた能力値算出方法を用いているが、例えば、メモリを重視する能力算出方法を用いることも可能であり、また、その他の能力算出方法を用いてもよい。
【００６１】
ステップＳ７０３において、算出した能力値を元に処理能力テーブルを作成または更新して処理を終了する。作成または更新した処理能力テーブルは図５に示すとおりである。
【００６２】
図８は、本発明の実施形態におけるデータファイルを分割する流れを示すフローチャートである。
【００６３】
図８は、図６におけるステップＳ６０３の詳細な処理の流れを説明するものであり、帳票生成サーバにおける処理である。
【００６４】
ステップＳ８０１において、図５に示す処理能力テーブル５０１を用いて、各資源の処理能力に合わせてデータファイル１０６を分割するための分割サイズを取得する。分割サイズの取得方法については、図９を用いて後に説明する。
【００６５】
ステップＳ８０２において、取得した分割サイズを用いて、データファイル１０７から分割データファイル１１９を作成すると共に、図３に示すインデックスデータ３０１を作成する。  
例えば、１ＧＢのデータファイル１０７を３つの資源に分散する場合であって、ステップＳ８０１において、分割サイズが、資源名ＧｒｉｄＡは４８６ＭＢ、資源名ＧｒｉｄＢは３７２ＭＢ、資源名ＧｒｉｄＣは１４２ＭＢとそれぞれ算出された場合、データファイル１０７をそれぞれのサイズに分割することで３つの分割データファイル１１９を作成する。
【００６６】
なお、データファイルの分割については一般的に知られているアルゴリズムを用いるが、帳票ファイル特有の分割手段として、「行」という概念で区切るため、分割サイズが４８６ＭＢであったとしても、必ずしも正確に４８６ＭＢで区切ることができるとは限らない。
【００６７】
次に、インデックステーブルへ、分割したデータファイルの名称を登録する。図３に示す例ではデータファイル名として、ＧｒｉｄＡから順に「２００８１０＿１」「２００８１０＿２」「２００８１０＿３」としているが、この名称は任意でよい。
【００６８】
また、インデックステーブルへ、帳票生成サーバ１０１が後に、各資源から受信した帳票ファイルを結合する際に処理やし易いよう、例えば、ＧｒｉｄＡから順に「ファイルＡ１」「ファイルＡ２」「ファイルＡ３」のような分かり易い名称を登録する。
【００６９】
また、インデックステーブルへ、分割したデータファイル１０６を、分割した順序どおり結合するための結合順序を登録する。
【００７０】
また、インデックステーブルへ、分割したデータファイルに対応するフォームファイル名を登録する。
【００７１】
インデックスデータを作成した後、処理を終了する。
【００７２】
図９は、本発明の実施形態における分割サイズを算出する処理の流れを示すフローチャートである。
【００７３】
図９は、図８におけるステップＳ８０１の詳細な処理の流れを説明するものであり、帳票生成サーバにおける処理である。
【００７４】
ステップＳ９０１において、処理能力テーブルから各資源の能力値を取得する。
【００７５】
ステップＳ９０２において、取得した各資源の能力値と、クライアントから指定されたデータファイル１０６のファイルサイズとを用いて、分割サイズを算出する。
【００７６】
次に、図５に示す処理能力テーブルを用いて、データファイル１０６のファイルサイズが１ＧＢの場合に分割サイズを算出する例を説明する。
【００７７】
まず、各資源の能力値の合計を算出する１．７＋１．３＋０．５＝３．５）。次に、能力値単位あたりのファイルサイズを算出する（１ＧＢ  ÷  ３．５  ＝  約２８６ＭＢ）。この値と能力値を積算することで、各資源の分割サイズを算出する（ＧＲＩＤＡ処理サイズ：２８６ＭＢ×１．７＝４８６ＭＢ、ＧＲＩＤＢ処理サイズ：２８６ＭＢ×１．３＝３７２ＭＢ、ＧＲＩＤＣ処理サイズ：２８６ＭＢ×０．５＝１４２ＭＢ）。
【００７８】
そして、算出した分割サイズを目安に、データファイルを１行単位で区切る（１行単位とする理由は、帳票のデータファイルは、ＣＳＶファイル形式のような形式で、１行に意味を持つためである。）
分割サイズを確定して処理を終了する。
【００７９】
図１０は、本発明の実施形態における資源側における処理の流れを示すフローチャートである。
【００８０】
図１０は、図６におけるステップＳ６０６の詳細な処理の流れを説明するものであり、各資源において実行される処理である。
【００８１】
ステップＳ１１０１において、各資源は、図６に示すステップＳ６０５において、受信したフォームファイルおよび分割データファイルを用いて、オーバーレイ処理を実行する。オーバーレイ処理とは、ファームファイルとデータファイルから視覚的に帳票イメージを表示可能な帳票ファイルを生成するための処理である。
【００８２】
ここでは、各資源は、ページの概念のない帳票ファイルを生成する（図１０の１１０３にページの概念のない帳票イメージを示す。）
なお、分割データファイルには、ページ切替命令が入っているため、ここで生成した帳票ファイルを実際に印刷すると、複数ページ印刷されることとなる（区切り箇所は、図１０に示す「ページ区切りデータ」の部分。）
ステップＳ１１０２において、集計用データを生成して処理を終了する。集計用データは、分割データファイルに集計命令がある場合に生成するものであり、オーバーレイ処理がされた後の、帳票イメージ上において集計用データが配置される場所（集計フィールドという。）から集計用データを抜き出す。集計用データのフォーマットは、例えば図４に示すとおりである。
【００８３】
図１０に示す例では、「ａ，ｂ，５０」「ａ，ｂ，１００」「ａ，ｃ，５０」の３つの集計用データが抽出される。例えば、ａ＝部名、ｂ＝課名、とすると、「ａ部ｂ課の金額５０」、「ａ部ｂ課の金額１００」「ａ部ｃ課の金額５０」といった集計用データが生成されることとなる。
【００８４】
なお、分割データファイルは、任意の場所でデータファイルを区切っているため、複数行からなる集計用データ配置領域が途中で分割されることがある。従って、ここで生成した集計用データはあくまでも一時的な集計用データとして取り扱われる。
【００８５】
これは、ある資源は、自分以外の資源に送信された分割データファイルを持っていないため、集計用データとして抽出することができる範囲は、自分が生成可能な領域に限られるからである。
【００８６】
この集計用データは、後に帳票生成サーバにおいて結合する際に用いられる。結合する際に最終的な集計用データを取得することができる。
【００８７】
ところで、図６に示すステップＳ６０４において、帳票生成サーバは、分割データファイルと、それぞれに対応するフォームファイルとを各資源へ送信しているが、各資源がオーバーレイ処理をする際に必要となる全てのフォームファイルを送信するとは限らない。
【００８８】
何故なら、ステップＳ６０４において、各資源に送信するフォームファイルは、分割データファイルの最初のページに対応するフォームのみを送信しているからである。
【００８９】
例えば、図１８に示す例の場合、本来分割データファイルには、フォーム名：「表紙」と「勘定元帳」が必要となるが、ステップＳ６０４では、「表紙」しか送信しない。（図１６に示す例の場合は、フォームファイルは一つだけとなる。）
帳票生成サーバ側で、フォームファイルとデータファイルのマッピングを行えば、分割データファイルそれぞれに必要な全てのフォームを抽出することが可能であるが、このように分割データファイルの最初のページに対応するフォームデータのみを送信しているのは、帳票生成サーバの処理の負担を軽減するためである。
【００９０】
即ち、必要なフォームファイルの抽出処理を各資源に委ねることで効率的な分散処理を実現している。
【００９１】
図１１は、本発明の実施形態における資源側におけるフォームファイル取得の流れを示すフローチャートである。
【００９２】
図１１は、図１０におけるステップＳ１１０１に置き換えることができる。
【００９３】
ステップＳ１２０１において、各資源は、オーバーレイ処理を実行する。この処理は、図１０のＳ１１０１と同様である。
【００９４】
ステップＳ１２０２において、各資源は、分割データファイルにフォーム切替命令があるかを判定する。フォーム切替命令がない場合は、処理を終了し、フォーム切替命令がある場合は、ステップＳ１２０３へ進む。
【００９５】
ステップＳ１２０３において、各資源は、帳票生成サーバから対応するフォームファイルを取得する。一度取得したフォームファイル１０６は、ＨＤＤに保存するため、既に取得済みの場合は、ＨＤＤから取得する。
【００９６】
ステップＳ１２０４において、各資源は、取得したフォームファイルに切り替えて、ステップＳ１２０１において、オーバーレイ処理を実施する。
【００９７】
分割データファイルが終了するまで実施して処理を終了する。
【００９８】
図１２は、本発明の実施形態における帳票生成の処理の流れを示すフローチャートである。
【００９９】
図１２は、図６におけるステップＳ６０９の詳細な処理の流れを説明するものであり、帳票生成サーバにおいて実行される処理である。
【０１００】
ステップＳ１３０１において、各資源においてオーバーレイ処理された生成されたファイルとそれぞれの集計用データを受信する。例えば、ファイルＡ１とその集計用データ、ファイルＡ２とその集計用データ、ファイルＡ３とその集計用データというように。
【０１０１】
ステップＳ１３０２において、受信したファイルと図３に示すインデックステーブルを用いることで、各ファイルを結合して帳票ファイルを取得する。ここで、結合した帳票ファイルとフォームファイルとを比較して、不整合が生じていた場合は、区切り位置を変更する。不整合が生じていない場合は、区切り位置の変更は行わない。不整合が生じている場合を次に説明する。
【０１０２】
例えば、図１５に示すように、文字列が入る行が５行で、「課売上」「部売上」の２行入る集計用の領域がフォームファイルに定義されている場合、区切り位置を変更する方法を、図１７を用いて説明する。
【０１０３】
図１７に示す上左の図において、結合した帳票ファイルには、１ページ目と２ページ目に集計用の領域が生成されている。しかし、本来の集計用領域は、図１５に示すとおり文字列の行が５行にもかかわらず、３行しかないため、この場合、区切り位置を変更しなければならないと判断する。な、２ページ目の最初に「部名」「課名」「金額」を項目に持つ集計用の領域が存在することからも不整合が生じていることが分かる。
【０１０４】
この場合、区切り位置は、２行足りないため２行繰上げる（図１７に示す右上の図を参照。）。
【０１０５】
また、１ページ目の「課売上」と「部売上」は、一時的に算出された集計データであるためここでは削除する。
【０１０６】
なお、このように本来５行の集計用の領域が３行となるのは、分割データファイルが任意のページで分割され、それぞれの資源に送信されるためである。
【０１０７】
各資源では、とりあえず取得した分割データファイルを元に集計用領域をオーバーレイ処理するためこのような矛盾が生じる。
【０１０８】
そして、図１７に示す左下のように区切り位置を修正した後、四角で囲われる領域もまた、２ページ目の一時的に算出された集計であるため、再集計する必要が生じる。
【０１０９】
再集計することで、図１７に示す右下の図のように正しい値が算出される。
【０１１０】
なお、この再集計および集計結果の配置は、ステップＳ１３０３およびＳ１３０４において実行される。ステップＳ１３０３における集計方法に図１４を用いて後に説明する。
【０１１１】
ステップＳ１３０５において、ページ区切り命令に従って、改ページを行う（ブレイクが発生している場合にはブレイクを優先し改ページを実施する）。そして、各ページにページ番号を付与して処理を終了する。
【０１１２】
図１４は、本発明の実施形態における集計の処理の流れを示すフローチャートである。
【０１１３】
図１４は、図１２におけるステップＳ１３０３の詳細な処理の流れを説明するものであり、帳票生成サーバにおいて実行される処理である。
【０１１４】
ステップＳ１５０１において、受信した集計用データがあるだけ処理を繰り返す。
【０１１５】
ステップＳ１５０２において、集計用データの内容をチェックし、ステップＳ１５０３において、一致する集計データがあるかの判定を行う。一致する集計データがある場合は、ステップＳ１５０４へ進み、一致する集計データがない場合は、ステップＳ１５０５へ進む。
【０１１６】
ステップＳ１５０４において、一致する値を合算する。例えば、変数（ｂ）に代入することで合算する。
【０１１７】
ステップＳ１５０５において、新しい値として合算する。例えば、変数（ｃ）に代入することで合算する。
【０１１８】
そして、集計用データがあるだけ処理が繰り返される。
【０１１９】
次に、上記処理の流れを、具体例を示して説明する。
【０１２０】
ここでは、３つの資源に分散データファイルを分散させ、それぞれから集計用データを受信した例を挙げる。
【０１２１】
「ＧｒｉｄＡ」からは、（小計データｂ：１５０、小計データｃ：５０、全体計データａ：２００）を受信する。
【０１２２】
「ＧｒｉｄＢ」からは、（小計データｃ：５５０、全体計データａ：５５０）を受信する。
【０１２３】
「ＧｒｉｄＣ」からは、（小計データｄ：３００、全体計データａ：３００）を受信する。
【０１２４】
まず、はじめにＧｒｉｄＡの集計データをＲＡＭ等に読み込んだ後、ＧridＢの集計データを上から順に取得する。最初の小計データｃ:５５０は、ＧｒｉｄＡと一致するものがあるので、既に読み込まれているＧｒｉｄＡの（ｃ）＝５０と合算して、（ｃ）＝６００をＲＡＭ等に読み込む。そして、次の小計データａ：５５０は、ＧｒｉｄＡと一致するものがあるので、既に読み込まれているＧｒｉｄＡの（ａ）＝２００と合算して、（ａ）＝７５０をＲＡＭ等に読み込む。同様に、ＧｒｉｄＣの集計用データについても合算処理をすることで、（小計データｂ：１５０、小計データｃ：６００、小計データｄ：３００、全体計データａ：１０５０）が得られる。
【０１２５】
最後に、結合後の帳票ファイルのイメージを示す。
【０１２６】
図１３は、結合した帳票ファイルのイメージを示す図である。
【０１２７】
１４０２、１４０３は、結合前の帳票イメージである。１４０４は、ページ区切りを示している。１４０５、１４０６は、集計用フィールドに配置された集計データを示している。１４０７、１４０８は、改ページを実施してページ番号を採番した各ページを示している。
【０１２８】
以上説明したように、本発明によれば、上記課題を解決するものであり、複数ページある帳票ファイルを別々の装置で分散して生成させることができる。
【０１２９】
また、集計用データが複数の資源に分散されて生成された場合でも、帳票ファイルを生成する際に、集計用データの内容を確認して、分散して生成された場合には、再集計をすることで矛盾をなくしている。
【０１３０】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１３１】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１３２】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１３３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３４】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３５】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１３６】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１３７】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【０１３８】
【図１】本発明の実施形態の帳票生成システムにおける分散処理の構成を示す図である。
【図２】帳票生成サーバのハードウェア構成を示す図である。
【図３】本発明の実施形態の帳票生成サーバにおけるインデックステーブルを示す図である。
【図４】本発明の実施形態の帳票生成サーバにおける集計用テーブルを示す図である。
【図５】本発明の実施形態の帳票生成サーバにおける処理能力テーブルを示す図である。
【図６】本発明の実施形態における全体の流れを示すフローチャートである。
【図７】本発明の実施形態における処理能力テーブルを作成する流れを示すフローチャートである。
【図８】本発明の実施形態におけるデータファイルを分割する流れを示すフローチャートである。
【図９】本発明の実施形態における分割サイズを算出する処理の流れを示すフローチャートである。
【図１０】本発明の実施形態における資源側における処理の流れを示すフローチャートである。
【図１１】本発明の実施形態における資源側におけるフォームファイル取得の流れを示すフローチャートである。
【図１２】本発明の実施形態における帳票生成の処理の流れを示すフローチャートである。
【図１３】結合した帳票ファイルのイメージを示す図である。
【図１４】本発明の実施形態における集計の処理の流れを示すフローチャートである。
【図１５】フォームファイルの一例を示す図である。
【図１６】データファイルの一例を示す図である。
【図１７】帳票ファイル結合時における帳票ファイルの遷移を示す図である。
【図１８】複数フォームファイルが必要な一例を示す例である。
【図１９】帳票生成プログラムを配信する例を示す図である。
【符号の説明】
【０１３９】
１０１    帳票生成システム
１０２    資源
１０３    資源
１０４    資源
１０５    資源
１１７    クライアント
【図１】
2010146351.tif 000003
【図２】
2010146351.tif 000004
【図３】
2010146351.tif 000005
【図４】
2010146351.tif 000006
【図５】
2010146351.tif 000007
【図６】
2010146351.tif 000008
【図７】
2010146351.tif 000009
【図８】
2010146351.tif 000010
【図９】
2010146351.tif 000011
【図１０】
2010146351.tif 000012
【図１１】
2010146351.tif 000013
【図１２】
2010146351.tif 000014
【図１３】
2010146351.tif 000015
【図１４】
2010146351.tif 000016
【図１５】
2010146351.tif 000017
【図１６】
2010146351.tif 000018
【図１７】
2010146351.tif 000019
【図１８】
2010146351.tif 000020
【図１９】
2010146351.tif 000021