説明

情報処理装置、情報処理システム、情報処理装置の制御方法、プログラムおよび記録媒体

【課題】複数ページある帳票ファイルを別々の装置で分散して生成させることを可能とする。
【解決手段】帳票の形式を定義するフォームファイルと、フォームファイルに対応するデータファイルとを用いて帳票ファイルを生成する際に、データファイルを、所定の条件から求められるサイズに分割し、分割データファイルと、対応する前記フォームファイルとを、複数のコンピュータに送信し、複数のコンピュータでオーバーレイ処理された帳票ファイルの一部のファイルを受け取り、分割した順序で帳票ファイルを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、帳票の形式を定義するフォームファイルと、帳票の実データファイルとを用いて帳票データを生成する帳票生成システムの分野において、帳票生成を複数のコンピュータに分散処理させる技術に関する。
【背景技術】
【0002】
帳票の形式を定義するフォームファイルと、帳票の実データファイルとを用いて帳票ファイルを生成する帳票生成システムがある。
【0003】
現在の帳票生成システムでは、サーバが帳票生成を行っているため、大量の帳票ファイルを生成する場合、サーバの処理負担が大きくなることから、帳票生成の処理を分散する技術が望まれている。
【0004】
ここで、帳票生成の分散処理を実現するためには、複数ページある帳票ファイルを別々の装置で分散生成する場合に生じる次の課題を解決しなければならない。
【0005】
(1)別々に生成された帳票ファイルの結合順序を解決する必要がある。
【0006】
(2)表の途中で実データが区切れた際の処理を解決する必要がある。
【0007】
(3)集計用の実データが別々の帳票ファイルにまたがっている際の集計を解決する必要がある。
【0008】
(4)2.3.の組み合わせで発生するブレイク(強制的にされる改行)を解決する必要がある。
【0009】
特許文献1および特許文献2には、帳票生成システムにおける分散処理技術が開示されている。
【0010】
また、特許文献3には、帳票データを分割して処理し、生成したページから順次印刷する技術が、特許文献4には、各種データ(オーバーレイを含む)を分散処理する技術が開示されている。
【特許文献1】特開2006−259996号公報
【特許文献2】特開2006−146726号公報
【特許文献3】特開2005−50044号公報
【特許文献4】特開平8−190544号公報
【発明の開示】
【発明が解決しようとする課題】
【0011】
しかしながら、特許文献1および特許文献2に記載の分散処理技術は、オーバーレイ時の処理に言及しているだけで、複数ページある帳票ファイルを別々の装置で分散生成するものではない。
【0012】
また、特許文献3に記載の技術は、帳票データが全て生成される前に印刷を開始することにより全体のスループット向上を実現するものであり、特許文献4に記載の技術は、帳票生成システムに特化したものではなく、一般的な概念を述べたものであり、いずれも複数ページある帳票ファイルを別々の装置で分散生成するものではない。
【0013】
本発明は、上記課題を解決するものであり、複数ページある帳票ファイルを別々の装置で分散して生成させることを可能とする。
【課題を解決するための手段】
【0014】
本発明は、帳票の形式を定義するフォームファイルと、当該フォームファイルに対応するデータファイルとを用いて帳票ファイルを生成する情報処理装置であって、指定された前記フォームファイルと前記データファイルとを用いて前記帳票ファイルの生成の要求を受け付ける受付手段と、前記受付手段により受け付けたデータファイルを、所定の条件から求められるサイズに分割する分割手段と、前記分割手段により分割した複数の分割データファイルと、当該分割データファイルに対応する前記フォームファイルとを、それぞれの前記コンピュータに送信する送信手段と、前記送信手段により送信した、分割データファイルの分割の順序を管理する管理手段と、前記複数のコンピュータによりそれぞれオーバーレイ処理されることにより生成された複数の前記帳票ファイルの一部のファイルを受信する受信手段と、前記受信手段により受信した複数の前記帳票ファイルの一部のファイルを、前記管理手段により管理される順序で結合して前記帳票ファイルを生成する生成手段とを有することを特徴とする。
【発明の効果】
【0015】
本発明によれば、上記課題を解決するものであり、複数ページある帳票ファイルを別々の装置で分散して生成させることができる。
【発明を実施するための最良の形態】
【0016】
図1〜図19を用いて、本発明を説明する。
【0017】
図1は、本発明の実施形態の帳票生成システムにおける分散処理の構成を示す図である。
【0018】
帳票生成システム(または帳票生成サーバ、情報処理装置。以下、同じ。)101、コンピュータ102、103、104、105(以下、資源という。また、資源数はいくつでもよい。)、およびクライアント117とがネットワークを介して通信可能に接続されている。
【0019】
帳票生成システム101は、同一ネットワークに繋がった資源の情報を取得・管理する機能および、資源に対して帳票生成プログラム108を配信し、その実行を指示する機能を備える。
【0020】
図19に帳票生成プログラム108の配信の流れを示す。
【0021】
ステップS2001において、帳票生成システム101は、帳票生成プログラム108を配信する。配信方法としては、(1)push型による配信(2)ActiveXによる配信等がある。ステップS2002において、各資源は、帳票生成プログラム108を受信する。ステップS2003において、各資源は、帳票生成プログラム108を起動する。なお、各資源は、帳票生成システム101の指示に従って、帳票生成プログラム108を実行する機能を備える。また、帳票生成システムは、配信先の資源を管理することで、分散処理に用いることができる資源を把握することが可能となる。
【0022】
次に、クライアント117は、帳票生成システム101に対して、帳票ファイル(または帳票データ。以下同じ。)の生成を要求するコンピュータである。
【0023】
次に、本実施の形態における処理の全体の流れを説明する。
【0024】
まず、帳票生成システム101は、クライアント117(またはバッチ用プログラム118)からフォームファイル106(例えば、図15)とデータファイル107(例えば、図16)が指定されることにより処理を開始する。
【0025】
帳票生成システム101は、クライアント117から指定されたフォームファイル106とデータファイル107とを取得し、各資源に分散処理させるための分割データファイル119〜122を生成する。
【0026】
この各分割ファイルデータは、各資源の処理能力に応じてデータファイル107から生成する。
【0027】
そして、帳票生成システム101は、各資源の帳票生成プログラム108に対して実行を指示すると共に、実行に必要なフォームファイル106および分割データファイル119〜122を送信する。
【0028】
なお、分散データファイルは、各資源が平均的に生成できるデータ量から生成しているため、各資源が生成するファイルは、完全な帳票ファイルであるとは限らず、場合によっては帳票ファイルの一部分が生成されることになる。つまり、複数ページを有する帳票ファイルAを生成する場合、資源102が、あるページまでのファイルA1を生成し、資源103が、あるページ以降のファイルA2を生成することがある。この場合、ファイルA1とファイルA2を結合することにより帳票ファイルAが生成される。
【0029】
各資源102〜105の帳票生成プログラム108は、帳票生成システム101から受信したフォームファイル106と分割データファイル119〜122を用いて、それぞれファイル109〜112を生成(オーバーレイ)し、生成したファイルと、その情報と(帳票名・集計用データなど)を帳票生成システムへ送信する。
【0030】
帳票生成システム101は、各資源から受信したファイル109〜122等と、自身が保持するインデックスデータを基に結合することで、帳票ファイル113〜116を生成する。また、集計用データを用いて集計を行い、その結果も反映させる。
【0031】
図2は、帳票生成サーバのハードウェア構成を示す図である。
【0032】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な各種プログラム(本実施の形態では、帳票生成グリッドコンピューティングプログラム)等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。また、入力コントローラ(入力C)205は、キーボード209や不図示のマウス等のポインティングデバイスからの入力を制御する。ビデオコントローラ(VC)206は、CRTディスプレイ(CRT)210等の表示器にへの表示を制御する。表示器はCRTだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。本発明には直接関係があるものではない。メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピー(登録商標)ディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0033】
なお、外部メモリ211には、後述するインデックステーブル301、集計用テーブル401、処理能力テーブル501が記憶される。
【0034】
また、資源102〜105のハードウェア構成図も同様であるため、説明は省略する。
【0035】
図3は、本発明の実施形態の帳票生成サーバにおけるインデックステーブルを示す図である。
【0036】
インデックステーブル301は、帳票生成システム101が、各資源102〜105へ送信した情報を管理するテーブルである。なお、項目「Index」は、本テーブルにおける各レコードを特定する一意の値である。項目「資源」は、各資源の名前である。項目「帳票ファイル名」は、各資源で作成されるファイルの名前である。項目「フォームファイル」は、フォームファイルの名前である。項目「データファイル」は、分割したデータファイルの名前である。項目「結合順序」は、結合順序を示す数字であり、結合時に用いる。
【0037】
図4は、本発明の実施形態の帳票生成サーバにおける集計用テーブルを示す図である。
【0038】
集計用テーブルは、各資源にて生成する分割データファイルに含まれる集計用データのフォーマット例を示しているが、これに限られるものではない。
【0039】
図5は、本発明の実施形態の帳票生成サーバにおける処理能力テーブルを示す図である。
【0040】
処理能力テーブル501は、帳票生成システム101が、各資源102〜105の処理能力を判定する際に用いるものである。なお、項目「資源」は、資源の名前である。項目「CPU」は、各資源のCPU処理能力を示す。項目「メモリ」は、各資源のメモリ量を示す。項目「データサイズ」は、データサイズを示す。項目「能力値」は、各資源の平均に対する処理能力を示す値である。
【0041】
次に、帳票生成サーバの基本的な処理フローについて、図6を用いて説明する。
【0042】
図6は、本発明の実施形態における全体の流れを示すフローチャートである。
【0043】
まず、ステップS601において、帳票生成サーバは、クライアント117(または、バッチ用プログラム118)からフォームファイルとデータファイルが指定されることで帳票生成の処理を開始する。
【0044】
ステップS602において、帳票生成サーバは、図5に示す処理能力テーブル501を作成する。処理能力テーブルの作成方法については、図7を用いて後に説明する。
【0045】
ステップS603において、帳票生成サーバは、ステップS602において作成した処理能力テーブル501を基に、指定されたデータファイルから、各資源が平均的に処理ができるように、各資源へ送信するための分割データファイルを生成する。分割データファイルの生成方法については、図8、図9を用いて後に説明する。
【0046】
ステップS604において、帳票生成サーバは、ステップS603において生成した分割データファイルと、ステップS601においてクライアント117から指定されたフォームファイルとを各資源へ送信すると共に、各資源の帳票生成プログラムに対して実行を指示する。
【0047】
例えば、帳票ファイルAを生成するにあたり、クライアントからフォームファイルAおよびデータファイルAが指定された場合、フォームファイルAについては全ての資源に共通に、データファイルAについては、それぞれの資源毎に作成された分割データファイルA1、分割データファイルA2、分割データファイルA3等として送付する。
【0048】
また、ステップS608において、帳票生成サーバは、各資源へ送信した分割データファイル、フォームファイル、結合順序等を保持するインデックステーブルを作成する。
【0049】
次に、ステップS605において、各資源は、ステップS604において帳票生成サーバから送信されたフォームファイルと分割データファイルを受信する。
【0050】
ステップS606において、各資源は、ステップS605において受信したフォームファイルと分割データファイルを用いてオーバーイ処理と集計処理を行う。オーバーレイ処理については、図10を用いて、集計処理については、図11を用いて後に説明する。
【0051】
ステップS607において、各資源は、オーバーレイ処理して生成したファイル(帳票ファイルの一部分)を帳票生成サーバへ送信する。
【0052】
そして、ステップS609において、帳票生成サーバは、各資源から複数のファイルを受信した後、S608において作成したインデックステーブルを用いて、帳票ファイルを結合する。この結合をする処理については、図12〜18を用いて後に説明する。
【0053】
ステップS610において、帳票生成サーバは、ステップS609において、結合した帳票ファイルを出力して処理を終了する。
【0054】
図7は、本発明の実施形態における処理能力テーブルを作成する流れを示すフローチャートである。
【0055】
図7は、図6におけるステップS602の詳細な処理の流れを説明するものであり、帳票生成サーバにおける処理である。
【0056】
ステップS701において、帳票生成プログラムがインストールされた資源から、「CPU能力・Hz」「メモリ」等の資源の処理能力を測るための指標となる情報を取得する。
【0057】
ステップS702において、あらかじめ用意されている標準的なコンピュータの処理能力を基準として、ステップS703において取得した各資源の処理能力を算出する。
【0058】
例えば、CPU2.8GHz、メモリ512MBであるコンピュータの能力値を「1」とした場合における、各資源の能力値を算出するための算出式の一例を示す。
【0059】
(能力値の算出式)=資源CPU(GHz)/平均CPU(GHz)+0.5×資源メモリ(MB)/平均メモリ(MB)
この場合、CPU3.2GHz、メモリ1024MBである資源(図5の処理能力テーブルにおけるGridAの場合)の能力値は下記の通り算出される。
【0060】
3.2GHz/2.8GHz+0.5×(1024(MB)/512(MB))=1.64 (およそ1.7)
なお、この例では、CPUのクロック数に重点をおいた能力値算出方法を用いているが、例えば、メモリを重視する能力算出方法を用いることも可能であり、また、その他の能力算出方法を用いてもよい。
【0061】
ステップS703において、算出した能力値を元に処理能力テーブルを作成または更新して処理を終了する。作成または更新した処理能力テーブルは図5に示すとおりである。
【0062】
図8は、本発明の実施形態におけるデータファイルを分割する流れを示すフローチャートである。
【0063】
図8は、図6におけるステップS603の詳細な処理の流れを説明するものであり、帳票生成サーバにおける処理である。
【0064】
ステップS801において、図5に示す処理能力テーブル501を用いて、各資源の処理能力に合わせてデータファイル106を分割するための分割サイズを取得する。分割サイズの取得方法については、図9を用いて後に説明する。
【0065】
ステップS802において、取得した分割サイズを用いて、データファイル107から分割データファイル119を作成すると共に、図3に示すインデックスデータ301を作成する。
例えば、1GBのデータファイル107を3つの資源に分散する場合であって、ステップS801において、分割サイズが、資源名GridAは486MB、資源名GridBは372MB、資源名GridCは142MBとそれぞれ算出された場合、データファイル107をそれぞれのサイズに分割することで3つの分割データファイル119を作成する。
【0066】
なお、データファイルの分割については一般的に知られているアルゴリズムを用いるが、帳票ファイル特有の分割手段として、「行」という概念で区切るため、分割サイズが486MBであったとしても、必ずしも正確に486MBで区切ることができるとは限らない。
【0067】
次に、インデックステーブルへ、分割したデータファイルの名称を登録する。図3に示す例ではデータファイル名として、GridAから順に「200810_1」「200810_2」「200810_3」としているが、この名称は任意でよい。
【0068】
また、インデックステーブルへ、帳票生成サーバ101が後に、各資源から受信した帳票ファイルを結合する際に処理やし易いよう、例えば、GridAから順に「ファイルA1」「ファイルA2」「ファイルA3」のような分かり易い名称を登録する。
【0069】
また、インデックステーブルへ、分割したデータファイル106を、分割した順序どおり結合するための結合順序を登録する。
【0070】
また、インデックステーブルへ、分割したデータファイルに対応するフォームファイル名を登録する。
【0071】
インデックスデータを作成した後、処理を終了する。
【0072】
図9は、本発明の実施形態における分割サイズを算出する処理の流れを示すフローチャートである。
【0073】
図9は、図8におけるステップS801の詳細な処理の流れを説明するものであり、帳票生成サーバにおける処理である。
【0074】
ステップS901において、処理能力テーブルから各資源の能力値を取得する。
【0075】
ステップS902において、取得した各資源の能力値と、クライアントから指定されたデータファイル106のファイルサイズとを用いて、分割サイズを算出する。
【0076】
次に、図5に示す処理能力テーブルを用いて、データファイル106のファイルサイズが1GBの場合に分割サイズを算出する例を説明する。
【0077】
まず、各資源の能力値の合計を算出する1.7+1.3+0.5=3.5)。次に、能力値単位あたりのファイルサイズを算出する(1GB ÷ 3.5 = 約286MB)。この値と能力値を積算することで、各資源の分割サイズを算出する(GRIDA処理サイズ:286MB×1.7=486MB、GRIDB処理サイズ:286MB×1.3=372MB、GRIDC処理サイズ:286MB×0.5=142MB)。
【0078】
そして、算出した分割サイズを目安に、データファイルを1行単位で区切る(1行単位とする理由は、帳票のデータファイルは、CSVファイル形式のような形式で、1行に意味を持つためである。)
分割サイズを確定して処理を終了する。
【0079】
図10は、本発明の実施形態における資源側における処理の流れを示すフローチャートである。
【0080】
図10は、図6におけるステップS606の詳細な処理の流れを説明するものであり、各資源において実行される処理である。
【0081】
ステップS1101において、各資源は、図6に示すステップS605において、受信したフォームファイルおよび分割データファイルを用いて、オーバーレイ処理を実行する。オーバーレイ処理とは、ファームファイルとデータファイルから視覚的に帳票イメージを表示可能な帳票ファイルを生成するための処理である。
【0082】
ここでは、各資源は、ページの概念のない帳票ファイルを生成する(図10の1103にページの概念のない帳票イメージを示す。)
なお、分割データファイルには、ページ切替命令が入っているため、ここで生成した帳票ファイルを実際に印刷すると、複数ページ印刷されることとなる(区切り箇所は、図10に示す「ページ区切りデータ」の部分。)
ステップS1102において、集計用データを生成して処理を終了する。集計用データは、分割データファイルに集計命令がある場合に生成するものであり、オーバーレイ処理がされた後の、帳票イメージ上において集計用データが配置される場所(集計フィールドという。)から集計用データを抜き出す。集計用データのフォーマットは、例えば図4に示すとおりである。
【0083】
図10に示す例では、「a,b,50」「a,b,100」「a,c,50」の3つの集計用データが抽出される。例えば、a=部名、b=課名、とすると、「a部b課の金額50」、「a部b課の金額100」「a部c課の金額50」といった集計用データが生成されることとなる。
【0084】
なお、分割データファイルは、任意の場所でデータファイルを区切っているため、複数行からなる集計用データ配置領域が途中で分割されることがある。従って、ここで生成した集計用データはあくまでも一時的な集計用データとして取り扱われる。
【0085】
これは、ある資源は、自分以外の資源に送信された分割データファイルを持っていないため、集計用データとして抽出することができる範囲は、自分が生成可能な領域に限られるからである。
【0086】
この集計用データは、後に帳票生成サーバにおいて結合する際に用いられる。結合する際に最終的な集計用データを取得することができる。
【0087】
ところで、図6に示すステップS604において、帳票生成サーバは、分割データファイルと、それぞれに対応するフォームファイルとを各資源へ送信しているが、各資源がオーバーレイ処理をする際に必要となる全てのフォームファイルを送信するとは限らない。
【0088】
何故なら、ステップS604において、各資源に送信するフォームファイルは、分割データファイルの最初のページに対応するフォームのみを送信しているからである。
【0089】
例えば、図18に示す例の場合、本来分割データファイルには、フォーム名:「表紙」と「勘定元帳」が必要となるが、ステップS604では、「表紙」しか送信しない。(図16に示す例の場合は、フォームファイルは一つだけとなる。)
帳票生成サーバ側で、フォームファイルとデータファイルのマッピングを行えば、分割データファイルそれぞれに必要な全てのフォームを抽出することが可能であるが、このように分割データファイルの最初のページに対応するフォームデータのみを送信しているのは、帳票生成サーバの処理の負担を軽減するためである。
【0090】
即ち、必要なフォームファイルの抽出処理を各資源に委ねることで効率的な分散処理を実現している。
【0091】
図11は、本発明の実施形態における資源側におけるフォームファイル取得の流れを示すフローチャートである。
【0092】
図11は、図10におけるステップS1101に置き換えることができる。
【0093】
ステップS1201において、各資源は、オーバーレイ処理を実行する。この処理は、図10のS1101と同様である。
【0094】
ステップS1202において、各資源は、分割データファイルにフォーム切替命令があるかを判定する。フォーム切替命令がない場合は、処理を終了し、フォーム切替命令がある場合は、ステップS1203へ進む。
【0095】
ステップS1203において、各資源は、帳票生成サーバから対応するフォームファイルを取得する。一度取得したフォームファイル106は、HDDに保存するため、既に取得済みの場合は、HDDから取得する。
【0096】
ステップS1204において、各資源は、取得したフォームファイルに切り替えて、ステップS1201において、オーバーレイ処理を実施する。
【0097】
分割データファイルが終了するまで実施して処理を終了する。
【0098】
図12は、本発明の実施形態における帳票生成の処理の流れを示すフローチャートである。
【0099】
図12は、図6におけるステップS609の詳細な処理の流れを説明するものであり、帳票生成サーバにおいて実行される処理である。
【0100】
ステップS1301において、各資源においてオーバーレイ処理された生成されたファイルとそれぞれの集計用データを受信する。例えば、ファイルA1とその集計用データ、ファイルA2とその集計用データ、ファイルA3とその集計用データというように。
【0101】
ステップS1302において、受信したファイルと図3に示すインデックステーブルを用いることで、各ファイルを結合して帳票ファイルを取得する。ここで、結合した帳票ファイルとフォームファイルとを比較して、不整合が生じていた場合は、区切り位置を変更する。不整合が生じていない場合は、区切り位置の変更は行わない。不整合が生じている場合を次に説明する。
【0102】
例えば、図15に示すように、文字列が入る行が5行で、「課売上」「部売上」の2行入る集計用の領域がフォームファイルに定義されている場合、区切り位置を変更する方法を、図17を用いて説明する。
【0103】
図17に示す上左の図において、結合した帳票ファイルには、1ページ目と2ページ目に集計用の領域が生成されている。しかし、本来の集計用領域は、図15に示すとおり文字列の行が5行にもかかわらず、3行しかないため、この場合、区切り位置を変更しなければならないと判断する。な、2ページ目の最初に「部名」「課名」「金額」を項目に持つ集計用の領域が存在することからも不整合が生じていることが分かる。
【0104】
この場合、区切り位置は、2行足りないため2行繰上げる(図17に示す右上の図を参照。)。
【0105】
また、1ページ目の「課売上」と「部売上」は、一時的に算出された集計データであるためここでは削除する。
【0106】
なお、このように本来5行の集計用の領域が3行となるのは、分割データファイルが任意のページで分割され、それぞれの資源に送信されるためである。
【0107】
各資源では、とりあえず取得した分割データファイルを元に集計用領域をオーバーレイ処理するためこのような矛盾が生じる。
【0108】
そして、図17に示す左下のように区切り位置を修正した後、四角で囲われる領域もまた、2ページ目の一時的に算出された集計であるため、再集計する必要が生じる。
【0109】
再集計することで、図17に示す右下の図のように正しい値が算出される。
【0110】
なお、この再集計および集計結果の配置は、ステップS1303およびS1304において実行される。ステップS1303における集計方法に図14を用いて後に説明する。
【0111】
ステップS1305において、ページ区切り命令に従って、改ページを行う(ブレイクが発生している場合にはブレイクを優先し改ページを実施する)。そして、各ページにページ番号を付与して処理を終了する。
【0112】
図14は、本発明の実施形態における集計の処理の流れを示すフローチャートである。
【0113】
図14は、図12におけるステップS1303の詳細な処理の流れを説明するものであり、帳票生成サーバにおいて実行される処理である。
【0114】
ステップS1501において、受信した集計用データがあるだけ処理を繰り返す。
【0115】
ステップS1502において、集計用データの内容をチェックし、ステップS1503において、一致する集計データがあるかの判定を行う。一致する集計データがある場合は、ステップS1504へ進み、一致する集計データがない場合は、ステップS1505へ進む。
【0116】
ステップS1504において、一致する値を合算する。例えば、変数(b)に代入することで合算する。
【0117】
ステップS1505において、新しい値として合算する。例えば、変数(c)に代入することで合算する。
【0118】
そして、集計用データがあるだけ処理が繰り返される。
【0119】
次に、上記処理の流れを、具体例を示して説明する。
【0120】
ここでは、3つの資源に分散データファイルを分散させ、それぞれから集計用データを受信した例を挙げる。
【0121】
「GridA」からは、(小計データb:150、小計データc:50、全体計データa:200)を受信する。
【0122】
「GridB」からは、(小計データc:550、全体計データa:550)を受信する。
【0123】
「GridC」からは、(小計データd:300、全体計データa:300)を受信する。
【0124】
まず、はじめにGridAの集計データをRAM等に読み込んだ後、GridBの集計データを上から順に取得する。最初の小計データc:550は、GridAと一致するものがあるので、既に読み込まれているGridAの(c)=50と合算して、(c)=600をRAM等に読み込む。そして、次の小計データa:550は、GridAと一致するものがあるので、既に読み込まれているGridAの(a)=200と合算して、(a)=750をRAM等に読み込む。同様に、GridCの集計用データについても合算処理をすることで、(小計データb:150、小計データc:600、小計データd:300、全体計データa:1050)が得られる。
【0125】
最後に、結合後の帳票ファイルのイメージを示す。
【0126】
図13は、結合した帳票ファイルのイメージを示す図である。
【0127】
1402、1403は、結合前の帳票イメージである。1404は、ページ区切りを示している。1405、1406は、集計用フィールドに配置された集計データを示している。1407、1408は、改ページを実施してページ番号を採番した各ページを示している。
【0128】
以上説明したように、本発明によれば、上記課題を解決するものであり、複数ページある帳票ファイルを別々の装置で分散して生成させることができる。
【0129】
また、集計用データが複数の資源に分散されて生成された場合でも、帳票ファイルを生成する際に、集計用データの内容を確認して、分散して生成された場合には、再集計をすることで矛盾をなくしている。
【0130】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0131】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0132】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0133】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0134】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0135】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0136】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0137】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【0138】
【図1】本発明の実施形態の帳票生成システムにおける分散処理の構成を示す図である。
【図2】帳票生成サーバのハードウェア構成を示す図である。
【図3】本発明の実施形態の帳票生成サーバにおけるインデックステーブルを示す図である。
【図4】本発明の実施形態の帳票生成サーバにおける集計用テーブルを示す図である。
【図5】本発明の実施形態の帳票生成サーバにおける処理能力テーブルを示す図である。
【図6】本発明の実施形態における全体の流れを示すフローチャートである。
【図7】本発明の実施形態における処理能力テーブルを作成する流れを示すフローチャートである。
【図8】本発明の実施形態におけるデータファイルを分割する流れを示すフローチャートである。
【図9】本発明の実施形態における分割サイズを算出する処理の流れを示すフローチャートである。
【図10】本発明の実施形態における資源側における処理の流れを示すフローチャートである。
【図11】本発明の実施形態における資源側におけるフォームファイル取得の流れを示すフローチャートである。
【図12】本発明の実施形態における帳票生成の処理の流れを示すフローチャートである。
【図13】結合した帳票ファイルのイメージを示す図である。
【図14】本発明の実施形態における集計の処理の流れを示すフローチャートである。
【図15】フォームファイルの一例を示す図である。
【図16】データファイルの一例を示す図である。
【図17】帳票ファイル結合時における帳票ファイルの遷移を示す図である。
【図18】複数フォームファイルが必要な一例を示す例である。
【図19】帳票生成プログラムを配信する例を示す図である。
【符号の説明】
【0139】
101 帳票生成システム
102 資源
103 資源
104 資源
105 資源
117 クライアント

【特許請求の範囲】
【請求項1】
帳票の形式を定義するフォームファイルと、当該フォームファイルに対応するデータファイルとを用いて帳票ファイルを生成する情報処理装置であって、
指定された前記フォームファイルと前記データファイルとを用いて前記帳票ファイルの生成の要求を受け付ける受付手段と、
前記受付手段により受け付けたデータファイルを、所定の条件から求められるサイズに分割する分割手段と、
前記分割手段により分割した複数の分割データファイルと、当該分割データファイルに対応する前記フォームファイルとを、それぞれの前記コンピュータに送信する送信手段と、
前記送信手段により送信した、分割データファイルの分割の順序を管理する管理手段と、
前記複数のコンピュータによりそれぞれオーバーレイ処理されることにより生成された複数の前記帳票ファイルの一部のファイルを受信する受信手段と、
前記受信手段により受信した複数の前記帳票ファイルの一部のファイルを、前記管理手段により管理される順序で結合して前記帳票ファイルを生成する生成手段と
を有することを特徴とする情報処理装置。
【請求項2】
前記受信手段により集計用データを受信した場合、当該集計用データを用いて、集計結果を算出する集計手段を更に有し、
前記生成手段は、前記集計手段による集計結果を反映させて、前記帳票ファイルを生成することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記受信手段により集計用データを受信した場合、当該集計用データが複数のコンピュータにより生成された集計用データに分散している場合、前記集計手段は、分散している集計用データを用いて再集計することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記帳票ファイルの一部を生成させる複数のコンピュータの処理能力情報を記憶する記憶手段と、
前記分割手段は、前記記憶手段により記憶される処理能力情報に応じて前記サイズを算出することを特徴とする請求項1乃至3に記載の情報処理装置。
【請求項5】
帳票の形式を定義するフォームファイルと、当該フォームファイルに対応するデータファイルとを用いて帳票ファイルを生成する情報処理装置と、フォームファイルとデータファイルをオーバーレイ処理する複数のコンピュータがネットワークを介して通信可能な情報処理システムであって、
前記情報処理装置は、
指定された前記フォームファイルと前記データファイルとを用いて前記帳票ファイルの生成の要求を受け付ける受付手段と、
前記受付手段により受け付けたデータファイルを、所定の条件から求められるサイズに分割する分割手段と、
前記分割手段により分割した複数の分割データファイルと、当該分割データファイルに対応する前記フォームファイルとを、それぞれの前記コンピュータに送信する送信手段と、
前記送信手段により送信した、分割データファイルの分割の順序を管理する管理手段と、
前記複数のコンピュータによりそれぞれオーバーレイ処理されることにより生成された複数の前記帳票ファイルの一部のファイルを受信する受信手段と、
前記受信手段により受信した複数の前記帳票ファイルの一部のファイルを、前記管理手段により管理される順序で結合して前記帳票ファイルを生成する生成手段とを有し
前記複数のコンピュータは、
前記送信手段により送信された前記分割データファイルと、当該分割データファイルに対応する前記フォームファイルを受信して、当該分割データファイルおよびフォームファイルを用いてオーバーレイ処理を実行するオーバーレイ処理手段と
前記オーバーレイ手段により生成された前記帳票ファイルの一部のファイルを前記情報処理装置へ送信するファイル送信手段と
を有することを特徴とする情報処理システム。
【請求項6】
帳票の形式を定義するフォームファイルと、当該フォームファイルに対応するデータファイルとを用いて帳票ファイルを生成する情報処理装置の制御方法であって、
指定された前記フォームファイルと前記データファイルとを用いて前記帳票ファイルの生成の要求を受け付ける受付ステップと、
前記受付ステップにより受け付けたデータファイルを、所定の条件から求められるサイズに分割する分割ステップと、
前記分割ステップにより分割した複数の分割データファイルと、当該分割データファイルに対応する前記フォームファイルとを、それぞれの前記コンピュータに送信する送信ステップと、
前記送信ステップにより送信した、分割データファイルの分割の順序を管理する管理ステップと、
前記複数のコンピュータによりそれぞれオーバーレイ処理されることにより生成された複数の前記帳票ファイルの一部のファイルを受信する受信ステップと、
前記受信ステップにより受信した複数の前記帳票ファイルの一部のファイルを、前記管理ステップにより管理される順序で結合して前記帳票ファイルを生成する生成ステップと
を有することを特徴とする情報処理装置の制御方法。
【請求項7】
帳票の形式を定義するフォームファイルと、当該フォームファイルに対応するデータファイルとを用いて帳票ファイルを生成する情報処理装置において実行可能なプログラムであって、
指定された前記フォームファイルと前記データファイルとを用いて前記帳票ファイルの生成の要求を受け付ける受付手段、
前記受付手段により受け付けたデータファイルを、所定の条件から求められるサイズに分割する分割手段、
前記分割手段により分割した複数の分割データファイルと、当該分割データファイルに対応する前記フォームファイルとを、それぞれの前記コンピュータに送信する送信手段、
前記送信手段により送信した、分割データファイルの分割の順序を管理する管理手段、
前記複数のコンピュータによりそれぞれオーバーレイ処理されることにより生成された複数の前記帳票ファイルの一部のファイルを受信する受信手段、
前記受信手段により受信した複数の前記帳票ファイルの一部のファイルを、前記管理手段により管理される順序で結合して前記帳票ファイルを生成する生成手段
として前記情報処理装置を機能させることを特徴とするプログラム。
【請求項8】
請求項7に記載のプログラムをコンピュータ読み取り可能に記録した記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate