(57)【特許請求の範囲】
【請求項１】
端末を介して印刷指定されたコンテンツデータを基に印刷ジョブを生成し、生成された印刷ジョブを送信する印刷サーバーシステムと、印刷ジョブを出力する画像形成装置と通信可能な印刷中継サーバーシステムであって、
前記印刷中継サーバーシステムにおけるユーザー毎に設けられている、前記印刷サーバーシステムから印刷ジョブを受信するプロキシーと、
前記印刷中継サーバーシステムに接続されている画像形成装置毎に設けられている、受信された印刷ジョブを前記画像形成装置へ送信する中継仮想プリンターと、
印刷指定時に指定された画像形成装置であって、前記印刷サーバーシステムに登録されている該画像形成装置に関する装置情報を取得する取得手段と、
取得された装置情報を基に中継仮想プリンターを特定し、受信された印刷ジョブを特定された中継仮想プリンターに転送する転送手段と、を有する印刷中継サーバーシステム。
【請求項２】
前記プロキシーは、前記印刷サーバーシステムを提供するベンダーにより公開された前記印刷ジョブを受信するための通信仕様に基づき印刷ジョブを受信し、
前記取得手段は、前記印刷ジョブを受信する際にプロキシーが受信した装置情報を取得し、
前記印刷サーバーシステムには、前記プロキシーの内の１つのプロキシーが、印刷指定を行うユーザーに関連して登録されていることを特徴とする請求項１に記載の印刷中継サーバーシステム。
【請求項３】
前記装置情報は、前記中継仮想プリンターを前記印刷サーバーシステムへ登録した際にも送信される情報であって、
登録の際に送信された前記装置情報と、登録された前記中継仮想プリンターとが関連するように保存する保存手段と、
前記転送手段は、取得された装置情報と一致する前記保存手段により保存された装置情報から前記中継仮想プリンターを特定することを特徴とする請求項１または２に記載の印刷中継サーバーシステム。
【請求項４】
前記印刷サーバーシステムとは異なる印刷サーバーシステムとも通信可能であって、前記印刷中継サーバーシステムにおけるユーザー毎に設けられたプロキシーは、前記印刷中継サーバーシステムに接続された複数の印刷サーバーシステム毎に設けられていることを特徴とする請求項１乃至３の何れか１項に記載の印刷中継サーバーシステム。
【請求項５】
端末を介して印刷指定されたコンテンツデータを基に印刷ジョブを生成し、生成された印刷ジョブを送信する印刷サーバーシステムと、印刷ジョブを出力する画像形成装置と通信可能な印刷中継サーバーシステムを制御する制御方法であって、
前記印刷中継サーバーシステムにおけるユーザー毎に設けられているプロキシーは、前記印刷サーバーシステムから印刷ジョブを受信し、
前記印刷中継サーバーシステムに接続されている画像形成装置毎に設けられている中継仮想プリンターは、受信された印刷ジョブを前記画像形成装置へ送信し、
取得手段は、印刷指定時に指定された画像形成装置であって、前記印刷サーバーシステムに登録されている該画像形成装置に関する装置情報を取得し、
転送手段は、取得された装置情報を基に中継仮想プリンターを特定し、受信された印刷ジョブを特定された中継仮想プリンターに転送することを特徴とする制御方法。
【請求項６】
請求項５に記載の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷サービスを提供する印刷サーバーシステム、および画像形成装置と通信可能な印刷中継サーバーシステム、その制御方法、およびプログラムに関するものである。
【背景技術】
【０００２】
従来、クライアントからサーバーに対して印刷指示を送信し、印刷指示を受信したサーバーが印刷対象のコンテンツを印刷データに変換するコンテンツ印刷システムがある。近年、クラウドコンピューティングの概念が注目されているが、これも前述のシステム同様、サーバーがクライアントにサービスを提供する形態の一つと捉えることができる。クラウドコンピューティングは、多くのコンピューティング・リソースを用いてデータ変換やデータ処理を分散実行し、多くのクライアントからの要求を同時に処理することが主な特徴である。現在、このクラウドコンピューティングを実現するクラウドコンピューティング環境上にＷｅｂサービスを実装し、多種多様なサービスを提供するベンダーが乱立しつつある。
【０００３】
中でも注目すべきベンダーはＧｏｏｇｌｅ（登録商標）である。Ｇｏｏｇｌｅは、大規模なデータセンターを多数設立する他、デバイスと連携させて提供するサービスを提案し、デバイスとサービス間のデータ通信の仕組みを開発する等の積極的な動きを見せている。例えば、Ｇｏｏｇｌｅは画像形成装置と連携してサービスを提供するためのデータ通信の仕組みを開発し、Ｇｏｏｇｌｅが用意したクラウドコンピューティング環境とデータ通信を画像形成装置が行うためのインターフェースを公開した。このインターフェースを画像形成装置に実装することで、画像形成装置とサーバーがインターネットを介して接続されていたとしても、クライアントから画像形成装置を指定し印刷させることが可能になる。
【０００４】
ここで、サーバーと画像形成装置とが連携する技術として特許文献１を紹介する。特許文献１では、サーバーが印刷データを生成するサービスが、印刷指示と印刷を制御するための情報とをクライアントから受信し、印刷を制御するための情報を基に印刷データを生成する方法が開示されている。この方法により、クライアントにプリンタードライバをインストールせずに画像形成装置に適した印刷を行うことができるようになる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１９６０５４
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、画像形成装置にサーバーと通信するための専用インターフェースの実装が必要なため、既存の画像形成装置、即ち既に販売されているレガシープリンターでは接続できないという問題があった。通信モジュールを含むボードの差し替え等を行えば利用可能となる場合もあるが、作業やコストの負荷が非常に高い。また、複数の印刷サービスに対応するためには、夫々のサービスを提供するベンダーの仕様に適合した通信モジュールを各画像形成装置に実装する必要があるが、複雑になりコストもかかる。また、画像形成装置販売後に追加になった印刷サービスには容易に対応できない場合もある。
【０００７】
また、インターフェースを実装した場合でも、サーバーから取得可能な印刷データが、画像形成装置で解釈可能なフォーマットでない場合（たとえば、ＰＤＦを解釈できない画像形成装置でＰＤＦデータを受け取った場合）は印刷できない。
【０００８】
本発明の目的は、上述した課題の内、少なくとも１つの課題を解決することにある。そのために、印刷サービスを提供する印刷サーバーシステムと、印刷ジョブを出力する画像形成装置との間に印刷中継サーバーを設けることで目的を達成する。
【課題を解決するための手段】
【０００９】
本発明の一実施系に係る印刷中継サーバーシステムは、端末を介して印刷指定されたコンテンツデータを基に印刷ジョブを生成し、生成された印刷ジョブを送信する印刷サーバーシステムと、印刷ジョブを出力する画像形成装置と通信可能な印刷中継サーバーシステムであって、前記印刷中継サーバーシステムにおけるユーザー毎に設けられている、前記印刷サーバーシステムから印刷ジョブを受信するプロキシーと、前記印刷中継サーバーシステムに接続されている画像形成装置毎に設けられている、受信された印刷ジョブを前記画像形成装置へ送信する中継仮想プリンターと、印刷指定時に指定された画像形成装置であって、前記印刷サーバーシステムに登録されている該画像形成装置に関する装置情報を取得する取得手段と、取得された装置情報を基に中継仮想プリンターを特定し、受信された印刷ジョブを特定された中継仮想プリンターに転送することを特徴とする。
【発明の効果】
【００１０】
ベンダーの仕様に準拠した通信モジュールを搭載しない画像形成装置でも、印刷サービスと連携することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】コンテンツ印刷システム１０００の構成を示す図。
【図２】コンテンツ印刷システム１０００を構成する各装置、および各サーバー群のハードウェア構成図
【図３】コンテンツ印刷システム１０００を構成する各装置、および各サーバー群のソフトウェア構成図
【図４】印刷制御部３１０の構成図
【図５】中継仮想プリンター管理サービス３２２の構成図
【図６】中継仮想プリンター３２３の構成図
【図７】メイン処理管理サービス３２１の構成図
【図８】連携処理管理サービス３２４の構成図
【図９】印刷サービス用プロキシー３２５の構成図
【図１０】印刷サービス３３０の構成図
【図１１】（ａ）プリンター登録ＵＩを示す図、（ｂ）ユーザー情報ＵＩを示す図、（ｃ）印刷設定ＵＩを示す図、（ｄ）プリンターの追加／削除ＵＩを示す図
【図１２】（ａ）プリンター情報格納部５０５が格納する情報を示す図、（ｂ）ユーザー情報格納部７０３が格納する情報を示す図、（ｃ）ユーザー情報格納部８０３が格納する情報を示す図、（ｄ）プリンター情報格納部８０４が格納する情報を示す図、（ｅ）プリンター情報格納部１００２が格納する情報を示す図
【図１３】（ａ）ＸＭＬ形式で表現されたケーパビリティーズを示す図、（ｂ）ＸＭＬ形式で表現された印刷設定初期値を示す図、（ｃ）ＸＭＬ形式で表現された印刷設定を示す図、（ｄ）ＸＭＬ形式で表現されたプリンター登録要求を示す図、（ｅ）ＸＭＬ形式で表現されたプリンター登録要求の返信を示す図、（ｆ）ＸＭＬ形式で表現された通知情報Ａを示す図、（ｇ）ＸＭＬ形式で表現された通知情報Ｂを示す図
【図１４】（ａ）ＪＳＯＮ形式で表現されたケーパビリティーズを示す図、（ｂ）ＪＳＯＮ形式で表現された印刷設定初期値を示す図、（ｃ）ＪＳＯＮ形式で表現された印刷設定を示す図、（ｄ）ＪＳＯＮ形式で表現されたプリンター登録要求を示す図、（ｅ）ＪＳＯＮ形式で表現されたプリンター登録要求の返信を示す図、（ｆ）ＪＳＯＮ形式で表現された通知情報Ａを示す図、（ｇ）ＪＳＯＮ形式で表現された通知情報Ｂを示す図
【図１５】印刷ボタン１５０１が押されていることを示す図
【図１６】プリンター１１０を印刷中継サーバー１２０に登録する事前登録系処理を示すシーケンス図
【図１７】中継仮想プリンター３２３を印刷サービス３３０に登録する本登録系処理を示すシーケンス図
【図１８】印刷サーバー群１３０から送信される印刷データをプリンター１１０に印刷させる印刷系処理を示すシーケンス図
【図１９】（ａ）印刷サービスのユーザー情報ＵＩを示す図、（ｂ）ユーザー情報ＵＩを示す図、（ｃ）プリンターの追加ＵＩを示す図
【図２０】（ａ）プロキシーと中継仮想プリンターとを非独立にした場合の構成図、（ｂ）プロキシーと中継仮想プリンターとを独立にした場合の構成図。
【発明を実施するための形態】
【００１２】
画像形成装置がアプリケーションサーバー上のコンテンツを印刷するシステムを想定する。ユーザー認証が必要なアプリケーションサーバーのコンテンツの印刷を行う際に、画像形成装置がクライアントから取得したユーザー情報に基づいて印刷サーバーにログインし、コンテンツを基に生成された印刷データを取得して印刷する方法が考えられる。
【００１３】
画像形成装置が一度ログインした後、接続（セッション）を保持することで、ログインしたユーザーアカウントの印刷データはプッシュプリントが可能となる。しかしながら、別のアカウントを持つユーザーは印刷ができない。なぜなら、画像形成装置は別のユーザーが確立したセッションを保持しているからである。つまり、このままでは複数のユーザーからのプッシュプリントができない。
【００１４】
また、画像形成装置本体で定期的にユーザーアカウントを切り替えるという方法も考えられるが、そのためには各ユーザーアカウントのＩＤやパスワードを画像形成装置に保持しなければならないため、セキュリティ上の問題があった。またユーザー数が多くなると各ユーザーの印刷順番が回るまでに時間がかかり、すぐに印刷されない。
【００１５】
本発明はインターフェースを提供しているベンダーの環境と、プリンターとを中継する印刷中継サーバーに関する発明であって、複数の印刷サービス、かつ複数のユーザーアカウントからプッシュプリントを行う際に、通信の無駄を省いたプッシュプリントを可能とするシステムの提供を目的の１つとする。
【００１６】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【実施例１】
【００１７】
始めに、実施例１におけるコンテンツ印刷システム１０００の構成について説明する。図１は、コンテンツ印刷システム１０００の構成を示す図である。コンテンツシステム１０００は、クライアント１４０、プリンター１１０を含む。２つの装置はユーザー環境に配置された装置であり、ネットワーク１００を介して互いに接続されており、ネットワーク１００はインターネット１０１に接続されている。また、コンテンツ印刷システム１０００は、Ｗｅｂアプリケーションサーバー群１５０、印刷サーバー群１３０を含む。２つのサーバー群は、同じベンダーから提供されたサーバー群である場合もある。その場合は、両サーバー群はネットワーク１００を介して接続されていてもよい。
【００１８】
また、コンテンツ印刷システム１０００は、印刷中継サーバー１２０を含む。印刷中継サーバー１２０はネットワーク１００に接続されており、ネットワーク１００はインターネット１０１に接続されている。コンテンツ印刷システム１０００を構成する各装置、および各サーバー群は、インターネット１０１を介して接続可能であり、互いにデータ通信することができる。なお、各装置は１台のみであるが複数台あっても良い。また、各サーバー群は複数台で構成されているが１台であっても良い。よって、図１に記載されたサーバー装置、およびサーバー群をサーバーシステムと呼ぶこととする。例えば、印刷サーバー群１３０は印刷サーバーシステムに相当し、印刷中継サーバー１２０は印刷中継サーバーシステムに相当し、Ｗｅｂアプリケーションサーバー群１５０はアプリケーションサーバーシステムに相当する。また、プリンター１１０は画像形成装置に相当する。
【００１９】
次に、コンテンツ印刷システム１０００を構成する各装置、および各サーバー群のハードウェア構成について説明する。図２は、コンテンツ印刷システム１０００を構成する各装置、および各サーバー群のハードウェア構成を示す図である。２０１は、コンテンツ印刷システム１０００を構成する各装置、および各サーバー群である。２０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、各種プログラムを実行し、様々な機能を実現するユニットである。２０３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）であり、各種プログラムを記憶するユニットである。２０４は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、ＣＰＵ２０２は、ＲＯＭ２０３に記憶されているプログラムをＲＡＭ２０４にロードしプログラムを実行する。このプログラムがコンピュータにより実行されるプログラムである。また、ＲＡＭ２０４は、ＣＰＵ２０２の一時的な作業記憶領域としても利用されるユニットである。Ｉｎｐｕｔ／Ｏｕｔｐｕｔインターフェース２０５は、各装置、および各サーバー群に接続されているディスプレイ（不図示）にデータを送信する他、ポインティングデバイス（不図示）からデータを受信するインターフェースユニットである。ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２０６は、コンテンツ印刷システム１０００を構成する各装置、および各サーバー群をネットワーク１００に接続するためのユニットである。以上説明してきたユニットは、バス２０７を介してデータの送受信を行うことが可能である。また、プリンター１１０は、印刷ユニット（不図示）を搭載しており、印刷ユニットは、バス２０７を介して各ユニットとデータを送受信することが可能である。なお、印刷ユニットは、ラスタイメージを記録媒体に印刷することが可能なユニットである。
【００２０】
次に、コンテンツ印刷システム１０００を構成する各装置、および各サーバー群のソフトウェア構成について説明する。図３は、コンテンツ印刷システム１０００を構成する各装置、および各サーバー群のソフトウェア構成を示している。図３に示されている各ソフトウェア構成の機能を実現するプログラムは、各装置、および各サーバー群のＲＯＭ２０３に記憶されており、ＣＰＵ２０２がＲＡＭ２０４にプログラムをロードし実行することで、これらの機能は実現される。
【００２１】
これより、各装置、および各サーバー群が有する機能について説明する。ここで説明される機能は、次の３つの系に分類される。
【００２２】
一つ目の系に分類される機能は、プリンター１１０を印刷中継サーバー１２０に登録し、印刷中継サーバー１２０内に中継仮想プリンター３２３を実現する、事前登録系に分類される機能である。
二つ目の系に分類される機能は、印刷中継サーバー１２０で管理される中継仮想プリンター３２３を、印刷サービス用プロキシー３２５を通して印刷サービス３３０に登録する本登録系に分類される機能である。
三つ目の系に分類される機能は、印刷サーバー群１３０が生成した印刷データを、印刷中継サーバー１２０を経由して、印刷データをプリンター１１０に印刷させる印刷系に分類される機能である。
【００２３】
なお、各サーバーシステム、およびデバイスの機能の概略を説明すると、印刷サーバー群１３０は、クライアント１４０である端末を介して印刷指定されたコンテンツデータを基に印刷ジョブを生成し、生成された印刷ジョブを送信する機能を有する。Ｗｅｂアプリケーションサーバー群１５０は、クライアントからの要求に対しコンテンツを生成するための画面を提供する他、その画面を介して入力された情報を基にコンテンツを生成し、生成されたコンテンツを保存する機能を有する。また、プリンター１１０は、印刷ジョブを出力する機能を有する。クライアント１４０は、Ｗｅｂアプリケーションサーバー群１５０、印刷サーバー群１３０が提供するサービスを、例えば、Ｗｅｂブラウザーのようなアプリケーションを介して受ける。また、クライアント１４０は、印刷中継サーバー１２０、プリンター１１０とも通信を行うことが可能である。
【００２４】
まず、一つ目の系である事前登録系の機能について説明する。はじめに、プリンター１１０が有する事前登録系に分類される機能について説明する。プリンター１１０は、印刷制御部３１０を有する。印刷制御部３１０は、ユーザーの画面操作により、操作しているプリンターを印刷中継サーバー１２０に登録する。
【００２５】
以下、図４を用いて印刷制御部３１０の機能を説明する
表示部４０１は、各種画面を表示する。ここでは、図１１（ａ）に例示するＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を表示するものとする。ユーザーは本ＵＩを通してプリンター１１０を印刷中継サーバー１２０に登録する指示を行うことができる。なお、印刷中継サーバーのＵＲＬやＩＰアドレスが入力できるようになっていても良い。入力可能であれば任意の印刷中継サーバーへの登録が可能となる。ただし実施例１では、ＵＲＬやＩＰアドレスは内部的に記録されている値を使うものとする。
【００２６】
ここで印刷中継サービス１２０にログインするためのユーザーＩＤ１１０１とパスワード１１０２を入力し、登録実行ボタン１１０３を押下すると、表示部４０１は登録要求送信部４０２に入力情報を送り、登録実行を指示する。登録要求送信部４０２は受信した入力情報を使ってまず印刷中継サーバー１２０にログインを行い、成功すれば、印刷中継サーバー１２０に対して本プリンターの登録情報を送信する。なお、登録指示は、プリンター１１０からではなく、後述するように印刷中継サーバー１２０からでも良い。
【００２７】
ここで登録情報について説明する。登録情報には、プリンター１１０に割り当てられた固有の識別情報であるＲＰＩＤ（Ｒｅａｌ  Ｐｒｉｎｔｅｒ  ＩＤ）が含まれる。プリンター１１０を含む各プリンター（不図示）には、夫々固有の識別情報が割り当てられており、この識別情報により各プリンターは特定される。実施例１では、ＲＰＩＤを特定することでプリンターの配置場所を特定できる。
【００２８】
また、登録情報には、プリンター１１０のプリンターネームが含まれている。プリンターネームとは、プリンター１１０に割り当てられた名前であり、プリンター１１０を呼称するときに用いるものである。なお、プリンターネームは識別情報と異なり、各プリンターのプリンターネームが同一である場合もある。
【００２９】
また、登録情報にはケーパビリティーズが含まれている。ケーパビリティーズとは、例えば、プリンター１１０が両面印刷可能であるか否か、およびカラー印刷可能であるか否か、および出力可能ペーパサイズ等の情報を含む。ケーパビリティーズは、図１３（ａ）に示すようにＸＭＬ形式で表現が可能である。この＜Ｉｔｅｍ＞が、プリンター１１０の能力を示しており、プリンター１１０は、両面印刷可能であり、かつカラー出力可能であり、かつＢ５サイズ、およびＡ４サイズ、およびＡ３サイズの紙を出力可能であることが示されている。
【００３０】
また、登録情報には印刷設定初期値が含まれている。図１３（ｂ）に示すようにＸＭＬ形式で表現が可能であり、図１３（ａ）のサブセットとなっており、各機能においていずれかの＜Ｉｔｅｍ＞が選ばれている状態となる。図１３（ｂ）の例では、片面出力、カラー出力、Ａ４サイズ、が設定されていることを意味する。
【００３１】
次に、印刷中継サーバー１２０が有する事前登録系に分類される機能について説明する。印刷中継サーバー１２０は、中継仮想プリンター管理サービス部３２２を有する。中継仮想プリンター管理サービス部３２２は、プリンター登録要求を受信し、中継仮想プリンター３２３を生成する。中継仮想プリンターは、印刷中継サーバー１２０に接続されている画像形成装置毎に設けられており、受信された印刷ジョブを画像形成装置、即ちプリンター１１０へ送信する機能を有する。
【００３２】
以下、図５を用いて中継仮想プリンター管理サービス部３２２の機能の詳細な説明を行う。
【００３３】
登録要求受信部５０１は、登録要求送信部４０２から送信された登録情報を受信する。制御部５０２は、登録要求受信部５０１が受信した登録情報を取得し、その登録情報を解釈する。制御部５０２は、仮想プリンター生成部５０３へ、中継仮想プリンター３２３を生成する指示を出す。
【００３４】
仮想プリンター生成部５０３は、対象となるプリンターとの通信方式に準拠した通信モジュールＣｘ６１０を有する。通信モジュールＣｘ６１０は、プリンター１１０と通信を行うためのインターフェースであり、前述したプリンター１１０が有する通信モジュールＣｙ４１０と通信を行うことが可能である。
【００３５】
仮想プリンター生成部５０３は、この通信モジュールをロードしたプロセス（スレッド）を実現する。このプロセスが、図６に示す各機能を実現する中継仮想プリンター３２３に相当する。中継仮想プリンター３２３は通信モジュールの他に、印刷通知を受け付けて印刷データ、および印刷設定を含む印刷ジョブを取得する機能、およびその印刷ジョブから新たな印刷ジョブを生成する機能を有する。各機能の詳細は後述する。
【００３６】
仮想プリンター生成部５０３は、中継仮想プリンター３２３を実現した際に、実現した中継仮想プリンター３２３を識別するための識別情報であるＶＰＩＤ（Ｖｉｒｔｕａｌ  Ｐｒｉｎｔｅｒ  ＩＤ）を発行する。発行されたＶＰＩＤは、制御部５０２へ送られる。なお、中継仮想プリンターは、プリンター１１０から登録情報が送られる毎に実現される仮想プリンターであり、実現された夫々の中継仮想プリンターには固有の識別子であるＶＰＩＤが割り当てられる。実施例１では、ＶＰＩＤを特定することで中継仮想プリンターを特定することが可能となる。
【００３７】
仮想プリンター生成部５０３からＶＰＩＤを取得した制御部５０２は、プリンター情報格納部５０５に情報を格納するよう指示を出す。プリンター情報格納部５０５は、ＶＰＩＤ、および登録情報を図１２（ａ）に示すように関連付けて格納する。プリンター情報格納部５０５が格納する登録情報は、ＶＰＩＤが１２０１、ＲＰＩＤが１２０２、プリンターネームが１２０３、ケーパビリティーズが１２０４、印刷設定規定値が１２０５に相当する。
【００３８】
なお、仮想プリンターは、個別のプロセスではなく、単一プロセスの中で論理的に区別して処理する構造であってもよい。すなわち、ＶＰＩＤを特定することで対応するＲＰＩＤを制御できる構造であれば良い。
【００３９】
以上、説明してきた機能が、プリンター１１０を印刷中継サーバー１２０に登録し、印刷中継サーバー１２０内に中継仮想プリンター３２３を実現する事前登録系に分類される機能である。
【００４０】
続いて、二つ目の系である本登録系に分類される機能について説明する。はじめに、印刷中継サーバー１２０が有する本登録系に分類される機能について説明する。印刷中継サーバー１２０は、メイン処理管理サービス部３２１を有する。メイン処理管理サービス部３２１は、印刷サービス３３０に非依存な共通処理部であり、ここではユーザーの指示に従って中継仮想プリンター３２３を印刷サービスに登録するための前処理を行う。
【００４１】
以下、図７を用いてメイン処理管理サービス部３２１の機能を説明する。
【００４２】
ログイン受付部７０１は、クライアント１４０がＷｅｂブラウザー３４０を通して行うログインを受け付ける。ユーザー認証が完了すると、ログインしたユーザーアカウントに応じた処理を行う。
【００４３】
次に操作部７０２で、図１１（ｂ）に例示するようなユーザー操作を受け付ける画面を表示する。本画面もユーザー毎に設定されている情報に基づいて生成される。図１１（ｂ）には、該当ユーザーが利用可能なプリンター１１１１の一覧が表示されており、夫々のプリンターに対して印刷設定変更ボタン１１１２が配置される。また、該当ユーザーが利用できるプリンターを管理するための追加／削除ボタン１１１３が配置されている。また、印刷サービスベンダー一覧１１１４が表示されており、夫々の印刷サービスと連携するための連携ボタン１１１５がある。
【００４４】
追加／削除ボタン１１１３が押下されると、図１１（ｄ）に例示するプリンターの追加／削除画面が表示される。ここでは、ユーザーにとって既に利用可能となっているプリンター一覧１１３１と、前記プリンターを削除するための削除ボタン１１３２が表示される。また、印刷中継サーバー１２０で利用可能でありユーザーが利用要求を出すことが可能なプリンター一覧１１３３と、追加要求を行うための追加ボタン１１３４が表示される。また、新たに印刷中継サーバー１２０にプリンターを登録するための情報入力欄１１３５と登録実行ボタン１１３６も表示されている。情報入力欄１１３５と登録実行ボタン１１３６は、前述したプリンター１１０の登録要求送信部４０２で行う処理と同等の処理をサーバーの操作画面上で行うものである。
【００４５】
ここでユーザーが利用可能となるプリンターが決まると、操作部７０２はユーザー情報格納部７０３に指示し、図１２（ｂ）に示すように、ユーザーＩＤと利用可能なプリンターを識別するＶＰＩＤ、および夫々の印刷設定を関連付けて格納する。格納する情報は、ユーザーＩＤが１２１１、ＶＰＩＤが１２１２、各ＶＰＩＤの印刷設定規定値が１２１３となる。ユーザーがプリンターの追加や削除を行うと、ユーザーＩＤ１２１１に紐付くプリンター１２１２が増減する。印刷設定規定値１２１３は、アプリケーションからプリンターを選択して印刷設定を行う際の規定値となる。
【００４６】
また、印刷設定規定値１２１３の初期値は、図１２（ａ）に格納されている印刷設定初期値１２０５となる。この情報取得は以下の流れとなる。まず、操作部７０２はプリンター情報要求送信部７０４に指示し、中継仮想プリンター管理サービス３２２にプリンター情報を要求する。このとき、情報を必要とするプリンターのＶＰＩＤを渡す。中継仮想プリンター管理サービス３２２はプリンター情報要求受信部５１０で要求を受信する。プリンター情報要求受信部５１０は受信したＶＰＩＤに関連付いた図１２（ａ）の情報を、プリンター情報格納部５０５を通して取得する。ここでは印刷設定初期値１２０５を取得する。プリンター情報要求受信部５１０は取得した情報をプリンター情報要求送信部７０４に返送し、プリンター情報要求送信部７０４は取得した情報を操作部７０２に返送する。以上により、印刷設定初期値が取得される。
【００４７】
図１１（ｄ）の画面にて、ＯＫボタン１１３７が押下されることで利用可能なプリンターは確定し、図１１（ｂ）の画面に戻る。この画面では、利用可能なプリンターの表示が更新される。以上により、ユーザー毎に利用可能なプリンターを管理することができる。
【００４８】
図１１（ｂ）のＵＩにて印刷設定変更ボタン１１１２が押下されると、操作部７０２はプリンター情報要求送信部７０４に指示し、中継仮想プリンター管理サービス３２２にプリンター情報を要求する。このとき、情報を必要とするプリンターのＶＰＩＤを渡す。中継仮想プリンター管理サービス３２２はプリンター情報要求受信部５１０で要求を受信する。プリンター情報要求受信部５１０は受信したＶＰＩＤに関連付いた図１２（ａ）の情報を、プリンター情報格納部５０５を通して取得する。ここではケーパビリティーズ１２０４を取得する。プリンター情報要求受信部５１０は取得した情報をプリンター情報要求送信部７０４に返送し、プリンター情報要求送信部７０４は取得した情報を操作部７０２に返送する。また、操作部７０２はユーザー情報格納部７０３に対し、情報を必要とするプリンターのＶＰＩＤを渡して情報を要求する。ここでは、ユーザー情報格納部７０３を通して、図１２（ｂ）で管理されている印刷設定規定値１２１３を取得するものとする。以上により、選択したプリンターのケーパビリティーズと印刷設定を取得する。
【００４９】
次に操作部７０２は、図１１（ｃ）に例示する印刷設定画面を表示する。ここで、設定項目とその選択肢は、取得したケーパビリティーズを元に生成される。またその初期設定には、取得した印刷設定規定値が適用される。
【００５０】
ユーザーがＵＩ画面を通して設定を変更すると、その設定値は図１３（ｃ）のようにＸＭＬ形式で保持される。図１３（ｃ）の例では、両面出力、モノクロ出力、Ａ４サイズ、が設定されている状態を意味する。ＯＫボタン１１２４が押下されると設定が確定し、操作部７０２は印刷設定を保持するＸＭＬと該当プリンターのＶＰＩＤをユーザー情報格納部７０３に送る。ユーザー情報格納部７０３は該当ユーザーの該当プリンターの印刷設定規定値１２１３を受け取った設定で更新する。
【００５１】
以上により、ユーザー毎に、プリンター毎の印刷設定が管理され、同じプリンターでもユーザー毎に異なる規定値を持つことが可能となる。
【００５２】
図１１（ｂ）のＵＩにて連携ボタン１１１５が押下されると、操作部７０２は連携処理要求送信部７１０に連携処理を指示する。連携処理要求送信部７１０は、選択された印刷サービスに対応する連携処理管理サービス３２４に対して、連携処理要求を送信する。このとき、ユーザーＩＤと、ユーザーが利用可能なプリンターに対応するＶＰＩＤ一覧、および各ＶＰＩＤに関連付けられている情報を送る。ここで必要となるＶＰＩＤに関連付けられている情報とは、プリンター情報格納部５０５で管理されているプリンターネーム１２０３、ケーパビリティーズ１２０４、およびユーザー情報格納部７０３で管理されている印刷設定規定値１２１３である。
【００５３】
次に、印刷中継サーバー１２０が有する連携処理管理サービス３２４の本登録系に分類される機能について説明する。連携処理管理サービス３２４は印刷サーバーシステム毎にひとつずつ存在し、印刷サーバーシステムを提供するベンダーにより公開された印刷ジョブを受信するための通信仕様に対応するプロセスを作成する。このプロセスは、その通信仕様に対応するインターフェースを具備するため、印刷サーバーシステムと通信を行うことが可能になる。本実施例では印刷サービス用プロキシー３２５を生成する。印刷サービス用プロキシー３２５は、印刷中継サーバー１２０におけるユーザー毎に設けられており、各印刷サーバーシステムから印刷ジョブを受信する機能を有する。また連携処理管理サービス３２４は、通信や印刷実行に必要な情報を管理する。
【００５４】
以下、図８を用いて連携処理管理サービス３２４の機能を説明する。
【００５５】
連携処理要求受信部８０１は、連携処理要求送信部７１０からの要求を受信する。ここでは情報として、プリンターネーム、ケーパビリティーズ、印刷設定を受け取る。連携処理要求受信部８０１は、受け取った情報を制御部８０２に送る。制御部８０２は、受け取った情報を解釈する。制御部８０２は、ユーザー情報格納部８０３に指示し、ユーザー情報格納部８０３が管理する情報に該当するユーザーＩＤがあるかを確認する。なお、ユーザー情報格納部８０３が管理する情報の詳細については後述する。
【００５６】
ユーザーＩＤがなかった場合はこのユーザーは初めてこの印刷サービスを利用したことを意味するので、対象の印刷サーバー群にユーザー認証を行う。ここでは、制御部８０２が印刷サービス認証部８１０に指示し、印刷サービス認証部８１０は印刷サーバー群１３０へのログインを行う。ここでは、ユーザーが、印刷サービス３３０が表示するログイン画面に、印刷サービスへアクセスするためのユーザーアカウント（ＩＤやパスワード）を入力する。ユーザー認証が成功すると、印刷サービス認証部８１０は印刷サーバー群１３０から認証トークンを受け取るので、それを制御部８０２に渡す。なお、ユーザー認証に失敗した場合は、ユーザーは印刷サービスを利用できないことを意味するため、連携処理要求受信部８０１から失敗というステータスを連携処理要求送信部７１０に返す。
【００５７】
次に、制御部８０２はプロキシー作成部８１１に指示し、印刷サービス用プロキシー３２５の機能を実現する。印刷サービス用プロキシー３２５は、図９に示す各機能を実現する。プロキシー作成部８１１は、対象となる印刷サービスとの通信方式に準拠した通信モジュールＡｙ９１０を有する。通信モジュールＡｙ９１０は、印刷サーバー群１３０と通信を行うためのインターフェースであり、後述する印刷サービス３３０が有する通信モジュールＡｘ１０１０と通信を行うことが可能である。プロキシー作成部８１１は、この通信モジュールをロードしたプロセス（スレッド）を実現する。このプロセスが、印刷サービス用プロキシー３２５に相当する。印刷サービス用プロキシー３２５は、通信モジュールの他に、印刷サービスにプリンターを登録する機能、印刷サービスから取得した印刷データや印刷設定を別のモジュールに引き渡す機能を有する。印刷サービス用プロキシー３２５の各機能の詳細は後述する。
【００５８】
プロキシー作成部８１１は、印刷サービス用プロキシー３２５を実現した際に、実現した印刷サービス用プロキシー３２５を識別するための識別情報であるプロキシーＩＤを発行する。発行されたプロキシーＩＤは、制御部８０２へ送られる。尚、印刷サービス用プロキシー３２５は、ユーザーＩＤごとに実現されるものであり、実現された夫々の印刷サービス用プロキシーには固有の識別情報であるプロキシーＩＤが割り当てられる。本実施例では、プロキシーＩＤから印刷サービス用プロキシー３２５を特定することができる。
【００５９】
なお、プロキシーＩＤは印刷サービス３３０が発行する場合もある。このときは、印刷サービス３３０から受信したプロキシーＩＤを管理する。
【００６０】
印刷サービス用プロキシー３２５が作成された後、制御部８０２は、プロキシー要求送信部８１２に指示し、プリンターの登録を行う。プロキシー要求送信部８１２は、印刷サービス用プロキシー３２５に対し、印刷サービス３３０へのプリンターの登録を要求する。このとき、ユーザーの認証トークン、プロキシーＩＤ、ＶＰＩＤ一覧とその関連情報を送信する。後述するように、印刷サービス用プロキシー３２５は、プリンターの登録処理を行うと、各ＶＰＩＤに対応するＳＰＩＤ（Ｓｅｒｖｉｃｅ  Ｐｒｉｎｔｅｒ  ＩＤ）を返信する。装置情報に相当するＳＰＩＤについての詳細は後述する。ＳＰＩＤ一覧を受け取ったプロキシー要求送信部８１２は、その情報を制御部８０２に返信する。
【００６１】
上述したように、プロキシー作成部８１１とプロキシー要求送信部８１２が処理を終えると、制御部８０２は生成された印刷サービス用プロキシー３２５のプロキシーＩＤと、印刷サービス３３０に登録されたＶＰＩＤに対応するＳＰＩＤ一覧を取得する。制御部８０２は、ユーザー情報格納部８０３に指示し、印刷中継サーバー１２０で管理されているユーザーＩＤと印刷サービス３３０へのプロキシーＩＤ、および関連情報を、図１２（ｃ）のように関連付けて格納する。なお、ユーザーＩＤが１２２１、プロキシーＩＤが１２２２、本ユーザーが利用可能なＶＰＩＤ一覧が１２２３に相当する。また、制御部８０２は、プリンター情報格納部８０４に指示し、ＳＰＩＤとＶＰＩＤ、および関連情報を、図１２（ｄ）のように関連付けて格納する。なお、ＳＰＩＤが１２３１、ＶＰＩＤが１２３２、プリンターネームが１２３３、ケーパビリティーズが１２３４、印刷設定規定値が１２３５に相当する。このように、登録の際に送信された装置情報、即ちＳＰＩＤと、登録された中継仮想プリンター、即ちＶＰＩＤとが関連するように保存される。
【００６２】
なお、既に印刷サービス用プロキシーを作成しているユーザーが連携処理管理サービス３２４を再度利用した場合には、上述したプロキシー作成部８１１の処理をスキップする。その場合、制御部８０２は、連携処理要求受信部８０１から受け取ったＶＰＩＤ一覧と、ユーザー情報格納部８０３に格納されているユーザーに紐付けられたＶＰＩＤ一覧との比較で差があるか確認する。差がある場合は、印刷サービス３３０に登録されているプリンターと、本ユーザーが利用可能なプリンターが一致していないことを意味する。そこで制御部８０２は、追加すべきＶＰＩＤと削除すべきＶＰＩＤを確認し、プロキシー要求送信部８１２に指示してプリンターの追加や削除を行う。
【００６３】
次に、印刷中継サーバー１２０が有する印刷サービス用プロキシー３２５の本登録系に分類される機能について説明する。印刷サービス用プロキシー３２５は、印刷サービス３３０との通信方式に対応した通信インターフェースを持つプロセスであり、印刷サービスごとに存在する連携処理管理サービス３２４が、夫々の印刷サービスに対して、ユーザーアカウントごとに生成する。そして、生成された各印刷サービス用プロキシー３２５が、夫々個別に印刷サービス３３０と接続されることにより、すべてのユーザーが、すべての印刷サービスに対して、同時に接続されている形態となる。ここでは印刷サービス３３０に対してプリンターを登録する処理を行う。
【００６４】
以下、図９を用いて印刷サービス用プロキシー３２５の機能を説明する。
【００６５】
要求受信部９０１は、プロキシー要求送信部８１２からプリンターの登録要求、およびユーザーの認証トークン、プロキシーＩＤ、ＶＰＩＤ一覧とその関連情報を受け取る。要求受信部９０１は、印刷サービスプリンター生成部９０２に登録処理を指示する。印刷サービスプリンター生成部９０２は、受信した認証トークンを用いて印刷サービス３３０に接続し、以後接続を続ける。次に印刷サービスプリンター生成部９０２は、受信した情報を元に印刷サービス３３０に対してプリンターの登録要求を行う。図１３（ｄ）は、印刷サービス３３０に対する印刷要求情報の一例であり、ＸＭＬで記載された情報の中に、プリンターネーム１３４１、プロキシーＩＤ１３４２、ケーパビリティーズ１３４３、印刷設定１３４４が含まれている。ここでは一台分の情報が記載されているが、一度の要求で複数台分をまとめて登録してもよい。
【００６６】
印刷サービスプリンター生成部９０２は、登録要求の応答として、印刷サービス３３０から装置情報に相当するＳＰＩＤを受け取る。図１３（ｅ）はその一例で、ＸＭＬで記載されており、各プリンターに対応するＳＰＩＤ１３５１が割り当てられている。ここでは一台分の情報が記載されているが、一度の返信で複数台分をまとめて応答してもよい。印刷サービスプリンター生成部９０２は受け取ったＳＰＩＤを要求受信部９０１に返信し、要求受信部９０１は同情報をプロキシー要求送信部８１２返信する。
【００６７】
ここで、もし印刷中継サービスが、各印刷サービスに接続するためのユーザーアカウント情報（ユーザーＩＤやパスワード）を保持すると、セキュリティ上好ましくないという課題があった。しかし、上述したように、印刷サービスにログインした後は認証トークンを利用して接続を継続する。これにより、仮想中継サーバー上で印刷サービスのユーザーアカウント情報を保持する必要がないので、セキュリティ上のリスクが低減する効果がある。
【００６８】
次に、印刷サーバー群１３０の有する本登録系に分類される機能について説明する。印刷サーバー群１３０は、印刷サービス３３０を有する。印刷サーバー群１３０は、複数台のサーバーを仮想化して１台のサーバーとみなし、その１台のサーバーで印刷サービス３３０の機能を実現している。なお、印刷サーバー群１３０は、その１台のサーバー内に複数のヴァーチャルマシンを起動し、夫々のヴァーチャルマシンに対して印刷サービス３３０の機能を実現させている。図３に示す印刷サービス３３０は、その内の１台を示したものである。
【００６９】
印刷サービス３３０は、プリンターの登録を受け付け、アプリケーションから選択可能なサービスプリンターを作成する。以下、図１０を用いて印刷サービス３３０の機能を説明する。
【００７０】
プリンター情報登録部１００１は、プリンター登録要求とその関連情報を印刷サービスプリンター生成部９０２から受信する。プリンター情報登録部１００１は、受信した情報を元に登録要求のあった各プリンターに対応するサービスプリンターを作成し、夫々のサービスプリンターに対するＳＰＩＤを発行する。
【００７１】
ここでＳＰＩＤ（Ｓｅｒｖｉｃｅ  Ｐｒｉｎｔｅｒ  ＩＤ）について説明する。印刷サービス３３０は、プリンター登録要求を受けた際に、そのプリンターを識別するための識別情報であるＳＰＩＤを発行する。印刷時に印刷サービス３３０のプリンターが選択されると、印刷サービス３３０は選択されたプリンターに対応するＳＰＩＤでプリンターを識別する。
【００７２】
印刷サービス３３０で発行されたＳＰＩＤは、プリンター情報格納部１００２、および印刷サービスプリンター生成部９０２に送信される。
【００７３】
プリンター情報格納部１００２は、印刷サービス３３０におけるユーザーＩＤと、ＳＰＩＤ、プリンターネーム、プロキシーＩＤ、ケーパビリティーズ、印刷設定を関連付けて格納する。図１２（ｅ）は、プリンター情報格納部１００２が格納している情報を示す図であり、ユーザーＩＤが１２４１、ＳＰＩＤが１２４２、プリンターネームが１２４３、プロキシーＩＤが１２４４、ケーパビリティーズが１２４５、印刷設定が１２４６に相当する。
【００７４】
なお、図１２（ｅ）で例示するＵｓｅｒＢ＠ｘｘｘ．ｃｏｍで管理する情報のように、異なるプロキシーＩＤを持つインターフェースからプリンター登録を行った場合は、どのプリンターがどのプロキシーから登録されたか判るように管理される。プロキシーＩＤ１２４４は、印刷中継サーバー１２０のユーザー毎に設けられたプロキシーを特定するための固有情報である。よって、印刷中継サーバー１２０のプロキシー内の１つのプロキシーは、印刷指定を行う１人のユーザーに関連して登録されている。
【００７５】
以上、説明してきた機能が、印刷中継サーバー１２０で管理される中継仮想プリンター３２３を、印刷サービス用プロキシー３２５を通して印刷サービス３３０に登録する本登録系に分類される機能である。
【００７６】
次に、印刷系に分類される機能について説明する。始めに、クライアント１４０が有する機能について説明する。クライアント１４０は、Ｗｅｂブラウザー３４０を有する。
【００７７】
Ｗｅｂブラウザー３４０は、Ｗｅｂアプリケーションサーバー群１５０に保存されているコンテンツの印刷指示を、Ｗｅｂアプリケーションサーバー群１５０に送信する。また、Ｗｅｂブラウザー３４０は、Ｗｅｂアプリケーションサーバー群１５０から印刷サーバー群１３０へのアクセス命令、即ち、リダイレクトの指示を受信し、受信したリダイレクトの指示に従い印刷サーバー群１３０へアクセスする。また、Ｗｅｂブラウザー３４０は、そのＷｅｂブラウザー３４０を利用しているユーザーが印刷可能なプリンターの一覧リストを、アクセスした印刷サーバー群１３０から取得し一覧リストを表示する。また、Ｗｅｂブラウザー３４０は、その一覧リストからユーザーが選択したプリンターに対応する印刷設定画面を、印刷サーバー群１３０から取得しその印刷設定画面を表示する。図１１（ｃ）は、Ｗｅｂブラウザー３４０が表示するユーザーが選択したプリンターに対応する印刷設定画面の一例である。また、Ｗｅｂブラウザー３４０は、その印刷設定画面でユーザーが設定した印刷設定値を印刷サーバー群１３０へ送信する。
【００７８】
以上が、クライアント１４０が有するＷｅｂブラウザー３４０の説明である。
【００７９】
次に、Ｗｅｂアプリケーションサーバー群１５０が有する機能について説明する。Ｗｅｂアプリケーションサーバー群１５０は、Ｗｅｂアプリケーション３５０を有する。Ｗｅｂアプリケーションサーバー群１５０は、複数台のサーバーを仮想化して１台のサーバーとみなし、その１台のサーバーでＷｅｂアプリケーション３５０の機能を実現している。なお、Ｗｅｂアプリケーションサーバー群１５０は、その１台のサーバー内に複数のヴァーチャルマシンを起動し、夫々のヴァーチャルマシンに対してＷｅｂアプリケーション３５０の機能を実現させている。
【００８０】
Ｗｅｂアプリケーション３５０は、文書作成サービスを提供する。ユーザーは、例えば、会社の会議で資料を配布したい場合に、その資料を作成するため文書作成サービスを利用する。クライアント１４０がＷｅｂアプリケーション３５０を利用する場合は、クライアント１４０にそのアプリケーションをインストールする必要はなく、Ｗｅｂブラウザー３４０を有していれば良い。Ｗｅｂアプリケーション３５０は、その資料を作成するための画面情報を、Ｗｅｂブラウザー３４０に送信する。なお、Ｗｅｂアプリケーション３５０は、Ｗｅｂブラウザー３４０を介してユーザーが入力したユーザーＩＤ、およびパスワードを含むユーザー情報を基に認証を行い、認証が成功したことに応じて資料を作成するための画面情報を送る。その画面情報を受信したＷｅｂブラウザー３４０は、その画面情報を基に文書を作成するための作成画面を表示し、ユーザーはその作成画面を用いて会議で配布する資料を作成する。Ｗｅｂアプリケーション３５０は、ユーザーがその作成画面を用いて作成した資料の情報を受信し、受信した情報を基にコンテンツを作成し、Ｗｅｂアプリケーションサーバー群１５０の記憶装置に作成したコンテンツを記憶させる。なお、Ｗｅｂアプリケーション３５０は、文書作成サービスに限らずメールサービス、スケジュールサービスも提供している。
【００８１】
文書作成サービスを利用し作成したコンテンツを印刷したいユーザーは、その作成画面に表示されている印刷ボタンを押す。図１５は、印刷ボタン１５０１が押されていることを示す図である。なお、ユーザーが作成したコンテンツは１５０２である。Ｗｅｂアプリケーション３５０は、その印刷ボタンが押されたという情報を受信し、印刷サーバー群１３０へのアクセス命令、即ち、リダイレクトの指示をＷｅｂブラウザー３４０へ送信する。なお、リダイレクト指示には、上述したＷｅｂブラウザー３４０を利用しているユーザーに対応する一覧リストを取得するための要求、およびユーザーが印刷を指示したコンテンツを識別するためのコンテンツ識別情報、およびユーザー情報が含まれている。また、Ｗｅｂアプリケーション３５０は、印刷サーバー群１３０からコンテンツの取得要求があった場合に、その取得要求と共に送られたコンテンツを識別するためのコンテンツ識別情報を基に、対象のコンテンツを印刷サーバー群１３０へ送信する。
【００８２】
以上が、Ｗｅｂアプリケーションサーバー群１５０が有するＷｅｂアプリケーション３５０の説明である。
【００８３】
次に、印刷サーバー群１３０の有する印刷系に分類される機能について説明する。印刷サーバー群１３０は、印刷サービス３３０を有する。印刷サービス３３０は、Ｗｅｂアプリケーションから印刷データを取得し、プリンター、またはそれに準拠するインターフェースを持つモジュールに対して印刷データを送信し、印刷を遂行する。
【００８４】
以下、図１０を用いて印刷サービス３３０の機能を説明する。
【００８５】
印刷サービス３３０は、プリンター情報提示部１００３を有する。プリンター情報提示部１００３は、Ｗｅｂブラウザー３４０からの一覧リスト取得要求を受けたことに応じて、一覧リストをＷｅｂブラウザー３４０に送信する。なお、プリンター情報提示部１００３は、ユーザー情報を基にプリンター情報格納部１００２が格納しているＳＰＩＤ、プリンターネームを特定する。そして、プリンター情報提示部１００３は、ＳＰＩＤ、プリンターネームを基に、そのユーザーが利用可能なプリンターの一覧リストを生成する。また、プリンター情報提示部１００３は、一覧リストからユーザーが選択したプリンターのＳＰＩＤを受信する。プリンター情報提示部１００３は、受信したＳＰＩＤを基にプリンター情報格納部１００２が格納しているケーパビリティーズを特定し、印刷設定画面を生成し、生成した印刷設定画面をＷｅｂブラウザー３４０へ送信する。また、受信したＳＰＩＤを基にプリンター情報格納部１００２が格納している印刷設定規定値を特定し、設定の初期値とする。
【００８６】
プリンター情報格納部１００２は、図１２（ｅ）に示すケーパビリティーズの情報から図１１（ｃ）に示す印刷設定画面を生成する。図１１（ｃ）に示すように、プリンター情報格納部１００２は、ケーパビリティーズに記載された印刷設定しか選択できないような印刷設定画面を生成する。
【００８７】
印刷指示受付部１００４は、印刷設定画面を介して設定された印刷設定と、ＳＰＩＤをＷｅｂブラウザー３４０から受信する。また、印刷指示受付部１００４は、Ｗｅｂブラウザー３４０がリダイレクトの指示に基づいてアクセスしてきた際に、ユーザーが印刷を指示したコンテンツを識別するためのコンテンツ識別情報を受信する。
【００８８】
印刷データ情報取得部１００５は、印刷指示受付部１００４からコンテンツ識別情報を受信し、受信したコンテンツ識別情報を基にＷｅｂアプリケーション３５０から印刷対象となるコンテンツを取得する。また、印刷データ情報取得部１００５は、印刷指示受付部１００４からユーザーが入力した印刷設定、およびユーザーが選択したプリンターに対応するＳＰＩＤを受信する。なお、印刷データ情報取得部１００５は、Ｗｅｂアプリケーション３５０から取得したコンテンツと印刷設定を基に、必要に応じてコンテンツを印刷データに変換する場合もある。
【００８９】
制御部１００６は、印刷データ情報取得部１００５から印刷データ、印刷設定、ＳＰＩＤを取得する。印刷設定は、図１３（ｃ）のようにＸＭＬ形式で記載されている。図１３（ｃ）によれば、ユーザーは両面設定、およびモノクロ設定、および用紙サイズＡ４を設定したことが分かる。
【００９０】
通信モジュールＡｘ１０１０は、通信モジュールＡｙ９１０を有する装置と通信を行うことが可能であり、２者間のデータ通信のインターフェースである。通信モジュールＡｘ１０１０は印刷データ格納部１０１１、印刷設定格納部１０１２、印刷通知送信部１０１３を有する。印刷データ格納部１０１１は、制御部１００６から印刷データを受信し格納する。印刷設定格納部１０１２は、制御部１００６から印刷設定を受信し格納する。制御部１００６は、印刷データ格納部１０１１、および印刷設定格納部１０１２から格納が終了した旨を受信したことに応じて、印刷通知送信部１０１３に通知情報を送るように指示をする。
【００９１】
印刷通知送信部１０１３は、制御部１００６から通知情報を送るように指示されたことに応じて、印刷データの格納場所、および印刷設定の格納場所を制御部１００６から取得し、通知情報Ａを生成する。通知情報Ａは、図１３（ｆ）に示すＸＭＬで表されており、１３６１にＳＰＩＤが、１３６２に印刷データの格納場所が、１３６３に印刷設定の格納場所が、夫々記載されている。また、印刷通知送信部１０１３は、ＳＰＩＤを制御部１００６から取得し、プリンター情報格納部１００２が格納している情報を基にプロキシーＩＤを特定する。印刷通知送信部１０１３は、特定したプロキシーＩＤを持つインターフェースに対して、そのプロキシーが管理するＳＰＩＤに対する印刷データが準備できたことを通知するため通知情報Ａを送信する。
【００９２】
この通信情報Ａは、印刷サービス独自の通信方式に準拠しており、通信にはこの独自の通信方式を解釈可能なインターフェースの実装が必要となる。プリンターに実装すればプリンターを直接印刷サーバーに登録することができるし、サーバーやクライアントなどの通信可能な装置に実装すればプロキシーとして登録可能となる。本実施例では、通信モジュールＡｙ９１０がこの独自の通信方式を解釈可能なインターフェースを実装しており、通信モジュールＡｘ１０１０との通信が可能となっている。
【００９３】
なお、通信モジュールＡｘと、通信モジュールＡｙが通信を行えるような仕組みを、印刷サーバー群１３０を提供するベンダーの仕様と呼ぶ。そして、この仕様は、印刷サーバー群１３０を管理しているベンダーに深く依存する。印刷サーバー群１３０を管理しているベンダーは、印刷サーバー群１３０に通信モジュールＡｘを実装し、通信モジュールＡｘと通信を行うための通信モジュールＡｙの仕様を公開する。また、印刷サーバー群１３０を管理しているベンダーが公開するデータ通信の仕様は、第１の仕様に相当する。通信モジュールＡｘ、および通信モジュールＡｙのインターフェースは、第１の仕様に準じて作成されるインターフェースである。そして、通信モジュールＡｙが第１の通信手段に相当する。
【００９４】
なお、ベンダーの仕様に準拠した通信モジュールを搭載しないプリンターは、印刷サービスに接続できないという課題があった。また、ある印刷サービスに対応する通信モジュールを搭載していても、別の通信仕様を持つ印刷サービスには接続できないという課題があった。しかし次に説明する印刷中継サーバー１２０の印刷系に分類される機能を用いることでこれらの課題は解決する。
【００９５】
次に、印刷中継サーバー１２０の印刷系に分類される機能について説明する。まず印刷サービス用プロキシー３２５の印刷系に分類される機能について説明する。印刷サービス用プロキシー３２５は、印刷サービス３３０から印刷通知とＳＰＩＤを受け取り、ＳＰＩＤに対応するＶＰＩＤを特定する。また印刷サービス３３０から印刷データを受け取り、特定したＶＰＩＤに対応する中継仮想プリンター３２３に送信することで、印刷を遂行する。
【００９６】
以下、図９を用いて印刷サービス用プロキシー３２５の機能を説明する。
【００９７】
印刷サービス用プロキシー３２５は、通信モジュールＡｙ９１０を有する。通信モジュールＡｙ９１０の印刷通知受信部９１３は、印刷通知送信部１０１３から送信される通知情報Ａを受信する。印刷サービス３３０には、印刷サービス用プロキシー３２５を通して中継仮想プリンター３２３が登録されているため、通知情報Ａは印刷サービス用プロキシー３２５の通信モジュールＡｙ９１０に送信される。この通信モジュールＡｙは通信モジュールＡｘと対をなすモジュールであるため、印刷通知受信部９１３は、通知情報Ａを解釈することが可能である。
【００９８】
印刷通知受信部９１３は、制御部９１５に指示し、出力するプリンターを確定する。制御部９１５は、まず印刷通知情報ＡからサービスプリンターＳＰＩＤ１３６１を取得する。このＳＰＩＤは、印刷指定時に指定された画像形成装置であって、印刷サーバーシステムに登録されている該画像形成装置に関する装置情報、即ち、印刷指示受付部１００４がユーザーからの指示により受け付けたＳＰＩＤである。次に制御部９１５は、プリンター情報要求送信部９１６へ、ＳＰＩＤに対応するＶＰＩＤ値を要求する。プリンター情報要求送信部９１６は、連携処理管理サービス３２４へ、ＳＰＩＤに対応するプリンター情報を要求する。連携処理管理サービス３２４のプリンター情報要求受信部８２０は要求を受信し、プリンター情報格納部８０４から、指定されたＳＰＩＤに関連付けられた情報を取得し、プリンター情報要求受信部８２０へ返信する。プリンター情報要求受信部８２０は、同情報をプリンター情報要求送信部９１６へ返信する。プリンター情報要求送信部９１６は、取得した情報の中からＶＰＩＤ値を取得し、制御部９１５に送信する。制御部９１５は取得したＶＰＩＤを印刷通知送信部９２３へ送信する。印刷通知送信部９２３は、取得したＶＰＩＤから、データを送信すべき中継仮想プリンター３２３を特定する。
【００９９】
また、印刷通知受信部９１３は、通知情報Ａに記載されている印刷データの格納場所、および印刷設定の格納場所を確認し、夫々の情報を印刷データ取得部９１１、印刷設定取得部９１２に通知する。印刷データ取得部９１１は、通知された印刷データの格納場所を基に、印刷データ格納部１０１１から印刷データを取得し、印刷データ格納部９２１に指示して格納する。印刷データを格納した印刷データ格納部９２１は、格納場所を印刷通知送信部９２３に通知する。また印刷設定取得部９１２は、通知された印刷設定の格納場所を基に、印刷設定格納部１０１２から印刷設定を取得し、印刷設定格納部９２２に指示して格納する。印刷設定を格納した印刷設定格納部９２２は、格納場所を印刷通知送信部９２３に通知する。
【０１００】
印刷通知送信部９２３は、印刷データ格納部９２１、および印刷設定格納部９２２から格納場所の通知を受け付けたことに応じて、通知情報Ｂを生成する。通知情報Ｂは図１３（ｇ）に示すＸＭＬ形式で表現することができる。１３７１に印刷データの格納場所が記載され、１３７２に印刷設定の格納場所が記載されている。印刷通知送信部９２３は、制御部９１５が特定した中継仮想プリンター３２３の印刷通知受信部６０３へ、通知情報Ｂを送信する。この通知情報Ｂは第２の仕様に相当し、印刷サービス用プロキシー３２５と中継仮想プリンター３２３の間の通信で用いられる。印刷サービス用プロキシー３２５と中継仮想プリンター３２３は中継仮想サーバー１２０内に存在し、任意の組み合わせで通信が可能となる。ここで、第２の仕様は、中継仮想サーバー１２０の内部フォーマットではあるが、印刷サービス用プロキシー３２５の実装や扱うデータフォーマットは印刷サービス３３０に大きく依存するため、汎用性の高いフォーマットとなる。そして、印刷通知送信部９２３および印刷通知受信部６０３が、第２の通信手段に相当する。このように、特定された中継仮想プリンターに印刷ジョブを転送する。なお、印刷ジョブを転送する際に、印刷データ、および印刷設定の両方を同時に転送しても良いし、独立したタイミングで転送しても良い。
【０１０１】
なお、通信モジュールを搭載したプリンターを直接印刷サービスに登録した場合、プリンターを接続しているユーザーアカウント以外のユーザーからはプッシュプリントできないという課題があった。またプリンター側で定期的にユーザーアカウントを切り替えて接続し直した場合、特定のユーザーに順番が回るまで時間がかかり、すぐに印刷できないという課題があった。しかし、印刷サービス用プロキシー３２５の本登録系に分類される機能で説明したように、印刷サービス用プロキシー３２５は、印刷中継サーバー１２０に接続された複数の印刷サーバーシステム毎、かつユーザーＩＤ毎に、独立して印刷サービス３３０と接続されている。従って、印刷サービス３３０が特定のユーザー向けの印刷準備ができると、印刷サービス用プロキシー３２５はすぐにその印刷データを受信できる。また、この後説明する中継仮想プリンター３２３の印刷系機能により、各プリンターに対してプッシュプリントができる。そして、印刷サービス用プロキシー３２５と、中継仮想プリンター３２３とは独立している。即ち、印刷サービスとその印刷サービス用のプロキシーは１ユーザーに対し１セッションを確立し、画像形成装置と中継仮想プリンターは１つの画像形成装置に対し１セッションを確立している。更に、装置情報から中継仮想プリンターを特定し、プロキシーから中継仮想プリンターへ印刷ジョブを転送する構成のため、無駄な通信を省きつつプッシュプリントを高速に行うことが可能になる。よって、前述した課題は解決する。更に、印刷中継サーバーシステムのユーザー毎に印刷サービスから印刷ジョブを取得する構成なので、ユーザー毎に印刷ジョブの管理を行うことが可能になる。例えば、印刷サービスをから受信した印刷ジョブの数をユーザー毎に管理できるようになる。印刷サービスを利用した回数に応じて、印刷サービスの利用を制限するような構成も可能となる。
【０１０２】
また、プロキシーと中継仮想プリンターとを独立させたことによるメリットについてより詳細に説明する。図２０（ａ）は、プロキシーと中継仮想プリンターとを非独立にした場合の構成を示す図である。印刷サービスに登録したプリンターと中継仮想プリンターを紐づける必要がある。印刷サービス毎、かつユーザー毎に中継仮想プリンターを用意すると、ユーザー毎の印刷ジョブの管理を行うことができる。しかしながら、画像形成装置は、各ユーザーの印刷ジョブの確認をするため、複数の中継仮想プリンターにアクセスすることになる。この構成にした場合、印刷中継サーバーに対する通信トラフィックが発生するだけでなく、印刷ジョブの出力が遅くなってしまう。一方、本願発明の構成である図２０（ｂ）の構成であれば、上述した効果による印刷処理が可能となる。
【０１０３】
次に、印刷中継サーバー１２０の中継仮想プリンター３２３の印刷系に分類される機能について説明する。中継仮想プリンター３２３は、印刷サービス用プロキシー３２５から印刷データを受け取り、同時に受け取る印刷設定を元に印刷ジョブを生成し、プリンター１１０に送信することで、印刷を遂行する。
【０１０４】
以下、図６を用いて中継仮想プリンター３２３の機能を説明する
印刷通知受信部６０３は、印刷通知送信部９２３から通知情報Ｂを受け取る。印刷通知受信部６０３は、通知情報Ｂに記載されている印刷データの格納場所、および印刷設定の格納場所を確認し、夫々の情報を印刷データ取得部６０１、印刷設定取得部６０２に通知する。
【０１０５】
印刷データ取得部６０１は、通知された印刷データの格納場所を基に、印刷データ格納部９２１から印刷データを取得する。印刷設定取得部６０２は、通知された印刷設定の格納場所を基に、印刷設定格納部９２２から印刷設定を取得する。
【０１０６】
印刷ジョブ生成部６０４は、印刷データ取得部６０１から印刷データを、また印刷設定取得部６０２から印刷設定を夫々受け取り、プリンターの能力と印刷設定に応じた印刷ジョブを生成する。ここで言うプリンターの能力とは、プリンターが解釈可能な印刷データのフォーマットや、プリンター自身が指定場所からデータをダウンロードすることが可能かどうか、という情報を含む。これは、中継仮想プリンター３２２が管理するプリンター情報の中のケーパビリティーズ１２０４に記載されている。従って、プリンター１１０が、印刷データ取得部６０１が受信した印刷データを解釈可能であれば、それを変換せずに印刷ジョブとしてもよい。なお、印刷サービス３３０から取得した印刷データ、および印刷設定を含む印刷ジョブを一度に取得する構成であっても良い。また、印刷ジョブ生成部６０４は、取得した印刷データ、および印刷設定、即ち印刷ジョブを基に新たな印刷ジョブを生成する構成であっても良い。新たな印刷ジョブには、例えば、地紋画像が付加された画像データや、帳票印刷用の画像データが含まれることもある。
【０１０７】
印刷ジョブ生成部６０４は、生成した印刷ジョブを印刷ジョブ格納部６１１にて格納し、印刷通知送信部６１２に格納場所を通知する。印刷通知送信部６１２は、格納場所を含む通知情報Ｃを生成し、プリンター１１０に通知情報Ｃを送信する。通信モジュールＣｘ６１０に対応する通信モジュールＣｙ４１０は、プリンター１１０に実装されている。
【０１０８】
上述の如く、プリンター１１０は、印刷中継サーバー１２０を介して印刷サーバー群１３０から印刷データを取得する構成である。これにより、プリンターが、印刷サービスベンダーに適合した通信モジュールを持っていない場合、または印刷サービスベンダーの通信方式が変更された場合、または新しい印刷サービスベンダーに対応する場合でも、デバイスベンダーはプリンター１１０の通信モジュールを変更する必要はない。デバイスベンダーは、印刷中継システムの印刷サービス用プロキシー３２５を変更することで、様々なユーザー環境に配置されたプリンター１１０と印刷サーバー群１３０との間で通信させることが可能になる。印刷サービス用プロキシー３２５の変更方法として、印刷サービス用プロキシー３２５の通信モジュールＡｙを変更する方法の他、現存する印刷サービス用プロキシー３２５を破棄し、新たに印刷サービス用プロキシー３２５を生成する方法が考えられる。
【０１０９】
また、プリンターでは、印刷サービス３３０が生成する印刷データがプリンターで解釈可能なフォーマットでない場合は印刷できないという課題があった。しかし、上述のように、中継仮想プリンター３２３において、プリンター１１０が解釈可能なフォーマットに変換するため、上記課題は解決する。
【０１１０】
次に、プリンター１１０の印刷系に分類される機能について説明する。
プリンター１１０の印刷制御部１１０は、中継仮想プリンター３２３から印刷データを受信し、印刷を実行する。
【０１１１】
以下に、図４を用いて印刷制御部１１０の機能を説明する。
【０１１２】
印刷制御部３１０は、通信モジュールＣｙ４１０を有している。通信モジュールＣｙ４１０の印刷通知受信部４１２は、印刷通知送信部６１２から送信されてくる通知情報Ｃを受信する。この通信モジュールＣｙは、通信モジュールＣｘと対を成すモジュールであるため、通知情報Ｃを解釈することが可能である。なお、中継仮想プリンター３２３とプリンター１１０がデータ通信を行うためにデバイスベンダーが規定した仕様は、第３の仕様に相当し、デバイスベンダーがハンドリング可能な仕様である。通信モジュールＣｘ、および通信モジュールＣｙのインターフェースは、第３の仕様に準じて作成されるインターフェースである。そして、印刷通知送信部６１２が第３の通信手段に相当する。
【０１１３】
印刷通知受信部４１２は、通知情報Ｃに記載されている印刷ジョブの格納場所を確認し、その情報を印刷ジョブ取得部４１１に通知する。印刷ジョブ取得部４１１は、通知された印刷ジョブの格納場所を基に、印刷ジョブ格納部６１１から印刷ジョブを取得する。印刷通知受信部４１２は、印刷ジョブ取得部４１１が取得した印刷ジョブを印刷実行部４１３に送信し、印刷の実行を指示する。指示を受けた印刷実行部４１３は、受け取った印刷ジョブを出力するよう印刷ユニットに指示を出す。
【０１１４】
以上が、印刷サーバー群１３０が生成した印刷データを、印刷中継サーバー１２０を経由して、印刷データをプリンター１１０に印刷させる印刷系の説明である。
【０１１５】
ここからは、事前登録系に分類される処理、本登録系に分類される処理、印刷系に分類される処理の夫々について、夫々図１６、図１７、図１８のシーケンス図を用いて説明する。
【０１１６】
一つ目として、プリンター１１０を印刷中継サーバー１２０に登録し、印刷中継サーバー１２０内に中継仮想プリンター３２３を実現する処理について、図１６を用いて説明する。
【０１１７】
Ｓ１６０１において、ユーザーはプリンター１１０のＵＩから中継仮想プリンター管理サービス３２２への登録操作を行う。Ｓ１６０２において、プリンター１１０の印刷制御部３１０は、中継仮想プリンター管理サービス３２２にプリンターの登録を要求する。Ｓ１６０３において、中継仮想プリンター管理サービス３２２は、登録情報を基に中継仮想プリンター３２３を実現する。Ｓ１６０４において、中継仮想プリンター３２３は、作成成功の応答を中継仮想プリンター管理サービス３２２へ送信する。Ｓ１６０５において、中継仮想プリンター管理サービス３２２は、作成した中継仮想プリンター３２３を識別するためのＶＰＩＤを発行する。Ｓ１６０６において、中継仮想プリンター管理サービス３２２は、ＶＰＩＤとそれに関連付けられた情報をプリンター情報として格納する。これが図１２（ａ）に示すテーブルに相当し、ＶＰＩＤが、ＲＰＩＤやその名称、能力等と関連づけられて管理される。Ｓ１６０７において、中継仮想プリンター管理サービス３２２は、プリンターの登録が完了した旨を印刷制御部３１０に通知する。Ｓ１６０８において、印刷制御部３１０は、印刷制御部３１０は、プリンター１１０のＵＩにプリンターの登録が完了した旨を表示するよう指示を出す。
【０１１８】
以上が一つ目の事前登録処理の説明となる。
【０１１９】
続いて、二つ目として、印刷中継サーバー１２０で管理される中継仮想プリンター３２３を、印刷サービス用プロキシー３２５を通して印刷サービス３３０に登録する処理について、図１７を用いて説明する。
【０１２０】
Ｓ１７０１において、ユーザーはＷｅｂブラウザー３４０を介して、中継仮想サーバー１２０にログインする。Ｓ１７０２において、中継仮想サーバー１２０のメイン処理管理サービス３２１は、作成したＵＩを通してユーザーの操作を受け付け、印刷サービス３３０との連携、すなわち印刷サービスへのプリンター登録の要求を受け取る。Ｓ１７０３において、メイン処理管理サービス３２１は、連携処理管理サービス３２４に対して、印刷サービス３３０へプリンターを登録するための要求とプリンター情報を送る。
【０１２１】
Ｓ１７０４において、連携処理管理サービス３２４は、  印刷サービス３３０に対してユーザー認証を行う。ここでは、ユーザーが、印刷サービス３３０が表示するログイン画面に、印刷サービスへアクセスするためのユーザーアカウント（ＩＤやパスワード）を入力する。Ｓ１７０５において、印刷サービス３３０は、ユーザー認証が成功すると、認証成功応答と認証トークンを返送する。返送された印刷トークンは、連携処理管理サービス３２４が受け取る。本認証トークンは、以後印刷サービス３３０と通信を行うために利用可能となる。本実施例では、印刷サービス用プロキシー３２５が印刷サービス３３０と通信を行う際に用いられる。本認証トークンは印刷サービス用プロキシー３２５に渡れば良いので図示していないが、図１２（ｃ）で管理してもよい。Ｓ１７０６において、連携処理管理サービス３２４は、印刷サービス用プロキシー３２５を本ユーザーアカウント用に実現する。Ｓ１７０７において、印刷サービス用プロキシー３２５は、作成成功応答を連携処理管理サービス３２４へ送信する。Ｓ１７０８において、連携処理管理サービス３２４は、作成した印刷サービス用プロキシー３２５を識別するためのプロキシーＩＤを発行する。Ｓ１７０９において、連携処理管理サービス３２４は、印刷サービス用プロキシー３２５に対して、印刷サービス３３０への認証トークン、及び、印刷サービス３３０へプリンターを登録するための要求とプリンター情報を送る。Ｓ１７１０において、印刷サービス用プロキシー３２５は、前述した認証トークンを用いて印刷サービス３３０と接続を行い、次に印刷サービス３３０に対して、プリンターを登録するための要求とプリンター情報を送る。Ｓ１７１１において、印刷サービス３３０は、登録要求のあったプリンターをサービスプリンターとして登録し、サービスプリンターに対して個別に識別するためのＳＰＩＤを発行する。その際、印刷サービス３３０は、図１２（ｅ）のテーブルを作成する。Ｓ１７１２において、印刷サービス３３０は、印刷サービス用プロキシー３２５に対して、作成成功応答とＳＰＩＤを返信する。Ｓ１７１３において、印刷サービス用プロキシー３２５は、連携処理管理サービス３２４に対して、作成成功応答とＳＰＩＤを返信する。Ｓ１７１４において、連携処理管理サービス３２４は、ユーザーＩＤとそれに関連付けられたプロキシーＩＤなどの情報を、ユーザー情報として格納する。これが図１２（ｃ）に示すテーブルに相当する。Ｓ１７１５において、連携処理管理サービス３２４は、ＳＰＩＤとそれに関連付けられたＶＰＩＤなどの情報を、プリンター情報として格納する。これが図１２（ｄ）に示すテーブルに相当する。Ｓ１７１６において、連携処理管理サービス３２４は、プリンターの登録が完了した旨をメイン処理管理サービス３２１に通知する。Ｓ１７１７において、メイン処理管理サービス３２１は、プリンターの登録が完了した旨をＷｅｂブラウザー３４０に表示する。
【０１２２】
以上が、二つ目の本登録処理の説明となる。
【０１２３】
以上示した通り、ユーザーアカウント毎に、また印刷サービス毎に印刷サービス用プロキシー３２５を生成し、それを通してユーザーが利用可能なプリンターを登録することが可能となる
最後に、三つ目として、印刷サーバー群１３０が生成した印刷データを、印刷中継サーバー１２０を経由して、印刷データをプリンター１１０に印刷させる処理について、図１８を用いて説明する。
【０１２４】
Ｓ１８０１において、Ｗｅｂブラウザー３４０は、ユーザーが編集を行いたいコンテンツの表示を、Ｗｅｂアプリケーション３５０に要求する。Ｓ１８０２において、Ｗｅｂアプリケーション３５０は、要求されたコンテンツに対応するコンテンツの画面をＷｅｂブラウザー３４０に送信する。Ｓ１８０３において、Ｗｅｂブラウザー３４０は、ユーザーがコンテンツの画面を介して印刷を指示したことに応じて、印刷サービス３３０に登録されているサービスプリンターの一覧画面を要求する。Ｓ１８０４において、印刷サービス３３０は、対応するサービスプリンターの一覧画面を、Ｗｅｂブラウザー３４０に送信する。サービスプリンターの一覧画面は、図１２（ｅ）のテーブルを参照し、該当するユーザーＩＤに紐付いたプリンターネーム一覧を取得することで作成可能である。Ｓ１８０５において、Ｗｅｂブラウザー３４０は、ユーザーが一覧画面からサービスプリンターを選択したことに応じて、選択されたサービスプリンターに対応する印刷設定画面を要求する。Ｓ１８０６において、印刷サービス３３０は、印刷設定画面をＷｅｂブラウザー３４０に送信する。Ｓ１８０７において、Ｗｅｂブラウザー３４０は、ユーザーが印刷設定画面を介して入力した印刷設定を印刷サービス３３０に送信する。
【０１２５】
Ｓ１８１１において、印刷サービス３３０は、ユーザーが印刷を指示した印刷データの識別情報をＷｅｂアプリケーション３５０から取得する。また、印刷サービス３３０は、印刷データの取得、または生成を行い、ダウンロード可能な状態を整える。Ｓ１８１２において、印刷サービス３３０は、図１２（ｅ）を参照し、指定されたプリンターネームと関連付けされているＳＰＩＤと印刷サービス用プロキシー３２５を特定する。即ち、印刷サービス３３０は、取得された装置情報と一致する図１２（ｅ）に示すように保存された装置情報から中継仮想プリンターを特定する。Ｓ１８１３において、印刷サービス３３０は、特定した印刷サービス用プロキシー３２５に対して、ＳＰＩＤで指定されたサービスプリンター向けに印刷データが生成されたことを通知する。Ｓ１８１４において、印刷サービス用プロキシー３２５は、印刷サービス３３０に印刷データの取得を要求する。Ｓ１８１５において、印刷サービス用プロキシー３２５は、印刷サービス３３０から印刷データを取得する。Ｓ１８１６において、印刷サービス用プロキシー３２５は、印刷サービス３３０に印刷設定の取得を要求する。Ｓ１８１７において、印刷サービス用プロキシー３２５は、印刷サービス３３０から印刷設定を取得する。
【０１２６】
Ｓ１８２１において、印刷サービス用プロキシー３２５は、中継仮想プリンター管理サービス３２２に、ＳＰＩＤに対応するＶＰＩＤ値を問い合わせる。Ｓ１８２２において、中継仮想プリンター管理サービス３２２は、図１２（ｄ）を参照し、指定されたＳＰＩＤに対応するＶＰＩＤを取得し、そのＶＰＩＤ値を印刷サービス用プロキシー３２５に返信する。Ｓ１８２３において、印刷サービス用プロキシー３２５は、取得したＶＰＩＤで識別される中継仮想プリンター３２３のプロセスを特定する。Ｓ１８２４において、印刷サービス用プロキシー３２５は、中継仮想プリンター３２３に印刷データが生成されたことを通知する。Ｓ１８２５において、中継仮想プリンター３２３は、印刷サービス用プロキシー３２５に印刷データの取得を要求する。Ｓ１８２６において、中継仮想プリンター３２３は、印刷サービス用プロキシー３２５から印刷データを取得する。Ｓ１８２７において、中継仮想プリンター３２３は、印刷サービス用プロキシー３２５に印刷設定の取得を要求する。Ｓ１８２８において、中継仮想プリンター３２３は、印刷サービス用プロキシー３２５から印刷設定を取得する。
【０１２７】
Ｓ１８３１において、中継仮想プリンター３２３は、取得した印刷設定に基づいて、取得した印刷データから印刷ジョブ（ＰＤＬデータやラスターイメージ）を生成する。Ｓ１８３２において、中継仮想プリンター３２３は、対応するプリンター１１０の印刷制御部３１０に印刷ジョブが生成されたことを通知する。ここで、対応するプリンター１１０は、すなわち、ＶＰＩＤで識別可能な中継仮想プリンター３２３に関連付けられているＲＰＩＤで識別可能な実際のプリンターは、図１２（ａ）のテーブルより取得可能である。なお、本実施例のように、中継仮想プリンター３２３を実現する際に、対応するプリンター１１０と接続関係を結んでおいてもよい。Ｓ１８３３において、印刷制御部３１０は、中継仮想プリンター３２３に印刷ジョブの取得を要求する。Ｓ１８３４において、印刷制御部３１０は、中継仮想プリンター３２３から印刷ジョブを取得する。Ｓ１８３５において、印刷制御部３１０は、取得した印刷ジョブを出力するよう印刷ユニットに指示を出す。
【０１２８】
Ｓ１８４０において、印刷制御部３１０は、印刷実行結果のステータスを中継仮想プリンター３２３に送る。Ｓ１８４１において、中継仮想プリンター３２３は、印刷実行結果のステータスを印刷用プロキシー３２５に送る。Ｓ１８４２において、印刷用プロキシー３２５は、印刷実行結果のステータスを印刷サービス３３０に送る。
【０１２９】
以上が、三つ目の印刷処理の説明となる。
【０１３０】
以上示した通り、ブラウザーを通して行った印刷指示は、指定したＳＰＩＤを持つ印刷サービス用プロキシーに通知され、ＳＰＩＤに対応するＶＰＩＤが特定され、ＶＰＩＤに対応するＲＰＩＤが特定され、ＲＰＩＤに対応するプリンターに印刷される。また、印刷サービス用プロキシー３２５が、印刷サービス３３０ごとに、かつユーザーＩＤ毎に存在するため、いずれのユーザーのいずれの印刷サービスからの印刷も常時プッシュプリントが可能になる。
【０１３１】
次に、プリンターの追加や削除について説明する。
【０１３２】
図１７のＳ１７０３で、プリンターの追加や削除の要求があった場合を説明する。印刷サービス３３０には既にログインしているため、Ｓ１７０４からＳ１７０５はスキップする。また印刷用プロキシー３２５も既に生成されているため、Ｓ１７０６からＳ１７０８はスキップする。
【０１３３】
Ｓ１７０９において、中継仮想プリンター３２３は、印刷用プロキシー３２５に対して、追加または削除の要求とその対象プリンターの情報を送る。
Ｓ１７１０において、印刷用プロキシー３２５は、印刷サービス３３０に対して、追加または削除の要求とその対象プリンターの情報を送る。Ｓ１７１１において、印刷サービス３３０は、追加または削除の要求に応じてサービスプリンターの追加または削除を行う。
【０１３４】
なお、本実施例において、コンテンツ印刷システム１０００内で通信される情報の形式として、図１３に示すようにＸＭＬ形式で表現したが、その他の形式であってもよい。たとえば、図１４に示すようにＪＳＯＮ形式で表現されていてもよい。
【実施例２】
【０１３５】
実施例１では、中継仮想サーバー１２０上でユーザーが利用可能となっているプリンターは、すべて印刷サービス３３０に登録する例を示したが、その中から登録するものを選択できても良い。
【０１３６】
図１９（ａ）は、連携処理管理サービス３２４上に表示するＵＩの例で、登録や削除を行うプリンターの選択が可能となる。１９０１は、印刷サービス３３０に登録されているプリンター一覧が表示され、選択して印刷サービス３３０から削除することができる。１９０２は、印刷サービス３３０には登録されていないが該当ユーザーが印刷中継サービスで利用可能になっているプリンターの一覧が表示されており、選択して印刷サービス３３０に追加することができる。
【０１３７】
この追加や削除の要求は、図１７のＳ１７０９において印刷サービス用プロキシー３２５に通知され、さらにＳ１７１０によって印刷サービス３３０に反映される。
【０１３８】
以上の処理により、中継仮想サーバーで利用可能になっているプリンターの中から、各印刷サービスに登録するプリンターを選択することが可能となる。
【実施例３】
【０１３９】
実施例１では、図１１（ｂ）において、連携する印刷サービスを決めて連携ボタン１１１５を押下することで連携を実現した。しかし、複数の印刷サービスにまとめてプリンターを登録しても良い。
【０１４０】
図１９（ｂ）は、中継仮想プリンター管理サービス３２２上に表示するＵＩの例で、複数の印刷サービスに対してプリンターの一括登録が可能となる。１９１１は、連携可能な印刷サービスの一覧が表示されており、選択することができる。１９１２の登録ボタンが押下されると、１９１１で選択された印刷サービスに対し、ユーザーが利用可能なプリンターを一括して登録することができる。
【０１４１】
また同手続きは、印刷中継サーバー上でユーザーが利用可能なプリンターを選択する際に行ってもよい。図１９（ｃ）は、図１１（ｄ）の代わりに表示するプリンターの追加を行うＵＩの例である。１９２１は印刷サービス一覧、１９２２は選択することでユーザーが利用可能になるプリンター一覧、１９２３は新規プリンター登録の機能を示す。ここで選択したプリンターは単にユーザーが利用可能になるだけでなく、１９２１で選択した印刷サービスにも登録される。
【０１４２】
この一括登録は、図１７のＳ１７０２において操作を受け付ける。また、Ｓ１７０３において、複数の異なる連携処理管理サービス３２４に対して順次登録要求を行うことで登録を実現する。
【０１４３】
以上の処理により、一括して登録が可能となることで、ユーザーは利用したい印刷サービスにそれぞれ手続きを行う手間を省くことができる。
【実施例４】
【０１４４】
実施例３では、ユーザーが複数の印刷サービスを選択した場合、各印刷サービス３３０に対して順次登録処理が行われる。しかし、各印刷サービスの利用にはユーザー認証が必要な場合があるので、断続的にログイン要求が出るのはユーザーにとって面倒である。本実施例では、複数の印刷サービスに対してプリンターを一括登録する際に、処理の順番を変える例を示す。
【０１４５】
図１７を用いて説明する。メイン処理管理サービスは、Ｓ１７０３にてある連携処理管理サービス３２４に要求を行うと、連携処理管理サービス３２４はまずユーザー認証Ｓ１７０４を行い、認証トークンを保持し、いったん処理をメイン処理管理サービス３２１に返す。同様にメイン処理管理サービス３２１は次の連携処理管理サービス３２４に要求を行い、ユーザー認証のみ行う。これらをすべての連携処理管理サービス３２４に対して行った後、メイン処理管理サービス３２１は再度夫々の連携処理管理サービス３２４に要求を行い、印刷サービス３３０への登録を行う。
【０１４６】
以上の処理により、ユーザーは作業が必要な処理を最初にまとめて行うことができるため、作業の待ち時間を減らすことができる。
【実施例５】
【０１４７】
実施３では、図１９（ｃ）において、新規プリンターの追加でプリンター情報１９２３を入力することができた。しかし、印刷サービス３３０に登録する場合には、印刷サービスに依存して更なる情報が必要になる場合もある。そこで、選択した印刷サービスに依存して、必要となる情報をあらかじめ入力可能とする。
【０１４８】
図１９（ｃ）の１９２３では、印刷サービス−Ａでは項目１が必要であり、他の印刷サービスでは不要であるとする。この場合、１９２１の選択で、印刷サービス−Ａがチェックされていれば項目１を入力可能とし、印刷サービス−Ａがチェックされていなければ項目１を入力不可とする。
【０１４９】
以上の処理により、ユーザーはプリンター登録の際に、印刷サービスに登録するために必要な情報も含めて過不足のない入力が可能となる。
【実施例６】
【０１５０】
実施例１では、中継仮想プリンター３２３と、印刷サービス用プロキシー３２５を異なるプロセスとして説明してきたが、単一のプロセスとして実装しても良い。その場合、印刷サービスごとに、ユーザーＩＤごとのプロセスを作成する。これにより、いずれの印刷サービスのいずれのユーザーＩＤに対しても、プッシュプリントが可能となる。
【実施例７】
【０１５１】
実施例１では、第３の仕様をデバイスベンダーが規定した仕様としたが、デバイスベンダーに依存しない汎用的な仕様を利用してもよい。汎用的な仕様を利用することにより、何れのデバイスベンダーのプリンターでも接続可能なシステムを構築することが可能となる。
【０１５２】
本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。該プログラムコードを実行することにより、情報処理装置はプログラムコードの記述通りに制御される。
【符号の説明】
【０１５３】
３１０  印刷制御部
３２１  メイン処理管理サービス
３２２  中継仮想プリンター管理サービス
３２３  中継仮想プリンター
３２４  連携処理管理サービス
３２５  印刷サービス用プロキシー
３３０  印刷サービス
４１０  通信モジュールＣｙ
６１０  通信モジュールＣｘ
９１０  通信モジュールＡｙ
１０１０  通信モジュールＡｘ
【図１】
0005755052.tif 000002
【図２】
0005755052.tif 000003
【図３】
0005755052.tif 000004
【図４】
0005755052.tif 000005
【図５】
0005755052.tif 000006
【図６】
0005755052.tif 000007
【図７】
0005755052.tif 000008
【図８】
0005755052.tif 000009
【図９】
0005755052.tif 000010
【図１０】
0005755052.tif 000011
【図１１】
0005755052.tif 000012
【図１２】
0005755052.tif 000013
【図１３】
0005755052.tif 000014
【図１４】
0005755052.tif 000015
【図１５】
0005755052.tif 000016
【図１６】
0005755052.tif 000017
【図１７】
0005755052.tif 000018
【図１８】
0005755052.tif 000019
【図１９】
0005755052.tif 000020
【図２０】
0005755052.tif 000021