JP2003256216A - ソフトウェア組込み型電子装置 - Google Patents

ソフトウェア組込み型電子装置

Info

Publication number
JP2003256216A
JP2003256216A JP2002051486A JP2002051486A JP2003256216A JP 2003256216 A JP2003256216 A JP 2003256216A JP 2002051486 A JP2002051486 A JP 2002051486A JP 2002051486 A JP2002051486 A JP 2002051486A JP 2003256216 A JP2003256216 A JP 2003256216A
Authority
JP
Japan
Prior art keywords
image
module
software
request
control means
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.)
Granted
Application number
JP2002051486A
Other languages
English (en)
Other versions
JP2003256216A5 (ja
JP4227342B2 (ja
Inventor
Masahito Yamamoto
雅仁 山本
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

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 柔軟で動的な機能拡張が可能なソフトウェア
組込み型電子装置を提供する。 【解決手段】 ソフトウェア組込み型電子装置におい
て、第1のソフトウェアモジュール群の各命令を逐次的
にプロセッサに解釈実行させるためのオペレーティング
システム手段と、第2のソフトウェアモジュール群をメ
モリ上に動的に配置し、ネイティブ機械命令列をプロセ
ッサに与え解釈実行させるための仮想オペレーティング
システム手段と、第1のソフトウェアモジュール群に含
まれるソフトウェアモジュールであって、制御対象を制
御するための第1の制御手段と、第1の制御手段の制御
の一部を処理するための第2の制御手段と、第1の制御
手段と第2の制御手段との間で要求と応答をインタフェ
ースするためのインタフェース手段と、を備え、第2の
制御手段は動的に可換である。

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】
【課題を解決するための手段】上記目的を達成するため
に本発明にあっては、ネイティブ機械命令を解析実行す
るプロセッサと、前記プロセッサによって解釈される一
連のネイティブ機械命令列および前記プロセッサが読み
書きの対象とするデータを記憶するためのメモリと、前
記プロセッサの入出力に接続し前記プロセッサによって
制御される制御対象と、を有するソフトウェア組込み型
電子装置において、前記ネイティブ機械命令列によって
記述された第1のソフトウェアモジュール群の各命令を
逐次的に前記プロセッサに解釈実行させるためのオペレ
ーティングシステム手段と、前記第1のソフトウェアモ
ジュール群に含まれるソフトウェアモジュールであっ
て、仮想的な機械命令の列によって記述された第2のソ
フトウェアモジュール群を前記メモリ上に動的に配置
し、前記仮想機械命令列の各仮想機械命令を逐次的に解
釈して仮想機械命令に相当するネイティブ機械命令列を
前記プロセッサに与え解釈実行させるための仮想オペレ
ーティングシステム手段と、前記第1のソフトウェアモ
ジュール群に含まれるソフトウェアモジュールであっ
て、前記制御対象を制御するための第1の制御手段と、
前記第2のソフトウェアモジュール群に含まれるソフト
ウェアモジュールであって、前記第1の制御手段の制御
の一部を処理するための第2の制御手段と、前記第1の
制御手段と前記第2の制御手段との間で要求と応答をイ
ンタフェースするためのインタフェース手段と、を備
え、前記第2の制御手段は動的に可換であることを特徴
とする。
【0023】これにより、動的なデータ構造やアルゴリ
ズムの実装と部分的なソフトウェアモジュールのインク
リメンタルリンクに最適なインタプリタをシステム内部
の仮想的なオペレーティングシステムとして導入し、プ
ロセッサのネイティブ機械命令によって記述されたソフ
トウェアのプラグインモジュールをインタプリタ上で動
的に追加することが可能となり、柔軟で動的な機能拡張
が可能なソフトウェア組込み型電子装置を提供すること
ができる。
【0024】前記インタフェース手段は、前記第1のソ
フトウェアモジュール群に含まれるソフトウェアモジュ
ールであるスタブ手段と、前記第2のソフトウェアモジ
ュール群に含まれるソフトウェアモジュールであるリク
エストブローカ手段と、を有し、前記スタブ手段は前記
第1の制御手段が前記スタブ手段に与えた要求を前記リ
クエストブローカ手段に転送し、さらに前記リクエスト
ブローカ手段は前記要求を前記第2の制御手段に与え、
前記リクエストブローカ手段は前記第2の制御手段が前
記リクエストブローカ手段に与えた応答を前記スタブ手
段に転送し、さらに前記スタブ手段は前記応答を前記第
1の制御手段に与えることが好適である。
【0025】前記スタブ手段と前記リクエストブローカ
手段との間の要求と応答の転送は、プロセス間通信機構
によって実現されることが好適である。
【0026】ここで、プロセス間通信機構としては、例
えば、メッセージキューやソケット等を用いてもよい。
【0027】1つの前記リクエストブローカ手段は複数
の前記第2の制御手段と組み合わされ、前記リクエスト
ブローカ手段は前記スタブ手段から転送された要求の内
容に応じて、複数の前記第2の制御手段中の1つに選択
的に要求を与えることが好適である。
【0028】前記仮想オペレーティング手段は、規定の
命令集合からなる命令列を読み込んで各命令を逐次的に
解釈実行するインタプリタであることが好適である。
【0029】前記制御対象は、物理的回路または仮想回
路によって接続された画像入出力手段であることが好適
である。
【0030】ここで、物理的回路とは、例えば、ローカ
ルバスを含み、仮想回路とは、例えば、ローカルエリア
ネットワーク、インターネット、イントラネット等のネ
ットワーク全般を含み、有線通信だけでなく無線通信に
よる場合にも適用できる。また、画像入出力手段として
は、イメージスキャナ、デジタルカメラ、プリンタ、フ
ァクス、画像データベース、電子メールサーバ、イメー
ジディスプレイ等の装置が含まれる。
【0031】
【発明の実施の形態】以下に図面を参照して、この発明
の好適な実施の形態を例示的に詳しく説明する。ただ
し、この実施の形態に記載されている構成部品の寸法、
材質、形状、その相対配置などは、特に特定的な記載が
ない限りは、この発明の範囲をそれらのみに限定する趣
旨のものではない。
【0032】初めに、本発明の装置及びその動作につい
て詳細に説明する。
【0033】[ハードウェア](全体構成)画像処理装
置1001の全体構成図を図3に示す。
【0034】コントローラユニット2000は、イメー
ジデータ入力手段の一例である画像入力デバイスとして
のスキャナ2070や、イメージデータ出力手段の一例
である画像出力デバイスとしてのプリンタ2095と接
続する一方、LAN2011や公衆回線(WAN)20
51と接続することで、画像情報やデバイス情報の入出
力を行う。
【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と画像データを高速で転送する画像バス2
008を接続し、データ構造を変換するバスブリッジで
ある。
【0044】画像バス2008は、PCIバスまたはI
EEE1394で構成される。画像バス2008上には
以下のデバイスが配置される。
【0045】ラスタイメージプロセッサ(RIP)20
60は、PDLコードをビットマップイメージに展開す
る。
【0046】デバイスI/F部2020は、画像入出力
デバイスであるスキャナ2070やプリンタ2095と
コントローラユニット2000を接続し、画像データの
同期系/非同期系の変換を行う。
【0047】スキャナ画像処理部2080は、入力画像
データに対し補正、加工、編集を行う。プリンタ画像処
理部2090は、プリント出力画像データに対して、プ
リンタの補正、解像度変換等を行う。
【0048】画像回転処理部2030は、画像データの
回転を行う。
【0049】画像圧縮処理部2040は、多値画像デー
タはJPEG(Joint PhotographicExperts Group)、
2値画像画像データはJBIG(Joint Bi-level Image
Experts Group)、MMR(Modified Modified REA
D)、MH等の圧縮伸長処理を行う。
【0050】(画像入出力部)画像入出力デバイスを図
4で示す。図4は、図3で構成を示した画像処理装置の
外観図である。
【0051】画像入力デバイスであるスキャナ部207
0は、原稿となる紙上の画像を照明し、CCDラインセ
ンサ(図示せず)で走査することで、ラスタイメージデ
ータとして電気信号に変換する。
【0052】原稿用紙は原稿フィーダ2072のトレイ
2073にセットし、装置使用者が操作部2012から
読み取り起動指示することにより、コントローラCPU
2001がスキャナ2070に指示を与え(2071、
図3参照)、フィーダ2072は原稿用紙を1枚ずつフ
ィードし原稿画像の読み取り動作を行う。
【0053】画像出力デバイスであるプリンタ部209
5は、ラスタイメージデータを用紙上の画像に変換する
部分であり、その方式は感光体ドラムや感光体ベルトを
用いた電子写真方式、微少ノズルアレイからインクを吐
出して用紙上に直接画像を印字するインクジェット方式
等があるが、どの方式でも構わない。プリント動作の起
動は、コントローラCPU2001からの指示によって
開始する。
【0054】プリンタ部2095には、異なる用紙サイ
ズまたは異なる用紙向きを選択できるように複数の給紙
段を持ち、それに対応した用紙カセット2101、21
02、2103、2104がある。
【0055】また、排紙トレイ2111は印字し終わっ
た用紙を受けるものである。
【0056】(操作部)操作部2012の構成を図5に
示す。
【0057】LCD表示部2013は、LCD上にタッ
チパネルシートが貼られており、システムの操作画面を
表示するとともに、表示してあるキーが押されるとその
位置情報をコントローラCPU2001に伝える。
【0058】スタートキー2014は、原稿画像の読み
取り動作を開始する時などに用いる。スタートキー20
14中央部には、緑と赤の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は、ネットワーク2
011あるいは公衆回線2051から来た画像データ
を、プリンタ2095の解像度に変換するための解像度
変換を行う。
【0073】スムージング処理部2093は、解像度変
換後の画像データのジャギー(斜め線等の白黒境界部に
現れる画像のがさつき)を滑らかにする処理を行う。
【0074】(画像圧縮部)画像圧縮処理部2040の
構成を図8に示す。
【0075】画像バスI/Fコントローラ2041は、
画像バス2008と接続し、そのバスアクセスシーケン
スを制御する働き、入力バッファ2042・出力バッフ
ァ2045とのデータのやりとりを行うためのタイミン
グ制御及び、画像圧縮部2043に対するモード設定な
どの制御を行う。以下に画像圧縮処理部の処理手順を示
す。
【0076】画像バス2008を介して、CPU200
1から画像バスI/Fコントローラ2041に画像圧縮
制御のための設定を行う。この設定により画像バスI/
Fコントローラ2041は画像圧縮部2043に対して
画像圧縮に必要な設定(例えば、MMR圧縮・JBIG
伸長等)を行う。
【0077】必要な設定を行った後に、再度CPU20
01から画像バスI/Fコントローラ2041に対して
画像データ配信の許可を行う。この許可に従い、画像バ
スI/Fコントローラ2041はRAM2002もしく
は画像バス2008上の各デバイスから画像データの転
送を開始する。
【0078】受け取った画像データは、入力バッファ2
042に一時格納され、画像圧縮部2043の画像デー
タ要求に応じて一定のスピードで画像を転送する。この
際、入力バッファ2042は、画像バスI/Fコントロ
ーラ2041と、画像圧縮部2043両者の間で、画像
データを転送できるかどうかを判断し、画像バス200
8からの画像データの読み込み及び、画像圧縮部204
3への画像の書き込みが不可能である場合は、データの
転送を行わないような制御を行う(以後このような制御
をハンドシェークと呼称する)。
【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を介して、CPU200
1から画像バスI/Fコントローラ2031に画像回転
制御のための設定を行う。この設定により画像バスI/
Fコントローラ2041は画像回転部2032に対して
画像回転に必要な設定(たとえば画像サイズや回転方向
・角度等)を行う。
【0086】必要な設定を行った後に、再度CPU20
01から画像バスI/Fコントローラ2031に対して
画像データ配信の許可を行う。この許可に従い、画像バ
スI/Fコントローラ2031はRAM2002もしく
は画像バス2008上の各デバイスから画像データの転
送を開始する。尚、ここでは32bitをそのサイズと
し回転を行う画像サイズを32×32(bit)とし、
又、画像バス2008上に画像データを転送させる際に
32bitを単位とする画像転送を行うものとする(扱
う画像は2値を想定する)。
【0087】上述のように、32×32(bit)の画
像を得るためには、上述の単位データ転送を32回行う
必要があり、且つ不連続なアドレスから画像データを転
送する必要がある(図10参照)。
【0088】不連続アドレッシングにより転送された画
像データは、読み出し時に所望の角度に回転されている
ように、RAM2033に書き込まれる。例えば、90
度反時計方向回転であれば、最初に転送された32bi
tの画像データを、図11のようにY方向に書き込んで
いく。読み出し時にX方向に読み出すことで、画像が回
転される。
【0089】32×32(bit)の画像回転(RAM
2033への書き込み)が完了した後、画像回転部20
32はRAM2033から上述した読み出し方法で画像
データを読み出し、画像バスI/Fコントローラ203
1に画像を転送する。
【0090】回転処理された画像データを受け取った画
像バスI/Fコントローラ2031は、連続アドレッシ
ングを以て、RAM2002もしくは画像バス2008
上の各デバイスにデータを転送する。
【0091】こうした一連の処理は、CPU2001か
らの処理要求が無くなるまで(必要なページ数の処理が
終わったとき)繰り返される。
【0092】(デバイスI/F部)デバイスI/F部2
020の構成を図12に示す。
【0093】画像バスI/Fコントローラ2021は、
画像バス2008と接続し、そのバスアクセスシーケン
スを制御する働きと、デバイスI/F部2020内の各
デバイスの制御及びタイミングを発生させる。また、外
部のスキャナ2070及びプリンタ2095への制御信
号を発生させる。
【0094】スキャンバッファ2022は、スキャナ2
070から送られてくる画像データを一時保存し、画像
バス2008に同期させて画像データを出力する。
【0095】シリアルパラレル・パラレルシリアル変換
2023は、スキャンバッファ2022に保存された画
像データを順番に並べて、あるいは分解して、画像バス
2008に転送できる画像データのデータ幅に変換す
る。
【0096】パラレルシリアル・シリアルパラレル変換
2024は、画像バス2008から転送された画像デー
タを分解して、あるいは順番に並べて、プリントバッフ
ァ2025に保存できる画像データのデータ幅に変換す
る。
【0097】プリントバッファ2025は、画像バス2
008から送られてくる画像データを一時保存し、プリ
ンタ2095に同期させて画像データを出力する。
【0098】画像スキャン時の処理手順を以下に示す。
【0099】スキャナ2070から送られてくる画像デ
ータをスキャナ2070から送られてくるタイミング信
号に同期させて、スキャンバッファ2022に保存す
る。そして、画像バス2008がPCIバスの場合に
は、バッファ内に画像データが32ビット以上入ったと
きに、画像データを先入れ先出しで32ビット分、バッ
ファからシリアルパラレル・パラレルシリアル変換20
23に送り、32ビットの画像データに変換し、画像バ
スI/Fコントローラ2021を通して画像バス200
8上に転送する。
【0100】また、画像バス2008がIEEE139
4の場合には、バッファ内の画像データを先入れ先出し
で、バッファからシリアルパラレル・パラレルシリアル
変換2023に送り、シリアル画像データに変換し、画
像バスI/Fコントローラ2021を通して画像バス2
008上に転送する。
【0101】画像プリント時の処理手順を以下に示す。
【0102】画像バス2008がPCIバスの場合に
は、画像バスから送られてくる32ビットの画像データ
を画像バスI/Fコントローラ2021で受け取り、パ
ラレルシリアル・シリアルパラレル変換2024に送
り、プリンタ2095の入力データビット数の画像デー
タに分解し、プリントバッファ2025に保存する。
【0103】また、画像バス2008がIEEE139
4の場合には、画像バスから送られてくるシリアル画像
データを画像バスI/Fコントローラ2021で受け取
り、パラレルシリアル・シリアルパラレル変換2024
に送り、プリンタ2095の入力データビット数の画像
データに変換し、プリントバッファ2025に保存す
る。そして、プリンタ2095から送られてくるタイミ
ング信号に同期させて、バッファ内の画像データを先入
れ先出しで、プリンタ2095に送る。
【0104】[ソフトウェア]次に、図3の装置でCP
U2001によって実行されるプログラム、及びそのプ
ログラムを実行することで遂行される機能などを説明す
る。
【0105】(システム全体)本発明の画像配信装置を
含むネットワークシステムの構成を図1に示す。
【0106】画像処理装置1001は、図3に示した本
発明に係る画像配信装置の一例で、スキャナとプリンタ
とを含み、スキャナから読み込んだ画像をローカルエリ
アネットワーク1010(以下LAN)に流したり、L
AN1010から受信した画像をプリンタによりプリン
トアウトできる。
【0107】また、スキャナから読んだ画像を図示しな
いFAX送信手段により、PSTNまたはISDN等の
公衆回線1030に送信したり、PSTNまたはISD
Nから受信した画像をプリンタ1040によりプリント
アウトできる。
【0108】データベースサーバ1002は、画像処理
装置1001により読み込んだ2値画像及び多値画像を
データベースとして管理する。
【0109】データベースクライアント1003は、デ
ータベースサーバ1002に保存されている画像データ
を閲覧/検索等できる。
【0110】電子メールサーバ1004は、画像処理装
置1001により読み取った画像を電子メールに添付さ
れた画像として受け取ることができる。
【0111】電子メールクライアント1005は、電子
メールサーバ1004の受け取ったメールを受信し閲覧
したり、電子メールを送信したりできる。
【0112】WWWサーバ1006は、HTML文書を
LANに提供する。
【0113】画像処理装置1001は、WWWサーバ1
006で提供されるHTML文書をプリントアウトでき
る。
【0114】ルータ1011は、LAN1010をイン
ターネット/イントラネット1012と連結する。
【0115】インターネット/イントラネット1012
は、前述した画像処理装置1001,データベースサー
バ1002,WWWサーバ1006,電子メールサーバ
1004のそれぞれと同様の装置が、それぞれ102
0,1021,1022,1023として接続されてい
る。
【0116】一方、画像処理装置1001は、PSTN
またはISDN1030を介してファクシミリ装置10
31と送受信可能になっている。また、LAN1010
上にプリンタ1040も連結されており、画像処理装置
1001により読み取った画像をプリントアウト可能な
ように構成されている。
【0117】(ソフトウェアブロック全体構成)図2
は、画像処理装置1001のソフトウェアブロック図で
ある。
【0118】ユーザインタフェース(UI)1501
は、オペレータが本複合機の各種操作・設定を行う際、
機器との仲介を行うモジュールである。本モジュール
は、オペレータの繰作に従い、後述の各種モジュールに
入力情報を転送し処理の依頼、あるいはデータの設定等
を行う。
【0119】アドレスブック1502は、データの送付
先、通信先等を管理するデータベースモジュールであ
る。アドレスブック1502の内容は、UI1501か
らの操作によりデータの追加、削除、取得が行われ、オ
ペレータの操作により後述の各モジュールにデータの送
付・通信先情報を与えるものとして使用されるものであ
る。
【0120】ウエブサーバモジュール1503は、図外
のウエブクライアントからの要求により、本複合機の管
理情報を通知するために使用される。
【0121】管理情報は、後述のコントロールAPI
(Application Programming Interface)1518を介
して読み取られ、後述のHTTP1512、TCP/I
P1516、ネットワークドライバ1517を介してウ
エブクライアントに通知される。
【0122】ユニバーサルセンドモジュール1504
は、画像データの配信を司るモジュールであり、UI1
501によりオペレータに指示された画像データを、同
様に指示された通信(出力)先に配信するものである。
また、オペレータにより、本機器のスキャナ機能を使用
し配信する画像データの生成が指示された場合は、後述
のコントロールAPI1518を介して機器を動作さ
せ、データの生成を行う。
【0123】PRTモジュール1505は、ユニバーサ
ルセンドモジュール1504内で出力先にプリンタが指
定された際に実行されるモジュールである。
【0124】Eメールモジュール1506は、ユニバー
サルセンドモジュール1504内で通信先にE−メール
アドレスが指定された際に実行されるモジュールであ
る。
【0125】データベースモジュール1507は、ユニ
バーサルセンドモジュール1504内で出力先にデータ
ベースが指定された際に実行されるモジュールである。
【0126】データプロセッサモジュール1508は、
ユニバーサルセンドモジュール1504内で出力先に画
像処理装置1001と同様の複合機が指定された際に実
行されるモジュールである。
【0127】リモートコピースキャンモジュール150
9は、本装置のスキャナ機能を使用し、ネットワーク等
で接続された他の複合機を出力先とし、本複合機単体で
実現しているコピー機能と同等の処理を行うモジュール
である。
【0128】リモートコピープリントモジュール151
0は、本装置のプリンタ機能を使用し、ネットワーク等
で接続された他の複合機を入力先とし、本複合機単体で
実現しているCopy機能と同等の処理を行うモジュー
ルである。
【0129】ウエブプルプリントモジュール1511
は、インターネットまたはイントラネット上の各種ホー
ムページの情報を読み出し、印刷するモジュールであ
る。
【0130】HTTPモジュール1512は、本複合機
がHTTPにより通信する際に使用されるモジュールで
あり、後述のTCP/IPモジュール1516によりウ
ェブサーバ1503、ウエブプルプリントモジュール1
511に通信を提供するものである。
【0131】lprモジュール1513は、後述のTC
P/IPモジュール1516によりユニバーサルセンド
モジュール1504内のPRTモジュール1505に通
信を提供するものである。
【0132】SMTPモジュール1514は、後述のT
CP/IPモジュール1516によりユニバーサルセン
ドモジュール1504内のE−mailモジュール15
06に通信を提供するものである。
【0133】サリュテーションマネージャ(SLM)モ
ジュール1515は、後述のTCP/IP1516モジ
ュールによりユニバーサルセンドモジュール1504内
のデータベースモジュール1507、DPモジュール1
508、及びリモートコピースキャンモジュール150
9、リモートプリントモジュール1510に通信を提供
するものである。
【0134】TCP/IPモジュール1516は、前述
の各種モジュールに、後述のネットワークドライバ15
17によりネットワーク通信を提供するものである。
【0135】ネットワークドライバ1517は、ネット
ワークとの物理的な接続を制御するものである。
【0136】コントロールAPI1518は、ユニバー
サルセンドモジュール1504等の上流モジュールに対
し、後述のジョブマネージャ1519等の下流モジュー
ルとのインタフェースを提供するものであり、上流、及
び下流のモジュール間の依存関係を軽減しそれぞれの流
用性を高めるものである。
【0137】ジョブマネージャ1519は、前述の各種
モジュールよりコントロールAPI1518を介して指
示される処理を解釈し、後述の各モジュールに指示を与
えるものである。また、本モジュールは、本複合機内で
実行されるハード的な処理を一元管理するものである。
【0138】CODECマネージャ1520は、ジョブ
マネージャ1519が指示する処理の中でデータの各種
圧縮・伸長を管理・制御するものである。
【0139】FBEエンコーダ1521は、ジョブマネ
ージャ1519、スキャナマネージャ1524により実
行されるスキャン処理により読み込まれたデータをFB
Eフォーマットにより圧縮するものである。
【0140】JPEG−CODEC1522は、ジョブ
マネージャ1519、スキャナマネージャ1524によ
り実行されるスキャン処理、及びプリントマネージャ1
526により実行される印刷処理において、読み込まれ
たデータのJPEG圧縮及び印刷データのJPEG展開
処理を行うものである。
【0141】MMR−CODEC1523は、ジョブマ
ネージャ1519、スキャナマネージャ1524により
実行されるスキャン処理、及びプリントマネージャ15
26により実行される印刷処理において、読み込まれた
データの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)化し、SLM4
103に通して、ネットワーク上のプリンタ機器に送信
する。
【0153】SLM4103とは、サリュテーションマ
ネージャ(またはスマートリンクマネージャ)と呼ばれ
る機器制御情報などを含んだネットワークプロトコルの
一種である。
【0154】(同報配信アプリケーション)同報配信ア
プリケーション4150は、前記リモートコピーアプリ
ケーション4100と違い、一度の画像走査で読み取っ
た画像を複数の配信宛先に送信することが可能である。
また、配信先もプリンタ機器にとどまらず、いわゆるサ
ーバコンピュータにも直接配信可能である。以下、配信
先に従って順に説明する。
【0155】配信先の機器が、例えばネットワークプリ
ンタプロトコルである公知のLPD(Line Printer Dae
mon)、プリンタ制御コマンドとして公知のLIPSを
処理可能だとアドレスブック4051より判別された場
合、アドレスブック4051より判別した画像解像度に
従って画像読み取りを行い、本実施例ではその画像デー
タを公知のFBE(First Binary Encoding)を用いて
圧縮し、さらにLIPSコード化して、公知のネットワ
ークプリンタにおけるリモート印刷プロトコルであるL
PR(Line Printer Daemon Protocol)に従い相手機器
に配信する。
【0156】配信先の機器がSLMで通信可能なサーバ
機器の場合、アドレスブック4051より、サーバアド
レス、サーバ内のフォルダの指定を判別し、リモートコ
ピーアプリケーションと同様に、スキャナにより読み取
った2値画像をMMR圧縮を用いて圧縮し、それをTI
FF化し、SLMに従い配信し、ネットワーク上のサー
バ機器の特定のフォルダに格納する事が可能である。
【0157】また、本実施例の画像処理装置では、相手
機器であるサーバがJPEG圧縮された多値画像を処理
可能だと判別した場合、2値画像と同様に、多値読み取
りした画像を公知のJPEG圧縮を用いて、やはり公知
のJFIF化し、SLMに従い配信し、ネットワーク上
のサーバ機器の特定のフォルダに格納する事が可能であ
る。
【0158】配信先の機器がEメールサーバである場
合、アドレスブック4051に記載されたメールアドレ
スを判別し、スキャナにより読み取った2値画像をMM
R圧縮を用いて圧縮し、それをTIFF化し、SMTP
(Simple Mail Transfer Protcol)4153に従い、E
メールサーバに配信する。その後の配信は、メールサー
バ4550によって実行される。
【0159】(ウエブプルプリントアプリケーション)
ウエブプルプリントアプリケーション4200は、HT
TPモジュールを介して指定したURLのウェブサーバ
4650からHTML文書等のデータを読み込み、それ
を例えばポストスクリプト(PS)形式のデータとして
プリント出力する。
【0160】(ウエブサーバアプリケーション)ウエブ
サーバアプリケーション4250は、ウェブブラウザ4
700に対して、HTML等のデータを提供する。
【0161】上述のアプリケーションが、操作部からの
オペレータの操作に従って実行される。
【0162】[画像処理装置の操作]画像処理装置10
01の繰作部の構成を図13に示す。LCD表示部(3
001)は、LCD上にタッチパネルシートが貼られて
おり、システムの操作画面を表示するとともに、表示し
てあるキーが押されるとその位置情報をコントローラC
PUに伝える。
【0163】スタートキー3002は原稿画像の読み取
り動作を開始する時などに用いる。スタートキー中央部
には、緑と赤の2色LEDがあり、その色によってスタ
ートキーが使える状態にあるかどうかを示す。ストップ
キー3003は、稼働中の動作を止める働きをする。I
Dキー3004は、使用者のユーザIDを入力するとき
に用いる。リセットキー3005は、操作部からの設定
を初期化するときに用いる。
【0164】以下で操作部に表示される各画面について
詳細に説明する。
【0165】(操作画面(図14))画像処理装置10
01が提供する機能は、コピー(COPY)/送信(S
END)/検索(RETRIEVE)/タスク(TAS
KS)/管理(MGMNT)/構成(CONFIG)の
6つの大きなカテゴリーに分かれており、これらは操作
画面3010上の上部に表示される6つのメインタブ
(3011〜3016)に対応している。
【0166】これらのメインタブを押すことにより、各
カテゴリーの画面への切り替えが行われる。他カテゴリ
ーヘの切り換えが許可されない場合は、メインタブの表
示色が変わり、メインタブを押しても反応しない。
【0167】(送信画面(図16〜))送信画面表示時
にスタートボタンが押されると、スキャナが動作し、読
み取った画像データを設定された宛先に指定された送信
方法で送信する処理が開始される。
【0168】送信メイン画面3200(図16)は、宛
先表示領域3202、詳細宛先数表示領域3203、宛
先スクロールボタン3204、アドレスブックボタン3
208、新規ボタン3209、編集ボタン3210、削
除ボタン3211、サブジェクト入力領域3205、メ
ッセージ入力領域3206、ファイル名入力領域320
7、カバーページチェックボタン3212、HD書き込
みチェックボタン3213、印刷出力チェックボタン3
214、スキャン設定ボタン3215から構成される。
【0169】リセットを含む初期化時には、図17の画
面3201に示すように、宛先表示領域には1つの宛先
も表示されず、操作説明画面が表示される。
【0170】宛先表示領域3202には入力された宛先
の一覧が表示される。入力は順次末尾に追加される。
【0171】詳細宛先数表示領域3203には現在設定
されている宛先数が表示される。宛先表示領域からある
宛先を選択した後、削除ボタン3211を押すと、選択
されていた宛先が削除される。
【0172】サブジェクト入力領域3205、メッセー
ジ入力領域3206、ファイル名入力領域3207を押
すと、フルキーボードが表示され、それぞれの入力が可
能になる。
【0173】(アドレスブックサブ画面(図18))ア
ドレスブックボタン3208を押すと、アドレスブック
サブ画面3220が表示される。アドレス帳表示領域3
221で選択マーク3232を付けられた宛先は、OK
ボタン3231を押すことにより、送信メイン画面の宛
先表示領域3202に追加される。
【0174】アドレス帳の表示はソート項目設定ボタン
(3224〜3226)を押すことによりクラス別、名
前昇順、名前降順にソートされる。項目選択件数表示領
域3227には選択マークの付けられた項目数を表示す
る。
【0175】OKボタン3231またはキャンセルボタ
ン3230が押されると、アドレスブックサブ画面はク
ローズされ、送信メイン画面が表示される。
【0176】アドレス帳の中の1つの項目を選択した状
態で詳細ボタン3229を押すと、詳細サブ画面323
5(図19)が表示される。詳細サブ画面には選択され
た項目の情報としてアドレス帳から得られるすべての情
報3236が表示される。
【0177】(詳細宛先サブ画面(図20〜図25))
送信メイン画面の新規ボタン3209を押すとPers
onクラス詳細サブ画面3270(図20参照)が表示
され、新しい宛先の設定が可能になる。宛先の入力は送
信方法(電子メール、ファックス、プリンタ、FTP)
に対応した送信方法選択ボタン(3271〜3274)
を押すか、詳細宛先入力領域(3275〜3278)を
押すと、ファックスの場合はテンキーボード3050
(図22)、その他はフルキーボード3040(図2
1)が表示され、入力可能になる。3279〜3282
はそれぞれの送信方法の送信オプションを行うためのボ
タンであるが、ここでは詳細な説明は省略する。
【0178】送信メイン画面でPersonクラスの宛
先が選択されている状態で編集ボタン3210が押され
た場合もPersonクラス詳細サブ画面3290(図
23)が表示される。詳細宛先入力領域(3275〜3
278)の該当する領域に、選択された宛先の詳細が表
示され、前述した方法でキーボードを表示すると、宛先
の編集が可能になる。
【0179】送信メイン画面でData Baseクラ
スの宛先が選択されている状態で編集ボタン3210が
押された場合、Data Baseクラス詳細サブ画面
(図24)が表示される。データベースクラス詳細サブ
画面にはデータベース名3311、フォルダリスト33
12が表示される。
【0180】送信メイン画面でGroupクラスの宛先
が選択されている状態で編集ボタン3210が押された
場合Groupクラス詳細サブ画面3320(図25)
が表示される。Groupクラス詳細サブ画面にはグル
ープメンバー表示3321がされる。
【0181】(HD設定サブ画面(図26))HD書き
込みチェックボタン3213を押すと、ハードディスク
に送信するための設定を行うHD設定サブ画面3330
が表示される。ここでは書き込むべきフォルダの指定等
を行う。
【0182】(印刷出力サブ画面(図27〜図29))
印刷出力チェックボタン3214を押すと、プリントア
ウトサブ画面3340(図27)が表示される。プリン
トアウトサブ画面ではプリント枚数、紙サイズ、拡大縮
小率、両面印刷、ソート、解像度などを設定する。紙サ
イズ選択ボタン3345を押すと、紙サイズの一覧33
60(図28)が表示され、そこから選択する。ソータ
選択ボタン3350を押すと、選択可能なソータ一覧3
365(図29)が表示される。
【0183】(スキャン設定サブ画面(図30〜図3
3))スキャン設定ボタン3215を押すと、スキャン
設定サブ画面3370が表示される。スキャン設定サブ
画面内のプリセットモード選択領域3371からスキャ
ン設定を1つ選択すると、それに対応するあらかじめ設
定された解像度、スキャンモード、濃度がそれぞれの表
示領域(3377、3379、3381)に表示され
る。これらの値は選択ボタン(3376、3378、3
380)により手動で変えることが可能である。
【0184】図31のスキャン設定サブ画面3390
は、紙サイズ選択一覧をプルダウン表示した状態の画面
で、この一覧から使用する紙のサイズ、向きを選択す
る。図32の画面3391、図33の画面3392は、
それぞれ、解像度、スキャンモード一覧をプルダウン表
示した状態を示している。
【0185】[プラグインの詳細な説明]図34は、同
報配信アプリケーション4150に対して、RFC29
10、RFC2911等で公知のInternet P
rinting Protocol(IPP)プラグイ
ンモジュールを追加することで、ユニバーサルセンドモ
ジュールが新たにIPP配信プロトコルによる同報配信
をサポートしている状態を例示するアプリケーションブ
ロック図である。
【0186】IPPプラグインモジュールが組み込まれ
たユニバーサルセンドモジュールは、配信先の機器が、
ネットワークプリンタプロトコルである公知のIPP、
プリンタ制御コマンドとして公知のLIPSを処理可能
だとアドレスブック4051より判別された場合、アド
レスブック4051より判別した画像解像度に従って画
像読み取りを行い、本実施例ではその画像を公知のFB
E(First Binary Encoding)を用いて圧縮し、さらに
LIPSコード化して、公知のネットワークプリンタプ
ロトコルであるIPPに従い相手機器に配信する。
【0187】図35はCPU2001によって実行され
るソフトウェアの階層構造を示す模式図であり、ユニバ
ーサルセンドモジュール1504と関連モジュールの階
層関係を示す。
【0188】RTOS1529は、リアルタイムオペレ
ーティングシステムであり、CPU2001が直接解釈
実行する機械命令によって記述されたユニバーサルセン
ドモジュール1504などのソフトウェアモジュールの
ための動作環境を提供する。
【0189】インタプリタ1530は、公知のインタプ
リタ処理系であり、RTOS1529が提供する動作環
境上で動作し、所定のインタプリタ用命令で記述された
命令列データを読み込み、逐次的に解釈実行する。イン
タプリタ1530は、インタプリタ用命令で記述された
ソフトウェアモジュールに動作環境を提供する仮想的な
CPUであり、インタプリタ上で動作するソフトウェア
のために用意されたライブラリセットとともに、仮想的
なオペレーティングシステムの機能を果たす。
【0190】本実施例のインタプリタはSun Mic
rosystems社による公知のJava(登録商
標)を対象として動作するインタプリタである。本実施
例のJavaのインタプリタは、Java言語で記述さ
れたプログラムをコンパイルした結果生成されるバイト
コードと呼ばれるインタプリタ用命令列の中間表現を、
実行時に動的に読み込むことができる。Javaインタ
プリタは読み込んだ各バイトコードを逐次的に解釈実行
する。Javaのバイトコードは公知のスタックマシン
型プロセッサの機械言語に類似しており、Java仮想
機械と呼ばれることもあるJavaのインタプリタは、
スタックマシン型のCPUと同様に動作する。
【0191】なお、本実施例に係るインタプリタはJa
vaに限定する必要はなく、それぞれ公知のPerl、
Python、Rubyなど多種多様なインタプリタを
採用してもよい。
【0192】図35のソフトウェア階層構造において、
RTOS1529の上では機械命令で記述されたソフト
ウェアモジュールが動作し、インタプリタ1530の上
ではインタプリタ用命令で記述されたソフトウェアモジ
ュールが動作する。
【0193】スタブモジュール1531は、ユニバーサ
ルセンドモジュール1504内に組み込まれて動作する
送信コンポーネントと呼ばれるサブモジュールの1つで
あり、CPU2001によって直接解釈実行される機械
命令によって記述され、既に説明したPRTモジュール
1505、Eメールモジュール1506、データベース
モジュール1507、データプロセッサモジュール15
08の標準搭載の送信コンポーネントと同様に、スキャ
ン画像データを所定のデータ配信プロトコルによって出
力先へと配信する処理を行う。スタブモジュール153
1は、ユニバーサルセンドモジュール1504内で標準
搭載の送信コンポーネントによって配信処理を行うこと
のできない出力先が宛先として指定された際に実行され
るモジュールである。
【0194】リクエストブローカモジュール1532
は、スタブモジュール1531と通信を行いユニバーサ
ルセンドモジュール1504がスタブモジュールとの間
で行う対話的な要求と応答のやり取りをプラグインモジ
ュール1533に転送する。リクエストブローカモジュ
ール1532は、Javaのバイトコードで記述されイ
ンタプリタ1530上で解釈実行される。
【0195】プラグイン1533は、リクエストブロー
カモジュール1532内に動的に組み込まれて動作する
サブモジュールの1つである。
【0196】本実施例ではプラグイン1533として、
ユニバーサルセンドモジュール1504で出力先にIP
Pのプリントプロトコルをサポートするプリンタが指定
された際に実行されIPPによる配信処理を行う、IP
P送信コンポーネントプラグインモジュールが組み込ま
れている状態を示している。
【0197】プラグイン1533は、Javaのバイト
コードで記述されインタプリタ1530上で解釈実行さ
れる。
【0198】図36は、ユニバーサルセンドモジュール
1504、スタブモジュール1531、リクエストブロ
ーカモジュール1532、及びプラグインモジュール1
533の間の相互の対話処理を示す図である。
【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のインタフェー
スは、さらに、プラグインプロトコルリスト取得処理3
81を備え、プラグインプロトコルリスト取得処理38
1はプラグイン1533として登録されているプラグイ
ンモジュール群がそれぞれサポートする配信プロトコル
のリストを取得するためのインタフェース関数である。
【0215】図39は、ユニバーサルセンドモジュール
1504においてCPUのネイティブ命令によって実装
される、アドレス帳へのアドレス登録処理を示すフロー
チャートである。
【0216】ユーザの操作に応じてアドレス帳へのアド
レス登録処理が起動されると、ユニバーサルセンドモジ
ュール1504は、スタブモジュール1531が備える
プラグインプロトコルリスト取得インタフェース関数3
81を呼び出して、登録されているプラグイン群がサポ
ートするプロトコルのリストを取得する(S391)。
【0217】次に、標準搭載の送信コンポーネントがサ
ポートするプロトコル群であるLPD、SLM、SMT
Pと、前ステップで取得したプロトコルリストのプロト
コル群とを合わせ、その時点でサポートしている全プロ
トコルリストとしてユーザに提示し、ユーザに対して選
択を促す(S392)。
【0218】ユーザがプロトコルリスト中から所望のプ
ロトコルを選択すると(S393)、選択されたプロト
コルをサポートする送信コンポーネントモジュールが備
えるアドレス追加処理インタフェース関数373を呼び
出す。
【0219】アドレス追加処理インタフェース関数37
3の実装では、当該プロトコルによって定められたそれ
ぞれのアドレス体系に応じたアドレスの入力をユーザに
促し、ユーザが入力したアドレスが送信コンポーネント
によって(それが標準搭載の送信コンポーネントであっ
てもプラグインモジュールによる送信コンポーネントで
あっても同様に)記憶される(S394)。
【0220】図40は、ユニバーサルセンドモジュール
1504においてCPUのネイティブ命令によって実装
される、配信処理を示すフローチャートである。ここで
は説明を簡単にするために、すべての配信宛先に対し
て、同一パラメータで生成した画像ファイルを配信すれ
ばよいものとして処理を単純化している。
【0221】ユーザの操作に応じて配信処理が起動され
ると、まずユーザが配信を行いたい宛先アドレスを選択
することを待つ(S401)。
【0222】ユーザが所望の配信宛先アドレスを1つ以
上選択し配信宛先リストの選択を完了すると、コントロ
ールAPI1518を呼び出して画像読み込み解像度、
圧縮形式、ファイル形式などの画像ファイル生成パラメ
ータを設定する(S402)。
【0223】さらにコントロールAPI1518を呼び
出してイメージスキャンを行い画像データファイルを得
る(S403)。
【0224】次に、ステップS401でユーザが選んだ
宛先アドレスリストから1つの宛先アドレスを取り出
し、その宛先アドレスに対応する送信コンポーネントの
配信処理インタフェース関数371を呼び出す(S40
4)。
【0225】宛先アドレスリストに含まれるすべての宛
先への配信を完了するまで、ステップS404に戻って
配信処理を繰り返す(S405)。
【0226】図41は、図38に示したインタフェース
関数のそれぞれが呼び出されたときに、スタブモジュー
ル1531がリクエストブローカ1532に送るリクエ
ストメッセージを示す図である。
【0227】メッセージは伝送データを所定の形式で符
号化したバイト列であり、メモリ空間上に構築され、オ
ペレーティングシステムが備えるメッセージキューやソ
ケットなどのプロセス間通信(タスク間通信)機構によ
って、ソフトウェアモジュールの実行インスタンス間で
伝送される。
【0228】プロトコル識別子411は、配信プロトコ
ルを識別するための属性である。プロトコル識別子41
1の内容は、ユニバーサルセンドモジュールが呼び出し
たインタフェース関数の引数に含まれる情報から生成さ
れる。
【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に示したレスポンスメッセージを受信する(S43
2)。
【0241】最後に、受信したレスポンスメッセージを
解析し対応するリターン値を生成して、呼び出されたイ
ンタフェース関数の返り値としてリターンする(S43
3)。
【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に送信する(S
465)。
【0260】さらに、ステップS461に戻り一連の処
理を繰り返す。一方、ステップS466からの一連のス
テップではプラグインプロトコルリスト取得要求に応じ
た処理を行う。
【0261】プラグインプロトコルリスト取得要求を受
信すると、図45に示した、プラグインリストデータを
検索し、登録されているプラグインモジュール群がサポ
ートしているプロトコルのリストを生成する(S46
6)。
【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の体系に
おいて宛先プリンタのアドレスを記述するPrinte
r−URIであり、RFC2910等に開示されている
公知のURIスキームに従って表現される。各レコード
は例えば次に示すような形式の可変長の文字列である。
【0272】ipp://myhost.com/myprinter/myqueue。
【0273】一方の配信パラメータ482は、当該アド
レス宛の配信に最適な、および/または、配信可能な各
種の配信に係るパラメータを記述する情報である。
【0274】図49は、IPPによる配信をサポートす
るプラグインモジュール1533においてJavaのイ
ンタプリタ命令によって実装される、アドレス追加処理
を示すフローチャートである。
【0275】プラグインモジュール1533が備えるア
ドレス追加処理のためのインタフェース関数473が呼
び出されると、IPP配信用のプラグインモジュール1
533は図48に示した既に登録されているアドレスリ
ストデータをハードディスクから読み込む(S49
1)。
【0276】次に、ユーザに対して追加するIPPアド
レス481と、もしあればそのアドレスに固有の最適、
および/または、可能な配信パラメータ482と、の入
力を促し、ユーザによるアドレス入力が終了するまで待
つ(S492)。
【0277】アドレス入力が終了すると、ユーザがキャ
ンセルによってアドレス入力を終了したか否かを判定
し、もしキャンセルであればステップS496に進み、
もし正常な完了であればステップS494に進む。
【0278】ユーザが正常にアドレスの入力を完了した
場合は、入力されたアドレス481と配信パラメータ4
82とをアドレスリストに追加しハードディスクに書き
込む(S494)。
【0279】さらに、正常終了を示す返り値をリターン
して一連の処理を終了する(S495)。
【0280】一方、ユーザがアドレス入力をキャンセル
終了した場合は、キャンセル終了を示す返り値をリター
ンして一連の処理を終了する(S496)。
【0281】図50は、IPPによる配信をサポートす
るプラグインモジュール1533においてJavaのイ
ンタプリタ命令によって実装される、配信処理を示すフ
ローチャートである。
【0282】プラグインモジュール1533が備えるア
ドレス追加処理のためのインタフェース関数470が呼
び出されると、IPP配信用のプラグインモジュール1
533は、関数呼び出しの引数として与えられた宛先ア
ドレスをアドレスリストデータ中から検索し、そのレコ
ードの配信パラメータを読み込む(S501)。
【0283】次に、宛先アドレスによって示されたIP
PプリンタのTCPポート番号631番との間に公知の
HTTPプロトコルによる接続を確立し、関数呼び出し
の引数として与えられた画像ファイルをプリントするた
めのIPPプリントジョブ要求をこの接続に対して送信
する(S502)。
【0284】IPPプリントジョブを送信するためにH
TTP接続に書き込むデータの冒頭部分は、例えば次の
ようなバイト列である。
【0285】POST /myprinter/myqueue HTTP/1.1 Host: myhost.com:631 Content-type: application/ipp Transfer-Encoding: chunked … IPPプリントジョブ要求 …。
【0286】次に、接続からIPPプリントジョブ応答
を読み出し、配信が正常終了したか否かを判定する(S
503)。もし正常終了であれば、正常終了を示す返り
値をリターンして終了する(S504)。もし異常終了
であれば、エラー終了を示す返り値をリターンして終了
する(S505)。
【0287】以上のようにして、画像処理装置中のソフ
トウェア組込み型電子装置にJavaのインタプリタ環
境を導入し、ネイティブ機会命令で記述された標準搭載
機能ソフトウェアが必要とする処理の一部分をJava
のクラスとして記述し、Javaのインタプリタ環境で
動作するこのクラスのオブジェクトとネイティブな標準
搭載機能ソフトウェアとの間をインターフェースし、ネ
イティブな標準搭載機能ソフトウェアのプラグインモジ
ュールをJavaインタプリタ上で動的に追加すること
により、画像処理装置としてソフトウェア組込み型電子
装置の柔軟で動的な機能拡張が可能となる。
【0288】上記実施の形態においては、センド機能を
構成する送信コンポーネントの配信プロトコルを処理す
るアルゴリズムとそのプロトコルにおける宛先アドレス
情報をローカルに管理するアルゴリズムとをプラグイン
化したが、他のアルゴリズム部品をプラグイン化するよ
うに構成することもできる。
【0289】たとえば、図16のセンド画面の表示処理
をプラグインによって置き換え可能に構成した場合、プ
ラグインの実装によっては単一のプロトコルや単一の宛
先アドレスに固定した単純なセンド画面を提供すること
もできる。これによって、特定業務のワークフローに特
化した簡単操作のセンドアプリケーションを、配信プロ
トコルやアドレス情報はネイティブのプログラムを変更
することなくそのまま利用することができる。操作画面
をプラグイン化する効果は、言うまでもなくセンドアプ
リケーションに限らずすべてのアプリケーションに対し
て有効である。
【0290】また、たとえば、図18のアドレス帳画面
の中に複数のアドレスをリスト表示する処理において、
リスト表示のアルゴリズムをプラグインによって置き換
え可能に構成することもできる。この場合、各アドレス
レコードの表示順序を制御するソートアルゴリズムや、
どのレコードの表示を抑制するかを制御するフィルタア
ルゴリズムなどを柔軟に置き換えることが可能となり、
特定のユーザにとって最適なリスト表示を行うことがで
きる。言うまでもなく、アドレスリストに限らず、他の
情報のリスト表示処理においても有効である。
【0291】また、たとえば、アドレスブック4051
そのものをプラグイン化してもよい。この場合、たとえ
ば外部のサーバが管理するディレクトリサービスをLD
APやNIS、DNSなどのネットワークプロトコルに
よって利用する実装に置き換えることも可能となる。
【0292】また、たとえば、一般に装置の修理・交換
や装置ファームウェアのアップデート時などに、アドレ
ス情報などの各種データを装置外部に読み出してまたそ
れを装置内部に書き戻すデータエクスポート・インポー
トの機能が必要とされるが、このエクスポート・インポ
ートのアルゴリズムをプラグイン化するように構成する
こともできる。この場合、どういった種類の情報をどの
ような形式(フォーマット)でどのようなプロトコルに
よって外部に入出力するかをプラグインの実装次第で柔
軟に制御することが可能となる。たとえばXML形式で
HTTPプロトコルによって入出力するようなプラグイ
ンを実装し利用できる。
【0293】また、たとえば、装置内部のHDD200
4などの不揮発性メモリに記憶するデータを装置外部の
不揮発性記憶にバックアップするバックアップ処理のス
ケジューラをプラグイン化することもできる。この場
合、すべてのファイルをバックアップするフルバックア
ップと、前回のバックアップ時点から変更されたファイ
ルのみをバックアップするインクリメンタルバックアッ
プとを適宜組み合わせるなどして、特定のユーザの運用
形態に最適なタイミングでバックアップを行うカスタマ
イズが可能となる。
【0294】また、たとえば、WANからMODEM2
050が受信したファクスやLANからネットワーク2
010が受信した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配信のためのプラグインモジュール1
533が記憶管理するアドレスリストデータのレコード
形式を示す図である。
【図49】IPP配信のためのプラグインモジュール1
533におけるアドレス追加処理の実装を示すフローチ
ャートである。
【図50】IPP配信のためのプラグインモジュール1
533における配信処理の実装を示すフローチャートで
ある。
【符号の説明】
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 (6)

    【特許請求の範囲】
  1. 【請求項1】ネイティブ機械命令を解析実行するプロセ
    ッサと、 前記プロセッサによって解釈される一連のネイティブ機
    械命令列および前記プロセッサが読み書きの対象とする
    データを記憶するためのメモリと、 前記プロセッサの入出力に接続し前記プロセッサによっ
    て制御される制御対象と、を有するソフトウェア組込み
    型電子装置において、 前記ネイティブ機械命令列によって記述された第1のソ
    フトウェアモジュール群の各命令を逐次的に前記プロセ
    ッサに解釈実行させるためのオペレーティングシステム
    手段と、 前記第1のソフトウェアモジュール群に含まれるソフト
    ウェアモジュールであって、仮想的な機械命令の列によ
    って記述された第2のソフトウェアモジュール群を前記
    メモリ上に動的に配置し、前記仮想機械命令列の各仮想
    機械命令を逐次的に解釈して仮想機械命令に相当するネ
    イティブ機械命令列を前記プロセッサに与え解釈実行さ
    せるための仮想オペレーティングシステム手段と、 前記第1のソフトウェアモジュール群に含まれるソフト
    ウェアモジュールであって、前記制御対象を制御するた
    めの第1の制御手段と、 前記第2のソフトウェアモジュール群に含まれるソフト
    ウェアモジュールであって、前記第1の制御手段の制御
    の一部を処理するための第2の制御手段と、 前記第1の制御手段と前記第2の制御手段との間で要求
    と応答をインタフェースするためのインタフェース手段
    とを備え、 前記第2の制御手段は動的に可換であることを特徴とす
    るソフトウェア組込み型電子装置。
  2. 【請求項2】前記インタフェース手段は、 前記第1のソフトウェアモジュール群に含まれるソフト
    ウェアモジュールであるスタブ手段と、 前記第2のソフトウェアモジュール群に含まれるソフト
    ウェアモジュールであるリクエストブローカ手段と、を
    有し、 前記スタブ手段は前記第1の制御手段が前記スタブ手段
    に与えた要求を前記リクエストブローカ手段に転送し、
    さらに前記リクエストブローカ手段は前記要求を前記第
    2の制御手段に与え、 前記リクエストブローカ手段は前記第2の制御手段が前
    記リクエストブローカ手段に与えた応答を前記スタブ手
    段に転送し、さらに前記スタブ手段は前記応答を前記第
    1の制御手段に与えることを特徴とする請求項1に記載
    のソフトウェア組込み型電子装置。
  3. 【請求項3】前記スタブ手段と前記リクエストブローカ
    手段との間の要求と応答の転送は、プロセス間通信機構
    によって実現されることを特徴とする請求項2に記載の
    ソフトウェア組込み型電子装置。
  4. 【請求項4】1つの前記リクエストブローカ手段は複数
    の前記第2の制御手段と組み合わされ、前記リクエスト
    ブローカ手段は前記スタブ手段から転送された要求の内
    容に応じて、複数の前記第2の制御手段中の1つに選択
    的に要求を与えることを特徴とする請求項1に記載のソ
    フトウェア組込み型電子装置。
  5. 【請求項5】前記仮想オペレーティング手段は、規定の
    命令集合からなる命令列を読み込んで各命令を逐次的に
    解釈実行するインタプリタであることを特徴とする請求
    項1に記載のソフトウェア組込み型電子装置。
  6. 【請求項6】前記制御対象は、物理的回路または仮想回
    路によって接続された画像入出力手段であることを特徴
    とする請求項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 true JP2003256216A (ja) 2003-09-10
JP2003256216A5 JP2003256216A5 (ja) 2007-01-11
JP4227342B2 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 (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006013953A1 (en) * 2004-08-06 2006-02-09 Canon Kabushiki Kaisha Image processing apparatus and control method thereof
JP2007006070A (ja) * 2005-06-23 2007-01-11 Ricoh Co Ltd 入出力管理装置、入出力管理方法、及び入出力管理プログラム
WO2007069757A1 (en) 2005-12-14 2007-06-21 Canon Kabushiki Kaisha Information processing apparatus and method
JP2008065479A (ja) * 2006-09-05 2008-03-21 Ricoh Co Ltd 画像処理装置、画像処理方法、及び、画像処理プログラム
CN100405810C (zh) * 2004-08-06 2008-07-23 佳能株式会社 图像处理装置及控制方法、驱动控制方法和数据处理装置
JP2009077397A (ja) * 2007-09-19 2009-04-09 Sharp Corp 画像処理ノード、および画像処理ノードを制御するための方法
WO2009047986A1 (en) * 2007-10-09 2009-04-16 Canon Kabushiki Kaisha Information processing apparatus and control method thereof
JP2009110437A (ja) * 2007-10-31 2009-05-21 Ricoh Co Ltd 情報処理装置及び情報処理方法
WO2010050037A1 (en) 2008-10-27 2010-05-06 Kabushiki Kaisha Sato Chishiki Zaisan Kenkyusyo Label printer api using program scripting language
US7730225B2 (en) 2007-04-20 2010-06-01 Canon Kabushiki Kaisha Information processing apparatus, information transmission method, and control program therefor
US8024812B2 (en) 2007-02-22 2011-09-20 Canon Kabushiki Kaisha Apparatus and method for processing digital document and computer program
US8103702B2 (en) 2007-08-28 2012-01-24 Ricoh Company, Ltd. Information processing device, electronic manual managing method, and electronic manual managing program
US8180181B2 (en) 2007-10-31 2012-05-15 Ricoh Company, Ltd. Image processing apparatus, image processing method, and image processing program
US8325386B2 (en) 2008-05-20 2012-12-04 Canon Kabushiki Kaisha Printing using display list from vector data or display list obtained from location information
US8719711B2 (en) 2007-08-28 2014-05-06 Ricoh Company, Ltd. Image forming apparatus, display screen customizing method and computer-readable storage medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5392203B2 (ja) 2010-08-19 2014-01-22 株式会社リコー 情報処理装置、情報処理システム、インストール支援方法、及びインストール支援プログラム

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171463B2 (en) 2004-08-06 2012-05-01 Canon Kabushiki Kaisha Image processing apparatus and control method thereof
CN100405810C (zh) * 2004-08-06 2008-07-23 佳能株式会社 图像处理装置及控制方法、驱动控制方法和数据处理装置
JP2006048535A (ja) * 2004-08-06 2006-02-16 Canon Inc 画像処理装置及びその制御方法
WO2006013953A1 (en) * 2004-08-06 2006-02-09 Canon Kabushiki Kaisha Image processing apparatus and control method thereof
US7619757B2 (en) 2004-08-06 2009-11-17 Canon Kabushiki Kaisha Image processing apparatus and control method thereof, processing module drive control method, and data processing apparatus
JP4538381B2 (ja) * 2005-06-23 2010-09-08 株式会社リコー 入出力管理装置、入出力管理方法、及び入出力管理プログラム
JP2007006070A (ja) * 2005-06-23 2007-01-11 Ricoh Co Ltd 入出力管理装置、入出力管理方法、及び入出力管理プログラム
WO2007069757A1 (en) 2005-12-14 2007-06-21 Canon Kabushiki Kaisha Information processing apparatus and method
JP2008065479A (ja) * 2006-09-05 2008-03-21 Ricoh Co Ltd 画像処理装置、画像処理方法、及び、画像処理プログラム
US8024812B2 (en) 2007-02-22 2011-09-20 Canon Kabushiki Kaisha Apparatus and method for processing digital document and computer program
US7730225B2 (en) 2007-04-20 2010-06-01 Canon Kabushiki Kaisha Information processing apparatus, information transmission method, and control program therefor
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
JP2009077397A (ja) * 2007-09-19 2009-04-09 Sharp Corp 画像処理ノード、および画像処理ノードを制御するための方法
US8334995B2 (en) 2007-09-19 2012-12-18 Sharp Laboratories Of America, Inc. Method and system for adaptive control of imaging node
WO2009047986A1 (en) * 2007-10-09 2009-04-16 Canon Kabushiki Kaisha Information processing apparatus and control method thereof
US8373870B2 (en) 2007-10-09 2013-02-12 Canon Kabushiki Kaisha Information processing apparatus and control method thereof
JP2009110437A (ja) * 2007-10-31 2009-05-21 Ricoh Co Ltd 情報処理装置及び情報処理方法
US8180181B2 (en) 2007-10-31 2012-05-15 Ricoh Company, Ltd. Image processing apparatus, image processing method, and image processing program
US8325386B2 (en) 2008-05-20 2012-12-04 Canon Kabushiki Kaisha Printing using display list from vector data or display list obtained from location information
WO2010050037A1 (en) 2008-10-27 2010-05-06 Kabushiki Kaisha Sato Chishiki Zaisan Kenkyusyo Label printer api using program scripting language

Also Published As

Publication number Publication date
JP4227342B2 (ja) 2009-02-18

Similar Documents

Publication Publication Date Title
US7031003B2 (en) Image processing apparatus, control method of image processing apparatus, and storage medium
JP5199761B2 (ja) 情報処理装置と画像入力装置、文書配信システムとそれらの制御方法
JP2001027986A (ja) データ処理装置及び処理部選択方法
JP4227342B2 (ja) 画像形成装置、画像形成方法、および記憶媒体
JP2001136352A (ja) 画像入力装置及びその制御方法
JP2006344128A (ja) 画像処理装置
JP2000358144A (ja) 画像入出力システム及びその制御方法
JP2001251454A (ja) 画像処理装置並びに画像処理装置の制御方法および記憶媒体
JP4077958B2 (ja) データ処理装置、方法及びプログラムを格納した記憶媒体
JP3957906B2 (ja) 情報処理装置および方法
JP2001356853A (ja) 画像処理装置および画像処理装置の状態表示制御方法
JP4174506B2 (ja) データ処理装置、方法及びプログラムを格納した記憶媒体
JP2000115277A (ja) 符号化復号化装置及び画像形成システム
JP4862026B2 (ja) 画像形成装置、画像形成装置の制御方法、及び、制御プログラム
JP2003337681A (ja) 画像処理システム及びサーバ装置
JPH11196212A (ja) 画像処理装置及びその制御方法
JP2001339561A (ja) 複合画像処理装置及びネットワーク複写におけるリカバリー方法
JP3814452B2 (ja) 画像入出力装置及びその制御方法
JP2007124151A (ja) 画像処理装置、画像処理方法
JP3950530B2 (ja) 画像処理装置及びその制御方法
JPH11136428A (ja) 画像処理装置及び制御方法
JP2001339549A (ja) 複合画像処理装置及びネットワーク転送制御方法
JP2003219090A (ja) 画像配信装置及び画像配信方法
JP3809350B2 (ja) 画像出力装置
JP3990887B2 (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 (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 4

FPAY Renewal fee payment (prs 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