(57)【要約】【課題】  インボックスドライバーしか利用できないＯＳにおいて、最新のプリンターなどの外部システムに対して出力制御できない場合があった。【解決手段】  そこで、本発明の情報処理装置は、ユーザーによる出力要求の対象となったデータを、オペレーティングシステムに同梱された第１の出力制御ソフトウェアの機能として、ポートモニターを介して、所定のファイルに書き込む制御を行い、アプリケーション管理サーバーからダウンロードされ、インストールされた第２の出力制御ソフトウェアの機能として、前記所定のファイルに書き込まれたデータを取得し、ネットワーク上の外部システムに対する該取得されたデータの出力制御を行うことを特徴とする。【選択図】  図９
2014174679.tif 000002
【特許請求の範囲】
【請求項１】
第１の出力制御ソフトウェアを同梱するオペレーティングシステムを実行可能な情報処理装置であって、
ユーザーによる出力要求の対象となったデータを、前記第１の出力制御ソフトウェアの機能として、ポートモニターを介して、所定のファイルに書き込む制御を行う第１の制御手段と、
アプリケーション管理サーバーからダウンロードされ、インストールされた第２の出力制御ソフトウェアの機能として、前記所定のファイルに書き込まれたデータを取得する取得手段と、
前記第２の出力制御ソフトウェアの機能として、ネットワーク上の外部システムに対する前記取得されたデータの出力制御を行う第２の制御手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記所定のファイルのファイルパスは、前記ユーザーのために用意された保存領域を示すことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２の出力制御ソフトウェアの機能として、ネットワーク上の外部システムを探索して、前記ユーザーが外部システムを選択できる選択画面を提供する提供手段をさらに有することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記選択画面を介して選択された外部システムが、既定の出力先として前記第２の出力制御ソフトウェアに設定されることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第２の出力制御ソフトウェアが提供する表示画面に基づく前記ユーザーの操作に従い、前記第１の出力制御ソフトウェアの機能として前記所定のファイルへデータを書き込む制御が行われるような設定が行われることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第１の制御手段が、前記出力要求の対象となったデータの属性情報と、前記第１の出力制御ソフトウェアの設定としてあらかじめ決められている拡張子とを用いたファイル名とするファイルを生成したうえで、該ファイルに対してデータを書き込む制御を行うことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項７】
前記第１の出力制御ソフトウェアの設定としてあらかじめ決められている拡張子は、該第１の出力制御ソフトウェアのベンダーにより指定されたものであることを特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記第１の出力制御ソフトウェアの設定としてあらかじめ決められている拡張子に基づき、前記第２の出力制御ソフトウェアが前記アプリケーション管理サーバーからダウンロードされ、インストールされることを特徴とする請求項６または７に記載の情報処理装置。
【請求項９】
ポートモニターを介した前記ファイルへの書き込む制御に応じて、前記第１の出力制御ソフトウェアの設定としてあらかじめ決められている拡張子に基づき、前記第２の出力制御ソフトウェアが前記アプリケーション管理サーバーからダウンロードされ、インストールされることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
ポートモニターを介した前記ファイルへの書き込む制御に応じて表示される前記オペレーティングシステムが提供する通知画面に対するユーザーの操作に従い、前記第１の出力制御ソフトウェアの設定としてあらかじめ決められている拡張子に基づき、前記第２の出力制御ソフトウェアが前記アプリケーション管理サーバーからダウンロードされ、インストールされることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記第１の出力制御ソフトウェアが、デバイスドライバーであることを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記アプリケーション管理サーバーが、前記オペレーティングシステムのためのアプリケーションを管理することを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記外部システムが、ネットワーク上のプリンターであることを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記外部システムが、ネットワーク上のストレージサービスであることを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１５】
第１の出力制御ソフトウェアを同梱するオペレーティングシステムを実行可能な情報処理装置における方法であって、
ユーザーによる出力要求の対象となったデータを、前記第１の出力制御ソフトウェアの機能として、ポートモニターを介して、所定のファイルに書き込む制御を行う第１の制御工程と、
アプリケーション管理サーバーからダウンロードされ、インストールされた第２の出力制御ソフトウェアの機能として、前記所定のファイルに書き込まれたデータを取得する取得工程と、
前記第２の出力制御ソフトウェアの機能として、ネットワーク上の外部システムに対する前記取得されたデータの出力制御を行う第２の制御工程と、を有することを特徴とする方法。
【請求項１６】
前記第２の出力制御ソフトウェアの機能として、ネットワーク上の外部システムを探索して、前記ユーザーが外部システムを選択できる選択画面を提供する提供工程をさらに有することを特徴とする請求項１５に記載の方法。
【請求項１７】
前記選択画面を介して選択された外部システムが、既定の出力先として前記第２の出力制御ソフトウェアに設定されることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記第２の出力制御ソフトウェアが提供する表示画面に基づく前記ユーザーの操作に従い、前記第１の出力制御ソフトウェアの機能として前記所定のファイルへデータを書き込む制御が行われるような設定が行われることを特徴とする請求項１５乃至１７のいずれか１項に記載の方法。
【請求項１９】
前記第１の制御工程では、前記出力要求の対象となったデータの属性情報と、前記第１の出力制御ソフトウェアの設定としてあらかじめ決められている拡張子とを用いたファイル名とするファイルが生成されたうえで、該ファイルに対してデータを書き込む制御が行われることを特徴とする請求項１５乃至１７のいずれか１項に記載の方法。
【請求項２０】
前記第１の出力制御ソフトウェアの設定としてあらかじめ決められている拡張子は、該第１の出力制御ソフトウェアのベンダーにより指定されたものであることを特徴とする請求項１９に記載の方法。
【請求項２１】
前記第１の出力制御ソフトウェアが、デバイスドライバーであることを特徴とする請求項１５乃至２０のいずれか１項に記載の方法。
【請求項２２】
前記外部システムが、ネットワーク上のプリンターであることを特徴とする請求項１５乃至２１のいずれか１項に記載の方法。
【請求項２３】
前記外部システムが、ネットワーク上のストレージサービスであることを特徴とする請求項１５乃至２１のいずれか１項に記載の方法。
【請求項２４】
請求項１乃至１４のいずれか１項に記載の手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の異なる出力制御ソフトウェアを連携させて印刷などの出力処理の制御を行うためのシステムに関する。
【背景技術】
【０００２】
従来の出力制御ソフトウェアの主な例として、ネットワーク上などに存在するプリンターなどの周辺機器に対して印刷データを出力するためのプリンタードライバーなどを含むデバイスドライバーがある。他にも、出力制御ソフトウェアとしては、外部システムへの出力制御を行うためのソフトウェアが存在し、具体的にはインターネットなどのネットワーク上のストレージシステムなどにデータを出力制御するアプリケーションがある。
【０００３】
ここで、デバイスドライバーには、オペレーティングシステム（ＯＳ）にあらかじめ組み込まれている同梱型ドライバー（以下、インボックスドライバー）と、ＯＳに対してユーザーなどが追加で組み込むドライバー（以下、アウトボックスドライバー）と、が存在する。
【０００４】
例えば、プリンターが新たに発売されると、既存のＯＳに同梱されたインボックスドライバーでは対応できない場合があり、従来、そのような場合はアウトボックスドライバーを利用することが推奨されてきた。また、アウトボックスドライバーは、インボックスドライバーに比べて、対応するデバイス固有な機能を制御するための機能をもっている。
【０００５】
従来における、クライアント装置にインストール済みのドライバーを用いて、新たに発売されたプリンターに対応するアウトボックスドライバー相当の機能を利用するための技術として、特許文献１がある。特許文献１には、クライアント装置にインストール済みのドライバーに対して、プリンターからダウンロードした該プリンターの固有機能を制御するためのプログラムをプラグインするといった開示がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２００２４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、近年、ＯＳの種類によってはアウトボックスドライバーや、特許文献１に記載されるような技術を利用できない場合が存在する。例えば、タブレット型パーソナルコンピュータ（以下、タブレットＰＣ）用のＯＳであるＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ＲＴ（登録商標）では、アウトボックスドライバーのインストールや、デバイスドライバーのプラグインインストールができない仕様となっている。そのようなＯＳ環境では、周辺機器が新たに発売されると、ＯＳに同梱済みインボックスドライバーでは、当該周辺機器に適した出力制御ができない、出力自体が行えない、といったことがあり得る。
【０００８】
そこで、本発明においては、そのようなＯＳ環境であっても、既存の出力制御ソフトウェア（たとえば、インボックスドライバー）を含む複数のソフトウェアを連携させて、ネットワーク上の外部システムに対して適切に出力制御が行える手法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の情報処理装置は、第１の出力制御ソフトウェアを同梱するオペレーティングシステムを実行可能な情報処理装置であって、ユーザーによる出力要求の対象となったデータを、前記第１の出力制御ソフトウェアの機能として、ポートモニターを介して、所定のファイルに書き込む制御を行う第１の制御手段と、アプリケーション管理サーバーからダウンロードされ、インストールされた第２の出力制御ソフトウェアの機能として、前記所定のファイルに書き込まれたデータを取得する取得手段と、前記第２の出力制御ソフトウェアの機能として、ネットワーク上の外部システムに対する前記取得されたデータの出力制御を行う第２の制御手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、上述したＯＳ環境であっても、既存の出力制御ソフトウェア（たとえば、インボックスドライバー）を含む複数のソフトウェアを連携させて、ネットワーク上の外部システムに対して適切に出力制御が行えるようになる。
【図面の簡単な説明】
【００１１】
【図１】本発明におけるネットワーク構成の例を示す図。
【図２】本発明における各機器のハードウェア構成の例を示すブロック図。
【図３】実施例１における出力制御システムに関わるソフトウェアのモジュール構成の例を示す図。
【図４】ＯＳ１１２におけるドライバーオブジェクト、キューオブジェクト、及びポートオブジェクトの各情報とそれらの関係を説明するための図。
【図５】タブレットＰＣ１０の操作画面の例である。
【図６】出力制御アプリケーションの一例であるプリンターアプリが提供する操作画面の例である。
【図７】出力制御アプリケーションの提供するキュー作成処理を説明するためのフローチャート。
【図８】編集用アプリケーションからの印刷操作を説明するための画面の例である。
【図９】実施例１における出力制御システムの処理を説明するためのシーケンス図。
【図１０】プリンターアプリが提供する出力先の決定までの画面遷移を示す図。
【図１１】実施例２における出力制御システムに関わるソフトウェアのモジュール構成の例を示す図。
【図１２】実施例２における出力制御システムの処理を説明するためのシーケンス図。
【図１３】実施例２または３におけるトーストを含む表示制御を行った際の画面の例である。
【図１４】実施例２におけるデバイスドライバーの設定情報などを説明するための図。
【図１５】実施例４における出力制御アプリ１７が提供する出力先の決定処理を説明するためのフローチャート。
【図１６】実施例５における力制御システムに関わるソフトウェアのモジュール構成の例を示す図。
【図１７】実施例５における出力制御システムの処理を説明するためのシーケンス図。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための第１の形態について図面を用いて説明する。
【００１３】
図１は、本発明の出力制御システムが適用可能なネットワーク構成の例を示す図である。
【００１４】
本ネットワーク構成全体は、タブレットＰＣ１０、プリンター２０、アプリケーション管理サーバー３０（以下、アプリサーバー３０）とから構成され、それぞれの機器がネットワーク１を介して通信可能に接続されている。
【００１５】
ここで、ネットワーク１の例としては、無線ＬＡＮ、有線ＬＡＮやＢｌｕｅＴｏｏｔｈ（登録商標）など、様々な接続形態が適用可能である。また、図示するように、アプリサーバー３０は、インターネット２上などに配置されていてもよい。また、プリンター２０は複数台存在しても良い。
【００１６】
図１では、タブレットＰＣ１０で動作する出力制御ソフトウェアの出力対象として、プリンター２０が図示されている。しかしながら、出力制御ソフトウェアの出力対象としては、プリンター２０以外にも、ネットワーク上のスキャナ装置（不図示）や、インターネット上のストレージサーバー（不図示）であってもよい。
【００１７】
図２は、本発明に適用可能な各装置のハードウェア構成を示すブロック図である。
【００１８】
最初に、タブレットＰＣ１０などの情報処理装置について説明する。ＣＰＵ（１０１）は、ＲＡＭ（１０２）に記憶されているプログラムに従って、システムバス（１０４）に接続される各デバイスを総括的に制御する。タブレットＰＣ１０は複数のＣＰＵ（１０１）により制御する形態であってもよい。ＲＡＭ（１０２）は、ＣＰＵ（１０１）の主メモリ、ワークエリア等としても機能する。ＲＯＭ（１０３）は、各種プログラム及びデータを格納しており、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ（１０３ａ）、及び各種データを記憶するデータＲＯＭ（１０３ｂ）に区分けして構成される。
【００１９】
ネットワークＩ／Ｆ（１０５）は、ネットワーク１に接続され、通信処理を行なう。入力デバイスＩ／Ｆ（１０６）は、タッチパネル（１０９）などの入力デバイスからの入力を制御する。入力デバイスＩ／Ｆ（１０６）は、他にも不図示のキーボードやマウスからの入力も制御する。ディスプレイＩ／Ｆ（１０７）は、ディスプレイ（１１０）への表示処理を制御する。外部メモリＩ／Ｆ（１０８）は、例えばＦｌａｓｈ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（Ｆｌａｓｈ  ＳＳＤ）等の外部メモリ（１１１）とのアクセスを制御する。外部メモリ（１１１）は、オペレーティングシステム１１２や各種ソフトウェアが記憶されている。ソフトウェアの例としては、アプリケーション１１３やプリンタードライバー１１４を図示している。さらに、外部メモリ（１１１）は、不図示のユーザファイル、編集ファイル等を記憶する。
【００２０】
なお、本実施例において、ＯＳ１１２は特定の種類に限定されないが、本実施例ではアウトボックスドライバーのインストールできないようなＯＳを特に想定している。しかしながら、後述するような本発明における特徴的な複数の出力制御ソフトウェアが動作可能なＯＳであるならば、本発明を適用可能である。つまり、本発明は、クライアント装置の例として図示するタブレットＰＣ１０以外にも、そのようなＯＳが動作可能な機器、具体的にはスマートフォンやノートパソコンのような携帯端末や、デスクトップＰＣなどであっても適用可能である。
【００２１】
次に、プリンター２０の構成について説明する。ＣＰＵ（２０１）は、ＲＡＭ（２０２）に記憶されているプログラムに従って、システムバス（２０４）に接続される各デバイスを総括的に制御する。ＲＡＭ（２０２）は、ＣＰＵ（２０１）の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。また、ＲＡＭ（２０２）は、ＮＶＲＡＭ（Ｎｏｎ−ｖｏｌａｔｉｌｅ  ＲＡＭ：不揮発性ＲＡＭ）領域も備えており、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。ＲＯＭ（２０３）は、各種フォントを記憶するフォントＲＯＭ（２０３ａ）、ＣＰＵ（２０１）により実行される制御プログラム等を記憶するプログラムＲＯＭ（２０３ｂ）、及び各種データを記憶するデータＲＯＭ（２０３ｃ）を備えている。
【００２２】
ネットワークＩ／Ｆ（２０５）は、ネットワーク１に接続され、通信処理を行う。印刷部Ｉ／Ｆ（２０６）は、プリンタエンジンである印刷部（２０９）とのインターフェースを制御している。操作部Ｉ／Ｆ（２０６）によって制御される操作部（２１０）には、ユーザーによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びＬＥＤ表示器等が配されている（不図示）。外部メモリＩ／Ｆ（２０８）は、例えばハードディスク（ＨＤ）等の外部メモリ（２１１）とのアクセスを制御する。外部メモリ（２１１）はフォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。なお、この外部メモリ（２１１）は１個に限らず複数備えるものであってもよく、例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンター制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。
【００２３】
ＣＰＵ（２０１）は、上記制御プログラムを実行することで、ネットワークＩ／Ｆ（２０５）を介してタブレットＰＣ１０との通信制御が可能となっている。たとえば、タブレットＰＣ１０から送信される印刷データの受信制御を行う。ＣＰＵ（２０１）は、ＲＯＭ（２０３）のプログラムＲＯＭ（２０３ｂ）に記憶された制御プログラム等に基づき、印刷部Ｉ／Ｆ（２０６）を介して印刷部（２０９）に印刷データを変換して得られる画像信号を出力し、印刷することが可能である。
【００２４】
アプリサーバー３０はタブレットＰＣ１０に対して、ユーザーの所望のアプリケーションをインターネット経由で頒布するためのサーバー装置である。装置構成としては、基本的にタブレットＰＣと変わらないが、外部メモリ（３１１）に頒布すべきアプリケーションを記憶している。また、ディスプレイやタッチパネルといった入出力用のデバイスも不要とする構成であってもよい。
【００２５】
なお、アプリサーバー３０は、タブレットＰＣ１０で動作するＯＳ用のアプリケーションを専用に管理し、当該ＯＳを利用するユーザー向けにアプリケーションを頒布するサービスを提供するものであってもよい。後述する出力制御ソフトウェアの一例として、アプリサーバー３０から提供される当該ＯＳ用の出力制御アプリケーション（以下、出力制御アプリ）が挙げられる。前述したように、ＯＳの種類やバージョンによっては、外部記憶媒体から読み出されるようなアウトボックスドライバーのインストールを制限しているものがある。そのようなＯＳであっても、当該ＯＳ用のストアサービスとして動作するアプリサーバー３０から、ユーザー所望のアプリケーションをダウンロードしてインストールすることは可能である。
【００２６】
出力制御アプリは、出力先となる外部システムが提供する個別の機能をユーザーに指定させるための設定画面を提供することも可能である。たとえば、外部システムがプリンター２０である場合には、該プリンター２０が提供するカラー印刷機能、製本などのレイアウト設定機能、Ａ３やＡ２といった特殊な用紙サイズでの印刷機能、セキュアな印刷やユーザー管理を実現するための認証機能などがある。また、外部システムがインターネット上のストレージシステムである場合には、保存形式の設定機能、保存期間を設定する機能、公開先などを設定する機能などがある。
【００２７】
以降で説明する実施例においては、クライアント装置上で動作する複数の出力制御ソフトウェアの例として、ＯＳに同梱されたデバイスドライバーであるインボックスドライバー（特にプリンタードライバー）、及びアプリサーバー３０から頒布されたネットワーク上の外部システムへの出力の制御を行うためのアプリケーションを用いて説明する。
【００２８】
（実施例１）
図３は、本実施例におけるタブレットＰＣ１０の出力制御システムに係るソフトウェアのモジュール構成とデータフローを示す図である。
【００２９】
編集用アプリ１１は、例えばウェブブラウザーや文書作成ソフトなどの、ユーザーが印刷などの出力要求を行う際に用いる一般的なアプリケーションである。デバイスドライバー１２は、ＯＳ１１２のインボックスドライバーであって、編集用アプリ１１からの出力要求を命令として受信し、スプールデータ１５に変換し、ローカルポートモニター１３に出力する。
【００３０】
なお、以降で説明する各実施例では、インボックスドライバーを前提とするが、ＯＳ１１２が同様の機能を備えるアウトボックスドライバーやそれに相当する出力制御用のアプリケーションのインストールを制限しなければ、それらソフトウェアを用いても構わない。
【００３１】
また、デバイスドライバーとしてプリンタードライバーを利用する場合、スプールデータ１５はプリンター言語形式のデータとなるが、本発明では後述する出力制御アプリ１７の出力データ（たとえば、ＰＤＬデータ）と区別するため「スプールデータ」と呼称する。
【００３２】
ローカルポートモニター１３は、デバイスドライバー１２からスプールデータ１５を受信し、ファイルとして外部メモリ（２１１）に書き込む。シェル１６は、ＯＳ１１２に組み込まれた様々なアプリケーションを起動したり、ファイルを開いたり、スクリプトを実行したりするためのユーザーインターフェースを有するソフトウェアである。
【００３３】
出力制御アプリ１７は、スプールデータ１５を読み込んで、出力先システムに対して出力データ１８を、ネットワーク１経由で出力する。出力制御アプリ１７は、必要に応じて、スプールデータ１５を出力先システムに適合する形式のデータに変換し、所定の通信方式を採用したうえで外部に送信する。また、出力制御アプリ１７は、出力先システムの候補が複数ある場合には、いずれを出力先とするか選択するためのユーザーインターフェースも備える。
【００３４】
ダウンロードアプリ１９は、アプリサーバー３０から出力制御アプリ１７のダウンロードを操作するために用意されたソフトウェアである。
【００３５】
図４は、ＯＳ１１２におけるドライバーオブジェクト、キューオブジェクト、及びポートオブジェクトの各情報とそれらの関係を説明するための図である。本図は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）のオブジェクト図を使って表現している。
【００３６】
図４（ａ）で示すように、本発明におけるＯＳ１１２では、組み込まれたデバイスドライバーと、出力システムとの接続を管理するため、ドライバーオブジェクト１１２１、キューオブジェクト１１２２、ポートオブジェクト１１２３という３つの情報を管理する。
【００３７】
ドライバーオブジェクト１１２１は、組み込まれたデバイスドライバーに対応するシンボルであり、デバイスドライバー構成情報１１２１ａを有する。ドライバーオブジェクト１１２１は、ＯＳ１１２によりモデルごとに管理されるため、出力先システムである機器のモデルが異なれば別のオブジェクトで管理される。デバイスドライバー構成情報１１２１ａとしては、モデル名、デバイスドライバーのバージョンといった情報が管理されている。
【００３８】
キューオブジェクト１１２２は、出力先に対応するシンボルであり、キュー構成情報１１２２ａを有する。ユーザーによる出力先システムへの出力要求は、編集用アプリ１１からキューオブジェクト１１２２を指定する操作によって実現される。キューオブジェクト１１２２は、ＯＳ１１２により出力先ごとに管理されるため、出力先システムとなる機器のモデルや出力先システムの提供サービスなどが同じであっても、複数の出力先が存在するなら、キューオブジェクトはそれぞれ別オブジェクトで管理される。キュー構成情報１１２２ａとしては、キュー名称、関連付けられたデバイスドライバーオブジェクトの名称、ポートオブジェクトの名称などの情報が含まれる。
【００３９】
ポートオブジェクト１１２３は、接続に対応するシンボルであり、ポート構成情報１１２３ａを有する。ポートオブジェクト１１２３ａは、通常、キューオブジェクトと１対１で、ＯＳ１１２により管理される。Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）シリーズのＯＳでは、例えば、接続、すなわちプリンターとの通信処理を担うのはポートモニターと呼ばれるモジュールである。ポート構成情報１１２３ａとしては、ポートオブジェクト名、ポートモニターの種類、指定されたポートモニターに関連する情報（ＩＰアドレスや保存先のファイル名など）などが管理されている。
【００４０】
ポートモニターの種類としては、例えばＵＳＢポートモニター、ＴＣＰ／ＩＰポートモニター、ＷＳＤポートモニターなどがある。さらに、ポートモニターには、実際の外部ネットワーク上の出力システムではなく、出力用のデータを外部メモリ（１１１）に、ファイルとして保存するためのローカルポートモニターという種類もある。本発明では、このローカルポートモニターを使用する。
【００４１】
図４（ｂ）は、実施例１の出力制御システムにおける、デバイスドライバーオブジェクト、キューオブジェクト、ポートオブジェクトの設定例である。
【００４２】
図４（ｂ）では、デバイスドライバーとしてインボックスドライバーである「Ｉｎｂｏｘ  Ｄｅｖｉｃｅ  Ｍｏｄｅｌ  Ａ」のＶｅｒｓｉｏｎ  １．０を使用し、出力先となるプリントキューには「Ｓｐｏｏｌ  Ｄｅｖｉｃｅ」という名称を付けている。関連付けるポート種類は、ローカルポートモニター１３を指定する「Ｌｏｃａｌ  Ｐｏｒｔ」を、ポート名称・ポート情報には「Ｃ：￥Ｕｓｅｒｓ￥ｕｓｅｒ￥Ｓｐｏｏｌ．ｐｒｎ」を設定しておく。
【００４３】
この設定により、編集用アプリ１１が提供する画面からキュー「Ｓｐｏｏｌ  Ｄｅｖｉｃｅ」を指定して出力要求されたデータは、ユーザーのドキュメントフォルダーに「Ｓｐｏｏｌ．ｐｒｎ」というファイル名で、スプールデータ１５として保存される。ユーザーのドキュメントフォルダーとは、ＯＳなどでユーザー管理されている場合の、該ユーザー用の保存領域を意味する。
【００４４】
図５、図６は、タブレットＰＣ１０の操作画面の例である。これらの図を用いて図３に示した出力制御システムを構成するソフトウェアをＯＳ１１２にセットアップする方法を示す。
【００４５】
図５（ａ）は、シェル１６によって表示されるタッチパネルに適したユーザーインターフェース（ＵＩ）環境１６１におけるスタート画面２１の例である。ＵＩ環境１６１は、タッチパネル（１０９）での操作に重きを置いたＵＩのデザインで、例えばユーザーの指やペンなどのタッチ操作が容易なように大きなメニュー表示（タイル形式の表示）となっている。ＵＩ環境１６１では、マウスやキーボードなどの入力もサポートしている。
【００４６】
スタート画面２１には、タイル２１０１〜２１０４が配置されている。タイル２１０１〜２１０４はいずれもアプリケーションを起動するためのメニューボタンである。タイル２１０４は、ダウンロードアプリ１９に対応しており、タイル２１０４がタッチされると、シェル１６はダウンロードアプリ１９を起動する。
【００４７】
図５（ｂ）は、ダウンロードアプリ１９が提供するダウンロード画面２２の例である。ダウンロードアプリ１９は、タブレットＰＣ１０で動作するアプリケーションであり、アプリサーバー３０とネットワーク１およびインターネット２を経由して通信する。ダウンロードアプリ１９は、アプリサーバー３０の外部メモリ（３１１）を用いて管理されるアプリケーションの一覧情報を取得して、ダウンロード画面２２に、アプリケーション名などの情報をタイル表示する。
【００４８】
ユーザーによって、ダウンロード画面２２の一覧の中から所望のアプリケーションに対応するタイルがタッチされると、ダウンロードアプリ１９は該アプリケーションをダウンロードし、ＯＳ１１２にインストールする。本実施例では、タイル２２３がタッチされると、ダウンロードアプリ１９は、出力制御アプリ１７の一例であるプリンターアプリをダウンロードし、インストールする。
【００４９】
図５（ｃ）は、出力制御アプリ１７の一例であるプリンターアプリがインストールされた後のスタート画面２１の例である。
【００５０】
プリンターアプリがインストールされると、シェル１６はプリンターアプリに対応するタイル２１０５をスタート画面２１に追加する。タイル２１０５がユーザーによってタッチされると、シェル１６はプリンターアプリを起動する。
【００５１】
図６は、出力制御アプリ１７の一例であるプリンターアプリが提供する操作画面の例である。
【００５２】
図６（ａ）は、プリンターアプリにおける、ホーム画面２３の例である。ホーム画面２３には、各機能を呼び出すためのタイルメニュー２３１、２３２が表示されている。ここで、「はじめましょう」という説明が付いたタイル２３１がタッチされると、プリンターアプリはプリントキュー設定画面２４を表示する。
【００５３】
図６（ｂ）は、プリントキュー設定画面２４の例である。プリンターアプリは、タイル２３１がタッチされると、図７に示すキュー作成処理を実行する。この処理で、必要に応じて、プリンターアプリはプリントキューを作成して、プリントキュー設定画面２４の表示を制御する。
【００５４】
図７を用いて、出力制御アプリ１７が提供するキュー作成処理を説明する。各ステップの主体は出力制御アプリ１７である。Ｓ７０１では、既にキューが作成済みで、ＯＳ１１２により管理されているかを判定する。Ｓ７０１で、未作成であると判定された場合には、Ｓ７０２でキューを作成する。具体的には、キューオブジェクトを操作するために提供されているＯＳ１１２のＡＰＩを呼び出し、ＯＳ１１２に新たなキューオブジェクトを登録する。ここでは、図４（ｂ）に示すような、キューオブジェクトの作成が行われる。
【００５５】
なお、Ｓ７０２で、ＯＳ１１２の制限等によりキューオブジェクト操作用のＡＰＩが利用可能でない場合、プリンターアプリは図６（ｃ）に示すようなメッセージ２４３とテキストボックス２４４の表示を制御する。ユーザーが、メッセージ２４３の指示にしたがってテキストボックス２４４に表示されたスクリプトの内容をクリップボードにコピーし、シェル１６のコマンドラインインターフェース等を通じて実行すると、キューオブジェクトが生成される。つまり、プリンターアプリは図６（ｃ）のような表示制御を行うことで、キューオブジェクトの作成を促すことが可能となる。
【００５６】
その他のプリントキューオブジェクトの作成方法として、プリンターアプリが、スクリプトファイルを外部メモリ（１１１）に保存し、ユーザーにそのスクリプトファイルを実行するようなメッセージを表示制御することで、処理を促しても良い。
【００５７】
図６で示す表示画面上で、戻るボタン２４１がタッチされると、プリンターアプリは、ホーム画面２２を表示する。ユーザーは、キューオブジェクトの作成が完了したら、この戻るボタン２４１をタッチしてホーム画面２２に戻ることができる。
【００５８】
なお、図６で示す表示制御や図７で示す処理は、ＣＰＵ（１０１）が出力制御アプリ１７を実行することにより実現される機能である。
【００５９】
図８は、編集用アプリ１１の一例であるユーザーアプリからの印刷操作を説明するための画面例である。ここでのユーザーアプリはウェブラウザーであり、現在表示されたＷｅｂページ２５を印刷する操作を説明する。
【００６０】
図８（ａ）は、ユーザーアプリにおける印刷機能の呼び出し方を示す図である。ユーザーが画面右端をタッチし、画面内側に向かってスライドすると、シェル１６はＯＳメニューバー２６を表示する。
【００６１】
ＯＳメニューバー２６には様々な機能を呼び出すためのアイコンが表示されている。ＯＳメニューバー２６に表示されているアイコンの１つである印刷アイコン２６１が、ユーザーによってタッチされると、シェル１６はプリンター選択バー２７を表示する。
【００６２】
図８（ｂ）は、プリンター選択バー２７の画面例を示す。プリンター選択バー２７上には、ＯＳ１１２に設定されているプリントキューオブジェクトの名称一覧がシェル１６によって表示される。ユーザーによって、いずれか１つがタッチされると、シェル１６は名称に対応するプリントキューオブジェクトを出力先して決定し、印刷設定画面２８を表示する。ここでは、図７の処理で作成された「Ｓｐｏｏｌ  Ｐｒｉｎｔｅｒ」のプリントキューオブジェクトの名称２７１がユーザーに選択されたものとする。
【００６３】
図８（ｃ）は、印刷設定画面２８の例を示す。印刷設定画面２８上には部数、印刷の向き、カラーモードなどの印刷設定を行うためのコントロールが配置されている。印刷ボタン２８１がタッチされると、ユーザーアプリは印刷開始を指示するための要求を発行する。
【００６４】
図９は、実施例１の出力制御システムを用いた処理の流れを示すシーケンス図である。ここでは、具体例として、インボックスドライバーであるプリンタードライバー及びプリンターアプリを用いた印刷出力処理の制御について説明している。
【００６５】
Ｓ２０１で、編集用アプリ１１の一例であるユーザーアプリは、印刷開始の指示のユーザー操作を受け付けた際に、印刷対象となるデータを生成する。ここで、本実施例における印刷対象となるデータは例えば、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）形式のデータを想定している。ＸＰＳ形式のデータは、ＯＳ１１２の提供するＡＰＩを通じて、印刷対象のＷｅｂページの表示言語であるＨＴＭＬデータから変換して生成することができる。次に、Ｓ２０２で、ユーザーアプリは、生成したデータをデバイスドライバー１２の一例であるプリンタードライバーに送信する。
【００６６】
プリンタードライバーは、Ｓ２０３で受信データをスプールデータ１５に変換し、Ｓ２０４で該スプールデータ１５をローカルポートモニターに送信する。スプールデータ１５は、プリンタードライバーが対応しているプリンターと互換性のあるＰＤＬデータである必要はない。本実施例では、デバイスドライバー１２と外部システムとでは完全な互換性が必要ないため、データの形式などは、後段の出力制御アプリ１７に入力するための中間データとして扱えればよい。
【００６７】
ローカルポートモニター１３は、Ｓ２０５でプリンタードライバーからスプールデータ１５を受信し、Ｓ２０６でスプールファイルとして外部メモリ（１１１）に書き込む。書き込まれるファイルのパスは、プリンターアプリによるキューオブジェクトの作成処理（図７）において設定された、ポートオブジェクト情報に含まれる「Ｃ：￥Ｕｓｅｒｓ￥ｕｓｅｒ￥Ｓｐｏｏｌ．ｐｒｎ」である。
【００６８】
スプールファイルが、外部メモリ（１１１）に書き込まれたら、次に、ユーザーはタッチＵＩ１６１を操作して、スタート画面２１を表示させ、プリンターアプリを起動する。
【００６９】
Ｓ２０７で、シェル１６は、図８（ａ）のＯＳメニューバー２６のスタートアイコン２６２がユーザーによってタッチされると、スタート画面２１を表示する。Ｓ２０８で、シェル１６は、タイル２１０５のタッチに応じて、出力制御アプリ１７の一例であるプリンターアプリを起動する。
【００７０】
Ｓ２０９で、プリンターアプリのホーム画面２３において「印刷しましょう」と書かれたタイル２３２がタッチされると、プリンターアプリはスプールファイルからスプールデータ１５を読み込む。次に、Ｓ２１０で、プリンターアプリは、ネットワークＩ／Ｆ（１０５）を通じて、出力先システムであるプリンター２０の探索処理を行う。そして、探索結果を出力先選択画面２９に表示する。
【００７１】
ここでの探索処理とは、ネットワーク１に接続された１台または複数台のプリンターなどの出力システムと通信し、それらのＩＰアドレス、名称、設置場所といった情報を取得することを指す。通信手段としては公知の技術であるＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）やＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  ｏｎ  Ｄｅｖｉｃｅｓ）などのプロトコルを使用する。通常、外部システムの状態、すなわち電源が入っているか、ネットワーク１に接続されているかなどを事前に把握することは不可能であるため、プリンターアプリは探索処理のたびに外部システムとの通信を試みる。また、探索に際しては、ネットワーク１に対してブロードキャストという手段を用いる。プリンターアプリがこのブロードキャストで、ネットワークＩ／Ｆ（１０５）を通じてＳＮＭＰの情報取得用のリクエストを送信すると、ネットワーク１で到達可能なすべての外部システムがデータを応答する。
【００７２】
なお、インターネット上などに存在する特定のストレージサービスを提供する外部システムなども、出力先選択画面２９に表示してもよい。この場合は、ＯＳや出力制御アプリ１７があらかじめ管理している１以上の外部システムを、出力先選択画面２９として表示することになる。また、ネットワーク１に接続された出力システムと、インターネット上などに存在する１以上の外部システムとを出力先選択画面２９に表示することも可能である。
【００７３】
Ｓ２１１で、プリンターアプリは、出力先選択画面２９を介して選択されたプリンターに対するスプールデータ１５に対応する出力データの出力制御を行う。
【００７４】
ここでの出力制御の例としては、スプールデータ１５をＰＤＬデータ１８に変換する処理、及び該データを選択されたプリンターに対して送信する処理である。ＰＤＬデータ１８は、選択されたプリンター２０と互換性のある形式のデータである。他に、出力制御の例としては、スプールデータ１５をファイルとして外部システムに転送するような処理もある。
【００７５】
図１０を用いて、プリンターアプリにおける出力先の決定までの画面遷移を説明する。
【００７６】
図１０（ａ）は、出力先選択画面２９の例を示す。出力先選択画面２９にはタイル２９１、２９２、２９３のように、出力先として利用可能なプリンターが一覧で表示される。ユーザーがプリンターの電源を入れ忘れるなどの理由により通信ができず、利用可能なプリンターが１台もなかった場合は、例えば図１０（ｂ）に示す画面を表示する。
【００７７】
図１０（ｂ）のメッセージ２９４には、探索処理に失敗したことを通知するメッセージを表示する。画面下部に表示されるボタン２９５がユーザーによってタッチされると、プリンターアプリは再度探索処理（Ｓ２１０）を試みる。ＰＤＬ変換・送信などの出力制御中（Ｓ２１１）は、図１０（ｃ）に示すような画面３００を表示して、印刷が実行中であること（または完了したことなど）をメッセージ３０１として表示する。
【００７８】
以上、実施例１で説明した通り、インボックスドライバーを含む２つの出力制御ソフトウェアを利用した外部システムへのデータの出力制御が実現される。
【００７９】
（実施例２）
次に、本発明を実施するための第２の形態について説明する。なお、本実施例に関しては、上述の実施例の差分となる部分について説明する。
【００８０】
実施例１は、ユーザーが印刷に際して、Ｓ２０１、Ｓ２０７、Ｓ２０８、Ｓ２０９、Ｓ２１１の処理を実行させるため、合計５回にわたって操作を行っていた。実施例２では、実施例１よりは少ない操作回数によりで出力制御が行われるような実施の形態を説明する。
【００８１】
図１１は、本実施例におけるタブレットＰＣ１０の出力制御システムに係るソフトウェアのモジュール構成とデータフローを示す図である。実施例２では、ローカルポートモニター１３に代わってプロンプトポートモニター１４を導入する。実施例２において作成されるプリントキューオブジェクトの設定内容などは、図４（ｃ）に示す通りである。実施例１との処理の差分について、図１１を用いて説明する。
【００８２】
プロンプトポートモニター１４は、ローカルポートモニター１３と同様に、デバイスドライバー１２から受信したスプールデータ１５をファイルとして保存するポートモニターの一種である。また、プロンプトポートモニター１４は、シェル１６を介して、トーストと呼ばれるＧＵＩ（通知画面）を表示制御する機能を備える。
【００８３】
スプールデータ１５は、出力制御アプリ１７により出力データとして、出力制御されるなど、他の処理は実施例１において図３を用いて説明した処理と類似する。
【００８４】
図１２は、実施例２の出力制御システムにおける印刷処理の流れを示すシーケンス図である。本図におけるＳ３０１〜Ｓ３０４までは、実施例１の図９のＳ２０１〜Ｓ２０５と同様であるので説明を省略する。
【００８５】
Ｓ３０５で、プロンプトモニター１４は、スプールデータ１５を受信する。Ｓ３０６で、プロンプトモニター１４は、ユーザーのドキュメントフォルダーにユーザーアプリで出力要求された対象データのドキュメント名などの属性情報と拡張子とを用いたファイル名でファイルを生成して、スプールデータの内容を書き込む。ここでは、プリンタードライバーがスプールデータ１５を生成した際に付与した「印刷ジョブ名」を用いて、生成されるファイル名は「印刷ジョブ名．拡張子」となる。
【００８６】
実施例１では、ローカルポートモニター１３が、あらかじめ決められたファイルパスのファイルにスプールデータを書き込んでいた。それに対して、実施例２では、プロンプトモニター１４が所定のファイルパスに対して、出力対象のデータのドキュメント名などの属性情報を用いて適宜決定したファイル名を用いてファイルを作成した上で、スプールデータの書き込みを行う。そのため、プロンプトモニター１４を使うと、出力対象のデータの属性情報によって都度異なるスプールファイルが生成される。ここで、属性情報とは、前述したようなドキュメント名、ジョブ名、及び日付情報などの少なくとも何れかを示す。
【００８７】
例えば、ジョブ名が「ＷＥＢページ」であった場合、スプールファイル名は「ＷＥＢページ．ｐｒｎ」となる。「．ｐｒｎ」は、プロンプトモニター１４が、デフォルトで付与する拡張子であるが、異なる拡張子を指定することも可能である。
【００８８】
図１４（ａ）は、デバイスドライバー１２の設定ファイルのうち、拡張子の指定に関わる部分を抜き出したものである。デバイスドライバー１２の設定では、「ＦｉｌｅＳａｖｅ」というセクションにおいて、「．ｐｒｉｎｔａｐｐ」というキーに対し「１２３」というバリューが指定されている。この設定によって、デバイスドライバー１２がプロンプトモニター１４を通じて出力するスプールファイルの拡張子は、デフォルトの拡張子ではなく、「．ｐｒｉｎｔａｐｐ」となる。このデバイスドライバー１２の設定ファイルにおける拡張子は、該デバイスドライバー１２を提供するベンダーがあらかじめＯＳに同梱する際に指定しておくものである。つまり、このデバイスドライバー１２の設定ファイルにおける拡張子は、ベンダーの意図で、他の拡張子と重複しないようなものを採用することが可能である。
【００８９】
ここで、図１４（ａ）のバリューとして指定された「１２３」は、デバイスドライバー１２の文字列リソースにおけるリソースＩＤである。図１４（ｂ）にプリンタードライバーの文字列リソースの例を示す。文字列リソースは、リソースＩＤと文字列を組みにしたデータ形式である。図１４（ｂ）の例では、バリュー「１２３」のリソースＩＤに対応する文字列は、「プリンターアプリファイル」となっている。図１４（ａ）の設定ファイルにおいて、リソースＩＤにより指定された文字列がどのように使用されるかは後述する。
【００９０】
Ｓ３０７で、プロンプトモニター１４は、スプールデータの書き込み後、シェル１６に対してトーストの表示指示を送信する。
【００９１】
Ｓ３０８で、シェル１６は、該表示指示を受信すると、タッチＵＩ１６１上にトーストを表示する。図１３は、シェル１６によるトーストを含む表示制御を行った際の画面例を示す。
【００９２】
図１３（ａ）に、ユーザーアプリの画面右上に表示されたトースト３１の例を示す。トースト３１は、メッセージを表示するためのＧＵＩであり、出力制御ソフトウェアではなく、ＯＳの機能を用いて提供されるメッセージ画面である。
【００９３】
トースト３１は、ユーザーがユーザーアプリを用いて印刷要求を行った後に、該ユーザーに対して提供されるメッセージ画面となる。このトースト３１上では、前述のジョブ名などのユーザーが印刷要求の対象を把握できるような情報が提示され、これによりユーザーに対して次の操作をガイドすることができる。さらに、トースト３１は、任意の機能を呼び出すためのタイルとしての役割も持っており、ユーザーに対して該トースト３１をタッチするよう促すメッセージもあわせて表示される。
【００９４】
Ｓ３０９で、シェル１６は、ユーザーによるトースト３１へのタッチに応じて、スプールファイルのパスを起動オプションとして指定して、プリンターアプリを起動する。これにより、プリンターアプリは、起動時に起動オプションとして指定されたスプールファイルのファイルパスを受信することができる。
【００９５】
Ｓ３１０で、プリンターアプリは、起動オプションとして指定されたパスにあるスプールファイルの内容を読み込む。
【００９６】
なお、ＯＳ１１２には、様々なアプリケーションがインストールされているが、他でもなくプリンターアプリがシェル１６によって起動されるのは、拡張子の関連付けによるためである。図１４（ｃ）に、ＯＳ１１２が管理する、拡張子と該拡張子に対応するアプリケーションとを関連付けた情報を管理するテーブルの例を示す。シェル１６は、このテーブルを参照することにより、拡張子からそれに関連付けられたアプリケーションを知ることができ、結果的にファイルパスを起動オプションに指定して所望のアプリケーションを起動することができる。図１４（ｃ）への、出力制御アプリケーションのアプリケーション名と、拡張子との追加登録は、該アプリケーションのインストール時に追加登録される。
【００９７】
図１２のＳ３１１〜Ｓ３１２は、実施例１の図９のＳ２１０〜Ｓ２１１と同様の処理のため、説明を省略する。
【００９８】
本実施例においては、プロンプトモニター１４を利用することにより、出力制御に際するユーザーの操作回数が、ユーザーアプリに対する印刷要求の操作、トースト３１へのタッチ、及び、プリンターアプリでの出力先の指定、の３回まで減らすことができる。
【００９９】
なお、トースト３１は一定時間後に画面上から消えてしまうので、ユーザーがタッチする前に消えてしまう可能性もある。そのような場合は、他の手段によりスプールデータをプリンターアプリに読み込ませても良い。たとえば、ユーザーが自ら、ファイル管理アプリケーションなどから、ユーザーのドキュメントフォルダーに保存されたスプールファイルを開くことによって、図１４（ｃ）で示すテーブルに関連付けられているアプリケーションを起動することができる。また、出力制御アプリケーション１７の起動に際して、ファイルオープン機能を用いて、ユーザーのドキュメントフォルダーに保存されたスプールファイルを読み込むといった仕組みを、出力制御アプリ１７に実装することも可能である。
【０１００】
（実施例３）
次に、本発明を実施するための第３の形態について説明する。なお、本実施例に関しては、上述の実施例の差分となる部分について説明する。
【０１０１】
実施例２は、出力制御アプリケーション１７をダウンロード、インストールしてから、デバイスドライバーのキューオブジェクトを作成する順番でシステムのセットアップを行った。しかしながら、前述の図１４（ｃ）で示すテーブルを利用することにより、セットアップする順番を入れ替えることが可能である。
【０１０２】
すなわち、本実施例では、キューオブジェクトを作成した後に、出力制御アプリケーション１７をインストールするといった順番でセットアップすることも可能である。本実施例では、ユーザーが、はじめにデバイスドライバーを提供するメーカーのホームページなどから、キューオブジェクトの作成手順の情報を得て、作成を行うことなどを想定している。
【０１０３】
具体的な作成方法として、インストールスクリプトのファイルをユーザーのＰＣにダウンロード可能にしておいても良いし、スクリプトをウェブページ上に表示しておいてユーザーにクリップボードにコピーして実行するよう促しても良い。あるいは、タブレットＰＣ１０のユーザー以外の管理者が、ネットワーク１経由でユーザーの手を煩わせることなくプリントキューオブジェクトの作成を自動化するための管理操作を実行しても良い。
【０１０４】
このようにして、ユーザーのタブレットＰＣ１０で、キューオブジェクトが作成されたら、ユーザーは編集用アプリ１１から印刷操作を行う。
【０１０５】
本実施例では、ユーザーからの印刷操作を受けて行われるＳ３０１〜Ｓ３０８までの処理は、実施例２と同様である。しかしながら、トースト３１がタッチされても、拡張子「．ｐｒｉｎｔａｐｐ」が図１４（ｃ）で示すテーブルに登録されておらず、プリンターアプリもインストールされていない。
【０１０６】
ここで、シェル１６は、図１４（ｃ）で示すテーブルにスプールファイルの拡張子が登録されていない場合、例えば、図１３（ｂ）に示す画面を表示する。
【０１０７】
図１３（ｂ）では、メッセージボックス３２には開こうとしたファイルに関連付けられたアプリケーションが、ＯＳで管理されてないことをユーザーに伝えている。ここで、ユーザーがメッセージボックス３２下部に配置されたボタン３３をタッチすると、シェル１６は、ダウンロードアプリ１９を起動する。ダウンロードアプリ１９は、拡張子「．ｐｒｉｎｔａｐｐ」に関連付けられたアプリケーションを、アプリサーバー３０から検索する機能を提供する。ダウンロードアプリ１９の機能により、タブレットＰＣ１０は、アプリサーバー３０と通信し、拡張子「．ｐｒｉｎｔａｐｐ」に関連付くアプリケーションの検索結果（図１３（ｃ））を表示する。
【０１０８】
図１３（ｃ）は、アプリケーションの検索結果の画面の例を示す。メッセージ３４には、検索結果の件数等の情報が表示される。ここで、メッセージ３４の情報として、図１４（ｂ）の例に示した「プリンターアプリファイル」という文字列情報が表示される。このように、図１４（ｂ）のリソースに含まれる文字列は、拡張子の表すファイル種類を説明する情報として活用される。
【０１０９】
ユーザーが検索結果として表示されている、プリンターアプリのセットアップ指示に対応するタイル２２３をタッチすると、プリンターアプリのダウンロード、及びインストールが行われる。インストールの完了後、図１２で示すＳ３１０〜Ｓ３１２の処理が実行される。
【０１１０】
（実施例４）
次に、本発明を実施するための第４の形態について説明する。なお、本実施例に関しては、上述の実施例の差分となる部分について説明する。
【０１１１】
上述してきた実施例では、出力制御アプリ１７がデータの出力制御（Ｓ２１１、Ｓ３１２）の処理を実行する際に、出力先となる外部システムに対応するタイルの選択操作を、ユーザーが行う必要があった。しかしながら、例えば、通常使うプリンターなどの外部システムがある１台に決まっている場合、印刷要求のタイミングに毎回出力先を選択させるのは冗長である。
【０１１２】
したがって、図１０（ａ）で示す画面を、出力のタイミングのみに表示する画面ではなく、出力制御アプリ１７が起動して、出力先の設定を行う機能が呼び出されたときに表示する画面として構成しても良い。具体的には、出力制御アプリ１７の一例であるプリンターアプリが提供する図６（ａ）の画面上に、新たにタイルを追加して、出力先設定の機能を呼び出すことで実現できる。その際にタイルに表示する文言は、例えば「出力先を設定しましょう」といった表現が適切である。このタイルがユーザーによりタッチされると、プリンターアプリは、出力先となる外部システム（ここでは、プリンター）の探索・表示処理を行い、図１０（ａ）で示す画面を表示する。
【０１１３】
本実施例では、出力制御アプリ１７が提供する出力先設定の機能を介して選択された出力先が、出力制御アプリ１７の規定の出力先として設定され、記憶される。この設定後にユーザーが同機能を呼び出して意図的に出力先を変更しない限り、出力制御アプリ１７は既定の出力先に出力制御を行う。
【０１１４】
ここで、本実施例では、外部システムへ出力制御が行われる際の処理について詳細に説明する。
【０１１５】
図１５は、実施例４における、出力制御アプリ１７を実行することで実現される出力先の決定処理を説明するためのフローチャートを示す。本処理は、図９のＳ２１０〜Ｓ２１１や、図１２のＳ３１１〜Ｓ３１２の代替手法として提供されるものである。
【０１１６】
Ｓ１５０１で、出力制御アプリ１７の一例であるプリンターアプリは、出力先があらかじめ設定されているかどうか判断する。設定されている場合にはＳ１５０８に進み、設定されていない場合にはＳ１５０２に進む。Ｓ１５０２で、プリンターアプリはネットワーク上の出力先システムであるプリンターの探索を行う。Ｓ１５０３で、プリンターアプリは、探索処理の結果、利用可能なプリンターが無かったかどうかを判定する。ここで、利用可能な出力先システムが無かった（０台）場合にはＳ１５０４に進み、利用可能な出力先システムがあった場合にはＳ１５０５に進む。Ｓ１５０４で、プリンターアプリは、図１０（ｂ）に示す画面の表示を制御して、本処理を終了する。
【０１１７】
Ｓ１５０５で、プリンターアプリは、利用可能な出力先システムが１台であったか否かを判定する。１台であった場合には、Ｓ１５０６で、そのプリンターを、出力先として設定する。複数台の利用可能な出力先の候補が見つかった場合には、Ｓ１５０７で、図１０（ａ）に示す画面の表示を制御し、この画面からユーザーに出力先のシステムを指定させる。
【０１１８】
Ｓ１５０８で、プリンターアプリは、これまでのステップで決定された出力先に対して、出力データの出力制御を行い、本処理を終了する。
【０１１９】
（実施例５）
次に、本発明を実施するための第５の形態について説明する。なお、本実施例に関しては、上述の実施例の差分となる部分について説明する。
【０１２０】
実施例１〜４では、スプールデータ１５を読み込みに際して、出力制御アプリ１７やトースト３１を操作する必要があった。本実施例では、この操作を省略するためのシステムについて説明を行う。
【０１２１】
図１６は、実施例５における、タブレットＰＣ１０の出力制御システムに係るソフトウェアのモジュール構成とデータフローを示す図である。
【０１２２】
本実施例では、デバイスドライバー１２がシェル１６を直接呼び出すよう構成されている。また、本実施例は、ポートモニターとして、ローカルポートモニター１３を用いている。ただし、実施例１とは異なり、ローカルポートモニター１３が出力されるファイルパスに、出力制御アプリ１７に関連付けられた拡張子を含めておくようにする。ファイルパスの例としては、「Ｃ：￥Ｕｓｅｒｓ￥ｕｓｅｒ￥Ｓｐｏｏｌ．ｐｒｉｎｔａｐｐ」となる。
【０１２３】
図１７は、本実施例の出力制御システムにおける印刷処理の流れを示すシーケンス図である。本処理におけるＳ４０１〜Ｓ４０６は、図９のＳ２０１〜Ｓ２０６と同様であるため、その説明を省略する。
【０１２４】
Ｓ４０７で、デバイスドライバー１２の一例であるプリンタードライバーは、スプールファイルの書き込み（Ｓ４０６）の後に、スプールファイルを開く要求を、ＡＰＩを介してシェル１６に行う。
【０１２５】
Ｓ４０８で、シェル１６は、スプールファイルを開く要求を受信すると、図１４（ｃ）で示すテーブルを参照し、スプールファイルのファイルパスを起動オプションとして指定して、出力制御アプリ１７を起動する。出力制御アプリ１７の一例であるプリンターアプリは、シェル１６から起動されると、スプールファイルの読み込み、出力制御などの処理を実行する（Ｓ４０９〜Ｓ４１１）。
【０１２６】
以上のように、デバイスドライバー１２がシェル１６を直接ＡＰＩで呼び出すことにより、ユーザー操作回数を減らすことが可能となる。
【０１２７】
なお、Ｓ４０７のシェル１６のＡＰＩ呼び出しは、デバイスドライバー１２が提供する設定画面などを介して設定することで、実行するかどうか判断するよう構成しても良い。あるいは、ローカルポートモニター１３のポートオブジェクト情報を参照して、ファイルパスに特定のキーワードが含まれていたら、デバイスドライバー１２がシェル１６呼び出すよう構成しても良い。
【０１２８】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するプログラムを、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１２９】
さらに、本発明には、上述した実施例を適宜組み合わせることにより構成されたシステムやその機能も含まれるものとする。
【図１】
2014174679.tif 000003
【図２】
2014174679.tif 000004
【図３】
2014174679.tif 000005
【図４】
2014174679.tif 000006
【図５】
2014174679.tif 000007
【図６】
2014174679.tif 000008
【図７】
2014174679.tif 000009
【図８】
2014174679.tif 000010
【図９】
2014174679.tif 000011
【図１０】
2014174679.tif 000012
【図１１】
2014174679.tif 000013
【図１２】
2014174679.tif 000014
【図１３】
2014174679.tif 000015
【図１４】
2014174679.tif 000016
【図１５】
2014174679.tif 000017
【図１６】
2014174679.tif 000018
【図１７】
2014174679.tif 000019