(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、図面に基づいて本発明の実施の形態を説明する。
図1は、本発明の実施の形態における画像処理システムの構成例を示す図である。
図1において、画像処理システム1は、複合機101、Webサーバ102、及びASP(Application Service Provider)サーバ103等より構成されており、それぞれは、LAN(Local Area Network)又はインターネット等のネットワーク(有線又は無線の別は問わない。)によって接続されている。
【0013】
複合機101は、コピー、スキャナ、及びプリンタ等の複数の機能を一台の筐体によって実現する画像形成装置であり、画像取扱装置の一例である。複合機101は、オペレーションパネルを備え、HTML(HyperText Markup Language)データに基づいて当該オペレーションパネルに操作画面を表示させるためのWebブラウザとしてMFP(Multi Function Peripheral)ブラウザを備える。
【0014】
Webサーバ102は、httpd等、Webサーバとしての機能が実装された汎用的なコンピュータである。Webサーバ102には、画像形成制御アプリ1021がWebアプリケーションとして実装されている。画像形成制御アプリ1021は、複合機101におけるMFPブラウザからのHTTPリクエストに応じ、複合機101のオペレーションパネルに表示させる操作画面としてのHTMLデータを生成し、返信する。
【0015】
ASPサーバ103は、複合機101において形成された画像データに関して各種のサービス提供するためのアプリケーションとして画像処理アプリ1031が実装された汎用的なコンピュータである。例えば、画像処理アプリ1031は、複合機101においてスキャンされ、ASPサーバ103に転送された画像データを蓄積したり、指定された宛先に配信したりする。
【0016】
図2は、本発明の実施の形態における複合機のソフトウェア構成例を説明するための図である。
図2において、複合機101は、種々のハードウェア111と、種々のソフトウェア112と、複合機起動部113とより構成される。
【0017】
複合機101のハードウェア111としては、撮像部121と、印刷部122と、その他のハードウェア123が存在する。撮像部121は、読取原稿から画像(画像データ)を読み取るためのハードウェアである。印刷部122は、画像(画像データ)を印刷用紙に印刷するためのハードウェアである。
【0018】
複合機101のソフトウェア112としては、種々のアプリケーション131と、種々のプラットフォーム132が存在する。これらのプログラムは、UNIX(登録商標)等のOS(オペレーティングシステム)によりプロセス単位で並列的に実行される。
【0019】
アプリケーション131としては、コピー用のアプリケーションであるコピーアプリ141、プリンタ用のアプリケーションであるプリンタアプリ142、スキャナ用のアプリケーションであるスキャナアプリ143、ファクシミリ用のアプリケーションであるファクシミリアプリ144、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ145、及びMFPブラウザ181等が実装されている。
【0020】
MFPブラウザ181は、上述したMFPブラウザであり、HTTP通信においてクライアントとしての機能を実現するライブラリであるlibwww136を介して
図1のWebサーバ102よりHTMLデータを取得し、当該HTMLデータをオペレーションパネルに表示させる。MFPブラウザ181は、更に、HTMLデータに記述されたスクリプト(スクリプト言語によるプログラム)を解釈することができ、当該スクリプトにしたがって、複合機101のハードウェア111を制御することができる。すなわち、MFPブラウザ181は、汎用的なWebブラウザが解釈可能なスクリプトだけでなく、複合機101のハードウェア111を制御するために拡張されたスクリプト(例えば、スキャンの実行命令等)を解釈することができ、これによって複合機101に画像処理を実行させる。
【0021】
なお、アプリケーション131は、専用のSDK(ソフトウェア開発キット)を使用して開発することができる。SDKを使用して開発したアプリケーション131をSDKアプリと呼ぶ。専用のSDKとしては、C言語でアプリケーション131を開発するための「CSDK」や、Java(登録商標)言語でアプリケーション131を開発するための「JSDK」が提供される。CSDKを使用して開発したアプリケーション131を「CSDKアプリ」と呼び、JSDKを使用して開発したアプリケーション131を「JSDKアプリ」と呼ぶ。
図2の複合機101にも、CSDKアプリ146と、JSDKアプリ147が存在する。
図2の複合機101にはさらに、Java(登録商標)言語で記述されたJSDKアプリ147とC言語で記述された他のソフトウェア112との仲介を行うソフトウェア112として、JSDKプラットフォーム148が存在する。
【0022】
なお、本実施の形態において、MFPブラウザ181は、CSDKアプリとして実装されたアプリケーションである。
【0023】
プラットフォーム132としては、種々のコントロールサービス151、システムリソースマネージャ152、種々のハンドラ153が存在する。コントロールサービス151としては、ネットワークコントロールサービス(NCS)161、ファクシミリコントロールサービス(FCS)162、デリバリコントロールサービス(DCS)163、エンジンコントロールサービス(ECS)164、メモリコントロールサービス(MCS)165、オペレーションパネルコントロールサービス(OCS)166、サーティフィケーションコントロールサービス(CCS)167、ユーザディレクトリコントロールサービス(UCS)168、システムコントロールサービス(SCS)169が存在する。ハンドラ153としては、ファクシミリコントロールユニットハンドラ(FCUH)171、イメージメモリハンドラ(IMH)172が存在する。
【0024】
NCS161のプロセスは、ネットワーク通信の仲介を行う。FCS162のプロセスは、ファクシミリのAPIを提供する。DCS163のプロセスは、蓄積文書の配信処理に関する制御を行う。ECS164のプロセスは、撮像部121や印刷部122に関する制御を行う。MCS165のプロセスは、メモリやハードディスクドライブに関する制御を行う。OCS166のプロセスは、オペレーションパネルに関する表示制御等を行う。CCS167のプロセスは、認証処理や課金処理に関する制御を行う。UCS168のプロセスは、ユーザ情報の管理に関する制御を行う。SCS169のプロセスは、システムの管理に関する制御を行う。
【0025】
アプリケーション131とプラットフォーム132の仲介を行うソフトウェア112として、仮想アプリケーションサービス(VAS)135が存在する。VAS135は、アプリケーション131をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム132をサーバとするクライアントプロセスとして動作する。VAS135は、アプリケーション131から見てプラットフォーム132を隠蔽するラッピング機能を備え、プラットフォーム132のバージョンアップに伴うバージョン差を吸収する役割等を担う。
【0026】
複合機起動部113は、複合機101の電源投入時に最初に実行される。これにより、UNIX(登録商標)等のOSが起動され、アプリケーション131やプラットフォーム132が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。
【0027】
図3は、本発明の実施の形態における複合機のハードウェア構成例を示す図である。複合機101のハードウェア111としては、コントローラ201と、オペレーションパネル202と、ファクシミリコントロールユニット(FCU)203と、撮像部121と、印刷部122が存在する。
【0028】
コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM−P231、MEM−C232、HDD(ハードディスクドライブ)233、メモリカードスロット234、NIC(ネットワークインタフェースコントローラ)241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244により構成される。
【0029】
CPU211は、種々の情報処理用のICである。ASIC212は、種々の画像処理用のICである。NB221は、コントローラ201のノースブリッジである。SB222は、コントローラ201のサウスブリッジである。MEM−P231は、複合機101のシステムメモリである。MEM−C232は、複合機101のローカルメモリである。HDD233は、複合機101のストレージである。メモリカードスロット234は、メモリカード235をセットするためのスロットである。NIC241は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス242は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス243は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス244は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル202は、オペレータが複合機101に入力を行うためのハードウェア(操作部)であると共に、オペレータが複合機101から出力を得るためのハードウェア(表示部)である。
【0030】
MFPブラウザ181等、各アプリケーションは、メモリカード235又はHDD233等に記録されており、CPU211によって処理されることによりその機能を実現する。
【0031】
図4は、オペレーションパネルの例を示す図である。
図4において、オペレーションパネル202は、タッチパネル311と、テンキー312と、スタートボタン313と、リセットボタン314と、機能キー315と、初期設定ボタン316により構成される。タッチパネル311は、タッチ操作で入力を行うためのハードウェア(タッチ操作部)であると共に、画面表示で出力を得るためのハードウェア(画面表示部)である。テンキー312は、キー(ボタン)操作で数字入力を行うためのハードウェアである。スタートボタン313は、ボタン操作でスタート操作を行うためのハードウェアである。スタートボタン313には、LEDランプ317が備えられている。LEDランプ317は、機能キー315で選択されているアプリケーションの実行開始(スタート)の可否を通知するためのランプであり、スタートのための条件が整っていない場合は赤色に、スタートのための条件が整った場合は緑色に点灯する。したがって、ユーザは、LEDランプ317が緑色に点灯したことにより、スタートボタンの押下が可能であることを認識する。リセットボタン314は、ボタン操作でリセット操作を行うためのハードウェアである。機能キー315は、各キー(ボタン)にそれぞれアプリケーション(例えば、コピーアプリ141、プリンタアプリ142、スキャナアプリ143)が割り当てられている。したがって、いずれかの機能キー315が押下されると、当該機能キー315に割り当てられているアプリケーションの初期画面がタッチパネル311に表示される。初期設定ボタン316は、ボタン操作で初期設定画面を表示させるためのハードウェアである。
【0032】
次に、MFPブラウザ181の詳細について説明する。
図5は、MFPブラウザの機能構成例を示す図である。
図5において、MFPブラウザ181は、エンジン部502、スクリプト処理部503、イメージライブラリ504、ファイル制御部505、画像変換部506、画面構築部507、オパパネデータ生成部508、及びイベント処理部509等より構成されている。なお、図中においてHTMLデータ600は、Webサーバ102より転送されるHTMLデータである。
【0033】
エンジン部502は、MFPブラウザ181の心臓部であり、HTMLデータ600内のHTML及びJava(登録商標)Script(以下、単に「スクリプト」という。)等を解釈(パース)し、HTMLによって定義されている操作画面の構築を画面構築部507に指示したり、スクリプト内に定義されている処理の実行をスクリプト処理部503やファイル操作部505に指示したりする。
【0034】
スクリプト処理部503は、HTMLデータ600内のスクリプトに定義されている処理のうち、画像処理に関する部分の処理を実行する。イメージライブラリ504は、コピー、スキャン、又は印刷といったアプリケーション単位での関数インタフェースを提供するライブラリである。例えば、スクリプト処理部503は、イメージライブラリ504を呼び出すことにより、コピー、スキャン、又は印刷等の機能を実現する。
【0035】
ファイル操作部505は、スクリプトの実行時等において発生するファイル操作や、HTMLデータ600のキャッシュのためのファイル操作等を行う。
【0036】
画像変換部506は、HTMLデータ600に画像データが含まれている場合、当該画像データを表示可能な形式に変換する。
【0037】
画面構築部507は、エンジン部502によって解釈されたHTMLによる操作画面のレイアウト情報を生成する。
【0038】
オパパネデータ生成部508は、画面構築部507によって生成されたレイアウト情報を、OCS166が解釈可能なデータ形式又は制御命令に変換し、変換後の情報をOCS166に出力する。なお、OCS166は、オパパネデータ生成部508からの情報に基づきオペレーションパネル202のタッチパネル311に操作画面を表示させる。すなわち、画面構築部507によって生成されるレイアウト情報は、汎用的な形式に基づくものであるため、オペパネデータ生成部508は、当該複合機101のオペレーションパネル202のタッチパネル311に適合するように、レイアウト情報の変換を行うのである。
【0039】
イベント処理部509は、タッチパネル311に表示されたHTMLデータ等に対する入力や、オペレーションパネル202上の他のボタン(スタートボタン313等)に対する操作によって発生するイベントを検出し、当該イベントの発生をエンジン部502等に通知する。
【0040】
以下、画像処理システム1による処理の一例として、スキャン処理について説明する。ここでいうスキャン処理には、原稿の読み取りに始まり、読み取られた画像データの配信までをも含む。
【0041】
図6は、スキャン処理の処理手順を説明するためのシーケンス図である。
【0042】
複合機101に電源が投入され、MFPブラウザ181が起動されると、MFPブラウザ181のエンジン部502はlibwww136を介して、予め設定されている初期画面のURLに係るHTTPリクエストをWebサーバ102に送信する(S101)。
【0043】
Webサーバ102の画像形成制御アプリ1021は、当該URLに対応したHTMLデータをMFPブラウザに対して返信する(S102)。一般的に初期画面は、ログイン画面であったり、アプリケーションの選択画面であったりするが、ここでは、便宜上スキャン条件設定画面を表示させるHTMLデータ(以下「スキャン条件設定ページ」という。)が返信されたこととする。したがって、MFPブラウザ181は、スキャン条件設定ページにおけるHTMLによる定義を解釈し、スキャン条件設定画面をタッチパネル311に表示させる。
【0044】
図7は、スキャン条件設定画面の表示例を示す図である。
図7において、スキャン条件設定画面601には、解像度ボタン6011、原稿種類ボタン6012、原稿サイズボタン6013、濃度ボタン6014、圧縮方法ボタン6015、及び配信先ボタン6016等が表示されている。各ボタンは、各条件を設定させるための画面を表示させるためのボタンである。具体的には、スキャン条件設定ページにおいて、各ボタンには、当該ボタンに対応する条件を設定させるためのHTMLデータのURLがリンクとして関連付けられている。
【0045】
したがって、例えば、解像度ボタン6011が押下(タッチ)されると(S103)、MFPブラウザ1021は、解像度ボタン6011にリンクされているURLに係るHTTPリクエストをWebサーバ102に送信する(S104)。画像形成制御アプリ1021は、当該URLに基づいて、解像度設定画面を表示させるHTMLデータ(以下「解像度設定ページ」という。)を生成し、当該解像度設定ページをMFPブラウザ181に返信する(S105)。MFPブラウザ181は、解像度設定ページの定義を解釈し、解像度設定画面をタッチパネル311に表示させる。
【0046】
図8は、解像度設定画面の表示例を示す図である。
図8に示されるように、解像度設定画面602では、解像度ごとにボタンが表示されている。解像度設定ページには、OKボタン6021が押下された際の振る舞いが定義されている。したがって、解像度設定画面602において解像度が選択され、OKボタン6021が押下されると(S106)、MFPブラウザ181は、解像度設定ページにおける定義に基づき選択された解像度を通知するPOSTメッセージをWebサーバ102に送信する(S107)。
【0047】
POSTメッセージが受信されると、画像形成制御アプリ1021は、当該POSTメッセージに含まれている解像度をWebサーバ102のメモリ上に記録(保持)し、スキャン条件設定ページをMFPブラウザ181に返信する(S108)。したがって、タッチパネル311の表示画面は、再びスキャン条件設定画面601(
図7)に戻る。
【0048】
以下、ユーザは、解像度の設定と同様の手順で、他の条件の設定画面を表示させ、条件の設定を行う。この間のMFPブラウザ181とWebサーバ102とのやりとりは、解像度の設定の場合と同様に行われる。当該設定操作によって、例えば、原稿種類(モノクロ2値)、原稿サイズ(A4)、濃度(濃い)、圧縮方法(MF)、配信先(配信先のメールアドレス)等がWebサーバ102にPOSTされ、画像形成制御アプリ1021によってそれぞれの値がメモリ上に保持される(S109〜S113)。すなわち、本実施の形態において、複合機101にはスキャン条件は保存されず、Webサーバ102側で管理される。複合機101は、単に、Webサーバ102より送信されるHTMLデータに従った処理を実行するのみで、各HTMLデータが表示させる情報の意味については関知しない。このように、複合機101側の実装は、非常にシンプルなものとなっている。これは、メモリ容量の制限の厳しい組み込み機器にとって、極めて有効な実装方法であるといえる。
【0049】
なお、画像形成制御アプリ1021は、複合機101(MFPブラウザ181)よりPOSTされる情報によって、押下されたボタンや、選択されたスキャン条件を随時把握することができる。したがって、或る条件について選択された値に応じて、他の条件の設定画面の内容を動的に変更させることができる。例えば、原稿種類がカラーと選択された場合、MHやMMRといった2値データの圧縮方法は意味がない。したがって、この場合、画像制御アプリ1021は、圧縮方法選択画面においてMHやMMRがグレーアウトされるように圧縮方法選択ページを生成する。
【0050】
また、通信相手の複合機101の性能に応じた設定画面を表示させるHTMLデータを提供することもできる。
【0051】
画像形成制御アプリ1021は、順次送信されてくるスキャン条件に応じて、スキャンを実行するために最低限設定される必要がある情報が揃ったと判断すると、複合機101のオペレーションパネル202のスタートボタン313の押下を可能とするための制御情報を含むHTMLデータをMFPブラウザ181に返信する(S114)。具体的には、当該HTMLデータには、オペレーションパネル202のLEDランプ317の色を赤から緑に変更させるためのスクリプトの定義が含まれている。
【0052】
図9は、LEDランプの色を変更させるためのスクリプトの定義例を示す図である。
図9に示されるスクリプト603において、「System.LocalCGI.Setting.StartKeyDisable=1」という記述が、LEDランプ317の色を変更させるための命令である。
【0053】
例えば、スクリプト603を含むHTMLデータにおいて、当該HTMLデータのMFPブラウザ181へのロード時(onLoadイベントの発生時)にスクリプト603を実行すべき旨が定義されているとする。この場合、MFPブラウザ181のエンジン部502は、スクリプト603を解釈することにより、OCS166にLEDランプ317の色の変更命令を出力する(S115)。OCS166は、LEDランプ317の色を緑に変更させる。
【0054】
なお、ユーザの利用環境によっては、ログイン後のスキャン条件設定画面で何も設定されていない状態でもスタートキー313の押下を可能(LEDを赤から緑に変更)としてもよいが、本実施の形態では、各条件が設定され、配信先が設定されるまでスキャンの開始はできない場合を例としている。
【0055】
LEDランプ317の色が緑になったことにより、ユーザは、スキャンの開始が可能となったことを認識し、スタートボタン313を押下する(S116)。スタートボタン313の押下イベントはMFPブラウザ181に通知される。MFPブラウザ181は、当該イベントに応じて、スキャンの実行指示内容が定義されているデータ(以下「スキャン実行指示データ」という。)を要求するHTTPリクエストを要求するHTTPリクエストをWebサーバ102に送信する(S117)。画像形成制御アプリ1021は、スキャン実行指示データを生成し(S118)、当該スキャン実行指示データをMFPブラウザ181に返信する(S119)。
【0056】
ここで、スキャン実行指示データについて説明する。
図10は、スキャン実行指示データの構成例を概念的に示す図である。
図10において、スキャン実行指示データ604は、他のHTMLデータと同様、HTML形式のデータであり、スクリプト6041、設定情報6042、画像埋め込み領域6043等を含むように構成されている。
【0057】
スクリプト6041は、スキャンの実行指示が定義されたスクリプトである。設定情報6042は、スキャンによって得られた画像データを扱うための情報であり、具体的には、スキャン条件画面を介して設定されたスキャン条件の値の集合である。例えば、条件ごとにタグによって区別され、値が記述されている。画像埋め込み領域6043は、画像データを扱うための情報(設定情報6042)と当該画像データとを関連付けるための部分である。当該関連づけとしては、例えば、画像埋め込み領域6043に画像データが埋め込まれてもよいし、又は、画像データへのポインタ(位置情報)を記述しておき、画像データは別ファイルとしてもよい。この場合ポインタと画像データとの対応関係は、後述するURLで指定された指定先で、例えばテーブルのような形式で管理をすればよい。本実施の形態では前者の場合を例として説明する。なお、この時点では、当該画像データは存在しないため、単に、画像埋め込み領域6043であることを示す開始タグと終了タグのみが記述されている。
【0058】
図11は、スキャン実行指示データにおけるスクリプトの定義例を示す図である。
図11に示されるスクリプト6041において、記述6041b(「System.LocalCGI.doScan(<URL>,・・・)」)は、スキャンの実行関数(以下「doScan()」という。)であり、その定義は、エンジン部502等に実装されている。doScan()内では、スキャンの実行処理及びスキャン画像の配信処理が定義されている。一方、記述6041aは、ユーザによって指定されたスキャン条件をdoScan()内で参照可能とするための定義である。図中では、解像度に関する設定のみが記述されており、他の条件については便宜上省略されている。
【0059】
ところで、スキャン実行指示データ604のうち、設定情報6042と画像埋め込み領域6043とより構成される部分をフォーマットデータ6044という。フォーマットデータ6044の意義については後述する。
【0060】
例えば、スキャン実行指示データ604において、当該スキャン実行指示データ604のMFPブラウザ181へのロード時(onLoadイベントの発生時)にスクリプト6041を実行すべき旨が定義されているとする。この場合、MFPブラウザ181のエンジン部502は、スクリプト6041を解釈することにより、doScan()を呼び出し、doScan()に定義されている処理を実行する。すなわち、複合機101にスキャンを実行させ、スキャンされた画像データを、doScan()の引数に指定されたURL(例えば、ASPサーバ103の画像処理アプリ1031)に転送させる(S120、S121)。このdoScan()の引数に指定されたURLはWebサーバ102において予め決めておけばよいが、このURLとしては、スキャン条件として設定された宛先を用いてもよい。
【0061】
画像データの転送には、フォーマットデータ6044が用いられる。すなわち、MFPブラウザ181は、スキャン実行指示データ604よりフォーマットデータ6044を抽出し、その画像埋め込み領域6043の開始タグ及び終了タグ内にスキャンされた画像データを添付する(埋め込む)。そして、画像データが埋め込まれたフォーマットデータ6044を画像処理アプリ1031に転送する。
【0062】
図12は、画像データが埋め込まれたフォーマットデータの例を示す図である。
図12中、
図10と同一部分には同一符号を付している。
【0063】
図12において、フォーマットデータ6044には原稿の各ページの画像データが埋め込まれている。ステップS121においては、このような構成を持つフォーマットデータ6044が画像処理アプリ1031に転送される。
【0064】
フォーマットデータ6044を受信した画像処理アプリ1031は、当該フォーマットデータ6044に応じた処理を実行する。例えば、フォーマットデータ6044に含まれている配信先に、画像データを配信する。また、フォーマットデータ6044には当該画像データのスキャン条件も含まれている。したがって、画像処理アプリ1031は、当該画像データのスキャン条件を知ることができ、そのスキャン条件に応じて、更なる画像処理(例えば、解像度の変換等)を施した後に配信することもできる。
【0065】
ところで、画像データの転送情報として要求される形式は、サーバ(本実施の形態におけるASPサーバ103)毎に様々で、XML(eXtensible Markup Language)形式によるメタ情報が転送されることを要求するものもあれば、MIME形式によって転送されることを要求するものもある。フォーマットデータ6044は、かかる事情に汎用的に対応する仕組みを提供する。すなわち、予め転送先のサーバに対応してフォーマットデータ6044を生成し、Webサーバ102に保存しておけば、複合機101は、転送先が対応可能な形式や転送先での用途を意識することなく、Webサーバ102よりダウンロードされたフォーマットデータ6044に画像データを埋め込んで転送すればよいだけであるからである。
【0066】
なお、
図12では、複数ページ分の画像データを一度に転送する場合の例が示されているが、例えば、1枚ごとにスキャン条件を変更する場合は、1枚ごとにステップS102以降の処理を繰り返すようにしてもよい。
【0067】
続いて、doScan()内において行われる処理の詳細について説明する。
図13は、doScan()における処理手順を説明するためのシーケンス図である。
【0068】
エンジン部502は、スキャン実行指示データ604におけるスクリプト6041においてdoScan()の呼び出しを検出すると、スクリプト処理部503の関数を呼び出すことによりスキャンの実行指示を行う(S201)。当関数の引数として、
図11の記述6041aにおいて設定されているスキャン条件が指定される。スクリプト処理部503は、イメージライブラリ504の関数を呼び出すことによりスキャンの実行指示を行う(S202)。当該関数の引数にはスキャン条件が指定される。
【0069】
イメージライブラリ504は、SCS169を呼び出し、SCS169にスキャナエンジンである撮像部121のready状態(使用可能状態であるか否か)をチェックさせる(S203)。撮像部121が使用可能であることが確認されると、イメージライブラリ504は、スキャンを開始するために必要なメモリ(ページメモリ)の確保をMCS165に要求する(S204)。ページメモリが確保されると、イメージライブラリ504は、OCS166を呼び出して、タッチパネル311に「読取中です」の表示をさせる(S205)。すなわち、「読み取り中です」の表示は、Webサーバ102から取得されるHTMLデータに基づいてではなく、スキャンを実行するための一連の処理手順の中で複合機101内において発生する制御命令に基づいて行われる。後述するエラー表示、読み取り完了の表示についても同様である。
【0070】
続いて、イメージライブラリ504は、doScan()で指示されたスキャン条件を反映したスキャンジョブの生成及び実行をECS164に要求する(S206)。ECS164は、スキャンジョブを生成し当該スキャンジョブを実行するための制御命令を撮像部121に出力する(S207)。ECS164からの制御命令に応じ、撮像部121は、原稿のスキャンを実行する(S208)。スキャンされた画像データは、MCS165によって確保されたページメモリに格納される。一ページのスキャンが完了する度に、スキャンの完了通知がECS164に通知される(S209)。ECS164ではページごとの完了通知を受けて、ページメモリ上の画像データを圧縮し、圧縮された画像データをHDD233に保存する(S210)。
【0071】
なお、スキャンの途中でジャム(JAM)等が発生した場合は、ジャムの発生がECS164に通知され(S211)、更に、ECS164よりイメージライブラリ504にジャムの発生が通知される(S212)。この場合、イメージライブラリ504は、OCS166に、タッチパネル313へのエラーの表示を実行させる(S213)。なお、エラー解除後に、スキャンの中断又は再開のポップアップ表示等もイメージライブラリ504の制御に基づいて行われ、中断が指示された場合はスキャンの実行を中止し、再開が指示された場合はスキャンの実行を継続する。
【0072】
全ページ分のスキャンが完了した旨の通知を受けると、ECS164は、スキャンジョブが完了した旨をイメージライブラリ504に通知する(S214)。イメージライブラリ504は、OCS166を呼び出して、タッチパネル311に「読み取り完了」の表示をさせ(S215)、更に、スクリプト処理部503にスキャンの終了を通知する(S216)。スクリプト処理部503は、スキャンの終了をエンジン部502に通知する(S217)。
【0073】
エンジン部502は、スキャンが完了すると、HDD223に保存されている画像データをファイル操作部505を介して取得し(S218〜S220)、取得された画像データをフォーマットデータ6044に埋め込む(S221)。続いて、エンジン部502は、画像データの埋め込まれたフォーマットデータ6044を、doScan()の引数に指定されたURLに転送する(S222)。
【0074】
上述から明らかなように、スキャン実行指示データ604の受信後は、Webサーバ102との通信は行われず、「読み取り中」、エラー表示、及び「読み取り完了」等のタッチパネルの表示は、複合機101内の制御に基づいて行われる。スキャン処理(又は印刷処理)等は片面/両面原稿や片面/両面印刷やフィニッシャーの有無などによって、エラー解除後の再開ページは、機種依存となるケースがほとんどである。したがって、エラー表示や、中断又は再開のポップアップ表示等は、Webサーバ102より取得されるHTMLデータに基づいて行うのは非常に処理が煩雑となり、複合機101内において処理してしまうのが効率的であるからである。また、このような機種依存部分が複合機101側に隠蔽されることで、Webサーバ102におけるロジック又はHTMLデータ等は、異なる機種にも共通で対応可能となる。
【0075】
なお、初期画面のURLに係るHTTPリクエストは、MFPブラウザ181の起動時だけでなく、システムオートクリア時やアプリオートクリア時にも送信される。複合機101は複数のアプリが並行動作するため、システムオートクリアという機能があり、或るユーザが特定のアプリケーション(例えば、スキャン)を使用して放置した場合、一定時間が経過すると自動的に電源ON後に最初に起動されるアプリ(通常はコピーアプリに設定。変更可能)の初期画面に表示が戻るようにされている。また、アプリケーションの利用途中で複合機101を離れるユーザがいる場合等を考慮し、一定時間の経過後に当該アプリケーションの初期画面に自動的に戻るといったアプリオートクリアという機能も備えられている。したがって、スキャンの実行後、しばらくするとアプリオートクリア機能またはシステムオートクリア機能によって、MFPブラウザ181は、スキャン条件設定ページのダウンロードを実行し、スキャン条件設定画面をタッチパネル313に表示させる。また、オペレーションパネル202の機能キー315のいずれかが押下されると、押下されたキーに対応するアプリケーションの初期画面を表示させるHTMLデータのダウンロードがMFPブラウザ181によって実行される。
【0076】
ところで、上記では、画像データの添付されたフォーマットデータ6044の転送先がASPサーバ103である場合を例としたが、当該転送先は、ユーザ個人のPCやWebサーバ102であってもよい。転送先がWebサーバ102である場合、MFPブラウザ181とWebサーバ102との間で既に開設されているセッションにおいて、フォーマットデータ6044の転送ができれば便宜である。しかし、スキャン処理はある程度の時間を必要とするところ、上述したようにスキャン実行中のタッチパネル313の表示は、複合機101の内部で制御されるため、Webサーバ102との通信は必ずしも必要ではない。したがって、Webサーバ102の画像形成制御プログラム1021とMFPブラウザ181とのセッションがタイムアウトしてしまうことが考えられる。
【0077】
そこで、かかるタイムアウトを防止するために、MFPブラウザ181がWebサーバ102に対してダミーのHTTPリクエストを定期的に送信するようにしてもよい。また、MFPブラウザ181が、スキャン実行指示データ604の受信後、Webサーバ102側のタイマーの計時の停止を要求するHTTPリクエストを送信することにより、スキャン中はWebサーバ102における当該セッションのタイムアウトの計時を停止させるようにしてもよい。この場合、フォーマットデータ604の転送の前又は後に、当該タイマーの計時の再開を要求するHTTPリクエストを送信すればよい。
【0078】
上述したように、本発明の実施の形態における複合機101によれば、MFPブラウザ181が、HTMLファイル内に記述された表示情報と、スキャナ等の複合機101に特有のハードウェア資源を用いた機能を制御するためのスクリプトを解釈することができるため、テキストデータであるHTMLデータの記述によって、複合機101カスタマイズを容易に行うことができるとともに操作パネルへの表示をHTMLデータで行ったときでも、画像を生成する特有のハードウェアを制御することができる。また、HTMLデータは、Webサーバ102において生成又は管理されているものであるため、Webサーバ102側において変更するだけで、複数の複合機101のカスタマイズを同時に行うことができる。
【0079】
また、MFPブラウザ181は、Webサーバ102からダウンロードされるHTMLデータに従って処理を実行すればよく、当該HTMLデータに基づく表示情報の意味等を関知する必要はない。したがって、汎用性に富み、ユーザ環境に応じた様々なソリューションに柔軟対応することができる。
【0080】
更に、スキャン等によって形成された画像データの取り扱いについても複合機101は関知せず、Webサーバ102よりダウンロードされるフォーマットデータ6044に埋め込むだけであるため、転送先に対応したデータ形式を複合機101が意識する必要はなく、この点においても汎用性が保たれている。
【0081】
なお、本実施の形態では、HTMLデータがWebサーバ102よりダウンロードされる例について説明したが、当該HTMLデータは、複合機101のHDD233に保存しておき、MFPブラウザ181は、当該複合機101に保存されているHTMLデータに基づいて複合機101を制御するようにしてもよい。こうすることで、Webサーバ102を別途設置したくないといったユーザのニーズに対応することが可能となる。この場合、MFPブラウザ181とWebサーバプログラムは別スレッドで動作し、両者間の通信はローカルアドレス(127.0.0.1)のループバックポートで行えばよい。
【0082】
更に、本実施の形態では、スキャン処理について説明したが、例えば、MFPブラウザ181が、doPrint()、doFAX()、doCopy()等のスクリプトに基づいて、印刷、FAX送信、又はコピーの実行制御を行えるようにしておけば、これらの機能についても、テキストデータであるHTMLデータの記述により容易にカスタマイズを行うことができ、操作パネルへの表示をHTMLデータで行ったときでも、画像を生成する特有のハードウェアを制御することができる。
【0083】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。