(57)【特許請求の範囲】
【請求項１】
複数の配信処理手段を有する配信装置と、前記配信装置によって配信されるデータを受信する受信装置と、配信要求記憶手段と、を含む配信システムであって、
前記複数の配信処理手段それぞれは、
クライアントからのデータの配信要求の受け付けに応じ、前記複数の配信処理手段によって共用される前記配信要求記憶手段に前記配信要求を記憶し、前記配信要求の送信元の前記クライアントからの新たな配信要求は、前記複数の配信処理手段のいずれかが前記配信要求に対する応答を行った後に受け付ける要求受付手段と、
前記受信装置からの転送要求に応じ、前記配信要求記憶手段に記憶されている配信要求の中で最も古く、前記受信装置に転送されていない配信要求を前記受信装置に転送する配信要求転送手段とを有する配信システム。
【請求項２】
前記要求受付手段は、前記配信要求の受け付けに応じ、前記複数の配信処理手段によって共用されるデータ記憶手段に前記配信要求に係る前記データを記憶し、前記配信要求に対する応答を行い、
前記配信処理手段は、
前記受信装置に転送された前記配信要求に基づいて該受信装置より送信される当該配信要求に係るデータの転送要求に応じ、当該データを前記データ記憶手段より取得し、前記受信装置に返信するデータ送信手段を有する請求項１記載の配信システム。
【請求項３】
前記受信装置は、
前記配信要求の転送要求に応じて返信される前記配信要求を受信し、前記配信要求を受信された順番に出力管理情報記憶手段に記憶する配信要求取得手段と、
前記出力管理情報記憶手段に記憶されている前記配信要求において指定されている前記データの転送要求を前記配信装置に送信し、該転送要求に応じて返信される該データを受信するデータ取得手段と、
受信された前記データを、当該データに係る前記配信要求の前記出力管理情報記憶手段における順番に従って印刷装置に印刷させる出力制御手段とを有し、
一つの印刷装置に対して複数の前記データ取得手段を有する請求項２記載の配信システム。
【請求項４】
前記データの転送要求は、複数の前記データに関して並列的に前記受信装置より送信される請求項３記載の配信システム。
【請求項５】
前記配信処理手段は、
前記配信要求とは非同期に、該配信要求の存在を示す通知を前記受信装置に送信する配信要求通知手段を有し、
前記配信要求取得手段は、前記通知に基づいて、前記配信要求の転送要求を送信する請求項３記載の配信システム。
【請求項６】
前記配信装置は、前記配信要求記憶手段を有することを特徴とする請求項１乃至５いずれか一項記載の配信システム。
【請求項７】
複数の配信処理手段と、
前記複数の配信処理手段によって共用される記憶手段と、を備え、
前記複数の配信処理手段それぞれは、
クライアントからのデータの配信要求の受け付けに応じ、前記記憶手段に前記配信要求を記憶し、前記配信要求の送信元の前記クライアントからの新たな配信要求は、前記複数の配信処理手段のいずれかが前記配信要求に対する応答を行った後に受け付ける処理を行ない、
配信されるデータを受信する受信装置からの転送要求に応じ、前記記憶手段に記憶されている配信要求の中で最も古く、前記受信装置に転送されていない配信要求を前記受信装置に転送する、
ことを特徴とする配信装置。
【請求項８】
複数の配信処理手段を有する配信装置と、前記配信装置によって配信されるデータを受信する受信装置とが実行する配信方法であって、
前記複数の配信処理手段それぞれは、
クライアントからのデータの配信要求の受け付けに応じ、前記複数の配信処理手段によって共用される配信要求記憶手段に前記配信要求を記憶し、前記配信要求の送信元の前記クライアントからの新たな配信要求は、前記複数の配信処理手段のいずれかが前記配信要求に対する応答を行った後に受け付ける要求受付手順と、
前記受信装置からの転送要求に応じ、前記配信要求記憶手段に記憶されている配信要求の中で最も古く、前記受信装置に転送されていない配信要求を前記受信装置に転送する配信要求転送手順とを実行する配信方法。
【請求項９】
配信装置を複数の配信処理手段として機能させ、前記配信装置によって配信されるデータを受信装置に受信させるプログラムであって、
前記複数の配信処理手段それぞれは、
クライアントからのデータの配信要求の受け付けに応じ、前記複数の配信処理手段によって共用される配信要求記憶手段に前記配信要求を記憶し、前記配信要求の送信元の前記クライアントからの新たな配信要求は、前記複数の配信処理手段のいずれかが前記配信要求に対する応答を行った後に受け付ける要求受付手段と、
前記受信装置からの転送要求に応じ、前記配信要求記憶手段に記憶されている配信要求の中で最も古く、前記受信装置に転送されていない配信要求を前記受信装置に転送する配信要求転送手段とを有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、配信システム、配信装置、配信方法、及びプログラムに関し、特にネットワークを介してデータを配信する配信システム、配信装置、配信方法、及びプログラムに関する。
【背景技術】
【０００２】
日々の業務で生成される各種の帳票データをセンターで一元管理し、必要に応じて各拠点に配信し、各拠点にて帳票データを印刷させるコンピュータシステム（以下、「帳票印刷システム」という。）が存在する。帳票印刷システムの運用形態の一例では、本社又は支社からの大量の生産指示書データがセンターで集中管理され、各拠点の工場のサーバに配信される。生産指示書データを配信された各工場では当該生産指示書が印刷される。
【０００３】
通常、帳票印刷システムでは、印刷物の順序性が利用者の業務に影響を与えるため、センター側における配信指示の受け付け順と、拠点側における印刷順との一致性が保証される必要がある。すなわち、センター側において配信指示された順に、帳票が印刷されることが必要とされる。
【０００４】
従来、配信指示の受け付けから出力処理までを直列的に制御することで、上記一致性の保証が図られていた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０９−１６０７３４号公報
【特許文献２】特開２００２−１６３１０１号公報
【特許文献３】特開２００１−２４９８５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、帳票印刷システムの安全性、性能、資源の有効活用等を考慮すると、配信処理に関して負荷分散が図られるのが望ましい。すなわち、複数の配信処理が並列的に分散されて実行させるシステム形態である。
【０００７】
但し、配信処理を単純に分散化した場合、配信元（センター側）と配信先（拠点側）において、配信対象のデータの順序関係を維持するのが困難になるという問題がある。例えば、Ａ、Ｂ、Ｃの順で処理されるべき配信要求が、配信元において分散されて受け付けられる場合、それぞれの配信要求に応じた処理に対する負荷に応じて、配信先ではＡ、Ｂ、Ｃの順で受信されない可能性がある。
【０００８】
本発明は、上記の点に鑑みてなされたものであって、分散して受け付けられうる配信要求の順序を配信先でも維持することができる配信システム、配信装置、配信方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００９】
そこで上記課題を解決するため、複数の配信処理手段を有する配信装置と、前記配信装置によって配信されるデータを受信する受信装置と、配信要求記憶手段と、を含む配信システムであって、前記複数の配信処理手段それぞれは、クライアントからのデータの配信要求の受け付けに応じ、前記複数の配信処理手段によって共用される前記配信要求記憶手段に前記配信要求を記憶し、前記クライアントからの新たな配信要求は前記配信要求に対する応答を行った後に受け付ける要求受付手段と、前記受信装置からの転送要求に応じ、前記配信要求記憶手段に記憶されている配信要求の中で最も古く、前記受信装置に転送されていない配信要求を前記受信装置に転送する配信要求転送手段とを有する
【発明の効果】
【００１０】
１態様によれば、分散して受け付けられうる配信要求の順序を配信先でも維持することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態における帳票印刷システムの構成例を示す図である。
【図２】本発明の実施の形態における配信処理サービス及び帳票出力サービスの機能構成例を説明するための図である。
【図３】本発明の実施の形態における配信サーバのハードウェア構成例を示す図である。
【図４】配信処理サービスにおける配信要求受け付け時の処理手順を説明するための図である。
【図５】配信キューの構成例を示す図である。
【図６】出力先情報記憶部の構成例を示す図である。
【図７】配信要求存在通知の送信処理の処理手順を説明するための図である。
【図８】存在通知記憶部の構成例を示す図である。
【図９】配信要求の転送処理の処理手順を説明するための図である。
【図１０】出力管理情報記憶部の構成例を示す図である。
【図１１】帳票データの転送処理の処理手順を説明するための図である。
【図１２】出力サーバに転送された帳票データの出力処理の処理手順を説明するための図である。
【図１３】本発明の実施の形態における帳票印刷システムの第二の構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における帳票印刷システムの構成例を示す図である。同図において、帳票印刷システム１は、配信システムの一例であり、一以上の配信サーバ１０及び一以上の出力サーバ２０等を含む。配信サーバ１０と出力サーバ２０とは、ＬＡＮ（Local Area Network）又はインターネット等のネットワーク４０（有線又は無線の別は問わない。）を介して通信可能とされている。
【００１３】
配信サーバ１０は、配信装置の一例である。すなわち、配信サーバ１０は、帳票データの配信要求に応じ、当該配信要求において指定された配信先に係る出力サーバ２０に帳票データを配信するコンピュータである。出力サーバ２０は、受信装置の一例である。すなわち、出力サーバ２０は、配信サーバ１０より配信される帳票データを受信し、当該帳票データについてプリンタ３０への出力制御等を行うコンピュータである。一台の出力サーバ２０は、ＬＡＮ（Local Area Network）等のネットワークを介して接続される一台以上のプリンタ３０に対して印刷ジョブを実行させることができる。なお、本実施の形態では、配信及び印刷の対象とされるデータについて、帳票データを例とする。但し、帳票データ以外の他の電子データ（例えば、一般的な文書データ又は画像データ等）が配信及び印刷の対象とされてもよい。
【００１４】
同図において、配信サーバ１０は、一以上のクライアントプログラム１１、配信処理サービス１２ａ及び１２ｂ等の複数の配信処理サービス１２、配信キュー１３、帳票データ記憶部１４、並びに出力先情報記憶部１５等を有する。
【００１５】
クライアントプログラム１１は、帳票データの配信要求を配信処理サービス１２に対して入力するプログラムである。帳票データは、クライアントプログラム１１によって生成されるものでもよいし、クライアントプログラム１１がネットワークを介して受信するものであってもよい。または、予め所定の記憶装置に記録されているものでもよい。なお、配信要求に基づいて出力サーバ２０に配信される帳票データは、出力サーバ２０によって印刷される。したがって、本実施の形態において、帳票データの配信要求は、帳票データの印刷要求として捉えてもよい。
【００１６】
配信処理サービス１２は、配信処理手段の一例であり、クライアントプログラム１１より入力される配信要求に応じた配信処理を実行するプログラム群である。各配信処理サービス１２は、それぞれ独立したプロセス群として起動される。すなわち、各配信処理サービス１２は、相互に依存関係を有さない。同一のクライアントプログラム１１による配信要求は、複数の配信処理サービス１２によって分散されて処理されうる。換言すれば、1つのクライアントプログラム１１は、帳票データごとに、異なる配信処理サービス１２に対して配信要求を入力しうる。
【００１７】
配信キュー１３は、配信要求記憶手段の一例である。すなわち、配信キュー１３は、配信サーバ１０の記憶装置を用いて、配信処理サービス１２に対して入力された配信要求に関する属性情報（以下、「配信要求情報」という。）を、配信キュー１３への記録順に応じた順番を付与して記憶する。
【００１８】
帳票データ記憶部１４は、配信サーバ１０の記憶装置を用いて、配信要求において配信対象とされている帳票データを記憶する。
【００１９】
出力先情報記憶部１５は、配信サーバ１０の記憶装置を用いて、出力先に関する設定情報を記憶する。本実施の形態において、出力先は、帳票出力サービス２１とプリンタ３０との組み合わせごとに区別される。なお、帳票出力サービス２１が一つしか存在しない場合、出力先は、プリンタ３０ごとに区別されればよい。また、帳票出力サービス２１が一つしか存在せず、プリンタ３０も一つしか存在しない場合、出力先を示すパラメータは無くてもよい。出力先は固定的に定まるからである。
【００２０】
なお、配信キュー１３、帳票データ記憶部１４、及び出力先情報記憶部１５は、複数の配信処理サービス１２より共用される。したがって、配信キュー１３は、複数の配信処理サービス１２に対する配信要求情報を一元的に記憶する。また、帳票データ記憶部１４は、複数の配信処理サービス１２に対する配信要求に係る帳票データを一元的に記憶する。
【００２１】
一方、出力サーバ２０は、帳票出力サービス２１を有する。帳票出力サービス２１は、配信処理サービス１２より帳票データを受信し、当該帳票データの印刷制御を実行するプログラム群である。
【００２２】
配信処理サービス１２及び帳票出力サービス２１の機能構成について説明する。図２は、本発明の実施の形態における配信処理サービス及び帳票出力サービスの機能構成例を説明するための図である。
【００２３】
同図において、配信処理サービス１２は、要求受付部１２１、配信要求通知部１２２、配信要求転送部１２３、及びデータ転送部１２４等を有する。各部は、例えば、それぞれ独立したプロセスとして、自律的に各部の機能を実現するための処理を配信サーバ１０のＣＰＵに実行させる。
【００２４】
要求受付部１２１は、クライアントプログラム１１より配信要求を受け付け、当該配信要求の配信要求情報を配信キュー１３に記録（登録）する。要求受付部１２１は、配信要求情報の登録後、帳票データの配信は行わずにクライアントプログラム１１に対して配信要求に対する応答を行う。すなわち、配信処理サービス１２による帳票データの配信は、配信要求とは非同期に行われる。クライアントプログラム１１の利用者側から見た場合の、クライアントプログラム１１の応答性能を確保するためのである。クライアントプログラム１１は、要求受付部１２１からの応答後、次の配信要求を要求受付部１２１に対して入力可能となる。換言すれば、クライアントプログラム１１は、要求受付部１２１への配信要求の入力後、要求受付部１２１からの応答が返却されるまでは待機状態となり、次の配信要求を入力することはできない。したがって、同一のクライアントプログラム１１からの配信要求が、複数の配信処理サービス１２における要求受付部１２１によって分散されて受け付けられる場合であっても、配信要求の受け付け処理の直列性は確保される（配信処理は直列的に実行される）。その結果、クライアントプログラム１１ごとに、配信キュー１３における配信要求情報の記録順と、配信要求の受け付け順（クライアントプログラム１１からの配信要求の入力順）との整合性は確保される。
【００２５】
配信要求通知部１２２は、配信キュー１３への配信情報の登録を検知すると、配信要求において出力先に指定されている帳票出力サービス２１に対し、配信要求の存在（配信要求の発生）を示す通知（以下、「配信要求存在通知」という。）を送信する。配信要求存在通知では、配信要求情報は通知されない。但し、配信要求存在通知において配信要求情報が通知される実施形態を除外する趣旨ではない。
【００２６】
配信要求転送部１２３は、配信要求存在通知に応じて帳票出力サービス２１より送信される、配信要求情報の転送要求に応じ、配信キュー１３に登録されている未転送の配信要求情報の中で、最も古いものを帳票出力サービス２１に転送（返信）する。
【００２７】
データ転送部１２４は、帳票出力サービス２１からの帳票データの転送要求に応じ、当該転送要求において転送対象として指定されている帳票データを帳票データ記憶部１４より取得し、帳票出力サービス２１に転送（返信）する。
【００２８】
一方、帳票出力サービス２１は、存在通知受信部２１１、配信要求取得部２１２、データ取得部２１３、出力制御部２１４、存在通知記憶部２１５、及び出力管理情報記憶部２１６等を有する。例えば、存在通知受信部２１１、配信要求取得部２１２、データ取得部２１３、出力制御部２１４、及び存在通知記憶部２１５は、それぞれ独立したプロセスとして、自律的に各部の機能を実現するための処理を出力サーバ２０のＣＰＵに実行させる。
【００２９】
存在通知受信部２１１は、配信要求通知部１２２より送信される配信要求存在通知を受信し、当該配信要求存在通知の内容（存在通知情報）を存在通知記憶部２１５に記録する。存在通知記憶部２１５は、出力サーバ２０の記憶装置を用いて、存在通知情報を記憶する。
【００３０】
配信要求取得部２１２は、存在通知記憶部２１５への存在通知情報の記録に応じ、当該存在通知情報に関する配信要求の転送要求を配信要求転送部１２３に送信する。配信要求取得部２１２は、当該転送要求に応じて配信要求転送部１２３より返信される配信要求情報を受信し、出力管理情報記憶部２１６に記録する。配信要求取得部２１２は、1つの帳票出力サービス２１に対して１つ存在し、配信要求転送部１２３からの配信要求情報の受信後、次の転送要求を配信要求転送部１２３に対して送信可能となる。換言すれば、配信要求取得部２１２は、配信要求転送部１２３への転送要求の送信後、配信要求転送部１２３からの応答が返信されるまでは待機状態となり、次の転送要求を送信することはできない。したがって、同一の配信要求取得部２１２からの転送要求が、複数の配信処理サービス１２における配信要求転送部１２３によって分散されて処理される場合であっても、配信要求情報の転送処理の直列性は確保される。その結果、帳票出力サービス２１ごと（すなわち、配信先ごと）に、配信キュー１３における配信要求情報の記録順と、出力管理情報記憶部２１６における配信要求情報の記録順との整合性は確保される。すなわち、同一のクライアントプログラム１１の配信要求は、同一の配信先（帳票出力サービス２１）ごとに、クライアントプログラム１１からの配信要求の入力順が維持された状態で配信先に伝達される。
【００３１】
出力管理情報記憶部２１６は、出力サーバ２０の記憶装置を用いて、配信要求情報を、プリンタ３０への帳票データの出力に関する管理情報として記憶する。なお、出力管理情報記憶部２１６は、プリンタ３０ごとに設けられている。すなわち、各出力管理情報記憶部２１６は、対応するプリンタ３０が出力先として指定されている配信要求情報を記憶する。
【００３２】
データ取得部２１３は、出力管理情報記憶部２１６に記憶されている出力管理情報（配信要求情報）に基づいて、配信対象の帳票データの転送をデータ転送部１２４に要求する。データ取得部２１３は、データ転送部１２４より転送される帳票データを受信し、出力サーバ２０の記憶装置に記録する。なお、データ取得部２１３は、1つの帳票出力サービス２１に対して複数存在してもよい。例えば、出力管理情報記憶部２１６ごと（すなわち、プリンタ３０ごと）にデータ取得部２１３が存在してもよいし、一つの出力管理情報記憶部２１６に対して複数のデータ取得部２１３が存在してもよい。データ取得部２１３が複数の場合、帳票データの転送は並列的に行われうる。その結果、帳票データの転送が直列的に実行される場合に比べて、当該転送に要する時間を短縮化することが可能となる。各帳票データの順序関係は、既に出力管理情報記憶部２１６に記録されている出力管理情報の順序関係に基づいて判別可能である。したがって、帳票データの転送が並列的に行われたとしても、帳票データ間の順序関係が失われることはない。
【００３３】
なお、配信要求情報の転送時に、帳票データが共に転送されてもよい。但し、上記のように、配信要求情報は直列的に転送される。そうすると、データサイズが相対的に大きい帳票データが配信要求情報と共に直列的に転送された場合、当該転送時間が長くなってしまう可能性がある。そこで、本実施の形態では、配信要求と帳票データとは別々に転送されるように工夫されている。
【００３４】
出力制御部２１４は、データ取得部２１３によって取得された帳票データについて、出力管理情報記憶部２１６に基づいて判定される順番で、印刷処理を実行する。出力制御部２１４についても、一つの帳票出力サービス２１内に複数存在してよいが、その場合、出力制御部２１４は、プリンタ３０ごとに存在する。１台のプリンタ３０に対して複数の出力制御部２１４が存在すると、プリンタ３０に対する印刷処理に割り込みが発生し、順序性が損なわれる可能性があるためである。また、複数の出力制御部２１４による処理は並列的に実行されてよい。
【００３５】
図３は、本発明の実施の形態における配信サーバのハードウェア構成例を示す図である。図３の配信サーバ１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、ＣＰＵ１０４と、インタフェース装置１０５とを有する。
【００３６】
配信サーバ１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００３７】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って配信サーバ１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００３８】
なお、出力サーバ２０についても、図３に示されるハードウェアを有していればよい。
【００３９】
以下、帳票印刷システム１の処理手順について説明する。図４は、配信処理サービスにおける配信要求受け付け時の処理手順を説明するための図である。
【００４０】
ステップＳ１０１において、クライアントプログラム１１は、配信対象（印刷対象）の帳票データの配信要求を、一つの配信処理サービス１２に対して入力する（Ｓ１０１）。当該配信要求には、配信要求情報として、帳票出力サービス名、プリンタ名、及び配信対象の帳票データ等が指定される。なお、複数の配信処理サービス１２のうち、いずれに対して配信要求を入力するかについては、例えば、安全性や処理負荷等を考慮して、クライアントプログラム１１によって任意に選択されればよい。
【００４１】
当該配信処理サービス１２の要求受付部１２１は、配信要求を受け付けると、当該配信要求に指定されている帳票データを帳票データ記憶部１４に記録する（Ｓ１０２）。なお、帳票データ記憶部１４では、帳票データの識別情報（本実施の形態では、「帳票データ名」という。）と帳票データとが関連付けられて記憶される。続いて、要求受付部１２１は、当該配信要求の配信要求情報を配信キュー１３に登録する（Ｓ１０３）。
【００４２】
図５は、配信キューの構成例を示す図である。同図において、配信キュー１３は、配信要求ごとに、順番、出力先名、帳票データ名、及び状態等を記憶する。順番は、配信キュー１３に記録された順番である。すなわち、当該順番は、クライアントプログラム１１より配信要求が受け付けられた順番に相当する。配信キュー１３は、複数の配信処理サービス１２に対して一つであるため、配信キュー１３における順番は、複数の配信処理サービス１２に跨って一意なものとなる。
【００４３】
出力先名は、出力先（帳票出力サービス２１とプリンタ３０との組み合わせ）に対する識別情報である。
【００４４】
帳票データ名は、配信要求において配信対象とされた帳票データの帳票データ名である。当該帳票データ名は、帳票データ記憶部１４に記録されている帳票データの実体との関連情報として機能する。
【００４５】
状態は、配信要求の処理状態を示す。状態の値としては、「未配信」、「通知済」、「配信中」、及び「配信済」が有る。配信キュー１３に配信要求情報が登録された際の初期値は、「未配信」である。
【００４６】
なお、配信要求に指定された帳票出力サービス名及びプリンタ名から出力先名への変換は、出力先情報記憶部１５に基づいて要求受付部１２１によって行われる。
【００４７】
図６は、出力先情報記憶部の構成例を示す図である。同図に示されるように、出力先情報記憶部１５は、出力先ごとに、出力先名、帳票出力サービス名、及びプリンタ名等を予め記憶する。したがって、要求受付部１２１は、配信要求に指定された帳票出力サービス名及びプリンタ名に対応する出力先名を出力先情報記憶部１５に基づいて特定し、当該出力先名を配信キュー１３に記録する。
【００４８】
なお、「出力先」といった概念を定義せずに、帳票出力サービス名及びプリンタ名が、そのまま配信キュー１３に記録されてもよい。
【００４９】
配信キュー１３への配信要求情報の登録後、要求受付部１２１は、クライアントプログラム１１に対して応答を行う。当該応答に応じ、ステップＳ１０１以降待機状態だったクライアントプログラム１１に処理制御が復帰する（Ｓ１０４）。したがって、クライアントプログラム１１は、同一の配信処理サービス１２又は他の配信処理サービス１２に対して、引き続き配信要求を入力することが可能となる。
【００５０】
続いて、図７は、配信要求存在通知の送信処理の処理手順を説明するための図である。
【００５１】
各配信処理サービス１２の配信要求通知部１２２は、定期的に配信キュー１３を参照（ポーリング）している（Ｓ１１１）。「状態」の値が「未配信」である配信要求情報が配信キュー１３に記録されている場合（Ｓ１１２でＹｅｓ）、配信要求通知部１２２は、当該配信要求情報の出力先に係る帳票出力サービス２１に対し、配信要求存在通知を送信する（Ｓ１１３）。当該配信要求存在通知には、当該配信要求情報の出力先名、当該配信サーバ１０の名前（配信サーバ名）、及び当該配信処理サービス１２の名前（配信処理サービス名）が指定される。
【００５２】
帳票出力サービス２１の存在通知受信部２１１は、当該配信要求存在通知を受信すると、当該配信要求存在通知に指定された情報を存在通知記憶部２１５に記録する（Ｓ１１４）。
【００５３】
図８は、存在通知記憶部の構成例を示す図である。同図に示されるように、存在通知記憶部２１５には、配信要求存在通知ごとに、出力先名、配信サーバ名、及び配信処理サービス１２等の存在通知情報が記録される。存在通知記憶部２１５の内容に基づいて、帳票出力サービス２１は、現時点においてどの配信サーバ２０のどの配信処理サービス１２において配信要求が受け付けられているかを判断することができる。
【００５４】
続いて、存在通知受信部２１１は、配信要求存在通知の登録に成功したことを示す応答を配信要求通知部１２２に返信する（Ｓ１１５）。配信要求通知部１２２は、当該応答を受信すると、配信キュー１３における、当該配信要求情報の「状態」の値を「通知済」とする（Ｓ１１６）。一方、存在通知受信部２１１は、配信要求存在通知の成功に失敗した場合は、当該失敗を示す応答を配信要求通知部１２２に返信する。配信要求通知部１２２は、失敗を示す応答を受信した場合、当該配信要求情報の「状態」の値は更新しない。すなわち、「通知済」とは、配信要求存在通知の送信が正常に終了している状態を意味する。
【００５５】
なお、配信要求通知部１２２は、配信要求存在通知に対する応答を必ずしも待機しなくてもよい。すなわち、配信要求存在通知に関しては、直列性は確保されなくてもよい（並列的に送信されてもよい）。この場合、一つの配信要求に対して複数の配信要求存在通知が送信されうるが、その重複は、帳票出力サービス２１側で除去すれよい。すなわち、存在通知受信部２１１は、既に存在通知記憶部２１５に記録されている存在通知情報と、出力先名、配信サーバ名、及び配信処理サービス名が一致する配信要求存在通知が受信された場合、当該配信要求存在通知を無視すればよい。
【００５６】
続いて、図９は、配信要求の転送処理の処理手順を説明するための図である。帳票出力サービス２１の配信要求取得部２１２は、存在通知記憶部２１５を定期的に参照（ポーリング）している（Ｓ２０１）。存在通知記憶部２１５に、レコード（存在通知情報）が記録されている場合（Ｓ２０１でＹｅｓ）、当該レコードに含まれている配信サーバ名及び配信処理サービス名によって一意に特定される配信処理サービス１２に対し、当該レコードに含まれている出力先名を指定して配信要求の転送要求を送信する（Ｓ２０２）。転送要求の送信後、配信要求取得部２１２は、当該配信処理サービス１２からの応答を待機する。配信要求の転送の直列性を確保するためである。
【００５７】
当該配信処理サービス１２の配信要求転送部１２３は、当該転送要求を受信すると、「状態」が「通知済」であり、出力先名が当該転送要求に指定された出力先名と一致する配信要求情報の中で、最も古い配信要求情報を配信キュー１３より取得する（Ｓ２０３）。なお、最も古いとは、順番の値が最も小さいことと同義である。
【００５８】
該当する配信要求情報が取得された場合（Ｓ２０４でＹｅｓ）、配信要求転送部１２３は、配信キュー１３における当該配信要求情報の「状態」を「配信中」に変更する（Ｓ２０５）。続いて、配信要求転送部１２３は、当該配信要求情報を配信要求取得部２１２に返信（転送）する（Ｓ２０６）。具体的には、配信要求の順番、プリンタ名、及び帳票データ名等を含む応答が返信される。すなわち、配信キュー１３における出力先名に基づいて、対応するプリンタ名が出力先情報記憶部１５より取得され、当該プリンタ名が応答に含められる。
【００５９】
応答を待機していた配信要求取得部２１２は、応答を受信すると、当該応答に含まれているプリンタ名に対応する出力管理情報記憶部２１６に新たなレコードを追加し、当該応答に含まれている情報（順番、帳票データ名等）を当該レコードに記録する（Ｓ２１１）。配信要求取得部２１２は、また、処理対象とされている配信要求存在通知の配信サーバ名及び配信処理サービス名を当該レコードに記録する。
【００６０】
図１０は、出力管理情報記憶部の構成例を示す図である。同図に示されるように、出力管理情報記憶部２１６は、対応するプリンタ３０が出力先として指定されている配信要求ごとに、順番、帳票データ名、配信サーバ名、配信処理サービス名、及び状態を記憶する。同図では、プリンタ名が「プリンタＡ」であるプリンタ３０に対応する出力管理情報記憶部２１６が示されている。
【００６１】
状態は、帳票データの転送状態を示し、初期値は「未転送」である。すなわち、ステップＳ２１１において追加されるレコードの状態の値は「未転送」とされる。この時点では、帳票データの実体はまだ転送されていないからである。なお、出力管理情報記憶部２１６の順番には、必ずしも、配信要求情報に含まれている順番の値がそのまま転記されなくてもよい。配信要求情報に含まれている順番に基づく順序関係（前後関係）が維持可能なように、出力管理情報記憶部２１６内において別途順番が付与されてもよい。
【００６２】
一方、ステップＳ２０３において、該当する配信要求情報が取得されなかった場合（Ｓ２０４でＮｏ）、配信要求転送部１２３は、該当する配信要求情報は無いことを示す応答を配信要求取得部２１２に返信する（Ｓ２０７）。配信要求取得部２１２は、当該応答を受信すると、処理対象のレコード（存在通知情報）を存在通知記憶部２１５より削除する（Ｓ２１２）。すなわち、存在通知記憶部２１５における同一のレコードに関して、配信要求情報が転送されなくなるまで当該レコードに基づく転送要求は繰り返される。
【００６３】
図９の処理によって、配信キュー１３における順番が維持されたまま、配信要求情報は、それぞれの出力先のプリンタ３０に対応する出力管理情報記憶部２１６に記録（転記）されたことになる。
【００６４】
続いて、図１１は、帳票データの転送処理の処理手順を説明するための図である。
【００６５】
帳票出力サービス２１のデータ取得部２１３は、定期的に出力管理情報記憶部２１６を参照（ポーリング）している（Ｓ２２１）。出力管理情報記憶部２１６にレコードが存在する場合（Ｓ２２２でＹｅｓ）、データ取得部２１３は、「状態」が「未転送」であるレコードの中で、「順番」の値が最小である（すなわち、最も古い）レコード（以下、「カレントレコード」という。）より帳票データ名、配信サーバ名、及び配信処理サービス名を取得し、カレントレコードの「状態」を「転送中」に更新する（Ｓ２２３）。
【００６６】
続いて、データ取得部２１３は、取得された帳票データ名を指定して、取得された配信サーバ名及び配信処理サービス名によって一意に特定される配信処理サービス１２に対し帳票データの転送要求を送信する（Ｓ２２４）。
【００６７】
当該配信処理サービス１２のデータ転送部１２４は、当該転送要求を受信すると、当該配信要求において指定されている帳票データ名に係る帳票データを帳票データ記憶部１４より取得し、データ取得部２１３に返信する（Ｓ２２５）。なお、この際、データ転送部１２４は、当該帳票データ名に係る配信要求情報の状態を「転送済」とする。または、データ転送部１２４は、当該配信要求情報を配信キュー１３より削除してもよい。
【００６８】
データ取得部２１３は、当該帳票データを受信すると、当該帳票データを出力管理情報記憶部２１６のカレントレコードに関連付けて、出力サーバ２０の記憶装置に保存する（Ｓ２２６）。続いて、データ取得部２１３は、カレントレコードの「状態」を「転送済」に更新する（Ｓ２２７）。
【００６９】
なお、一つの出力管理情報記憶部２１６に記録されている複数のレコードのそれぞれについて、複数のデータ取得部２１３によって並列的に帳票データの取得（図１１の処理手順）が行われる場合、それぞれの通信負荷等によっては、「順番」通りに帳票データが転送されない場合もある。しかし、このような事態の発生は許容される。図１２において説明されるように、帳票データの出力処理は、出力管理情報記憶部２１６における順番に基づいて実行されるからである。
【００７０】
続いて、図１２は、出力サーバに転送された帳票データの出力処理の処理手順を説明するための図である。
【００７１】
帳票出力サービス２１の出力制御部２１４は、定期的に出力管理情報記憶部２１６を参照（ポーリング）している（Ｓ２３１）。例えば、出力制御部２１４がプリンタ３０ごとに存在する場合、各出力制御部２１４は、対応するプリンタ３０に係る出力管理情報記憶部２１６を定期的に参照する。
【００７２】
続いて、出力制御部２１４は、参照した出力管理情報記憶部２１６内において順番が最小であるレコードの「状態」は「転送済」であるか否かを判定する（Ｓ２３２）。当該レコードの「状態」が「転送済」でない場合（Ｓ２３２でＮｏ）、出力制御部２１４は、ポーリングを継続する。この場合には、参照対象とされた出力管理情報記憶部２１６の全てのレコードについて「状態」が「転送済」でない場合だけでなく、順番が最小であるレコード以外のレコードの「状態」が「転送済」である場合も含まれる。すなわち、順番が後である帳票データの転送が先に完了している場合である。
【００７３】
一方、順番が最小であるレコードの「状態」が「転送済」である場合（Ｓ２３２でＹｅｓ）、出力制御部２１４は、当該レコード（以下、「カレントレレコード」という。）の帳票データ名に係る帳票データについて、印刷処理を実行する（Ｓ２３３）。具体的には、出力制御部２１４は、プリンタドライバ等を用いて当該帳票データの印刷データ（ＰＤＬ（Page Description Language）データ）を生成し、当該印刷データを、参照対象とされた出力管理情報記憶部２１６に対応するプリンタ３０に転送する。その結果、当該プリンタ３０より当該帳票データに係る帳票が印刷される。続いて、出力制御部２１４は、カレントレコードを出力管理情報記憶部２１６より削除する（Ｓ２３４）。
【００７４】
このように、帳票データの印刷処理は、出力管理情報記憶部２１６における順番に従って実行される。当該順番は、配信要求の順番に応じたものである。したがって、配信要求の順序関係が維持された状態で、帳票が印刷される。
【００７５】
また、印刷データの生成は、出力サーバ２０において実行される。したがって、配信サーバ１０の処理負荷を軽減することができる。また、印刷データがネットワーク４０上を流通する場合に比べて通信負荷を低減させることができる。すなわち、一般的に、電子データと、当該電子データの印刷データとでは、印刷データの方がデータ量が大きいからである。
【００７６】
上述したように、本実施の形態によれば、同一のクライアントプログラム１１より複数の配信処理サービス１２によって分散して受け付けられる配信要求の順序関係を、受信装置２０においても維持することができる。したがって、当該順序関係に基づいて、配信要求において配信対象とされた帳票データの印刷順を配信要求の順番に従ったもの（一致したもの）とすることができる。
【００７７】
なお、ここでいう、印刷順と配信要求の順番との一致は、複数の出力サーバ２０又は複数のプリンタ３０を跨った範囲については保証の限りではない。一台のプリンタ３０において出力される帳票の前後関係が印刷要求に従うことを意味するものである。もちろん、出力制御部２１４による処理を一元化すれば、一つの出力サーバ２０に接続されたプリンタ３０において、複数のプリンタ３０を跨って印刷順を保証することはできる。しかし、印刷後の状態において、複数のプリンタ３０間における印刷順をユーザが判別するのは困難である。例えば、二台のプリンタ３０のそれぞれより帳票が出力されていた場合、どちらの帳票が先に出力されたのかをユーザが判断するのは困難である。斯かる点に鑑みれば、複数のプリンタ３０を跨って印刷順を保証するよりも、出力制御部２１４による処理を並列化して処理性能の向上及び処理負荷の分散等を図る方が、ユーザにとって実益が大きいものと考える。
【００７８】
なお、クライアントプログラム１１及び各配信処理サービス１２は、必ずしも同一の装置内に含まれていなくてもよい。例えば、図１３に示されるように、それぞれに対して異なるコンピュータが割り当てられてもよい。
【００７９】
図１３は、本発明の実施の形態における帳票印刷システムの第二の構成例を示す図である。
【００８０】
同図では、クライアントプログラム１１はアプリケーションサーバ５０に実装されている。また、各配信処理サービス１２は、それぞれ異なる配信サーバ１０ａ又は１０ｂに実装されている。なお、配信キュー１３、帳票データ記憶部１４、及び出力先情報記憶部１５等は、いずれか一つの配信サーバ１０が有していてもよいし、配信サーバ１０とは別のコンピュータ（例えば、データ管理サーバ）が有していてもよい。このように、複数のコンピュータ等が配信装置を構成してもよい。
【００８１】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００８２】
以上の説明に関し、更に以下の項を開示する。
（付記１）
複数の配信処理手段を有する配信装置と、前記配信装置によって配信されるデータを受信する受信装置とを含む配信システムであって、
前記配信処理手段は、
データの配信要求の受け付けに応じ、前記複数の配信処理手段によって共用される配信要求記憶手段に前記配信要求を記録して、前記配信要求に対する応答を行う要求受付手段と、
前記受信装置からの前記配信要求の転送要求に応じ、前記配信要求記憶手段に記録されている前記配信要求の中で最も古く、前記受信装置に転送されていない前記配信要求を該転送要求に対する応答として前記受信装置に転送する配信要求転送手段とを有する配信システム。
（付記２）
前記要求受付手段は、前記配信要求の受け付けに応じ、前記複数の配信処理手段によって共用されるデータ記憶手段に前記配信要求に係る前記データを記録し、前記配信要求に対する応答を行い、
前記配信処理手段は、
前記受信装置に転送された前記配信要求に基づいて該受信装置より送信される当該配信要求に係るデータの転送要求に応じ、当該データを前記データ記憶手段より取得し、前記受信装置に返信するデータ送信手段を有する付記１記載の配信システム。
（付記３）
前記受信装置は、
前記配信要求の転送要求に応じて返信される前記配信要求を受信し、前記配信要求を受信された順番に出力管理情報記憶手段に記録する配信要求取得手段と、
前記出力管理情報記憶手段に記録されている前記配信要求において指定されている前記データの転送要求を前記配信装置に送信し、該転送要求に応じて返信される該データを受信するデータ取得手段と、
受信された前記データを、当該データに係る前記配信要求の前記出力管理情報記憶手段における順番に従って印刷装置に印刷させる出力制御手段とを有する付記２記載の配信システム。
（付記４）
前記データの転送要求は、複数の前記データに関して並列的に前記受信装置より送信される付記３記載の配信システム。
（付記５）
前記配信処理手段は、
前記配信要求とは非同期に、該配信要求の存在を示す通知を前記受信装置に送信する配信要求通知手段を有し、
前記配信要求取得手段は、前記通知に基づいて、前記配信要求の転送要求を送信する付記１乃至４いずれか一項記載の配信システム。
（付記６）
複数の配信処理手段を有する配信装置と、前記配信装置によって配信されるデータを受信する受信装置とが実行する配信方法であって、
前記配信処理手段は、
データの配信要求の受け付けに応じ、前記複数の配信処理手段によって共用される配信要求記憶手段に前記配信要求を記録して、前記配信要求に対する応答を行う要求受付手順と、
前記受信装置からの前記配信要求の転送要求に応じ、前記配信要求記憶手段に記録されている前記配信要求の中で最も古く、前記受信装置に転送されていない前記配信要求を該転送要求に対する応答として前記受信装置に転送する配信要求転送手順とを実行する配信方法。
（付記７）
前記要求受付手順は、前記配信要求の受け付けに応じ、前記複数の配信処理手段によって共用されるデータ記憶手段に前記配信要求に係る前記データを記録し、前記配信要求に対する応答を行い、
前記配信処理手段は、
前記受信装置に転送された前記配信要求に基づいて該受信装置より送信される当該配信要求に係るデータの転送要求に応じ、当該データを前記データ記憶手段より取得し、前記受信装置に返信するデータ送信手順を実行する付記６記載の配信方法。
（付記８）
前記受信装置は、
前記配信要求の転送要求に応じて返信される前記配信要求を受信し、前記配信要求を受信された順番に出力管理情報記憶手段に記録する配信要求取得手順と、
前記出力管理情報記憶手段に記録されている前記配信要求において指定されている前記データの転送要求を前記配信装置に送信し、該転送要求に応じて返信される該データを受信するデータ取得手順と、
受信された前記データを、当該データに係る前記配信要求の前記出力管理情報記憶手段における順番に従って印刷装置に印刷させる出力制御手順とを実行する付記７記載の配信方法。
（付記９）
前記データの転送要求は、複数の前記データに関して並列的に前記受信装置より送信される付記８記載の配信方法。
（付記１０）
前記配信処理手段は、
前記配信要求とは非同期に、該配信要求の存在を示す通知を前記受信装置に送信する配信要求通知手順を実行し、
前記配信要求取得手順は、前記通知に基づいて、前記配信要求の転送要求を送信する付記６乃至９いずれか一項記載の配信方法。
（付記１１）
配信装置を複数の配信処理手段として機能させ、前記配信装置によって配信されるデータを受信装置に受信させるプログラムであって、
前記配信処理手段は、
データの配信要求の受け付けに応じ、前記複数の配信処理手段によって共用される配信要求記憶手段に前記配信要求を記録して、前記配信要求に対する応答を行う要求受付手段と、
前記受信装置からの前記配信要求の転送要求に応じ、前記配信要求記憶手段に記録されている前記配信要求の中で最も古く、前記受信装置に転送されていない前記配信要求を該転送要求に対する応答として前記受信装置に転送する配信要求転送手段とを有するプログラム。
（付記１２）
前記要求受付手段は、前記配信要求の受け付けに応じ、前記複数の配信処理手段によって共用されるデータ記憶手段に前記配信要求に係る前記データを記録し、前記配信要求に対する応答を行い、
前記配信処理手段は、
前記受信装置に転送された前記配信要求に基づいて該受信装置より送信される当該配信要求に係るデータの転送要求に応じ、当該データを前記データ記憶手段より取得し、前記受信装置に返信するデータ送信手段を有する付記１１記載のプログラム。
（付記１３）
前記受信装置を、
前記配信要求の転送要求に応じて返信される前記配信要求を受信し、前記配信要求を受信された順番に出力管理情報記憶手段に記録する配信要求取得手段と、
前記出力管理情報記憶手段に記録されている前記配信要求において指定されている前記データの転送要求を前記配信装置に送信し、該転送要求に応じて返信される該データを受信するデータ取得手段と、
受信された前記データを、当該データに係る前記配信要求の前記出力管理情報記憶手段における順番に従って印刷装置に印刷させる出力制御手段として機能させる付記１２記載のプログラム。
（付記１４）
前記データの転送要求は、複数の前記データに関して並列的に前記受信装置より送信される付記１３記載のプログラム。
（付記１５）
前記配信処理手段は、
前記配信要求とは非同期に、該配信要求の存在を示す通知を前記受信装置に送信する配信要求通知手段を有し、
前記配信要求取得手段は、前記通知に基づいて、前記配信要求の転送要求を送信する付記１１乃至１４いずれか一項記載のプログラム。
【符号の説明】
【００８３】
１            帳票印刷システム
１０          配信サーバ
１１          クライアントプログラム
１２          配信処理サービス
１３          配信キュー
１４          帳票データ記憶部
１５          及び出力先情報記憶部
２０          出力サーバ
２１          帳票出力サービス
３０          プリンタ
４０          ネットワーク
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１２１        要求受付部
１２２        配信要求通知部
１２３        配信要求転送部
１２４        データ転送部
２１１        存在通知受信部
２１２        配信要求取得部
２１３        データ取得部
２１４        出力制御部
２１５        存在通知記憶部
２１６        出力管理情報記憶部
Ｂ            バス
【図１】
0005732755.tif 000002
【図２】
0005732755.tif 000003
【図３】
0005732755.tif 000004
【図４】
0005732755.tif 000005
【図５】
0005732755.tif 000006
【図６】
0005732755.tif 000007
【図７】
0005732755.tif 000008
【図８】
0005732755.tif 000009
【図９】
0005732755.tif 000010
【図１０】
0005732755.tif 000011
【図１１】
0005732755.tif 000012
【図１２】
0005732755.tif 000013
【図１３】
0005732755.tif 000014