(57)【要約】【課題】  サーバからフォームとフィールドデータを送信し、クライアントでそれらを解析してオーバレイするシステムにおいて、簡単な関数記述ブロックを用いて処理分岐を可能にすること。【解決手段】  サーバでは、関数記述ブロックを有する配信ファイルを生成する手段と、配信ファイルをクライアントに送信する手段を有し、クライアントでは、配信ファイルを受信する手段と、解析した配信ファイルから関数記述ブロックを取出しオーバレイ印刷を実行する手段と、ブロック内部から他の関数記述ブロックを呼び出す手段と、関数記述ブロックを変更する手段と、変更を禁止する手段を有することを特徴とする。【選択図】  図６
2007293512.tif 000002
【特許請求の範囲】
【請求項１】
サーバによって生成されクライアントに配信されるファイルを配信し、それを受信するクライアントでオーバレイ印刷処理する帳票印刷制御装置であって、
オーバレイすべきフォーム、フィールドデータを含む配信ファイルを生成するサーバアプリケーションと、
その配信ファイルを受信して解析しオーバレイ印刷を実行するクライアントアプリケーションをそなえ、両者が動作することで、一連のオーバレイ印刷のリクエストを実行させるシステムであり、
前記サーバにおいては、オーバレイ印刷の処理手順を規定した関数記述を含む配信ファイルを生成する手段と、配信ファイルをクライアントに送信する手段を有し、
前記クライアントにおいては、配信ファイルを受信する手段と、受信した配信ファイルを解析する手段と、解析した配信ファイルから関数記述ブロックを取り出す手段と、
関数記述ブロックを書き換えることのできる手段と、関数記述ブロックが書換え禁止属性だったら書換え処理を行なわない手段と、
関数記述ブロックを処理する際に別の関数記述ブロックを実行する処理と、関数記述ブロックにしたがってオーバレイ印刷処理を実行する手段と
を有することを特徴とする帳票印刷制御装置。
【請求項２】
サーバによって生成されクライアントに配信されるファイルを配信し、それを受信するクライアントでオーバレイ印刷処理する帳票印刷制御方法であって、
オーバレイすべきフォーム、フィールドデータを含む配信ファイルを生成するサーバアプリケーションと、
その配信ファイルを受信して解析しオーバレイ印刷を実行するクライアントアプリケーションをそなえ、両者が動作することで、一連のオーバレイ印刷のリクエストを実行させるシステムであり、
前記サーバにおいては、オーバレイ印刷の処理手順を規定した関数記述を含む配信ファイルを生成する手段と、配信ファイルをクライアントに送信する手段を有し、
前記クライアントにおいては、配信ファイルを受信する手段と、受信した配信ファイルを解析する手段と、解析した配信ファイルから関数記述ブロックを取り出す手段と、
関数記述ブロックを書き換えることのできる手段と、関数記述ブロックが書換え禁止属性だったら書換え処理を行なわない手段と、
関数記述ブロックを処理する際に別の関数記述ブロックを実行する処理と、関数記述ブロックにしたがってオーバレイ印刷処理を実行する手段と
を有することを特徴とする帳票印刷制御方法。
【請求項３】
サーバによって生成されクライアントに配信されるファイルを配信し、それを受信するクライアントでオーバレイ印刷処理する帳票印刷制御方法であって、
オーバレイすべきフォーム、フィールドデータを含む配信ファイルを生成するサーバアプリケーションと、
その配信ファイルを受信して解析しオーバレイ印刷を実行するクライアントアプリケーションをそなえ、両者が動作することで、一連のオーバレイ印刷のリクエストを実行させるシステムであり、
前記サーバにおいては、オーバレイ印刷の処理手順を規定した関数記述を含む配信ファイルを生成する手段と、配信ファイルをクライアントに送信する手段を有し、
前記クライアントにおいては、配信ファイルを受信する手段と、受信した配信ファイルを解析する手段と、解析した配信ファイルから関数記述ブロックを取り出す手段と、
関数記述ブロックを書き換えることのできる手段と、関数記述ブロックが書換え禁止属性だったら書換え処理を行なわない手段と、
関数記述ブロックを処理する際に別の関数記述ブロックを実行する処理と、関数記述ブロックにしたがってオーバレイ印刷処理を実行する手段と
を有することを特徴とする帳票印刷制御方法を保存した媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は罫線や文字からなる電子的な定型文書であるフォーム、およびそれに付随して定型部位を埋めるデータ、およびそれを印刷した結果である帳票に関する、配信と印刷を行うシステムに係るものである。
【０００２】
本提案書はとりわけ、LANやWANおよびインターネットなどのネットワークを介して接続されたサーバおよびクライアントを含むコンピュータシステムにおいて、クライアントからの要求によってサーバからクライアントへ電子データを配信し、それをクライアント側のアプリケーションによって印刷装置に印刷出力する帳票印刷システムを対象とし、その際の印刷出力処理を制御する帳票印刷制御装置・方法・方法を記録した媒体について記述するものである。
【背景技術】
【０００３】
本提案書の示す案件は、罫線や文字からなる定型文書である帳票の印刷と、それを実現するために配信される電子的なフォームおよびフィールドデータに関するものである。
【０００４】
本提案書の示すシステムでは、罫線など常に定型の要素と、その定型部分に埋め込む各書類ごとに異なるデータ部とにわかれたファイル群を、目的とする印刷処理に供するものとする。これらそれぞれの電子的なデータ要素を以後単に「フォーム」および「フィールドデータ」と称する。またこれらを重ね合わせてひとつの文書として完成することを「オーバレイ」、特に文書として用紙に印刷することを「オーバレイ印刷」と称する。また、オーバレイ印刷を行った結果として得られる用紙としての定型文書を「帳票」と称する。
【０００５】
また、本提案書の示すシステムでは、フォームおよびフィールドデータをサーバで管理し、サーバからクライアントに配信することによって、クライアントではそれらを使ったオーバレイの結果を印刷するものとする。
【０００６】
このとき、サーバからクライアントに送信されるデータはフォームおよびフィールドデータなどのリソースを適宜圧縮あるいは暗号化し、それらを結合しひとつにまとめたものとする。この一つにまとめられてクライアントに配信されるデータのことを以後単に「配信ファイル」と称する。
【０００７】
このようなサーバ・クライアント間での配信のやり取りによるオーバレイ印刷の実施形態としては、「特開２００２−１６３５９６」によって公知のものとなっている。
【特許文献１】特開２００２−１６３５９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前述のようなサーバクライアント間でフォームやデータの配信を行い、クライアントでオーバレイする方式の場合、フォームなどのデータとともに、複数配信するフォームをどのように指定し、複数配信するフィールドデータをどのような順番でそれにオーバレイするか、その間にプリンタはどのように切り替えるか、あるいは印刷属性をフォームによってどのように変化させるか、などといった印刷ジョブの詳細な処理規定を行なう関数の羅列を記述した、関数記述ブロックをともに配信することがある。
【０００９】
関数記述ブロックには後述の実施例で例示するように、フォームを指定したり、フィールドデータを指定したり、印刷属性を指定したり、オーバレイ実行を行なうような個々の関数を羅列することで、一連の印刷処理を規定できる。
【００１０】
この関数記述ブロックは、テキスト形式などの簡単な形式で記述され、構造が簡単なため作成が簡単で、複雑な制御を行ないやすいという利点がある。
【００１１】
ところが従来、この関数記述ブロックはあるブロックからあるブロックを呼び出すことはできなかった。そのため、バッチ処理のように例えば帳票Aにはこの処理、帳票Bにはこの処理、と決められた関数記述ブロックの小さな単位があったとしても、それらをまとめて1度に処理するためにはいちいちサーバ側で複数の単位ブロックをひとつにまとめた関数記述ブロックを生成しなおして、配信しなおす必要があった。そのためにはアプリケーションサーバの負荷が高くなるという問題があった。
【００１２】
関数記述ファイルを含む配信ファイルは、クライアントアプリケーションが処理を行なうが、このクライアントアプリケーションは、本発明が扱う帳票印刷制御システムにおいては、開発フレームワークという形態で提供される開発環境を利用して構築されることがある。
【００１３】
この開発環境を利用すると、配信ファイルの解析やそれに含まれるリソースの保存管理、およびそのリソースを使用しての印刷処理の中枢部分が使いやすい形で提供されており、ユーザはいくつかの手順に従って、帳票印刷制御システム中で動作する、各自の利用しやすい形態のクライアントアプリケーションを作成できる。
【００１４】
そのフレームワーク中で、配信された関数記述ブロックを自由に書き換えることのできるインタフェイスが提供される場合がある。これは、配信後の環境によってブロックの内容を入れ替え、環境にあった出力処理をクライアントアプリケーションに行なわせるために、独自に作成されたクライアントアプリケーションの中で処理されるものである。例えばこの機構は、クライアント側でしか知りえないプリンタの情報などを配信ファイルが配信解析された後に調べ、それにあった属性、例えば給紙カセットなどのプリンタ属性を指定するないように関数記述ブロックを書換え、印刷処理するような場合に用いられる。
【００１５】
このような関数記述ブロックの書換え機能について、従来は常に配信されたブロックについて自由に書換え可能であり、定型のバッチ処理として規定されている関数記述ブロック群があったときにもそれらを定型のまま維持し制限することができない、という問題があった。
【課題を解決するための手段】
【００１６】
上記の問題点を解決するために、本発明は、
サーバによって生成されクライアントに配信されるファイルを配信し、それを受信するクライアントでオーバレイ印刷処理する帳票印刷制御装置であって、
オーバレイすべきフォーム、フィールドデータを含む配信ファイルを生成するサーバアプリケーションと、
その配信ファイルを受信して解析しオーバレイ印刷を実行するクライアントアプリケーションをそなえ、両者が動作することで、一連のオーバレイ印刷のリクエストを実行させるシステムであり、
前記サーバにおいては、オーバレイ印刷の処理手順を規定した関数記述を含む配信ファイルを生成する手段と、配信ファイルをクライアントに送信する手段を有し、
前記クライアントにおいては、配信ファイルを受信する手段と、受信した配信ファイルを解析する手段と、解析した配信ファイルから関数記述ブロックを取り出す手段と、
関数記述ブロックを書き換えることのできる手段と、関数記述ブロックが書換え禁止属性だったら書換え処理を行なわない手段と、
関数記述ブロックを処理する際に別の関数記述ブロックを実行する処理と、関数記述ブロックにしたがってオーバレイ印刷処理を実行する手段と
を有することを特徴とする。
【発明の効果】
【００１７】
以上のように、本発明は、サーバによって生成されクライアントに配信されるファイルを配信し、それを受信するクライアントでオーバレイ印刷処理する帳票印刷制御装置であって、オーバレイすべきフォーム、フィールドデータを含む配信ファイルを生成するサーバアプリケーションと、その配信ファイルを受信して解析しオーバレイ印刷を実行するクライアントアプリケーションをそなえ、両者が動作することで、一連のオーバレイ印刷のリクエストを実行させるシステムであり、前記サーバにおいては、オーバレイ印刷の処理手順を規定した関数記述を含む配信ファイルを生成する手段と、配信ファイルをクライアントに送信する手段を有し、前記クライアントにおいては、配信ファイルを受信する手段と、受信した配信ファイルを解析する手段と、解析した配信ファイルから関数記述ブロックを取り出す手段と、関数記述ブロックを書き換えることのできる手段と、関数記述ブロックが書換え禁止属性だったら書換え処理を行なわない手段と、関数記述ブロックを処理する際に別の関数記述ブロックを実行する処理と、関数記述ブロックにしたがってオーバレイ印刷処理を実行する手段とを有することを特徴とする。
【発明を実施するための最良の形態】
【００１８】
（実施例１）
図面を参照しながら、本発明の実施例を詳細に説明する。
【００１９】
図１は、本発明の一実施例である帳票印刷システムのクライアントのハードウェアの構成を表わすブロック図である。
【００２０】
このクライアントシステムは、CPU12による中央処理装置と、RAMおよびROMなどのメモリ13による主記憶装置、FDドライブやHDドライブなどによる外部メモリ15、キーボードおよびマウスなどのポインティングデバイスによる入力装置11、CRTディスプレイなどによる表示装置14、および外部ネットワーク1７に接続する外部入出力インターフェイス16とからその主要部が構成されるコンピュータシステムが複数相互に接続されているものである。
【００２１】
また図２は、本発明の一実施例である帳票印刷システムのネットワーク構成を表すブロック図である。
【００２２】
Webサーバ21上にWebアプリケーションサーバ22が稼動しており、それに対してインターネットやLAN/WAN26といったネットワーク経路を通じて、クライアント23のWebブラウザ24が接続を行なう。また同じくネットワーク上に、サーバおよびクライアントからアクセス可能な印刷機器25が備えられている。なお、この印刷機器はクライアント23またはWebサーバ21に直接接続されているものであってもかまわない。
【００２３】
本システムのサーバおよびクライアントは、基本I/Oプログラム、OS,およびプログラムをCPUが実行することにより動作する。
【００２４】
基本I/Oプログラムはメモリ13に書き込まれており、OSはHD15に書き込まれている。そして本制御装置の電源がONされたときに、基本I/Oプログラム中のIPL(イニシャル・プログラム・ローディング)機能によりHD15からOSがRAM13に読み込まれ、OSの動作が開始される。
【００２５】
本実施例の場合は、本制御プログラムおよび関連データはFD15中に記録されており、その記録されている内容の構成を図３に示す。
【００２６】
FDに記録された制御プログラム及び関連データは、図１に示すように外部メモリとしてのFDドライブ15を通じて本コンピュータシステムにロードすることができる。このFDをFDドライブ15にセットすると、OSおよび基本I/Oプログラムの制御の下に本制御プログラムおよび関連データがFD15から読み出され、RAM13にロードされて動作可能となる。
【００２７】
図４は、本制御プログラムがRAMにロードされ実行可能となった状態のメモリマップを示す。
【００２８】
本実施例では、FDから制御プログラム及び関連データを直接RAM13にロードして実行させる例を示したが、この他にFDからプログラム及び関連データをいったんHD15に格納(インストール)しておき、本プログラムを動作させる段にHD15からメモリ13にロードするようにしてもよい。また本制御プログラムを記録する媒体は、FD以外にCD-ROM、ICメモリカードなどであってもよい。さらに本プログラムを読取専用のROM13に記録しておき、これをメモリマップの一部をなすように構成し、直接CPU12で実行することも可能である。
【００２９】
本実施例ではサーバは、一般的なHTML文書などの送信を受け持つWebサーバと、ビジネスロジックを担当するWebアプリケーションサーバとの役割分担を想定する。
【００３０】
この実行系では、Webブラウザからの要求に対して、Webサーバは指定されたフォーム、およびそれに埋め込まれるべきフィールドデータを準備する。また関数記述ブロックも準備する。
【００３１】
アプリケーションサーバではそれらフォームやフィールドデータおよび関数記述ブロックなどを適宜圧縮あるいは暗号化し、さらに配信ファイルの付加情報をヘッダとして付加してひとつのファイルに結合する。
【００３２】
ここでいう付加情報とは、サーバ側で各結合されているファイルの圧縮方法や暗号化方法を記述しておき、それらを利用してクライアント側で元のファイルに復元するための情報である。
【００３３】
これらの情報が結合された配信ファイルは、特徴的なデータ列（たとえば、"----------------------------"  というような文字列など）で区切られたり、あるいはファイルヘッダに各情報の開始・終了オフセットバイト数など記述し処理系はその値を参照することにより、クライアントでは簡単な処理で元の情報ごとに分解することが可能である。
【００３４】
アプリケーションサーバでは、印刷処理のロジックに基づき、複数の帳票の印刷処理をまとめて行なう場合、個々の各帳票に適合した関数記述ブロックを用意するとともに、それをまとめて処理するメインの関数記述ブロックを動的に生成して、それらをすべて配信ファイルに付加する。
【００３５】
そのとき、クライアント側で処理内容を変更されてはならない定型処理を規定した関数記述ブロックに対しては暗号化を施す。このことによって、クライアント側で動作するクライアントアプリケーションの核となる前記フレームワーク内では、該等の関数記述ブロックの書換えを禁止して、クライアントでの勝手な処理内容の変更を禁止する。このことで、例えば悪意あるユーザがフレームワークを利用したイリーガルな印刷を行なうことのできるアプリケーションを開発しても、フレームワークのレベルで関数記述ブロックを改ざんして利用されることを防止することができる。
【００３６】
こうして各種の情報とファイルとを結合されてできた配信ファイルはクライアント側で処理できる特定のMIMEタイプのデータとしてクライアントにネットワークを通じて配信される。
【００３７】
図５に、配信ファイルの内容について、一例を示す。ここでは模式的に、"--------------------------[区切り線]"  という文字列を、各情報の区切り記号として用いる方式のファイル形式を利用している。
【００３８】
以上を前提条件として、本発明の処理を、図６のフローチャートを元に説明する。
【００３９】
本実施例では、以下のシナリオに沿って発明の内容を記載する。すなわち、関数記述ブロックを複数設ける。複数の関数記述ブロックをまとめるメインとなるブロックを設ける。その中では、あらかじめサーバで規定されている3つの帳票の処理をまとめて実行するような関数記述ブロックの呼び出しが行なわれる。
【００４０】
また、証紙を印刷するform1/form2の関数記述ブロックは勝手にクライアントで処理を変更されては困る関数記述ブロックなので、これらには暗号化を施す。それらに付随する事務帳票のブロックは環境に合わせて印刷属性等を変えても構わないので、暗号化しない。また、メインとなる処理自体も変更は禁止すべきであるので暗号化を施す。
【００４１】
以上のシナリオを反映させた配信ファイルが、図５の内容の示すものである。
【００４２】
ここで配信ファイルの内容を説明すると、フォーム・フィールドデータのリソース群（Form1/Form2...）に加えて、最初に処理される関数記述ブロックが"functionblock: main"である。この内部でsubfunctionblockというコマンドによって呼び出されるブロックが、form1/form2/form3によって指定されている。このmainのブロックは基本となる処理であり、書換え不能として暗号化され encryption: on という指定がされている。
【００４３】
その呼び出し先となっているform1/form2/form3は、それぞれの帳票を指定してオーバレイ印刷を行なう処理が記述されている(form=.../data=.../overlayPrint)。ここに挙げた例では、簡単のため基本的なフォームとフィールドの指定とオーバレイの指定しか記述していないが、実際は各種の印刷属性等を指定しておくような運用が考えられることはいうまでもない。
【００４４】
本実施例で扱うオーバレイ処理は、クライアント側のWebブラウザによってWebサーバにオーバレイ用のリクエストを送信するところからはじめられる。
【００４５】
まずクライアントのWebブラウザはWebサーバに接続し(601)、Webサーバはリクエスト送信のための入力画面をブラウザに返す。(602)
Webブラウザを通じてクライアントの利用者は適宜リクエストに適した情報を入力し(603)、帳票処理要求を発行する。(604)
この要求を受け取ったWebサーバはWebアプリケーションサーバに処理を渡し、Webアプリケーションサーバはビジネスロジックにしたがって、リクエストとそのクライアント処理に適合したデータ検索を行う。(605)
このデータ検索において、フォームおよびフィールドデータおよびmainとsubを含む複数の関数記述ブロックが準備される。
【００４６】
アプリケーションサーバは用意された各種のリソースに適宜圧縮処理や暗号化処理などを施し、ひとつに結合して図５に示されるような配信ファイルに生成する。(606)
アプリケーションサーバは、その配信ファイルをクライアントに送信する。(607)
クライアント側のWebブラウザは配信ファイルを受け取った後、その特定のMIME型に適合したクライアントアプリケーションを起動し(610)、その起動パラメータとして配信ファイル名を渡す。(611)通常配信ファイルは、ブラウザの一時ファイルとしてキャッシュファイル保存先にダウンロードされている。
【００４７】
まず、クライアントプリケーションは配信ファイルを解析する。(612)
この解析処理で、配信ファイルの中に包含されているフィールドデータとフォーム、それに関数記述ブロックを取り出し、それぞれ環境によって決められている格納フォルダに保存する。ただし、条件によってはこれらの内容を実ファイルに保存せず、メモリ上で処理を行うこともセキュリティ上の観点からは効果的である。このとき関数記述ブロックのヘッダを解析することで、最初に処理するものとしてmainのブロックを分離しておく。(613)
配信ファイルを解析した後、クライアントアプリケーションは入力待ち状態となる。(614)
入力が、関数記述ブロックの変更指示だった場合、指示された関数記述ブロックを取り出し(620)、その暗号属性を取得する(621)。暗号属性がonだった場合(622)、そのブロックは変更不可としてエラーを返しまた待ち状態に戻る(623)。暗号属性がonでなかった場合、ブロックの書換え処理を実行して待ち状態に戻る(624)。
【００４８】
入力が印刷指示だった場合、クライアントプリケーションは、そのファイルを使用して帳票の印刷処理を開始する。
【００４９】
印刷処理では、取り出されたフォームとフィールドデータ、それにmainの関数記述ブロックを取出して(630)、クライアントアプリケーションはオーバレイ印刷を実行する(631)。mainのブロックに記述されている処理はsubfunctionblockだけとは限らないが、もしsubfunctionblock指定がされていれば(632)、他の関数記述ブロックの処理へと、処理が分岐する(633)。そうでなければ、その他の印刷属性の設定やフォームおよびデータの設定、あるいはオーバレイ印刷などの関数を実行する(634)。ひとつのブロックが終了すれば呼び出し元に戻る。
【００５０】
633の分岐によらず、その呼び出しの結果がエラーであれば(635)、エラー終了して待ち状態に戻る(636)。エラーでなければブロックの終了かどうかを見て待ち状態に戻るか関数の実行を続けるかする(637)。
【００５１】
subfunctionblockの呼び出しは、図７のようになり、subの関数記述ブロックからもさらにsubブロックが呼べる(701)。
【００５２】
そうでなければ関数を実行し(702)、エラー判定をして(703)、エラーなら終了(704)、それ以外はブロックの終了を判定し続行するか終了するかを判断する(705)。
【００５３】
このようにして、関数記述ブロックからの他の関数記述ブロックの呼び出しは、内部で再帰的に処理される。
【００５４】
関数記述ブロックの処理自体は既知のものであり、記述されている関数を順に処理することによって印刷が行なわれる。
【００５５】
以上のように、関数記述ブロックに書換え不可の属性を設けることによって、複数のブロックを定型的な業務中で利用したい場合に、定型業務の定常性を確保しつつ、関数記述ブロックの簡便な運用力を保つことができる。
【００５６】
また、関数記述ブロックを相互に呼び出し可能にすることで、単純なフローを定義したブロックを多数用意しておき、それを組み合わせて複雑で大きな印刷フローを形成することが簡単になる。このことで、関数記述ブロックを利用した業務システムのメンテナンス性が向上する。
【００５７】
（実施例２）
実施例では、関数記述ブロックの書換え可能/不可の指定方法としては、暗号化されているかどうかを判定基準としたが、もちろん書換え可能/不可の属性をフラグ等で保持するのでも構わない。
【００５８】
[実施例特有の効果]
暗号化とは切り離したパラメータとして、関数記述ブロックの書換え属性を指定することができる。
【図面の簡単な説明】
【００５９】
【図１】本発明のハードウェアの構成ブロック図。
【図２】本発明のネットワーク構成のブロック図。
【図３】本発明における媒体に記録されている内容の構成の例。
【図４】本発明における実行可能状態での記憶領域の構成の例。
【図５】本発明の実施例の扱う配信ファイルの内容の例。
【図６】本発明の実施例における動作のフローチャート。
【図７】本発明の実施例における動作のサブフローチャート。
【図１】
2007293512.tif 000003
【図２】
2007293512.tif 000004
【図３】
2007293512.tif 000005
【図４】
2007293512.tif 000006
【図５】
2007293512.tif 000007
【図６】
2007293512.tif 000008
【図７】
2007293512.tif 000009