JP4227342B2 - 画像形成装置、画像形成方法、および記憶媒体 - Google Patents

画像形成装置、画像形成方法、および記憶媒体 Download PDF

Info

Publication number
JP4227342B2
JP4227342B2 JP2002051486A JP2002051486A JP4227342B2 JP 4227342 B2 JP4227342 B2 JP 4227342B2 JP 2002051486 A JP2002051486 A JP 2002051486A JP 2002051486 A JP2002051486 A JP 2002051486A JP 4227342 B2 JP4227342 B2 JP 4227342B2
Authority
JP
Japan
Prior art keywords
transmission
image
protocol
module
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002051486A
Other languages
English (en)
Other versions
JP2003256216A5 (ja
JP2003256216A (ja
Inventor
雅仁 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002051486A priority Critical patent/JP4227342B2/ja
Publication of JP2003256216A publication Critical patent/JP2003256216A/ja
Publication of JP2003256216A5 publication Critical patent/JP2003256216A5/ja
Application granted granted Critical
Publication of JP4227342B2 publication Critical patent/JP4227342B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、たとえばイメージスキャナ、デジタルカメラ、プリンタ、ディスプレイ、ネットワークインタフェース、有線および無線インタフェース、通信回線インタフェース、ユーザインタフェース、ファイルシステム等を持つ装置内部に組み込まれ、プロセッサによって実行されるソフトウェアモジュールによって実現されるソフトウェア組込み型電子装置に関するものである。
【0002】
【従来の技術】
従来、汎用コンピュータ上で動作するアプリケーションソフトウェアにおいては、そのアプリケーションを構成するアルゴリズムとデータ構造のうち、特に将来の変更や拡張の要求が予想される部分をあらかじめアプリケーションの本体とは切り離して設計しておき、切り離した部分をソフトウェア的な部品として後から追加できるように設計している。
【0003】
この部分的なソフトウェアモジュールはプラグインと呼ばれることがあり、次のような応用事例としてよく知られている。
【0004】
例えば、フォトレタッチ用アプリケーションソフトウェアにおける各種画像処理アルゴリズムを行うプラグインが知られている。
【0005】
また、例えば、Webブラウズ用アプリケーションソフトウェア(Webブラウザ)において、あるHTMLデータに埋め込まれた参照が指すデータファイルが、Webブラウザによって標準的にはサポートされないデータ形式である場合に、その固有の形式に従ってデータファイルを処理し、WebブラウザがレンダリングしたHTMLデータの表示の一部として埋め込み表示するためのプラグインがよく知られている。
【0006】
これらのプラグインの枠組みによって、アプリケーションソフトウェアは、将来にわたり新しく生まれ続ける画像処理アルゴリズムやデータ形式等に柔軟に対応できる。
【0007】
汎用コンピュータ上のアプリケーションソフトウェアが動的なプラグイン追加の枠組みを実現するために、少なくともアプリケーションソフトウェアのプラグイン管理を担う接点部分では動的なデータ構造とアルゴリズムを採用している。
【0008】
さらに、アプリケーションソフトウェア本体のロードモジュールとは別のファイルとして存在する複数のプラグインモジュールを動的に読み込み結合してプラグインが提供する機能を呼び出すために、アプリケーションソフトウェアは独自の、または、汎用オペレーティングシステムが備える、インクリメンタルリンクライブラリ(ダイナミックリンクライブラリ、共有ライブラリ)機構を利用している。
【0009】
一方、ソフトウェア組込み型電子装置の動作環境を提供する各種のリアルタイムオペレーティングシステム(RTOS)のうち比較的大規模なRTOSでは、タスク、メモリ領域、メッセージキュー、セマフォ等の資源を動的に生成、削除および管理する機能を持つものが利用されている。
【0010】
また、システムを構成するソフトウェアのオブジェクトファイル群全体をあらかじめ連結して単一ファイルのロードモジュールとするのではなく、部分的なオブジェクトファイル群を含むアーカイブファイルを実行時にメモリ空間に読み込み、動的にシンボル参照を解決し結合する機能、すなわちインクリメンタルリンク方式をサポートするRTOSも利用されている。
【0011】
【発明が解決しようとする課題】
しかしながら、デバイスの制御を元来の目的としてきたソフトウェア組込み型電子装置は、リアルタイム性や堅牢性を確保するために、メモリなどの資源を固定的に確保するように設計することがあり、またデータ構造や処理アルゴリズムも予測が比較的容易な静的な構造とアルゴリズムを採用することがある。
【0012】
ソフトウェア組込み型電子装置の動作環境として採用しているRTOSが上記のような動的な資源確保やインクリメンタルリンクをサポートしている場合であっても、実際にはRTOSが備える機能のこれら動的側面はまったく使われていない場合もある。
【0013】
その根本的な理由の1つは、ソフトウェア組込み型電子装置のソフトウェアに求められる要求仕様の特殊性に見いだすことができる。
【0014】
一般に、汎用コンピュータ中のソフトウェアはいわゆるベストエフォート型のアプローチで平均的な効率の最大化を目指して設計されることがあり、ソフトウェア組込み型電子装置のソフトウェアは(リアルタイムシステムの場合は特に)、システムの機能を達成する上で最悪の事態にあっても最低限の機能を保証することを目指して設計されることがある。
【0015】
例えば、汎用のコンピュータにおいては、ハードディスクにインストールされているアプリケーションソフトウェアのすべてを、搭載されているメモリ領域の範囲内ではメモリ不足のため、同時に稼働できなかったとしても問題ではない。またそれが通常の運用形態である。
【0016】
しかし、一方のソフトウェア組込み型電子装置においては、少なくとも標準搭載の基本的な機能群の組み合わせに関しては確実に同時に稼働可能であることを求められる場合がある。
【0017】
例えば、画像処理のためのマルチファンクションプロダクト(MFP)においては、もしMFPがコピー機能とプリンタ機能を標準搭載としているとしたら、たとえプリントのため内部的に膨大なメモリ領域を消費するPDLデータの解釈と画像展開を行っている最中であったとしても、原稿束を持って装置の前に立ったユーザに対しては同時にコピー機能も提供できることを保証しなければならないかもしれない。
【0018】
また、たとえそのメモリ不足が一時的なものであるにせよ、イメージスキャナの中にあって原稿画像を走査するために高速に移動するメカトロニクス部品を制御している途中や、電子写真式プリンタの中にあって高温に保たれる定着ドラムの温度を制御している途中で、メモリ不足のために制御を待たすことは許されない。
【0019】
またセキュリティの観点から見て、装置が標準に提供する基本的な機能の正常な運用が、後から追加されるソフトウェアモジュールの不具合によって妨げられることは許容されない。
【0020】
したがって、従来の汎用コンピュータにおいて行われているプラグインの枠組みによる方法をソフトウェア組込み型電子装置に適用し柔軟で動的な機能拡張を実現することは困難だった。
【0021】
本発明は上記の従来技術の課題を解決するためになされたもので、その目的とするところは、柔軟で動的な機能拡張が可能なソフトウェア組込み型電子装置を提供することを目的とする。
【0022】
【課題を解決するための手段】
上記目的を達成するために本発明の画像形成装置は、複数の画像処理部を有する画像形成装置において、ネイティブ機械命令を解析実行するプロセッサと、ネイティブ機械命令列によって記述された第一のソフトウェアモジュール群の命令を前記プロセッサに実行させるオペレーティングシステムと、仮想機械命令に相当するネイティブ機械命令列を前記プロセッサに与え解釈実行させるための仮想機械であるインタプリタと、そのインタプリタにより解釈実行されるリクエストブローカを記憶する記憶手段と、受信した要求が従うプロトコルを判定する判定手段と、前記判定手段が判定したプロトコルをサポートするプラグインプログラムであって、前記リクエストブローカ内に組み込まれるプラグインプログラムを決定する決定手段と、前記決定手段が決定したプラグインプログラムを用いて画像処理を実行する実行手段を備えた画像形成装置である。
本発明の画像形成方法は、複数の画像処理部と、ネイティブ機械命令を解析実行するプロセッサと、ネイティブ機械命令列によって記述された第一のソフトウェアモジュール群の命令を前記プロセッサに実行させるオペレーティングシステムと、仮想機械命令に相当するネイティブ機械命令列を前記プロセッサに与え解釈実行させるための仮想機械であるインタプリタと、そのインタプリタにより解釈実行されるリクエストブローカを記憶する記憶手段と、を備えた画像形成装置が実行する画像形成方法であって、受信した要求が従うプロトコルを判定する判定工程と、前記判定工程で判定したプロトコルをサポートするプラグインプログラムであって、前記リクエストブローカ内に組み込まれるプラグインプログラムを決定する決定工程と、前記決定工程で決定したプラグインプログラムを用いて画像処理を実行する実行工程を備えた画像形成方法である。
本発明の記録媒体は、複数の画像処理部と、ネイティブ機械命令を解析実行するプロセッサと、ネイティブ機械命令列によって記述された第一のソフトウェアモジュール群の命令を前記プロセッサに実行させるオペレーティングシステムと、仮想機械命令に相当するネイティブ機械命令列を前記プロセッサに与え解釈実行させるための仮想機械であるインタプリタと、そのインタプリタにより解釈実行されるリクエストブローカを記憶する記憶手段と、を備えた画像形成装置に、受信した要求が従うプロトコルを判定する判定工程と、前記判定工程で判定したプロトコルをサポートするプラグインプログラムであって、前記リクエストブローカ内に組み込まれるプラグインプログラムを決定する決定工程と、前記決定工程で決定したプラグインプログラムを用いて画像処理を実行する実行工程と、を実行させるためのプログラムを記録した記憶媒体である。
【0023】
これにより、動的なデータ構造やアルゴリズムの実装と部分的なソフトウェアモジュールのインクリメンタルリンクに最適なインタプリタをシステム内部導入し、プロセッサのネイティブ機械命令によって記述されたソフトウェアのプラグインモジュールをインタプリタ上で動的に追加することが可能となり、柔軟で動的な機能拡張が可能な画像形成装置を提供することができる。
【0031】
【発明の実施の形態】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成部品の寸法、材質、形状、その相対配置などは、特に特定的な記載がない限りは、この発明の範囲をそれらのみに限定する趣旨のものではない。
【0032】
初めに、本発明の装置及びその動作について詳細に説明する。
【0033】
[ハードウェア]
(全体構成)
画像処理装置1001の全体構成図を図3に示す。
【0034】
コントローラユニット2000は、イメージデータ入力手段の一例である画像入力デバイスとしてのスキャナ2070や、イメージデータ出力手段の一例である画像出力デバイスとしてのプリンタ2095と接続する一方、LAN2011や公衆回線(WAN)2051と接続することで、画像情報やデバイス情報の入出力を行う。
【0035】
CPU2001は、システム全体を制御するプロセッサである。
【0036】
RAM2002は、CPU2002が動作するためのシステムワークメモリであり、プログラムを記憶するためのプログラムメモリや、画像データを一時記憶するための画像メモリでもある。
【0037】
ROM2003は、ブートROMであり、システムのブートプログラムが格納されている。
【0038】
HDD2004は、ハードディスクドライブで、システムソフトウェア、画像データを格納する。
【0039】
操作部I/F2006は、操作部(UI)2012とのインタフェース部で、操作部2012に表示する画像データを操作部2012に対して出力する。また、操作部2012から本システム使用者が入力した情報を、CPU2001に伝える役割をする。
【0040】
ネットワーク2010は、LAN2011に接続し、情報の入出力を行う。
【0041】
モデム2050は、公衆回線2051に接続し、情報の入出力を行う。
【0042】
以上のデバイスがシステムバス2007上に配置される。
【0043】
イメージバスI/F2005は、システムバス2007と画像データを高速で転送する画像バス2008を接続し、データ構造を変換するバスブリッジである。
【0044】
画像バス2008は、PCIバスまたはIEEE1394で構成される。画像バス2008上には以下のデバイスが配置される。
【0045】
ラスタイメージプロセッサ(RIP)2060は、PDLコードをビットマップイメージに展開する。
【0046】
デバイスI/F部2020は、画像入出力デバイスであるスキャナ2070やプリンタ2095とコントローラユニット2000を接続し、画像データの同期系/非同期系の変換を行う。
【0047】
スキャナ画像処理部2080は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部2090は、プリント出力画像データに対して、プリンタの補正、解像度変換等を行う。
【0048】
画像回転処理部2030は、画像データの回転を行う。
【0049】
画像圧縮処理部2040は、多値画像データはJPEG(Joint Photographic Experts Group)、2値画像画像データはJBIG(Joint Bi-level Image Experts Group)、MMR(Modified Modified READ)、MH等の圧縮伸長処理を行う。
【0050】
(画像入出力部)
画像入出力デバイスを図4で示す。図4は、図3で構成を示した画像処理装置の外観図である。
【0051】
画像入力デバイスであるスキャナ部2070は、原稿となる紙上の画像を照明し、CCDラインセンサ(図示せず)で走査することで、ラスタイメージデータとして電気信号に変換する。
【0052】
原稿用紙は原稿フィーダ2072のトレイ2073にセットし、装置使用者が操作部2012から読み取り起動指示することにより、コントローラCPU2001がスキャナ2070に指示を与え(2071、図3参照)、フィーダ2072は原稿用紙を1枚ずつフィードし原稿画像の読み取り動作を行う。
【0053】
画像出力デバイスであるプリンタ部2095は、ラスタイメージデータを用紙上の画像に変換する部分であり、その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。プリント動作の起動は、コントローラCPU2001からの指示によって開始する。
【0054】
プリンタ部2095には、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセット2101、2102、2103、2104がある。
【0055】
また、排紙トレイ2111は印字し終わった用紙を受けるものである。
【0056】
(操作部)
操作部2012の構成を図5に示す。
【0057】
LCD表示部2013は、LCD上にタッチパネルシートが貼られており、システムの操作画面を表示するとともに、表示してあるキーが押されるとその位置情報をコントローラCPU2001に伝える。
【0058】
スタートキー2014は、原稿画像の読み取り動作を開始する時などに用いる。スタートキー2014中央部には、緑と赤の2色LED2018があり、その色によってスタートキー2014が使える状態にあるかどうかを示す。
【0059】
ストップキー2015は、稼働中の動作を止める働きをする。
【0060】
IDキー2016は、使用者のユーザIDを入力する時に用いる。
【0061】
リセットキー2017は、操作部からの設定を初期化する時に用いる。
【0062】
(スキャナ画像処理部)
スキャナ画像処理部2080の構成を図6に示す。
【0063】
画像バスI/Fコントローラ2081は、画像バス2008と接続し、そのバスアクセスシーケンスを制御する働きと、スキャナ画像処理部2080内の各デバイスの制御及びタイミングを発生させる。
【0064】
フィルタ処理部2082は、空間フィルタでコンボリューション演算を行う。
【0065】
編集部2083は、例えば入力画像データからマーカーペンで囲まれた閉領域を認識して、その閉領域内の画像データに対して、影つけ、網掛け、ネガポジ反転等の画像加工処理を行う。
【0066】
変倍処理部2084は、読み取り画像の解像度を変える場合にラスターイメージの主走査方向について補間演算を行い拡大、縮小を行う。副走査方向の変倍については、画像読み取りラインセンサ(図示せず)を走査する速度を変えることで行う。
【0067】
テーブル2085は、読み取った輝度データである画像データを濃度データに変換するために行うテーブル変換である。
【0068】
2値化2086は、多値のグレースケール画像データを、誤差拡散処理やスクリーン処理によって2値化する。
【0069】
処理が終了した画像データは、再び画像バスI/Fコントローラ2081を介して、画像バス上に転送される。
【0070】
(プリンタ画像処理部)
プリンタ画像処理部2090の構成を図7に示す。
【0071】
画像バスI/Fコントローラ2091は、画像バス2008と接続し、そのバスアクセスシーケンスを制御する働きと、プリンタ画像処理部2090内の各デバイスの制御及びタイミングを発生させる。
【0072】
解像度変換部2092は、ネットワーク2011あるいは公衆回線2051から来た画像データを、プリンタ2095の解像度に変換するための解像度変換を行う。
【0073】
スムージング処理部2093は、解像度変換後の画像データのジャギー(斜め線等の白黒境界部に現れる画像のがさつき)を滑らかにする処理を行う。
【0074】
(画像圧縮部)
画像圧縮処理部2040の構成を図8に示す。
【0075】
画像バスI/Fコントローラ2041は、画像バス2008と接続し、そのバスアクセスシーケンスを制御する働き、入力バッファ2042・出力バッファ2045とのデータのやりとりを行うためのタイミング制御及び、画像圧縮部2043に対するモード設定などの制御を行う。以下に画像圧縮処理部の処理手順を示す。
【0076】
画像バス2008を介して、CPU2001から画像バスI/Fコントローラ2041に画像圧縮制御のための設定を行う。この設定により画像バスI/Fコントローラ2041は画像圧縮部2043に対して画像圧縮に必要な設定(例えば、MMR圧縮・JBIG伸長等)を行う。
【0077】
必要な設定を行った後に、再度CPU2001から画像バスI/Fコントローラ2041に対して画像データ配信の許可を行う。この許可に従い、画像バスI/Fコントローラ2041はRAM2002もしくは画像バス2008上の各デバイスから画像データの転送を開始する。
【0078】
受け取った画像データは、入力バッファ2042に一時格納され、画像圧縮部2043の画像データ要求に応じて一定のスピードで画像を転送する。この際、入力バッファ2042は、画像バスI/Fコントローラ2041と、画像圧縮部2043両者の間で、画像データを転送できるかどうかを判断し、画像バス2008からの画像データの読み込み及び、画像圧縮部2043への画像の書き込みが不可能である場合は、データの転送を行わないような制御を行う(以後このような制御をハンドシェークと呼称する)。
【0079】
画像圧縮部2043は、受け取った画像データを、一旦RAM2044に格納する。これは画像圧縮を行う際には、行う画像圧縮処理の種類によって、数ライン分のデータを要するためであり、最初の1ライン分の圧縮を行うためには数ライン分の画像データを用意してからでないと画像圧縮が行えないためである。
【0080】
画像圧縮を施された画像データは直ちに出力バッファ2045に送られる。出力バッファ2045では、画像バスI/Fコントローラ2041及び画像圧縮部2043とのハンドシェークを行い、画像データを画像バスI/Fコントローラ2041に転送する。
【0081】
画像バスI/Fコントローラ2041では、転送された圧縮(もしくは伸長)された画像データをRAM2002もしくは画像バス2008上の各デバイスにデータを転送する。
【0082】
こうした一連の処理は、CPU2001からの処理要求が無くなるまで(必要なページ数の処理が終わったとき)、もしくはこの画像圧縮部から停止要求が出るまで(圧縮及び伸長時のエラー発生時等)繰り返される。
【0083】
(画像回転部)
画像回転部2030の構成を図9に示す。
【0084】
画像バスI/Fコントローラ2031は、画像バス2008と接続し、そのバスシーケンスを制御する働き、画像回転部2032にモード等を設定する制御及び、画像回転部2032に画像データを転送するためのタイミング制御を行う。以下に画像回転部の処理手順を示す。
【0085】
画像バス2008を介して、CPU2001から画像バスI/Fコントローラ2031に画像回転制御のための設定を行う。この設定により画像バスI/Fコントローラ2041は画像回転部2032に対して画像回転に必要な設定(たとえば画像サイズや回転方向・角度等)を行う。
【0086】
必要な設定を行った後に、再度CPU2001から画像バスI/Fコントローラ2031に対して画像データ配信の許可を行う。この許可に従い、画像バスI/Fコントローラ2031はRAM2002もしくは画像バス2008上の各デバイスから画像データの転送を開始する。尚、ここでは32bitをそのサイズとし回転を行う画像サイズを32×32(bit)とし、又、画像バス2008上に画像データを転送させる際に32bitを単位とする画像転送を行うものとする(扱う画像は2値を想定する)。
【0087】
上述のように、32×32(bit)の画像を得るためには、上述の単位データ転送を32回行う必要があり、且つ不連続なアドレスから画像データを転送する必要がある(図10参照)。
【0088】
不連続アドレッシングにより転送された画像データは、読み出し時に所望の角度に回転されているように、RAM2033に書き込まれる。例えば、90度反時計方向回転であれば、最初に転送された32bitの画像データを、図11のようにY方向に書き込んでいく。読み出し時にX方向に読み出すことで、画像が回転される。
【0089】
32×32(bit)の画像回転(RAM2033への書き込み)が完了した後、画像回転部2032はRAM2033から上述した読み出し方法で画像データを読み出し、画像バスI/Fコントローラ2031に画像を転送する。
【0090】
回転処理された画像データを受け取った画像バスI/Fコントローラ2031は、連続アドレッシングを以て、RAM2002もしくは画像バス2008上の各デバイスにデータを転送する。
【0091】
こうした一連の処理は、CPU2001からの処理要求が無くなるまで(必要なページ数の処理が終わったとき)繰り返される。
【0092】
(デバイスI/F部)
デバイスI/F部2020の構成を図12に示す。
【0093】
画像バスI/Fコントローラ2021は、画像バス2008と接続し、そのバスアクセスシーケンスを制御する働きと、デバイスI/F部2020内の各デバイスの制御及びタイミングを発生させる。また、外部のスキャナ2070及びプリンタ2095への制御信号を発生させる。
【0094】
スキャンバッファ2022は、スキャナ2070から送られてくる画像データを一時保存し、画像バス2008に同期させて画像データを出力する。
【0095】
シリアルパラレル・パラレルシリアル変換2023は、スキャンバッファ2022に保存された画像データを順番に並べて、あるいは分解して、画像バス2008に転送できる画像データのデータ幅に変換する。
【0096】
パラレルシリアル・シリアルパラレル変換2024は、画像バス2008から転送された画像データを分解して、あるいは順番に並べて、プリントバッファ2025に保存できる画像データのデータ幅に変換する。
【0097】
プリントバッファ2025は、画像バス2008から送られてくる画像データを一時保存し、プリンタ2095に同期させて画像データを出力する。
【0098】
画像スキャン時の処理手順を以下に示す。
【0099】
スキャナ2070から送られてくる画像データをスキャナ2070から送られてくるタイミング信号に同期させて、スキャンバッファ2022に保存する。そして、画像バス2008がPCIバスの場合には、バッファ内に画像データが32ビット以上入ったときに、画像データを先入れ先出しで32ビット分、バッファからシリアルパラレル・パラレルシリアル変換2023に送り、32ビットの画像データに変換し、画像バスI/Fコントローラ2021を通して画像バス2008上に転送する。
【0100】
また、画像バス2008がIEEE1394の場合には、バッファ内の画像データを先入れ先出しで、バッファからシリアルパラレル・パラレルシリアル変換2023に送り、シリアル画像データに変換し、画像バスI/Fコントローラ2021を通して画像バス2008上に転送する。
【0101】
画像プリント時の処理手順を以下に示す。
【0102】
画像バス2008がPCIバスの場合には、画像バスから送られてくる32ビットの画像データを画像バスI/Fコントローラ2021で受け取り、パラレルシリアル・シリアルパラレル変換2024に送り、プリンタ2095の入力データビット数の画像データに分解し、プリントバッファ2025に保存する。
【0103】
また、画像バス2008がIEEE1394の場合には、画像バスから送られてくるシリアル画像データを画像バスI/Fコントローラ2021で受け取り、パラレルシリアル・シリアルパラレル変換2024に送り、プリンタ2095の入力データビット数の画像データに変換し、プリントバッファ2025に保存する。そして、プリンタ2095から送られてくるタイミング信号に同期させて、バッファ内の画像データを先入れ先出しで、プリンタ2095に送る。
【0104】
[ソフトウェア]
次に、図3の装置でCPU2001によって実行されるプログラム、及びそのプログラムを実行することで遂行される機能などを説明する。
【0105】
(システム全体)
本発明の画像配信装置を含むネットワークシステムの構成を図1に示す。
【0106】
画像処理装置1001は、図3に示した本発明に係る画像配信装置の一例で、スキャナとプリンタとを含み、スキャナから読み込んだ画像をローカルエリアネットワーク1010(以下LAN)に流したり、LAN1010から受信した画像をプリンタによりプリントアウトできる。
【0107】
また、スキャナから読んだ画像を図示しないFAX送信手段により、PSTNまたはISDN等の公衆回線1030に送信したり、PSTNまたはISDNから受信した画像をプリンタ1040によりプリントアウトできる。
【0108】
データベースサーバ1002は、画像処理装置1001により読み込んだ2値画像及び多値画像をデータベースとして管理する。
【0109】
データベースクライアント1003は、データベースサーバ1002に保存されている画像データを閲覧/検索等できる。
【0110】
電子メールサーバ1004は、画像処理装置1001により読み取った画像を電子メールに添付された画像として受け取ることができる。
【0111】
電子メールクライアント1005は、電子メールサーバ1004の受け取ったメールを受信し閲覧したり、電子メールを送信したりできる。
【0112】
WWWサーバ1006は、HTML文書をLANに提供する。
【0113】
画像処理装置1001は、WWWサーバ1006で提供されるHTML文書をプリントアウトできる。
【0114】
ルータ1011は、LAN1010をインターネット/イントラネット1012と連結する。
【0115】
インターネット/イントラネット1012は、前述した画像処理装置1001,データベースサーバ1002,WWWサーバ1006,電子メールサーバ1004のそれぞれと同様の装置が、それぞれ1020,1021,1022,1023として接続されている。
【0116】
一方、画像処理装置1001は、PSTNまたはISDN1030を介してファクシミリ装置1031と送受信可能になっている。また、LAN1010上にプリンタ1040も連結されており、画像処理装置1001により読み取った画像をプリントアウト可能なように構成されている。
【0117】
(ソフトウェアブロック全体構成)
図2は、画像処理装置1001のソフトウェアブロック図である。
【0118】
ユーザインタフェース(UI)1501は、オペレータが本複合機の各種操作・設定を行う際、機器との仲介を行うモジュールである。本モジュールは、オペレータの繰作に従い、後述の各種モジュールに入力情報を転送し処理の依頼、あるいはデータの設定等を行う。
【0119】
アドレスブック1502は、データの送付先、通信先等を管理するデータベースモジュールである。アドレスブック1502の内容は、UI1501からの操作によりデータの追加、削除、取得が行われ、オペレータの操作により後述の各モジュールにデータの送付・通信先情報を与えるものとして使用されるものである。
【0120】
ウエブサーバモジュール1503は、図外のウエブクライアントからの要求により、本複合機の管理情報を通知するために使用される。
【0121】
管理情報は、後述のコントロールAPI(Application Programming Interface)1518を介して読み取られ、後述のHTTP1512、TCP/IP1516、ネットワークドライバ1517を介してウエブクライアントに通知される。
【0122】
ユニバーサルセンドモジュール1504は、画像データの配信を司るモジュールであり、UI1501によりオペレータに指示された画像データを、同様に指示された通信(出力)先に配信するものである。また、オペレータにより、本機器のスキャナ機能を使用し配信する画像データの生成が指示された場合は、後述のコントロールAPI1518を介して機器を動作させ、データの生成を行う。
【0123】
PRTモジュール1505は、ユニバーサルセンドモジュール1504内で出力先にプリンタが指定された際に実行されるモジュールである。
【0124】
Eメールモジュール1506は、ユニバーサルセンドモジュール1504内で通信先にE−メールアドレスが指定された際に実行されるモジュールである。
【0125】
データベースモジュール1507は、ユニバーサルセンドモジュール1504内で出力先にデータベースが指定された際に実行されるモジュールである。
【0126】
データプロセッサモジュール1508は、ユニバーサルセンドモジュール1504内で出力先に画像処理装置1001と同様の複合機が指定された際に実行されるモジュールである。
【0127】
リモートコピースキャンモジュール1509は、本装置のスキャナ機能を使用し、ネットワーク等で接続された他の複合機を出力先とし、本複合機単体で実現しているコピー機能と同等の処理を行うモジュールである。
【0128】
リモートコピープリントモジュール1510は、本装置のプリンタ機能を使用し、ネットワーク等で接続された他の複合機を入力先とし、本複合機単体で実現しているCopy機能と同等の処理を行うモジュールである。
【0129】
ウエブプルプリントモジュール1511は、インターネットまたはイントラネット上の各種ホームページの情報を読み出し、印刷するモジュールである。
【0130】
HTTPモジュール1512は、本複合機がHTTPにより通信する際に使用されるモジュールであり、後述のTCP/IPモジュール1516によりウェブサーバ1503、ウエブプルプリントモジュール1511に通信を提供するものである。
【0131】
lprモジュール1513は、後述のTCP/IPモジュール1516によりユニバーサルセンドモジュール1504内のPRTモジュール1505に通信を提供するものである。
【0132】
SMTPモジュール1514は、後述のTCP/IPモジュール1516によりユニバーサルセンドモジュール1504内のE−mailモジュール1506に通信を提供するものである。
【0133】
サリュテーションマネージャ(SLM)モジュール1515は、後述のTCP/IP1516モジュールによりユニバーサルセンドモジュール1504内のデータベースモジュール1507、DPモジュール1508、及びリモートコピースキャンモジュール1509、リモートプリントモジュール1510に通信を提供するものである。
【0134】
TCP/IPモジュール1516は、前述の各種モジュールに、後述のネットワークドライバ1517によりネットワーク通信を提供するものである。
【0135】
ネットワークドライバ1517は、ネットワークとの物理的な接続を制御するものである。
【0136】
コントロールAPI1518は、ユニバーサルセンドモジュール1504等の上流モジュールに対し、後述のジョブマネージャ1519等の下流モジュールとのインタフェースを提供するものであり、上流、及び下流のモジュール間の依存関係を軽減しそれぞれの流用性を高めるものである。
【0137】
ジョブマネージャ1519は、前述の各種モジュールよりコントロールAPI1518を介して指示される処理を解釈し、後述の各モジュールに指示を与えるものである。また、本モジュールは、本複合機内で実行されるハード的な処理を一元管理するものである。
【0138】
CODECマネージャ1520は、ジョブマネージャ1519が指示する処理の中でデータの各種圧縮・伸長を管理・制御するものである。
【0139】
FBEエンコーダ1521は、ジョブマネージャ1519、スキャナマネージャ1524により実行されるスキャン処理により読み込まれたデータをFBEフォーマットにより圧縮するものである。
【0140】
JPEG−CODEC1522は、ジョブマネージャ1519、スキャナマネージャ1524により実行されるスキャン処理、及びプリントマネージャ1526により実行される印刷処理において、読み込まれたデータのJPEG圧縮及び印刷データのJPEG展開処理を行うものである。
【0141】
MMR−CODEC1523は、ジョブマネージャ1519、スキャナマネージャ1524により実行されるスキャン処理、及びプリントマネージャ1526により実行される印刷処理において、読み込まれたデータのMMR圧縮及び印刷データのMMR伸長処理を行うものである。
【0142】
スキャナマネージャ1524は、ジョブマネージャ1519が指示するスキャン処理を管理・制御するものである。
【0143】
SCSIドライバ1525は、スキャナマネージャ1524と接続しているスキャナ部との通信を行うものである。
【0144】
プリンタマネージャ1526は、ジョブマネージャ1519が指示する印刷処理を管理・制御するものである。
【0145】
エンジンI/Fドライバ1527は、プリンタマネージャ1526とエンジン部とのI/Fを提供するものである。
【0146】
パラレルポートドライバ1528は、ウエブプルプリントモジュール1511がパラレルポートを介して図外の出力機器にデータを出力する際のI/Fを提供するものである。
【0147】
(アプリケーション)
以下、画像処理装置1001の組込みアプリケーションの実施の形態について図面を用いて説明する。
【0148】
図15は、画像処理装置1001によるデータの配信に関する組込みアプリケーションブロックを表すものである。以下、それぞれのブロックに照らし合わせながら、アプリケーション群の説明を行う。
【0149】
(ユーザインタフェース(UI)アプリケーション)
UI4050は、前記したとおりであるが、ここでは、アドレスブック4051について説明する。アドレスブック4051は、画像処理装置1001内の不揮発性の記憶デバイス(不揮発性メモリやハードディスクなど)に保存されており、この中には、ネットワークに接続された機器の特徴が記載されている。例えば、以下に列挙するような情報が含まれている。
【0150】
機器の正式名やエイリアス名
機器のネットワークアドレス
機器の処理可能なネットワークプロトコル
機器の処理可能なドキュメントフォーマット
機器の処理可能な圧縮タイプ
機器の処理可能なイメージ解像度
プリンタ機器の場合の給紙可能な紙サイズ、給紙段情報
サーバ(コンピュータ)機器の場合のドキュメントを格納可能なフォルダ名。
【0151】
以下に説明する各アプリケーションは、アドレスブック4051に記載された情報により配信先の特徴を判別することが可能となる。また、このアドレスブック4051は、編集可能であると共に、ネットワーク内のサーバコンピュータなどに保存されているものをダウンロードしたり、直接参照したりして使用することも可能である。
【0152】
(リモートコピーアプリケーション)
リモートコピーアプリケーション4100は、配信先に指定された機器の処理可能な解像度情報を前記アドレスブック4051より判別し、それに従い、スキャナにより読み取った2値画像をMMR圧縮を用いて圧縮し、それをTIFF(Tagged Image File Format)化し、SLM4103に通して、ネットワーク上のプリンタ機器に送信する。
【0153】
SLM4103とは、サリュテーションマネージャ(またはスマートリンクマネージャ)と呼ばれる機器制御情報などを含んだネットワークプロトコルの一種である。
【0154】
(同報配信アプリケーション)
同報配信アプリケーション4150は、前記リモートコピーアプリケーション4100と違い、一度の画像走査で読み取った画像を複数の配信宛先に送信することが可能である。また、配信先もプリンタ機器にとどまらず、いわゆるサーバコンピュータにも直接配信可能である。以下、配信先に従って順に説明する。
【0155】
配信先の機器が、例えばネットワークプリンタプロトコルである公知のLPD(Line Printer Daemon)、プリンタ制御コマンドとして公知のLIPSを処理可能だとアドレスブック4051より判別された場合、アドレスブック4051より判別した画像解像度に従って画像読み取りを行い、本実施例ではその画像データを公知のFBE(First Binary Encoding)を用いて圧縮し、さらにLIPSコード化して、公知のネットワークプリンタにおけるリモート印刷プロトコルであるLPR(Line Printer Daemon Protocol)に従い相手機器に配信する。
【0156】
配信先の機器がSLMで通信可能なサーバ機器の場合、アドレスブック4051より、サーバアドレス、サーバ内のフォルダの指定を判別し、リモートコピーアプリケーションと同様に、スキャナにより読み取った2値画像をMMR圧縮を用いて圧縮し、それをTIFF化し、SLMに従い配信し、ネットワーク上のサーバ機器の特定のフォルダに格納する事が可能である。
【0157】
また、本実施例の画像処理装置では、相手機器であるサーバがJPEG圧縮された多値画像を処理可能だと判別した場合、2値画像と同様に、多値読み取りした画像を公知のJPEG圧縮を用いて、やはり公知のJFIF化し、SLMに従い配信し、ネットワーク上のサーバ機器の特定のフォルダに格納する事が可能である。
【0158】
配信先の機器がEメールサーバである場合、アドレスブック4051に記載されたメールアドレスを判別し、スキャナにより読み取った2値画像をMMR圧縮を用いて圧縮し、それをTIFF化し、SMTP(Simple Mail Transfer Protcol)4153に従い、Eメールサーバに配信する。その後の配信は、メールサーバ4550によって実行される。
【0159】
(ウエブプルプリントアプリケーション)
ウエブプルプリントアプリケーション4200は、HTTPモジュールを介して指定したURLのウェブサーバ4650からHTML文書等のデータを読み込み、それを例えばポストスクリプト(PS)形式のデータとしてプリント出力する。
【0160】
(ウエブサーバアプリケーション)
ウエブサーバアプリケーション4250は、ウェブブラウザ4700に対して、HTML等のデータを提供する。
【0161】
上述のアプリケーションが、操作部からのオペレータの操作に従って実行される。
【0162】
[画像処理装置の操作]
画像処理装置1001の繰作部の構成を図13に示す。LCD表示部(3001)は、LCD上にタッチパネルシートが貼られており、システムの操作画面を表示するとともに、表示してあるキーが押されるとその位置情報をコントローラCPUに伝える。
【0163】
スタートキー3002は原稿画像の読み取り動作を開始する時などに用いる。スタートキー中央部には、緑と赤の2色LEDがあり、その色によってスタートキーが使える状態にあるかどうかを示す。ストップキー3003は、稼働中の動作を止める働きをする。IDキー3004は、使用者のユーザIDを入力するときに用いる。リセットキー3005は、操作部からの設定を初期化するときに用いる。
【0164】
以下で操作部に表示される各画面について詳細に説明する。
【0165】
(操作画面(図14))
画像処理装置1001が提供する機能は、コピー(COPY)/送信(SEND)/検索(RETRIEVE)/タスク(TASKS)/管理(MGMNT)/構成(CONFIG)の6つの大きなカテゴリーに分かれており、これらは操作画面3010上の上部に表示される6つのメインタブ(3011〜3016)に対応している。
【0166】
これらのメインタブを押すことにより、各カテゴリーの画面への切り替えが行われる。他カテゴリーヘの切り換えが許可されない場合は、メインタブの表示色が変わり、メインタブを押しても反応しない。
【0167】
(送信画面(図16〜))
送信画面表示時にスタートボタンが押されると、スキャナが動作し、読み取った画像データを設定された宛先に指定された送信方法で送信する処理が開始される。
【0168】
送信メイン画面3200(図16)は、宛先表示領域3202、詳細宛先数表示領域3203、宛先スクロールボタン3204、アドレスブックボタン3208、新規ボタン3209、編集ボタン3210、削除ボタン3211、サブジェクト入力領域3205、メッセージ入力領域3206、ファイル名入力領域3207、カバーページチェックボタン3212、HD書き込みチェックボタン3213、印刷出力チェックボタン3214、スキャン設定ボタン3215から構成される。
【0169】
リセットを含む初期化時には、図17の画面3201に示すように、宛先表示領域には1つの宛先も表示されず、操作説明画面が表示される。
【0170】
宛先表示領域3202には入力された宛先の一覧が表示される。入力は順次末尾に追加される。
【0171】
詳細宛先数表示領域3203には現在設定されている宛先数が表示される。宛先表示領域からある宛先を選択した後、削除ボタン3211を押すと、選択されていた宛先が削除される。
【0172】
サブジェクト入力領域3205、メッセージ入力領域3206、ファイル名入力領域3207を押すと、フルキーボードが表示され、それぞれの入力が可能になる。
【0173】
(アドレスブックサブ画面(図18))
アドレスブックボタン3208を押すと、アドレスブックサブ画面3220が表示される。アドレス帳表示領域3221で選択マーク3232を付けられた宛先は、OKボタン3231を押すことにより、送信メイン画面の宛先表示領域3202に追加される。
【0174】
アドレス帳の表示はソート項目設定ボタン(3224〜3226)を押すことによりクラス別、名前昇順、名前降順にソートされる。項目選択件数表示領域3227には選択マークの付けられた項目数を表示する。
【0175】
OKボタン3231またはキャンセルボタン3230が押されると、アドレスブックサブ画面はクローズされ、送信メイン画面が表示される。
【0176】
アドレス帳の中の1つの項目を選択した状態で詳細ボタン3229を押すと、詳細サブ画面3235(図19)が表示される。詳細サブ画面には選択された項目の情報としてアドレス帳から得られるすべての情報3236が表示される。
【0177】
(詳細宛先サブ画面(図20〜図25))
送信メイン画面の新規ボタン3209を押すとPersonクラス詳細サブ画面3270(図20参照)が表示され、新しい宛先の設定が可能になる。宛先の入力は送信方法(電子メール、ファックス、プリンタ、FTP)に対応した送信方法選択ボタン(3271〜3274)を押すか、詳細宛先入力領域(3275〜3278)を押すと、ファックスの場合はテンキーボード3050(図22)、その他はフルキーボード3040(図21)が表示され、入力可能になる。3279〜3282はそれぞれの送信方法の送信オプションを行うためのボタンであるが、ここでは詳細な説明は省略する。
【0178】
送信メイン画面でPersonクラスの宛先が選択されている状態で編集ボタン3210が押された場合もPersonクラス詳細サブ画面3290(図23)が表示される。詳細宛先入力領域(3275〜3278)の該当する領域に、選択された宛先の詳細が表示され、前述した方法でキーボードを表示すると、宛先の編集が可能になる。
【0179】
送信メイン画面でData Baseクラスの宛先が選択されている状態で編集ボタン3210が押された場合、Data Baseクラス詳細サブ画面(図24)が表示される。データベースクラス詳細サブ画面にはデータベース名3311、フォルダリスト3312が表示される。
【0180】
送信メイン画面でGroupクラスの宛先が選択されている状態で編集ボタン3210が押された場合Groupクラス詳細サブ画面3320(図25)が表示される。Groupクラス詳細サブ画面にはグループメンバー表示3321がされる。
【0181】
(HD設定サブ画面(図26))
HD書き込みチェックボタン3213を押すと、ハードディスクに送信するための設定を行うHD設定サブ画面3330が表示される。ここでは書き込むべきフォルダの指定等を行う。
【0182】
(印刷出力サブ画面(図27〜図29))
印刷出力チェックボタン3214を押すと、プリントアウトサブ画面3340(図27)が表示される。プリントアウトサブ画面ではプリント枚数、紙サイズ、拡大縮小率、両面印刷、ソート、解像度などを設定する。紙サイズ選択ボタン3345を押すと、紙サイズの一覧3360(図28)が表示され、そこから選択する。ソータ選択ボタン3350を押すと、選択可能なソータ一覧3365(図29)が表示される。
【0183】
(スキャン設定サブ画面(図30〜図33))
スキャン設定ボタン3215を押すと、スキャン設定サブ画面3370が表示される。スキャン設定サブ画面内のプリセットモード選択領域3371からスキャン設定を1つ選択すると、それに対応するあらかじめ設定された解像度、スキャンモード、濃度がそれぞれの表示領域(3377、3379、3381)に表示される。これらの値は選択ボタン(3376、3378、3380)により手動で変えることが可能である。
【0184】
図31のスキャン設定サブ画面3390は、紙サイズ選択一覧をプルダウン表示した状態の画面で、この一覧から使用する紙のサイズ、向きを選択する。図32の画面3391、図33の画面3392は、それぞれ、解像度、スキャンモード一覧をプルダウン表示した状態を示している。
【0185】
[プラグインの詳細な説明]
図34は、同報配信アプリケーション4150に対して、RFC2910、RFC2911等で公知のInternet Printing Protocol(IPP)プラグインモジュールを追加することで、ユニバーサルセンドモジュールが新たにIPP配信プロトコルによる同報配信をサポートしている状態を例示するアプリケーションブロック図である。
【0186】
IPPプラグインモジュールが組み込まれたユニバーサルセンドモジュールは、配信先の機器が、ネットワークプリンタプロトコルである公知のIPP、プリンタ制御コマンドとして公知のLIPSを処理可能だとアドレスブック4051より判別された場合、アドレスブック4051より判別した画像解像度に従って画像読み取りを行い、本実施例ではその画像を公知のFBE(First Binary Encoding)を用いて圧縮し、さらにLIPSコード化して、公知のネットワークプリンタプロトコルであるIPPに従い相手機器に配信する。
【0187】
図35はCPU2001によって実行されるソフトウェアの階層構造を示す模式図であり、ユニバーサルセンドモジュール1504と関連モジュールの階層関係を示す。
【0188】
RTOS1529は、リアルタイムオペレーティングシステムであり、CPU2001が直接解釈実行する機械命令によって記述されたユニバーサルセンドモジュール1504などのソフトウェアモジュールのための動作環境を提供する。
【0189】
インタプリタ1530は、公知のインタプリタ処理系であり、RTOS1529が提供する動作環境上で動作し、所定のインタプリタ用命令で記述された命令列データを読み込み、逐次的に解釈実行する。インタプリタ1530は、インタプリタ用命令で記述されたソフトウェアモジュールに動作環境を提供する仮想的なCPUであり、インタプリタ上で動作するソフトウェアのために用意されたライブラリセットとともに、仮想的なオペレーティングシステムの機能を果たす。
【0190】
本実施例のインタプリタはSun Microsystems社による公知のJava(登録商標)を対象として動作するインタプリタである。本実施例のJavaのインタプリタは、Java言語で記述されたプログラムをコンパイルした結果生成されるバイトコードと呼ばれるインタプリタ用命令列の中間表現を、実行時に動的に読み込むことができる。Javaインタプリタは読み込んだ各バイトコードを逐次的に解釈実行する。Javaのバイトコードは公知のスタックマシン型プロセッサの機械言語に類似しており、Java仮想機械と呼ばれることもあるJavaのインタプリタは、スタックマシン型のCPUと同様に動作する。
【0191】
なお、本実施例に係るインタプリタはJavaに限定する必要はなく、それぞれ公知のPerl、Python、Rubyなど多種多様なインタプリタを採用してもよい。
【0192】
図35のソフトウェア階層構造において、RTOS1529の上では機械命令で記述されたソフトウェアモジュールが動作し、インタプリタ1530の上ではインタプリタ用命令で記述されたソフトウェアモジュールが動作する。
【0193】
スタブモジュール1531は、ユニバーサルセンドモジュール1504内に組み込まれて動作する送信コンポーネントと呼ばれるサブモジュールの1つであり、CPU2001によって直接解釈実行される機械命令によって記述され、既に説明したPRTモジュール1505、Eメールモジュール1506、データベースモジュール1507、データプロセッサモジュール1508の標準搭載の送信コンポーネントと同様に、スキャン画像データを所定のデータ配信プロトコルによって出力先へと配信する処理を行う。スタブモジュール1531は、ユニバーサルセンドモジュール1504内で標準搭載の送信コンポーネントによって配信処理を行うことのできない出力先が宛先として指定された際に実行されるモジュールである。
【0194】
リクエストブローカモジュール1532は、スタブモジュール1531と通信を行いユニバーサルセンドモジュール1504がスタブモジュールとの間で行う対話的な要求と応答のやり取りをプラグインモジュール1533に転送する。リクエストブローカモジュール1532は、Javaのバイトコードで記述されインタプリタ1530上で解釈実行される。
【0195】
プラグイン1533は、リクエストブローカモジュール1532内に動的に組み込まれて動作するサブモジュールの1つである。
【0196】
本実施例ではプラグイン1533として、ユニバーサルセンドモジュール1504で出力先にIPPのプリントプロトコルをサポートするプリンタが指定された際に実行されIPPによる配信処理を行う、IPP送信コンポーネントプラグインモジュールが組み込まれている状態を示している。
【0197】
プラグイン1533は、Javaのバイトコードで記述されインタプリタ1530上で解釈実行される。
【0198】
図36は、ユニバーサルセンドモジュール1504、スタブモジュール1531、リクエストブローカモジュール1532、及びプラグインモジュール1533の間の相互の対話処理を示す図である。
【0199】
ユニバーサルセンドモジュール1504は、スタブモジュール1531が備える送信コンポーネントインタフェースの関数を呼び出すことによってスタブモジュール1531と通信する。
【0200】
スタブモジュール1531のインタフェース関数が呼び出されると、その内部で、インタフェース関数の呼出し要求に関する情報をメッセージ化し、さらにメッセージをリクエストブローカ1532に送信する。
【0201】
リクエストブローカ1532は、リクエストメッセージを受信すると、メッセージの解釈を行い、メッセージに示された情報に基づきインタフェース関数の呼出し要求を復元し、プラグインモジュール1533の対応するメソッドを呼び出す。
【0202】
プラグインモジュール1533のメソッドの処理が完了するとメソッドはリターン値を返し、リクエストブローカ1532に制御を戻す。
【0203】
リクエストブローカ1532は、メソッドがリターンすると、メソッドからのリターン値の情報に基づくレスポンスメッセージを生成し、さらに、生成したメッセージをスタブモジュール1531に返信する。
【0204】
スタブモジュール1531は、レスポンスメッセージを受信すると、最初のインタフェース関数の処理を完了し、受信したレスポンスメッセージの情報に基づくリターン値を返し、ユニバーサルセンドモジュール1504に制御を戻す。
【0205】
図37は、送信コンポーネントが備えるインタフェースを示す。
【0206】
すべての送信コンポーネントは、ユニバーサルセンドモジュール1504の枠組みの中でサブモジュールとして機能するためにあらかじめ定められたインタフェース関数一式370を備える。
【0207】
ユニバーサルセンドモジュール1504は、アプリケーションとしての処理の中で、データ配信プロトコルに依存する処理を必要とする際、送信コンポーネントの関数を呼び出す。
【0208】
図37において、配信処理371は、スキャンした画像データを当該送信コンポーネントが処理する配信プロトコルによって配信するインタフェース関数である。
【0209】
アドレスリスト取得処理372は、当該送信コンポーネントが処理する配信プロトコルによって送信可能な宛先アドレスのその時点で登録されているリストを取得するためのインタフェース関数である。
【0210】
アドレス追加処理373は、当該送信コンポーネントが処理する配信プロトコルによって送信可能な宛先アドレスを、アドレスリストに追加するためのインタフェース関数である。
【0211】
アドレス削除処理374は、当該送信コンポーネントが処理する配信プロトコルによって送信可能な宛先アドレスを、アドレスリストの中から削除するためのインタフェース関数である。
【0212】
図38は、送信コンポーネントの一種であるスタブモジュール1531が備えるインタフェースを示す。
【0213】
スタブモジュール1531のインタフェースは、送信コンポーネントのインタフェース370を継承しており、送信コンポーネントが備えるインタフェース関数のすべてを備える。
【0214】
スタブモジュール1531のインタフェースは、さらに、プラグインプロトコルリスト取得処理381を備え、プラグインプロトコルリスト取得処理381はプラグイン1533として登録されているプラグインモジュール群がそれぞれサポートする配信プロトコルのリストを取得するためのインタフェース関数である。
【0215】
図39は、ユニバーサルセンドモジュール1504においてCPUのネイティブ命令によって実装される、アドレス帳へのアドレス登録処理を示すフローチャートである。
【0216】
ユーザの操作に応じてアドレス帳へのアドレス登録処理が起動されると、ユニバーサルセンドモジュール1504は、スタブモジュール1531が備えるプラグインプロトコルリスト取得インタフェース関数381を呼び出して、登録されているプラグイン群がサポートするプロトコルのリストを取得する(S391)。
【0217】
次に、標準搭載の送信コンポーネントがサポートするプロトコル群であるLPD、SLM、SMTPと、前ステップで取得したプロトコルリストのプロトコル群とを合わせ、その時点でサポートしている全プロトコルリストとしてユーザに提示し、ユーザに対して選択を促す(S392)。
【0218】
ユーザがプロトコルリスト中から所望のプロトコルを選択すると(S393)、選択されたプロトコルをサポートする送信コンポーネントモジュールが備えるアドレス追加処理インタフェース関数373を呼び出す。
【0219】
アドレス追加処理インタフェース関数373の実装では、当該プロトコルによって定められたそれぞれのアドレス体系に応じたアドレスの入力をユーザに促し、ユーザが入力したアドレスが送信コンポーネントによって(それが標準搭載の送信コンポーネントであってもプラグインモジュールによる送信コンポーネントであっても同様に)記憶される(S394)。
【0220】
図40は、ユニバーサルセンドモジュール1504においてCPUのネイティブ命令によって実装される、配信処理を示すフローチャートである。ここでは説明を簡単にするために、すべての配信宛先に対して、同一パラメータで生成した画像ファイルを配信すればよいものとして処理を単純化している。
【0221】
ユーザの操作に応じて配信処理が起動されると、まずユーザが配信を行いたい宛先アドレスを選択することを待つ(S401)。
【0222】
ユーザが所望の配信宛先アドレスを1つ以上選択し配信宛先リストの選択を完了すると、コントロールAPI1518を呼び出して画像読み込み解像度、圧縮形式、ファイル形式などの画像ファイル生成パラメータを設定する(S402)。
【0223】
さらにコントロールAPI1518を呼び出してイメージスキャンを行い画像データファイルを得る(S403)。
【0224】
次に、ステップS401でユーザが選んだ宛先アドレスリストから1つの宛先アドレスを取り出し、その宛先アドレスに対応する送信コンポーネントの配信処理インタフェース関数371を呼び出す(S404)。
【0225】
宛先アドレスリストに含まれるすべての宛先への配信を完了するまで、ステップS404に戻って配信処理を繰り返す(S405)。
【0226】
図41は、図38に示したインタフェース関数のそれぞれが呼び出されたときに、スタブモジュール1531がリクエストブローカ1532に送るリクエストメッセージを示す図である。
【0227】
メッセージは伝送データを所定の形式で符号化したバイト列であり、メモリ空間上に構築され、オペレーティングシステムが備えるメッセージキューやソケットなどのプロセス間通信(タスク間通信)機構によって、ソフトウェアモジュールの実行インスタンス間で伝送される。
【0228】
プロトコル識別子411は、配信プロトコルを識別するための属性である。プロトコル識別子411の内容は、ユニバーサルセンドモジュールが呼び出したインタフェース関数の引数に含まれる情報から生成される。
【0229】
リクエストブローカ1532はプロトコル識別子411に基づいて、受信したリクエストを処理すべきプラグインモジュールを特定する。
【0230】
オペレーション識別子412は、呼び出すべきメソッドを識別するための属性である。オペレーション識別子412の内容は、ユニバーサルセンドモジュール1504が呼び出したインタフェース関数に固有の情報として、どのインタフェース関数が呼び出されたかに応じて決定される。
【0231】
リクエストブローカ1532は、オペレーション識別子412に基づいて、呼び出すべきプラグインモジュールのインタフェースメソッドを特定する。
【0232】
パラメータ413は、リクエストを特定するために必要なその他の属性である。パラメータ413の内容は、ユニバーサルセンドモジュール1504が呼び出したインタフェース関数に与えられた引数のうち、プロトコル識別情報以外の情報から生成される。
【0233】
リクエストブローカ1532は、パラメータ413に基づいて、プラグインモジュール1533のインタフェースメソッド呼び出しの引数を生成し、メソッド呼び出しを行う。
【0234】
図42はリクエストブローカ1532がスタブモジュール1531に返すレスポンスメッセージを示す図である。
【0235】
メッセージは伝送データを所定の形式で符号化したバイト列であり、メモリ空間上に構築され、オペレーティングシステムが備えるメッセージキューやソケットなどのプロセス間通信(タスク間通信)機構によって、ソフトウェアモジュールの実行インスタンス間で伝送される。
【0236】
パラメータ421は、リクエストブローカ1532が呼び出したプラグインモジュール1533のインタフェースメソッドの返り値をメッセージ化した属性である。パラメータ421の内容は、インタフェースメソッドに固有の形式でメッセージ化された、インタフェースメソッドの返り値である。
【0237】
スタブモジュール1531は、したがって、リクエストに固有の形式としてパラメータ属性の内容を解釈し、ユニバーサルセンド1504への返り値を生成できる。
【0238】
図43は、スタブモジュール1531においてCPUのネイティブ命令によって実装される、スタブモジュールが備えるインタフェース380の処理を示すフローチャートである。
【0239】
スタブモジュール1531が備えるインタフェース関数の各々は、すべてこの図に示す処理を行うように実装される。各インタフェース関数が呼び出されると、当該関数呼び出しを図41に示した処理リクエストメッセージとしてメッセージ化し、生成したリクエストメッセージをリクエストブローカ1532へ送信する(S431)。
【0240】
次に、リクエストブローカ1532から図42に示したレスポンスメッセージを受信する(S432)。
【0241】
最後に、受信したレスポンスメッセージを解析し対応するリターン値を生成して、呼び出されたインタフェース関数の返り値としてリターンする(S433)。
【0242】
図44は、リクエストブローカ1532が備えるインタフェースを示す図である。
【0243】
メイン処理441は、リクエストブローカ1532の主関数であり、リクエストブローカ1532の起動時にシステムによって割り当てられたスレッドのコンテキストによって実行される。
【0244】
プラグイン登録処理442は、プラグインモジュール1533をリクエストブローカ1532の管理下に追加登録する処理を行う。
【0245】
プラグイン登録解除処理443は、リクエストブローカ1532の管理下に登録されているプラグインモジュール1533の登録を解除する処理を行う。
【0246】
図45は、リクエストブローカ1532が記憶し管理するプラグインリストデータのレコード形式を示す図である。
【0247】
プラグインリストデータにおいて、プラグイン登録処理442が呼び出されたときに当該プラグインモジュールに対応するレコードが追加され、プラグイン解除処理443が呼び出されたときに当該プラグインモジュールに対応するレコードが削除される。
【0248】
プラグイン参照451は、登録されているプラグインモジュール1533のオブジェクトに対応する識別情報であり、リクエストブローカ1532はこの参照に基づいて当該プラグインモジュールのオブジェクトをメモリ上に復元し実行コンテキストを与えることができる。
【0249】
配信プロトコル452は、当該プラグインモジュールがサポートする配信プロトコルを記述する情報である。
【0250】
ファイル形式453は、当該プラグインモジュールによる配信に最適な、および/または、配信可能な、データファイル形式を記述する情報である。
【0251】
圧縮方式454は、当該プラグインモジュールによる配信に最適な、および/または、配信可能な、データの圧縮方式を記述する情報である。
【0252】
解像度455は、当該プラグインモジュールによる配信に最適な、および/または、配信可能な、画像データの解像度を記述する情報である。
【0253】
図46は、リクエストブローカ1532においてJavaのインタプリタ命令によって実装される、メイン処理を示すフローチャートである。
【0254】
メイン処理は以下の一連のステップを繰り返すループを構成している。
【0255】
リクエストブローカ1532は、スタブモジュール1531からのメッセージの到着を待ち、リクエストメッセージを受信する(S461)。
【0256】
リクエストメッセージを受信すると、当該リクエストがプラグインプロトコルリスト取得インタフェース関数によって生成されたリクエストであるか否かを判定し、プラグインプロトコルリスト取得リクエストであればステップS466に進み、それ以外ならステップS463に進む。
【0257】
ステップS463では、図41に示したリクエストメッセージのプロトコル識別子411の内容に基づき当該プロトコルをサポートするプラグインを決定し、当該プラグインの実装を提供するプラグインオブジェクトをリクエストブローカが支配するメモリ空間に展開する(S463)。
【0258】
次に、リクエストメッセージのオペレーション識別子412の内容に基づいて対応するメソッドを決定し、さらにパラメータ413の内容に基づいてメソッドに与える引数を生成し、メモリ上に読み込んだオブジェクトの当該メソッドを呼び出す(S464)。
【0259】
プラグインオブジェクトのメソッドの呼び出しがリターンすると、その返り値を図42に示したレスポンスメッセージの形式にメッセージ化し、生成したメッセージをスタブモジュール1531に送信する(S465)。
【0260】
さらに、ステップS461に戻り一連の処理を繰り返す。一方、ステップS466からの一連のステップではプラグインプロトコルリスト取得要求に応じた処理を行う。
【0261】
プラグインプロトコルリスト取得要求を受信すると、図45に示した、プラグインリストデータを検索し、登録されているプラグインモジュール群がサポートしているプロトコルのリストを生成する(S466)。
【0262】
次に、プロトコルリストを所定の形式でメッセージ化し、生成したレスポンスメッセージをスタブモジュールに送信する(S467)。さらに、ステップS461に戻り一連の処理を繰り返す。
【0263】
図47は、送信コンポーネント用プラグインモジュール1533が備えるインタフェースを示す。
【0264】
すべての送信コンポーネント用プラグインモジュールは、リクエストブローカ1532の枠組みの中でサブモジュールとして機能するために、あらかじめ定められたインタフェース関数一式470を備える。
【0265】
リクエストブローカ1532は、その処理の中で、プラグインモジュールのインタフェース関数を呼び出す。
【0266】
図47において、配信処理471は、スキャンした画像データを当該プラグインモジュールが処理する配信プロトコルによって配信するインタフェース関数である。
【0267】
アドレスリスト取得処理472は、当該プラグインモジュールが処理する配信プロトコルによって送信可能な宛先アドレスのその時点で登録されているリストを取得するためのインタフェース関数である。
【0268】
アドレス追加処理473は、当該プラグインモジュールが処理する配信プロトコルによって送信可能な宛先アドレスを、アドレスリストに追加するためのインタフェース関数である。
【0269】
アドレス削除処理474は、当該プラグインモジュールが処理する配信プロトコルによって送信可能な宛先アドレスを、アドレスリストの中から削除するための関数である。
【0270】
図48は、IPPによる配信をサポートするプラグインモジュール1533が記憶し管理するアドレスリストデータのレコード形式を示す図である。
【0271】
ipp−URL481は、IPPの体系において宛先プリンタのアドレスを記述するPrinter−URIであり、RFC2910等に開示されている公知のURIスキームに従って表現される。各レコードは例えば次に示すような形式の可変長の文字列である。
【0272】
ipp://myhost.com/myprinter/myqueue。
【0273】
一方の配信パラメータ482は、当該アドレス宛の配信に最適な、および/または、配信可能な各種の配信に係るパラメータを記述する情報である。
【0274】
図49は、IPPによる配信をサポートするプラグインモジュール1533においてJavaのインタプリタ命令によって実装される、アドレス追加処理を示すフローチャートである。
【0275】
プラグインモジュール1533が備えるアドレス追加処理のためのインタフェース関数473が呼び出されると、IPP配信用のプラグインモジュール1533は図48に示した既に登録されているアドレスリストデータをハードディスクから読み込む(S491)。
【0276】
次に、ユーザに対して追加するIPPアドレス481と、もしあればそのアドレスに固有の最適、および/または、可能な配信パラメータ482と、の入力を促し、ユーザによるアドレス入力が終了するまで待つ(S492)。
【0277】
アドレス入力が終了すると、ユーザがキャンセルによってアドレス入力を終了したか否かを判定し、もしキャンセルであればステップS496に進み、もし正常な完了であればステップS494に進む。
【0278】
ユーザが正常にアドレスの入力を完了した場合は、入力されたアドレス481と配信パラメータ482とをアドレスリストに追加しハードディスクに書き込む(S494)。
【0279】
さらに、正常終了を示す返り値をリターンして一連の処理を終了する(S495)。
【0280】
一方、ユーザがアドレス入力をキャンセル終了した場合は、キャンセル終了を示す返り値をリターンして一連の処理を終了する(S496)。
【0281】
図50は、IPPによる配信をサポートするプラグインモジュール1533においてJavaのインタプリタ命令によって実装される、配信処理を示すフローチャートである。
【0282】
プラグインモジュール1533が備えるアドレス追加処理のためのインタフェース関数470が呼び出されると、IPP配信用のプラグインモジュール1533は、関数呼び出しの引数として与えられた宛先アドレスをアドレスリストデータ中から検索し、そのレコードの配信パラメータを読み込む(S501)。
【0283】
次に、宛先アドレスによって示されたIPPプリンタのTCPポート番号631番との間に公知のHTTPプロトコルによる接続を確立し、関数呼び出しの引数として与えられた画像ファイルをプリントするためのIPPプリントジョブ要求をこの接続に対して送信する(S502)。
【0284】
IPPプリントジョブを送信するためにHTTP接続に書き込むデータの冒頭部分は、例えば次のようなバイト列である。
【0285】
POST /myprinter/myqueue HTTP/1.1
Host: myhost.com:631
Content-type: application/ipp
Transfer-Encoding: chunked

IPPプリントジョブ要求
…。
【0286】
次に、接続からIPPプリントジョブ応答を読み出し、配信が正常終了したか否かを判定する(S503)。もし正常終了であれば、正常終了を示す返り値をリターンして終了する(S504)。もし異常終了であれば、エラー終了を示す返り値をリターンして終了する(S505)。
【0287】
以上のようにして、画像処理装置中のソフトウェア組込み型電子装置にJavaのインタプリタ環境を導入し、ネイティブ機会命令で記述された標準搭載機能ソフトウェアが必要とする処理の一部分をJavaのクラスとして記述し、Javaのインタプリタ環境で動作するこのクラスのオブジェクトとネイティブな標準搭載機能ソフトウェアとの間をインターフェースし、ネイティブな標準搭載機能ソフトウェアのプラグインモジュールをJavaインタプリタ上で動的に追加することにより、画像処理装置としてソフトウェア組込み型電子装置の柔軟で動的な機能拡張が可能となる。
【0288】
上記実施の形態においては、センド機能を構成する送信コンポーネントの配信プロトコルを処理するアルゴリズムとそのプロトコルにおける宛先アドレス情報をローカルに管理するアルゴリズムとをプラグイン化したが、他のアルゴリズム部品をプラグイン化するように構成することもできる。
【0289】
たとえば、図16のセンド画面の表示処理をプラグインによって置き換え可能に構成した場合、プラグインの実装によっては単一のプロトコルや単一の宛先アドレスに固定した単純なセンド画面を提供することもできる。これによって、特定業務のワークフローに特化した簡単操作のセンドアプリケーションを、配信プロトコルやアドレス情報はネイティブのプログラムを変更することなくそのまま利用することができる。操作画面をプラグイン化する効果は、言うまでもなくセンドアプリケーションに限らずすべてのアプリケーションに対して有効である。
【0290】
また、たとえば、図18のアドレス帳画面の中に複数のアドレスをリスト表示する処理において、リスト表示のアルゴリズムをプラグインによって置き換え可能に構成することもできる。この場合、各アドレスレコードの表示順序を制御するソートアルゴリズムや、どのレコードの表示を抑制するかを制御するフィルタアルゴリズムなどを柔軟に置き換えることが可能となり、特定のユーザにとって最適なリスト表示を行うことができる。言うまでもなく、アドレスリストに限らず、他の情報のリスト表示処理においても有効である。
【0291】
また、たとえば、アドレスブック4051そのものをプラグイン化してもよい。この場合、たとえば外部のサーバが管理するディレクトリサービスをLDAPやNIS、DNSなどのネットワークプロトコルによって利用する実装に置き換えることも可能となる。
【0292】
また、たとえば、一般に装置の修理・交換や装置ファームウェアのアップデート時などに、アドレス情報などの各種データを装置外部に読み出してまたそれを装置内部に書き戻すデータエクスポート・インポートの機能が必要とされるが、このエクスポート・インポートのアルゴリズムをプラグイン化するように構成することもできる。この場合、どういった種類の情報をどのような形式(フォーマット)でどのようなプロトコルによって外部に入出力するかをプラグインの実装次第で柔軟に制御することが可能となる。たとえばXML形式でHTTPプロトコルによって入出力するようなプラグインを実装し利用できる。
【0293】
また、たとえば、装置内部のHDD2004などの不揮発性メモリに記憶するデータを装置外部の不揮発性記憶にバックアップするバックアップ処理のスケジューラをプラグイン化することもできる。この場合、すべてのファイルをバックアップするフルバックアップと、前回のバックアップ時点から変更されたファイルのみをバックアップするインクリメンタルバックアップとを適宜組み合わせるなどして、特定のユーザの運用形態に最適なタイミングでバックアップを行うカスタマイズが可能となる。
【0294】
また、たとえば、WANからMODEM2050が受信したファクスやLANからネットワーク2010が受信したEメールやIFAXなどの文書が一時蓄積されるインボックスを監視する監視アルゴリズムをプラグイン化することもできる。この場合、受信文書はプリントアウトのようなあらかじめ定められた処理に送られるだけでなく、プラグインのアルゴリズムの実装次第で、たとえば図15に示したような各種の配信機能を利用してさまざまな宛先に転送されるように構成することも可能である。いくつかの受信を留め置いてから転送を行ったり、受信を通知するEメールをユーザの携帯電話宛に送ったり、受信文書をウェブサーバにアップロードしてウェブブラウザから閲覧可能にするなど、特定のユーザが所望する個別の運用形態に合わせたあらゆる処理に置き換えることが容易となる。
【0295】
また、たとえば、RIP2060、スキャナ画像処理2080、プリンタ画像処理2090、画像回転2030、画像圧縮2040の各画像処理ブロックのそれぞれの内部もしくは横並びに、文書データの変換処理を行う文書フィルタブロックを挿入し、文書データ変換処理をプラグインとして追加可能に構成してもよい。この場合、特定用途向きの独自の画像処理や文書処理をプラグインのアルゴリズムによって提供可能なことは言うまでもないが、さらに、プラグインの実装次第では処理を装置外部のコンピュータなどが提供する機能に委譲することによって、外部装置と組み合わせた分散システムによって機能拡張を行う柔軟性も獲得できる。一例として、装置外部のコンピュータ上で稼働する高度なOCR機能とのインタフェースを行うプラグインを構成すれば、装置内にはOCR機能を追加しなくても画像からテキストデータを抽出する文書処理が装置内部で利用可能となる。さらに外部コンピュータが提供する翻訳機能とを組み合わせて、スキャンや受信した画像データをOCRし翻訳して別の言語でプリントアウトするような拡張機能を構成することもできる。
【0296】
(他の実施の形態)
本実施の形態においては、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
【0297】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0298】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0299】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0300】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0301】
【発明の効果】
以上の説明から明らかなように本発明によれば、動的なデータ構造やアルゴリズムの実装と部分的なソフトウェアモジュールのインクリメンタルリンクに最適なインタプリタをシステム内部の仮想的なオペレーティングシステムとして導入し、プロセッサのネイティブ機械命令によって記述されたソフトウェアのプラグインモジュールをインタプリタ上で動的に追加することにより、柔軟で動的な機能拡張が可能なソフトウェア組込み型電子装置を提供することができる。
【図面の簡単な説明】
【図1】本発明に係る画像処理装置を含むシステムの構成図である。
【図2】本発明に係る画像処理装置のソフトウェアの構成図である。
【図3】本発明に係る画像処理装置のブロック図である。
【図4】スキャナ部、プリンタ部、及び操作部の外形図である。
【図5】操作部を示す図である。
【図6】スキャナ画像処理部のブロック図である。
【図7】プリンタ画像処理部のブロック図である。
【図8】画像圧縮処理部のブロック図である。
【図9】画像回転部のブロック図である。
【図10】画像回転処理の説明図である。
【図11】画像回転処理の説明図である。
【図12】デバイスI/F部のブロック図である。
【図13】操作部を示す図である。
【図14】操作画面を示す図である。
【図15】画像処理装置1001によるデータの配信に関する組込みアプリケーションブロックを表す図である。
【図16】センドメイン画面を示す図である。
【図17】センド初期画面を示す図である。
【図18】アドレスブック画面を示す図である。
【図19】詳細情報画面を示す図である。
【図20】詳細宛先画面を示す図である。
【図21】フルキーボードを示した図である。
【図22】テンキーボードを示した図である。
【図23】詳細宛先画面を示す図である。
【図24】詳細宛先画面を示す図である。
【図25】詳細宛先画面を示す図である。
【図26】ハードディスク設定画面を示す図である。
【図27】プリント設定画面を示す図である。
【図28】紙サイズ一覧画面を示す図である。
【図29】ソータ一覧画面を示す図である。
【図30】スキャン設定画面を示す図である。
【図31】紙サイズ一覧画面を示す図である。
【図32】解像度一覧画面を示す図である。
【図33】スキャンモード一覧画面を示す図である。
【図34】データの配信に関する組込みアプリケーションをプラグインモジュールによって拡張した状態を示すブロック図である。
【図35】データの配信に関する組込みアプリケーションを実装するソフトウェアモジュール群の階層関係を表す図である。
【図36】データの配信に関する組込みアプリケーションのプラグインによる拡張を実装するソフトウェアモジュール間の対話処理を示す図である。
【図37】送信コンポーネントが備えるインタフェースを示す図である。
【図38】スタブモジュール1531が備えるインタフェースを示す図である。
【図39】データの配信に関する組込みアプリケーションのアドレス帳へのアドレス登録処理を示すフローチャートである。
【図40】データの配信に関する組込みアプリケーションの配信処理を示すフローチャートである。
【図41】スタブモジュール1531からリクエストブローカ1532に送るリクエストメッセージのデータ構造を示す図である。
【図42】リクエストブローカ1532がスタブモジュール1531に送るレスポンスメッセージのデータ構造を示す図である。
【図43】スタブモジュール1531におけるインタフェース関数の実装を示すフローチャートである。
【図44】リクエストブローカ1532が備えるインタフェースを示す図である。
【図45】リクエストブローカ1532が記憶管理するプラグインリストデータのデータ形式を示す図である。
【図46】リクエストブローカ1532におけるメイン処理を示すフローチャートである。
【図47】送信コンポーネント用プラグインモジュール1533が備えるインタフェースを示す図である。
【図48】IPP配信のためのプラグインモジュール1533が記憶管理するアドレスリストデータのレコード形式を示す図である。
【図49】IPP配信のためのプラグインモジュール1533におけるアドレス追加処理の実装を示すフローチャートである。
【図50】IPP配信のためのプラグインモジュール1533における配信処理の実装を示すフローチャートである。
【符号の説明】
370 インタフェース関数一式
380 インタフェース
411 プロトコル識別子
412 オペレーション識別子
413 パラメータ
441 メイン処理
442 プラグイン登録処理
443 プラグイン解除処理
451 プラグイン参照
452 配信プロトコル
453 ファイル形式
454 圧縮方式
455 解像度
470 インタフェース関数一式
471 配信処理
472 アドレスリスト取得処理
473 アドレス追加処理
474 アドレス削除処理
481 アドレス
482 配信パラメータ
1001 画像処理装置
1031 ファクシミリ装置
1040 プリンタ
1504 ユニバーサルセンドモジュール
1505 PRTモジュール
1506 Eメールモジュール
1507 データベースモジュール
1508 データプロセッサモジュール
1518 API
1529 リアルタイムオペレーティングシステム
1530 インタプリタ
1531 スタブモジュール
1532 リクエストブローカ
1533 プラグインモジュール
2000 コントローラユニット
2001 CPU
2007 システムバス
2008 画像バス
2010 ネットワーク
2021 コントローラ
2022 スキャンバッファ
2023 シリアルパラレル・パラレルシリアル変換
2024 パラレルシリアル・シリアルパラレル変換
2025 プリントバッファ
2030 画像回転部
2031 コントローラ
2032 画像回転部
2040 画像圧縮処理部
2041 コントローラ
2042 入力バッファ
2043 画像圧縮部
2045 出力バッファ
2080 スキャナ画像処理部
2090 プリンタ画像処理部
3200 送信メイン画面
3202 宛先表示領域
3203 詳細宛先数表示領域
3204 宛先スクロールボタン
3205 サブジェクト入力領域
3206 メッセージ入力領域
3207 ファイル名入力領域
3221 アドレス帳表示領域
3227 項目選択件数表示領域
3270 クラス詳細サブ画面
3340 プリントアウトサブ画面
3370 スキャン設定サブ画面
4051 アドレスブック
4050 UI
4051 アドレスブック
4100 リモートコピーアプリケーション
4150 ユニバーサルセンドモジュール
4150 同報配信アプリケーション
4200 ウエブプルプリントアプリケーション
4250 ウエブサーバアプリケーション
4550 メールサーバ
4650 ウェブサーバ
4700 ウェブブラウザ

Claims (5)

  1. 複数の画像処理部を有する画像形成装置において、
    ネイティブ機械命令を解析実行するプロセッサと、
    ネイティブ機械命令によって記述された第一のソフトウェアモジュール群の命令を前記プロセッサに実行させるオペレーティングシステムと、仮想機械命令を解釈し、その仮想機械命令に相当するネイティブ機械命令列を前記プロセッサに与え解釈実行させるための仮想機械であるインタプリタと、そのインタプリタにより解釈実行される仮想機械命令により実装されたオブジェクトリクエストブローカを記憶する記憶手段と、を備え、
    ネイティブ機械命令によって記述された前記第一のソフトウェアモジュール群には、複数の第一の送受信プログラムと、前記複数の第一の送受信プログラムが対応していないプロトコルの送信要求が入力された場合に起動されるプログラムであるスタブモジュールとが含まれ、
    前記オブジェクトリクエストブローカには、仮想機械命令によって記述された1つ以上の第二の送受信プログラムが登録可能であり、
    前記プロセッサが、
    前記オブジェクトリクエストブローカの制御下にて、前記複数の第一の送受信プログラムが対応していないプロトコルの送信要求を前記スタブモジュールから取得して、その送信要求が従うプロトコルを判定
    前記オブジェクトリクエストブローカの制御下にて、前記オブジェクトリクエストブローカに対して登録されている前記第二の送受信プログラムの中から前記判定したプロトコルをサポートする送受信プログラムを決定
    前記決定した送受信プログラムを用いて画像データの送信処理を実行する画像形成装置。
  2. 前記第二の送受信プログラムは、インターネットプリンティングプロトコルを制御する送受信プログラムである請求項1に記載の画像形成装置。
  3. 複数の画像処理部と、ネイティブ機械命令を解析実行するプロセッサと、ネイティブ機械命令によって記述された第一のソフトウェアモジュール群の命令を前記プロセッサに実行させるオペレーティングシステムと、仮想機械命令を解釈し、その仮想機械命令に相当するネイティブ機械命令列を前記プロセッサに与え解釈実行させるための仮想機械であるインタプリタと、そのインタプリタにより解釈実行される仮想機械命令により実装されたオブジェクトリクエストブローカを記憶する記憶手段と、を備え
    ネイティブ機械命令によって記述された前記第一のソフトウェアモジュール群には、複数の第一の送受信プログラムと、前記複数の第一の送受信プログラムが対応していないプロトコルの送信要求が入力された場合に起動されるプログラムであるスタブモジュールとが含まれ、
    前記オブジェクトリクエストブローカには、仮想機械命令によって記述された1つ以上の第二の送受信プログラムが登録可能である画像形成装置が実行する画像形成方法であって、
    前記プロセッサが、
    前記オブジェクトリクエストブローカの制御下にて、前記複数の第一の送受信プログラムが対応していないプロトコルの送信要求を前記スタブモジュールから取得して、その送信要求が従うプロトコルを判定する判定工程と、
    前記オブジェクトリクエストブローカの制御下にて、前記オブジェクトリクエストブローカに対して登録されている前記第二の送受信プログラムの中から前記判定工程で判定したプロトコルをサポートする送受信プログラムを決定する決定工程と、
    前記決定工程で決定した送受信プログラムを用いて画像データの送信処理を実行する実行工程と、を実行する画像形成方法。
  4. 前記第二の送受信プログラムは、インターネットプリンティングプロトコルを制御する送受信プログラムである請求項3に記載の画像形成方法。
  5. 複数の画像処理部と、ネイティブ機械命令を解析実行するプロセッサと、ネイティブ機械命令によって記述された第一のソフトウェアモジュール群の命令を前記プロセッサに実行させるオペレーティングシステムと、仮想機械命令を解釈し、その仮想機械命令に相当するネイティブ機械命令列を前記プロセッサに与え解釈実行させるための仮想機械であるインタプリタと、そのインタプリタにより解釈実行される仮想機械命令により実装されたオブジェクトリクエストブローカを記憶する記憶手段と、を備え
    ネイティブ機械命令によって記述された前記第一のソフトウェアモジュール群には、複数の第一の送受信プログラムと、前記複数の第一の送受信プログラムが対応していないプロトコルの送信要求が入力された場合に起動されるプログラムであるスタブモジュールとが含まれ、
    前記オブジェクトリクエストブローカには、仮想機械命令によって記述された1つ以上の第二の送受信プログラムが登録可能である画像形成装置において
    前記プロセッサに、
    前記オブジェクトリクエストブローカの制御下にて、前記複数の第一の送受信プログラムが対応していないプロトコルの送信要求を前記スタブモジュールから取得して、その送信要求が従うプロトコルを判定する判定工程と、
    前記オブジェクトリクエストブローカの制御下にて、前記オブジェクトリクエストブローカに対して登録されている前記第二の送受信プログラムの中から前記判定工程で判定したプロトコルをサポートする送受信プログラムを決定する決定工程と、
    前記決定工程で決定した送受信プログラムを用いて画像データの送信処理を実行する実行工程と、
    を実行させるためのプログラムを記録した記憶媒体。
JP2002051486A 2002-02-27 2002-02-27 画像形成装置、画像形成方法、および記憶媒体 Expired - Fee Related JP4227342B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002051486A JP4227342B2 (ja) 2002-02-27 2002-02-27 画像形成装置、画像形成方法、および記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002051486A JP4227342B2 (ja) 2002-02-27 2002-02-27 画像形成装置、画像形成方法、および記憶媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008228189A Division JP4862026B2 (ja) 2008-09-05 2008-09-05 画像形成装置、画像形成装置の制御方法、及び、制御プログラム

Publications (3)

Publication Number Publication Date
JP2003256216A JP2003256216A (ja) 2003-09-10
JP2003256216A5 JP2003256216A5 (ja) 2007-01-11
JP4227342B2 true JP4227342B2 (ja) 2009-02-18

Family

ID=28663446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002051486A Expired - Fee Related JP4227342B2 (ja) 2002-02-27 2002-02-27 画像形成装置、画像形成方法、および記憶媒体

Country Status (1)

Country Link
JP (1) JP4227342B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063810B2 (en) 2010-08-19 2015-06-23 Ricoh Company, Ltd. Information processing apparatus and information processing system

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4738773B2 (ja) 2004-08-06 2011-08-03 キヤノン株式会社 画像処理装置及びその制御方法
JP4920879B2 (ja) * 2004-08-06 2012-04-18 キヤノン株式会社 画像処理装置及びデータ処理装置
JP4538381B2 (ja) * 2005-06-23 2010-09-08 株式会社リコー 入出力管理装置、入出力管理方法、及び入出力管理プログラム
JP2007164526A (ja) 2005-12-14 2007-06-28 Canon Inc 情報処理装置及び方法
JP2008065479A (ja) * 2006-09-05 2008-03-21 Ricoh Co Ltd 画像処理装置、画像処理方法、及び、画像処理プログラム
JP5142551B2 (ja) 2007-02-22 2013-02-13 キヤノン株式会社 電子文書処理装置、電子文書処理方法、及びコンピュータプログラム
JP4974749B2 (ja) 2007-04-20 2012-07-11 キヤノン株式会社 情報処理装置、配信方法、その方法を実行する制御プログラム
US8719711B2 (en) 2007-08-28 2014-05-06 Ricoh Company, Ltd. Image forming apparatus, display screen customizing method and computer-readable storage medium
US8103702B2 (en) 2007-08-28 2012-01-24 Ricoh Company, Ltd. Information processing device, electronic manual managing method, and electronic manual managing program
US8334995B2 (en) 2007-09-19 2012-12-18 Sharp Laboratories Of America, Inc. Method and system for adaptive control of imaging node
JP2009093439A (ja) * 2007-10-09 2009-04-30 Canon Inc 情報処理装置とその制御方法
JP2009110437A (ja) * 2007-10-31 2009-05-21 Ricoh Co Ltd 情報処理装置及び情報処理方法
JP5132260B2 (ja) 2007-10-31 2013-01-30 株式会社リコー 画像処理装置、画像処理方法、画像処理プログラム
JP5094551B2 (ja) 2008-05-20 2012-12-12 キヤノン株式会社 画像形成装置およびその制御方法ならびにそのプログラムおよび記憶媒体
KR101505660B1 (ko) 2008-10-27 2015-03-24 사토 홀딩스 가부시키가이샤 프로그램 스크립팅 언어를 이용하는 라벨 프린터 api

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063810B2 (en) 2010-08-19 2015-06-23 Ricoh Company, Ltd. Information processing apparatus and information processing system
US9672027B2 (en) 2010-08-19 2017-06-06 Ricoh Company, Ltd. Information processing apparatus and information processing system

Also Published As

Publication number Publication date
JP2003256216A (ja) 2003-09-10

Similar Documents

Publication Publication Date Title
US7031003B2 (en) Image processing apparatus, control method of image processing apparatus, and storage medium
JP4227342B2 (ja) 画像形成装置、画像形成方法、および記憶媒体
JP2001027986A (ja) データ処理装置及び処理部選択方法
JP2000083232A (ja) 通信装置、情報処理装置、通信システム、通信方法、及び記憶媒体
JP2001136352A (ja) 画像入力装置及びその制御方法
JP2006344128A (ja) 画像処理装置
JP2000358144A (ja) 画像入出力システム及びその制御方法
JP2001251454A (ja) 画像処理装置並びに画像処理装置の制御方法および記憶媒体
JP4077958B2 (ja) データ処理装置、方法及びプログラムを格納した記憶媒体
JP4174506B2 (ja) データ処理装置、方法及びプログラムを格納した記憶媒体
JP4862026B2 (ja) 画像形成装置、画像形成装置の制御方法、及び、制御プログラム
JP3957906B2 (ja) 情報処理装置および方法
JP2000115277A (ja) 符号化復号化装置及び画像形成システム
JPH11196212A (ja) 画像処理装置及びその制御方法
JP2001339561A (ja) 複合画像処理装置及びネットワーク複写におけるリカバリー方法
JP3814452B2 (ja) 画像入出力装置及びその制御方法
JP3950530B2 (ja) 画像処理装置及びその制御方法
JP2001339549A (ja) 複合画像処理装置及びネットワーク転送制御方法
JP2003219090A (ja) 画像配信装置及び画像配信方法
JP3990887B2 (ja) 情報処理装置、ジョブ処理方法、記憶媒体
JP2003167705A (ja) 画像処理システム、情報処理装置、画像処理装置、画像出力制御方法、記憶媒体、及びプログラム
JPH11327376A (ja) リモートコピーシステムおよびリモートコピー方法
JP2006109271A (ja) 画像通信装置、通信方法、ならびにプログラム、記憶媒体
JP4377141B2 (ja) 画像形成装置及び印刷データ処理プログラム
JPH11355494A (ja) 画像入出力装置と画像データの出力方法、及び情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080609

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080708

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080905

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081024

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081125

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081128

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131205

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees