以下、本発明の一実施形態に係るコンテンツ配信システムについて、図面を参照して説明する。
図1は、本実施形態に係るコンテンツ配信システムの概略構成を示すブロック図である。
図1に示すとおり、本実施形態のコンテンツ配信システムは、印刷コンテンツ(広告や通信教材など)の配信を希望する企業によって管理される送信端末112Sと、ネットワークサービス提供業者によって管理されるポスティングサーバ102及びSIP(Session Initiation Protocol)サーバ104,106と、それぞれの顧客によって管理される印刷端末108P,110Pと、で構成されている。なお、ポスティングサーバ102及びSIPサーバ104,106は、それぞれ、異なるネットワークサービス提供業者によって管理されていてもよいし、同一のネットワークサービス提供業者によって管理されていてもよい。ポスティングサーバ102、SIPサーバ104,106、及び印刷端末108P,110Pは、インターネットを含む、いわゆるブロードバンドネットワーク114を介して接続されている。また、送信端末112Sは、同じくブロードバンドネットワークを介してポスティングサーバ102に接続されていてもよいし、専用回線などを介してポスティングサーバ102に接続されていてもよい。
なお、図1に示すように、ネットワーク114内において、ポスティングサーバ102、SIPサーバ104及び印刷端末108Pは、west.comドメインに所属しているものとし、SIPサーバ106及び印刷端末110Pは、east.comドメインに所属しているものとする。
本実施形態では、広告や通信教材などの印刷コンテンツは、コンテンツデータとして、後ほど詳述するように、送信端末112Sからポスティングサーバ102に送信され、ポスティングサーバ102によって、印刷端末108P,110PにそれぞれPUSH型で配信される。ここで、このような印刷のために用いられるコンテンツデータとしては、例えば、JPEGデータ、GIFデータ、PNGデータ、TIFFデータ、プレーンテキストデータ、HTMLデータ、PDFデータ、PostScript(登録商標)データなど、画像やドキュメントを表現することが可能な各種データを用いることができる。また、印刷端末で用いられるプリンタ等の機種が分かっている場合には、印刷データの形態で配信するようにしてもよい。また、ここで、「PUSH型」とは、端末側が情報をリクエストしなくても、サーバ側が一方的に情報を端末に送り出して配信する方法を言う。本実施形態においては、後述するように、コンテンツデータの転送にHTTPないしはHTTPSを用いて行う。従って、ポスティングサーバ102から印刷端末108P,110Pへアクセスしてデータを送信する(HTTP POST)、いわゆるPUSH型の配信、または、印刷端末108P,110Pからポスティングサーバ102へアクセスしてデータを取得する(HTTP GET)、いわゆるPULL型の配信の2通りが可能である。
図2は図1におけるポスティングサーバ102の主要構成を示すブロック図である。図2に示すように、ポスティングサーバ102は、サーバコンピュータによって構成されており、プログラムを実行することにより種々の処理や制御を行うCPU10と、ネットワークを介して他の装置との間で各種データや情報などの伝送を行う通信部12と、プログラムを格納したり、データや情報を格納したりするためのメモリ14と、を主として備えている。このうち、メモリ14は、データや情報として、コンテンツデータ16や配信依頼情報18などを格納すること可能である。なお、ポスティングサーバ102は、上記構成要素以外にも、キーボードやポインティングデバイスなどの入力部やモニタなどの表示部などを備えているが、図では省略されている。
また、本実施形態では、上述したコンテンツデータの配信に先立って、シグナリングプロトコルの一種であるSIP(Session Initiation Protocol)を用いて、装置間におけるセッションの確立を行うようにしている。なお、コンテンツデータの配信、すなわち、装置間におけるコンテンツデータの伝送には、SIPではなく、データ転送プロトコルの一種であるHTTP(Hypertext Transfer Protocol)またはHTTPS(Hypertext Transfer Protocol Security)を用いるようにしている。ここで、「セッション」とは、端末などのノード間でメディアストリームを送受信する関係を言う。
図3は図1におけるSIPサーバ104,106の主要構成を示すブロック図である。図3に示すように、SIPサーバ104,106も、ポスティングサーバ102と同様に、サーバコンピュータによって構成されており、プログラムを実行することにより種々の処理や制御を行うCPU30と、ネットワークを介して他の装置との間で各種データや情報などの伝送を行う通信部32と、プログラムを格納したり、データや情報を格納したりするためのメモリ34と、を主として備えている。このうち、メモリ34は、情報として、後述するような、登録情報36やプレゼンス情報38などを格納すること可能である。なお、SIPサーバ104,106は、上記構成要素以外にも、キーボードやポインティングデバイスなどの入力部やモニタなどの表示部などを備えているが、図では省略されている。
図4は一般的なSIPサーバの種別を示す説明図である。一般に、SIPサーバは、機能に応じて、図4に示すような種別に分けることができる。
レジストラは、SIPクライアント(すなわち、SIPユーザエージェント)からの登録要求を受け付けて、SIPクライアントのSIPアドレス(すなわち、SIP URI(Uniform Resource Identifier))や位置情報(すなわち、IP(Internet Protocol)アドレスなど)を、ロケーションサーバに登録する。
ロケーションサーバは、SIPクライアントやサーバのSIPアドレスや位置情報などを格納するデータベースである。
プロキシサーバは、SIPクライアント間において、リクエストやレスポンスを中継するサーバであって、SIPクライアント間におけるセッションの確立などを仲介する。
リダイレクトサーバは、SIPクライアントからの問い合わせに対して、通信したい相手先の位置情報を通知する。
プレゼンスサーバは、SIPクライアントの状態に関する情報(例えば、電源がオンかオフかなど)を取得し、管理すると共に、それらをプレゼンス情報として他のSIPクライアントに提供する。
図5は図1における印刷端末108P,110Pの構成の各種形態を示す説明図である。印刷端末108P,110Pの構成としては、図5に示すように、種々の形態が考えられる。なお、ここで、後述する複合機とは、少なくとも印刷機能と読取・送信機能を備えた多機能印刷装置を言う。また、プリンタとは、少なくとも印刷機能を備えた単機能印刷装置を言う。
1)印刷端末が、IP(Internet Protocol)通信プリンティング対応複合機52のみで構成される形態である。IP通信プリンティング対応複合機52は、後述するSIP URIなどグローバルなアドレスを直接扱うことができるため、ブロードバンドルータ50を介して、インターネットなどのブロードバンドネットワーク114に直接接続したとしても、それらネットワーク114上の装置との間でデータをやりとりすることが可能である。このため、IP通信プリンティング対応複合機52だけで、印刷端末を構成することができる。配信されたコンテンツデータは、黒色矢印72で示すように、ネットワーク114から、ブロードバンドルータ50を介してIP通信プリンティング対応複合機52に伝送される。なお、IP通信プリンティング対応複合機の代わりに、IP通信プリンティング対応プリンタを用いるようにしてもよい。
2)印刷端末が、パーソナルコンピュータ54と、そのパーソナルコンピュータ54にUSBケーブルなどで直接接続される複合機56またはプリンタ58と、で構成される形態である。配信されたコンテンツデータは、黒色矢印74で示すように、ブロードバンドルータ50を介して、パーソナルコンピュータ54に伝送され、複合機56またはプリンタ58に出力される。
3)印刷端末が、パーソナルコンピュータ54と、そのパーソナルコンピュータ54にLANケーブルなどでLAN(ローカルエリアネットワーク)70を介して接続されたネットワーク対応複合機62と、で構成される形態である。ネットワーク対応複合機62は、プライペートなアドレスを扱うことができるが、グローバルなアドレスを扱うことができないため、パーソナルコンピュータ54などを介さないと、ネットワーク114上の装置との間でデータをやりとりすることができないからである。配信されたコンテンツデータは、黒色矢印74で示すように、ブロードバンドルータ50を介して、パーソナルコンピュータ54に伝送された後、黒色矢印76で示すように、LAN70を介してネットワーク対応複合機62に伝送される。なお、ネットワーク対応複合機の代わりに、ネットワーク対応プリンタを用いるようにしてもよい。
4)印刷端末が、パーソナルコンピュータ54と、そのパーソナルコンピュータ54にLANケーブルなどでLAN70を介して接続されたネットワークアダプタ64と、そのネットワークアダプタ64にUSBケーブルなどで接続された複合機66またはプリンタ68と、で構成される形態である。複合機やプリンタがネットワーク対応でない場合に、有効な形態である。配信されたコンテンツデータは、黒色矢印74で示すように、ブロードバンドルータ50を介して、パーソナルコンピュータ54に伝送された後、黒色矢印78で示すように、LAN70を介しネットワークアダプタ64に伝送され、その後、複合機66またはプリンタ68に出力される。
なお、装置同士は、ケーブルなど有線で接続される代わりに、いわゆる無線LANや、ブルートゥースや、赤外線など、無線で接続されてもよい。
また、インターネットを含むネットワーク114では、グローバルIPアドレスが割り当てられるのに対し、LAN70などのプライペートネットワークでは、プライペートIPアドレスが割り当てられることが多い。そのような場合、いわゆるNAT(Network Address Translation)越えの問題が存在するが、一般に知られているように、NAT越えの方法として、UPnP(Universal Plug and Play)の技術や、STUN(Simple Traversal of UDP through NAT)の技術や、TURN(Traversal Using Relay NAT)の技術や、ICE(Interactive Connectivity Establishment)の技術などを用いることによって、そのような問題は解決することができる。
ところで、複合機を用いる場合、上記したとおり、読取・送信機能を有しているため、印刷端末を構成するだけでなく、送信端末を構成することもできる。なお、送信端末としては、その他、パーソナルコンピュータ54と、そのパーソナルコンピュータ54にUSBケーブルなどで直接接続されるスキャナ60と、で構成される形態も考えられる。送信端末を構成する場合、読取・送信されたコンテンツデータは、上記した黒色矢印とは反対向きの経路をたどって、ネットワーク114へ伝送される。なお、本実施形態において、SIPサーバ104,106は、請求項における仲介サーバに相当する。
本実施形態では、上述したとおり、シグナリングプロトコルの一種であるSIPを用いて、装置間におけるセッションの確立を行い、データ転送プロトコルの一種であるHTTPSを用いて、装置間におけるコンテンツデータの伝送を行うようにしている。以下、実施形態コンテンツ配信システムの動作概要を説明する。
図1において、まず、ポスティングサーバ102や印刷端末108Pは、それぞれ、起動すると、同じドメイン(west.com)に所属しているSIPサーバ104にSIPクライアントとしてアクセスする。同様に、印刷端末110Pも、起動すると、同じドメイン(east.com)に所属しているSIPサーバ106にSIPクライアントとしてアクセスする。そして、ポスティングサーバ102、印刷端末108P,110Pは、破線矢印116,118,120で示すように、アクセスしたSIPサーバ104,106にそれぞれ登録要求を出し、自己のSIP URIやIPアドレスなどの情報を送信する。SIPサーバ104,106は、レジストラ,ロケーションサーバとして機能し、図3に示すように、そのCPU30は、通信部32を介して、登録要求を受け付け、送信
された情報を登録情報36としてメモリ34に登録する。
この結果、SIPサーバ104は、同じドメイン(west.com)に所属するポスティングサーバ102及び印刷端末108Pの登録情報を有することになり、SIPサーバ106は、同じドメイン(east.com)に所属する印刷端末110Pの登録情報を有することになる。登録情報36は、各端末毎に、そのSIP URIと、そのIPアドレスと、が対応付けて、CPU30によって管理される。
ここで、SIP URIは、例えば、「sip:user@west.com」という形式の識別子で表される。先頭には、SIPであることを示す識別子(スキーム)を置き(「sip」)、次にユーザ識別子を置き(「user」)、「@」で区切って、ホスト名を置く(「west.com」)という形式になっている。なお、ユーザ識別子には、ユーザIDや電話番号などが用いられる。また、ホスト名には、完全修飾ドメイン名(FQDN:Fully Qualified DomainName)やIPアドレスが用いられる。さらに、ホスト名の後には、ポート番号や、オプションパラメータなどを置くことも可能である。また、SIP URIに代えて、SIPのセキュアなURIとして、SIPS URIを用いることもできる。その場合、スキームとして、「sips」を置く。
こうして、SIPに関する事前準備が完了したら、SIPを利用した、コンテンツデータの配信が可能となる。
そこで、まず、企業側において、印刷コンテンツとして配信したい一以上の印刷コンテンツのエンティティデータと、各配信先のリストを用意する。送信端末112Sは、その一以上のエンティティデータを含むコンテンツデータと、配信先リストを含む配信依頼情報と、を白抜き矢印138で示すように、ポスティングサーバ102に送信する。ポスティングサーバ102は、図2に示すように、受信したコンテンツデータ16と、配信依頼情報18と、をメモリ14に一旦格納する。このとき、送信端末112Sからポスティングサーバ102へのコンテンツデータ,配信依頼情報の伝送には、API(Application Program Interface)技術が利用される。伝送プロトコルとしては、HTTPSに従って行われるが、FTP(File Transfer Protocol)など他のデータ伝送プロトコルを用いるようにしてもよい。
ポスティングサーバ102のCPU10は、配信依頼情報18を読み出し、それに含まれる配信先リストを解析する。配信先リストには、配信先として、印刷端末108Pや110PのSIP URIが記載されている。そして、ポスティングサーバ102のCPU10は、その配信先リストに従って、まず、印刷端末110Pを送信先として、ポスティングサーバ102と同じドメイン(west.com)に所属するSIPサーバ104にリクエストを送信する(実線矢印122)。このとき、SIPサーバ104は、プロキシサーバとして機能する。SIPサーバ104は、印刷端末110Pが自己とは異なるドメイン(east.com)に所属しており、印刷端末110Pに関する登録情報を有していないので、印刷端末110Pと同じドメイン(east.com)に所属するSIPサーバ106に、そのリクエストを転送する(実線矢印126)。SIPサーバ106も、プロキシサーバとして機能する。SIPサーバ106は、印刷端末110Pが自己とは同じドメイン(east.com)に所属しており、印刷端末110Pに関する登録情報を有しているので、その登録情報に基づき、転送されたリクエストを印刷端末110Pに中継する(実線矢印128)。印刷端末110Pは、ポスティングサーバ102を返信先として、そのリクエストに対するレスポンスをSIPサーバ106に送信する(実線矢印132)。すると、SIPサーバ106は、ポスティングサーバ102が自己とは異なるドメイン(west.com)に所属しており、ポスティングサーバ102に関する登録情報を有していないので、ポスティングサーバ102と同じドメイン(west.com)に所属するSIPサーバ104に、そのレスポンスを転送する(実線矢印134)。SIPサーバ104は、ポスティングサーバ102が自己とは同じドメイン(west.com)に所属しており、ポスティングサーバ102に関する登録情報を有しているので、その登録情報に基づき、転送されたレスポンスをポスティングサーバ102に中継する(実線矢印136)。このように、ポスティングサーバ102と印刷端末110Pとの間で、リクエストとレスポンスがやりとりされることによって、両者の間でセッションの確立がなされることになる。また、このとき、SIPサーバ104.106は、共にプロキシサーバとして機能し、セッション確立の仲介を行う。詳細には、図6に示すようなリクエストとレスポンスがやりとりされる。
図6は図1におけるポスティングサーバ102と印刷端末110Pとの間のセッション確立処理のシーケンスを示す説明図である。図6において、時間は上から下に向かって流れている。また、カギ括弧内の数の順番に、処理シーケンスは進んでいく。
ポスティングサーバ102は、自己のIPアドレスを印刷端末110Pに伝えるために、印刷端末110Pに向かって送信するINVITEリクエストメッセージのボディの中に、ポスティングサーバ102のIPアドレスを含ませる。一方、印刷端末110Pも、自己のIPアドレスをポスティングサーバ102に伝えるために、ポスティングサーバ102に向かって送信する200 OKレスポンスメッセージのボディの中に、印刷端末110PのIPアドレスを含ませる。
こうして、ポスティングサーバ102から送信したACKリクエストメッセージが、印刷端末110Pに到達したら、ポスティングサーバ102と印刷端末110Pとの間のセッションは確立されたことになる。
その後、ポスティングサーバ102は、200 OKレスポンスメッセージより取得した印刷端末110PのIPアドレスに基づいて、印刷端末110Pに、SIPサーバ104,106を介することなく、直接アクセスして、図1の白抜き矢印142で示すように、HTTPSに従ってコンテンツデータをPUSH型で配信する。
印刷端末110Pは、配信されたコンテンツデータの受信が完了したら、再び、SIPに従って、BYEリクエストメッセージをSIPサーバ104,106を介してポスティングサーバ102に送信する。ポスティングサーバ102は、BYEリクエストメッセージを受信すると、200 OKレスポンスメッセージをSIPサーバ104,106を介して印刷端末110Pに返す。これにより、ポスティングサーバ102と印刷端末110Pとの間のセッションが解消される。
次に、ポスティングサーバ102のCPU10は、その配信先リストに従って、ポスティングサーバ102と同じドメイン(west.com)に所属する印刷端末108Pを送信先として、SIPサーバ104にリクエストを送信する(実線矢印122)。SIPサーバ104は、印刷端末108Pが自己とは同じドメイン(west.com)に所属しており、印刷端末108Pに関する登録情報を有しているので、その登録情報に基づき、そのリクエストを印刷端末108Pに中継する(実線矢印124)。印刷端末108P、ポスティングサーバ102を返信先として、そのリクエストに対するレスポンスをSIPサーバ104に送信する(実線矢印130)。すると、SIPサーバ104は、ポスティングサーバ102が自己とは同じドメイン(west.com)に所属しており、ポスティングサーバ102に関する登録情報を有しているので、その登録情報に基づき、そのレスポンスをポスティングサーバ102に中継する(実線矢印136)。このように、ポスティングサーバ102と印刷端末108Pとの間で、リクエストとレスポンスがやりとりされることによって、両者の間でセッションの確立がなされることになる。また、このとき、SIPサーバ104は、プロキシサーバとして機能し、セッション確立の仲介を行う。なお、ポスティングサーバ102と印刷端末108Pとの間のセッション確立処理のシーケンスについては、前述した図6から容易に類推できるので、説明は省略する。
こうして、ポスティングサーバ102と印刷端末108Pとの間のセッションが確立されると、ポスティングサーバ102は、印刷端末108PのIPアドレスに基づいて、印刷端末108Pに、SIPサーバ104を介することなく、直接アクセスして、図1の白抜き矢印140で示すように、HTTPSに従ってコンテンツデータをPUSH型で配信する。
コンテンツデータの配信が完了したら、ポスティングサーバ102と印刷端末108Pは、BYEリクエストメッセージと200 OKレスポンスメッセージのやりとりを行い、これにより、ポスティングサーバ102と印刷端末108Pとの間のセッションが解消される。
印刷端末108P及び110Pでは、配信されたコンテンツデータに基づいて、印刷機能により、印刷を実行し、印刷コンテンツを出力する。これにより、印刷端末108P,110Pを管理する各々の顧客に、印刷コンテンツを配信することができる。
一方、SIPサーバ104,106は、それぞれ、プレゼンスサーバとしても機能する。SIPサーバ104のCPU30は、同じドメイン(west.com)に所属する印刷端末108Pの状態に関するプレゼンス情報を、SIPサーバ106のCPU30は、同じドメイン(east.com)に所属する印刷端末110Pの状態に関する情報を、それぞれ通信部32を介して取得し、図3に示すように、メモリ34内にプレゼンス情報38として格納して、管理する。SIPサーバ104,106間で、それぞれのドメインに所属している印刷端末108P,110Pのプレゼンス情報38を交換しても良い。そして、SIPサーバ104,106のCPU30は、ポスティングサーバ102に対して、プレゼンス情報38を提供する。これによって、ポスティングサーバ102は、印刷端末108P,110Pの状態を把握することができる。
上述の実施形態によれば、コンテンツデータの伝送に、インターネットを含むネットワーク114を利用するため、低コストで、かつ、高速度で、コンテンツデータの配信を行うことができる。印刷端末として、顧客の有する高性能なプリンタや複合機を利用することができるため、高品質な印刷を行うことができる。さらに、企業側は、ポスティングサーバ102を利用することによって、印刷コンテンツとして配信したいコンテンツデータと、各配信先のリストを用意するだけでよいため、人的,経済的負担が軽くて済む。また、ポスティングサーバ102を利用することによって、大量の印刷コンテンツの配信が可能となる。また、ポスティングサーバ102がコンテンツデータをPUSH型で配信することにより、顧客は、何ら意識することなく、印刷コンテンツを自動的に受け取りを行うことができる。
図7は、ポスティングサーバ102が行う再送制御について説明するための機能構成図である。ポスティングサーバ102のCPU10が所定のプログラムを実行することにより、図7に示す各機能ブロックが実現される。すなわち、ポスティングサーバ102には、データベース210と、Webサーバ220と、ポスティング処理部230と、リトライタイマ240とが実現される。
データベース210には、送信端末112Sから送信されたコンテンツデータ16が格納される。コンテンツデータ16は、個別の印刷コンテンツに対応する複数のデータエンティティ160,160,・・・から構成される。データエンティティ160がデータベース210に登録されるときに、各データエンティティ160,160,・・・には配信IDが付与される。さらに、データベース210には、配信テーブル215が記憶されている。配信テーブル215には、各データエンティティ160,160,・・・に対する配信先、配信ステータスなどが登録されている。配信テーブル215内の配信先、配信ステータスは、配信IDによって各データエンティティ160,160,・・・と対応付けられている。
配信テーブル215に記憶されている配信先は、送信端末112Sから取得した配信先リストに基づいて登録される。配信先は、例えば、SIP URIまたはIPアドレスで特定してもよい。配信ステータスには、例えば、データエンティティ160の配信先への配信が可能である「配信待ち」と、1回以上配信を試みたものの、配信が完了していない「リトライ待ち」と、配信先がデータエンティティ160を受信し、配信が完了した「配信完了」とを含む。つまり、「配信待ち」及び「リトライ待ち」がデータエンティティ160の未配信を示すステータスである。
Webサーバ220は、ポスティングサーバ102とセッションが確立されている配信先に対して、データベース210に格納されているデータエンティティ160をHTTPSで配信する。
ポスティング処理部230は、コンテンツデータの配信管理を行う。例えば、ポスティング処理部230は、配信テーブル215の配信ステータスが「配信待ち」、または「リトライ待ち」の配信可能なデータエンティティ160について、それに対応する配信先を指定して、SIPサーバ104に対して、配信リクエストを行う。この配信リクエストを受けると、SIPサーバ104は、上述したように、ポスティングサーバ102と配信先の印刷端末との間にセッションを確立する。例えば、配信先が他のドメインの印刷端末110Pであるときは、SIPサーバ104は、配信先のドメインのSIPサーバ106を介して、ポスティングサーバ102と配信先の印刷端末との間にセッションを確立する。ポスティング処理部230は、セッション確立後に、Webサーバ220に対して対象となっているデータエンティティ160を配信させる。また、ポスティング処理部230は、SIPサーバ104を介して、セッションを確立した配信先の印刷端末のプレゼンス情報38を取得する。プレゼンス情報38は、ポスティング処理部230がメモリ上に保持する。
プレゼンス情報38には、印刷端末108P,110Pの識別情報(例えばSIP URI)と、それぞれの印刷端末108P,110Pの状態を示す情報、例えば、印刷ステータス、オンラインステータスなどが含まれる。印刷ステータスは、例えば、印刷端末108P,110Pが印刷ジョブを待っている「アイドル」、及び何らかの原因で印刷が実行できない「停止」などのステータスをとり得る。オンラインステータスは、印刷端末108P,110Pが「オンライン」であるか、「オフライン」であるかを示す。
リトライタイマ240は、データエンティティ160の送信(再送)を行うタイミングを決定する。例えば、配信ステータスが「リトライ待ち」または「配信待ち」となっているデータエンティティ160について、リトライタイマ240が時間を計測し、所定の経過時間が経過すると、ポスティング処理部230がSIPサーバ104へ配信リクエストを行う。つまり、ポスティング処理部230及びリトライタイマ240が、定期処理手段として定期的にSIPサーバ104へ配信リクエストを行う。
次に、上記のような機能構成を有するポスティングサーバ102が行う再送制御について、図8に示すフローチャートに従って処理手順を説明する。
まず、ポスティングサーバ102は、送信端末112Sから一以上のデータエンティティ160を含むコンテンツデータ16及び配信依頼情報を取得する(S100)。取得したデータエンティティ160はデータベース210に格納され、配信依頼情報に基づいて配信テーブル215の所定のデータ項目がセットされる。
ポスティング処理部230は、配信テーブル215を参照して、配信可能なデータエンティティ160を抽出する(S105)。例えば、配信ステータスが「配信可能」または「リトライ待ち」となっているデータエンティティ160を抽出する。ここで抽出したデータエンティティ160の配信先が印刷端末110Pであるとすると、ポスティング処理部230は、印刷端末110Pのプレゼンス情報38をSIPサーバ104から取得し、オンラインステータス及び印刷ステータスをチェックする(S110、S120)。ここで、ステップS110及びS120は、いずれを先に行っても良い。
ステップS110においてオンラインステータスが「オンライン」であり、かつ、ステップS120において印刷ステータスが「アイドル」であれば、ポスティング処理部230は、SIPサーバ104に対して、対象となっているデータエンティティ160の配信リクエストを行う(S130)。SIPサーバ104は、上述のようにしてポスティングサーバ102と印刷端末110Pとのセッションを確立し、その後、Webサーバ220がHTTPSでデータエンティティ160を印刷端末110Pへ配信する。
その後、ポスティング処理部230は、SIPサーバ104から配信先の印刷端末110Pのプレゼンス情報38を取得する(S140)。そして、取得したプレゼンス情報38に、対象となっているデータエンティティ160の受信完了を示す情報が含まれているか否かを判定する(S150)。
プレゼンス情報に、対象となっているデータエンティティ160の受信完了を示す情報が含まれ、配信が完了しているときには(ステップS150:Yes)、ポスティング処理部230は、配信テーブル215の配信ステータスを「配信完了」に更新して、処理を終了する(S160)。
一方、ステップS110においてオンラインステータスが「オフライン」であるか、または、ステップS120において印刷ステータスが「停止」であれば、リトライルーチンへ移行する。これにより、印刷端末が受信できない状態、または印刷を行えない状態であるときは、セッションを張らずに、印刷端末のステータスの回復を待つようにすることができる。また、ステップS150において配信が成功しなかった場合も同様に、リトライルーチンへ移行する。
リトライルーチンでは、ポスティング処理部230は、リトライタイマ240が所定の時間が経過してリトライタイミングが到来するまで待機する(S180)。そして、リトライタイミングが到来すると、ステップS105へ戻り、ポスティング処理部230は、それ以降の処理を繰り返す。
これにより、ポスティングサーバ102は、再送制御を行って確実に印刷端末110Pへエンティティデータ160を配信することができる。
ところで、ポスティング処理部230は、上記のような再送制御処理を行っている間であっても、SIPサーバ104からの所定の通知があると、図9に示すような割込処理を行う。例えば、SIPサーバ104が、印刷端末110Pからプレゼンス情報を取得すると、SIPサーバ104はその取得したプレゼンス情報を直ちにポスティング処理部230へ通知する。これを契機として、ポスティング処理部230が割込処理手段として、図9に示す割込処理を行う。
以下、図9に示す、ポスティング処理部230が行う割込処理について説明する。
ポスティング処理部230は、通知されたプレゼンス情報が、配信ステータスが「リトライ待ち」となっているエンティティデータ160の配信先となっている印刷端末110Pのものであるか否かを判定する(S200)。この判定は、例えば、プレゼンス情報に含まれるSIP URIと、配信テーブル215の配信先のSIP URIとのマッチングによって、プレゼンス情報に係る印刷端末110P宛の配信を特定しても良い。
通知されたプレゼンス情報が、配信ステータスが「リトライ待ち」となっているエンティティデータ160の配信先となっている印刷端末110Pのものでないときは(S200:No)、この割り込み処理を終了する。
通知されたプレゼンス情報が、配信ステータスが「リトライ待ち」となっているエンティティデータ160の配信先となっている印刷端末110Pのものであるときは(S200:Yes)、ポスティング処理部230は、通知されたプレゼンス情報のオンラインステータス及び印刷ステータスをチェックする(S210、S220)。ここで、ステップS210及びS220は、いずれを先に行っても良い。
ステップS210においてオンラインステータスが「オフライン」であるか、または、ステップS220において印刷ステータスが「停止」であれば、割り込み処理を終了する。
一方、ステップS210においてオンラインステータスが「オンライン」であり、かつ、ステップS220において印刷ステータスが「アイドル」であれば、ポスティング処理部230は、図8の場合と同様に、対象となっているデータエンティティ160の配信処理を行う。すなわち、ポスティング処理部230は、SIPサーバ104に対して、対象となっているデータエンティティ160の配信リクエストを行う(S230)。これにより、SIPサーバ104によってポスティングサーバ102と印刷端末110Pとの間のセッションが確立し、Webサーバ220がデータエンティティ160を印刷端末110Pへ配信する。
その後、ポスティング処理部230は、SIPサーバ104から配信先のプレゼンス情報を取得する(S240)。そして、取得したプレゼンス情報に、対象となっているデータエンティティ160の受信完了を示す情報が含まれているか否かを判定する(S250)。
プレゼンス情報に、対象となっているデータエンティティ160の受信完了を示す情報が含まれ、配信が完了しているときには、ポスティング処理部230は、配信テーブルの配信ステータスを更新して、処理を終了する(S260)。
これにより、リトライタイミングが到来していなくても、印刷端末110Pが受信可能な状態になると、ポスティングサーバ102は、直ちに印刷コンテンツ(データエンティティ)を配信することができるようになる。
図10は、印刷端末110Pがプレゼンス情報を通知するための処理手順を示すフローチャートである。
すなわち、印刷端末110Pは、自らのオンラインステータス及び印刷ステータスのいずれかが変更されたか否かを常に監視している(S300,S310)。そして、オンラインステータスまたは印刷ステータスのいずれかが変更された場合は(S300:Yes、S310:Yes)、その時点でのプレゼンス情報を、同じドメインのSIPサーバ106へ通知する(S320)。
この後、SIPサーバ106は、SIPサーバ104へ印刷端末110Pの最新のプレゼンス情報を通知する。そして、SIPサーバ104がポスティングサーバ102へ、プレゼンス情報を通知することによって、ポスティングサーバ102では、図9に示す割込処理が実行される。
なお、印刷端末108Pがプレゼンス情報を通知場合の処理は、容易に類推できるので説明は省略する。
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。