以下、本発明を実施するための最良の形態について、図面を参照して説明する。
図1は、本発明の一実施の形態に係る画像処理システムの全体構成を示すブロック図である。
図1において、画像処理システムは、互いにネットワークを介して接続された画像処理装置110,120,130とデスクトップコンピュータ101とから構成される。ネットワークは、例えばLAN(Local Area Network)100で構成される。
画像処理装置110は、画像入力デバイスであるスキャナ113、画像出力デバイスであるプリンタ114、制御ユニット(Controller Unit)111、ユーザインタフェースである操作部112から構成される。
スキャナ113、プリンタ114、操作部112はそれぞれ、制御ユニット111に接続されて、制御ユニット111からの命令によって制御される。制御ユニット111は、LAN100に接続されている。
また、画像処理装置120、130は、画像処理装置110と同様の構成となっており、画像処理装置120は、スキャナ123、プリンタ124、操作部122から構成され、それらが制御ユニット121に接続されている。また、画像処理装置130は、スキャナ133、プリンタ134、操作部132から構成されており、それらが制御ユニット131に接続されている。
また、デスクトップコンピュータ101は、ユーザが常用する情報処理装置であり、ユーザが利用するアプリケーションプログラムやユーザのデータ等を格納している。デスクトップコンピュータ101は、画像処理装置110、120、130や、不図示のサーバコンピュータなどとLAN100を介して連携し、分散アプリケーションを実行することもできる。
図2は、画像処理装置110,120,130の各々で実行されるソフトウェアの構成を示すブロック図である。
201はユーザインタフェース(UI)モジュールであり、オペレータが画像処理装置に対する各種操作・設定を行う際に、装置とユーザ操作との仲介を行うモジュールである。このモジュールは、オペレータの操作に従い、後述の各種モジュールに入力情報を転送して処理の依頼、或いはデータの設定等を行う。
202は、アドレスブック(Address-Book)モジュール、即ちデータの送付先、通信先等を管理するデータベースモジュールである。アドレスブックモジュール202が管理するデータに対しては、UIモジュール201からの操作指令に従い、データの追加、削除、取得が行われる。また、アドレスブックモジュール202からは、オペレータの操作により、後述の各モジュールに対してデータの送付・通信先情報が与えられる。
203はWebサーバ(Web-Server)モジュールであり、Webクライアント(例えば、デスクトップコンピュータ101)からの要求に応じて、画像処理装置の管理情報をWebクライアントに通知する。この管理情報は、後述の統合送信部(Universal-Send)モジュール204、リモートコピースキャン(Remote-Copy-Scan)モジュール209、リモートコピープリント(Remote-Copy-Print)モジュール210、制御API(Control-API)モジュール218を介して取得され、後述のHTTPモジュール212、TCP/IP通信モジュール216、ネットワークドライバ(Network-Driver)217を介してWebクライアントに通知される。
204は統合送信部(Universal-Send)モジュール、即ちデータの配信を司るモジュールである。このモジュールは、UIモジュール201を介してオペレータによって指示されたデータを、同様にして指示された通信(出力)先に配布する。また、オペレータにより、本装置のスキャナ機能を使用した配布データの生成が指示された場合は、後述の制御APIモジュール218を介して本装置を動作させ、データの生成を行う。
205はP550モジュールであり、統合送信部モジュール204内に含まれ、出力先にプリンタが指定された際に実行されるモジュールである。206はE−メール(E-Mail)モジュールであり。統合送信部モジュール204内に含まれ、通信先にE−メールアドレスが指定された際に実行されるモジュールである。207はDBモジュールであり、統合送信部モジュール204内に含まれ、出力先にデータベースが指定された際に実行されるモジュールである。208はDPモジュールであり、統合送信部モジュール204内に含まれ、出力先に本装置と同様の画像処理装置が指定された際に実行されるモジュールである。
209はリモートコピースキャン(Remote-Copy-Scan)モジュールである。このモジュールは、画像処理装置のスキャナ機能を使用して画像情報を読み取り、読み取った画像情報をネットワーク等で接続された他の画像処理装置に出力することにより、本来単体で実現しているコピー機能を複数の画像処理装置を使って実現するモジュールである。
210はリモートコピープリント(Remote-Copy-Print)モジュールである。このモジュールは、ネットワーク等で接続された他の画像処理装置で得られた画像情報を、本画像処理装置のプリンタ機能を使用して出力することにより、本来単体で実現しているコピー機能を複数の画像処理装置を使って実現するモジュールである。
211はWebブラウザ(Web Browser)モジュールである。このモジュールは、インターネットまたはイントラネット上の各種Webサイト(ホームページ)の情報を読み込んで表示を行う。Webブラウザの詳細な構成は後述する。
212はHTTPモジュールである。このモジュールは、画像処理装置がHTTP(HyperText Transfer Protocol)による通信を行なう際に使用され、後述のTCP/IP通信モジュール216を使って、Webサーバモジュール203やWebブラウザモジュール211に通信機能を提供する。このモジュールは、HTTPをはじめとするWebで用いられる各種プロトコルに対応し、特にセキュリティ対応のプロトコルによる通信機能も提供する。
213はlprモジュールである。このモジュールは、後述のTCP/IP通信モジュール216を使って、統合送信部モジュール204内のP550モジュール205に通信機能を提供するものである。
214はSMTPモジュールである。このモジュールは、後述のTCP/IP通信モジュール216を使って、統合送信部モジュール204内のE−メールモジュール206に通信機能を提供する。
215はSLM(Salutation-Manager)モジュールである。このモジュールは、後述のTCP/IP通信モジュール216を使って、統合送信部モジュール204内のDBモジュール207、DPモジュール208、及びリモートコピースキャンモジュール209、リモートコピープリントモジュール210に通信機能を提供する。
216はTCP/IP通信モジュールである。このモジュールは、後述のネットワークドライバ217を用いて、前述の各種モジュールにネットワーク通信機能を提供する。217はネットワークドライバであり、ネットワークに物理的に接続される部分を制御するものである。
218は制御APIである。これは、統合送信部モジュール204等の上流モジュールに、後述のジョブマネージャ(Job-Manager)モジュール219等の下流モジュールに対するインタフェースを提供するものである。これによって、上流及び下流のモジュール間の依存関係が軽減され、それぞれの流用性を高めることができる。
219はジョブマネージャモジュールである。このモジュールは、前述の各種モジュールから制御API218を介して指示される様々な処理を解釈し、後述の各モジュール(220、224、226)に指示を与えるものである。また、ジョブマネージャモジュール219は、画像処理装置内で実行されるハード的な処理を一元管理するものである。
220はコーデックマネージャ(CODEC-Manager)モジュールである。このモジュールは、ジョブマネージャモジュール219が指示する処理の中で、データの各種圧縮・伸長を管理・制御するものである。
221はFBEエンコーダ(FBE-Encoder)モジュールである。このモジュールは、ジョブマネージャモジュール219や後述のスキャンマネージャ(Scan-Manager)モジュール224によって実行されたスキャン処理によって読み込まれたデータを、FBEフォーマットを用いて圧縮するものである。
222はJPEGコーデック(JPEG−CODEC)モジュールである。このモジュールは、ジョブマネージャモジュール219やスキャンマネージャモジュール224によって実行されたスキャン処理、或いはプリントマネージャ(Print-Manager)モジュール226によって実行された印刷処理において、読み込まれたデータのJPEG圧縮及び印刷データのJPEG展開処理を行うものである。
223はMMRコーデック(MMR−CODEC)モジュールである。このモジュールは、ジョブマネージャモジュール219やスキャンマネージャモジュール224によって実行されたスキャン処理、或いはプリントマネージャモジュール226によって実行された印刷処理において、読み込まれたデータのMMR圧縮及び印刷データのMMR伸長処理を行うものである。
229は情報埋め込み画像コーデック(IEI−CODEC)モジュールである。このモジュールはジョブマネージャモジュール219やスキャンマネージャモジュール224によって実行されたスキャン処理、或いはプリントマネージャモジュール226によって実行された印刷処理において、読み込まれた画像データに埋め込まれた情報のデコード、及び印刷画像データへの情報埋め込みを行うものである。画像データへの情報の埋め込みは、バーコードやデジタル透かし(デジタルウォーターマーク)などの符号化技術を用いて行う。また、像域分離とOCR技術によって画像データの画像中の文字を認識し、テキストデータに変換する文字認識も一種の復号化技術としてサポートする。さらにラスタイメージプロセッサを用いたテキストから画像データへの変換と、変換した画像データとオリジナル画像データとの重ね合わせ(オーバレイ)も、一種の符号化技術(情報埋め込み技術)としてサポートする。
224はスキャンマネージャ(Scan-Manager)モジュールである。このモジュールは、ジョブマネージャモジュール219が指示するスキャン処理を管理・制御するものである。
225はSCSIドライバであり、スキャンマネージャモジュール224と画像処理装置に内部的に接続しているスキャナ部との間の通信を取り持つものである。
226はプリントマネージャ(Print−Manager)モジュールである。このモジュールは、ジョブマネージャモジュール219が指示する印刷処理を管理・制御するものである。
227はエンジンインターフェース(Engine-I/F)モジュールである。このモジュールは、プリントマネージャモジュール226と印刷部との間のインタフェースを提供する。
228はパラレルポートドライバであり、パラレルポートを介して不図示の出力機器にデータを出力する際のI/Fを提供する。
図3は、画像処理装置110のハードウェア構成を示すブロック図である。画像処理装置120,130も同じ構成を備える。
制御ユニット111は、画像入力デバイスであるスキャナ113や画像出力デバイスであるプリンタ114と接続し、一方ではLAN100や公衆回線(WAN)と接続することで、画像情報やデバイス情報の入出力を行なうコントローラである。
CPU301は、制御ユニット111全体を制御するコントローラである。RAM302は、CPU301が動作するために使用するシステムワークメモリである。また、RAM302は、画像データを一時記憶するための画像メモリでもある。ROM303は、ブートROMであり、システムのブートプログラムが格納されている。HDD304は、ハードディスクドライブであり、システムソフトウェア、画像データを格納する。
操作部I/F306は、操作部(UI)112との間のインタフェースを司り、操作部112に表示すべき画像データを操作部112に対して出力する。また、使用者が操作部112を介して入力した情報を、CPU301に伝える役割を果たす。
ネットワークインタフェース(Network)308は、LAN100との接続を司り、LAN100に対して情報の入出力を行なう。モデム(MODEM)309は、公衆回線との接続を司り、公衆回線に対して情報の入出力を行なう。以上のデバイスがシステムバス307上に配置される。
イメージバスインターフェース(Image Bus I/F)305は、システムバス307と画像データを高速で転送する画像バス310とを接続し、データ構造を変換するバスブリッジである。画像バス310は、PCIバスまたはIEEE1394で構成される。
画像バス310には以下のデバイスが配置される。ラスタイメージプロセッサ(RIP)311は、ネットワークから送信されたPDLコードをビットマップイメージに展開する。デバイスI/F部312は、画像入出力デバイスであるスキャナ113やプリンタ114と制御ユニット111とを接続し、画像データの同期系/非同期系の変換を行なう。
スキャナ画像処理部313は、入力画像データに対し補正、加工、編集を行なう。プリンタ画像処理部314は、プリント出力画像データに対して、プリンタ114の性能に応じた補正、解像度変換等を行なう。画像回転部315は画像データの回転を行なう。画像圧縮部316は、多値画像データに対してはJPEG圧縮伸長処理を行い、2値画像データに対してはJBIG、MMR、MHの圧縮伸長処理を行なう。
図4は、画像処理装置110の外観を示す斜視図である。画像処理装置120,130も同等の外観を備える。なお、これ以降では、画像処理装置110について説明するが、画像処理装置120,130でも全く同じ構成が備えられ、全く同じ動作が行なわれる。
画像入力デバイスであるスキャナ113は、原稿となる紙上の画像を照明し、CCDラインセンサ(図示せず)を走査することによって、ラスターイメージデータを生成する。
使用者が原稿用紙を原稿フィーダ405のトレイ406にセットして、操作部112において読み取りの起動を指示すると、制御ユニット111のCPU301がスキャナ113に指示を与え、トレイ406にセットされた原稿用紙は1枚ずつフィードされ、スキャナ113が原稿画像の読み取り動作を行なう。
画像出力デバイスであるプリンタ114は、ラスターイメージデータを用紙に印刷する部分である。その方式は、感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式であってもよい。なお、プリント動作は、CPU301からの指示によって起動される。
プリンタ114は、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセット401、402、403がある。また、排紙トレイ404は、印字し終わった用紙を受けるものである。
図5は、画像処理装置110の操作部112の構成を示す平面図である。なお、画像処理装置120,130の操作部も同等の構成を備える。
LCD表示部501は、LCD(液晶表示装置)上にタッチパネルシート502が貼られた構成になっており、画像処理装置110の操作画面およびソフトキーを表示するとともに、表示してあるキーが押された場合には、押された位置を示す位置情報が制御ユニット111のCPU301に伝える。
スタートキー505は、原稿画像の読み取り動作を開始する場合等に操作されるキーである。スタートキー505の中央部には、緑と赤の2色LED表示部506があり、その色によってスタートキー505を操作できる状態であるか否かを示す。ストップキー503は、稼働中の画像処理装置110の動作を止めたい場合に操作されるキーである。IDキー507は、使用者のユーザIDを入力するときに操作されるキーである。また、リセットキー504は、操作部112からの設定を初期化するときに操作されるキーである。
図6は、画像処理装置110の操作部112及び操作部I/F306の内部構成を制御ユニット111の内部構成と対応させて示すブロック図である。なお、これ以降では、画像処理装置110について説明するが、画像処理装置110を画像処理装置120または画像処理装置130と読み替えても全く何ら支障は無い。
上述したように、操作部112は、操作部I/F306を介してシステムバス307に接続される。システムバス307には、CPU301、RAM302、ROM303、HDD304が接続されている。CPU301は、ROM303とHDD304に記憶された制御プログラム等に基づいて、システムバス307に接続される各種デバイスとのアクセスを総括的に制御する。また、CPU301は、デバイスI/F312を介して接続されるスキャナ113から入力情報を読み込み、またデバイスI/F312を介して接続されるプリンタ114に出力情報としての画像信号を出力する。RAM302はCPU301の主メモリ、ワークエリア等として機能する。
タッチパネル502や各種ハードキー503、504、505、507からのユーザ入力情報は、入力ポート601を介してCPU301に渡される。CPU301は、ユーザ入力情報の内容と制御プログラムとに基づいて表示画面データを生成し、画面出力デバイスを制御する出力ポート602を介して、LCD表示部501に表示画面データを出力する。また、必要に応じて2色LED表示部506を制御する。
図7は、画像処理装置110の操作部112に表示される標準的な操作画面の一例を示す図である。
図7の最上部701に並んでいるボタン群は、画像処理装置110が提供する各種機能から1つを選択するためのボタン群である。コピー機能は、スキャナ113でスキャンし読み取った原稿画像データをプリンタ114でプリントして原稿の複写物を得るための機能である。
送信機能は、スキャナ113で読み取った原稿画像データやHDD304に蓄積されている画像データを各種出力先に送信するための機能である。出力先としては、ネットワークインタフェース308経由で各種のプロトコルによって送信可能な各種の出力先、および、モデム309経由でファクシミリなどのプロトコルによって送信可能な各種の出力先があり、それらの中から複数の出力先を選択して送信することができる。
ボックス機能は、HDD304に蓄積されている画像データやコードデータなどの文書ファイルを閲覧、編集、プリント、および送信するための機能である。HDD304に蓄積される文書ファイルは、スキャナ113によって読み取った原稿画像データ、ネットワークインタフェース308経由でダウンロードしたデータ、ネットワークインタフェース308経由で他の装置から受信したプリントデータを蓄積したデータ、モデム309経由で他の装置から受信したファクシミリデータなどを含む。ボックス機能は、ユーザのオフィス環境において電子的なメールボックスとして利用できる。また、パスワードを入力するまで用紙へのプリント出力を遅延することによって、PDLプリントジョブの守秘性を高めるセキュアドプリントとして利用することもできる。
拡張機能は、スキャナ113を外部装置から利用するためにロックするなど、各種の拡張機能を呼び出すための機能である。
ブラウザ機能は、Webサイトの閲覧を行なうための機能である。
図7の中間部分702では、コピー機能が選択された場合の操作画面を表示している。図7の最下部703はステータス表示領域であり、最上部701で選択された機能の如何に関わらず、画像処理装置110の各機能や装置自体の情報などの各種のメッセージをユーザに対して表示する。
(Webブラウザによる分散アプリケーションの操作)
図8は、図2に示すWebブラウザモジュール211の内部構成を示すブロック図である。
プロトコル処理部801は、HTTPモジュール212を介して、他のネットワークノードとの間に接続を確立し通信するものである。この通信において、URLによって記述されたリソースに対してHTTP要求を発行し、その応答を得る。この過程で、各種符号化形式に則した通信データの符号化・復号化も行う。
コンテンツパーサ802は、プロトコル処理部801からHTML、XML、XHTMLなどの表現形式で表現されたコンテンツデータを受け取り、字句解析および構文解析を行って解析木を生成する。
DOM構築部803は、コンテンツパーサ802から解析木を受け取り、コンテンツデータの構造に対応したDocument Object Model(DOM)の構築を行う。すなわち、旧来のHTMLは文法上さまざまな省略を許しバリエーションが多岐に渡る。さらに現実に運用されているコンテンツは整形式でも妥当でもない場合が多い。そこで、DOM構築部803は、他の一般的なWebブラウザと同様に、文法的に妥当でないコンテンツデータの正しい論理構造を推論し、妥当なDOMの構築を試みる。
DOM処理部804は、DOM構築部803が構築したDOMを、オブジェクト群の入れ子関係を表現するツリー構造としてメモリ上に保持管理する。Webブラウザの各種処理はこのDOMを中心に実現される。
レイアウトエンジン807は、DOM処理部804が保持するオブジェクト群のツリー構造に応じて、各オブジェクトの表示上の表現(プレゼンテーション)を再帰的に決定し、結果的に文書全体のレイアウトを得る。各オブジェクトの表示上の表現は、文書の中に埋め込まれた記述、あるいは、文書からリンクされた別ファイル中の記述によって、Cascading Style Sheet(CSS)などのスタイルシート形式で明示的に指定される場合がある。
スタイルシートパーサ806は、コンテンツの文書に関連付けられたスタイルシートを解析する。
レイアウトエンジン807は、スタイルシートの解析結果を反映して文書のレイアウトを決定する。
レンダラ808は、レイアウトエンジン807が決定した文書のレイアウトに応じて、LCD表示部501(図5)に表示するためのGraphical User Interface(GUI)データを生成する。生成されたGUIデータは、ユーザインタフェース(UI)201によってLCD表示部501に表示される。
イベント処理部809は、操作部112上のタッチパネルシート502や各キーなどに対してユーザが行った操作のイベントを受信して、各イベントに対応した処理を行う。イベント処理部809はまた、装置制御API218から装置やジョブなどの状態遷移イベントを受信して、各イベントに対応した処理を行う。DOM処理部804が管理するDOMのツリー構造には、オブジェクトのクラスごと、および、オブジェクトインスタンスごとに、各種イベントに対応するイベントハンドラが登録されている。イベント処理部809は、生起したイベントに応じて、DOM処理部804が管理するオブジェクト群の中からそのイベントの処理を担当するべきオブジェクトを決定しイベントを配信する。イベントを配信されたオブジェクトは、そのイベントに対応するイベントハンドラのアルゴリズムに応じて、各種の処理を実行する。イベントハンドラの処理には、DOM処理部804が保持するDOMの更新、レイアウトエンジン807に対する再描画指示、プロトコル処理部801に対するHTTP要求発行の指示、装置制御API218の呼び出しによる画像処理装置機能の制御などがある。
スクリプトインタプリタ805は、Java(登録商標)Script(ECMA Script)などのスクリプトを解釈し実行するインタプリタである。スクリプトは、文書に埋め込まれたり、あるいは、文書からリンクされた別ファイル中に記述されたりして、DOMに対する操作などを行う。コンテンツの提供者は、スクリプトによって、提供する文書の動的な挙動をプログラムできる。
図9は、図5に示すLCD表示部501においてWebブラウザ機能が選択された場合に表示される画面の構成を示す図である。Webブラウザは接続要求が指定する接続先アドレスにアクセスして、接続先を遠隔操作するための遠隔ユーザインタフェース記述データを取得して、それに基づいて操作画面を表示する。
タブ901は、Webブラウザ機能を選択するためのタブであり、このタブを選択することにより、他の機能(コピー、ボックス、送信、拡張)の画面からWebブラウザ機能の表示画面に切り替えられる。
URL入力フィールド902は、ユーザが所望のリソースのURLを入力するためのフィールドである。当該フィールドをユーザが押すと、文字入力を行うための仮想的なフルキーボード(不図示)が表示される。ユーザは、仮想的なフルキーボード上に配置されたキートップを模したソフトキーによって所望の文字列を入力することができる。
OKボタン903は、URL入力フィールド902に入力したURL文字列を確定するためのソフトキーである。URLが確定されると、Webブラウザモジュール211は、当該リソースの取得を行うためのHTTP要求を発行する。
プログレスバー904は、HTTP要求応答によるコンテンツ取得処理の進捗状況を示す。
コンテンツ表示領域905は、取得したリソースが表示される領域である。
戻るボタン906はソフトキーであり、コンテンツ表示の履歴をさかのぼり、現時点で表示しているコンテンツの前に表示したコンテンツを表示し直す。
進むボタン907はソフトキーであり、コンテンツ表示の履歴をさかのぼって表示しているときに、現時点で表示しているコンテンツの後に表示したコンテンツの表示に戻る。
リロードボタン908はソフトキーであり、現時点で表示しているコンテンツの再取得と再表示を行う。
中止ボタン909はソフトキーであり、実行中のコンテンツ取得処理を中止する。
ステータス領域910(最下部703)は、画像処理装置110の各種機能からのメッセージを表示する領域である。Webブラウザ画面を表示中であっても、スキャナ113やプリンタ114や他の機能などから送られる、ユーザの注意を促すためのメッセージが、ステータス領域910に表示される。また同様に、Webブラウザ機能からのメッセージもステータス領域910に表示される。Webブラウザ機能からは、リンク先のURL文字列、コンテンツのタイトル文字列、スクリプトによって指示されたメッセージなどが送られる。
図10は、クライアント1001によるHTTPプロトコルを用いたHTTP要求と、サーバ1002からの応答とを示すシーケンス図である。
クライアント1001は、HTTP要求を送信し、HTTP応答を受信するソフトウェアであり、本実施の形態の画像処理装置110,120,130に内蔵のWebブラウザや、PC、PDA、携帯電話などで稼動する一般的なWebブラウザや、さらにWebブラウザと同様の方法でWebサーバにアクセスしてサービスの利用または中継を行う各種のソフトウェアに相当する。サーバ1002は、HTTP要求を受信して対応する処理を行い、さらにHTTP応答を返信するソフトウェアであり、インターネットを経由して接続するアプリケーションサービスプロバイダ(ASP)のソフトウェアや、イントラネットに構築された各種サービスのサーバソフトウェアや、本実施の形態のデスクトップコンピュータ101上で稼動するWebアプリケーション型のソフトウェアなどの各種のHTTPサーバに相当する。
クライアント1001はサーバ1002に対して、所望のリソースに対するGET要求からなるHTTP要求1003を送信する。リソースは一般にURI(特にURL)形式によって指定される。
サーバ1002は、GET要求で指定されたリソースに対応するデータを取得、または生成して、HTTP応答1004によって返送する。ここで、指定されたリソースが静的なファイルに対応する場合、サーバ1002はそのファイルシステムから該当するファイルを読み出してそのデータを取得する。一方、指定されたリソースがCGIプログラムやServletなどの処理に対応する場合は、サーバ1002は該当する処理を実行する。この処理は要求に対する応答を生成するものであるが、この過程で所定のサービスを達成するために必要なビジネスロジックの実行やバックエンドのDBMSへのアクセスなどの副作用が伴う。そしてサーバ1002は、その処理の結果として生成されたデータを返送する。
HTTP応答1004で得られたデータが表示可能な形式である場合、クライアント1001はそのコンテンツの表示を行う。
なお、得られたデータがHTML文書などであれば、ユーザが、Webブラウザ上に表示された文書にハイパーテキストとして埋め込まれたリンク情報を選択するだけで、次々に新たなリソースの取得や表示が繰り返される。
HTTP要求1005はPOST要求である。HTML文書は、クライアント1001側のユーザにデータの入力を要求するためのフォーム(form)を含むことができる。HTML文書ではフォームがフォームを含み、そのメソッドにPOSTが指定されている場合、ユーザがフォームをサブミットすると、指定リソースに対するPOST要求が送信される。POST要求では、クライアント1001からサーバ1002に向けてデータを送信する(応答によってサーバ1002からクライアント1001に向けたデータの返信も行われる)。Webブラウザに表示されたフォームにユーザが入力した情報が符号化されて、POST要求によってサーバ1002に送信される。サーバ1002の指定リソースは、クライアント1001から送られたデータを受信し処理を行い、HTTP応答1006を生成し返信する。
HTTP応答1006はHTTP応答1004と同様であり、得られたデータが表示可能な形式である場合、クライアント1001はそのコンテンツの表示を行う。得られたデータがHTML文書などであれば、ユーザが、Webブラウザ上に表示された文書にハイパーテキストとして埋め込まれたリンク情報を選択するだけで、次々に新たなリソースの取得や表示が繰り返される。
したがって、サーバ1002側で稼動する各種アプリケーションロジックをクライアント1001側から操作するためのユーザインタフェースを、HTMLなどのマークアップ言語によって記述することが可能である。すなわち、サーバ側アプリケーションロジックの状態を表示する記述とアプリケーションロジックへの入力を要求する記述とを組み合わせたコンテンツを、クライアント1001側からの要求に応じて繰り返し取得されるように構成することができ、サーバ1002側のアプリケーションロジックをクライアント1001側で操作する分散アプリケーションを提供できる。
(VNCによる分散アプリケーションの操作)
なお、Webブラウザ機能の代わりにVNC機能が用いられることによって、遠隔操作できるようにしてもよい。図11は、図5に示すLCD表示部501に表示されている画面であって、デスクトップコンピュータ101を操作するための操作画面を示す図である。ここでは、VNC機能によって、接続要求が指定するデスクトップコンピュータ101のデスクトップ画面がLCD表示部501に表示されるとともに、ユーザは、表示されているデスクトップ画面においてデスクトップコンピュータ101上のアプリケーションプログラムなどを起動させることできる。図11に示す操作画面では、デスクトップコンピュータ101で起動されて表計算ソフトウェアを操作可能になっている。
図11に示す画面においてタブ2001は、VNC機能を選択するためのタブであり、このタブ2001を選択することにより、接続要求の接続先アドレスにアクセスして、接続先を遠隔操作することができるようになる。表示領域2002は、デスクトップ画面を表示する表示領域である。
ステータス領域2003は、画像処理装置110の各種機能に関わるメッセージを表示する領域である。VNC機能によって遠隔操作画面を表示中であっても、スキャナ113やプリンタ114や他の機能などから送られる、ユーザの注意を促すためのメッセージがステータス領域2003に表示される。
(遠隔操作方法)
画像処理装置110とデスクトップコンピュータ101を例にして、画像処理装置110からデスクトップコンピュータ101を遠隔操作する遠隔操作方法の概要を説明する。
図12は、デスクトップコンピュータ101と画像処理装置110との間で行われる通信の手順を示すシーケンス図である。
まず、デスクトップコンピュータ101は、ユーザがログインしたことを通知するよう求めるイベント通知要求メッセージ(以下、「ログイン通知要求メッセージ」と呼ぶ)を画像処理装置110に送信する(ステップ1701)。なお、デスクトップコンピュータ101は、特定の画像処理装置にだけイベント通知要求メッセージを送信してもよいし(この場合は、画像処理装置110が特定の画像処理装置になる)、複数の画像処理装置のそれぞれにイベント通知要求メッセージを送信してもよい(この場合は、画像処理装置110は複数の画像処理装置の1つである)。イベント通知要求メッセージは、後述するユーザエージェント2103が起動されるたびに当該ユーザエージェント2103によって送信されてもよいし、遠隔操作が必要な事象が発生した場合に、これに応じてユーザエージェント2103によって送信されてもよい。
画像処理装置110は、ログイン通知要求メッセージを受信すると、イベント通知要求の登録処理を行う(ステップS1702)。
その後、画像処理装置110においてログイン処理が行われると(ステップS1703)、ログイン通知要求メッセージに従って、ユーザがログインしたことを示すログインイベントをデスクトップコンピュータ101に通知する(ステップS1704)。
デスクトップコンピュータ101では、ユーザエージェント2103が、ログインイベントの通知に応じて、画像処理装置110に対して遠隔操作要求をするか否かを判断する。遠隔操作をしてほしい事象が発生している場合には、ユーザエージェント2103は、画像処理装置110を利用中のユーザにとって有用な情報を該ユーザに対して伝えるために、画像処理装置110上のソフトウェアモジュールに対して遠隔操作要求メッセージを送信する(ステップ1705)。遠隔操作要求メッセージは、画像処理装置110を利用中のユーザに対して、デスクトップコンピュータ101上で稼動するソフトウェアの遠隔操作を求めるための要求である。遠隔操作要求メッセージは、遠隔ユーザインタフェースを記述したリソースの取得先をURLなどの形式で含む。
画像処理装置110上のソフトウェアモジュールは、デスクトップコンピュータ101上のユーザエージェント2103に対して応答メッセージを返信するとともに、遠隔操作要求受信処理を実行する(ステップ1706)。応答メッセージは、要求の受理もしくは拒絶などの情報を含む。
遠隔操作要求受信処理では、画像処理装置110上のソフトウェアモジュールが、デスクトップコンピュータ101上のHTTPサーバ(後述するHTTPサーバ2109)に対して遠隔ユーザインタフェース記述データを取得するための要求を送信する。要求の送信はHTTPによって行われ、以下の通信のプロトコルにはHTTPが用いられる。遠隔ユーザインタフェース記述データは、主にHTMLなどのマークアップ言語で記述された一種のWebコンテンツであり、画像処理装置110上のWebブラウザによって展開されると、デスクトップコンピュータ101上のユーザエージェント2103を遠隔操作するためのリモートユーザインタフェース(例えば、図9の操作画面)を構成するものである。遠隔ユーザインタフェース記述を取得するための要求は、HTTPのGET要求メッセージによって、遠隔操作要求において指定されたURLが指し示すリソースの取得を要求する。
デスクトップコンピュータ101上のHTTPサーバは、ユーザエージェント2103と連携して、画像処理装置110上のソフトウェアモジュールに対して、HTTPのGET要求メッセージに対応する応答メッセージを返信する。応答メッセージは、ユーザエージェント2103の遠隔ユーザインタフェース記述データを含む。
以下、ユーザは、遠隔操作画面において、画像処理装置110からデスクトップコンピュータ101を遠隔操作する(ステップ1708)。Webブラウザに展開されたリモートユーザインタフェースに対してユーザが操作を行うと、その操作に対応したHTTPのGET要求、または、ユーザがフォームに対して入力した情報を含むPOST要求が、デスクトップコンピュータ101に送信される。
この要求に対する応答が、デスクトップコンピュータ101から画像処理装置110へ送信される。この応答もまた、遠隔ユーザインタフェース記述であり、Webブラウザに展開されてユーザインタフェースを構成する。
これらの通信を繰り返すことによって、画像処理装置110上のWebブラウザからデスクトップコンピュータ101上のユーザエージェント2103に対する遠隔操作が行われる。ユーザエージェント2103が提供するWebアプリケーション機能によって、例えば、後述するInbox2105を経由して、ユーザ宛の電子メールやインスタントメッセージなどの閲覧と、転送やプリントなどの遠隔操作を行うことができる。また例えば、後述のPIM2106を経由して、個人情報管理アプリケーションのデータベースを参照し、ユーザのスケジュールや備忘録の確認や追加を行うことができる。
遠隔操作がVNC機能によって実現されている場合には、遠隔操作要求処理において、画像処理装置110のVNCクライアントプログラムが、デスクトップコンピュータ101のVNCサーバプログラムにアクセスして通信を開始する。これによって、図11に示すような操作画面が表示され、ユーザはその操作画面において画像処理装置110からデスクトップコンピュータ101を遠隔操作する。
(デスクトップコンピュータ101側の構成)
図13は、デスクトップコンピュータ101内で稼動するソフトウェアモジュールの構成を示す図である。
イベント通知リクエスタ2101は、自律的に動作しつづけるソフトウェアモジュールであり、画像処理装置110に対してイベント通知要求を行う。すなわち、ユーザ認証イベントまたはログイン及びログアウトイベントに対する通知を要求する。またイベント通知リクエスタ2101は、イベント通知を受け取るイベント通知リスナとして、同じデスクトップコンピュータ101内で稼動する別のソフトウェアモジュールであるイベント通知リスナ2102を登録する。すなわち、イベント通知リスナ2102が扱うプロトコル、ならびにイベント通知リスナ2102がリッスンするネットワークアドレス(またはホスト名)及びネットワークポートを登録する。またイベント通知要求において、要求の発行元の証明として、イベント通知リスナ2102を実質的に起動したユーザのユーザ証明を用いる。またイベント通知要求は該要求を受けた側で登録するが、登録時から所定の期間が経過すると登録を抹消するようにする。この所定の期間として十分に長い時間を指定するが、該所定の期間内でイベント通知要求が繰り返し送信されるようにスケジューリングする。
イベント通知リクエスタ2101は、自身が起動するたびにイベント通知要求を行うようにしてもよいし、下記のユーザエージェント2103と協同して、遠隔操作が必要になった場合にのみイベント通知要求を行うようにしてもよい。遠隔操作が必要になった場合にのみイベント通知要求を行うようにすることにより、イベント通知要求が送信される回数が軽減され、ネットワークの通信量を軽減できるという効果がある。
イベント通知リスナ2102は、自律的に動作しつづけるソフトウェアモジュールであり、画像処理装置110から通知されるイベント通知を受信し、ユーザエージェント2103に対して事象の生起を伝える。
ユーザエージェント2103は、自律的に動作しつづけるエージェント型のソフトウェアであり、あらかじめ画像処理装置110のユーザが命じた作業に関して処理を代行する。ユーザエージェント2103は、イベント通知リスナ2102と連携して、ユーザが画像処理装置110を利用していることを検知する。すると、ユーザエージェント2103は、ユーザエージェントプラグイン群2104を介して、デスクトップコンピュータ101内で稼動する各種のアプリケーションモジュールと連携し、画像処理装置110を利用中のユーザにとって有用な情報があるか否かを判定する。有用な情報があれば、その情報を画像処理装置110のユーザに対して伝える。
Inbox2105は、ユーザエージェントプラグインの一例であり、ユーザ宛の電子メールやインスタントメッセージなどの着信をチェックする。例えばメッセージヘッダに記された優先度や発信元や題名等に対してパターンマッチング技法を適用して、ユーザ宛に重要なメッセージが着信しているか否かを判別する。その結果、重要なメッセージが着信していることがInbox2105によって検知されると、ユーザエージェント2103が、ユーザにその情報を伝える。
PIM2106はユーザエージェントプラグインの一例であり、個人情報管理アプリケーションのデータベースを参照し、ユーザのスケジュールや備忘録の確認を行う。開始時刻が近づいた予定や、期限が迫った作業アイテムが存在することがPIM2106によって検知されると、ユーザエージェント2103が、ユーザにその情報を伝える。
Watcher2107はユーザエージェントプラグインの一例であり、ユーザがあらかじめマークしたWebサイトやファイルサーバ中に格納されたフォルダやファイルの更新をチェックする。更新がWatcher2107によって検知されると、ユーザエージェント2103が、ユーザにその情報を伝える。
Queue2108はユーザエージェントプラグインの一例であり、ユーザがあらかじめデスクトップコンピュータ101内部のキューにキューイングしたプリント等の画像処理ジョブの存在を確認する。キューイングされた画像処理ジョブの存在がQueue2108によって検知されると、ユーザエージェント2103が、ユーザにその情報を伝える。
HTTPサーバ2109は、自律的に動作しつづけるソフトウェアモジュールであり、Webブラウザから送信されたHTTP要求の受信とHTTP応答の返信を行う。HTTPサーバ2109は、ServletコンテナまたはCGI等を含み、ユーザエージェント2103が提供するWebアプリケーション機能と連携する。すなわち、Webブラウザから受信したHTTP要求が指定するリソースがユーザエージェント2103のWebアプリケーションを指す場合、HTTPサーバ2109は、HTTP要求をユーザエージェント2103に転送し、また、転送したHTTP要求に対応してユーザエージェント2103が生成した応答(一般にHTML文書)をWebブラウザに転送する。
(イベント通知設定)
図14は、画像処理装置110で実行されるイベント通知要求登録処理の手順を示すフローチャートである。図12のステップ1702は、この処理に相当する。
画像処理装置110が、デスクトップコンピュータ101で稼動するイベント通知リクエスタ2101からLAN100経由で、所定のアプリケーションプロトコルに従った接続要求を受けつけたとき、該イベント通知要求登録処理が画像処理装置110で実行される。
ステップS1301で、画像処理装置110がイベント通知要求メッセージを受信する。
ステップS1302で、画像処理装置110がイベント通知要求メッセージの解析を行い、イベント通知要求が妥当であれば、イベント通知要求の内容を通知要求データベースに登録する。
ステップS1303で、接続元のデスクトップコンピュータ101のイベント通知リスナ2102に対して応答を返信する。
イベント通知が不要となった場合、イベント通知リクエスタ2101は、イベント通知要求の登録を削除する処理を行う。分散システムの部分的なダウンに対応するために、イベント通知要求の登録は時限つきとし、所定の時間を経過したイベント通知要求の登録はクリアするように構成してもよい。この場合、イベント通知要求を登録した登録元は、所定の時間が経過する前に繰り返し再登録を行うことによって、所望の期間イベント通知要求登録を保持する。このように構成すれば、イベント通知要求を行ったデスクトップコンピュータ101がダウンしたり、または画像処理装置110とデスクトップコンピュータ101との間を接続するネットワークがダウンしたりすることによって、明示的な登録削除が行えなくなった場合であっても、所定の時間の経過後に確実にイベント通知要求の登録が削除される。
図15は、イベント通知要求メッセージのデータ構造を示す図である。
イベント通知要求メッセージは、イベント通知を依頼するイベント通知リクエスタ2101から画像処理装置110に送られる。
1401は、要求がイベント通知要求であることを示すコマンド識別子からなるデータである。
1402は、画像処理装置110でイベントが生起したときに、その通知を画像処理装置110から受け取るイベント通知リスナ2102が、通知を受信するために用意しているプロトコル(通信規約)を示す識別子からなるデータである。
1403は、画像処理装置110でイベントが生起したときに、その通知を受け取るイベント通知リスナ2102が稼動しているネットワークノード(デスクトップコンピュータ101)のネットワークアドレスまたはホスト名からなるデータである。なお、イベント通知リクエスタ2101は、自身が居るネットワークノードとは異なるネットワークノードのネットワークアドレスまたはホスト名をここに設定することも可能である。この場合、イベント通知は、イベント通知要求を送信したデスクトップコンピュータ101とは異なるデスクトップコンピュータに対して行われるようになる。
1404は、画像処理装置110でイベントが生起したときに、その通知を受け取るイベント通知リスナ2102における、通信を待ち受けているネットワークポート番号からなるデータである。
なお、データ1402〜1404は、URL形式の文字列であってもよい。
1405は、このイベント通知要求を画像処理装置110で登録する場合の望ましい登録の有効期間からなるデータである。登録の有効期間に対する決定権は、デスクトップコンピュータ101でなく画像処理装置110側が持ち、必ずしもデータ1405で指定された有効期間だけ登録が有効となるわけではない。画像処理装置110は、イベント通知要求に対して有効な登録期間を決定し、イベント通知要求メッセージに対応して送信する応答メッセージの中に実際の登録の有効期間を記載してデスクトップコンピュータ101に伝える。
1406は、画像処理装置110でイベントが生起したときに、デスクトップコンピュータ101に通知してほしいイベント種別のリストからなるデータである。イベント種別には例えば、画像処理装置110がユーザの認証に成功したときに生起するユーザ認証イベントや、画像処理装置110に対してユーザがログインおよびログアウトしたときに生起するログインイベント、ログアウトイベントなどがある。
1407は、電子的な証明書データである。要求の発行元であるユーザなどを明示するデータであり、要求が真にその要求元から発行されたものであることを証明するために使用される。
(ユーザ認証とイベント通知処理)
図16は、画像処理装置110に対するユーザのログイン処理においてLCD表示画面501に表示されるログイン画面510の例を示す図である。
ログイン画面510には、「ユーザ名」および「パスワード」と名づけられた2つの入力フィールド511,512が表示される。ユーザがログイン画面510上の各入力フィールド511,512に触れると、LCD表示画面501に、不図示の仮想キーボードが表示され、各入力フィールド511,512に対して値を入力できる。「ログイン」ボタン513を押下すると、各入力フィールド511,512の入力値が確定される。
図17は、画像処理装置110で実行されるログイン処理の手順を示すフローチャートである。図12のステップ1703は、この処理に相当する。
まず、ステップS181では、図16に示したようなログイン画面510をLCD表示画面501に表示する。
ステップS182では、ユーザ名やパスワードといったユーザ情報が各入力フィールド511,512に入力されるのを待つ。
ステップS183では、入力されたユーザ情報を基に、ユーザの認証を行なう。ユーザ認証としては、ネットワークインタフェース308(図3)を経由して、NIS、LDAPなど公知のディレクトリサービスへの問い合わせを利用してもよいし、同様に公知の各種認証サーバへの問い合わせを行なうことによってユーザ認証を行なうように構成してもよい。このように構成した場合、分散システムを構成する複数の装置間で共通のユーザ管理を行なうことが可能となる。
ステップS184では、認証が成功したか否かを判定する。成功したと判定すると一連のログイン処理を完了し、呼び出し元に復帰する。一方、認証が成功しなかったと判定するとステップS181に戻り、一連の処理を繰り返す。
なお、ログイン処理は、ユーザ名及びパスワードの入力による認証方法だけでなく、コントロールカードやICカードなどのIDカードの読み込みによる認証方法や、指紋などの生体認証による認証方法を採用して構成してもよい。
図18は、マルチユーザ対応の画像処理装置110が定常状態のとき実行するメインループの手順を示すフローチャートである。図12のステップS1704におけるログインイベント通知は、この処理に相当する。
まず、ステップS2001では、ログイン処理を行なう。すなわち、ユーザ認証されたユーザを、画像処理装置110を現在利用中のカレントユーザとして記憶する。
ステップS2002では、このユーザに対するログインイベント通知の要求が登録されているか否かを判定する。登録されていると判定するとステップS2003に進む。登録されていないと判定するとステップS2004に進む。
ステップS2003では、ログインイベント通知処理を行なう。すなわち、ユーザが画像処理装置110にログインすると、画像処理装置110は、登録されている通知設定に従って、イベント通知を待つイベント通知リスナ2102に対してログインイベントを通知する(なお、特定のイベント通知リスナ宛でなく、ブロードキャストまたはマルチキャストによってネットワークに対して放送してもよい)。ただし、この機能はユーザの行動を追跡するものであり、プライバシの侵害が問題となる運用形態もあり得る。そこでこのような運用形態の場合、イベント通知要求登録に記憶された、要求の発行元を証明する電子的な証明書データに基づいて、発行元が妥当な権限を持つか否かの判定を行う。妥当な権限を持つ発行元による正当な要求であればイベントが通知され、そうでなければイベントの通知は抑止される。例えば、証明書データが証明する発行元が、画像処理装置110を利用中のユーザ自身であれば、要求は正当なものと判定され、通知が行われる。
ステップS2004では、画像処理装置110に設定されている初期機能に従って、LCD表示画面501に標準待機画面を表示する。すなわち、初期機能として、例えばコピー機能が選択されている場合、LCD表示画面501にコピー機能操作画面の表示を行なう。
ステップS2005では、画像処理装置110の主たるジョブ処理を行なう。
ステップS2006では、ログアウトが選択されたか否かの判定を行なう。ユーザがIDキー507(図5)を押下することによってログアウトが選択される。ログアウトが選択されたと判定するとステップS2007に進み、ログアウトが選択されていないと判定するとステップS2004に戻り、一連の処理を繰り返す。
ステップS2007では、ログアウト処理を行なう。すなわち、カレントユーザに関する記録をクリアする。
ステップS2008では、このユーザに対するログアウトイベント通知の要求が登録されているか否かを判定する。登録されていると判定するとステップS2009に進む。登録されていないと判定するとステップS2001に戻る。
ステップS2009では、ログアウトイベント通知処理を行なう。すなわち、画像処理装置110は、登録されている通知要求に従って、イベント通知を待つイベント通知リスナ2102に対してログアウトイベントを通知する(なお、特定のイベント通知リスナ宛でなく、ブロードキャストまたはマルチキャストによってネットワークに対して放送してもよい)。ただし、この機能はユーザの行動を追跡するものでありプライバシの侵害が問題となる運用形態もあり得る。そこでこのような運用形態の場合、イベント通知要求登録に記憶された、要求の発行元を証明する電子的な証明書データに基づいて、発行元が妥当な権限を持つか否かの判定を行う。妥当な権限を持つ発行元による正当な要求であればイベントが通知され、そうでなければイベントの通知は抑止される。例えば、証明書データが証明する発行元が、画像処理装置110を利用中のユーザ自身であれば、要求は正当なものと判定され、通知が行われる。
次いでステップS2001に戻り、一連の処理を繰り返す。
なお、ログインしてからログアウトするまでのセッションに対応してユーザの認証を行うだけでなく、アクセス権限を必要とする操作毎にユーザ認証を対応付けるように構成してもよい。この場合、ログインイベント及びログアウトイベントの代わりに、ユーザ認証時にユーザ認証イベントを通知する。このように、操作毎にユーザ認証を対応付けるようにした場合、予め所定のユーザ認証有効時間を設け、この所定のユーザ認証有効時間が経過したときにログアウトイベントを通知するように構成してもよい。また、ユーザ認証を必要とする操作が終了したときにログアウトイベントを通知するように構成してもよい。また、セッション毎の認証の場合であっても、また操作毎の認証の場合であっても、ユーザが装置の操作をしないアイドル状態が所定時間に亘って継続した場合に、ログアウトイベントを通知するように構成してもよい。
(遠隔操作要求)
図19は、遠隔操作要求メッセージのデータ構造を示す図である。
遠隔操作要求メッセージは、デスクトップコンピュータ101上のユーザエージェント2103などのソフトウェアモジュールから送信され、これを画像処理装置110上のソフトウェアモジュールが受信する。
2401は、要求が遠隔操作要求であることを示すコマンド識別子からなるデータである。
2402は、デスクトップコンピュータ101上のソフトウェアモジュールであるWebアプリケーションの遠隔ユーザインタフェース記述データを取得するためのプロトコル(通信規約)を指定する識別子からなるデータである。プロトコルには一般にHTTPやHTTPSが用いられる。
2403は、遠隔ユーザインタフェース記述データが存在するネットワークノード(デスクトップコンピュータ101)のネットワークアドレスまたはホスト名からなるデータである。なお、ユーザエージェント2103は、自身が存在するネットワークノードとは異なるネットワークノードのネットワークアドレスまたはホスト名をここに設定することが可能である。この場合、画像処理装置110のユーザは、遠隔操作要求を送信したデスクトップコンピュータ101とは異なるデスクトップコンピュータに対して遠隔操作可能になる。
2404は、遠隔ユーザインタフェース記述データを取得するために接続すべきネットワークノード(デスクトップコンピュータ101)のネットワークポート番号からなるデータである。
2405は、複数ある遠隔ユーザインタフェース記述データの中から選択すべきリソースを表すリソース識別の文字列からなるデータである。
データ2402〜2405は、遠隔ユーザインタフェース記述データを特定するデータであり、URL形式の文字列によって示すことができる。
2406は、電子的な証明書データである。遠隔操作要求の発行元であるユーザなどを明示するデータであり、遠隔操作要求が真にその要求元から発行されたものであることを証明するために使用される。
2407は、コメント文字列からなるデータである。遠隔操作要求に対応する遠隔ユーザインタフェース記述データによる遠隔操作の対象がどのようなWebアプリケーションであるかを記述するために用いることができる。
図20は、画像処理装置110が遠隔操作要求を受信したときに実行する遠隔操作要求受信処理の手順を示すフローチャートである。図12のステップ1706は、この処理に相当する。
ステップS2501で、受信した遠隔操作要求メッセージの解析を行う。
ステップS2502で、解析結果に応じた応答の返信を行う。要求が妥当でない場合は拒絶応答のメッセージを、要求が妥当な場合には受理応答のメッセージを返信する。要求が妥当でない場合とは、遠隔操作要求メッセージがエラーを含む場合や、電子的な証明書データが妥当でない場合や、証明書が主張する要求発行元たるユーザなどが遠隔操作要求を行うための適切な権限を持たない場合などがある。例えば、証明書が主張する要求発行元が、画像処理装置110を利用中のカレントユーザと同一の場合には、遠隔操作要求は妥当とみなすことができる。ユーザが同一でない場合の妥当性の判定については、運用形態に合わせたさまざまなアクセス制御のルールを設定できる。
ステップS2503で、要求が妥当であるか否かを判別し、要求が妥当であればステップS2504に進む。妥当でなければ、遠隔操作要求受信処理を終了する。
ステップS2504で、遠隔操作を起動するか否かを画像処理装置110のユーザに確認する。ユーザへの確認は、画像処理装置110の操作部112のLCD表示部501にダイアログボックスを表示することによって行われる。ダイアログボックスには、要求元(デスクトップコンピュータ101)のネットワークアドレスとホスト名、証明書データ、遠隔操作要求メッセージ中のコメント文字列等の表示と、OKボタンおよびキャンセルボタン等を配置する。
ステップS2505で、画像処理装置110のユーザによる指示を判定し、ユーザが起動を指示した場合ステップS2506に進む。ユーザが起動を指示していない場合は、遠隔操作要求受信処理を終了する。
ステップS2506で、その時点で選択されている機能(コピー、ボックス、送信など)からブラウザ機能へ、LCD表示部501に表示されるべき機能の操作画面を切り替える。この結果、ユーザが、最上部701(図7)のタブ901(図9)を操作してブラウザ機能を選択した場合と同様に、LCD表示部501の表示が、Webブラウザ機能の操作画面(図9)に切り替わる。
ステップS2507で、Webブラウザモジュール211(図2)に対して、遠隔操作要求メッセージ中に指定された遠隔ユーザインタフェース記述(図19のデータ2405)に対応するURLの取得を指示する。この結果、Webブラウザモジュール211によって遠隔ユーザインタフェース記述データの取得と展開が行われる。
以上の遠隔操作要求受信処理によって、ユーザは、図9や図11に示すような操作画面において、デスクトップコンピュータ101に対する画像処理装置110からの遠隔操作を開始できる。
(ユーザへの情報伝達)
図21は、デスクトップコンピュータ101のユーザエージェント2103から伝達され、画像処理装置110の操作部112のLCD表示部501に表示されるステータス情報の例を示す図である。
画像処理装置110は、ネットワーク経由でデスクトップコンピュータ101から所定のアプリケーションプロトコルに従った接続を受け付け、情報表示要求メッセージを受信する。情報表示要求が妥当であれば、画像処理装置110は操作部112のLCD表示部501のステータス表示領域(図7の最下部703)に受信した情報の表示を行う。
図21(A)は、デスクトップコンピュータ101のInbox2105(図13)との連携によってユーザエージェント2103から伝えられる情報の表示例を示す。この表示例は、重要な電子メールの着信があることを示している。「詳細」ボタンを押すとダイアログボックスが開き、電子メールの全文をLCD表示部501に表示でき、また電子メールの全文を手元の画像処理装置110でプリントアウトすることもできる。
本実施の形態によれば、ユーザがデスクトップコンピュータ101を離れ、画像処理装置110を利用している場合であっても、電子メールやインスタントメッセージングなどの重要な着信を知ることができる。さらに、着信した電子メールやインスタントメッセージングのメッセージをすぐ手元の画像処理装置110で参照したり、プリントアウトしたりすることができる。
図21(B)は、デスクトップコンピュータ101のPIM2106(図13)との連携によってユーザエージェント2103から伝えられる情報の表示例を示す。この表示例は、開始時刻が迫っている予定が存在することを示している。「詳細」ボタンを押すとダイアログボックスが開き、該予定の全文と、該予定以降の予定が表示される。
本実施の形態によれば、ユーザがデスクトップコンピュータ101を離れ、画像処理装置110を利用している場合であっても、スケジュールのリマインダをユーザに示すことができる。
図21(C)は、PIM2106との連携によってユーザエージェント2103から伝えられる情報の他の表示例を示す。この表示例は、期限の迫った作業項目があることを示している。「詳細」ボタンを押すとダイアログボックスが開き、詳細情報を表示できる。
本実施の形態によれば、ユーザがデスクトップコンピュータ101を離れ、画像処理装置110を利用している場合であっても、備忘録のリマインダをユーザに示すことができる。さらに、作業内容が画像処理装置110を利用するものであれば(本例の製本プリントなど)すぐ手元の画像処理装置110で作業することができる。
図21(D)は、デスクトップコンピュータ101のWatcher2107(図13)との連携によってユーザエージェント2103から伝えられる情報の表示例を示す。この表示例は、あらかじめ指定したWebページが更新されていることを示している。「詳細」ボタンを押すとダイアログボックスが開き、全文と詳細情報をLCD表示部501に表示できる。また更新されたWebサイトを、画像処理装置110に組み込まれたWebブラウザによって閲覧するためのショートカットを選択することもできる。
本実施の形態によれば、ユーザがデスクトップコンピュータ101を離れ、画像処理装置110を利用している場合であっても、URLが指し示すリソースやファイルサーバのファイルやフォルダなどの更新を知ることができる。さらに、更新されたWebサイトを、手元の画像処理装置110に組み込まれたWebブラウザで閲覧したり、手元の画像処理装置110でプリントアウトしたりすることができる。また、更新されたファイルサーバ上のファイルを手元の画像処理装置110でプルプリントすることもできる。
図21(E)は、デスクトップコンピュータ101のQueue2108(図13)との連携によってユーザエージェント2103から伝えられる情報の表示例を示す。この表示例は、ユーザエージェント2103が監視するデスクトップコンピュータ101内のキューに、プリントジョブが待ち状態で存在することを示している。「詳細」ボタンを押すとダイアログボックスが開き、全文と詳細情報をLCD表示部501に表示できる。
本実施の形態によれば、ユーザがデスクトップコンピュータ101を離れ、画像処理装置110を利用している場合であっても、デスクトップコンピュータ101に留め置いたプリントジョブの存在を知ることができる。さらに、デスクトップコンピュータ101内のプリントキューから、画像処理装置110のプルプリント機能によってプリントジョブを引き出して手元の画像処理装置110でプリントアウトすることができる。これにより、画像処理装置110のストレージを圧迫しないセキュアプリントを構成することもできる。
図21に示す各種のステータス表示は、LCD表示部501のステータス表示領域(図7の最下部703)に対して行われるが、これに代わって、操作部112のLCD表示部501に表示するダイアログボックスとして、これらの各種のステータス表示を行うようにしてもよい。
また、本実施の形態では、ユーザに伝えるべき情報をデスクトップコンピュータ101から画像処理装置110に送信し、画像処理装置110の操作部112において、操作パネルメッセージとして表示するように構成したが、これに代わって、ユーザの保持するPDA(Personal Digital Assistants)や携帯電話やウェアラブルコンピュータなどの携帯端末に対して、こうした情報をインスタントメッセージなどで送信するように構成してもよい。また、テレフォニー技術を用いて、ユーザの携帯電話や画像形成装置の近くに位置する固定電話に対して発呼し、こうした情報を合成音声によって伝えるように構成してもよい。また、画像処理装置に対するプリントジョブやファクス送信ジョブを生成し、画像処理装置でメッセージの出力を行うことによってユーザに伝えるように構成してもよい。
なお、ユーザエージェント2103のプログラムを実行するコンピュータはデスクトップコンピュータ101だけでなく、バックエンドのサーバコンピュータにおいて複数のユーザのためのユーザエージェント処理を実行するように構成してもよい。
以上説明したように本実施の形態によれば、例えば、ユーザがデスクトップコンピュータ101を離れて画像処理装置110を利用している最中に、デスクトップコンピュータ101上のアプリケーションプログラムの操作を行なわねばならない場合、デスクトップコンピュータ101上で稼動するユーザエージェントプログラムから画像処理装置110に対して遠隔操作要求を発行することにより、ユーザは、画像処理装置110からデスクトップコンピュータ101上のアプリケーションプログラムを遠隔操作することができ、ユーザは、画像処理装置110の設置場所からデスクトップコンピュータ101の設置場所まで戻らなくても済む。
なお、本実施の形態では、遠隔ユーザインタフェースをWebアプリケーション技術による分散アプリケーションとして構成したが、図11を参照して説明したように、VNCなどのリモートデスクトップの技術を用いて構成してもよい。この場合、画像処理装置110がVNCなどの公知のリモートデスクトップクライアントモジュールを内蔵し、画像処理装置110の操作部112からデスクトップコンピュータ101のデスクトップを遠隔操作する。デスクトップコンピュータ101が画像処理装置110に送る遠隔操作要求は、デスクトップコンピュータ101のネットワークアドレスと、デスクトップコンピュータ101上のリモートデスクトップサーバが接続を待ち受けるポート番号、および、リモートデスクトップのアプリケーションプロトコルに応じたデスクトップ識別子を含む。ユーザエージェント2103は、ユーザが画像処理装置110を利用中にデスクトップコンピュータ101において注目すべき事象が生起すると、画像処理装置110に対して遠隔操作要求を送信する。この注目すべき事象として、上記実施の形態で説明したユーザエージェントプラグイン群2104による監視条件に加えて、デスクトップコンピュータ101において、オペーレティングシステムや動作中のアプリケーションプログラムが画面にダイアログボックスを表示した場合や、ロギング機構に何らかのエラーや警告が記録された場合などを挙げることができる。
このように構成すれば、デスクトップコンピュータのGUIの操作が求められるときに、ユーザが自分の机を離れて画像処理装置を利用している最中であっても、ユーザのデスクトップコンピュータ上で稼動するエージェントプログラムから画像処理装置に対して遠隔操作要求を発行することが可能となり、ユーザは、画像処理装置の設置場所からデスクトップコンピュータの設置場所まで戻らなくてもデスクトップコンピュータのGUIを遠隔操作できる。
また、本実施の形態によれば、デスクトップコンピュータ上で稼動するソフトウェアから、ユーザが画像処理装置の前で該画像処理装置を操作していることを知ることができる。したがって、特定のユーザが画像処理装置の前にいるという状況を利用した状況認識型の各種アプリケーションをユーザのデスクトップコンピュータ上に構成でき、画像処理装置の内部に複雑な機能を埋め込む必要がなくなる。
〔他の実施の形態〕
なお、本発明の目的は、前述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPU、MPU等)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体およびプログラムは本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。