<システム構成>
以下、本発明を実施するための最良の形態について、図面を参照して説明する。図1は、本発明の一実施の形態に係る画像処理システムの全体構成を示すブロック図である。図1において、画像処理システムは、互いにネットワークを介して接続された画像処理装置110,120,130とデスクトップコンピュータ101とから構成される。ネットワークは、例えばLAN(Local Area Network)100で構成される。
画像処理装置110は、画像入力デバイスであるスキャナ113、画像出力デバイスであるプリンタ114、制御ユニット(Controller Unit)111、ユーザインタフェースである操作部112から構成される。画像処理装置110は、いわゆるディジタル複合機であり、これらデバイスを用いて複写、印刷、画像取り込み、画像ファイリング、送信(電子メール/FAX/FTP/ファイル共有等)などの機能を遂行できる。
スキャナ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クライアントに通知される。
統合送信部(Universal-Send)モジュール204はデータの配信を司るモジュールである。このモジュールは、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バスまたはI15E1394で構成される。
画像バス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は、原稿となる紙上の画像を照明し、13Dラインセンサ(図示せず)を走査することによって、ラスターイメージデータを生成する。
使用者が原稿用紙を原稿フィーダ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ブラウザ機能が選択された場合に表示される画面の構成を示す図である。タブ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は、画像処理装置において、組み込みアプリケーションの追加や削除等の管理や、その実行するためのソフトウェア構成を示す図である。なお、JAVA(登録商標)等で記載され、追加や削除が可能なアプリケーションを特に追加アプリケーションと呼ぶ。なお、図2はハードウェアからユーザインタフェースに至るソフトウェアの階層を示す図であり、図10とは観点が異なる。
Real Time OS 1101は画像形成装置全体を制御するリアルタイムオペレーティングシステムであり、組み込みシステムの制御に最適化された各種資源管理のサービスと枠組みを、その上で動作するソフトウェアのために提供する。Controller 1102は、リーダ部、プリンタ部など、画像形成装置のハードウェアを制御し、また、プリント、スキャン、画像変換などを利用するジョブを制御する。組み込みアプリケーション1103は主にController1102の機能を利用して実現される、コピー、ボックス、送信などの機能であり、ユーザインタフェースを含む。JVM1104はJAVA(登録商標)の仮想マシンであり、デバイス上でJAVA(登録商標)プログラムを動作させるためのインタプリタなどが含まれている。
OSGi Framework1105は、JVM1104上で動作するアプリケーションのライフサイクルを管理するコンポーネントであり、アプリケーションのインストール/アンインストール、起動/停止などを管理する。この仕組みは、管理サービスの標準技術の一つである「OSGi Framework」という標準技術に対応した作りとなっている。OSGi Frameworkの詳細については「OSGi Service Platform Release 2, October 2001, OSGi」を参照のこと。
装置制御用Class Library1106は、追加アプリケーションがController1102を介して画像処理装置のプリンタやスキャナなどの機器制御を行なうためのインタフェースを提供するライブラリである。Utility Class Library 1107は追加アプリケーションに対して、画像処理装置のもつ各種の機能を提供するライブラリである。Imaging Class Library1108、基本的なイメージ処理機能を提供するライブラリであり、画像イメージのサイズの縮減、画像のフォーマット変換などの処理を行う。
MIB Agent Class Library1109は、画像処理装置に設定されているMIB(Management Information Base)情報を取得・設定する為のライブラリである。Security Class Library1110は、JAVA(登録商標) の標準暗号セキュリティパッケージ(JCE およびJSSE)に相当するインタフェースを提供するライブラリである。USB Common Class Library 1111は、USB経由の通信機能を提供するライブラリである。
追加アプリケーション1112は、JAVA(登録商標)プログラムで記述され、画像処理装置に対して動的に追加/削除することが可能なアプリケーションである。追加アプリケーションは、操作部上にユーザインタフェースを表示するアプリケーションであるAppletタイプ、ネットワーク上のWebブラウザ上にユーザインタフェースを表示するServletタイプ、ユーザインタフェースを持たないEspletタイプに分類される。アプリケーションを追加することによって、画像処理装置の機能を拡張することができる。
System Interface Service (SIS)1113は、追加アプリケーションと画像形成装置の間の情報交換機能を提供するサービスである。アプリケーションからの依頼を受け、例えば電源状態の変更などのイベントをアプリケーションに通知したり、アプリケーションから機器に対してLEDやブザーの制御を依頼したりするのに用いられる。
Applet Viewer Service1114 はApplet タイプのサービスの登録、表示、切り替えなどをおこなうサービスである。また、Applet タイプの追加アプリケーションに対してイベントの通知も行う。
Service Management Service(SMS)1115は、追加アプリケーションの管理を行うためのユーザインタフェースを提供するサービスである。SMSは、アプリケーションの管理機能として以下の機能を持つ。
・一覧表示:
アプリケーション名、インストール日、アプリケーションID、状態、ライセンス状態、資源使用状況を一覧する。
・インストール:
アプリケーションのインストールを行う。
・アンインストール:
デバイス上からアプリケーションを完全に削除する。なお、アプリケーションは、ライセンスが無効化されていない状態ではアンインストールできない。
・開始:
停止状態のアプリケーションを起動・開始する。
・停止:
開始状態(実行状態)のアプリケーションを停止する。
・ライセンスのインストール:
ライセンスを必要とするアプリケーションのライセンスファイルのインストールをおこなう。
・ライセンスの無効化:
アプリケーションのライセンスを無効化し、ライセンスファイルをデバイスからPC上に取り出せる状態にする。
・ライセンスのダウンロード:
無効化されたライセンス(ライセンスファイル)をPCにダウンロードする。ダウンロードしたライセンスは同じデバイスに対してのみ再インストールが可能である。
・認証アプリケーションの切り替え:
認証用アプリケーションの切り替えを行う。切り替え後は機器の再起動が必須である。
・表示順の変更:
操作部上のアプリケーションの表示順を変更する。
・システム情報の表示:
システム情報を表示する。
・アプリケーション情報一覧:
アプリケーションのライセンス内容を含めた情報を一覧表示する。
・アプリケーションの履歴一覧:
アンインストールしたアプリケーションの一覧を表示する。
・パスワードの変更:
SMSにログインする際のパスワードを変更する。
HTTPサービス1116は、HTTP及びHTTPSによる通信を行うコンポーネントである。このHTTPサービスの機能によって、ネットワーク上のWebブラウザからシステム・アプリケーションや、追加アプリケーションにアクセスすることが可能となる。前述の「OSGi Framework」にて規定されているHttp Serviceの仕様を基にログイン機能周りに対して拡張がなされている。
図11は、ネットワーク上のWebブラウザに表示されるSMSログイン画面の一例をあらわす図である。SMSログイン画面は、認証を受けていないブラウザからアクセスがあった場合に表示される。パスワード入力欄1201は、パスワードを入力させるための領域である。ログインボタン1202は、パスワード入力欄に入力されたパスワード情報を送りSMSにログインするためのボタンである。なお、SMSのパスワードはユーザが変更することができる。シリアルNo表示1203は、画像処理装置固有のシリアル番号を表示する。
図12は、ネットワーク上のWebブラウザに表示されるSMSのアプリケーション一覧画面の一例をあらわす図である。インストールボタン1301は、新規にアプリケーションをインストールするためのインストール画面を呼び出すためのボタンである。システム管理ボタン1302は、認証種別やアプリケーション表示順序などの設定を行うシステム管理画面を呼び出すためのボタンである。ログアウトボタン1303はSMSからログアウトするためのボタンであり、このボタンが押されるとSMSログイン画面12を表示する。アプリケーション一覧標示領域1304には、画像処理装置にインストールされているアプリケーションの一覧を表示する。ひとつのアプリケーションが一行の表形式で表示され、アプリケーション毎に、選択用ラジオボタン、名前、インストール日、アプリケーションID、状態、ライセンス状態、資源使用状況を表示する。名前表示はリンクテキストになっており、選択されるとそのアプリケーションのさらに詳細な情報を表示するアプリケーション詳細画面を表示する。
アンインストールボタン1305は、ラジオボタンで選択されているアプリケーションをアンインストールするためのボタンである。選択されているアプリケーションのライセンスの状態などによってアンインストールが不可能な場合、ボタンが不活性化されて押し下げ不可能となる。図では不活性化された状態を示している。
開始ボタン1306は、ラジオボタンで選択されているアプリケーションを開始するためのボタンである。停止ボタン1307は、ラジオボタンで選択されているアプリケーションを停止するためのボタンである。資源情報表示領域1308には、インストールされているアプリケーションが使用しているハードディスク容量、メモリ、スレッド、ソケット、ファイル記述子を表示する。
図13は、ネットワーク上のWebブラウザに表示されるSMSのアプリケーションインストール画面の一例をあらわす図である。アプリケーション一覧ボタン1401は、図12のアプリケーション一覧画面を呼び出すためのボタンである。システム管理ボタン1402は、認証種別やアプリケーション表示順序などの設定を行うシステム管理画面を呼び出すためのボタンである。ログアウトボタン1403はSMSからログアウトするためのボタンであり、このボタンが押されるとSMSログイン画面12を表示する。
アプリケーション選択ボタン1404は、インストールするアプリケーションのファイルを選択するためのボタンである。このボタンが押されるとOS標準のファイル選択ダイアログを表示する。ユーザはこのダイアログからインストールするアプリケーションを選択することができる。1405には、ユーザが選択したアプリケーションファイルのパスを表示する。
ライセンスファイル選択ボタン1406は、インストールするアプリケーションのためのライセンスファイルを選択するためのボタンである。このボタンが押されるとOS標準のファイル選択ダイアログを表示する。ユーザはこのダイアログからインストールするライセンスファイルを選択することができる。1407には、ユーザが選択したライセンスファイルのパスを表示する。OKボタン1408は、ユーザが選択したアプリケーションファイルおよびライセンスファイルのインストールを実行するためのボタンである。キャンセルボタン1409はインストール処理を行わずにキャンセルするためのボタンである。
図14は、ネットワーク上のWebブラウザに表示されるSMSのアプリケーション詳細画面の一例をあらわす図である。アプリケーション一覧ボタン1501は、アプリケーション一覧画面(図12)を呼び出すためのボタンである。インストールボタン1502は、新規にアプリケーションをインストールするためのアプリケーションインストール画面(図13)を呼び出すためのボタンである。システム管理ボタン1503は、認証種別やアプリケーション表示順序などの設定を行うシステム管理画面を呼び出すためのボタンである。ログアウトボタン1504はSMSからログアウトするためのボタンであり、このボタンが押されるとSMSログイン画面(図11)を表示する。
アプリケーション情報表示領域1505は、そのアプリケーションの詳細な情報を表示する。表示する情報は、アプリケーションID、アプリケーション名、インストール日、製造会社、製品バージョン等である。ライセンス情報表示領域1506は、そのアプリケーションのライセンス情報を表示する。表示する情報はライセンスの状態、シリアル番号、有効期限、カウンタ情報等である。ライセンス管理ボタン1507はライセンス管理画面(図15)を呼び出すためのボタンである。
図15は、ネットワーク上のブラウザに表示されるSMSのライセンス管理画面の一例をあらわす図である。ボタン1601から1604は、図14で説明した1501から1504と同じ役割を持つボタンである。OKボタン1605は、アプリケーション詳細画面(図14)に戻るためのボタンである。ライセンスファイル選択ボタン1606は、インストールするライセンスファイルを選択するためのボタンである。このボタンが押されるとOS標準のファイル選択ダイアログを表示する。1607には、ユーザが選択したライセンスファイルのパスを表示する。インストールボタン1608は、ユーザが選択したライセンスファイルのインストールを実行するためのボタンである。無効化ボタン1609は、ライセンスを無効にするためのボタンである。ダウンロードボタン1610は、無効になっているライセンスファイルをPCにダウンロードするためのボタンである。削除ボタン1611は無効になっているライセンスファイルを削除するためのボタンである。なお、ダウンロードボタン1610および削除ボタン1611は、ライセンスの状態によってその操作が不可能な場合、ボタンが不活性化されて押し下げ不可能となる。
(提供サービス更新情報フィードデータの生成と供給)
図16は、アプリケーション関連更新情報のRSSフィードを生成および供給するためのソフトウェア構造を示すブロック図である。管理者1701は、MEAP(登録商標)のアプリケーション管理を行うユーザであり、装置に動的に組み込まれサービスを提供するアプリケーションの追加、編集、削除などの管理を行うために、画像処理装置110を操作する。ユーザ1702は、デスクトップコンピュータ101上で稼動するRSSリーダ1710を介して画像処理装置110にアクセスし、MEAPのアプリケーションに関連する更新情報を参照するユーザである。またユーザ1702は、デスクトップコンピュータ101上で稼動するWebブラウザ1709を介して画像処理装置110にアクセスし、画像処理装置110が提供する資源やWebアプリケーションをブラウズする。画像処理装置110とデスクトップコンピュータ101はネットワーク接続されており、それぞれの上で稼動するソフトウェアはHTTPやHTTPSなどのプロトコルにしたがって互いにデータを通信する。
それでは、画像処理装置110内部のソフトウェア構成を説明する。アプリケーション関連更新情報のRSSフィードを生成および供給するためのソフトウェア構造は、JVM1104、機器制御用クラスライブラリ1106、サービス管理サービス1115、HTTPサービス1116を含む。サービス管理サービス1115の内部は、さらに以下のソフトウェアから構成される。なお、図10の追加アプリケーション1112は、図16のMEAPアプリケーションDBに含まれるアプリケーションのうちの、削除および追加可能なアプリケーションに相当する。図10ではSMS1116と追加アプリケーション1112とは独立して記載されているが、追加アプリケーション1112はSMS1116により管理されている。図16ではこの関係を包含関係で示している。
アプリケーション管理インタフェース1703は、画像処理装置110に組み込まれてサービスを提供するためのアプリケーションやライセンスを装置の外部からインストールしたりアンインストールしたり制御したりするための管理インタフェースを提供する。アプリケーション管理インタフェース1703は、SMS1115のWebアプリケーション(Servlet型サービス)として実装され、管理者1701が遠隔のWebブラウザからネットワーク通信を介して操作できる(不図示)。アプリケーション管理インタフェース1703は、画像処理装置がローカルに備える操作部112にそのユーザインタフェースを提供するように実装してもよい(Applet型サービス)。
MEAPアプリケーションデータベース(DB)1704は、画像処理装置110の組み込みアプリケーションプラットフォームにインストールされているMEAPアプリケーション群とそのライセンス群1704Aを蓄積管理するデータベースである。
シンジケーションDB1705は、画像処理装置110の組み込みアプリケーションに関する更新情報のシンジケーションに用いられるデータを蓄積管理するためのデータベースである。蓄積管理されるデータは、MEAPアプリケーションとそのライセンスに関する変化の事象(イベント)が生起するたびにその事象に関する属性情報を保持して生成される更新情報エントリーを含む。
テンプレートDB1706は、シンジケーション(配給)に用いるXMLファイルの雛形を提供するテンプレートを蓄積管理するためのデータベースである。また、生成ルールを記述したデータもテンプレートデータに含まれる。生成ルールとは、たとえば更新情報の対象として変化を監視するか否かを定義した情報(監視対象情報)1706Aや、更新情報の対象とする期間についての情報(期間情報)1706Bなどである。これらについては、図18や図25を参照して後で説明する。シンジケーションためのXML応用は、RSSの各バージョンやAtomなどの仕様に準拠する。シンジケートするべき情報の種類と準拠する仕様とに応じて、複数のテンプレートが用意される。
更新情報生成部1707はテンプレートエンジンを含む。テンプレートエンジンは、テンプレートDB1706に蓄積管理されたテンプレート群に基づいて、シンジケーションDB1705に蓄積管理されたデータと、機器制御用クラスライブラリ1106から得られる画像処理装置110の構成や状態などの諸属性とから、シンジケーションに用いるXMLファイルを生成する。更新情報生成部1707は、生成したXMLファイル(RSSやAtomなどのシンジケーションデータファイル)を更新情報(RSS)記憶部1708に格納する。
更新情報(RSS)記憶部1708は、シンジケーションに用いるXMLファイルを蓄積するためのストレージである。更新情報記憶部1708は、シンジケートするべき情報の種類に応じて異なる複数のファイルを保持する。また準拠するXML応用の仕様に応じて、RSSの各バージョンやAtomなどの形式で記述された複数のファイルを保持する。更新情報記憶部1708はHTTPサーバ1116によってアクセス可能なファイルシステムとしてマウントされている。更新情報記憶部1708に蓄積されたXMLファイル群の各ファイルは、HTTPサーバ1116に接続するHTTPクライアント群から見るとそれぞれが固有のURLによって特定される。HTTPクライアントがHTTPサーバ1116に接続して、このURLによって特定される資源を取得要求すると、HTTPサーバ1116は取得要求で指定されたURLに対応するXMLファイルを更新情報記憶部1708から読み出して、HTTPクライアントに送信する。
HTTPサーバ1116は、HTTPクライアントからのHTTPやHTTPSによる要求に応えて、画像処理装置110内部に保持されている各種資源(リソース)のデータを応答として転送する。HTTPによってクライアントがアクセスする資源には、HDD304など画像処理装置110内部の不揮発性メモリに保持されたHTMLや画像などの静的なデータファイル(更新情報画像記憶部1708に保持されたXMLファイルを含む)や、また、CPU301によって実行されるプログラムによって動的に生成されるデータがある。HTTPの要求に応えて動的に生成されるデータには、MEAPのServlet型アプリケーションがJVM1104上で稼動して提供する各種のWebアプリケーション群(たとえばデスクトップコンピュータから遠隔操作するための前述のSMSのユーザインタフェースなど)が生成するHTMLなどがある。
<コンピュータのソフトウェア構成>
次に、デスクトップコンピュータ101内部のソフトウェア構成を説明する。RSSリーダ1710は、RSSの各バージョンやAtomなどのシンジケーションのためのXML形式を取得して整形表示するためのアプリケーションプログラムである。インターネットに存在するニュース配信サイトや情報提供サイト、ウェブログ(weblogまたはblog)などのWebサイトの多くは、サイトのコンテンツに加えて、サイトの新着記事をシンジケートするためにシンジケーションデータも提供している。ユーザ1702はRSSリーダ1710を用いて、これらのインターネット上のサイトの新着記事のタイトルや内容を効率的にブラウズすることができる。RSSリーダ1710はインターネットに限らずイントラネット中にあるシンジケーションデータであっても、URIで特定し取得できる資源として公開されていればアクセスできる。画像処理装置110の更新情報記憶部1708内に格納されているシンジケーションデータを識別するためのURIを指定して、RSSリーダ1710からHTTPサーバ1116にHTTPの取得要求を送信すると、HTTPサーバ1116からの応答として更新情報記憶部1708内に格納されているシンジケーションデータを受信できる。RSSリーダ1710が整形表示するシンジケーションデータの内部にはURIで特定されるハイパーリンクが含まれている場合がある。ユーザ1702がRSSリーダ1710の表示上で特定のハイパーリンクを選択すると、RSSリーダ1710はWebブラウザ1709と連携してWebブラウザ1709にそのURIを取得および表示せしめる。
Webブラウザ1709は、インターネットやイントラネット上のWebサーバ中にURIによって特定できる形態で提供されている各種の資源、たとえばHTMLやXHTMLなどのマークアップ言語の文書データおよび各種のマルチメディアデータ(静止画像、動画像、オーディオなど)を取得して、適切に整形し、グラフィカルに表示したり音声で読み上げたりする。データの取得は主にHTTPやFTPなどの通信プロトコルによって行う。Webブラウザ1709は通信プロトコル上、クライアント・サーバモデルのクライアント側であり、たとえばHTTPクライアントとして位置づけられる。ユーザ1702がブラウズするデータの内部にURIで特定されるハイパーリンクが含まれている場合、ユーザが特定のハイパーリンクのアンカーを選択すると、Webブラウザ1709は指定されたURIの資源を取得し表示する。HTMLなどのマークアップ文書の書式(form)の仕様などを利用して、Webブラウザ1709からWebサーバ側の資源に対してデータを送信(post)する場合もある。ユーザ1702は、Webブラウザ1709を用いて、たとえば画像処理装置110のJVM1104上で稼動するServletに割り当てられたURIを指定して取得要求する。画像処理装置110のHTTPサーバ1116はこの取得要求を当該のServletに転送し、さらにServletが処理結果として生成したHTMLなどの応答をWebブラウザ1709に返送する。
なお、本実施例ではRSSリーダ1710とWebブラウザ1709はそれぞれが単体のアプリケーションプログラムとして構成したが、両者の機能を兼ね備えた単体のアプリケーションプログラムとして構成してもよい。また、RSSリーダ1710とWebブラウザ1709はデスクトップコンピュータ101上で稼動するものとして説明したが、デスクトップコンピュータだけでなくPDAなどポータブル型のコンピュータも含めさまざまな汎用情報処理装置上で稼動するように構成してもよい。あるいは、画像処理装置120、130のような複合機やデジタルカメラなどの画像処理装置、携帯電話などの各種組み込み装置上で稼動するように構成してもよい。
図17は、シンジケーションDBのデータ構造を示すブロック図である。systemUrl1801は、画像処理装置110のWebサーバのトップページを特定するURI(URL)である。トップページは画像処理装置110が提供する各種Webサーバ機能への入り口としての役割を果たす。webApplicationName1802は、画像処理装置110のWebサーバが提供するWebアプリケーション機能に名づけられた名称である。productName1803は、画像処理装置110の製品名称(モデル名など)である。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。
deviceName1804は、特定の画像処理装置110に名づけられた固有の装置名称である。固有の装置名称は装置のユーザ(管理者)が利用の便宜上装置を特定するために名づけるものである。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。deviceSerialNumber1805は、特定の画像処理装置110に割り当てられたシリアル番号である。シリアル番号は画像処理装置110のメーカーが個別の機体を特定するために用いる場合がある。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。deviceOptionUnits1806は、画像処理装置110に装着されているオプションユニット群を記述する文字列である。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。deviceLocation1807は、画像処理装置110が設置されている場所を記述する文字列である。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。
administrator1808は、画像処理装置110の管理を担当するユーザ名やその電子メールアドレスを記述する。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。messageOfTheDay1809は、画像処理装置110の管理を担当するユーザが他のユーザたちのためにアナウンスするメッセージを記述する。このメッセージは、画像処理装置110の操作部122やWebアプリケーション(リモートUI)に表示される場合がある。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。
mfpStatus1810は、画像処理装置110の複合機としての動作状態を記述する。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。printerStatus1811は、画像処理装置110のプリンタとしての動作状態を記述する。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。imageReaderStatus1812は、画像処理装置110の画像入力装置(画像スキャナ、デジタルカメラなど)としての動作状態を記述する。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。sendStatus1813は、画像処理装置110の送信装置(ファクス、IFAX、電子メール、ファイル転送など)としての動作状態を記述する。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。receiveStatus1814は、画像処理装置110の受信装置(ファクス、IFAX、電子メール、ファイル転送など)としての動作状態を記述する。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。storageStauts1815は、画像処理装置110のストレージ装置としての動作状態を記述する。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。
lastUpdateDate1816は、最新の更新情報エントリーがシンジケーションDB1705に登録された日時を記述する。entry1817は、一連の更新情報エントリーを保持するための構造を持ったリストである。リストに含まれる各エントリーの構造は後述する。application1818は、MEAPアプリケーションDB1704にインストールされているアプリケーション群とライセンス群の情報を保持するための構造を持ったリストである。user1819は、画像処理装置110の登録ユーザの情報を保持するための構造を持ったリストである。このフィールドの値は、更新情報生成部1707が必要とするときに、機器制御用クラスライブラリ1106経由でコントローラから取得して動的に解決される。
それでは、entry1817のリスト1920に含まれる各要素の構造を説明する。リストの各要素は個々の更新情報エントリーに対応する。entryPermanentLink1921は、この更新情報エントリーの詳細情報を説明したHTMLを取得するための資源を特定するURIを記述する。ユーザがWebブラウザ1709などを用いてこのURIが指し示す資源を取得した場合、この更新情報に関連する詳細情報の表示を得られる。entryDate1922は、この更新情報エントリーが発生した日時を記述する。entrySubject1923は、この更新情報エントリーの主題を記述する。たとえば、新規アプリケーションのインストールを示すエントリーの場合、イベントのカテゴリーである「インストール」という情報を記述する。
entryDescription1924は、この更新情報エントリーの説明を記述する。説明はユーザが読んで更新情報の内容を理解するためのものであり、自然言語で記述される。HTMLなどでマークアップされており、ハイパーテキストのリンクや画像などの埋め込みを含む場合もある。entryOperator1925は、この更新情報エントリーに対応する更新イベントを生起させる操作を行ったユーザを記述する。イベント生起に特定のユーザが関与していない場合(タイマーなどによって自動的に生起したイベントなど)、このフィールドの値は「システム」や「タイマー」などとなる。entryApplicationName1926は、この更新情報エントリーに関連するアプリケーションの名称を記述する。アプリケーションがWebアプリケーションの場合、それを特定するURIの記述も含む。たとえば、更新情報が新規アプリケーションのインストールの場合、関連するアプリケーションはインストールされたアプリケーションである。entryApplicationDescription1927は、この更新情報エントリーに関連するアプリケーションの説明を記述する。説明はユーザが読んでアプリケーションの内容を理解するためのものであり、自然言語で記述される。HTMLなどでマークアップされており、ハイパーテキストのリンクや画像などの埋め込みを含む場合もある。
entryApplicationSeeAlso1928は、この更新情報エントリーに関連するアプリケーションの他の情報源を特定するURIを記述する。たとえば、SMSによるアプリケーション情報表示画面のURLや、アプリケーションの開発元が提供するWebサイトのアプリケーション情報ページのURLなどを記述する。entryLicenseCondition1929は、この更新情報エントリーに関連するアプリケーションのライセンス条件やその状態を記述する。entryIsNewApplication1930は、この更新情報エントリーが、利用可能な新規アプリケーションの追加というイベントに基づくものの場合に真になる。entryIsApplicationUnavailable1931は、この更新情報エントリーが、アンインストールなどによってアプリケーションが利用不能になったとき生起するイベントに基づくものの場合に真になる。entryIsLicenseExpired1933は、この更新情報エントリーが、ライセンスが時効により失効したというイベントに基づくものの場合に真になる。
図18は、更新情報を監視する対象を設定するための画面の例を示す図である。アプリケーションおよびそのライセンスに対するイベントごとに監視対象とするかしないかを選択するスイッチを表示する。1901はアプリケーションのインストール/アンインストールを監視対象とするか否かを設定するスイッチであり、ONに設定されるとユーザによってアプリケーションがインストールまたはアンインストールされた時に、その情報を更新情報ファイルに記録するように動作する。同様に、1902はアプリケーションの開始/停止を監視対象とするか否かを設定するスイッチである。
1903はライセンスの有効期限切れ警告を監視対象とするか否かを設定するスイッチである。このスイッチがONに設定されると、ライセンスの有効期限の残りが所定の日数(30日、10日、5日、1日)よりも短くなった時に、その情報を更新情報ファイルに記録するように動作する。
1904はライセンス無効を監視対象とするか否かを設定するスイッチである。このスイッチがONに設定されると、ライセンスが無効になった時にそれを更新情報として記録する。ライセンスが無効になるのは有効期限が切れた場合やユーザが無効化した場合がある。
1905はアプリケーションカウンタの情報を監視対象とするか否かを設定するスイッチである。このスイッチがONに設定されると、アプリケーションカウンタの値が変化した時に、その情報を更新情報として記録する。
これらスイッチで設定された値は、各項目ごとに、図16で説明した監視対象情報1706Aに保存される。
図19は、画像処理装置におけるアプリケーション管理の処理手順のフローチャートである。この処理手順は画像処理装置110のCPU301によって実行される。この処理のアルゴリズムはSMS1115のソフトウェアモジュールであるアプリケーション管理インタフェース1703に含まれる。SMS1115は、操作部112上に操作画面を構成することもできるし、Webアプリケーションとして構成することもできる。Webアプリケーションとして実装した場合、その操作画面は遠隔のWebブラウザ上に図11から図15に示した例のようになる。
ステップS2001で、ユーザによる操作選択の入力を待ち操作の種別に応じて条件分岐する。選択された操作種別が、インストール(操作画面の1301に対応)の場合、ステップS2002に進み、アプリケーション一覧(操作画面の1401に対応)の場合、ステップS2007に進む。
ステップS2002で、アプリケーションファイルおよびライセンスファイルまたはそのいずれか一方の入力を行う。ステップS2003で、アプリケーションファイルが入力されたかどうかを判定する。入力された場合ステップS2004に進み、入力されない場合ステップS2005に進む。ステップS2004で、入力されたアプリケーションファイルをMEAPアプリケーションDB1704にインストールする。ステップS2005で、ライセンスファイルが入力されたかどうかを判定する。入力された場合ステップS2006に進み、入力されない場合ステップS2012に進む。ステップS2006で、入力されたライセンスファイルをMEAPアプリケーションDB1704にインストールする。次いで、ステップS2012に進む。
一方、ステップS2007で、アプリケーション一覧中からユーザによって選ばれたアプリケーションを選択する。以下の操作は選択されたアプリケーションを対象とする。
ステップS2008で、ユーザによる操作選択の入力を待ち操作の種別に応じて条件分岐する。選択された操作種別がアンインストール(操作画面の1305に対応)の場合ステップS2009に進み、開始(操作画面の1306に対応)の場合ステップS2010に進み、停止(操作画面の1307に相当)の場合ステップS2011に進む。
ステップS2009で、選択されたアプリケーションをMEAPアプリケーションDB1704からアンインストールする。次いで、ステップS2012に進む。ステップS2010で、選択されたアプリケーションの動作を開始する。次いで、ステップS2012に進む。
ステップS2011で、選択されたアプリケーションの動作を停止する。次いで、ステップS2012に進む。
ステップS2012で、前ステップで実行された処理に応じて相当する更新情報エントリーを生成する。すなわち、アプリケーションやライセンスのインストールまたはアンインストール、あるいは、アプリケーションの開始や停止のイベントに対応して、そのイベントの詳細情報を記述した更新情報エントリーを生成する。ただしこのときには、監視対象情報1706Aを参照して、イベントに対応する項目の値が、当該イベントが監視対象であることを示している場合に、更新情報エントリが生成される。
ステップS2013で、生成した更新情報エントリーをシンジケーションDB1705に格納する。ステップS2014で、RSSフィードファイルの生成処理を呼び出して、新しい更新情報エントリーが加えられ変更されたシンジケーションDBから新しいRSSフィードファイルを生成する。
図20は、画像処理装置の動作に伴うライセンス条件の状態変化を監視する処理手順のフローチャートである。この処理手順は画像処理装置110のCPU301によって実行される。この処理のアルゴリズムはSMS1115に含まれる。
ステップS2101で、アプリケーションによるジョブ実行を監視する。ステップS2102で、ジョブの実行に伴う資源使用量の積算をカウントアップする。ステップS2103で、ライセンス有効期限の到来や資源使用量の増加などに伴ってライセンス条件が失効したかどうか判定する。失効した場合ステップS2104に進み、しない場合ステップS2108に進む。
ステップS2104で、ライセンスが失効したアプリケーションのライセンスを無効化するためにMEAPアプリケーションDB1704を変更する。ステップS2105で、ライセンスが失効したアプリケーションの動作を停止する。ステップS2106で、ライセンス失効のイベントを記述した更新情報エントリーを生成する。ただしこのときには、監視対象情報1706Aを参照して、イベントに対応する項目の値が、当該イベントが監視対象であることを示している場合に、更新情報エントリが生成される。ステップS2107で、生成した更新情報エントリーをシンジケーションDB1705に格納する。次いで、ステップS2111に進む。
一方、ステップS2108で、有効期限や資源の使用量制限などの残りと既定値とを比較して、ライセンス条件の失効が近いかどうかを判定する。失効が近い場合ステップS2109に進み、残りが十分な場合ステップS2111に進む。ステップS2109で、ライセンス失効が迫っているというイベントを記述した更新情報エントリーを生成する。ただしこのときには、監視対象情報1706Aを参照して、イベントに対応する項目の値が、当該イベントが監視対象であることを示している場合に、更新情報エントリが生成される。ステップS2110で、生成した更新情報エントリーをシンジケーションDB1705に格納する。次いで、ステップS2111に進む。
ステップS2111で、アプリケーションによるジョブ実行の監視とその過去の履歴に基づく統計処理を行う。アプリケーションによるジョブ実行の監視とその過去の履歴に基づく統計処理には、ユーザやユーザのグループごとの資源利用の算出や、時間帯とジョブ実行の相関の割り出し、アプリケーション利用率の増減度合いの算出、通信や蓄積のデータサイズ積算、消耗品のランニングコストや画像処理装置特有のメンテナンスコスト算出など、さまざまな統計処理が有用である。
ステップS2112で、統計処理利用の一例として、ジョブ実行を監視したアプリケーションの最近一定期間の利用回数が過去の一定期間に比べて急増しているかどうかを判定する。利用が急増している場合ステップS2113に進み、していない場合ステップS2114に進む。ステップS2113で、アプリケーション利用が急増しているというイベントを記述した更新情報エントリーを生成する。ただしこのときには、監視対象情報1706Aを参照して、イベントに対応する項目の値が、当該イベントが監視対象であることを示している場合に、更新情報エントリが生成される。ステップS2114で、生成した更新情報をシンジケーションDB1705に格納する。
ステップS2115で、RSSフィードファイルの生成処理を呼び出して、新しい更新情報エントリーが加えられ変更されたシンジケーションDBから新しいRSSフィードファイルを生成する。次いで、ステップS2101に戻り、アプリケーションの監視処理を繰り返す。
図21は、画像処理装置の更新情報のシンジケーションに用いるXML形式(すなわちシンジケーションデータのフォーマット)の一例の構造を示す図である。更新情報記憶部1708に格納されURIによって特定されるXMLファイルは、画像処理装置の組み込みアプリケーションに関連する各種データの更新や装置の組み込みアプリケーションに関連して生起する各種イベントの情報を記述するXML文書である。このXML文書の形式は、一般のWebサイトがサイトの更新情報を配信するために利用している各種のフォーマットに対応して複数種類を提供する。画像処理装置110は、RSSの各バージョンやAtomなどのXML形式をサポートするが、ここではRSS1.0による記述を例にあげて説明する。図21において、各ブロックの包含関係は、XML要素の包含関係を意味する。
RDF要素2201はXML文書の最上位の要素である。RDF要素はchannel要素2202、image要素2203、item要素2204、2205、2206を含む。channel要素2202は、更新情報全体に関連する基本情報を記述する。この要素はRDF的な主語ノードに相当する。channel要素の内容には、title要素2207、link要素2208、description要素2209、image要素2210、items要素2211が含まれる。title要素2207は、この更新情報のタイトルを表す。link要素2208は、この更新情報が扱っているサイトのURIを表す。description要素2209は、この更新情報が扱っているサイトの内容や機能などの説明を記述する。image要素2210は、この更新情報が扱っているサイトのロゴなどの画像資源を特定するURIを記述する。詳細は後述のimage要素2203で記述する。items要素2211は、item要素群2204、2205、2206のインデクスを提供する。Seq要素2212の内容にリストしたli要素2213によって各更新情報URIを示す。image要素2203は、ロゴなどの画像を表現する。内容には、title要素2214、url要素2215、link要素2216を含む。title要素2214は、画像のタイトルを表し、画像の代替テキストとして用いられることがある。url要素2215は、画像リソースのURIを記述する。link要素2216は、この画像をアンカーとするハイパーリンクを表示する場合にリンク先として用いるURIを記述する。item要素2204、2205、2206などは、それぞれが個々の更新情報を表現する複数の要素の並びである。内容には、title要素2217、link要素2218、description要素2219を含む。title要素2217は、更新情報のタイトルを記述する。link要素2218は、更新情報のURIを記述する。description要素2219は、更新情報の説明を記述する。
図22は、テンプレートDBに格納されるテンプレートの一例である。図に例示するテンプレートは、RSS1.0形式のXMLファイルを生成するために用いられる。テンプレートデータは、各種のシンジケーション用ボキャブラリからなるXML要素とテンプレート制御命令とテンプレート変数を記述した複数のテキストデータである。既に説明したRSS1.0形式のXMLの語彙については同一の符号をつけて説明を省略する。
テンプレートDB1706に格納されるテンプレートデータは、出力するシンジケーションデータの形式(RSSの各バージョンやAtomなど)によって複数存在する。ユーザや管理者や画像処理装置を含むシステムを構築するシステムインテグレータなどは、テンプレートファイルを容易に複製・編集して、利用環境に合わせてカスタマイズしたり複数のテンプレートのバリエーションを用意して使い分けたりできる。テンプレートは構造化されたテキストデータであるため、グラフィカルユーザインタフェースを持つビジュアルエディタによって直感的に編集することも容易である。テンプレートエディタ(不図示)が提供され、ユーザなどは、テンプレートの構造と、テンプレートに埋め込まれるべき情報の対応づけとを、グラフィカルに編集できる。
テンプレートからRSSファイルの生成において、テンプレートのほとんどのテキストはそのままRSSファイルに出力されるが、"TMPL_"の接頭辞を持つ擬似要素(図22において太字で示す)は、更新情報生成部1707のテンプレートエンジンによってテンプレート変数やテンプレート制御命令として特別に処理される。
TMPL_VAR擬似要素はテンプレート変数であり、テンプレートエンジンによって、name属性の名前を持つ変数の値に置き換えられる。すなわち、TMPL_VAR擬似要素は、画像処理装置の構成または設定または状態に関する属性と置き換えられる変数である。置き換えられる値は、シンジケーションDB1706内の更新情報エントリーの情報や、MEAPアプリケーションDB1704内のアプリケーション情報やライセンス情報、機器制御用クラスライブラリ1106を経由してコントローラモジュールから得られる画像処理装置の構成情報や状態情報などに基づく。
TMPL_LOOP擬似要素はテンプレート制御命令であり、name属性の名前を持つリスト変数からリストに含まれる変数を順次選択しながらTMPL_LOOPの終了タグ(</TMPL_LOOP>)までの内容を繰り返し処理する。リストから順次選択される変数はその内部に構造を持っており(図17のentryリストの内容を参照)、TMPL_LOOPによる繰り返しのブロック中に含まれるTMPL_VAR擬似要素のname属性がこの変数の内部構造の変数を参照すると、そのTMPL_VAR擬似要素はその内部構造の変数の値に置き換えられ出力される。
TMPL_IF擬似要素はテンプレート制御命令であり、name属性の名前を持つ変数の真偽値によってテンプレートエンジンの処理を制御する。変数が真の場合TMPL_IFの終了タグ(</TMPL_IF>)までの内容を処理するが、偽の場合はTMPL_IFの開始タグから終了タグまでを読み飛ばす。
図22のテンプレートが生成するシンジケーションのための更新情報フィードデータはRSS1.0形式のXML応用であるため、XML名前空間を用いたモジュール拡張性を備える。すなわち、他のXML語彙と組み合わせて必要な情報をシンジケーションのフィードデータの中に容易に追加できる。たとえば、標準的なメタデータの記述要素として多用されるDublin CoreのDCMESプロパティから以下が組み合わされている。date要素2301、2306、subject要素2304、creator要素2305。また、AdminモジュールからgeneratorAgent要素2302が組み合わされている。
このように、更新情報をフィードするデータ形式を柔軟かつ厳密に拡張することが容易になることが、本実施例の大きな効果のひとつである。
図23は、更新情報生成部によるシンジケーションデータ生成の処理手順を示すフローチャートである。この処理は画像処理装置110のCPU301によって実行される。この処理のアルゴリズムは更新情報生成部1707に含まれる。この処理はフィードファイルを更新するとき呼び出される。たとえば、アプリケーション管理処理(図19)の最後や、SMSによるジョブ監視処理(図20)の最後に呼び出す。また、タイマーと連動して呼び出され、定期的にフィードファイルを更新する。または、クライアントからのHTTP要求によってフィードファイルの取得が要求されたときに呼び出し、更新したフィードファイルを応答するように構成してもよい。この場合、前回のフィードファイル生成から応答までの間に装置が動作していないときは、キャッシュしたフィードファイルを応答するように構成してもよい。
ステップS2401で、シンジケーションデータファイル(フィードファイル)の生成に用いるテンプレートを、テンプレートDB1706から選択して取り出す。前述のように、各種のXML形式や使い分けに応じたバリエーションで、複数のテンプレートが存在する。ユーザや管理者や画像処理装置を含むシステムを構築するシステムインテグレータなどは、ユーザインタフェース(不図示)を用いて、フィードファイル生成のために選択されるべきテンプレートを複数選択できる。複数のテンプレートが設定されている場合、フィードファイル生成のためのこの処理手順が呼び出されるときには、設定された複数のテンプレートに対応して複数のフィードファイルが生成される。
ステップS2402で、テンプレートを解析してフィードデータを出力する処理を行う。テンプレート解析の処理手順は再帰的に呼び出されるため、詳細は後述(図24)する。
図24は、更新情報生成部によるテンプレート解析とシンジケーションデータ出力の処理手順を示すフローチャートである。この処理は画像処理装置110のCPU301によって実行される。この処理のアルゴリズムは更新情報生成部1707に含まれる。
ステップS2501で、テンプレートデータをバイト列として読み込みながら字句解析して切り分けたトークン(字句)を順次読み込む。ステップS2502で、読み込んだトークンがテンプレート擬似要素であるかどうかを判定する。テンプレート擬似要素であればステップS2503に進み、テンプレート擬似要素でなければ(すなわち、フィードファイルにそのまま書き出されるべき通常のXML要素であれば)ステップS2513に進む。ステップS2503で、テンプレート擬似要素のテンプレート命令を判別し条件分岐する。テンプレート擬似要素がTMPL_IFの開始タグであればステップS2504に進み、TMPL_LOOPの開始タグであればステップS2506に進み、TMPL_VARであればステップS2512に進む。
ステップS2504では、TMPL_IF開始タグのname属性が参照する変数名の変数を評価して真偽値を判定する。変数はシンジケーションDB1705においてスキーマ定義されており、その値はシンジケーションDB1705の更新情報エントリーとMEAPアプリケーションDB1704と機器制御用クラスライブラリ1106に基づいて決定される。機器制御用クラスライブラリ1106からは画像処理装置の構成や状態およびジョブの情報などが得られる。変数の真偽値が偽ならばステップS2505に進み、真ならばステップS2514に進む。ステップS2505では、TMPL_IFの条件が偽であるため、TMPL_IFの終了タグまでテンプレートデータを読み飛ばす。次いで、ステップS2514に進む。
一方、ステップS2506では、TMPL_LOOP開始タグのname属性の名前を持つリスト変数をシンジケーションDBから読み出して評価する。TMPL_LOOP制御命令は、リストに含まれる変数を順次選択しながらTMPL_LOOPの終了タグ(</TMPL_LOOP>)までの内容を繰り返し処理する命令である。ここで、リスト変数がentryの場合を説明する。
ステップS2507では、シンジケーションDBから読み出したentryリストからリストに含まれる各変数、すなわち個々の更新情報エントリーを選択する。リストに含まれる各変数はそれぞれが更新情報エントリーに対応し図17の内部構造を持っている。以降のTMPL_LOOPによる繰り返しのブロック中に含まれるTMPL_VAR擬似要素のname属性がこの変数の内部構造の変数を参照すると、そのTMPL_VAR擬似要素はその内部構造の変数の値に置き換えられ出力される。したがって、TMPL_LOOPブロックの各繰り返しでは、更新情報エントリーのそれぞれをひとつずつ選択して、その情報に基づくテンプレート処理を行うことになる。
ステップS2508では、読み出した更新情報エントリーの内部変数entryDateと、あらかじめ設定されている更新情報掲載期間設定(図25)とを比較して、読み出したエントリーがシンジケーションのフィードファイルへの掲載期間内かどうかを判定する。掲載期間内であればステップS2508に進み、掲載期間内でなければステップS2511に進む。掲載期間の判断は、たとえば、当該エントリの日付と現在の日付とを比較し、エントリの日付を基準として、現在の日付が、図16の期間情報1706Bとして保存されている期間内であれば、掲載期間であると判定できる。
ステップS2509では、TMPL_LOOPの終了タグが現れるまで選択された更新情報エントリーのスコープの下で、再帰的にテンプレート解析処理を行う。ステップS2510では、TMPL_LOOPブロックのループ一周分が終了したので選択されていた更新情報エントリーの選択を解除する。ステップS2511では、entryリストに含まれるすべての更新情報エントリーの処理が完了したかどうかを判定する。すべての更新情報エントリーが処理済であればループを終了してステップS2514に進み、未処理の更新エントリーが残っていればステップ2506に進みTMPL_LOOPブロックの処理を繰り返す。
一方、ステップS2512では、TMPL_VAR擬似要素のname属性が参照する変数名の変数を評価してその値をフィードファイルに書き出す。変数はシンジケーションDB1705においてスキーマ定義されており、その値はシンジケーションDB1705の更新情報エントリーとMEAPアプリケーションDB1704と機器制御用クラスライブラリ1106に基づいて決定される。機器制御用クラスライブラリ1106からは画像処理装置の構成や状態およびジョブの情報などが得られる。次いで、ステップS2514に進む。
一方、ステップS2513では、通常のXML記述を構成するテキストとして、読み込んだトークンをフィードファイルにそのまま書き出す。次いで、ステップS2514に進む。ステップS2514では、テンプレートデータのすべてのトークンを処理済みかどうか判定する。処理済でなければステップS2501に戻り一連の処理手順を繰り返し、処理済であればこの処理手順から復帰する。
図25は、更新情報を更新情報ファイルに載せる期間を設定する画面の例を示す図である。アプリケーションおよびそのライセンスに対するイベントごとに期間を設定するプルダウンを表示する。各プルダウンは例えば、[1日/2日/3日/4日/5日/6日/7日/10日/15日/30日]が選択可能である。2601から2605はそれぞれ、アプリケーションのインストール/アンインストール、アプリケーションの開始/停止の開始、ライセンス有効期限警告、ライセンス無効、アプリケーションカウンタ情報、の各イベントが生起してから更新情報として扱う期間を設定するためのプルダウンである。例えば、図25に示した設定の場合、新しいアプリケーションがインストールされると、その情報はその後15日間更新情報として更新情報ファイルに掲載される。更新情報ファイルの取得要求に応答する際に、有効期限が経過しているエントリーを更新情報ファイルから削除する。設定された期間は、図16の期間情報1706Bとして保存される。
図26は、アプリケーション関連更新情報をシンジケーションするフィードファイルの一例を示す図である。図に例示するフィードファイルは、RSS1.0形式のXMLデータである。本フィードファイルは更新情報格納部1708に格納され、画像処理装置110の外部からも、URIで特定してネットワーク経由で取得できる。重要な記述のうち既に説明したRSS1.0の語彙は同一の符号をつけて説明を省略する。
2307はマークアップ言語のバージョン情報の宣言であり、このシンジケーションデータがXML1.0で記述されていることを宣言している。RDF要素2201は前述した通りXML文書の最上位の要素であると同時に、シンジケーションデータのバージョンの宣言であり、このシンジケーションデータがRSS1.0形式であることを宣言している。channel要素2202は、この配信に関する情報を記述する要素である。channel要素には配信に関連付けられたURIを示すlink要素2308、配信の名前を表わすtitle要素2207、配信の概要を説明したdescription要素2308を含む。link要素2308には、画像処理装置110が持つWebアプリケーション(リモートUI)のトップページのURIを記述する。
date要素2301はフィードデータが生成された日時を記述する。generatorAgent要素2302はフィードデータを生成したソフトウェアを記述する。subject要素2304はエントリーのカテゴリーを記述する。creator要素2305はエントリーの生成に関連したユーザ、すなわち操作者を記述する。date要素2306はエントリーが生成された日時を記述する。
item要素2204は更新情報エントリーを加工して得られる更新データを列挙する項目である。すなわち、画像処理装置110は更新データを複数の項目を含むマークアップ言語表記のフォーマットで出力する。item要素2204は、当該更新情報に関連付けられたURIを示すlink要素2218、各更新情報の名前を表わすtitle要素2217、各更新情報の概要を説明したdescription要素2219を含んでいる。link要素2218には、画像処理装置110が持つWebアプリケーション(リモートUI)の中の当該エントリに相当する更新情報の詳細を表示するページのURIを記述する。
(提供サービス更新情報フィードデータの取得と利用)
図27は、画像処理装置が提供する更新情報フィードファイルをクライアントが利用する通信と連携のシーケンスを説明するシーケンス図である。デスクトップコンピュータ101上で稼動するRSSリーダ1701とWebブラウザ1709、および、画像処理装置110上で稼動するHTTPサーバ1116が通信により連携する。RSSリーダ1701とWebブラウザ1709のソフトウェアモジュールは、必ずしもデスクトップコンピュータ101上に配備しなくてもよい。たとえば、他のタイプの情報処理装置や組み込み装置上に配備してもよいし、あるいは、画像処理装置110自体や他の画像処理装置120や130上で稼動するように配備してもよい。更新情報をシンジケーションするフィードファイルを汎用のXMLフォーマットで記述し、また、URIで特定して取得できるように構成したために、更新情報を利用するクライアントの形態、機能、システム構成などは、柔軟に組み合わせることができる。また、上述したシンジケーションデータの構造はchannel要素中のlink要素2308やitem要素中のlink要素2218を含むので、画像処理装置110の提供するWebページやWebアプリケーションとの連携が容易である。
事象1で、ユーザ1702がRSSリーダ1701を用いて注目する画像処理装置のRSSフィードを選択する。
事象2で、RSSリーダ1701はHTTPサーバ1116に対して通信を確立し、RSSフィードの取得要求を送信する。通信は一般にHTTPやHTTPSなどのアプリケーションプロトコルを用いて行う。
事象3で、HTTPサーバ1116はRSSリーダ1701に対して、HTTP要求に対する応答として画像処理装置に格納されている更新情報のフィードファイルを返送する。
事象4で、RSSリーダ1701は取得したフィードファイルを解析して、ユーザ1702がまだ読んでいないエントリーを整形して表示する。表示される更新情報は、シンジケーションのXML形式が規定するリンク情報を、選択可能なアンカーとして表示する。また、更新情報エントリーの説明にHTMLなどのハイパーテキストが含まれる場合、ハイパーリンクを選択可能なアンカーとして表示する。
事象5で、ユーザがRSSリーダ1701に表示されたエントリーに含まれるリンクのアンカーを選択する。
事象6で、RSSリーダ1701はWebブラウザ1701に対してアプリケーション間通信を行い、リンクに記述されたURIが特定するリソースの表示を要求する。
事象7で、Webブラウザ1709は要求されたリソースを取得する。与えられたリソースを特定するURIの所在情報が画像処理装置110のHTTPサーバ1116を指していれば、HTTPサーバ1116に対して通信を確立し、リソースの取得要求を送信する。通信は一般にHTTPやHTTPSなどのアプリケーションプロトコルを用いて行う。たとえば、画像処理装置110のJVM1104上で稼動するServletに割り当てられたURIを指定して取得要求する。
事象8で、HTTPサーバ1116はWebブラウザ1709に対して、HTTP要求に対する応答として要求されたリソースを返送する。HTTPサーバ1116は要求せれたリソースをストレージから読み出すかまたはプログラムによって動的に生成する。たとえば、取得要求に指定されたリソースがServletの場合、取得要求を当該のServletに転送し、Servletが処理結果として生成したHTMLなどの応答を返送する。
事象9で、Webブラウザ1709は取得したリソースを整形して表示する。
図28は、一般的なフィードリーダに表示される更新情報フィードの表示画面の一例である。図のフィードリーダは、たとえばデスクトップコンピュータ101上で稼動するRSSリーダ1710である。RSSフィードリスト2901は、フィードリーダにあらかじめ設定されたり、または、フィードリーダによる動的な探索の結果として発見されたりした、利用可能なシンジケーションのフィードデータが列挙されているメニューである。リストの各項目は利用可能なフィードデータに対応している。ユーザが項目を選択すると、フィードリーダは当該のフィードデータを取得し、展開して右側のペインに表示する。項目のハイライトは、その項目が選択されたことを表している。フィードタイトル2902は、その項目に対応するフィードデータを識別するためにフィードデータのタイトルを表示している。未読数2903は、その項目に対応するフィードデータ中に含まれる未読のエントリー数を表示している。
続いて、図の表示画面の右側のペインを説明する。右側のペインにはRSSフィードリスト2901で選択されたフィードデータに対応する情報が表示されている。フィード概要2904はフィードデータの全体的な概要を表示している。表示される情報は、図22および図26のRSSフィード例におけるchannel要素2202の内容に相当する。フィードタイトル2905は、フィードデータのタイトルを表示している。RSSフィード例におけるchannel要素2202中のtitle要素2207に相当する。表示されているタイトルはハイパーテキストのアンカーになっており、ユーザが選択すると、Webブラウザ1709と連携して、link要素2208に記述されているURIのリソースを取得表示する。この例では、画像処理装置110のWebアプリケーション群の入り口を提供するトップページへのアンカーになっている。
フィードロゴ画像2906は、フィードデータのロゴ画像を表示している。RSSフィード例では省略しているが、image要素2210とimage要素2203に相当する。表示されている画像データはurl要素2215に記述されているURIから取得したリソースである。表示されている画像はアンカーになっており、ユーザがこれを選択すると、Webブラウザ1709と連携して、link要素2216に記述されているURIのリソースを取得表示する。フィード概要2907は、フィードデータの概要説明を表示している。RSSフィード例におけるdescription要素2209に相当する。この例に示したように、画像処理装置内部に保持される各種の情報と置き換えられるテンプレート変数とフィードデータの書式を自在に組み合わせてシンジケーションされるデータを柔軟に設計できる。
更新情報エントリー2908、2909,2910はそれぞれがフィードファイルによってシンジケーションされた更新情報を表示している。RSSフィード例では、items要素2211のli要素2213のリストとしてインデクスされ、item要素2204、2205、2206に列挙された各要素に対応する。
エントリータイトル2911は、更新情報エントリーのタイトルを表示している。RSSフィード例では、title要素2217に相当する。表示されているタイトルはハイパーテキストのアンカーとなっており、ユーザが選択すると、Webブラウザ1709と連携して、link要素2218に記述されているURIのリソースを取得表示する。この例では、この更新情報エントリーの詳細を閲覧するための個別エントリー情報ページへのアンカーになっている。エントリー更新日時2912は、更新情報エントリーのイベントが生起した日時を表示している。RSSフィード例では、date要素2306に相当する。
エントリー記述2913は、更新情報エントリーの情報を記述している。RSSフィード例では、description要素2219に相当する。エントリー記述は、HTML(XHTML)でマークアップしたテキストとして画像や引用や表などを用いて構造化されているので、これらの構造を表現(プレゼンテーション)するように整形して表示している。また、Webページや電子メールアドレスなどを含む各種のリソースへのリンクが埋め込まれており、そのアンカーも表示している。表示されている情報は、RSSフィード例の生成において、テンプレートと画像処理装置内部の各種データベースや機器制御用クラスライブラ1106を介して得られる各種情報を元に生成されたものである。この例に示したように、画像処理装置内部に保持される各種の情報と置き換えられるテンプレート変数とフィードデータの書式を自在に組み合わせてシンジケーションされるデータを柔軟に設計できる。たとえば、表の「詳細」属性の値欄に記述したアンカーは、このアプリケーションの詳細情報ページへのリンクとなっており、ユーザがこのアンカーを選択するとたとえば図14のようなアプリケーション詳細情報を提供するWebページを簡単にブラウズできる。エントリーに関連するアプリケーションがWebアプリケーションの場合は、そのアプリケーション自体を操作するためのWebページへのリンクを記述したアンカーを埋め込み、更新情報を閲覧画面からワンアクションで当該のWebアプリケーションを利用できるように構成する。
以上の構成および動作により、本実施形態の画像処理装置は、指定されたデータの状態が変化すると、変化した事実および変化の内容の概略を示す、予め決められた形式(本実施形態ではRSS1.0)のデータを生成して保存する。このため、この所定の形式のデータを解釈して処理可能なコンピュータ等により読み出させることで、画像処理装置において生じたデータの変化を遠隔のコンピュータに知らせることができる。特に、そのデータがRSSに準拠しているために、市販のあるいは無償のRSSリーダ機能を搭載したプログラムをコンピュータにより実行させることで、画像処理装置の状態変化の監視を容易かつ安価に実現できる。しかも、コンピュータからは、1時間、1日、1週間といったように設定された間隔で状態変化のポーリングを行ったり、あるいは指定された時点でポーリングできる。また、データがXMLで記載されているために、その加工が容易である。
さらに、装置の状態として、アプリケーションのインストールやアンインストール、アプリケーションの開始および停止、ライセンスの期限切れ警告、ライセンス無効化、統計情報といった多くの情報を監視の対象とできる。さらに、監視対象を選択することができる。また、コンピュータに状態変化情報を供給する期間を指定することもできる。
もちろん、監視対象のイベントはこれらにかぎられず他のイベントを監視対象とすることもできる。たとえば、セキュリティ上重要な設定変更(暗号化の有無の切り替えや、TCP/IPポート設定の変更など)等を監視対象としてもよい。
〔第2の実施の形態〕
図29はフィードファイルのアグリゲーションや統計処理を施して表示する専用アプリケーションの表示例を示す図である。図のアプリケーションはデスクトップコンピュータ101などで稼動する。複数のフィードデータを統合し、過去に得たフィードデータの蓄積と合わせて処理して、さらにグラフィカルな表示を生成している。フィードデータはRSS1.0などのシンジケーション用形式をXMLの拡張性の枠組みを用いて拡張し、独自に定義した要素を含めることによって装置のカウンタ情報などの専用の値を埋め込んである。画像処理装置が提供する更新情報は、XMLで記述され、URIの参照によって取得可能であるため、一般的なRSSフィードリーダで閲覧するだけでなく、本例のようなさまざまな用途に応用することができる。
〔第3の実施の形態〕
(ボックスに関する更新情報のフィードデータの生成と供給)
図30は、ボックス関連更新情報のRSSフィードを生成および供給するためのソフトウェア構造を示すブロック図である。ユーザ4201は、ボックスの操作を行うユーザであり、画像処理装置110に組み込まれ文書管理システムであるボックス機能に対して文書の追加、編集、削除などの操作を行う。文書入力部4211は、文書を装置外部から画像処理装置110内部に取り込む。文書入力部4211は、ユーザ4201が画像処理装置110のスキャナを操作して読み込んだ画像ページ群を文書ファイルとしてボックス機能に追加する。また、遠隔から画像処理装置110に対して、ファクス、IFAX、電子メールなどの通信プロトコルによって送信された文書データを文書ファイルとしてボックス機能に追加する。
ユーザ4201は、画像処理装置110上で稼動する組み込みRSSリーダ4210を介して同じ装置である画像処理装置110にアクセスし、ボックスに関連する更新情報を参照する。またユーザ4201は、画像処理装置110上で稼動する組み込みWebブラウザ211を介して同じ装置である画像処理装置110にアクセスし、画像処理装置110が提供する資源やWebアプリケーションをブラウズする。
それでは、画像処理装置110内部の、ボックス関連更新情報のRSSフィードを生成および供給するためのソフトウェア構成を説明する。文書操作インタフェース4203は、画像処理装置110のボックス機能を操作するインタフェースを提供する。ボックス文書管理システム4204は、画像処理装置110の組み込み文書管理システムであるボックス機能のためのデータベースである。データベースに記憶されるデータは、スキャンして読み込まれた文書ファイル、通信機能によって受信した文書ファイル、PDL機能による生成などその他の入力経路から入力された文書ファイル、そして、各文書のサムネイル画像ファイルを含む。
シンジケーションDB4205は、画像処理装置110のボックス機能に関する更新情報のシンジケーションに用いられるデータを蓄積管理するためのデータベースである。蓄積管理されるデータは、ボックスの構造とボックスに蓄積される文書群とに関する変化の事象(イベント)が生起するたびにその事象に関する属性情報を保持して生成される更新情報エントリーを含む。
テンプレートDB4206は、シンジケーションに用いるXMLファイルの雛形を提供するテンプレートを蓄積管理するためのデータベースである。シンジケーションためのXML応用は、RSSの各バージョンやAtomなどの仕様に準拠する。シンジケートするべき情報の種類と準拠する仕様とに応じて、複数のテンプレートが用意される。更新情報生成部4207は、テンプレートDB4206に蓄積管理されたテンプレート群に基づいて、シンジケーションDB4205に蓄積管理されたデータと、機器制御用クラスライブラリ1106から得られる画像処理装置110の構成や状態などの諸属性とから、シンジケーションに用いるXMLファイルを生成するテンプレートエンジンを含む。更新情報生成部4207は、生成したXMLファイル(RSSやAtomなどのシンジケーションデータファイル)を更新情報(RSS)記憶部4208に格納する。
更新情報(RSS)記憶部4208は、シンジケーションに用いるXMLファイルを蓄積するためのストレージである。更新情報記憶部4208は、シンジケートするべき情報の種類に応じて異なる複数のファイルを保持する。また準拠するXML応用の仕様に応じて、RSSの各バージョンやAtomなどの形式で記述された複数のファイルを保持する。更新情報記憶部4208はHTTPサーバ212によってアクセス可能なファイルシステムとしてマウントされている。更新情報記憶部4208に蓄積されたXMLファイル群の各ファイルは、HTTPサーバ212に接続するHTTPクライアント群から見るとそれぞれが固有のURLによって特定される。HTTPクライアントがHTTPサーバ212に接続して、このURLによって特定される資源を取得要求すると、HTTPサーバ212は取得要求で指定されたURLに対応するXMLファイルを更新情報記憶部4208から読み出して、HTTPクライアントに送信する。
HTTPサーバ212は、HTTPクライアントからのHTTPやHTTPSによる要求に応えて、画像処理装置110内部に保持されている各種資源(リソース)のデータを応答として転送する。HTTPによってクライアントがアクセスする資源には、HDD304など画像処理装置110内部の不揮発性メモリに保持されたHTMLや画像などの静的なデータファイル(更新情報画像記憶部4208に保持されたXMLファイルを含む)や、また、CPU301によって実行されるプログラムによって動的に生成されるデータがある。HTTPの要求に応えて動的に生成されるデータには、リモートUI4212などの各種のWebアプリケーション群が生成するHTMLなどがある。
リモートUI4212は画像処理装置110が提供するWebアプリケーションであり、接続したWebブラウザなどのクライアントに対して文書操作インタフェース4203と同様の機能を提供する。
組み込みRSSリーダ4210は、RSSの各バージョンやAtomなどのシンジケーションのためのXML形式を取得して整形表示するための組み込みアプリケーションプログラムである。表示と操作は、画像処理装置110の操作部122で行う。インターネットに存在するニュース配信サイトや情報提供サイト、ウェブログ(weblogまたはblog)などのWebサイトの多くは、サイトのコンテンツに加えて、サイトの新着記事をシンジケートするためにシンジケーションデータも提供している。ユーザ4201はRSSリーダ4210を用いて、これらのインターネット上のサイトの新着記事のタイトルや内容を効率的にブラウズすることができる。RSSリーダ4210はインターネットに限らずイントラネット中にあるシンジケーションデータであっても、URIで特定し取得できる資源として公開されていればアクセスできる。画像処理装置110の更新情報記憶部4208内に格納されているシンジケーションデータを識別するためのURIを指定して、RSSリーダ4210からHTTPサーバ212にHTTPの取得要求を送信すると、HTTPサーバ212からの応答として更新情報記憶部4208内に格納されているシンジケーションデータを受信できる。RSSリーダ4210が整形表示するシンジケーションデータの内部にはURIで特定されるハイパーリンクが含まれている場合がある。ユーザ4201がRSSリーダ4210の表示上で特定のハイパーリンクを選択すると、RSSリーダ4210は組み込みWebブラウザ211と連携してWebブラウザ211にそのURIを取得および表示せしめる。組み込みRSSリーダ4210は、画像処理装置110内部のアプリケーション間通信により他の組み込みアプリケーションから要求を受け付けると、要求において指定されたURIのシンジケーションデータを取得して画像処理装置110の操作部122に表示する。
Webブラウザ211は、インターネットやイントラネット上のWebサーバ中にURIによって特定できる形態で提供されている各種の資源、たとえばHTMLやXHTMLなどのマークアップ言語の文書データおよび各種のマルチメディアデータ(静止画像、動画像、オーディオなど)を取得して、適切に整形し、グラフィカルに表示したり音声で読み上げたりする。データの取得は主にHTTPやFTPなどの通信プロトコルによって行う。Webブラウザ211は通信プロトコル上、クライアント・サーバモデルのクライアント側であり、たとえばHTTPクライアントとして位置づけられる。ユーザ4201がブラウズするデータの内部にURIで特定されるハイパーリンクが含まれている場合、ユーザが特定のハイパーリンクのアンカーを選択すると、Webブラウザ211は指定されたURIの資源を取得し表示する。HTMLなどのマークアップ文書の書式(form)の仕様などを利用して、Webブラウザ211からWebサーバ側の資源に対してデータを送信(post)する場合もある。ユーザ4201は、Webブラウザ211を用いて、たとえば同じ装置である画像処理装置110のリモートUI4212を特定するURIを指定して取得要求することもできる。画像処理装置110のHTTPサーバ212はこの取得要求をCGI(common gateway interface)などのインタフェースによって内部的にリモートUI4212に転送し、さらにリモートUI4212が処理結果として生成したHTMLなどの応答をWebブラウザ211に返送する。組み込みWebブラウザ211は、画像処理装置110内部のアプリケーション間通信により他の組み込みアプリケーションから要求を受け付けると、要求において指定されたURIのリソースを取得して画像処理装置110の操作部122に表示する。
次に、デスクトップコンピュータ101内部のソフトウェア構成を説明する。画像処理装置110とデスクトップコンピュータ101はネットワーク接続されており、それぞれの上で稼動するソフトウェアはHTTPやHTTPSなどのプロトコルにしたがって互いにデータを通信する。ユーザ4202は、デスクトップコンピュータ101上で稼動するRSSリーダ4230を介して画像処理装置110にアクセスし、ボックスに関連する更新情報を参照するユーザである。またユーザ4202は、デスクトップコンピュータ101上で稼動するWebブラウザ4229を介して画像処理装置110にアクセスし、画像処理装置110が提供する資源やWebアプリケーションをブラウズする。RSSリーダ4230の働きは組み込みRSSリーダ4210と同様であり、Webブラウザ4229の働きは組み込みWebブラウザ211と同様である。
なお、本実施例ではRSSリーダ4210とWebブラウザ4209、および、RSSリーダ4230とWebブラウザ4229は、それぞれが単体のアプリケーションプログラムとして構成したが、両者の機能を兼ね備えた単体のアプリケーションプログラムとして構成してもよい。また、RSSリーダ4230とWebブラウザ4229はデスクトップコンピュータ101上で稼動するものとして説明したが、デスクトップコンピュータだけでなくPDAなどポータブル型のコンピュータも含めさまざまな汎用情報処理装置上で稼動するように構成してもよい。あるいは、携帯電話などの各種の組み込み装置上で稼動するように構成してもよい。また、RSSリーダ機能を、フロントエンドのWebブラウザとバックエンドのWebアプリケーションの組み合わせにより分散システム(distributed systems)として実現する技術も広く知られている(たとえばBloglines <http://www.bloglines.com/> など)。このようなRSSリーダ機能を提供するWebアプリケーションを利用すれば、組み込みWebブラウザ211とWebアプリケーションの組み合わせによって、組み込みRSSリーダ4210の働きを代用するように構成することもできる。RSSリーダ機能を提供するWebアプリケーションは外部のサーバコンピュータで稼動するように構成してもよいし、リモートUI4212と同様に画像処理装置110内部で稼動するWebアプリケーションのひとつとして構成してもよい。 組み込みRSSリーダ4210は、取得するべきフィードファイルが同じ画像処理装置110の内部にある場合は、ネットワーク通信を用いず、更新情報記憶部4208から直接にフィードファイルを読み出すように構成してもよい。
図21は、画像処理装置の更新情報のシンジケーションに用いるXML形式の一例の構造を示す図である。更新情報記憶部1708に格納されURIによって特定されるXMLファイルは、画像処理装置の組み込みアプリケーションに関連する各種データの更新や装置の組み込みアプリケーションに関連して生起する各種イベントの情報を記述するXML文書である。このXML文書の形式は、一般のWebサイトがサイトの更新情報を配信するために利用している各種のフォーマットに対応して複数種類を提供する。画像処理装置110は、RSSの各バージョンやAtomなどのXML形式をサポートするが、ここではRSS1.0による記述を例にあげて説明する。図21において、各ブロックの包含関係は、XML要素の包含関係を意味する。
RDF要素2201はXML文書の最上位の要素である。RDF要素はchannel要素2202、image要素2203、item要素2204、2205、2206を含む。channel要素2202は、更新情報全体に関連する基本情報を記述する。この要素はRDF的な主語ノードに相当する。channel要素の内容には、title要素2207、link要素2208、description要素2209、image要素2210、items要素2211が含まれる。title要素2207は、この更新情報のタイトルを表す。link要素2208は、この更新情報が扱っているサイトのURIを表す。description要素2209は、この更新情報が扱っているサイトの内容や機能などの説明を記述する。image要素2210は、この更新情報が扱っているサイトのロゴなどの画像資源を特定するURIを記述する。詳細は後述のimage要素2203で記述する。items要素2211は、item要素群2204、2205、2206のインデクスを提供する。Seq要素2212の内容にリストしたli要素2213によって各更新情報URIを示す。image要素2203は、ロゴなどの画像を表現する。内容には、title要素2214、url要素2215、link要素2216を含む。title要素2214は、画像のタイトルを表し、画像の代替テキストとして用いられることがある。url要素2215は、画像リソースのURIを記述する。link要素2216は、この画像をアンカーとするハイパーリンクを表示する場合にリンク先として用いるURIを記述する。item要素2204、2205、2206などは、それぞれが個々の更新情報を表現する複数の要素の並びである。内容には、title要素2217、link要素2218、description要素2219を含む。title要素2217は、更新情報のタイトルを記述する。link要素2218は、更新情報のURIを記述する。description要素2219は、更新情報の説明を記述する。
図31は、画像処理装置におけるボックス文書読み込み処理手順のフローチャートである。ステップS4301で、ユーザによるボックス選択処理を受け付ける。ステップS4302で、ユーザによる文書情報入力を受け付ける。ここで文書情報とは、読み込む文書の文書名及びその文書に対する説明のことであり、ユーザは操作画面のボタンを用いて入力を行なう。入力画面は図9の画面から「ボックス」を選択すると表れ、そこから入力できる。ステップS4303で、スタートボタンが押し下げられたかどうかを判定する。スタートボタンが押し下げられるとステップS4304に進み、押し下げされなければS4302に戻り文書情報の入力を受け付ける。
ステップS4304で、原稿を読み込みボックスへの蓄積処理を行なう。ステップS4305で、読み込んだ画像の解像度を落としてサムネール画像を生成し、それを蓄積する。ステップS4306で、ボックス更新情報エントリーを生成する。すなわち、読み込んだ文書の詳細情報を記述した更新情報エントリーを生成する。更新情報エントリーには生成されたサムネイル画像も含まれる。ステップS4307で、生成した更新情報エントリーをシンジケーションDBに格納する。ステップS4308で、RSSフィードファイルの生成処理を呼び出して、新しい更新情報エントリーが加えられ変更されたシンジケーションDBから新しいRSSフィードファイルを生成する。
図32は、画像処理装置におけるボックス文書編集処理手順のフローチャートである。ステップS4401で、ボックス内文書一覧を表示する。ステップS4402で、ユーザによる文書選択を受け付ける。以下の操作は選択された文書を対象とする。ステップS4403で、ユーザによる操作指示を受け付ける。ステップS4404で操作の種別に応じて条件分岐する。選択された操作種別が文書挿入の場合ステップS4405に進み、消去の場合ステップS4407に進み、結合保存の場合ステップS4411に進む。
ステップS4405で、挿入指示を行うための画面を表示する。挿入指示画面においてユーザは、挿入する文書、挿入する位置、挿入後の文書名などの入力を行う。ステップS4406で、文書挿入処理を行って新しい文書を生成する。次いでステップS4413に進む。ステップS4407で、本当に消去してよいのかをユーザに確認するためのダイアログを表示して、ユーザの入力を待つ。ユーザがキャンセルした場合S4403に戻る。ユーザがOKした場合S4408に進む。ステップS4408で、選択された文書の消去処理を行なう。次いでステップS4409に進む。
ステップS4409で、シンジケーションデータファイル(フィードファイル)の生成に用いるテンプレートを、テンプレートDB1706から取り出し、サムネイル画像へのリンクを含むかどうかを判断する。サムネイル画像へのリンクを含む場合ステップS44013に進み、サムネイル画像へのリンクを含まない場合S4413に進む。ステップS4410で、サムネイル画像の消去処理を行なう。次いでステップS4413に進む。ステップS4411では、結合保存の指示を行なうための画面を表示する。結合指示画面においてユーザは、結合する文書、結合順、結合後の文書名などの入力を行う。ステップS4412で、結合保存処理を行なって新しい文書を生成する。次いでステップS4413に進む。
ステップS4413で、前ステップで実行された処理に応じて相当する更新情報エントリーを生成する。すなわち、文書挿入、文書消去、結合保存などのイベントに対応して、そのイベントの詳細情報を記述した更新情報エントリーを生成する。ステップS4414で、生成した更新情報エントリーをシンジケーションDBに格納する。ステップS4415で、RSSフィードファイルの生成処理を呼び出して、新しい更新情報エントリーが加えられ変更されたシンジケーションDBから新しいRSSフィードファイルを生成する。
ボックス文書は蓄積する際、または編集処理を行う際に、その重要度を[重要/普通/重要度低]から選択して設定することが可能であり、その重要度に応じて更新情報を更新情報ファイルに載せる期間を設定することができる。
図33は、更新情報を更新情報ファイルに載せる期間を設定する画面の例を示す図である。文書の重要度ごとに期間を設定するプルダウ ンを表示する。各プルダウンは例えば、[1日/2日/3日/4日/5日/6日/7日/10日/15日/30日]が選択可能である。4501は [重要]と設定された文書、4502は [普通]と設定された文書、4503は[重要度低]と設定された文書、に対するイベントが生起してから更新情報として扱う期間を設定するためのプルダウンである。更新情報ファイルの取得要求に応答する際に、有効期限が経過しているエントリーを更新情報ファイルから削除する。受信ボックスでは、受信した文書の送信元に応じて更新情報を更新情報ファイルに載せる期間を設定することができる。この期間情報も第1実施形態と同様に保存されてシンジケーションデータ生成時に参照される。
図34は、受信ボックスの文書の更新情報を更新ファイルに載せる期間を設定する画面の例を示す図である。4601、4602、4603は送信元を入力する領域であり、各領域を押し下げると不図示のソフトキーボード画面を表示し送信もとを入力することができる。4604、4605、4606は送信元ごとに有効期間を設定するプルダウンメニューである。各プルダウンは例えば、[1日/2日/3日/4日/5日/6日/7日/10日/15日/30日]が選択可能である。更新情報ファイルの取得要求に応答する際に、有効期限が経過しているエントリーを更新情報ファイルから削除する。
図35は、ボックス関連更新情報をシンジケーションするフィードファイル(すなわちシンジケーションデータ)の一例を示す図である。図に例示するフィードファイルは、RSS1.0形式のXMLデータである。本フィードファイルは更新情報格納部4208に格納され、画像処理装置110の外部からも内部からも、URIで特定して取得できる。重要な記述のうち既に説明したRSS1.0の語彙は同一の符号をつけて説明を省略する。図のテンプレートが生成するシンジケーションのための更新情報フィードデータはRSS1.0形式のXML応用であるため、XML名前空間を用いたモジュール拡張性を備える。すなわち、他のXML語彙と組み合わせて必要な情報をシンジケーションのフィードデータの中に容易に追加できる。たとえば、標準的なメタデータの記述要素として多用されるDublin CoreのDCMESプロパティから以下が組み合わされている。
date要素4701、4706、subject要素4704、creator要素4705。また、AdminモジュールからgeneratorAgent要素4702が組み合わされている。date要素4701はフィードデータが生成された日時を記述する。generatorAgent要素4702はフィードデータを生成したソフトウェアを記述する。subject要素4704はエントリーのカテゴリーを記述する。creator要素4705はエントリーの生成に関連したユーザ、すなわち操作者を記述する。date要素4706はエントリーが生成された日時を記述する。このように、更新情報をフィードするデータ形式を柔軟かつ厳密に拡張することが容易になることが、本実施例の大きな効果のひとつである。
(更新情報フィードデータの取得と表示)
図36は、画像処理装置の操作パネルに表示されるボックス文書更新情報フィードの表示画面の一例である。RSSフィードリスト5301は、フィードリーダにあらかじめ設定されたり、または、フィードリーダによる動的な探索の結果として発見されたりした、利用可能なシンジケーションのフィードデータが列挙されているメニューである。リストの各項目は利用可能なフィードデータに対応している。ユーザが項目を選択すると、フィードリーダは当該のフィードデータを取得し、展開して右側のペインに表示する。項目のハイライトは、その項目が選択されたことを表している。
なお、ボックス文書一覧表示操作によって自動的に起動された場合は、その画像処理装置自身のボックス文書のフィードデータが選択された状態で起動する。このとき、RSSフィードリスト5301の領域を表示しないように構成してもよい。フィードタイトル5302は、その項目に対応するフィードデータを識別するためにフィードデータのタイトルを表示している。未読数5303は、その項目に対応するフィードデータ中に含まれる未読のエントリー数を表示している。続いて、図の表示画面の右側のペインを説明する。右側のペインにはRSSフィードリスト5301で選択されたフィードデータに対応する情報が表示されている。フィード概要5304はフィードデータの全体的な概要を表示している。表示される情報は、図35のRSSフィード例におけるchannel要素2202の内容に相当する。
フィードタイトル5305は、フィードデータのタイトルを表示している。RSSフィード例におけるchannel要素2202中のtitle要素2207に相当する。表示されているタイトルはハイパーテキストのアンカーになっており、ユーザが選択すると、Webブラウザと連携して、link要素2208に記述されているURIのリソースを取得表示する。この例では、画像処理装置110のWebアプリケーション群の入り口を提供するトップページへのアンカーになっている。フィードロゴ画像5306は、フィードデータのロゴ画像を表示している。RSSフィード例では省略しているが、image要素2210とimage要素2203に相当する。表示されている画像データはurl要素2215に記述されているURIから取得したリソースである。表示されている画像はアンカーになっており、ユーザがこれを選択すると、Webブラウザが起動し、link要素2216に記述されているURIのリソースを取得表示する。
フィード概要5307は、フィードデータの概要説明を表示している。RSSフィード例におけるdescription要素2209に相当する。この例に示したように、画像処理装置内部に保持される各種の情報と置き換えられるテンプレート変数とフィードデータの書式を自在に組み合わせてシンジケーションされるデータを柔軟に設計できる。更新情報エントリー5308、5309,5310はそれぞれがフィードファイルによってシンジケーションされた更新情報を表示している。RSSフィード例では、items要素2211のli要素2213のリストとしてインデクスされ、item要素2204、2205、2206に列挙された各要素に対応する。
エントリータイトル5311は、更新情報エントリーのタイトルを表示している。RSSフィード例では、title要素2217に相当する。表示されているタイトルはハイパーテキストのアンカーとなっており、ユーザが選択すると、Webブラウザが起動し、link要素2218に記述されているURIのリソースを取得表示する。この例では、この更新情報エントリーの詳細を閲覧するための個別エントリー情報ページへのアンカーになっている。
エントリー更新日時5312は、更新情報エントリーのイベントが生起した日時を表示している。RSSフィード例では、date要素2306に相当する。エントリー記述5313は、更新情報エントリーの情報を記述している。RSSフィード例では、description要素2219に相当する。エントリー記述は、HTML(XHTML)でマークアップしたテキストとして画像や引用や表などを用いて構造化されているので、これらの構造を表現(プレゼンテーション)するように整形して表示している。また、Webページや電子メールアドレスなどを含む各種のリソースへのリンクが埋め込まれており、そのアンカーも表示している。
表示されている情報は、RSSフィード例の生成において、テンプレートと画像処理装置内部の各種データベースや機器制御用クラスライブラ1106を介して得られる各種情報を元に生成されたものである。この例に示したように、画像処理装置内部に保持される各種の情報と置き換えられるテンプレート変数とフィードデータの書式を自在に組み合わせてシンジケーションされるデータを柔軟に設計できる。この図の例では、文書説明のテキストと、文書のサムネイル画像が表示されている。
図37は、一般的なフィードリーダに表示される受信ボックスの更新情報フィードの表示画面の一例である。図のフィードリーダは、たとえばデスクトップコンピュータ101上で稼動するRSSリーダ1710である。エントリー記述5414が受信ボックスの更新情報の内容になっている以外は図36と同様であるためここでは詳細に説明しない。エントリー記述には、イベント種別、送信元、受信文書のサムネイル画像が含まれる。
図38は、一般的なフィードリーダに表示されるボックス文書の削除に関する更新情報フィードの表示画面の一例である。エントリー記述5514がボックス文書の削除情報の内容になっている以外は図36と同様であるためここでは詳細に説明しない。エントリー記述5514には、削除処理を行ったユーザ名、文書のサムネイル画像が含まれる。なお、文書が削除されるのはユーザの操作によって削除される場合と、予め設定された保存期間が経過して自動削除される場合があり、どちらの場合も更新情報のエントリーとして記録される。
〔第4の実施の形態〕
ユーザがアドレス帳に対して登録、編集、削除などの編集操作を行った際に、更新情報エントリを作成してシンジケーションDBに格納し、フィードファイル生成処理を行うように構成することもできる。図39は、画像処理装置の操作パネルに表示されるアドレス帳更新情報フィードの表示画面の一例である。エントリー記述6014がアドレス帳の更新情報の内容になっている以外は図36と同様であるためここでは詳細に説明しない。エントリー記述6014には、アドレス帳更新処理を行ったユーザ名及びその変更内容が含まれる。
〔第5の実施の形態〕
ユーザが画像処理装置の持つ掲示板機能に対して登録、編集、削除などの編集操作を行った際に、更新情報エントリを作成してシンジケーションDBに格納し、フィードファイル生成処理を行うように構成することもできる。図40は、画像処理装置の操作パネルに表示される掲示板更新情報フィードの表示画面の一例である。掲示板機能は、管理者などから装置の他のユーザにメッセージを伝えるなどのために、操作パネルおよびリモートUIのトップページに、設定された文字列を表示する機能である。エントリー記述6514が掲示板の更新情報の内容になっている以外は図36と同様である。
〔他の実施の形態〕
なお、第1乃至第5実施形態はすべてスキャナ機能とプリンタ機能、及びそれらを複合して用いる複写機能、ファクシミリ機能、電子ファイル機能等を併せ持ったディジタル複合装置(画像処理装置)について説明されている。すなわちこれらの実施形態では、装置内部の有するデータが更新された事実、および更新の概略を、その装置に接続されたコンピュータに対して提供する機能が説明されている。しかしながら、画像処理装置に限らず、そのほかの、ネットワークに接続された組み込みシステム、すなわちネットワーク機器においても同様にその内部データの更新に関する情報を、接続されたコンピュータに提供することがでできる。たとえば、家電品などのうち、テレビ録画を行う録画装置には、コンピュータからリモートアクセスして録画の予約を行う機能等を備えたものがある。この装置において、録画に関する情報、たとえば予約の事実や録画の完了などを、状態変化としてRSSフィードにより提供することが、第1乃至第5実施形態と同じ要領で実現できる。もちろんこれら装置に限らず、ネットワークに接続可能な機器、たとえばプリンタスキャナ、ディジタルスチルカメラ、ビデオカメラなどについても本発明を適用可能である。
また、第1実施形態内理第5実施形態の画像処理装置は、それと同一のネットワーク(LAN)に接続されたコンピュータに対して状態の変化を示す情報を提供している。しかし、これら実施形態における状態(すなわち特定のデータ)情報の提供はアプリケーションレイヤで実現されているために、ネットワークを越えて実現できる。すなわち、コンピュータと画像処理装置との間に他のネットワーク(たとえばインターネット)が介在したとしても、画像処理装置はコンピュータに対して情報の提供を行うことができる。
なお、本発明の実施例ではRSS1.0に準拠して説明したが、当然ながらRSS0.9(RDF Site Summary)、RSS0.91(Rich Site Summary)、RSS0.92、RSS2.0(Really Simple Syndication)などのRSSのその他のバージョンやAtomなど、コンテンツの更新情報/サマリー情報を配信、通知するフォーマットであれば良く、今後派生する新たなシンジケーションするためのフォーマットを含むことは言うまでもない。
また、本発明の目的は、前述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPU、MPU等)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体およびプログラムは本発明を構成することになる。また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。