(58)【調査した分野】(Int.Cl.,DB名)
前記接続サーバーの前記通信管理部は、前記第2の印刷装置との接続が切断されたとき、前記第2の識別情報と前記接続サーバーのアドレス情報を対応付けた情報を前記対応情報から削除する請求項2に記載の印刷制御システム。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施形態について説明する。
<第1実施形態>
図1は、本実施形態に係る制御システム1(印刷制御システム)の構成を示す図である。
図1に示すように、制御システム1は、制御サーバー10(印刷制御装置)を備え、制御サーバー10にインターネット等のネットワークGNを介して複数の店舗システム11が接続される。また、ネットワークGNには、複数の管理装置14が接続される。
店舗システム11は、スーパーマーケットや、コンビニエンスストア、デパート、飲食店等の店舗に適用されたシステムである。店舗システム11は、少なくとも、店舗に来店した顧客に対してレシートを発行する機能を備える。
店舗システム11は、印刷媒体に印刷する印刷機能を有し、レシートを発行可能な1又は複数の印刷装置12を備える。印刷装置12は、店舗内に構築されたローカルエリアネットワークLNに接続される。ローカルエリアネットワークLNには、ネットワークルーターや、モデム等の通信機器を含んで構成されたネットワーク通信制御装置13が接続される。印刷装置12は、ネットワーク通信制御装置13を介して、ネットワークGNにアクセスできる。例えば、店舗システム11Aは、スーパーマーケットSMに適用されたシステムである。スーパーマーケットSMには、複数のレジカウンターRCが設けられ、各レジカウンターRCには、印刷装置12が設けられる。店舗システム11Aに係る印刷装置12は、ローカルエリアネットワークLNに接続され、ネットワーク通信制御装置13を介して、ネットワークGNにアクセスできる。
本実施形態に係る制御システム1では、店舗システム11の印刷装置12が、制御サーバー10との間で通信経路を確立し、通信経路により制御サーバー10と通信する。そして、印刷装置12は、制御サーバー10の制御の下、印刷に係る処理を実行する。
管理装置14は、後述するように1又は複数の店舗システム11を管理する装置である。管理装置14は、例えば、店舗を運営する企業の本社に設けられ、当該店舗を運営する企業のグループに属する複数の店舗に設けられた店舗システム11を管理する。後述するように、管理装置14は、管理下にある店舗システム11の所定の印刷装置12を制御して、当該所定の印刷装置12に印刷を実行させることができる。
【0014】
図2は、制御システム1における制御サーバー10と、印刷装置12と間に確立された通信経路を示す図である。
図2に示すように、制御システム1において、制御サーバー10と、各店舗システム11の印刷装置12との間には、WebSocketコネクションCT(通信経路)が確立される。
なお、WebSocketとは、ネットワークを介して接続されたサーバーと、クライアントとの間で、非同期な双方向通信を可能とする通信規格の1つである。WebSocketでは、サーバーとクライアントがWebSocketコネクションCTを確立した後は、データの送受信を、当該コネクションによりプロトコルを用いて行う。このため、データの送信が発生する度に、コネクションを確立する必要がない。
また、WebSocketコネクションCTとは、当該コネクションで接続された印刷装置12と、制御サーバー10との間で、WebSocketのプロトコル、手続きに従ってデータを送受信する論理的な通信経路のことである。従って、印刷装置12と、制御サーバー10との間で、所定のハンドシェイクが行われ、WebSocketコネクションCTを確立した後は、印刷装置12と、制御サーバー10とは、WebSocketコネクションCTにより、非同期にデータを送受信できる。つまり、制御サーバー10は、任意のタイミングでWebSocketコネクションCTで印刷装置12にデータを送信でき、また、印刷装置12は、WebSocketコネクションCTで制御サーバー10にデータを送信できる。
また、WebSocket通信とは、WebSocketコネクションCTにより印刷装置12と、制御サーバー10との間で行われる、WebSocketのプロトコル、手続きに従った非同期な双方向通信のことである。
WebSocketコネクションCTの確立に伴って、印刷装置12、及び、制御サーバー10は、非同期で、双方向通信できる。つまり、制御サーバー10は、クライアントとしての印刷装置12からリクエストを受けることなく、WebSocketコネクションCTによりWebSocket通信で印刷装置12にデータをプッシュ送信できる。
制御サーバー10、及び、印刷装置12は、WebSocketコネクションCTで、非同期で双方向通信する。すなわち、制御サーバー10は、クライアントとしての印刷装置12からリクエストを受けることなく、任意のタイミングで、WebSocketコネクションCTで印刷装置12に対してデータをプッシュ送信できる。同様に、印刷装置12は、任意のタイミングで、WebSocketコネクションCTで制御サーバー10に対してデータをプッシュ送信できる。
また、制御サーバー10には、複数の管理装置14が通信可能に接続される。後述するように、管理装置14は、制御サーバー10を介して、所定の印刷装置12に印刷制御データを送信し、当該所定の印刷装置12に印刷を実行させることができる。
【0015】
本実施形態において、制御サーバー10は、印刷装置12をクライアントとする、いわゆるクラウドシステムにおけるクラウドサーバーである。すなわち、制御サーバー10は、演算処理機能を有し、印刷装置12の要求や、管理装置14の要求等をトリガーとして所定の演算処理を実行し、演算処理の結果に基づくデータを、WebSocketコネクションCTで印刷装置12に送信可能である。
なお、
図2では、制御サーバー10を、1つのブロックによって表現しているが、これは、制御サーバー10が単一のサーバー装置により構成されることを意味するものではない。後に詳述するが、本実施形態では、制御サーバー10は、複数のサーバーを含んで構成される。
また、本実施形態では、制御サーバー10と、印刷装置12との間で、WebSocket通信を行う。しかしながら、これら装置が、WebSocket通信に代えて、WebSocket通信と同様の非同期な双方向通信を行う構成であってもよい。
【0016】
このように、制御システム1は、印刷機能を有する印刷装置12が、複数台(例えば、1000台)、WebSocketコネクションCTにより、制御サーバー10との間で通信可能に接続された構成を有する。
このような構成のため、以下の効果を得ることができる。
すなわち、制御サーバー10は、複数の店舗システム11の複数の印刷装置12から受信したデータに基づく情報を収集し、管理、分析できる。このため、有益な情報を蓄積することができる。蓄積した情報は、いわゆるビッグデータとして利用できる。
また、店舗システム11の構築の簡易化、及び、低コスト化を図ることが可能となる。すなわち、制御システム1では、印刷装置12がWebSocketコネクションCTにより制御サーバー10に接続される。このため、制御サーバー10が提供するサービスを利用して、制御サーバー10の制御の下、印刷装置12に各種処理を実行させることが可能である。従って、店舗システム11を構築する管理者は、店舗システム11の構築に際し、印刷装置12を所望の場所に設置した上で、印刷装置12をネットワークGNに接続する、という簡易な作業を行えばよい。これにより、制御サーバー10が提供するサービスを利用して、印刷装置12に所望の処理、例えば、レシートの発行に係る処理を実行させることが可能となる。
特に、店舗システム11を構築する管理者は、店舗システム11を管理する管理装置14に、印刷装置12を制御する機能を実装する必要がない。すなわち、管理装置14は、制御サーバー10にアクセスし、制御サーバー10が提供するサービスを利用することによって、制御サーバー10に接続された印刷装置12を制御できる。
また、制御サーバー10に、異なる店舗システム11の印刷装置12がWebSocketコネクションCTで接続されるため、制御サーバー10は、複数の店舗システム11の複数の印刷装置12を管理できる。また、制御サーバー10は、複数の店舗システム11の複数の印刷装置12を動作させることが可能となる。
【0017】
図3は、本実施形態に係る制御システム1の構成をより詳細に示す図である。
図3に示すように、制御サーバー10は、複数の接続サーバー50と、複数の管理サーバー60と、を含んで構成される。制御サーバー10において、複数の接続サーバー50、及び、複数の管理サーバー60は、LAN等を含んで構成されたサーバー間ネットワークSNを介して通信可能に接続される。
図3に示すように、接続サーバー50には、1又は複数の印刷装置12がWebSocketコネクションCTにより接続される。
また、管理サーバー60には、1又は複数の管理装置14がコネクションKKで接続される。管理サーバー60と、管理装置14との間で確立されるアプリケーション層のコネクションKKは、Websocketに係るものに限らず、HTTP等であってもよい。
接続サーバー50は、後述するように、印刷装置12との間での通信に関する処理、印刷装置12の制御に係る処理等、印刷装置12に関する処理を実行する機能を有する。また、管理サーバー60は、後述するように、管理装置14との間での通信に関する処理等、管理装置14に関する処理を実行する機能を有する。
図3に示すように、サーバー間ネットワークSNには、データベース管理サーバー70が接続される。また、サーバー間ネットワークSNには、ゲートサーバー80が接続される。これらサーバーの機能については、後述する。
【0018】
図3を用いて、複数の管理装置14のうちの1つの管理装置14Aと、複数の印刷装置12のうちの1つの印刷装置12Aとの間で行われる通信について、管理装置14Aから、印刷装置12Aにデータを送信する場合を例にして、簡単に説明する。
なお、本実施形態において、印刷装置12Aは、管理装置14Aが制御対象とする印刷装置12である。つまり、管理装置14Aは、印刷装置12Aを、管理装置14Aの制御の下で印刷を実行させる対象とする。従って、印刷装置12Aは、管理装置14Aの管理下にある店舗システム11に含まれる印刷装置12である。
管理装置14Aが、印刷装置12Aに対してデータを送信する場合は、以下の処理が行われる。まず、管理装置14Aは、後述する方法により、複数の管理サーバー60のうちの、管理サーバー60Aに対してデータを送信する。当該データには、印刷装置12Aを指定する情報が含まれる。本実施形態では、制御サーバー10が提供するサービスを受ける場合に、管理装置14がアクセスする管理サーバー60が、管理装置14ごとに予め定められる。
管理サーバー60Aは、後述する方法により、サーバー間ネットワークSNに接続される接続サーバー50のうち、管理装置14Aが制御対象とする印刷装置12Aが接続された接続サーバー50を検索する。本例では、印刷装置12Aが接続された接続サーバー50は、第1接続サーバー50Aである。従って、管理サーバー60Aは、第1接続サーバー50Aを検索する。
次いで、管理サーバー60Aは、検索した第1接続サーバー50Aに、データを送信する。次いで、第1接続サーバー50Aは、後述する方法により、印刷装置12Aに対してデータを送信する。その際、第1接続サーバー50Aは、必要に応じて、受信したデータに基づいて所定の処理を行って新たなデータを生成し、当該新たなデータを送信する。印刷装置12Aは、データを受信し、当該データに基づく処理を実行する。
【0019】
このように、本実施形態に係る制御サーバー10は複数の接続サーバー50と、複数の管理サーバー60と、を含んで構成される。管理装置14と、印刷装置12とは、制御サーバー10における接続サーバー50、及び、管理サーバー60を介して通信する。特に、管理装置14は、管理サーバー60、及び、接続サーバー50を介して、印刷装置12に印刷を実行させる。
このような構成のため、以下の効果を奏する。
すなわち、管理サーバー60と、接続サーバー50とが独立したサーバーであるため、これらサーバーについて、独立して増設可能である。
例えば、制御サーバー10が提供するサービスを利用すべく、制御サーバー10に接続可能な印刷装置12の台数が増加したとする。これに起因して、第1接続サーバー50Aを増設し、印刷装置12に関する処理に係る処理負荷の分散を図ることになったとする。この場合、本実施形態によれば、接続サーバー50を、管理サーバー60とは独立して、増設することが可能である。このような構成のため、接続サーバー50に接続可能な印刷装置12の状況(台数等)、及び、管理サーバー60に接続可能な管理装置14の状況(台数等)に応じて、各サーバーの台数を調整できる。これにより、制御サーバー10のサーバー構成を、接続サーバー50、及び、管理サーバー60の状況に応じた規模としつつ、各サーバーに接続可能な装置の台数に応じた処理負荷の分散を図ることが可能である。
また、上記構成によれば、接続サーバー50は、接続される印刷装置12に関する処理を実行する機能を備えればよく、また、管理サーバー60は、接続される管理装置14に関する処理を実行する機能を備えればよい。このため、1つのサーバーに、異なる種類の装置に関する処理を連携して実行する機能を実装する場合と比較して、1台のサーバーに加わる処理負荷を軽減でき、また、1台のサーバーにおける処理の複雑化を抑制できる。
【0020】
図4は、印刷装置12A、第1接続サーバー50A、第2接続サーバー50B、管理サーバー60A、管理装置14A、データベース管理サーバー70、及び、ゲートサーバー80の機能的構成を示すブロック図である。
図4に示すように、印刷装置12Aは、通信制御部15と、通信部16と、印刷制御部17と、印刷部18と、印刷装置記憶部19と、を備える。
通信制御部15、通信部16、及び、印刷制御部17の機能については後述する。
印刷部18は、印刷媒体に印刷する印刷機構、印刷媒体を搬送する搬送機構、印刷媒体を切断する切断機構等の印刷に係る機構、及び、各機構の制御に係る制御基板等を備える。
印刷装置記憶部19は、不揮発性メモリーを備え、各種データを記憶する。印刷装置記憶部19には、通信先情報データ19aと、印刷装置識別情報データ19bと、が記憶されるが、これらについては後述する。
【0021】
図4に示すように、制御サーバー10が備える第1接続サーバー50Aは、通信管理部25と、1又は複数の接続部26と、印刷データ処理部27と、接続サーバー記憶部28と、接続サーバー通信インターフェース29(以下、「接続サーバー通信I/F29」と表現する。)と、を備える。
通信管理部25、接続部26、及び、印刷データ処理部27の機能については、後述する。
接続サーバー記憶部28は、不揮発性メモリーを備え、各種データを記憶する。接続サーバー記憶部28には、コネクション管理データベース28aが記憶されるが、これについては後述する。
接続サーバー通信I/F29は、通信管理部25の制御の下、サーバー間ネットワークSNを介して、制御サーバー10が備える他のサーバーと所定の通信規格に従って通信する。
図4に示すように、第2接続サーバー50Bは、1又は複数の接続部26を備える。各接続部26には、WebSocketコネクションCTにより印刷装置12が接続される。
【0022】
図4に示すように、制御サーバー10が備える管理サーバー60Aは、管理サーバー制御部61と、管理サーバー通信インターフェース62(サーバー通信部。以下、「管理サーバー通信I/F62」と表現する。)と、管理サーバーネットワークインターフェース63(サーバー受信部。以下、「管理サーバーNWI/F63」と表現する。)と、を備える。
管理サーバー制御部61は、CPU等を備え、管理サーバー60Aを制御する。管理サーバー制御部61は、機能ブロックとして検索部61aを備える。検索部61aの機能については後述する。
管理サーバー通信I/F62は、管理サーバー制御部61の制御の下、サーバー間ネットワークSNを介して、制御サーバー10が備える他のサーバーと所定の通信規格に従って通信する。
管理サーバーNWI/F63は、管理サーバー制御部61の制御の下、ネットワークGNを介して、管理装置14(管理装置14Aを含む)と所定の規格に従って通信する。
【0023】
図4に示すように、制御サーバー10が備えるデータベース管理サーバー70は、データベース管理サーバー制御部71と、データベース管理サーバー記憶部72(接続情報記憶部)と、データベース管理サーバー通信インターフェース73(以下、「データベース通信I/F73」と表現する。)と、を備える。
データベース管理サーバー制御部71は、CPU等を備え、データベース管理サーバー70を制御する。データベース管理サーバー制御部71は、データベース管理サーバー記憶部72に記憶された各種データベースに読み書きする機能を備える。
データベース管理サーバー記憶部72は、不揮発性メモリーを備え、各種データを記憶する。データベース管理サーバー記憶部72には、接続サーバーアドレス管理データベース72a(対応情報。以下、「接続サーバーアドレス管理DB72a」と表現する。)が記憶されるが、これらについては後述する。
データベース通信I/F73は、データベース管理サーバー制御部71の制御の下、サーバー間ネットワークSNを介して、制御サーバー10が備える他のサーバーと所定の通信規格に従って通信する。
【0024】
図4に示すように、制御サーバー10が備えるゲートサーバー80は、ゲートサーバー制御部81と、ゲートサーバー記憶部82と、ゲートサーバー通信インターフェース83(以下、「ゲートサーバー通信I/F83」と表現する。)と、ゲートサーバーネットワークインターフェース84(以下、「ゲートサーバーNWI/F84」と表現する。)と、を備える。
ゲートサーバー制御部81は、CPU等を備え、ゲートサーバー80を制御する。ゲートサーバー制御部81は、機能ブロックとして、接続制御部81aを備える。接続制御部81aの機能については後述する。
ゲートサーバー記憶部82は、不揮発性メモリーを備え、各種データを記憶する。ゲートサーバー記憶部82には、接続サーバー管理データベース82a(以下、「接続サーバー管理DB82a」と表現する。)が記憶されるが、これについては後述する。
ゲートサーバー通信I/F83は、ゲートサーバー制御部81の制御の下、サーバー間ネットワークSNを介して、制御サーバー10が備える他のサーバーと通信する。
ゲートサーバーNWI/F84は、ゲートサーバー制御部81の制御の下、ネットワークGNを介して、所定の通信規格に従って、他の装置(印刷装置12を含む。)と通信する。
【0025】
図4に示すように、管理装置14は、管理装置制御部40と、管理装置ネットワークインターフェース41(送信部。以下、「管理装置NWI/F41」と表現する。)と、を備える。
管理装置制御部40は、CPU等を備え、管理装置14を制御する。
管理装置NWI/F41は、管理装置制御部40の制御の下、所定の規格に準拠した通信を行う。
【0026】
次に、印刷装置12Aの電源投入時における、印刷装置12A、ゲートサーバー80、及び、第1接続サーバー50Aの動作について説明する。
図5は、印刷装置12Aに電源が投入された後の印刷装置12A、ゲートサーバー80、及び、第1接続サーバー50Aの動作を示すフローチャートである。
図5(A)は印刷装置12Aの動作を、(B)はゲートサーバー80の動作を、(C)は第1接続サーバー50Aの動作を、示す。
なお、以下の説明では、制御サーバー10は、接続サーバー50として、第1接続サーバー50Aと、第2接続サーバー50Bの2つのサーバーを備える。
なお、
図5のフローチャートの処理のトリガーは、電源投入時に限らない。例えば、印刷装置12がネットワークGNに通信可能に接続された場合や、ユーザーから指示があった場合等であってもよい。
また、以下の説明では、印刷装置12Aは、対応する店舗システム11のローカルエリアネットワークLNに接続され、ネットワークGNにアクセスする。
【0027】
また、以下の説明において、印刷装置12Aが備える通信制御部15、印刷制御部17、第1接続サーバー50Aが備える通信管理部25、印刷データ処理部27、管理サーバー60Aが備える検索部61a、ゲートサーバー80が備える接続制御部81aの各機能ブロックの機能は、例えば、以下のようにして実現される。
すなわち、例えば、これら機能ブロックは、オブジェクトである。オブジェクトとは、オブジェクト指向プログラミングで生成されるインスタンス、すなわち、データ、及び、メソッドの集合として定義されたソフトウェアの機能ブロックである。そして、これら機能ブロックの機能は、各機能ブロックに実装されたメソッドが呼び出されることによって実現される。
また例えば、これら機能ブロックの機能は、アプリケーションがCPU等のハードウェア資源によって読み出され実行されることによって、実現される。1つのアプリケーションにより1つの機能ブロックの機能が実現される構成であってもよい。また、1つのアプリケーションにより複数の機能ブロックの機能が実現される構成であってもよい。また、複数のアプリケーションにより1つの機能ブロックの機能が実現される構成であってもよい。
すなわち、各機能ブロックは、各機能をブロックとして表現したものであり、特定のアプリケーションや、ハードウェア等を意味するものではない。
【0028】
図5(A)に示すように、印刷装置12Aの電源が投入されると(ステップSX1)、通信制御部15は、印刷装置記憶部19にアクセスし、印刷装置記憶部19に記憶される通信先情報データ19aを取得する(ステップSA1)。
通信先情報データ19aとは、複数ある接続サーバー50のうちの1つのサーバーとWebSocketコネクションCTの確立する際に、アクセスするゲートサーバー80のアドレス(ドメイン名、IPアドレス、パス名等。)を示すデータである。
ここで、WebSocketでは、WebSocketコネクションCTの確立に当たり、クライアント(本例では、印刷装置12A)は、サーバーに対して、HTTP(Hypertext Transfer Protocol)でハンドシェイクを行う。通信先情報データ19aには、当該ハンドシェイクに際して、メッセージを送信する送信先のアドレスが記述される。
このように、本実施形態では、印刷装置12は、制御サーバー10との間でのWebSocketコネクションCTの確立にあたり、ゲートサーバー80にアクセスする。すなわち、印刷装置12には、WebSocketコネクションCTを確立する際にアクセスするゲートサーバー80のドメイン名や、IPアドレス等のアドレスを示す情報が、通信先情報データ19aとして記憶される。
次いで、通信制御部15は、通信先情報データ19aが示すアドレスに基づいて、ゲートサーバー80に対して、いずれかの接続サーバー50との間でのWebSocketコネクションCTの確立を要求する(接続要求を送信する。)(ステップSA2)。
【0029】
図5(B)に示すように、ゲートサーバー80のゲートサーバー制御部81の接続制御部81aは、ゲートサーバーNWI/F84により、接続要求を受信する(WebSocketコネクションCTの確立の要求を受け付ける。)。(ステップSB1)
次いで、接続制御部81aは、接続サーバー管理DB82aを参照する(ステップSB2)。
接続制御部81aは、制御サーバー10が備える1又は複数の接続サーバー50について、接続サーバー50との間でWebSocketコネクションCTを確立している印刷装置12の個数を管理する。そして、接続サーバー管理DB82aとは、接続サーバー50との間でWebSocketコネクションCTを確立している印刷装置12の個数を示す情報が格納されたデータベースである。従って、接続制御部81aは、接続サーバー管理DB82aを参照することにより、制御サーバー10が備える任意の接続サーバー50について、当該接続サーバー50との間でWebSocketコネクションCTを確立している印刷装置12の個数を取得できる。
なお、接続サーバー管理DB82aの更新は、どのような方法で行われてもよい。例えば、接続制御部81aが、各接続サーバー50に対して、WebSocketコネクションCTを確立している印刷装置12の個数を定期的に問い合わせ、問い合わせに対する応答に基づいて、データベースを更新してもよい。また、接続サーバー50が、例えば、新たに印刷装置12が接続された場合や、接続サーバー50に接続された印刷装置12の接続が切断された場合に、接続制御部81aに通知する。そして、接続制御部81aは、受けた通知に基づいて、データベースを更新するようにしてもよい。
本例では、接続サーバー管理DB82aにおいて、第1接続サーバー50Aに接続された印刷装置12の個数と、第2接続サーバー50Bに接続された印刷装置12の個数とが対応付けて記憶される。
【0030】
ステップSB2において、接続サーバー管理DB82aを参照した後、接続制御部81aは、以下の処理を実行する。すなわち、接続制御部81aは、第1接続サーバー50A、及び、第2接続サーバー50Bのうち、WebSocketコネクションCTにより接続される印刷装置12の個数が少ない方のサーバーを特定する(ステップSB3)。
ここで、接続される印刷装置12の個数が少ないサーバーは、個数が多いサーバーと比較して、加わる各種負荷(CPUの負荷、通信の負荷、その他の負荷等)が小さい蓋然性が高い。接続サーバー50は、接続された印刷装置12に対応する処理を実行する必要があるが、接続される印刷装置12の個数が少ない分、実行する処理が少ないからである。このことを踏まえ、接続制御部81aは、要求に応じてWebSocketコネクションCTを確立する接続サーバー50を、接続される印刷装置12の個数が少ない方の接続サーバー50と選択する(ステップSB4)。
本例では、第1接続サーバー50Aと、第2接続サーバー50Bのうち、第1接続サーバー50Aの方が、接続される印刷装置12の個数が少ないものとする。従って、ステップSB3において、接続制御部81aは、接続される印刷装置12の個数が少ない接続サーバー50として、第1接続サーバー50Aを特定する。また、ステップSB4において、接続制御部81aは、要求に応じてWebSocketコネクションCTを確立する接続サーバー50として、第1接続サーバー50Aを選択する。
このように、接続制御部81aは、印刷装置12から、接続サーバー50との間でのWebSocketコネクションCTの確立の要求があった場合、処理負荷が小さいと想定される接続サーバー50をWebSocketコネクションCTの確立先として決定する。
なお、WebSocketコネクションCTを確立する接続サーバー50の選択にあたっては、各接続サーバー50のスペックや、現時点での処理負荷の状況、予測される処理負荷の状況、その他の条件を反映してもよいことはもちろんである。
次いで、接続制御部81aは、第1接続サーバー50Aに対して、印刷装置12Aとの間でのWebSocketコネクションCTの確立を要求する(ステップSB5)。なお、制御サーバー10が備える接続サーバー50のアドレスを管理する。また、接続制御部81aは、WebSocketコネクションCTの確立を要求してきた印刷装置12Aに対して、第1接続サーバー50Aとの間でのWebSocketコネクションCTの確立を要求する(ステップSB5)。なお、ステップSB5における装置への要求に際し、接続制御部81aは、装置のアドレス等、WebSocketコネクションCTの確立に用いる情報を送信する。
【0031】
図5(A)、及び、
図5(C)に示すように、印刷装置12Aの通信制御部15、及び、第1接続サーバー50Aの通信管理部25は、通信部16と接続部26との間に、WebSocketコネクションCTを確立する(ステップSA3、ステップSC1)。つまり、本実施形態に係る印刷装置12Aは、ユーザーによる指示や、制御サーバー10からの要求を受けることなく、電源の投入をトリガーとしてWebSocketコネクションCTを確立する。
なお、通信部16、及び、接続部26は、WebSocketの規格、手続きに従ってデータの送受信を行うWebSocketインターフェースである。これら機能ブロックは、例えば、WebSocketのSocketライブラリーを用いて生成される。
通信制御部15は、通信部16にデータを送信すれば、WebSocketコネクションCTにより、WebSocketに従ってデータの送信を実行できる。
すなわち、通信部16は、通信制御部15から受信したデータについて、WebSocketに従った処理を行って、WebSocketに従った手続きでWebSocketコネクションCTによりデータを送信する機能を有する。また、通信部16は、WebSocketコネクションCTにより受信したデータについて、WebSocketに従った処理を行って、通信制御部15に送信する機能を有する。接続部26についても同様である。
WebSocketコネクションCTの確立に伴って、印刷装置12A、及び、第1接続サーバー50Aは、非同期で、双方向通信できる。つまり、第1接続サーバー50Aは、クライアントとしての印刷装置12Aからリクエストを受けることなく、WebSocketコネクションCTによりプッシュ送信で印刷装置12Aにデータを送信できる。
【0032】
次いで、印刷装置12Aの通信制御部15は、印刷装置記憶部19にアクセスし、印刷装置記憶部19に記憶される印刷装置識別情報データ19bを取得する(ステップSA4)。印刷装置識別情報データ19bとは、印刷装置12の識別情報(以下、「印刷装置識別情報」という。)を示すデータである。印刷装置識別情報は、例えば、印刷装置12の製造段階で、印刷装置12に割り当てられるシリアル番号である。
次いで、通信制御部15は、WebSocketコネクションCTで、印刷装置識別情報データ19bを送信する(ステップSA5)。
図5(C)に示すように、第1接続サーバー50Aの通信管理部25は、印刷装置識別情報データ19bを受信する(ステップSC2)。
次いで、通信管理部25は、接続サーバー記憶部28に記憶されたコネクション管理データベース28aにアクセスする(ステップSC3)。コネクション管理データベース28aとは、確立しているWebSocketコネクションCTについて、WebSocketコネクションCTを示すコネクション識別情報と、上述した印刷装置識別情報とを対応付けて記憶するデータベースである。
次いで、通信管理部25は、コネクション管理データベース28aに1件のレコードを生成する。そして、通信管理部25は、生成したレコードにおいて、ステップSC1で確立したWebSocketコネクションCTのコネクション識別情報と、ステップSC2で受信した印刷装置識別情報データ19bが示す印刷装置識別情報とを対応付けて記憶する(ステップSC4)。なお、通信管理部25は、WebSocketコネクションCTが確立したときに、既に確立しているWebSocketコネクションCTのコネクション識別情報と異なる値のコネクション識別情報を生成する。ステップSC4の処理により、WebSocketコネクションCTと、印刷装置12との対応関係が管理される。
このように、ユーザーによる指示や、制御サーバー10からの要求を受けることなく、電源の投入をトリガーとしてWebSocketコネクションCTを確立する。このような構成のため、ユーザーは、WebSocketコネクションCTを確立するために、煩雑な作業を行う必要がない。また、WebSocketコネクションCTを確立するために、専門的な知識も必要ない。また、電源投入後、すぐに、印刷装置12を、制御サーバー10の制御の下で各種処理を実行できる状態となる。
【0033】
また、以上のようにして、通信部16と、接続部26との間で、WebSocketコネクションCTが確立する。これに伴って、印刷装置12Aの印刷制御部17と、第1接続サーバー50Aの印刷データ処理部27との間で、WebSocketコネクションCTに基づく機能部間通信経路KTが確立する。印刷制御部17と、印刷データ処理部27とは、機能部間通信経路KTにより、非同期な双方向通信を行える。機能部間通信経路KTにより行われる非同期な双方向通信については後述する。
【0034】
ところで、
図3、4に示すように、制御サーバー10は、データベース管理サーバー70を備える。データベース管理サーバー70は、データベース管理サーバー記憶部72を備え、データベース管理サーバー記憶部72には、接続サーバーアドレス管理DB72aが記憶される。
接続サーバーアドレス管理DB72aは、印刷装置識別情報と、印刷装置12が接続される接続サーバー50のアドレスを示す情報(アドレス情報)とを対応付けて記憶するデータベースである。以下、接続サーバー50のアドレスを示す情報を、「接続サーバーアドレス情報」という。
上述したように、制御サーバー10は、複数の接続サーバー50を備え、印刷装置12は、ゲートサーバー80によって選択された接続サーバー50にWebSocketコネクションCTで接続される。
そして、接続サーバーアドレス管理DB72aでは、制御サーバー10に接続される印刷装置12について、印刷装置12の印刷装置識別情報と、印刷装置12が接続される印刷装置接続サーバーの接続サーバーアドレス情報と、が対応付けて記憶される。
接続サーバーアドレス管理DB72aは、以下のようにして、随時、更新され、接続サーバー50と印刷装置12との接続状態に対応した状態とされる。以下、詳述する。
【0035】
図6(A)は、第1接続サーバー50Aについて、印刷装置12(第2の印刷装置)との間でWebSocketコネクションCTが確立された場合の、第1接続サーバー50Aの動作を示すフローチャートである。
図6(A)に示すように、第1接続サーバー50Aの通信管理部25は、当該サーバーと、印刷装置12との間でWebSocketコネクションCTが確立されたか否かを監視する(ステップSD1)。
新たなWebSocketコネクションCTが確立された場合(ステップSD1:YES)、通信管理部25は、接続された印刷装置12の印刷装置識別情報(第2の識別情報)と、第1接続サーバー50Aのアドレスを示す接続サーバーアドレス情報と、を対応付けた1件のレコードの生成を要求するコマンドを生成する(ステップSD2)。以下、上記要求に係るコマンドを、「レコード追加要求コマンド」という。レコード追加要求コマンドは、印刷装置識別情報と、接続サーバーアドレス情報と、を含んで構成された所定のフォーマットのデータである。
次いで、通信管理部25は、接続サーバー通信I/F29を介して、生成したレコード追加要求コマンドを、データベース管理サーバー70に送信する(ステップSD3)。
レコード追加要求コマンドを受信したデータベース管理サーバー70のデータベース管理サーバー制御部71は、接続サーバーアドレス管理DB72aにアクセスする。そして、データベース管理サーバー制御部71は、当該データベースに、接続された印刷装置12の印刷装置識別情報と、第1接続サーバー50Aの接続サーバーアドレス情報とを対応付けて記憶する1件のレコードを生成する。
【0036】
図6(B)は、第1接続サーバー50Aに接続された印刷装置12(第2の印刷装置)との間でのWebSocketコネクションCTが切断された場合の、第1接続サーバー50Aの動作を示すフローチャートである。
図6(B)に示すように、第1接続サーバー50Aの通信管理部25は、印刷装置12との間で確立されていたWebSocketコネクションCTが切断されたか否かを監視する(ステップSE1)。
WebSocketコネクションCTの切断が生じた場合(ステップSE1:YES)、通信管理部25は、接続が切断された印刷装置12の印刷装置識別情報(第2の識別情報)と、第1接続サーバー50Aのアドレスを示す接続サーバーアドレス情報と、を対応付けた1件のレコードについて、削除を要求するコマンドを生成する(ステップSE2)。以下、上記要求に係るコマンドを、「レコード削除要求コマンド」という。レコード削除要求コマンドは、印刷装置識別情報と、接続サーバーアドレス情報と、を含んで構成された所定のフォーマットのデータである。
次いで、通信管理部25は、接続サーバー通信I/F29を介して、生成したレコード削除要求コマンドを、データベース管理サーバー70に送信する(ステップSE3)。
レコード削除要求コマンドを受信したデータベース管理サーバー70のデータベース管理サーバー制御部71は、接続サーバーアドレス管理DB72aにアクセスする。そして、データベース管理サーバー制御部71は、当該データベースにおいて、上記コマンドに含まれる印刷装置識別情報と、接続サーバーアドレス情報とが対応付けられたレコードを特定する。次いで、データベース管理サーバー制御部71は、特定したレコードを削除する。
【0037】
このように、通信管理部25は、印刷装置12と接続サーバー50との接続を検知し、検知した印刷装置12と接続サーバー50との接続に基づいて、接続サーバーアドレス管理DB72aを更新(変更)する機能を有する。
また、このように、本実施形態では、接続サーバー50に印刷装置12が接続されると、当該サーバーのアドレスと、当該印刷装置12の識別情報を対応付けたレコードが、接続サーバーアドレス管理DB72aに生成される。
また、本実施形態では、接続サーバー50に接続された印刷装置12の接続が切断されると、当該サーバーのアドレスと、当該印刷装置12の識別情報とを対応付けたレコードが、接続サーバーアドレス管理DB72aから削除される。
このような構成のため、接続サーバーアドレス管理DB72aの内容は、実際の接続サーバー50と印刷装置12との接続状態に対応する。
【0038】
次に、管理装置14Aが印刷装置12Aに印刷させる場合における管理装置14A、制御サーバー10が備える各サーバー、及び、印刷装置12Aの動作について説明する。
図7は、管理装置14Aが印刷装置12Aに印刷させる場合の各装置の動作を示すフローチャートである。
図7(A)は管理装置14Aの動作を、(B)は管理サーバー60Aの動作を、(C)は第1接続サーバー50Aの動作を、(D)は印刷装置12Aの動作を示す。
図7では、印刷データ処理部27と印刷制御部17との間で行われる機能部間通信経路KTによる通信について、印刷データ処理部27がデータを送信する場合を例として併せて説明する。
以下の説明では、印刷装置12Aは、第1接続サーバー50Aとの間でWebSocketコネクションCTを確立した状態である。
【0039】
図7(A)に示すように、印刷装置12Aによる印刷に際し、ユーザーは、管理装置14Aにアプリケーションを立ち上げる(ステップSY1)。
アプリケーションは、印刷装置12に印刷情報、及び、印刷させる印刷装置12Aを識別する情報を、ユーザーが入力するユーザーインターフェースを提供する機能を有する。また、アプリケーションは、入力された情報に基づいて、印刷情報データ(印刷指示情報)を生成し、管理サーバー60Aに送信する機能を有する。
【0040】
さて、ユーザーによるアプリケーションの立ち上げに応じて、管理装置制御部40は、アプリケーションの機能により、第1ユーザーインターフェース(以下、「第1UI」という。)を表示パネル等の所定の表示手段に表示する(ステップSF1)。第1UIは、印刷情報をユーザーが入力するユーザーインターフェースである。印刷情報とは、例えば、画像データが格納されたファイル名や、印刷媒体における画像の位置に関する情報等である。第1UIでは、後に、印刷データ処理部27が印刷制御データの生成に用いる情報を入力可能である。
ユーザーが、第1UIに対して印刷情報を入力し、入力を確定すると(ステップSX2)、管理装置制御部40は、アプリケーションの機能により、第2ユーザーインターフェース(以下、「第2UI」という。)を表示する(ステップSF2)。
第2UIは、印刷させる印刷装置12(本例では、印刷装置12A)を識別する情報をユーザーが入力するユーザーインターフェースである。
第2UIには、印刷装置識別情報を入力する欄が設けられ、ユーザーは、当該欄に印刷装置識別情報を入力する。
【0041】
ユーザーが、第2UIに対して印刷装置識別情報を入力し、入力を確定すると(ステップSX3)、管理装置制御部40は、以下の処理を実行する。
すなわち、管理装置制御部40は、アプリケーションの機能により、第1UI、及び、第2UIに入力された情報に基づいて、印刷情報データ(印刷指示情報)を生成する(ステップSF3)。印刷情報データには、第1UIに入力された情報に基づく印刷情報が含まれる。また、印刷情報データには、第2UIに入力された情報に基づいて印刷させる印刷装置12の印刷装置識別情報(印刷装置12を指定する指定情報)が含まれる。
次いで、管理装置制御部40は、アプリケーションの機能により、管理装置NWI/F41を介して、管理サーバー60Aに印刷情報データを送信する(ステップSF4)。本実施形態では、管理装置14Aがデータを送信する管理サーバー60が、管理サーバー60Aと予め定められる。アプリケーションの機能を実現するプログラムには、管理サーバー60Aのアドレスが予め定義される。ステップSC4において、管理装置制御部40は、当該アドレスの管理サーバー60Aとの間で、コネクションKKを確立した上で、当該コネクションKKにより印刷情報データを送信する。
【0042】
図7(B)に示すように、管理サーバー制御部61は、管理サーバーNWI/F63により、印刷情報データを受信する(ステップSG1)。
次いで、管理サーバー制御部61が備える検索部61aは、データベース管理サーバー70の接続サーバーアドレス管理DB72aにアクセスし、当該データベースを参照する(ステップSG2)。
上述したように、接続サーバーアドレス管理DB72aは、印刷装置12の印刷装置識別情報と、接続サーバー50の接続サーバーアドレス情報と、を対応付けて記憶するデータベースである。
次いで、検索部61aは、印刷情報データに含まれる印刷装置識別情報をキーとして、接続サーバーアドレス管理DB72aにおいて、当該識別情報と対応付けられた接続サーバーアドレス情報を取得する(ステップSG3)。本例では、ステップSG3において、検索部61aは、第1接続サーバー50Aの接続サーバーアドレス情報を取得する。
【0043】
次いで、管理サーバー制御部61は、ステップSG3で取得した接続サーバーアドレス情報が示すアドレスの接続サーバー50(本例では、第1接続サーバー50A)との間でコネクションを確立し、通信可能とする(ステップSG4、ステップSH1)。
次いで、管理サーバー制御部61は、ステップSG4で確立したコネクションにより、印刷情報データを、管理サーバー通信I/F62を介して、第1接続サーバー50Aに対して送信する(ステップSG5)。
【0044】
図7(C)に示すように、第1接続サーバー50Aの通信管理部25は、接続サーバー通信I/F29を介して、印刷情報データを受信する(ステップSH2)。
次いで、通信管理部25は、受信した印刷情報データを印刷データ処理部27に送信する(ステップSH3)。
次いで、印刷データ処理部27は、受信した印刷情報データに基づいて、印刷装置12の制御に係る印刷制御データ(印刷データ)を生成し、通信管理部25に送信する(ステップSH4)。印刷制御データは、印刷装置12に印刷情報が記述されたXML(Extensible Markup Language)ファイルである。印刷制御データには、XMLに係るフォーマットで、印刷装置12に印刷情報、例えば、画像データや、画像の位置を示す情報等が記述される。また、印刷制御データには、印刷させる印刷装置12Aの印刷装置識別情報がタグとして記述される。
次いで、通信管理部25は、接続サーバー記憶部28に記憶されたコネクション管理データベース28aにアクセスする(ステップSH5)。次いで、通信管理部25は、受信した印刷制御データに記述された印刷装置識別情報をキーとして、コネクション管理データベース28aにおいて、当該印刷装置識別情報と対応付けられたWebSocketコネクションCTのコネクション識別情報を取得する(ステップSH6)。ここで取得されたコネクション識別情報は、印刷させる印刷装置12Aとの間で確立されたWebSocketコネクションCTのコネクション識別情報である。
次いで、通信管理部25は、ステップSH6で取得したコネクション識別情報に係るWebSocketコネクションCTに対応する接続部26に印刷制御データを送信する(ステップSH7)。
次いで、接続部26は、受信した印刷制御データを、WebSocketコネクションCTで、WebSocketに従って、プッシュ送信する(ステップSH8)。
【0045】
図7(D)に示すように、通信部16は、WebSocketに従って、印刷制御データを受信する(ステップSI1)。次いで、通信部16は、受信した印刷制御データを通信制御部15に送信する(ステップSI2)。次いで、通信制御部15は、受信した印刷制御データを、印刷制御部17に送信する(ステップSI3)。次いで、印刷制御部17は、受信した印刷制御データを、印刷部18のコマンド体系の制御コマンドに変換する(ステップSI4)。つまり、印刷制御部17は、XMLファイルである印刷制御データを、印刷部18の制御基板が解釈可能なコマンドに変換する。
次いで、印刷制御部17は、制御コマンドを、印刷部18に送信する(ステップSI5)。次いで、印刷部18は、制御コマンドに基づいて、印刷媒体への印刷を実行する(ステップSI6)。
このように、本実施形態では、管理装置14は、制御サーバー10の管理サーバー60、及び、接続サーバー50を介して、印刷装置12にデータを送信できる。つまり、管理装置14は、制御サーバー10を介して、制御サーバー10にWebSocketコネクションCTにより接続される印刷装置12のうちの所定の印刷装置12を制御できる。
また上記のように、本実施形態では、印刷装置12からのリクエストを受けることなく、制御サーバー10は、印刷装置12に印刷を実行させる事象が発生した場合に、印刷装置12に印刷させることができる。印刷装置12に印刷を実行させる事象が発生した場合とは、本例のように、管理装置14からの要求があった場合や、ユーザーからの指示があった場合、事前に定義した条件が成立した場合等、である。このため、印刷装置12から制御サーバー10に対して間欠的にリクエストを送り、印刷装置12に印刷をさせたい場合に、当該リクエストに応じて印刷制御データを送信する構成とした場合と比較して、より迅速に印刷を開始させることができる。また、制御サーバー10がリクエストに対する保留状態を作る構成とした場合と比較して、リソースの消費を抑制できる。
【0046】
以上説明したように、本実施形態に係る制御システム1(印刷制御システム)は、印刷装置識別情報を記憶する印刷装置記憶部19、及び印刷を行う印刷部18を有する印刷装置12と、印刷装置12と接続する接続サーバー50と、接続サーバー50と通信する管理サーバー通信I/F62(サーバー通信部)、印刷装置12の制御を要求する印刷指示情報を受信する管理サーバーNWI/F63(サーバー受信部)、及び管理サーバーNWI/F63で印刷指示情報を受信したときに、印刷装置識別情報と接続サーバーアドレス情報を対応付けた接続サーバーアドレス管理DB72a(対応情報)に基づいて接続サーバー50の接続サーバーアドレス情報を検索する検索部61aを有する管理サーバー60と、管理サーバー60と接続して印刷指示情報を送信する管理装置NWI/F41(送信部)を有する管理装置14と、を備える。
この構成によれば、管理サーバー60は、管理装置14から印刷指示情報を受信した場合、検索部61aの機能により、対応する印刷装置12が接続されている接続サーバー50を検索する。このため、検索結果に基づいて、管理装置14が管理サーバー60に送信した印刷指示情報は、対応する印刷装置12が接続された接続サーバー50に送信され、接続サーバー50からネットワークGNを介して印刷装置12に送信される。従って、接続サーバー50が複数ある場合であっても、検索部61aの機能により、印刷装置12が接続された接続サーバー50が検索され、検索結果に基づいて、管理サーバー60から、対応する接続サーバー50に印刷指示情報が送信されるため、管理装置14は、管理サーバー60及び接続サーバー50を介して、対応する印刷装置12を制御できる。つまり、上記構成によれば、制御システム1を、印刷装置12が接続された接続サーバー50が1又は複数ある構成、及び、ネットワークGNを介して印刷装置12と制御サーバー10とが通信する構成に対応させることができる。
【0047】
また、本実施形態では、接続サーバー50は、印刷装置12と接続サーバー50との接続を検知し、検知した印刷装置12と接続サーバー50との接続に基づいて、接続サーバーアドレス管理DB72aを更新(変更)する通信管理部25を有する。
この構成によれば、接続サーバーアドレス管理DB72aの内容を、印刷装置12と、接続サーバー50の接続状態に対応したものとすることができる。
【0048】
また、本実施形態では、通信管理部25は、印刷装置12(第2の印刷装置)が接続サーバー50に接続された場合、接続サーバーアドレス管理DB72aに、印刷装置識別情報(第2の識別情報)と、接続サーバーアドレス情報とを対応付けた情報を付加する。
この構成によれば、接続サーバー50に印刷装置12が接続された場合に、接続サーバーアドレス管理DB72aに、接続された印刷装置12の印刷装置識別情報と、接続サーバー50の接続サーバーアドレス情報とを対応付けて記憶させることができる。
【0049】
また、本実施形態では、通信管理部25は、印刷装置12(第2の印刷装置)と、接続サーバー50との接続が切断された場合、接続サーバーアドレス管理DB72aから、これら装置の識別情報を対応付けた情報を削除する。
この構成によれば、接続サーバー50と印刷装置12との接続が切断された場合に、接続サーバーアドレス管理DB72aから、当該接続に関する情報を削除することができる。
【0050】
また、本実施形態では、接続サーバー50は、接続サーバー50に接続される印刷装置12の印刷装置識別情報を記憶する接続サーバー記憶部28を有する。
この構成によれば、接続サーバー50は、当該接続サーバー50に接続される印刷装置12を、印刷装置識別情報により管理できる。
【0051】
また、印刷装置12と接続サーバー50は、非同期の双方向通信を行う。
本発明の構成によれば、接続サーバー50は、任意のタイミングで印刷装置12にデータを送信して、印刷装置12にデータに基づく処理を実行させることができる。
【0052】
<第2実施形態>
次いで、第2実施形態について説明する。
上述した第1実施形態では、検索部61aは、接続サーバー50を検索する際、データベース管理サーバー70の接続サーバーアドレス管理DB72aにアクセスする。そして、検索部61aは、アクセスした当該データベースを参照し、当該内容に基づいて、検索を実行していた。
一方で、本実施形態では、検索部61aは、管理サーバー60が備えるRAMに形成されたワークエリア(所定の記憶領域)に、データベースの内容と同一の要素を含むデータを記憶する。
例えば、検索部61aは、データベース管理サーバー70のデータベース管理サーバー制御部71に対して、通信により、定期的に、接続サーバーアドレス管理DB72aの内容と同一の内容のデータを要求する。データベース管理サーバー制御部71には、接続サーバーアドレス管理DB72aに基づいて、当該データベースの内容と同一の内容のデータを生成する機能が実装される。そして、検索部61aは、上記要求に応じて受信したデータを、ワークエリアに記憶する。この他、データベース管理サーバー70のデータベース管理サーバー制御部71が、定期的に、又は、データベースの更新が行われた場合に上記データを送信する構成であってもよい。
そして、検索部61aは、接続サーバー50を検索する場合、接続サーバーアドレス管理データベース72aにアクセスして当該データベースを参照するのではなく、ワークエリアに記憶されたデータを参照する。サーバー間ネットワークSNを介して、データベースにアクセスする処理と比較して、バスで接続されたRAMに形成されたワークエリアにアクセスする処理に要する時間は、短い。このため、本実施形態によれば、検索部61aが、検索に要する時間の短縮化を図ることができる。
【0053】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
上述した実施形態では、印刷装置12は店舗に構築された店舗システム11に設けられていた。しかしながら、印刷装置12は、必ずしも、店舗システム11に設けられたものでなくてもよい。例えば、他のシステムに設けられたものであってもよい。
また、上述した実施形態では、制御サーバー10から、印刷装置12に対して、XMLファイルの印刷制御データを送信していたが、印刷制御データのデータ形式はXMLでなくともよい。例えば、他のマークアップ言語で生成されたデータであってもよく、また、印刷部18のコマンド体系に従った制御コマンドであってもよい。
また、
図3に示す各機能ブロックはハードウェアとソフトウェアより任意に実現可能であり、特定のハードウェア構成を示唆するものではない。また、印刷装置12の各機能を、当該装置に外部接続される別の装置に持たせるようにしてもよい。また、印刷装置12は、外部接続される記憶媒体に記憶させたプログラムを実行することにより、各種処理を実行してもよい。