(57)【要約】【課題】  プリンタドライバを利用し印刷サービスにアクセスし、コンテンツデータを印刷する場合の認証の問題を解決する。【解決手段】  印刷サービスは、印刷サービスを利用するためのユーザの権限がプリンタドライバに移譲されたことを示す権限情報と、コンテンツデータと、印刷設定とを送信可能なプリンタドライバをクライアントに配布する。【選択図】  図１２
2014106883.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツデータおよび印刷設定から印刷ジョブを生成し、生成された印刷ジョブをネットワークを介してプリンタへ送信する印刷サービスを備えた印刷サーバーシステムと通信可能な情報処理装置であって、
印刷設定画面を提供する他、前記情報処理装置のメモリに保存されたコンテンツデータおよび前記印刷設定画面で入力された印刷設定をネットワークを介して前記印刷サービスへ送信するプリンタドライバを起動する起動手段と、
前記プリンタドライバの起動後、ユーザが前記プリンタドライバを利用して印刷指示を行ったことに応じて、前記印刷サービスを利用するための前記ユーザの権限が前記プリンタドライバに移譲されたことを示す権限情報と、前記コンテンツデータおよび前記印刷設定とをネットワークを介して送信する送信手段と、を有する情報処理装置。
【請求項２】
前記印刷サービスを利用するための前記ユーザの権限を前記プリンタドライバへ移譲することを認可するか否かを確認するための認可画面を、前記印刷サーバーシステムと連携する認証サーバーシステムから受信し、受信された前記認可画面を表示する表示手段と、
表示された前記認可画面においてユーザにより認可された旨を前記認証サーバーシステムへ送信することにより発行された前記権限情報を保存する保存手段と、を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記表示手段は、前記プリンタドライバのインストール時、または初回起動時、または操作時の何れかのタイミングで前記認可画面を表示することを特徴とすると請求項２に記載の情報処理装置。
【請求項４】
前記表示手段は、前記プリンタドライバが前記印刷サービスから配布されるよりも前のタイミングで前記認可画面を表示し、
前記保存手段は、前記認可画面においてユーザにより認可された旨を前記認証サーバーシステムへ送信することにより発行された前記権限情報を含む前記プリンタドライバのインストールセットをインストールすることによって、前記権限情報を保存することを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記プリンタドライバのインストールセットには、前記認証サーバーシステムが提供する認証サービスを受ける際に必要となるクライアント証明書が含まれており、前記権限情報の発行の際には前記認証サーバーシステムから認証情報から要求されないことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
クライアントと通信可能な印刷サーバーシステムであって、
コンテンツデータおよび印刷設定から印刷ジョブを生成し、生成された印刷ジョブをネットワークを介してプリンタへ送信する印刷サービスと、
印刷設定画面を提供する他、前記クライアントのメモリに保存されたコンテンツデータおよび前記印刷設定画面で入力された印刷設定をネットワークを介して前記印刷サービスへ送信するプリンタドライバを配布する配布手段と、
前記クライアントに配布されたプリンタドライバから送信される、前記印刷サービスを利用するためのユーザの権限が前記プリンタドライバに移譲されたことを示す権限情報と、前記コンテンツデータおよび前記印刷設定とをネットワークを介して受信する受信手段と、を有する印刷サーバーシステム。
【請求項７】
前記権限情報を発行可能な認証サービスを提供する認証サーバーシステムと通信可能な前記印刷サーバーシステムであって、
前記印刷サービスは、受信された前記権限情報を前記認証サーバーシステムへ送信し、前記認証サービスと連携することで前記権限情報が正規な情報であることが確認されたことに応じて、コンテンツデータおよび印刷設定から印刷ジョブを生成することを特徴とする請求項６に記載の印刷サーバーシステム。
【請求項８】
前記配布手段は、前記プリンタドライバを前記クライアントに配布するよりも前に前記認証サーバーシステムにより発行された前記権限情報を取得し、取得された権限情報を含む前記プリンタドライバのインストールセットを生成し、前記クライアントから前記プリンタドライバの配布の要求を受けたことに応じて、生成された前記プリンタドライバのインストールセットを配布することを特徴とする請求項７に記載の印刷サーバーシステム。
【請求項９】
前記配布手段は、プリンタ選択画面で選択されたプリンタに対応するプリンタドライバのインストールセットを生成し、前記クライアントから前記プリンタドライバの要求を受けたことに応じて生成された前記プリンタドライバのインストールセットを配布することを特徴とする請求項６乃至８の何れか１項に記載の印刷サーバーシステム。
【請求項１０】
前記配布手段は、前記クライアントにインストールされているＯＳに関する情報を受信し、プリンタ選択画面で選択されたプリンタに対応し、かつ前記ＯＳに対応するプリンタドライバのインストールセットを生成し、前記クライアントから前記プリンタドライバの要求を受けたことに応じて生成された前記プリンタドライバのインストールセットを配布することを特徴とする請求項６乃至９の何れか１項に記載の印刷サーバーシステム。
【請求項１１】
クライアントと通信可能な印刷サーバーシステムを制御する制御方法であって、
印刷サービスは、コンテンツデータおよび印刷設定から印刷ジョブを生成し、生成された印刷ジョブをネットワークを介してプリンタへ送信し、
配布手段は、印刷設定画面を提供する他、前記クライアントのメモリに保存されたコンテンツデータおよび前記印刷設定画面で入力された印刷設定をネットワークを介して前記印刷サービスへ送信するプリンタドライバを配布し、
受信手段は、前記クライアントに配布されたプリンタドライバから送信される、前記印刷サービスを利用するためのユーザの権限が前記プリンタドライバに移譲されたことを示す権限情報と、前記コンテンツデータおよび前記印刷設定とをネットワークを介して受信することを特徴とする制御方法。
【請求項１２】
請求項１１に記載の制御方法を情報処理装置に実行させるためのプログラム。
【請求項１３】
コンテンツデータおよび印刷設定から印刷ジョブを生成し、生成された印刷ジョブをネットワークを介してプリンタへ送信する印刷サービスを備えた印刷サーバーシステムと通信可能な情報処理装置にインストールされるプリンタドライバのプログラムであって、
印刷設定画面を表示する表示ステップと、
印刷指示を受けたことに応じて、前記印刷サービスを利用するためのユーザの権限が前記プリンタドライバに移譲されたことを示す権限情報と、前記情報処理装置のメモリに保存されたコンテンツデータと、前記印刷設定画面で入力された印刷設定とをネットワークを介して前記印刷サービスへ送信する送信ステップと、を含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データをネットワークを介してプリンタへ送信するコンテンツ印刷システムにおける情報処理装置、印刷サーバーシステム、その制御方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、クライアントからサーバに対して印刷指示を送信し、印刷指示を受信したサーバが印刷対象のコンテンツデータを印刷データに変換するコンテンツデータ印刷システムがある。近年、クラウドコンピューティングの概念が注目されているが、これも前述のシステム同様、サーバがクライアントにサービスを提供する形態の一つと捉えることができる。クラウドコンピューティングは、多くのコンピューティング・リソースを用いてデータ変換やデータ処理を分散実行し、多くのクライアントからの要求を同時に処理することが主な特徴である。現在、このクラウドコンピューティングを実現するクラウドコンピューティング環境上にＷｅｂサービスを実装し、多種多様なサービスを提供するベンダーが乱立しつつある。
【０００３】
中でも注目すべきベンダーはＧｏｏｇｌｅ（登録商標）である。Ｇｏｏｇｌｅは、大規模なデータセンターを多数設立する他、デバイスと連携させて提供するサービスを提案し、デバイスとサービス間のデータ通信の仕組みを開発する等の積極的な動きを見せている。例えば、Ｇｏｏｇｌｅはプリンタと連携して印刷サービスを提供するためのデータ通信の仕組みを開発し、Ｇｏｏｇｌｅが用意したクラウドコンピューティング環境とデータ通信をプリンタが行うためのインターフェースを公開した。このインターフェースをプリンタに実装することで、プリンタとサーバがインターネットを介して接続されていたとしても、クライアントからプリンタを指定し印刷させることが可能になる。これをクラウド印刷システムと称する。
【０００４】
クラウド印刷システムでは、プリンタはサーバ側で一元管理される。クライアントユーザは、Ｗｅｂブラウザで起動したＷｅｂアプリケーションから、印刷サービスが管理するプリンタを選択し、ジョブを登録することで印刷を行うことができる。
【０００５】
一方、同様にサーバ側でプリンタを一元管理するイントラネット環境では、サーバ内でプリンタドライバを管理し、クライアントにインストールする機構が多く見られる。たとえば、ＭｉｃｒｏｓｏｆｔのＷｉｎｄｏｗｓ（登録商標）が備えるポイント＆プリント機構や、特許文献１に示されるインストールの機構が好例である。ポイント＆プリントは、サーバにインストールしたプリンタドライバを共有設定し、クライアントから指示することでそのクローンコピーがクライアント側にインストールされる。サーバ側のプリンタドライバとクライアント側のプリンタドライバは通信可能であり、サーバ側でセットアップされたデバイス能力情報やポート情報などは、クライアント側でもそのまま利用できる。また、特許文献１では、プリンタサーバ側にインストールされているプリンタドライバを束ねたグループプリンタドライバ（仮想プリンタドライバ）を生成し、共有している。このグループプリンタドライバはプリンタドライバの構成を成しており、サーバ上のグループプリンタドライバをクライアントから選択することで、クライアントにインストールされる。クライアントのアプリケーションからの印刷では、本グループプリンタドライバを選択することで、サーバ上で管理されているプリンタから出力することができる。ここでは、グループプリンタドライバが生成する印刷データが、グループプリンタドライバの共有元のサーバに送信され、サーバ上で管理されているプリンタドライバを通して実際のプリンタに出力されている。
【０００６】
いずれの場合も、クライアントのユーザは、プリンタドライバの準備やインストールなどの煩わしい作業を自ら行う必要はなく、利便性の高いセットアップ機構が存在する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−２４０５８９
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載された印刷システムにおけるプリンタサーバはイントラネット内に配置されたサーバであり、プリンタドライバからプリンタサーバにアクセスし印刷を行う際の認証を考慮する必要が無かった。しかし、クライアントにインストールされたアプリケーションで作成したコンテンツデータを、プリンタドライバを利用し印刷サービスにアクセスし印刷する際は、その認証の問題を考慮する必要がある。だが、その認証の問題を考慮したプリンタドライバについて従来は考えられていなかった。
そこで、本願発明では、プリンタドライバを利用し印刷サービスにアクセスし印刷する場合の認証の問題を解決することを１つの目的とする。
【課題を解決するための手段】
【０００９】
本発明の一実施形態に係る情報処理装置は、コンテンツデータおよび印刷設定から印刷ジョブを生成し、生成された印刷ジョブをネットワークを介してプリンタへ送信する印刷サービスを備えた印刷サーバーシステムと通信可能な情報処理装置であって、印刷設定画面を提供する他、前記情報処理装置のメモリに保存されたコンテンツデータおよび前記印刷設定画面で入力された印刷設定をネットワークを介して前記印刷サービスへ送信するプリンタドライバを起動する起動手段と、前記プリンタドライバの起動後、ユーザが前記プリンタドライバを利用して印刷指示を行ったことに応じて、前記印刷サービスを利用するための前記ユーザの権限が前記プリンタドライバに移譲されたことを示す権限情報と、前記コンテンツデータおよび前記印刷設定とをネットワークを介して送信することを特徴とする。
【発明の効果】
【００１０】
本発明により、プリンタドライバを利用し印刷サービスにアクセスし印刷する場合の認証の問題を解決することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】コンテンツデータ印刷システム１０００の構成を示す図。
【図２】コンテンツデータ印刷システム１０００を構成する各装置、および各サーバ群のハードウェア構成図
【図３】コンテンツデータ印刷システム１０００を構成する各装置、および各サーバ群のソフトウェア構成図
【図４】ＵＩを示す図  （ａ）プリンタ１２０が表示する、印刷サービスへのプリンタ登録画面  （ｂ）印刷サービス３４０が表示する、印刷設定画面  （ｃ）Ｗｅｂアプリケーション３６０や印刷サービス３４０が表示する、ログイン画面  （ｄ）印刷サービス３４０が表示する、プリンタ一覧画面  （ｅ）デスクトップアプリケーション４００が表示する、印刷設定画面  （ｆ）印刷サービス３４０が表示する、アクセス許可画面
【図５】ＸＭＬで記載された通知情報  （ａ）ケーパビリティーズ  （ｂ）チケット初期値  （ｃ）チケット  （ｄ）プリンタ登録要求  （ｅ）プリンタ登録応答  （ｆ）ジョブ準備完了の通知（通知情報Ａ）  （ｇ）ジョブ情報の要求  （ｈ）ジョブ情報の応答（通知情報Ｂ）
【図６】管理テーブル  （ａ）プリンタ１２０が管理する、プリンタ情報管理テーブル  （ｂ）印刷サービス３４０が管理する、プリンタ管理テーブル  （ｃ）印刷サービス３４０が管理する、ジョブ管理テーブル
【図７】インストールセットの構成図  （ａ）実施例１のインストールセットを示した構成図  （ｂ）実施例１のドライバセットを示した構成図  （ｃ）（ｄ）実施例３のドライバセットを示した構成図
【図８】実施例１の、プリンタ１２０を印刷サービス３４０に登録するフローを示すシーケンス図
【図９】実施例１の、Ｗｅｂアプリケーション３６０から印刷サービス３４０へ印刷するフローを示したシーケンス図
【図１０】実施例１の、バイパスドライバをインストールするフローを示したシーケンス図
【図１１】実施例１の、デスクトップアプリケーション４００から印刷サービス３４０へ印刷するフローを示したシーケンス図
【図１２】実施例２の、バイパスドライバ３９０に権限委譲するフローを示したシーケンス図
【図１３】実施例３の、ＯＳに応じたバイパスドライバ３９０を構築するシーケンス図
【発明を実施するための形態】
【００１２】
実施例を説明する前に、ここで別の側面から見た本願発明の課題について説明する。イントラネット環境のサーバが管理するプリンタへの印刷と、インターネット上の印刷サービスが管理するプリンタへの印刷では、アーキテクチャが大きく異なる。そのため、クライアントのデスクトップアプリケーションから印刷サービスを中継した印刷を行うためには、その仲介をする特別な仮想プリンタドライバが必要となる。
【００１３】
この仮想プリンタドライバは、次の２つの能力を備える必要がある。ひとつ目の能力はプリンタドライバのインターフェースであり、デスクトップアプリケーションの印刷命令を受信し、印刷サービスが受信可能なジョブを生成する必要がある。ふたつ目の能力は印刷サービスが公開したインターフェースであり、生成したジョブを印刷サービスへ登録する必要がある。これらの能力を有する仮想プリンタドライバを用いることで、デスクトップアプリケーションから、印刷サービスが管理するプリンタへ、印刷することが可能となる。
【００１４】
しかし、ここで問題が２つある。ひとつ目の問題は、印刷サービスが管理するプリンタを利用するには、そのセットアップが面倒な点である。後述するように、印刷サービスはプリンタドライバとは異なるアーキテクチャでプリンタを管理している。仮想プリンタドライバから印刷サービスのプリンタを特定するには、そのプリンタ固有のＩＤを取得しなければならない。また、印刷設定を行うためには、そのプリンタの能力を示すケーパビリティーズ情報や、印刷設定を保持するチケット情報が必要となる。これらをプリンタ１台１台取得し、設定を行うのは非常に面倒である。前述したポイント＆プリントや特許文献１では、サーバとクライアントで同タイプのＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が使われるため、利便性の高い仕組みが提供できた。しかし、印刷サービスはインターネット上の汎用的なサービスであり、Ｗｅｂブラウザさえ備えていればいかなるクライアントも接続可能なため、同様の機構を提供するのは容易ではない。
【００１５】
ふたつ目の問題は、イントラネットと印刷サービスとでは、認証システムが異なるため、印刷サービスへの接続時にユーザ認証が必要である点である。イントラネット環境では、サーバのファイルアクセスも印刷要求も同一の認証システムで処理される。すなわち、クライアントからサーバに一度ログインしておけば、あるいはサーバと同一のドメインにログインしておけば、サーバが管理するプリンタへ印刷する際に追加でユーザ認証をする必要はない。しかし、印刷サービスは、イントラネット外部の、インターネット上のサービスであるため、印刷要求時には接続のためのユーザ認証が必要となる。印刷のたびにユーザ認証が求められては、ユーザにとって不便である。本願発明の各実施例ではこれらの問題を解決するための方法について説明する。
【００１６】
次に、本発明で使用される用語について定義する。「デスクトップアプリケーション」とは、スタンドアローンアプリケーションとも呼ばれ、クライアントＰＣ上で動作するアプリケーションを指す。単にアプリケーションと呼ばれることも多いが、本発明ではＷｅｂアプリケーションと区別してこのように呼ぶ。デスクトップアプリケーションから印刷する際は、クライアントＰＣにインストールされているプリンタドライバに対してＯＳを介して印刷データを渡す。プリンタドライバは、受信した印刷データをプリンタが解釈できる印刷ジョブに変換し、プリンタに転送することで印刷を実現する。
【００１７】
「Ｗｅｂアプリケーション」とは、ウェブの機能や特徴を利用したアプリケーションを指す。一般にＷｅｂブラウザ上で使用することが多い。Ｗｅｂアプリケーションから印刷する際は、Ｗｅｂアプリケーションが生成した印刷データファイルを印刷サービスに登録し、そのデータをプリンタから取得させることで印刷を実現する。この印刷データファイルとして、例えばＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）やＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）などが使われる。なお、Ｗｅｂブラウザが、自身が表示しているコンテンツデータを印刷することで同様の出力物を得ることができるが、これはＷｅｂブラウザ、すなわちデスクトップアプリケーションからの印刷に分類される。
【００１８】
「バイパスドライバ」とは、デスクトップアプリケーションと印刷サービスを結びつけるための仮想プリンタドライバである。バイパスドライバは、プリンタドライバの構成となっており、プリンタドライバとしてクライアントＰＣにインストールされる。また、通常のプリンタドライバと同様に、デスクトップアプリケーションからの印刷命令を受け取るためのインターフェースを備え、受け取った印刷命令を印刷データに変換する機能を持つ。バイパスドライバは、通常のプリンタドライバとは異なり、変換された印刷データをプリンタ本体に送るのではなく、印刷サービスに登録する。その後、登録された印刷データは、印刷サービスの機能によって印刷が実現される。これがバイパスドライバの機能概要であるが、プリンタドライバの構成でありながら通常のプリンタドライバと異なる働きをしているため、ここでは仮想プリンタドライバと呼んでいる。また、通常のプリンタドライバと同様に印刷設定画面を表示し、ユーザから印刷設定の入力も受け付ける。
【００１９】
「ジョブ」とは、Ｗｅｂアプリケーションから印刷する際に、その印刷データとチケットをひとまとめたものである。印刷データとは、ＰＤＦやＸＰＳファイルなど、印刷サービスが解釈可能な形式のファイルを指し、コンテンツデータそのものである場合もある。チケットとは、ユーザにより行われた印刷設定を保持した情報を指し、しばしば印刷設定と同義で使われる。このジョブを印刷サービスに対して登録することで、印刷が実現される。「ジョブ情報」とは、印刷データやチケットの格納場所や属性を指す。前述したバイパスドライバも「ジョブ」を生成し、印刷サービスに登録する。
【００２０】
「印刷ジョブ」とは、ジョブ（印刷データと印刷設定）がレンダリングされ、各プリンタに適したフォーマットに変換されたものである。通常はページ記述言語（ＰＤＬ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）やイメージデータとなる。なお、プリンタによってはレンダリングする必要が無い場合も考えられるので、コンテンツデータおよび印刷設定であるチケットを含む「ジョブ」が「印刷ジョブ」となることもある。
【００２１】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【実施例１】
【００２２】
始めに、実施例１におけるコンテンツデータ印刷システム１０００の構成について説明する。図１は、コンテンツデータ印刷システム１０００の構成を示す図である。コンテンツデータ印刷システム１０００は、クライアント１８０、１台以上のプリンタ１２０（および１２１等）を含む。２つの装置はユーザ環境に配置された装置であり、ネットワーク１００を介して互いに接続されており、ネットワーク１００はインターネット１０１に接続されており、各装置はインターネット１０１を介して互いに通信可能である。なお、クライアント１８０、プリンタ１２０はインターネット１０１を介して接続されていてもよい。また、コンテンツデータ印刷システム１０００は、Ｗｅｂアプリケーションサーバー群１６０、印刷サーバ群１４０を含む。
【００２３】
２つのサーバ群は、同じベンダーから提供されたサーバ群である場合もある。その場合は、両サーバ群はネットワーク１００を介して接続されていてもよい。コンテンツデータ印刷システム１０００を構成する各装置、および各サーバ群は、インターネット１０１を介して接続可能であり、互いにデータ通信することができる。なお、各装置は１台のみであるが複数台あっても良い。また、各サーバ群は複数台で構成されているが１台であっても良い。サーバーシステムと称した場合、少なくとも１台のサーバから構成されるシステムを指しており、例えば、印刷サーバーシステムと称した場合、少なくとも１台の印刷サーバから構成されたシステムである。
【００２４】
次に、コンテンツデータ印刷システム１０００を構成する各情報処理装置、および各サーバ群のハードウェア構成について説明する。図２は、コンテンツデータ印刷システム１０００を構成する各装置、および各サーバ群のハードウェア構成を示す図である。２０１は、コンテンツデータ印刷システム１０００を構成する各装置、および各サーバ群である。２０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、各種プログラムを実行し、様々な機能を実現するユニットである。２０３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）であり、各種プログラムを記憶するメモリユニットである。２０４は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、ＣＰＵ２０２は、ＲＯＭ２０３に記憶されているプログラムをメモリユニットであるＲＡＭ２０４にロードしプログラムを実行する。
【００２５】
また、ＲＡＭ２０４は、ＣＰＵ２０２の一時的な作業記憶領域としても利用されるユメモリニットである。Ｉｎｐｕｔ／Ｏｕｔｐｕｔインターフェース２０５は、各装置、および各サーバ群に接続されているディスプレイ（不図示）にデータを送信する他、ポインティングデバイス（不図示）からデータを受信するインターフェースユニットである。ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２０６は、コンテンツデータ印刷システム１０００を構成する各装置、および各サーバ群をネットワーク１００に接続するためのユニットである。以上説明してきたユニットは、バス２０７を介してデータの送受信を行うことが可能である。また、プリンタ１２０は、印刷ユニット（不図示）を搭載しており、印刷ユニットは、バス２０７を介して各ユニットとデータを送受信することが可能である。なお、印刷ユニットは、ラスタイメージ等の画像データを記録紙のような記録媒体に印刷することが可能な画像形成ユニットである。
【００２６】
次に、コンテンツデータ印刷システム１０００を構成する各装置、および各サーバ群のソフトウェア構成について説明する。図３は、コンテンツデータ印刷システム１０００を構成する各装置、および各サーバ群のソフトウェア構成を示している。図３に示されている各ソフトウェア構成の機能を実現するプログラムは、各装置、および各サーバ群のＲＯＭ２０３に記憶されており、ＣＰＵ２０２がＲＡＭ２０４にプログラムをロードし実行することでこれらの機能は実現される。
【００２７】
以下、各情報処理装置、および各サーバーシステムによって実現される機能について説明する。機能の説明は、大きく前半と後半の２つの部分にわけて行う。まず前半では、Ｗｅｂアプリケーションから、印刷サービスに登録されたプリンタに対して印刷を行う基本印刷機能について説明する。後半は、基本印刷機能を発展させて、デスクトップアプリケーションから、印刷サービスに登録されたプリンタに対して印刷を行う、本発明特有の発展印刷機能について説明する。
【００２８】
前半で説明する基本印刷機能の特徴は、まずプリンタを印刷サービスに登録し、ユーザはＷｅｂアプリケーションからの印刷において登録済のプリンタを選択し、印刷を実行する点である。Ｗｅｂアプリケーションは、印刷サービスに対し、印刷サービスが提供するインターフェースに則してジョブを登録する。また、プリンタは、印刷サービスが提供するインターフェースに則してジョブを取得し、印刷する。それに対し、後半で説明する発展印刷機能の特徴は、バイパスドライバが、デスクトップアプリケーションからの印刷命令を受け、印刷サービスが受信可能なジョブを生成し、印刷サービスにジョブを登録することで印刷を実行する点である。バイパスドライバは、印刷サービスが表示する画面でインストール指示されることで、クライアントＰＣ上にインストールされる。ユーザは、デスクトップアプリケーションから印刷する際、通常のプリンタドライバを選択するのと同様、アプリケーションが表示する印刷ボタンが押下されたことで表示されるプリンタ選択画面においてバイパスドライバを選択すればよい。
【００２９】
これより前半部分として、基本印刷機能について説明する。基本印刷機能はさらに二つの機能に分類される。一つ目の系に分類される機能は、プリンタ１２０を印刷サービス３４０に登録する、プリンタ登録系に分類される機能である。二つ目の系に分類される機能は、印刷サーバ群１４０が生成した印刷データをプリンタ１２０に印刷させる、印刷系に分類される機能である。
【００３０】
最初に、一つ目の系であるプリンタ登録系の機能について、図３を用いて説明する。まず、プリンタ１２０の動作を説明する。プリンタ１２０は、印刷制御部３２０を有する。印刷制御部３２０は、プリンタ１２０を印刷サービス３４０上で利用可能とするために、登録要求を受け付ける。操作部３２１は、各種操作画面を表示する。ここでは、図４（ａ）に例示するＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を表示するものとする。ユーザは本ＵＩを通してプリンタ１２０を印刷サービス３４０に登録する指示を行うことができる。なお、印刷サービス３４０のＵＲＬが入力できるようになっていても良い。実施例１では、ＵＲＬは内部的に記録されている値を使うものとする。ここで印刷サービス３４０にログインするためのユーザＩＤ４１１とパスワード４１２を入力し、登録実行ボタン４１３を押下すると、操作部３２１は制御部３２２に登録操作を指示する。制御部３２２は、プリンタ情報格納部３２３から、登録に必要なプリンタの登録情報を取得する。
【００３１】
登録情報には、プリンタ１２０に割り当てられた固有の識別情報であるＲＰＩＤ（Ｒｅａｌ  Ｐｒｉｎｔｅｒ  ＩＤ）が含まれる。プリンタ１２０を含む各プリンタには、夫々固有の識別情報が割り当てられており、この識別情報により各プリンタは特定される。固有の識別情報として、たとえばＭａｃアドレスなどが利用可能であるが、これに限るものではない。また、登録情報にはプリンタ１２０のプリンタネームが含まれている。プリンタネームとは、プリンタ１２０に割り当てられた名前であり、プリンタ１２０を呼称するときに用いるものである。なお、プリンタネームは識別情報と異なり、各プリンタのプリンタネームが同一である場合もある。また、登録情報にはケーパビリティーズが含まれている。ケーパビリティーズとは、例えば、プリンタ１２０が両面印刷可能であるか否か、およびカラー印刷可能であるか否か、および出力可能ペーパサイズ等の情報を含む、プリンタの印刷機能に関する情報である。
【００３２】
ケーパビリティーズは、図５（ａ）に示すようにＸＭＬ形式で表現が可能である。この＜Ｉｔｅｍ＞が、プリンタ１２０の能力を示しており、プリンタ１２０は、両面印刷可能であり、かつカラー出力可能であり、かつＢ５サイズ、およびＡ４サイズ、およびＡ３サイズの紙を出力可能であることが示されている。また、登録情報にはチケット初期値が含まれている。図５（ｂ）に示すようにＸＭＬ形式で表現が可能であり、図５（ａ）のサブセットとなっており、各機能においていずれかの＜Ｉｔｅｍ＞が選ばれている状態となる。図５（ｂ）の例では、片面出力、カラー出力、Ａ４サイズ、が設定されていることを意味する。図６（ａ）は、プリンタ情報格納部３２３が格納している情報を示す図であり、ＲＰＩＤが６１１、プリンタネームが６１２、ケーパビリティーズが６１３、チケット初期値が６１４に相当する。ＳＰＩＤ６１５は後述する。
【００３３】
制御部３２２は、プリンタ情報格納部３２３から取得したプリンタの登録情報と、操作部３２１から取得したログイン情報を、プリンタ登録送信部３２４に渡し、プリンタ登録処理を指示する。プリンタ登録送信部３２４は、受信したログイン情報を用いて印刷サービス３４０にログインする。ログインに成功した後は、特に断らない限り、プリンタ１２０と印刷サービス３４０との間はログインユーザのアカウントでセッションが張られた状態が維持される。
【００３４】
次に、プリンタ登録送信部３２４は、受信した登録情報をもとに印刷サービス３４０に対してプリンタの登録要求を行う。図５（ｄ）は、印刷サービス３４０に対するプリンタ登録要求情報の一例であり、ＸＭＬで記載された情報の中に、プリンタネーム５４１、ＲＰＩＤ５４２、ケーパビリティーズ５４３、チケット５４４が含まれている。以上が、プリンタ１２０が有する印刷制御部３２０の説明である。
【００３５】
次に印刷サーバ群１４０の動作を説明する。印刷サーバ群１４０は、印刷サービス３４０を有する。印刷サービス３４０は、プリンタの登録要求を受け付け、アプリケーションから選択可能なサービスプリンタを作成する。プリンタ登録受付部３４１は、プリンタ登録要求とその登録情報をプリンタ登録送信部３２４から受信すると、登録情報を制御部３４２に送る。制御部３４２は、登録情報をプリンタ情報管理部３４３に送り、プリンタ登録を指示する。
【００３６】
プリンタ情報管理部３４３は、取得した登録情報を基に登録要求のあったプリンタに対応するサービスプリンタ（ＳＰ：Ｓｅｒｖｉｃｅ  Ｐｒｉｎｔｅｒ）３４４を作成し、夫々のサービスプリンタに対するユニークな識別ＩＤ（ＳＰＩＤ）を発行する。このサービスプリンタ３４４（以降、ＳＰ３４４と称する）は、要求のあったプリンタごとに、かつユーザカウントごとに、ユニークなものが生成される。したがって、同じ実プリンタであっても、異なるユーザが登録すれば異なるサービスプリンタ３４４が生成される。また、このＳＰＩＤは、印刷時に印刷サービス３４０のプリンタが選択された際に、印刷サービス３４０が対象プリンタを識別するために利用されるものとなる。換言すれば、サービスプリンタはプリンタオブジェクトであり、印刷サーバ群１４０においてプリンタ１２０をユーザに認識させる情報の集合体である。印刷サーバ群１４０はサービスプリンタの情報を利用しプリンタ情報を提示する他、プリンタ１２０と通信が可能である。なお、ＳＰ３４４は、論理的には独立したプリンタととらえることができるが、実装としては実体をもっていてもよいし、プログラム的に処理された実態を持たない存在であってもよい。
【００３７】
プリンタ情報管理部３４３は、ユーザＩＤ、ＳＰＩＤ、プリンタネーム、ケーパビリティーズ、チケットを関連付けて格納する。図６（ｂ）は、プリンタ情報管理部３４３が格納している情報を示す図であり、ＳＰＩＤが６２１、プリンタネームが６２２、ＲＰＩＤが６２３、ケーパビリティーズが６２４、チケット初期値が６２５に相当する。また、プリンタオーナー６２６には、プリンタを登録したユーザ情報が格納される。
【００３８】
プリンタ情報管理部３４３で発行されたＳＰＩＤは、制御部３４２、プリンタ登録受付部３４１を介して、プリンタ登録送信部３２４に送信される。プリンタ登録送信部３２４は、登録要求の応答として、印刷サービス３４０からＳＰＩＤを受け取る。図５（ｅ）はその一例で、ＸＭＬで記載されており、プリンタに対応するＳＰＩＤ５５１が割り当てられている。プリンタ登録送信部３２４は、受け取ったＳＰＩＤを制御部３２２に送信し、制御部３２２は同情報をプリンタ情報格納部３２３に送信する。プリンタ情報格納部３２３は、プリンタ情報に紐付けてＳＰＩＤを格納する。図６（ａ）のＳＰＩＤ６１５は、プリンタ情報に紐付けて格納された状態を示す。以上が、印刷サーバ群１４０が有する印刷サービス３４０の説明である。
【００３９】
次に一つ目の系であるプリンタ登録系の処理フローについて、図８のフロー図を用いて説明をする。まず、Ｓ８０１にて、プリンタ１２０から印刷サービス３４０へ、登録要求を発行する。ここでは、図４（ａ）の画面でユーザ指示を受けることに応じて、図５（ｄ）のプリンタ登録要求が、プリンタ登録送信部３２４からプリンタ登録受付部３４１へ送信される。次に、Ｓ８０２にて、サービスプリンタの登録、およびＳＰＩＤの発行がなされる。ここでは、プリンタ情報管理部３４３により、ＳＰ３４４が生成され、そのＳＰＩＤが発行され、発行されたＳＰＩＤはプリンタ登録情報と共に図６（ｂ）のプリンタ管理テーブルに格納される。
【００４０】
次に、Ｓ８０３にて、印刷サービス３４０からプリンタ１２０に対し、成功応答と共に発行されたＳＰＩＤが送信される。ここでは、図５（ｅ）のプリンタ登録応答が、プリンタ登録受付部３４１からプリンタ登録送信部３２４へ送信される。そして、プリンタ１２０は、受信したＳＰＩＤをプリンタ情報格納部３２３へ格納する。以上が、一つ目の系であるプリンタ登録系の処理フローについての説明である。結果、プリンタ１２０が印刷サービス３４０に登録され、その結果として印刷サービス３４０で利用可能なＳＰＩＤが発行される。
【００４１】
次に、二つ目の系である印刷系に分類される機能について、図３を用いて説明する。始めに、クライアント１８０が有する機能について説明する。クライアント１８０は、Ｗｅｂブラウザ３８０を有する。Ｗｅｂブラウザ３８０は、Ｗｅｂアプリケーションサーバー群１６０に保存されているコンテンツデータの印刷指示を、Ｗｅｂアプリケーションサーバー群１６０に送信する。また、Ｗｅｂブラウザ３８０は、Ｗｅｂアプリケーションサーバー群１６０から印刷サーバ群１４０へのアクセス命令、即ち、リダイレクトの指示を受信し、受信したリダイレクトの指示に従い印刷サーバ群１４０へアクセスする。また、Ｗｅｂブラウザ３８０は、そのＷｅｂブラウザ３８０を利用しているユーザが印刷可能なプリンタの一覧と、各プリンタに対応する印刷設定画面を、印刷サーバ群１４０から取得して表示する。図４（ｂ）は、Ｗｅｂブラウザ３８０が表示する印刷設定画面の一例である。また、Ｗｅｂブラウザ３８０は、その印刷設定画面でユーザが設定したプリンタと印刷設定値を印刷サーバ群１４０へ送信する。以上が、クライアント１８０が有するＷｅｂブラウザ３８０の説明である。
【００４２】
次に、Ｗｅｂアプリケーションサーバー群１６０が有する機能について説明する。Ｗｅｂアプリケーションサーバー群１６０は、Ｗｅｂアプリケーション３６０を有する。Ｗｅｂアプリケーション３６０は、文書作成サービスを提供する。ユーザは、例えば、会社の会議で資料を配布したい場合に、その資料を作成するため文書作成サービスを利用する。クライアント１８０がＷｅｂアプリケーション３６０を利用する場合は、クライアント１８０にそのアプリケーションをインストールする必要はなく、Ｗｅｂブラウザ３８０を有していれば良い。Ｗｅｂアプリケーション３６０は、その資料を作成するための画面情報を、Ｗｅｂブラウザ３８０に送信する。図４（ｃ）はユーザ認証画面の一例である。ユーザＩＤ４３１、パスワード４３２を入力し、ログインボタン４３３を押下すると認証処理が始まる。Ｗｅｂアプリケーション３６０は、Ｗｅｂブラウザ３８０を介してユーザが入力したユーザＩＤ、およびパスワードを含むユーザ情報を基に認証を行い、認証が成功したことに応じて資料を作成するための画面情報を送る。その画面情報を受信したＷｅｂブラウザ３８０は、その画面情報を基に文書を作成するための作成画面を表示し、ユーザはその作成画面を用いて会議で配布する資料を作成する。Ｗｅｂアプリケーション３６０は、ユーザがその作成画面を用いて作成した資料の情報を受信し、受信した情報を基にコンテンツデータを作成し、Ｗｅｂアプリケーションサーバー群１６０の記憶装置に作成したコンテンツデータを記憶させる。なお、Ｗｅｂアプリケーション３６０は、文書作成サービスに限らずメールサービス、スケジュールサービスも提供している。
【００４３】
文書作成サービスを利用し作成したコンテンツデータを印刷したいユーザは、その作成画面に表示されている印刷ボタンを押す（不図示）。Ｗｅｂアプリケーション３６０は、その印刷ボタンが押されたという情報を受信し、印刷サーバ群１４０へのアクセス命令、即ち、リダイレクトの指示をＷｅｂブラウザ３８０へ送信する。なお、リダイレクト指示には、上述したＷｅｂブラウザ３８０を利用しているユーザに対応する一覧リストを取得するための要求、およびユーザが印刷を指示したコンテンツデータを識別するためのコンテンツデータ識別情報、およびユーザ情報が含まれている。また、Ｗｅｂアプリケーション３６０は、印刷サーバ群１４０からコンテンツデータの取得要求があった場合に、その取得要求と共に送られたコンテンツデータを識別するためのコンテンツデータ識別情報を基に、対象のコンテンツデータを印刷サーバ群１４０へ送信する。なお、Ｗｅｂアプリケーション３６０はＷｅｂブラウザ３８０を介さず、直接印刷サーバ群１４０に問い合わせてユーザに対応する一覧リストを取得するための要求等を送信する構成であっても良い。以上が、Ｗｅｂアプリケーションサーバー群１６０が有するＷｅｂアプリケーション３６０の説明である。なお、コンテンツデータは文書データに限らず、画像データ、帳票データのようなものであっても良い。
【００４４】
次に、印刷サービス３４０の機能について説明する。印刷サービス３４０は、Ｗｅｂアプリケーションから印刷データを取得して格納し、またプリンタからのジョブ取得要求に応じて印刷ジョブをネットワークを介してプリンタへ送信する。印刷サービス３４０は、プリンタ情報提示部３４６を有する。プリンタ情報提示部３４６は、Ｗｅｂブラウザ３８０からのプリンタ一覧リスト取得要求を受けたことに応じて、プリンタ一覧リストをＷｅｂブラウザ３８０に送信する。ここで、プリンタ情報提示部３４６は、ユーザ情報を基にプリンタ情報管理部３４３が格納している図６（ｂ）のプリンタ管理テーブルから、ＳＰＩＤ、プリンタネームを特定する。そして、プリンタ情報提示部３４６は、ＳＰＩＤ、プリンタネームを基に、そのユーザが利用可能なプリンタの一覧リストを生成する。
【００４５】
また、プリンタ情報提示部３４６は、プリンタ一覧リストからユーザが選択したプリンタのＳＰＩＤを受信する。プリンタ情報提示部３４６は、受信したＳＰＩＤを基にプリンタ情報管理部３４３が格納しているケーパビリティーズを特定し、印刷設定画面を生成し、生成した印刷設定画面をＷｅｂブラウザ３８０へ送信する。また、受信したＳＰＩＤを基にプリンタ情報管理部３４３が格納しているチケット初期値を特定し、印刷設定の初期値とする。プリンタ情報管理部３４３は、図５（ａ）に示すケーパビリティーズの情報から印刷設定画面を生成する。図４（ｂ）に示すように、各機能４２１は、ケーパビリティーズに記載された印刷設定のみが表示された印刷設定画面となる。
【００４６】
印刷指示受信部３４７は、コンテンツデータと、印刷設定画面で設定されたチケット、およびＳＰＩＤをＷｅｂブラウザ３８０から受信する。チケットやコンテンツデータは実体ではなくロケーション（ＵＲＬなど）でもよい。その場合は、必要に応じてロケーションからファイルを取得する。Ｗｅｂブラウザ３８０がＷｅｂアプリケーション３６０のリダイレクトの指示に基づいてアクセスしてきた際は、ユーザが印刷を指示したコンテンツデータを識別するためのコンテンツデータ識別情報を受信する。印刷指示受信部３４７は、コンテンツデータ識別情報を受信した際、受信したコンテンツデータ識別情報を基にＷｅｂアプリケーション３６０から印刷対象となるコンテンツデータを取得する。受信、または取得したコンテンツデータ、チケット、ＳＰＩＤは、ユーザ情報と紐付けてジョブ管理部３４８に格納される。ここで、チケットは、図５（ｃ）のようにＸＭＬ形式で記載されている。図５（ｃ）によれば、ユーザは両面設定、およびモノクロ設定、および用紙サイズＡ４を設定したことが分かる。なお、ジョブ管理部３４８は、必要に応じて取得したコンテンツデータを印刷データに変換する場合もある。また、ジョブ管理部３４８は、取得したＳＰＩＤに対応するＳＰ３４４に指示し、取得したジョブをスプールする。なお、ＳＰ３４４が実体を持つ場合は夫々のＳＰがスプール処理を行えばよいが、ジョブ全体をテーブルで管理してもよい。
【００４７】
制御部３４２は、ジョブ管理部３４８から印刷データ、チケット、ＳＰＩＤを取得する。通信モジュール３５０は、通信モジュール３３０を有するプリンタ１２０と通信を行うことが可能であり、２者間のデータ通信のインターフェースである。通信モジュール３５０は、印刷データ格納部３５２、チケット格納部３５３、ジョブ情報提示部３５１を有する。印刷データ格納部３５２は、制御部３４２から印刷データを受信し格納する。チケット格納部３５３は、制御部３４２から印刷設定を受信し格納する。制御部３４２は、印刷データ格納部３５２、および印刷設定格納部３５３から格納が終了した旨を受信したことに応じて、ジョブ管理部３４８に指示し、ジョブの情報を格納する。図６（ｃ）は、ジョブ管理部３４８が格納しているジョブ情報を示す図であり、ジョブＩＤが６３１、ジョブ名が６３２、ＳＰＩＤが６３３、チケットが６３４、印刷データの格納場所（ＵＲＬなど）が６３５、チケットの格納場所が６３６に相当する。チケット６３４は、チケットの格納場所６３６に格納されているチケットと同じものなので、含めなくてもよい。ここでは、チケットは利用頻度が高いため、扱いやすいように直接管理テーブルに加えている。ジョブオーナー６３７は、ジョブの印刷指示を行ったユーザの情報が格納される。実施例１では単一のユーザのため、すべてＵｓｅｒＸが格納されている。ステータス６３８には、ジョブのステータスが格納される。たとえば、印刷サービスにジョブが保存された状態ではＱＵＥＵＥＤ、プリンタからダウンロードされた状態ではＳＰＯＯＬＥＤ、正常に印刷された状態ではＤＯＮＥ、エラーで印刷できない状態ではＥＲＲＯＲ、などを設定することができる。
【００４８】
次に、制御部３４２は、ジョブ情報提示部３５１に情報通知の指示を行う。ジョブ情報提示部３５１は、プリンタ１２０に対して、印刷データの準備ができた旨の通知情報Ａを送信する。通知情報Ａは、図５（ｆ）に示すようにＸＭＬ形式で表現できる。ここでは、出力対象のプリンタにジョブの準備ができた旨を伝えられれば良いので、ＳＰＩＤのみを送付している。以上が、印刷サービス３４０の機能の説明となる。
【００４９】
次に、プリンタ１２０の機能について説明する。プリンタ１２０は、印刷サービス３４０からジョブを取得し、印刷出力を実行する。ジョブ情報受信部３３１は、ジョブ情報提示部３５１が発行した通知情報Ａを受け取ったことに応じて、印刷サービス３４０に対してジョブ情報の要求を行う。これは、プリンタ１２０の登録要求で生成されたＳＰ３４４に対し、ＳＰ３４４にスプールされているジョブを取得する要求となる。そこで、ジョブ情報の要求は、図５（ｇ）に示すようにＳＰＩＤを引数とすることでＳＰＩＤを指定する。このＳＰＩＤは、プリンタ情報格納部３２３が格納する図６（ａ）のテーブルでも管理されているが、ここでは図５（ｆ）に含まれるＳＰＩＤを使用すればよい。
【００５０】
ジョブ情報提示部３５１は、ジョブ情報受信部３３１からジョブ情報の要求を受け取とると、ジョブ管理部３４８に確認し、取得したＳＰＩＤに紐付くジョブの情報を抽出し、通知情報Ｂを生成する。図６（ｃ）に示したジョブを例にとると、通知情報Ｂを生成するために利用される情報は、ジョブＩＤ６３１、ジョブ名６３２、印刷データ格納場所６３５、チケット格納場所６３６となる。通知情報Ｂは、これらの情報を基に、図５（ｈ）に示されるＸＭＬ形式で生成される。各情報は、夫々ジョブＩＤ５６１、ジョブ名５６２、印刷データ格納場所５６３、チケット格納場所５６４となる。通知情報Ｂの生成が完了すると、ジョブ情報提示部３５１は、通知情報Ｂをプリンタ１２０に送信する。
【００５１】
ジョブ情報受信部３３１は、通知情報Ｂを受け取ると、通知情報Ｂに記載されている印刷データの格納場所、およびチケットの格納場所を確認し、夫々の情報を印刷データ取得部３３２、チケット取得部３３３に通知する。印刷データ取得部３３２は、通知された印刷データの格納場所を基に、印刷データ格納部３５２から印刷データを取得する。またチケット取得部３３３は、通知されたチケットの格納場所を基に、チケット格納部３５３からチケットを取得する。取得が完了すると、制御部３２２は、印刷データ生成部３３４に印刷ジョブの生成を指示する。印刷データ生成部３３４は、印刷データ取得部３３２から印刷データを、またチケット取得部３３３からチケットを夫々受け取り、チケットの印刷設定に応じた印刷ジョブを生成する。印刷データ生成部３３４は、印刷ジョブの生成が完了すると、印刷ジョブを印刷実行部３３５に送信し、印刷ユニットから出力する。
以上が、プリンタ１２０が印刷するまでの処理フローとなる。
【００５２】
次に二つ目の系である印刷系の処理フローについて、図９のフロー図を用いて説明をする。Ｓ９０１にて、Ｗｅｂブラウザ３８０はＷｅｂアプリケーション３６０に接続する。Ｓ９０２にて、Ｗｅｂアプリケーション３６０は、その応答として認証画面を返信する。Ｗｅｂブラウザ３８０は図４（ｃ）の認証画面を表示し、ユーザが入力した認証情報を、Ｓ９０３にて、Ｗｅｂアプリケーション３６０に送信する。Ｓ９０４にて、Ｗｅｂアプリケーション３６０は認証情報の妥当性を評価し、正しければアクセストークンを発行する。Ｓ９０５にて、Ｗｅｂアプリケーション３６０は、Ｗｅｂブラウザ３８０へ、成功応答と共にアクセストークンを送信する。以後、必要に応じてセッションを張る際にアクセストークンの利用が可能となる。アクセストークンは、アクセス対象のサービスを利用するためのユーザの権限を、アクセス元の装置、またはサービスにアクセスするアプリケーションに移譲した際に発行されるデータである。アクセス対象のサービスは、アクセストークンを送信する装置、またはアプリケーションがアクセスして来た場合、ユーザに認証情報の要求を行うことなくサービスを提供する。ユーザは、装置、またはアプリケーションがサービスにアクセスするたびに認証情報を入力する必要が無いので利便性が高い。アクセストークンのようにユーザの権限が移譲されたことを示すデータの事を権限情報と称する。
【００５３】
なお、権限情報の一例であるアクセストークンは、認証サーバーシステム（不図示）で発行する形態であっても良く、これ以降の説明でアクセストークンが生成されると記載があった場合、認証サーバーシステムで発行する形態であっても良いことに留意されたい。なお、その場合の認証サーバーシステムは、アクセストークン、およびそのアクセストークンを再発行するためのリフレッシュトークンの発行が可能である。アクセストークン、およびリフレッシュトークンには有効期限が設定されており、アクセストークンの有効期限はリフレッシュトークンの有効期限よりも短く設定されている。
【００５４】
また、アクセストークンを発行可能な認証サービスを受けることができる装置は、認証サーバーシステムに登録されている認証情報を送信してきた装置に限る。認証が終わると、Ｗｅｂアプリケーション３６０は、Ｗｅｂブラウザ３８０に対して、表示するコンテンツデータを送信し、ユーザによる編集を受け付ける。また、Ｗｅｂアプリケーション３６０上でユーザによる印刷指示が行われた際は、Ｓ９０７にて、Ｗｅｂブラウザ３８０へ、印刷サービス３４０に対するプリンタ一覧要求のリダイレクト命令を送信する。
【００５５】
Ｓ９１１にて、Ｗｅｂブラウザ３８０は、リダイレクト命令に応じて、印刷サービス３４０に対し、プリンタ一覧要求を送信する。なお、印刷サービス３４０がＷｅｂアプリケーション３６０と同一ベンダーによるサービスであれば、接続には前述したアクセストークンが利用可能であり、別途ユーザ認証を行う必要はない。また、同一ベンダーでなくとも協力関係にあるサービス同士であれば、アクセストークンを共通して利用する形態であっても良い。アクセストークンがない場合、または期限切れの場合は、ここでもユーザ認証を行う。次に、印刷サービス３４０は、プリンタの一覧情報（ＳＰＩＤの一覧情報）を生成し、Ｓ９１２にてＷｅｂブラウザ３８０に返信する。Ｓ９１３にて、Ｗｅｂブラウザ３８０は、プリンタの一覧画面を表示し、プリンタの選択を受け付ける。
【００５６】
Ｓ９１４にて、Ｗｅｂブラウザは、選択されたプリンタのＳＰＩＤを、印刷サービス３４０に送信する。印刷サービス３４０は、ＳＰＩＤを受信すると、対応するケーパビリティーズとチケットを図６（ｂ）のプリンタ管理テーブルから取得し、図４（ｂ）の４２１に示す印刷設定画面を生成する。Ｓ９１５にて、印刷サービス３４０は、Ｗｅｂブラウザ３８０へ、印刷設定画面と、チケットの情報を送信する。Ｓ９１６にて、Ｗｅｂブラウザ３８０は印刷設定画面を表示し、ユーザによる印刷設定変更を受け付ける。
【００５７】
Ｓ９２１にて、Ｗｅｂブラウザ３８０は、印刷サービス３４０へ、ジョブの登録要求を行う。ここでは、印刷データ（コンテンツデータ）、チケット、ＳＰＩＤを送信する。Ｓ９２２にて、印刷サービス３４０のジョブ管理部３４８は、受信した情報を図６（ｃ）に示すジョブ管理テーブルに格納する。Ｓ９２３にて、印刷サービス３４０のジョブ情報提示部３５１は、プリンタ１２０のジョブ情報受信部３３１へ、図５（ｆ）に示す通知情報Ａを送信する。Ｓ９２４にて、ジョブ情報受信部３３１は、ジョブ情報提示部３５１へ、図５（ｇ）に示すジョブ情報取得要求を送信する。Ｓ９２５にて、ジョブ情報提示部３５１は、ジョブ情報受信部３３１へ、図５（ｈ）に示すジョブ情報（通知情報Ｂ）を返信する。
【００５８】
Ｓ９２６にて、１２０の印刷データ取得部３３２、チケット取得部３３３は、印刷サービス３４０へ、ジョブ情報の取得要求を行う。Ｓ９２７にて、印刷サービス３４０の印刷データ格納部３５２、チケット格納部３５３に格納してあるジョブ情報が、プリンタ１２０に送信される。Ｓ９２８にて、プリンタ１２０の印刷実行部３３５で、印刷物の出力がなされる。以上が、二つ目の系である印刷系の処理フローについての説明である。結果、Ｗｅｂアプリケーション３６０から印刷サービス３４０にジョブを登録することで、印刷サービス３４０が管理するプリンタに対して印刷が可能となる。実施例１の前半部分の説明は以上である。以後の後半部分では、前半部分で説明した基本印刷機能を発展させ、デスクトップアプリケーションからクラウド印刷サービスを経由した発展印刷機能について説明する。
【００５９】
前半で説明した基本機能では、Ｗｅｂアプリケーションからの印刷を対象とした。これは、印刷サービスへ印刷要求を行うためのインターフェースが、Ｗｅｂアプリケーションからの利用を前提としているためである。しかし、現在まだ主流であるデスクトップアプリケーションから、印刷サービスが管理するプリンタに対して印刷できないのは不便である。特に、デスクトップアプリケーションから印刷を行う場合はデバイスドライバを使って印刷を行うことが主流であるため、デバイスドライバを使って印刷サービスから印刷を行いたいという要望はある。そこで、以下に説明する仮想プリンタドライバであるバイパスドライバの機能により、デスクトップアプリケーションから印刷サービスへの印刷が実現可能であることを示す。はじめに、バイパスドライバの機能の概要を説明する。
【００６０】
バイパスドライバは、通常のプリンタドライバと同様に、デスクトップアプリケーションからの印刷要求を受け取るためのインターフェースを備える。また、バイパスドライバは、印刷サービスに接続し、印刷サービスにジョブを登録するためのインターフェースを備える。一般に、プリンタドライバは、アプリケーションから受信した印刷命令（コンテンツデータ、および印刷設定を含む）をプリンタが解釈可能な形式の印刷データに変換し、プリンタに送信する。バイパスドライバは、アプリケーションから受信した印刷命令を印刷サービスが解釈可能な形式の印刷データに変換し、印刷設定を含むチケット共に印刷サービスに登録する。印刷サービスは、Ｗｅｂアプリケーションから受信したのと同様に、このバイパスドライバから受信したジョブを格納し、プリンタから取得させて印刷される。なお、バイパスドライバは、アプリケーションから受信した印刷命令を変換することなく印刷サービスに送信する形態であっても良い。以上が、バイパスドライバの機能の概要である。
【００６１】
これより後半部分として、発展印刷機能について説明する。発展印刷機能はさらに二つの機能に分類される。一つ目の系に分類される機能は、バイパスドライバ３９０をクライアント１８０にインストールする、ドライバインストール系に分類される機能である。二つ目の系に分類される機能は、デスクトップアプリケーション４００が生成した印刷データを印刷サービス３４０に登録し、印刷サービス３４０が管理するプリンタに印刷する、印刷系に分類される機能である。最初に、一つ目の系であるドライバインストール系の機能について、図３の構成図、および図１０のフロー図を用いて説明する。最初に、Ｗｅｂブラウザ３８０がユーザからの指示を受けて、印刷サービス３４０に接続を行うフローについて説明する。
【００６２】
Ｓ１００１にて、Ｗｅｂブラウザ３８０は、印刷サービス３４０に接続要求を行う。Ｓ１００２にて、印刷サービス３４０のユーザ認証部３５５は、接続要求の応答として、図４（ｃ）に例示す認証画面を送信する。Ｗｅｂブラウザ３８０は受信した認証画面を表示し、ユーザＩＤ４３１とパスワード４３２の入力、およびログインボタン４３３の押下を受け付ける。ログインボタン４３３が押下されると、Ｓ１００３にて、Ｗｅｂブラウザ３８０は、印刷サービス３４０に対して、入力された情報を送信し、認証を要求する。Ｓ１００４にて、印刷サービス３４０のユーザ認証部３５５はユーザ情報管理部３５６に指示し、受信した認証情報の妥当性を評価し、正規な認証情報であると評価したことに応じてアクセストークンを発行する。Ｓ１００５にて、発行されたアクセストークンは、ユーザ認証部３５５からＷｅｂブラウザ３８０へ、成功応答と共に送信される。以上により、Ｗｅｂブラウザ３８０と印刷サービス３４０との間にセッションが張られた状態となる。また、Ｗｅｂブラウザ３８０が印刷サービス３４０に対してセッションを張り直す必要が生じた際は、取得したアクセストークンを利用することでユーザ認証の情報入力ステップを省略することができる。
【００６３】
次に、Ｓ１００６にて、Ｗｅｂブラウザ３８０から、印刷サービス３４０に対して、プリンタ一覧画面表示の要求を行う。Ｓ１００７にて、要求を受信したプリンタ情報提示部３４６は、接続しているユーザカウントに紐付けられたプリンタ情報を図６（ｂ）の管理テーブルから収集し、図４（ｄ）に例示するプリンタ一覧画面を生成する。Ｓ１００８にて、Ｗｅｂブラウザ３８０は、応答と共にプリンタ一覧画面を受信すると、それを表示し、ユーザの入力を受け付ける。ここで、図４（ｄ）のプリンタ４４１はプリンタの一覧であり、インストールボタン４４２はバイパスドライバをインストールするための要求を発行するためのボタンである。インストールボタン４４２が押下されると、Ｓ１０１１にて、Ｗｅｂブラウザ３８０は、印刷サービス３４０に、バイパスドライバのインストール要求と、対象となるプリンタのＳＰＩＤを送信する。
【００６４】
Ｓ１０１２にて、プリンタ情報提示部３４６は、インストール要求とＳＰＩＤを受信すると、指定プリンタのインストールセットの生成に関する情報を収集する。プリンタ固有の情報となるのは、プリンタの能力を示すケーパビリティーズ、印刷設定を示すチケット、サービスプリンタを特定するＳＰＩＤの３つである。以上の３要素は、図６（ｂ）のプリンタ管理テーブルで管理される情報から取得可能である。ケーパビリティーズはケーパビリティーズ６２４から、チケットはチケット初期値６２５から、ＳＰＩＤはＳＰＩＤ６２１から、夫々取得する。次に、Ｓ１０１３にて、バイパスドライバをインストールするのに必要なインストールセットを生成する。
【００６５】
図７（ａ）は、インストールセット７００に含まれるモジュールやファイルを示した構成図である。インストールセット７００は、ドライバセット７１０と、更新用のデータ、およびセットアップモジュール７１９で構成される。ドライバセット７１０は、プリンタドライバとしてインストールするための最小限のモジュールとファイルのセットである。このドライバセットがあれば、ＯＳの機能を利用してプリンタドライバをインストールすることができる。ただし、後述するセットアップモジュールの機能を利用することで、より高度なインストールが可能となる。ドライバセット７１０は、印刷設定モジュール７０１、印刷データ生成モジュール７０２、仮ケーパビリティーズ７０３、仮チケット７０４、仮ＳＰＩＤ７０５、ＩＮＦファイル７０６で構成される。印刷設定モジュール７０１は、デスクトップアプリケーションからの印刷設定要求に応じて印刷設定画面を表示し、ユーザの指示に基づいて印刷設定を行うためのモジュールである。印刷データ生成モジュール７０２は、アプリケーションからの印刷要求に応じて印刷データを生成し、出力するモジュールである。
【００６６】
仮ケーパビリティーズ７０３、仮チケット７０４、仮ＳＰＩＤ７０５は、夫々ケーパビリティーズ、チケット、ＳＰＩＤのダミー情報であり、固定の値を持つ。ＩＮＦファイル７０６は、本バイパスドライバが、前述したモジュールと情報で構成されることを記載したファイルであり、その構成でインストールされることを示す。また、インストールセット７００には、更新用のデータである、実ケーパビリティーズ７１１、実チケット７１２、実ＳＰＩＤ７１３が含まれる。これらは、本来の情報を持つデータであり、ドライバセット７１０がインストールされた後、データの更新に利用される。実ケーパビリティーズ７１１、実チケット７１２、実ＳＰＩＤ７１３は、Ｓ１０１２で取得した情報が適用される。最後に、インストールセット７００には、セットアップモジュール７１９が含まれる。セットアップモジュール７１９は、一連のインストール作業を行う、プリンタやユーザカウントに非依存のモジュールである。セットアップモジュール７１９は、まずドライバセット７１０をインストールし、それが完了すると、更に更新用のデータで上書きするよう指示する。以上により収集された、情報、モジュール、ファイルにより、インストールセット７００が生成される。
【００６７】
Ｓ１０１４にて、プリンタ情報提示部３４６は、生成されたインストールセット７００とその起動命令を、Ｗｅｂブラウザ３８０に送信する。Ｗｅｂブラウザ３８０が受信したインストールセット７００は、クライアント１８０上にインストーラ４１０として構成される。
【００６８】
Ｓ１０２１にて、Ｗｅｂブラウザ３８０は、起動命令に応じて、インストーラ４１０にセットアップの起動を指示する。インストーラ４１０は、インストールセット７００の中のセットアップモジュール７１９を起動する。Ｓ１０２２にて、セットアップモジュール７１９は、クライアント１８０のＯＳに対し、まずドライバセット７１０のインストール要求を行う。Ｓ１０２３にて、ドライバセット７１０は、ＩＮＦファイル７０６に従い、指定されたモジュール、ファイル、情報がＯＳ上にインストールされる。インストールされたドライバセットは、クライアント１８０にバイパスドライバ３９０として構成される。
【００６９】
バイパスドライバ３９０は、印刷設定部３９１、印刷データ生成部３９２、ジョブ送信部３９３、プリンタデータ格納部３９４、ユーザデータ格納部３９５、トークン取得部３９６で構成される。印刷設定部３９１は印刷設定モジュール７０１が適用され、印刷設定を行う機能を持つ。印刷データ生成部３９２は印刷データ生成モジュール７０２が適用され、印刷データ生成の機能を持つ。ジョブ送信部３９３は生成されたジョブを送信する機能を持つ。プリンタデータ格納部３９４は、プリンタに関する情報を格納する機能を持ち、仮ケーパビリティーズ７０３、仮チケット７０４、仮ＳＰＩＤ７０５が格納される。この時点ではダミー情報が格納されている。クライアント１８０を複数のユーザが利用する場合でも、プリンタデータ格納部３９４にはユーザ非依存の情報が格納されるため、プリンタ毎に唯一のデータ領域があればよい。ユーザデータ格納部３９５は、複数のユーザが利用する際に、ユーザカウント毎に区別された領域を持ち、ユーザに依存する情報が格納される。トークン取得部３９６は、印刷サービス３４０に接続するためのアクセストークンを要求する機能を持つ。トークン取得部３９６については、実施例２で詳述する。
【００７０】
セットアップモジュール７１９は、次にインストールセット７００に含まれる実ケーパビリティーズ７１１、実チケット７１２、実ＳＰＩＤ７１３のデータ更新作業を行う。Ｓ１０２４にて、セットアップモジュール７１９は、バイパスドライバ３９０のプリンタデータ格納部３９４に対し、前記３つのデータで更新するよう要求する。Ｓ１０２５にて、プリンタデータ格納部３９４は、受信したデータを用いて既存のデータを上書きする。以上のステップにより、プリンタデータ格納部３９４には、実際のプリンタに対応したケーパビリティーズ、チケット、ＳＰＩＤがセットされたことになる。以上が、一つ目の系であるドライバインストールの系に分類される機能とフローについての説明である。
【００７１】
以上説明した機能により、ユーザは図４（ｄ）のプリンタ一覧画面でプリンタに応じたインストールボタンを押下するだけで、デスクトップアプリケーションから印刷サービス３４０を利用するためのバイパスドライバがクライアントにインストールされる。また、セットアップファイルの起動や各種設定などの煩わしい作業なしに、バイパスドライバが利用可能となる。
【００７２】
次に、二つ目の系である印刷系に分類される機能について、図３の構成図、および図１１のフロー図を用いて説明する。クライアント１８０は、デスクトップアプリケーション４００を有する。ここでは、ユーザがデスクトップアプリケーション４００でコンテンツデータを作成し、印刷を指示し、プリンタ選択画面において対象プリンタのバイパスドライバ３９０を選択し、バイパスドライバ３９０の起動後、印刷を行うケースを考える。
【００７３】
Ｓ１１０１にて、ますデスクトップアプリケーション４００が起動され、コンテンツデータの編集がなされる。デスクトップアプリケーション４００は、ユーザにより印刷設定の要求がなされると、Ｓ１１０２にて、バイパスドライバ３９０に対して印刷設定要求とチケットを送信する。Ｓ１１０３にて、バイパスドライバ３９０の印刷設定部３９１は、図４（ｅ）に例示する印刷設定画面を表示する。図４（ｅ）の画面の構成や表示の方法は、図４（ｂ）の構築方法と基本的に同じである。即ち、印刷設定部３９１は、プリンタデータ格納部３９４からインストール時に格納したケーパビリティーズを取得し、能力情報に応じて印刷設定画面を構成する。また、Ｓ１１０２で取得したチケットが持つパラメータを、印刷設定の初期値として表示する。次にＳ１１０４にて、印刷設定部３９１は、ユーザによって入力された印刷設定のパラメータをチケットに保存する。ユーザの印刷設定入力が完了すると、印刷設定部３９１は、Ｓ１１０５にて、デスクトップアプリケーション４００にチケット情報を返信する。
【００７４】
デスクトップアプリケーション４００はユーザにより印刷の要求がなされると、Ｓ１１０６にて、バイパスドライバ３９０に対して印刷要求とコンテンツデータ、チケットを送信する。Ｓ１１０７にて、バイパスドライバ３９０の印刷データ生成部３９２は、受信したコンテンツデータを印刷サービス３４０が受信可能なフォーマット（ＰＤＦやＸＰＳ形式）の印刷データに変換する。受信したチケット、および印刷データ生成部３９２で生成された印刷データは、ジョブ送信部３９３に送信される。なお、コンテンツデータを変換せずに印刷データとしてジョブ送信部３９３に送信する場合もある。
【００７５】
Ｓ１１１１にて、ジョブ送信部３９３は、印刷サービス３４０に接続要求を行う。Ｓ１１１２にて、印刷サービス３４０のユーザ認証部３５５は、接続要求の応答として、図４（ｃ）に例示す認証画面を送信する。バイパスドライバ３９０は受信した認証画面を表示し、ユーザＩＤ４３１とパスワード４３２の入力、およびログインボタン４３３の押下を受け付ける。ログインボタン４３３が押下されると、Ｓ１１１３にて、バイパスドライバ３９０は、印刷サービス３４０に対して、入力された情報を送信して認証要求を行う。印刷サービス３４０のユーザ認証部３５５は、ユーザ情報管理部３５６に指示し、受信した情報を基に認証を行う。Ｓ１１１４にて、ユーザ認証が成功すると、ユーザ情報管理部３５６はアクセストークンを発行する。Ｓ１１１５にて、発行されたアクセストークンは、ユーザ認証部３５５を経由し、バイパスドライバ３９０に成功応答とともに送信される。以上により、バイパスドライバ３９０と印刷サービス３４０との間にセッションが張られた状態となる。バイパスドライバ３９０が印刷サービス３４０にセッションを張り直す必要が生じた際には、取得したアクセストークンを利用することで認証要求のステップを省略することもできる。バイパスドライバ３９０は、取得したアクセストークンをプリンタデータ格納部３９４に格納しておいても良い。
【００７６】
Ｓ１１２１にて、ジョブ送信部３９３は、印刷サービス３４０へ、ジョブの登録要求を行う。ここでは、印刷データ、チケット、ＳＰＩＤを送信する。これ以降、Ｓ１１２２からＳ１１２８にて、印刷サービス３４０が受信したジョブの印刷処理がなされるが、これは前半の基本印刷機能で説明した図９のＳ９２２からＳ９２８とまったく同じである。すなわち、印刷サービス３４０の視点から見た場合、Ｗｅｂアプリケーション３６０から印刷要求がなされた場合と区別することなく、バイパスドライバ３９０からの印刷要求の処理がなされる。以上が、二つ目の系である印刷の系に分類される機能とフローについての説明である。
【００７７】
以上説明した機能により、ユーザはバイパスドライバへの特別な設定なしに、また従来通りのプリンタへ印刷するのと同様の手順で、デスクトップアプリケーション４００から印刷サービス３４０が管理するプリンタへの印刷を行うことが可能となる。
【００７８】
また、ドライバセット７１０は、プリンタやユーザカウントによって変わることがない、固定の構成である。ＯＳベンダーによっては、認証テストをパスしたドライバセットに対してデジタル署名を発行する場合があるが、ドライバセット７１０は固定の構成であるため、この構成で取得したデジタル署名は本実施例では有効である。そして、クライアントが、インストール時に署名不足であると警告表示を行うようなシステムであっても、その警告を避けることができる。そして、プリンタごとに異なるケーパビリティーズやチケット、ＳＰＩＤは、更新情報として更新されるため、機種ごとのドライバインストールが正しく完了する。
【００７９】
なお、本実施例ではインストールセット（ドライバセット＋実データ＋セットアップツール）の実施形式について説明した。しかし、デジタル署名が必要ない環境であれば、インストールセットではなく、実際のプリンタ情報を同梱したドライバセットを利用しても良い。図７（ｂ）は、インストールセットではなく、ドライバセットを扱う場合の構成図である。ドライバセット７２０は、次に示すファイルを含む。まず、印刷設定モジュール７２１、印刷データ生成モジュール７２２、ＩＮＦファイル７２６は、ドライバセット７１０と同じもので構成される。次に、実ケーパビリティーズ７２３、実チケット７２４、実ＳＰＩＤ７２５は、ダミーのものではなく、図６（ｂ）から取得したもので構成される。これは、実ケーパビリティーズ７１１、実チケット７１２、実ＳＰＩＤ７１３と同じものである。この構成の場合、図１０のＳ１０２１では、セットアップの起動ではなく、直接ＯＳに対してドライバのインストール指示を行うことでインストールが実行される。なお、このステップで実データがインストールされるため、Ｓ１０２４とＳ１０２５の更新ステップは不要となる。
【実施例２】
【００８０】
実施例１では、最初に印刷する際、または印刷する毎に、アクセストークンの取得が必要なためユーザにとっては面倒である可能性もある。そこで、アクセストークンを、ケーパビリティーズやチケット、ＳＰＩＤと一緒に、インストールセットまたはドライバセットのデータとして含め、インストール時に格納することも可能である。その場合、Ｓ１０１１のインストール要求のアクセスで利用された（遡るとＳ１００４で発行された）アクセストークンを、図１０のＳ１０１２のデータ収集時に確保し、Ｓ１０１３のインストールセット作成時に含めればよい。即ち、バイパスドライバがクライアント１８０に配布されるよりも前にアクセストークンがインストールセットに含まれるので、バイパスドライバのインストール後にクリティカルに印刷サービス３４０を利用することができる。
【００８１】
しかし、実施例１の権限情報はユーザが認証されたこと同時にアクセストークンが発行される形態であり、権限移譲のプロセスとしてはセキュリティ的に不十分である可能性がある。そこで実施例２では、ＯＡｕｔｈと呼ばれる認可の連携機能により、バイパスドライバ３９０に対して印刷サービス３４０へのアクセス権限を委譲する機能について説明する。なお、説明しない部分については原則実施例１と同様の構成・フローとなる。
【００８２】
ここでは、印刷サービス３４０からアクセストークンを取得し、取得したアクセストークンをバイパスドライバ３９０が受信する機能について、図３の構成図、および図１２のフロー図を用いて説明する。なお、実施例１と同様、印刷サービス３４０がアクセストークンを発行する前提で説明するが、後述するＳ１２０２のリダイレクト先が認証サービスを提供する認証サーバーシステムであり、認証サーバーシステムによりアクセストークンが発行される形態であっても良い。
【００８３】
なお、バイパスドライバ３９０のインストールの完了までは、図１０で説明したフローと同じである。このＳ１０２５のあと、バイパスドライバ３９０はＷｅｂ  Ｂｒｏｗｓｅｒ３８０に対し、バイパスドライバ３９０にアクセストークンの発行を要求するよう指示を出し、図１２のフローが一連の流れとして続く。ただし、Ｓ１０１４のインストールセットの送信では、セットアップモジュールの起動命令だけでなく、アクセストークン取得の起動命令も含まれるものとする。即ち、バイパスドライバのインストール時のタイミングでアクセストークンを発行する例を説明する。なお、アクセストークンの発行のタイミングはこれに限られず、バイパスドライバの初回起動時、または始めての操作時、または任意の操作時の何れかのタイミングで発行しても良い。何れの場合であっても、後述する認可画面は夫々のタイミングで表示される。
【００８４】
まず、Ｗｅｂブラウザ３８０が、アクセストークン取得の起動命令を受信したことに応じて処理が開始される。Ｓ１２０１にて、Ｗｅｂブラウザ３８０は、バイパスドライバ３９０に対してアクセストークンの取得要求を行う。これは、アクセストークン取得の起動命令に、バイパスドライバ３９０のトークン要求部３９６を起動するＪａｖａＳｃｒｉｐｔ（登録商標）命令を含めることなどで実現可能となる。また、バイパスドライバをインストールした際に、バイパスドライバ毎にユニークなＵＲＬを生成し、そのＵＲＬを基にＷｅｂブラウザからバイパスドライバにアクセスしても良い。Ｓ１２０２にて、バイパスドライバ３９０のトークン要求部３９６は、Ｗｅｂブラウザを印刷サービス３４０にリダイレクトさせる。印刷サービス３４０のユーザ認証部３５５は、バイパスドライバ３９０からリダイレクトさせられたＷｅｂブラウザ３８０を操作するユーザのアクセスを受け付ける。ドライバドライバＳ１２０３にて、ユーザ認証部３５５は、ユーザを認証するために図４（ｃ）に例示される認証画面をリダイレクトしてきたＷｅｂブラウザ３８０に表示させ、ユーザに認証情報を入力させる。Ｓ１２０４にて、Ｗｅｂブラウザ３８０は、ユーザ認証部３５５へ、入力された認証情報を送り、認証要求を行う。Ｓ１２０５にて、ユーザ認証部３５５は、受信した認証情報をユーザ情報管理部３５６へ送り、ユーザの識別を行う。また、アクセストークンを要求しているバイパスドライバ３９０に関しても、ユーザのアクセスから情報を取り出し、合わせて検証を行う。
【００８５】
認証をパスすると、Ｓ１２０６にて、ユーザ認証部３５５は、バイパスドライバ３９０に対するアクセストークンを発行してよいかユーザに確認を行う。ここで、ユーザ認証部３５５は、認証されたユーザに認可を求めるために、図４（ｆ）に示されるような認可画面をＷｅｂブラウザ３８０に表示させ、認可操作を行わせる。Ｓ１２０７にて、Ｗｅｂブラウザ３８０は、ユーザの入力結果を応答として返信する。Ｓ１２０８にて、ユーザ認証部３５５は、ユーザの認可を得られたか確認する。認可が得られた場合、ユーザ認証部３５５は、アクセストークンを発行するための認可コードを生成する。
【００８６】
Ｓ１２０９にて、ユーザ認証部３５５は、Ｗｅｂブラウザ３８０へ、アクセス元であるバイパスドライバ３９０に再度リダイレクトさせる。このリダイレクト要求には、Ｓ１２０８で生成した認可コードが含まれる。Ｓ１２１０にて、Ｗｅｂブラウザ３８０は、バイパスドライバ３９０のトークン要求部３９６へ、Ｓ１２０９のリダイレクト要求に従って認可コードを送信する。
【００８７】
Ｓ１２１１にて、トークン要求部３９６は、取得した認可コードを用いて、印刷サービス３４０にアクセストークンの発行を要求する。なお、印刷サービス３４０にアクセスしてきたバイパスドライバ３９０の認証は、例えば、予めインストールセットに組み込まれていたクライアント証明書で認証を行う形式であっても良い。認証サービスを受ける際には通常、認証情報を要求するが、クライアント証明書の場合は認証情報の要求は発生しないので、ユーザは認証に際し特別な操作を行わなくて良い。Ｓ１２１２にて、印刷サービス３４０のユーザ認証部３５５は、受信したアクセストークンの発行要求から、アクセストークンを要求しているバイパスドライバ３９０の情報を取り出し、正当性を検証する。検証が正当なら、更にＳ１２１１で受け付けた認可コードの正当性を検証する。いずれも正当であった場合、Ｓ１２１３にて、ユーザ認証部３５５は、受信した認可コードに対応するアクセストークンを発行する。Ｓ１２１４にて、ユーザ認証部３５５は、トークン要求部３９６へ、Ｓ１２１１の応答としてアクセストークンを返信する。最後にＳ１２１５にて、トークン要求部３９６は、受信したアクセストークンをユーザデータ格納部３９５に格納する。
【００８８】
以後、取得したアクセストークンを利用することで、印刷実行時のユーザ認証処理をスキップすることができる。具体的には図１１のＳ１１１１の接続でアクセストークンを使えば、Ｓ１１１２からＳ１１１５の処理をスキップすることができる。ここで、ユーザデータ格納部３９５は、ユーザ毎の区別が必要な情報を格納する。アクセストークンはユーザ毎に異なる情報であるため、プリンタデータ格納部３９４ではなくユーザデータ格納部３９５に格納される。この機能により、クライアント１８０を使用するユーザが複数であった場合にも、他ユーザの印刷ジョブを見たり印刷したりしてしまうことを避けられる。一般には、クライアント１８０へのログインによりユーザが特定され、ユーザデータ格納部３９５もＯＳが管理するユーザ毎に自動的に特定される。
【００８９】
以上説明した機能により、安全にバイパスドライバにアクセス権限を委譲し、ユーザは印刷毎に認証作業を行う手間を省くことができ、ユーザにとって利便性が向上する。なお、本実施例では、ユーザからの入力を受け付ける画面をＷｅｂブラウザ３８０とする例を示したが、インストーラ４１０やバイパスドライバ３９０に同等の機能があっても構わない。また、本実施例では、アクセストークン取得の起動命令を印刷サービス３４０から受信する例を示したが、これはインストーラがインストールフローの一環で発行したものであっても、ユーザが明示的に指示したものであっても構わない。
【実施例３】
【００９０】
実施例１、および実施例２ではクライアントにインストールされているＯＳの種類やバージョンについて言及しなかったが、実際にはＯＳの種類やバージョンは複数存在する。そして、ＯＳが異なればインストールすべきプリンタドライバのアーキテクチャも異なるため、バイパスドライバのドライバセットが１種類だけだとサポートできないクライアントができてしまう。
【００９１】
そこで本実施例では、クライアントにインストールされているＯＳの種類やバージョンを判別し、ＯＳに対応したアーキテクチャのバイパスドライバをインストールする方法について説明する。なお、説明しない部分については原則実施例１、または実施例２と同様の構成・フローとなる。
【００９２】
印刷サービス３４０は、あらかじめ複数のＯＳに対応したドライバセットを準備しておく。たとえば図７（ｃ）はＯＳ−Ａで動作するアーキテクチャのモジュールとデータ形式を含み、図７（ｄ）はＯＳ−Ｂ上で動作するアーキテクチャのモジュールとデータ形式を含む、といった具合である。図７（ｄ）のＰＰＤファイルは、Ｐｏｓｔｓｃｒｉｐｔ  Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎファイルを指す。ＰＰＤは、ケーパビリティーズとチケットとは表現の形式は異なるが、機能としては同様に、プリンタの能力（能力ＰＰＤ）と、そのサブセットとして印刷設定（設定ＰＰＤ）を表現することができる。
【００９３】
印刷サービス３４０が表示する図４（ｄ）のプリンタ一覧画面でユーザによりバイパスドライバのインストールが指示されると、インストールセットを生成する処理であるＳ１０１１からＳ１０１３の処理が、以下のように変わる。以下、図１３のフロー図を用いて説明する。
【００９４】
Ｗｅｂブラウザ３８０は、Ｓ１３１０で対象プリンタのＳＰＩＤを送る。このとき、ＯＳ情報も送信する。たとえば、ＵｓｅｒＡｇｅｎｔの識別名により、送信元クライアントのＯＳ情報を伝えることができる。Ｓ１３１１にて、印刷サービス３４０は、ＯＳ情報を受信すると、クライアント１８０のＯＳの種類やバージョンを判断する。次にＳ１３１２，Ｓ１３１３でインストールセットを作成するが、クライアント１８０がＯＳ−Ａであると判断した場合は図７（ｃ）のドライバセットを、ＯＳ−Ｂであると判断した場合は図７（ｄ）のドライバセットを選択し、インストールセットを構築する。以上により、クライアント１８０のＯＳに対応したインストールセットを構築し、送信することができる。これ以降の処理は、図１０のＳ１０１４以降の処理と同じである。
【００９５】
以上説明した機能により、クライアントにインストールされている夫々のＯＳに適したアーキテクチャのバイパスドライバを自動的にインストールすることが可能となる。そして、ユーザはクライアント情報を意識する必要がなく、インストール時の利便性が向上する。なお、本実施例では自動でＯＳを判断する例を示したが、バイパスドライバインストール指示を行う際に、ＯＳの種類やバージョンを選択するフローであっても構わない。
【符号の説明】
【００９６】
１２０  プリンタ
３４０  印刷サービス
３６０  Ｗｅｂアプリケーション
３８０  Ｗｅｂブラウザ
３９０  バイパスドライバ
４００  デスクトップアプリケーション
４１０  インストーラ
【図１】
2014106883.tif 000003
【図２】
2014106883.tif 000004
【図３】
2014106883.tif 000005
【図４】
2014106883.tif 000006
【図５】
2014106883.tif 000007
【図６】
2014106883.tif 000008
【図７】
2014106883.tif 000009
【図８】
2014106883.tif 000010
【図９】
2014106883.tif 000011
【図１０】
2014106883.tif 000012
【図１１】
2014106883.tif 000013
【図１２】
2014106883.tif 000014
【図１３】
2014106883.tif 000015