(57)【要約】【課題】  クライアント端末がＯＳに依存しないプログラムを実行する環境において、デバイスを制御するためのプログラム全体をＯＳ毎に用意しなくてもすむようにする。【解決手段】  ＯＳ１０５に依存しないプログラムを実行するＲＩＡプラットフォーム環境を備えたシステムに対して、ＯＳ１０５に依存するものと、ＯＳ１０５に依存しないものとにデバイスドライバを分割して実装する。具体的に、プリンタドライバが備える処理部のうち、ＵＩ処理部１１３、ドキュメント解析部１１４、及びプリンタ制御コマンド変換部１１５を、ＲＩＡプラットフォーム環境で動作するＯＳ非依存ドライバ処理部１１２として実装する。その他のドライバ制御処理部１０９、ドキュメント送付処理部１１０、及びプリンタＩＯ処理部１１１を、ＯＳ１０５に依存して動作するＯＳ依存ドライバ処理部１０８として実装する。【選択図】  図２
2011018227.tif 000002
【特許請求の範囲】
【請求項１】
デバイスの動作を制御するプログラムが、ＯＳ（Operating System）に依存して動作するＯＳ依存処理部と、前記ＯＳに依存せずに動作するＯＳ非依存処理部とに分かれて実装されている情報処理装置であって、
前記ＯＳ依存処理部は、前記ＯＳとデータのやり取りを行う第１のインターフェース手段と、前記ＯＳに依存しないプログラムを実行する環境に前記ＯＳ非依存処理部をロードするための処理を行うロード手段と、前記ＯＳ非依存処理部とデータのやり取りを行う第２のインターフェース手段と、前記デバイスとの間でデータの入出力を行うための処理を行う入出力手段とを有し、
前記ＯＳ非依存処理部は、前記ＯＳ依存処理部とデータのやり取りを行う第３のインターフェース手段と、前記ＯＳ依存処理部からのデータを解析する解析手段とを有することを特徴とする情報処理装置。
【請求項２】
前記ＯＳ非依存処理部、又は前記ＯＳ依存処理部は、ユーザインターフェースに係る処理を行うＵＩ処理手段を更に有し、
前記ＯＳ依存処理部は、前記ユーザインターフェースに係る処理が行われると、その処理に基づく動作を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１のインターフェース手段は、前記ＯＳからドキュメントデータを取得し、
前記第２のインターフェース手段は、前記ドキュメントデータを前記解析手段に渡し、
前記解析手段は、前記ドキュメントデータを解析して前記デバイスの制御コマンドを生成し、
前記第１のインターフェース手段は、前記制御コマンドを取得し、
前記入出力手段は、前記制御コマンドを前記デバイスに出力することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記入出力手段は、前記デバイスのステータスに係る情報を、前記デバイスから取得し、
前記ＯＳ非依存処理部、又は前記ＯＳ依存処理部は、ユーザインターフェースに係る処理として前記ステータスに係る情報を画面に表示するＵＩ処理手段を更に有することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記ＯＳ依存処理部は、前記情報処理装置とネットワークを介して相互に接続された外部の装置と通信を行う通信手段を更に有し、
前記ロード手段は、外部から取得された前記ＯＳ非依存処理部を、前記ＯＳに依存しないプログラムを実行する環境にロードすることを特徴とする請求項１〜４の何れか１項に記載の情報処理装置。
【請求項６】
前記ＯＳ依存処理部は、複数の前記ＯＳ非依存処理部が取得されると、それらのバージョンを比較する比較手段を更に有し、
前記ロード手段は、前記比較の結果に基づいて選択された前記ＯＳ非依存処理部を、前記ＯＳに依存しないプログラムを実行する環境にロードすることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
ＯＳ（Operating System）に依存して動作するＯＳ依存処理部と、前記ＯＳに依存しないプログラムを実行する環境で前記ＯＳに依存せずに動作するＯＳ非依存処理部とに分かれているプログラムに基づいてデバイスを制御する制御方法であって、
前記ＯＳ依存処理部は、前記ＯＳとデータのやり取りを行う第１のインターフェースステップと、前記ＯＳに依存しないプログラムを実行する環境に前記ＯＳ非依存処理部をロードするための処理を行うロードステップと、前記ＯＳ非依存処理部とデータのやり取りを行う第２のインターフェースステップと、前記デバイスとの間でデータの入出力を行うための処理を行う入出力ステップとを有し、
前記ＯＳ非依存処理部は、前記ＯＳ依存処理部とデータのやり取りを行う第３のインターフェースステップと、前記ＯＳ依存処理部から送信されたデータを解析する解析ステップとを有することを特徴とする制御方法。
【請求項８】
請求項１〜６の何れか１項に記載の情報処理装置の各手段としてコンピュータを機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法、及びコンピュータプログラムに関し、特に、デバイスを制御するために用いて好適なものである。
【背景技術】
【０００２】
ネットワークインフラの進化に伴い、アプリケーションプログラム（以下、アプリケーションと略称する）をサーバで実行させる事により、クライアント端末に対するリソースの実装が少なくて済む「クライアント/サーバ(C/S)システム」が広まっている。現在では、Ｗｅｂブラウザアプリケーションを中心としたＷｅｂアプリケーションシステムが普及している。当初のC/Sシステムにおけるクライアント端末のリソースは貧弱であったため、クライアント端末で動作可能なアプリケーションの動作条件等が制限されていた。しかしながら、現在では、クライアント端末のリソースがリッチになってきている。このため、クライアント端末側にて、サーバと連動するアプリケーションを動作させる「ＲＩＡ（Rich Internet Application）」の形態が主流となりつつある。
このような動作環境として、アドビ社のＡＩＲ、マイクロソフト社のSilverlight等のＲＩＡプラットフォームが注目されてきている。このＲＩＡプラットフォームは、Windows（登録商標）、Macintosh（登録商標）、Linux（登録商標）等の各種ＯＳで動作するプログラムとしてリリースされている。ＲＩＡプラットフォーム上で動作させるＲＩＡアプリケーションは、どのＯＳ用のＲＩＡプラットフォーム上でも実行する事ができ、ＯＳに依存しないアプリケーションとして開発できるという特徴を持つ。
このＲＩＡプラットフォームが、パソコン機器だけでなく、携帯電話やＰＤＡ、デジタル家電など様々な機器に搭載されることが予想され、今後、このＲＩＡプラットフォームで動作するＲＩＡアプリケーションから各種プリンタへの印刷処理も同様に必要となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−７３９３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、従来のＲＩＡプラットフォーム環境における印刷処理では、ＯＳとのＡＰＩを用いているため、デバイスドライバがＯＳに依存したプログラムとなってしまい、ＲＩＡアプリケーションの特徴を十分に生かすことができていない。例えば、特許文献１では、デバイスドライバを、基本部と処理部とに分けて実装し、基本部にて処理部を外部から取得してロードしてから動作させることが提案されている。特許文献１では、処理部は、デバイスとのＩＯ処理等の、ＯＳに依存する処理を行うようにしている。このため、基本部及び処理部の両方（すなわちデバイスドライバ全体）をＯＳ（Operating System）に依存した実装とせざるを得ない。したがって、各種のＯＳに対応するためには、基本部及び処理部を各種のＯＳ毎に用意する必要があった。このように従来の技術では、デバイスドライバは、ＯＳから起動されて動作し、ＯＳやデバイスとのデータ入出力処理を行うため、ＯＳに依存した実装とならざるを得ない。また、ＲＩＡプラットフォームで動作するプログラムは、不正アクセスなどを防止し、セキュリティを確保するため、プラットフォーム環境外のメモリや、デバイスを直接アクセスすることができない。前述したように、デバイスドライバでは、デバイスとの入出力が不可欠であり、ＯＳのＡＰＩ（Application Program Interface）を使用して処理を行う必要がある。そのため、従来の技術では、デバイスドライバのプログラム全体をＲＩＡプラットフォーム上で動作させることが困難であった。このため、クライアント端末がＯＳに依存しないプログラムを実行する環境を備えていても、デバイスを制御するためのプログラム（デバイスドライバ）全体をＯＳ毎に用意しなければならないという問題があった。
本発明は、このような問題点に鑑みてなされたものであり、クライアント端末がＯＳに依存しないプログラムを実行する環境において、デバイスを制御するためのプログラム全体をＯＳ毎に用意しなくてもすむようにすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、デバイスの動作を制御するプログラムが、ＯＳ（Operating System）に依存して動作するＯＳ依存処理部と、前記ＯＳに依存せずに動作するＯＳ非依存処理部とに分かれて実装されている情報処理装置であって、前記ＯＳ依存処理部は、前記ＯＳとデータのやり取りを行う第１のインターフェース手段と、前記ＯＳに依存しないプログラムを実行する環境に前記ＯＳ非依存処理部をロードするための処理を行うロード手段と、前記ＯＳ非依存処理部とデータのやり取りを行う第２のインターフェース手段と、前記デバイスとの間でデータの入出力を行うための処理を行う入出力手段とを有し、前記ＯＳ非依存処理部は、前記ＯＳ依存処理部とデータのやり取りを行う第３のインターフェース手段と、前記ＯＳ依存処理部からのデータを解析する解析手段とを有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、デバイスの動作を制御するデバイスドライバを、前記ＯＳに依存して動作するＯＳ依存処理部と、前記ＯＳに依存せずに動作するＯＳ非依存処理部とに分けるようにした。したがって、ＯＳに依存しないプログラムを実行する環境で、デバイスドライバの処理の一部を動作させることが可能となり、ＯＳ非依存ドライバ処理部をＯＳの種類に関係なく共通化することが可能となる。このため、ドライバの配布が簡単になり、更に、ＯＳの種類を意識する必要がないため、デバイスを制御するためのプログラム全体をＯＳ毎に用意しなくてもすむようになる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態のクライアント端末のハードウェアの構成を示す図である。
【図２】印刷システムの構成を示す図である。
【図３】ＲＩＡアプリケーション処理を説明するフローチャートである。
【図４】ＲＩＡ印刷開始処理の詳細を説明するフローチャートである。
【図５】ドライバ制御処理を説明するフローチャートである。
【図６】印刷ダイアログ画面処理を説明するフローチャートである。
【図７】ドキュメント送付処理を説明するフローチャートである。
【図８】ドキュメント解析処理を説明するフローチャートである。
【図９】プリンタ制御コマンド変換処理を説明するフローチャートである。
【図１０】プリンタＩＯ処理を説明するフローチャートである。
【図１１】ステータス画面処理を説明するフローチャートである。
【図１２】第２の実施形態の印刷システムの構成を示す図である。
【図１３】第３の実施形態の印刷システムの構成を示す図である。
【図１４】ＯＳ非依存ドライバ起動処理を説明するフローチャートである。
【発明を実施するための形態】
【０００８】
（第１の実施形態）
図面を参照しながら、本発明の第１の実施形態について説明する。
図１は、クライアント端末のハードウェアの構成の一例を示す図である。図１において、ＣＰＵ（Central Processing Unit）２０１は、クライアント端末１０２を統括制御する。ＲＯＭ（Read Only Memory）２０２は、実行プログラム（コンピュータプログラム）等の変更を必要としないデータを格納する。ＲＡＭ（Random Access Memory）２０３は、外部装置等から供給されるプログラムやデータを一時的に記憶する。外部記憶装置２０４は、例えば、クライアント端末１０２に設置されたハードディスク、メモリカード、フレキシブルディスク（ＦＤ）、光ディスク、磁気カード、光カード、ＩＣカード、及びメモリカードの少なくとも何れかを含む。入力デバイスインターフェース２０５は、ユーザが操作を行う操作ボタン２０９等の入力デバイスとのインターフェースである。パネルインターフェース２０６は、クライアント端末１０２の表示パネル２１０とのインターフェースである。ネットワークインターフェース２０７は、インターネット等のネットワーク回線に接続するためのインターフェースである。印字処理インターフェース２０８は、印刷を行うプリンタ１０４とのインターフェースである。システムバス２１１は、２０１〜２０８の各ユニット間を通信可能に相互に接続する。
【０００９】
図２は、印刷システムの構成の一例を示す図である。図２において、ブロック間における実線の矢印は、プログラムの起動の指示を示し、濃い破線の矢印は、ＲＩＡインターフェースによる情報のやり取りを示し、薄い破線の矢印は、ＯＳインターフェースによる情報のやり取りを示す。また、濃い一点鎖線は、モジュール間インターフェースによる情報のやり取りを示し、薄い一点鎖線は、プリンタインターフェースによる情報のやり取りを示す。
本実施形態では、プリンタドライバを構成する各処理部を、ＯＳのＡＰＩを使用する「ＯＳ依存ドライバ処理部」と、ＯＳのＡＰＩを使用しない「ＯＳ非依存ドライバ処理部」との何れかに分けるようにしている。動作がＯＳに依存しないＯＳ非依存ドライバ処理部は、ＲＩＡプラットフォーム上で動作するプログラムとして（ＯＳに依存しないプログラムコードで）実装される。ＯＳ非ドライバ処理部は、動作がＯＳに依存するＯＳ依存ドライバ処理部によってＲＩＡプラットフォーム上にロードされて動作する。
【００１０】
クライアント端末１０２は、ＰＣの他、携帯電話やＰＤＡ等の情報処理装置である場合もある。サーバ１０３は、クライアント端末１０２と、インターネット等のネットワーク１０１を介して通信する。アプリケーション１１６は、クライアント端末１０２のＲＩＡアプリケーション１０７と連動して動作するアプリケーションである。プリンタ１０４は、クライアント端末１０２に接続され、印字処理を行う。クライアント端末１０２とプリンタ１０４との接続形態には、ＵＳＢやBluetooth（登録商標）等を用いた方法があるが、その接続形態は限定されない。ＯＳ（Operating System）１０５は、クライアント端末１０２のオペレーティングシステムである。ＲＩＡプラットフォーム１０６は、ＯＳ１０５上で動作し、ＲＩＡアプリケーション１０７にＡＰＩを提供する。ＲＩＡアプリケーション１０７は、ＲＩＡプラットフォーム１０６上で動作するアプリケーションである。ＲＩＡアプリケーション１０７は、ＲＩＡプラットフォーム１０６のＡＰＩを使用して動作することにより、ＯＳ１０５に依存しないプログラムとして実装することが可能である。ＯＳ依存ドライバ処理部１０８は、プリンタドライバの一部であり、プリンタドライバ処理においてＯＳ１０５と連動して動作する。ＯＳ非依存ドライバ処理部１１２は、プリンタドライバ処理においてＯＳに依存しない処理を行う。ＯＳ非依存ドライバ処理部１１２は、プリンタドライバの一部であり、ＲＩＡプラットフォーム環境においてＲＩＡプラットフォーム１０６の用意するＡＰＩを用いて動作するように実装される。
【００１１】
プリンタドライバの構成要素は、独立したモジュールとして複数のプロセスで動作するように実装することも、各処理をスレッドで動作させ同一のプロセスにて動作するように実装することも可能である。すなわち、ＯＳ依存ドライバ処理部１０８とＯＳ非依存ドライバ処理部１１２とが分かれてプリンタドライバが構成されていればよい。
ドライバ制御処理部１０９は、プリンタドライバ全体の動作管理を行い、ＯＳ非依存ドライバ処理部１１２の起動処理と、ＯＳ依存ドライバ処理部１０８の各モジュールの起動処理とを行う。ドキュメント送付処理部１１０は、ドキュメントデータをＯＳ１０５から取得し、ドキュメント解析部１１４にドキュメントデータを送付する処理を行う。プリンタＩＯ処理部１１１は、ＯＳ非依存ドライバ処理部１１２にて変換されたプリンタ制御コマンドを、プリンタ制御コマンド変換部１１５からモジュール間インターフェースを用いて受け取り、プリンタ１０４へ出力する処理を行う。
ＵＩ処理部１１３は、ＯＳ依存ドライバ処理部１０８で動作するドライバ制御処理部１０９と、モジュール間インターフェースを用いて通信し、印刷ダイアログ画面やステータス画面等の画面（ユーザインターフェース）に関わる画面ＵＩ処理を行う。モジュール間インターフェースは、ソケットやパイプの従来技術を用いて実装する。ドキュメント解析部１１４は、ＯＳ依存ドライバ処理部１０８で動作するドキュメント送付処理部１１０からモジュール間インターフェースを用いてドキュメントデータを取得し、ドキュメントデータの解析処理と描画コマンドの生成処理とを行う。プリンタ制御コマンド変換部１１５は、ドキュメント解析部１１４にて生成された描画コマンドを、プリンタ制御コマンドに変換する。
【００１２】
次に、ＲＩＡアプリケーション１０７からの要求により印刷する場合の印刷システムの処理の概要の一例について説明する。
ＲＩＡアプリケーション１０７は、ＲＩＡプラットフォーム１０６に対して印刷要求を行う。ＲＩＡプラットフォーム１０６は、ＲＩＡアプリケーション１０７からの印刷要求に対してＯＳ１０５へ印刷要求を行う。ＯＳ１０５は、ＲＩＡプラットフォーム１０６からの印刷要求に対して、プリンタドライバの一部であるＯＳ依存ドライバ処理部１０８を起動する。ＯＳ依存ドライバ処理部１０８は、一般的なプリンタドライバの起動と同様の起動処理にて起動される。ＯＳ依存ドライバ処理部１０８は、起動すると、ＯＳ非依存ドライバ処理部１１２をＲＩＡプラットフォーム１０６上で動作させるため、ＯＳ１０５に対して、ＯＳ非依存ドライバ処理部１１２の起動要求を行う。プリンタドライバの各処理部は、ＯＳ依存ドライバ処理部１０８とＯＳ非依存ドライバ処理部１１２との間のモジュール間インターフェース処理を確立する。そして、ＯＳ１０５からの印刷要求を、ドライバ制御処理部１０９が受け取り、ＵＩ処理部１１３が印刷ダイアログ処理を実行する。印刷ダイアログ処理にて印刷開始の操作がされると、ドキュメントデータが生成され、ドキュメント送付処理部１１０が、そのドキュメントデータを取得し、ＯＳ非依存ドライバ処理部１１２のドキュメント解析部１１４に送付する。ドキュメント解析部１１４は、そのドキュメントデータを解析し、プリンタ制御コマンド変換部１１５は、その解析の結果に基づいて、そのドキュメントデータをプリンタ制御コマンドに変換する。ＯＳ依存ドライバ処理部１０８で動作するプリンタＩＯ処理部１１１は、プリンタ制御コマンド変換部１１５で得られたプリンタ制御コマンドを取得し、プリンタ１０４へ出力する。これによりプリンタ１０４で印刷処理が行われる。
【００１３】
次に、フローチャートを参照しながら、印刷システムの処理の一例を詳細に説明する。
図３は、ＲＩＡアプリケーション処理の一例を説明するフローチャートである。
ステップＳ５０１において、ＲＩＡアプリケーション１０７は、使用するメモリ領域の初期化等の初期処理を行う。次に、ステップＳ５０２において、ＲＩＡアプリケーション１０７は、Ｉ/Ｏやキー操作等の処理イベントがあるまで待機する。処理イベントとは、ＲＩＡアプリケーション１０７に対するキー操作や終了要求等の処理種別を判定するためのコマンドＩＤを示すメッセージ情報である。ユーザの操作による各種要求やサーバ１０３からの要求等の処理イベントが発生すると、ステップＳ５０３において、ＲＩＡアプリケーション１０７は、処理イベントの種別を判定する。この判定の結果、処理イベントが終了要求である場合、ステップＳ５０４において、ＲＩＡアプリケーション１０７は、メモリ領域の開放や、アプリケーションを閉じる処理等の終了処理を行い、ＲＩＡアプリケーション処理を終了する。一方、ステップＳ５０３にて、処理イベントが印刷要求であると判定された場合、ステップＳ５０５において、ＲＩＡ印刷開始処理が行われる。ＲＩＡ印刷開始処理の詳細については、図４を用いて後述する。ステップＳ５０３にて、処理イベントが終了要求及び印刷要求でないと判定された場合、ステップＳ５０６において、ＲＩＡアプリケーション１０７は、キー操作処理等のアプリケーション処理を行う。ステップＳ５０５、Ｓ５０６の処理が完了すると、ステップＳ５０２に戻り、ＲＩＡアプリケーション１０７は、次の処理イベントが発生するまで待機する。
【００１４】
図４は、ＲＩＡ印刷開始処理の詳細を説明するフローチャートである。具体的に図４は、図３のステップＳ５０５の詳細を示すものである。
ステップＳ６０１において、ＲＩＡアプリケーション１０７は、ＲＩＡプラットフォーム１０６を介してＯＳ１０５に対して、印刷ダイアログの表示要求を行う。印刷ダイアログ画面は、ＯＳ１０５がＯＳ依存ドライバ処理部１０８に対して表示を要求した後、図５のステップＳ７０７の処理が行われることにより起動する。印刷ダイアログ画面処理については、図６を用いて後述する。ユーザによる印刷ダイアログ画面に対する操作が完了すると、ＵＩ処理部１１３は、印刷ダイアログ画面を閉じる。そして、ステップＳ６０２において、ＲＩＡアプリケーション１０７は、ＵＩ処理部１１３からドライバ制御処理部１０９及びＯＳ１０５を介して、印刷ダイアログ画面で指定された各種印刷パラメータの取得を行う。次に、ステップＳ６０３において、ＲＩＡアプリケーション１０７は、ＰＤＦやＸＰＳ形式等のドキュメントデータの生成処理を行う。次に、ステップＳ６０４において、ＲＩＡアプリケーション１０７は、生成したドキュメントデータをＯＳ１０５に出力して、ＲＩＡ印刷開始処理を終了する。ＲＩＡアプリケーション１０７の印刷処理としては、ドキュメントデータをＯＳ１０５に対して出力することで完了するが、印刷処理は、ＯＳ１０５が引き続き行う。すなわち、ＯＳ１０５は、生成されたドキュメントデータを、ＯＳ依存ドライバ処理部１０８（プリンタドライバ）に渡すことにより、印刷処理を行う。その後、前述したように、ＯＳ依存ドライバ処理部１０８のドキュメント送付処理部１１０が、ドキュメントデータを、ＯＳ非依存ドライバ処理部１１２のドキュメント解析部１１４に送付することにより印刷処理が実行される。
【００１５】
図５は、ドライバ制御処理の一例を説明するフローチャートである。
ステップＳ７０１において、ＯＳ依存ドライバ処理部１０８のドライバ制御処理部１０９は、使用するメモリ領域等の初期化処理を行い、ＯＳ依存ドライバ処理部１０８で動作するドキュメント送付処理部１１０、及びプリンタＩＯ処理部１１１の起動を行う。次に、ステップＳ７０２において、ドライバ制御処理部１０９は、ＯＳ非依存ドライバ処理部１１２の起動処理を行う。ここでは、ＯＳ依存ドライバ処理部１０８と一緒にインストールされているＯＳ非依存ドライバ処理部１１２の起動処理を行うものとする。ＯＳ非依存ドライバ処理部１１２を、ＲＩＡプラットフォーム１０６で動作させるために、ドライバ制御処理部１０９は、ＯＳ１０５を介して起動要求を行う。プリンタドライバの各処理の起動が完了すると、ステップＳ７０３に進み、ドライバ制御処理部１０９は、ＯＳ１０５やＵＩ処理部１１３からのＵＩ処理要求や、プリンタＩＯ処理部１１１からのステータス通知等の処理イベントの待機状態になる。処理イベントとは、例えば、ＵＩ処理部１１３からの終了要求や、プリンタＩＯ処理部１１１からのステータス通知等の処理の種類を判定するためのコマンドＩＤを示すメッセージ情報である。
【００１６】
処理イベントが発生するとステップＳ７０４において、ドライバ制御処理部１０９は、処理イベントの種別を判定する。この判定の結果、処理イベントが終了要求の場合、ステップＳ７０５において、ドライバ制御処理部１０９は、ＵＩ処理部１１３、及びドキュメント送付処理部１１０へ終了要求を送付した後、使用メモリの開放処理等の終了処理を行い、ドライバ制御処理を終了する。終了要求は、ＵＩ処理部１１３で処理されるステータス画面に対してユーザがジョブのキャンセルをするための操作をした場合に、ＵＩ処理部１１３からドライバ制御処理部１０９に対して発行される。
ステップＳ７０４にて、処理イベントがステータス通知であると判定された場合、ステップＳ７０６において、ドライバ制御処理部１０９は、次の処理を行う。すなわち、ドライバ制御処理部１０９は、ＵＩ処理部１１３によりステータス画面処理が起動されていない場合、ＵＩ処理部１１３に対して、ステータス画面処理の起動処理を行い、ＵＩ処理部１１３のステータス画面処理にステータス更新通知を発行する。そして、ステップＳ７０３に進む。ステータス画面処理の詳細については、図１１を用いて後述する。
ステップＳ７０４にて、処理イベントが印刷開始要求であると判定された場合、ステップＳ７０７において、印刷ダイアログ画面処理が行われる。印刷ダイアログ画面処理の詳細については、図６を用いて後述する。印刷ダイアログ画面処理が終了すると、ドライバ制御処理部１０９は、ＯＳ１０５に対して、印刷ダイアログ画面処理の完了を通知し、ステップ７０３に戻る。
以上のように本実施形態では、例えば、ドライバ制御処理部１０９を用いることにより、第１のインターフェース手段、第２のインターフェース手段、及びロード手段の一例が実現される。
【００１７】
図６は、印刷ダイアログ画面処理の一例を説明するフローチャートである。
ステップＳ９０１において、ＯＳ非依存ドライバ処理部１１２のＵＩ処理部１１３は、ＯＳ依存ドライバ処理部１０８のドライバ制御処理部１０９との間で、モジュール間インターフェースを確立する。次に、ステップＳ９０２において、ＵＩ処理部１１３は、ドライバ制御処理部１０９から、プリンタ名、用紙サイズ、用紙方向等のプリンタ依存情報を取得する。ＵＩ処理部１１３は、このプリンタ依存情報を、ＸＭＬ等の形式にて取得し、取得したデータを印刷ダイアログ画面で表示する形式に変換して使用する。次に、ＵＩ処理部１１３は、ステップＳ９０３において、印刷ダイアログ画面の表示処理を行い、ステップＳ９０４において、ユーザの操作に基づく処理イベントの発生があるまで待機する。
印刷ダイアログ画面に対するユーザによる操作が行われると、その操作に対応する処理イベントが発生する。そうすると、ステップＳ９０５において、ＵＩ処理部１１３は、発生した処理イベントが印刷開始操作であるか否かを判定する。この判定の結果、処理イベントが印刷開始操作である場合、ステップＳ９０６に進む。ステップＳ９０６に進むと、ＵＩ処理部１１３は、印刷ダイアログ画面で指定された「プリンタ名」、「用紙サイズ」、「用紙方向」、「両面印刷」、「部数」等の印刷パラメータ情報を、ドライバ制御処理部１０９へ通知する。次に、ステップＳ９０７において、ＵＩ処理部１１３は、印刷ダイアログ画面を閉じる処理、及び使用メモリの開放処理等の終了処理を行い、印刷ダイアログ画面処理を終了する。印刷パラメータ情報の形式は、例えば、ＸＭＬ形式である。
【００１８】
ステップＳ９０５において、処理イベントが印刷開始操作でないと判定された場合、ステップＳ９０８において、ＵＩ処理部１１３は、処理イベントがキャンセル操作であるか否かを判定する。この判定の結果、処理イベントがキャンセル操作である場合、前述したステップＳ９０７に進み、印刷ダイアログ画面処理を終了する。一方、ステップＳ９０８にて、処理イベントがキャンセル操作でないと判定された場合、ステップＳ９０９において、ＵＩ処理部１１３は、印刷ダイアログ画面のカーソル移動や値入力等の印刷ダイアログ画面操作処理を行い、ステップＳ９０３に戻る。
印刷ダイアログ画面に対する操作が完了すると、ドライバ制御処理部１０９からＯＳ１０５に画面処理完了が通知され、ＲＩＡプラットフォーム１０６にてドキュメントデータが生成され印刷処理が続行される。ドキュメントデータは、ドキュメント送付処理部１１０にて取得される。
以上のように本実施形態では、例えば、ＵＩ処理部１１３を用いることにより、ＵＩ処理手段及び第３のインターフェース手段の一例が実現される。
【００１９】
図７は、ドキュメント送付処理の一例を示すフローチャートである。
ステップＳ１２０１において、ドキュメント送付処理部１１０は、ＯＳ依存ドライバ処理部１０８のドキュメント送付処理部１１０は、メモリの初期化等の初期処理を行う。また、ドキュメント送付処理部１１０は、ＯＳ非依存ドライバ処理部１１２のドキュメント解析部１１４との間で、モジュール間インターフェースを確立する。次に、ステップＳ１２０２において、ドキュメント送付処理部１１０は、ＯＳ１０５からのデータ受信や、ドライバ制御処理部１０９からの終了要求等の処理イベントがあるまで待機する。処理イベントが発生すると、ステップＳ１２０３において、ドキュメント送付処理部１１０は、処理イベントが終了要求であるか否かを判定する。この判定の結果、処理イベントが終了要求であった場合、ステップＳ１２０４において、ドキュメント送付処理部１１０は、ドキュメント解析部１１４へ終了要求を発行し、ドキュメント送付処理を終了する。
【００２０】
一方、ステップＳ１２０３において、処理イベントが終了要求でないと判定された場合には、ステップＳ１２０５に進み、ドキュメント送付処理部１１０は、ＯＳ１０５からのドキュメントデータの取得処理を行う。次に、ステップＳ１２０６において、ドキュメント送付処理部１１０は、ドキュメントデータを全て取得したか否かを判定する。ここでは、ドキュメントデータの取得処理の結果、ドキュメントデータを取得できなかった場合に、ドキュメント送付処理部１１０は、ドキュメントデータを全て取得したと判定する。この判定の結果、ドキュメントデータを全て取得完了した場合には、前述したステップＳ１２０４へ進み、ドキュメント送付処理を終了する。
一方、ステップＳ１２０６において、処理するドキュメントデータが残っていると判定された場合、ステップＳ１２０７において、ドキュメント送付処理部１１０は、ドキュメント解析部１１４へドキュメントデータを送付する。ステップＳ１２０７の処理が完了すると、ステップＳ１２０２に戻り、次の処理イベントの待機状態になる。
以上のように本実施形態では、例えば、ドキュメント送付処理部１１０を用いることにより、第１のインターフェース手段、及び第２のインターフェース手段の一例が実現される。
【００２１】
図８は、ドキュメント解析処理の一例を説明するフローチャートである。
ステップＳ１３０１において、ドキュメント解析部１１４は、ＯＳ依存ドライバ処理部１０８のドキュメント送付処理部１１０との間で、モジュール間インターフェースを確立する。次に、ステップＳ１３０２において、ドキュメント解析部１１４は、ドキュメント送付処理部１１０からのデータ受信や終了要求等の処理イベントがあるまで待機する。処理イベントが発生するとステップＳ１３０３において、ドキュメント解析部１１４は、処理イベントが終了要求であるか否かを判定する。この判定の結果、処理イベントが終了要求である場合、ステップＳ１３０４において、ドキュメント解析部１１４は、プリンタ制御コマンド変換部１１５へ終了要求を発行し、ドキュメント解析処理を終了する。
一方、ステップＳ１３０３において、処理イベントが終了要求でない場合には、ステップＳ１３０５に進み、ドキュメント解析部１１４は、ドキュメント送付処理部１１０からドキュメントデータを取得する。次に、ステップＳ１３０６において、ドキュメント解析部１１４は、取得したドキュメントデータの解析処理を行い、描画コマンドを生成する。次に、ステップＳ１３０７において、ドキュメント解析部１１４は、描画コマンドをプリンタ制御コマンド変換部１１５へ引き渡し、ステップＳ１３０２に戻る。
以上のように本実施形態では、例えば、ドキュメント解析部１１４を用いることにより、第３のインターフェース手段、及び解析手段の一例が実現される。
【００２２】
図９は、プリンタ制御コマンド変換処理の一例を説明するフローチャートである。
ステップＳ１４０１において、プリンタ制御コマンド変換部１１５は、ＯＳ依存ドライバ処理部１０８のプリンタＩＯ処理部１１１との間で、モジュール間インターフェースを確立する。次に、ステップＳ１４０２において、プリンタ制御コマンド変換部１１５は、ドキュメント解析部１１４からのデータ受信や終了要求等の処理イベントがあるまで待機する。処理イベントが発生すると、ステップＳ１４０３において、プリンタ制御コマンド変換部１１５は、処理イベントが終了要求であるか否かを判定する。この判定の結果、処理イベントが終了要求であった場合、ステップＳ１４０４において、プリンタ制御コマンド変換部１１５は、プリンタＩＯ処理部１１１へ終了要求を発行し、プリンタ制御コマンド変換処理を終了する。
一方、ステップＳ１４０３において、処理イベントが終了要求でないと判定された場合、ステップＳ１４０５に進む。ステップＳ１４０５に進むと、プリンタ制御コマンド変換部１１５は、ドキュメント解析部１１４で生成された描画コマンドを、プリンタ用コマンドであるプリンタ制御コマンドに変換する。次に、ステップＳ１４０６において、プリンタ制御コマンド変換部１１５は、プリンタＩＯ処理部１１１へモジュール間インターフェースを用いて、生成したプリンタ制御コマンドを送信する。プリンタＩＯ処理部１１１へのデータの送信が完了したら、ステップＳ１４０２に戻る。
以上のように本実施形態では、例えば、プリンタ制御コマンド変換部１１５を用いることにより、第３のインターフェース手段、及び解析手段の一例が実現される。
【００２３】
図１０は、プリンタＩＯ処理の一例を説明するフローチャートである。
ステップＳ１５０１において、プリンタＩＯ処理部１１１は、ＯＳ非依存ドライバ処理部１１２のプリンタ制御コマンド変換部１１５との間で、モジュール間インターフェースを確立する。次に、ステップＳ１５０２において、プリンタＩＯ処理部１１１は、プリンタ制御コマンド変換部１１５からのデータ受信や終了要求等の処理イベントがあるまで待機する。このとき、一定時間、処理イベントが発生しなかった場合に、待機状態から抜けるように設定しておく。処理イベントが発生すると、ステップＳ１５０３において、プリンタＩＯ処理部１１１は、処理イベントが終了要求であるか否かを判定する。この判定の結果、処理イベントが終了要求である場合、ステップＳ１５０４において、プリンタＩＯ処理部１１１は、ドライバ制御処理部１０９へ終了要求を発行し、プリンタＩＯ処理を終了する。
一方、ステップＳ１５０３において、処理イベントが終了要求でないと判定された場合、ステップＳ１５０５において、プリンタＩＯ処理部１１１は、一定時間が経過したか否かを判定する。この判定の結果、一定時間が経過していると判定した場合、ステップＳ１５０６において、プリンタＩＯ処理部１１１は、プリンタ１０４からステータス情報を取得する。ここで取得されるステータス情報は、プリンタ１０４に固有の形式となっている。次に、ステップＳ１５０７において、プリンタＩＯ処理部１１１は、取得したステータス情報を、ドライバ制御処理部１０９へ送付する。そして、プリンタＩＯ処理部１１１は、一定時間経過チェック用の値の更新を行う。ステップＳ１５０７におけるステータス情報の通知処理において、ステータス情報の変化の有無を判定する手段を実装することもできる。すなわち、ステータス情報の変化があった場合には、ドライバ制御処理部１０９へのステータス情報の通知を行い、ステータス情報の変化がない場合には、ステータス情報の通知を行わないようにすることも可能である。
【００２４】
ステップＳ１５０５において、一定時間が経過していないと判定された場合、及びステップＳ１５０７の処理を終了した場合、ステップＳ１５０８に進む。ステップＳ１５０８に進むと、プリンタＩＯ処理部１１１は、処理イベントがプリンタ制御コマンドのデータの受信であるか否かを判定する。この判定の結果、処理イベントがプリンタ制御コマンドのデータの受信でない場合、ステップＳ１５０２に戻る。
一方、ステップＳ１５０８において、処理イベントがプリンタ制御コマンドのデータの受信である場合には、ステップＳ１５０９に進む。ステップＳ１５０９に進むと、プリンタＩＯ処理部１１１は、プリンタ制御コマンド変換部１１５からプリンタ制御コマンドを取得する。次に、ステップＳ１５１０において、プリンタＩＯ処理部１１１は、プリンタ制御コマンドをプリンタ１０４へ出力する。そして、ステップＳ１５０２へ戻る。
以上のように本実施形態では、例えば、プリンタＩＯ処理部１１１を用いることにより、入出力手段の一例が実現される。
【００２５】
図１１は、ステータス画面処理の一例を説明するフローチャートである。
ステップＳ１１０１において、ＵＩ処理部１１３は、使用するメモリ領域の初期化等の初期処理を行う。また、ＵＩ処理部１１３は、ＯＳ依存ドライバ処理部１０８のドライバ制御処理部１０９との間で、モジュール間インターフェースを確立する。次に、ステップＳ１１０２において、ＵＩ処理部１１３は、ドライバ制御処理部１０９からのステータス情報や終了要求等の処理イベントがあるまで待機する。処理イベントが発生すると、ステップＳ１１０３において、ＵＩ処理部１１３は、処理イベントが終了要求であるか否かを判定する。この判定の結果、処理イベントが終了要求である場合には、ステップＳ１１０４において、ＵＩ処理部１１３は、終了処理を行い、ステータス画面処理を終了する。
一方、ステップＳ１１０３において、処理イベントが終了要求でない場合、ステップＳ１１０５において、ＵＩ処理部１１３は、処理イベントがドライバ制御処理部１０９からのステータス情報の通知であるかを判定する。この判定の結果、処理イベントがステータス情報の通知でない場合、ステップＳ１１０６において、ＵＩ処理部１１３は、ステータス画面でのカーソルの移動、値の入力等のステータス画面キー処理を行う。次に、ステップＳ１１０７において、ＵＩ処理部１１３は、ステータス画面において、ユーザによって、ジョブのキャンセルのための操作がなされたか否かを判定する。この判定の結果、ジョブのキャンセルのための操作がなされていない場合には、ステップＳ１１０２に戻る。一方、ジョブのキャンセルのための操作がなされた場合、ステップＳ１１０８において、ＵＩ処理部１１３は、終了要求をドライバ制御処理部１０９に通知する処理を行い、ステップＳ１１０２に戻る。
ステップＳ１１０５において、処理イベントがステータス情報の通知であると判定された場合、ステップＳ１１０９において、ＵＩ処理部１１３は、ドライバ制御処理部１０９からステータス情報を取得する。取得したステータス情報はプリンタ１０４に固有の形式となっている。このため、ステップＳ１１１０において、ＵＩ処理部１１３は、取得したステータス情報を表示ステータスへ変換する。次に、ステップＳ１１１１において、ＵＩ処理部１１３は、表示ステータスをステータス画面に表示する。そして、ステップＳ１１０２へ戻る。
以上のように本実施形態では、例えば、ＵＩ処理部１１３を用いることにより、ＵＩ処理手段及び第３のインターフェース手段の一例が実現される。
【００２６】
以上のように本実施形態では、ＯＳ１０５に依存しないプログラムを実行するＲＩＡプラットフォーム環境を備えたシステムに対して、ＯＳ１０５に依存するものと、ＯＳ１０５に依存しないものとにデバイスドライバを分割して実装するようにした。具体的に、プリンタドライバが備える処理部のうち、ＵＩ処理部１１３、ドキュメント解析部１１４、及びプリンタ制御コマンド変換部１１５を、ＲＩＡプラットフォーム環境で動作するＯＳ非依存ドライバ処理部１１２（ＯＳ非依存処理部の一例）として実装した。一方、その他のドライバ制御処理部１０９、ドキュメント送付処理部１１０、及びプリンタＩＯ処理部１１１については、ＯＳ１０５に依存して動作するＯＳ依存ドライバ処理部１０８（ＯＳ依存処理部の一例）として実装した。したがって、デバイスドライバの一例であるプリンタドライバの処理の一部を、ＯＳ１０５に依存しないプログラムを実行する環境にて動作させることが可能となる。よって、ＯＳ非依存ドライバ処理部１１２をクライアント端末１０２のＯＳ１０５の種類に関係なく共通化することが可能となる。このため、プリンタドライバの配布が簡単になり、更に、ＯＳ非依存ドライバ処理部１１２については、ＯＳ１０５の種類を意識する必要がないため、プリンタドライバの入手及びインストール操作を簡単にすることが可能となる。また、プログラムの共通化により、プリンタドライバの開発効率の向上に繋がる。
【００２７】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。前述した第１の実施形態では、ＯＳ非依存ドライバ処理部１１２にＵＩ処理部１１３を設けた場合を例に挙げて説明した。これに対し、本実施形態では、ＯＳ依存ドライバ処理部にＵＩ処理部を設ける場合について説明する。このように本実施形態と前述した第１の実施形態とは、ＵＩ処理部の配置先が異なることと、それによる処理とが主として異なる。したがって、本実施形態の説明において、前述した第１の実施形態と同一の部分については、図１〜図１１に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００２８】
図１２は、印刷システムの構成の一例を示す図である。
図１２に示すように、ＯＳ非依存ドライバ処理部３１３には、ドキュメント解析部１１４とプリンタ制御コマンド変換部１１５とが設けられている。一方、ＯＳ依存ドライバ処理部３０８には、ドライバ制御処理部３０９、ドキュメント送付処理部１１０、及びプリンタＩＯ処理部１１１に加えて、ＵＩ処理部３１０が設けられている。
ドライバ制御処理部３０９は、ＯＳ非依存ドライバ処理部３１３の起動処理と、プリンタドライバ全体の動作管理とを行う。ＵＩ処理部３１０は、印刷ダイアログ画面やステータス表示画面等の画面に関わる画面ＵＩ処理を行う。
【００２９】
本実施形態では、ＵＩ処理部３１０を、プリンタドライバのＯＳ非依存ドライバ処理部３１３にて動作させるのではなく、ＯＳ依存ドライバ処理部３０８にて動作するように実装している。そのため、ＵＩ処理部３１０とドライバ制御処理部３０９のモジュール間インターフェースに通信を用いるのではなく、ＯＳ依存ドライバ処理部３０８の実装形態に合わせ、ＵＩ処理部３１０及びドライバ制御処理部３０９は、直接関数コールする等の処理を行う。
そこで、本実施形態では、第１の実施形態における印刷ダイアログ画面処理（図６を参照）のステップＳ９０１の処理の代わりに、ＵＩ処理部３１０は、使用するメモリ領域の初期化等の初期処理を行う。同様に、本実施形態では、第１の実施形態におけるステータス処理（図１１を参照）のステップＳ１１０１の処理の代わりに、ＵＩ処理部３１０は、使用するメモリ領域の初期化等の初期処理を行う。その後、前述したような処理により、ＵＩ処理部３１０及びドライバ制御処理部３０９が通信可能になり、図６に示したステップＳ９０２以降、図１１に示したステップＳ１１０２以降と同様の処理が行われる。尚、本実施形態では、ＵＩ処理部３１０は、ＯＳ依存ドライバ処理部３０８にあるので、第３のインターフェース手段を構成せず、ドライバ制御処理部３０９は、第２のインターフェース手段を構成しない。
以上のように、ＵＩ処理部３１０については、ＯＳ依存ドライバ部に設けても、第１の実施形態と同様の効果を得ることができる。
【００３０】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。前述した第１、第２の実施形態では、ＯＳ非依存ドライバ処理部がＯＳ依存ドライバ処理部と一緒にインストールされる場合を例に挙げて説明した。これに対し、本実施形態では、ＯＳ非依存ドライバ処理部のプログラムを、プリンタ１０４又はサーバ１０３から取得してから、ＲＩＡプラットフォーム１０６にロードして動作させるようにする。このように本実施形態と前述した第１、第２の実施形態とでは、クライアント端末１０２におけるＯＳ非依存ドライバ処理部の取得方法が主として異なる。したがって、本実施形態の説明において、前述した第１、第２の実施形態と同一の部分については、図１〜図１２に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００３１】
図１３は、印刷システムの構成の一例を示す図である。図１３において、点線の矢印は、プログラムのロードを示す。
図１３に示すように、ＯＳ非依存ドライバ処理部１７１７、１７１８は、サーバ１０３又はプリンタ１０４に格納されている。サーバ１０３又はプリンタ１０４に格納されたＯＳ非依存ドライバ処理部１７１７、１７１８のバージョン情報は、プリンタドライバが起動された際に、ＯＳ依存ドライバ処理部１０８のドライバ制御処理部１０９において取得される。そして、ドライバ制御処理部１０９は、サーバ１０３及びプリンタ１０４に格納されたＯＳ非依存ドライバ処理部１７１７、１７１８の何れが新しいバージョンであるかを判定する。そして、新しいバージョンのＯＳ非依存ドライバ処理部１７１７又は１７１８がＲＩＡプラットフォーム１０６にロードされて実行される。
【００３２】
本実施形態では、第１の実施形態のドライバ制御処理のステップＳ７０２（図５）において、ドライバ制御処理部１０９は、プリンタ１０４又はサーバ１０３からＯＳ非依存ドライバ処理部を取得し、取得したＯＳ非依存ドライバ処理部を用いて起動処理を行う。
図１４は、図５のステップＳ７０２のＯＳ非依存ドライバ起動処理の一例を説明するフローチャートである。
ステップＳ８０１において、ドライバ制御処理部１０９は、ネットワーク１０１を経由して取得することが可能な（ここでは、サーバ１０３から取得することが可能な）プリンタドライバ（ＯＳ非依存ドライバ処理部）のバージョンを取得する。次に、ステップＳ８０２において、ドライバ制御処理部１０９は、プリンタ１０４から取得することが可能なプリンタドライバのバージョンを取得する。次に、ステップＳ８０３において、ドライバ制御処理部１０９は、ステップＳ８０１、Ｓ８０２で取得したバージョンを比較し、ステップＳ８０１で取得したバージョンの方が、ステップＳ８０２で取得したバージョンよりも新しいか否かを判定する。この判定の結果、ステップＳ８０１で取得したバージョンの方が、ステップＳ８０２で取得したバージョンよりも新しい場合には、ステップＳ８０４に進む。ステップＳ８０４に進むと、ドライバ制御処理部１０９は、ＯＳ非依存ドライバ処理部１７１７を選択してサーバ１０３から取得する。次に、ステップＳ８０５において、ドライバ制御処理部１０９は、取得したＯＳ非依存ドライバ処理部１７１７（プリンタドライバ）をプリンタ１０４へ格納する。そして、後述するステップＳ８０７に進む。
【００３３】
一方、ステップＳ８０３において、ステップＳ８０２で取得したバージョンの方が、ステップＳ８０１で取得したバージョンよりも新しい場合には、ステップＳ８０６に進む。ステップＳ８０６に進むと、ドライバ制御処理部１０９は、ＯＳ非依存ドライバ処理部１７１８を選択してプリンタ１０４から取得する。そして、ステップＳ８０７に進む。
ステップＳ８０７に進むと、ドライバ制御処理部１０９は、ステップＳ８０４又はＳ８０６で取得したＯＳ非依存ドライバ処理部を、ＲＩＡプラットフォーム１０６で動作させるために、ＯＳ１０５を介して、当該プリンタドライバの起動処理を行う。
もし、ステップＳ８０４又はＳ８０６、ステップＳ８０４及びＳ８０６にてＯＳ非依存ドライバ処理部を取得できなかった場合には、ＯＳ依存ドライバ処理部と一緒にインストールされているデフォルトのＯＳ非依存ドライバ処理部を用いて起動処理を行う。以上の処理により、ＯＳ非依存ドライバ処理起動処理が終了する。
以上のように本実施形態では、例えば、ドライバ制御処理部１０９を用いることにより、第１のインターフェース手段、第２のインターフェース手段、及びロード手段に加え、通信手段の一例が実現される。
以上のように本実施形態では、サーバ１０３、プリンタ１０４から、新しいバージョンのＯＳ非依存ドライバ処理部を取得するようにしたので、第１、第２の実施形態で説明した効果に加え、ＯＳ非依存ドライバ処理部を柔軟に変更できるという効果が得られる。
尚、本実施形態では、第１の実施形態の構成を前提として説明を行った。しかしながら、ＵＩ処理部がＯＳ非依存ドライバ処理部にない第２の実施形態の構成を前提としても、前述したのと同様にしてサーバ１０３、プリンタ１０４から、新たしいバージョンのＯＳ非依存ドライバ処理部を取得できる。
【００３４】
（その他の実施例）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
また、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図１】
2011018227.tif 000003
【図２】
2011018227.tif 000004
【図３】
2011018227.tif 000005
【図４】
2011018227.tif 000006
【図５】
2011018227.tif 000007
【図６】
2011018227.tif 000008
【図７】
2011018227.tif 000009
【図８】
2011018227.tif 000010
【図９】
2011018227.tif 000011
【図１０】
2011018227.tif 000012
【図１１】
2011018227.tif 000013
【図１２】
2011018227.tif 000014
【図１３】
2011018227.tif 000015
【図１４】
2011018227.tif 000016