JP5042079B2 - 画像処理装置及びアプリケーション起動方法 - Google Patents

画像処理装置及びアプリケーション起動方法 Download PDF

Info

Publication number
JP5042079B2
JP5042079B2 JP2008064733A JP2008064733A JP5042079B2 JP 5042079 B2 JP5042079 B2 JP 5042079B2 JP 2008064733 A JP2008064733 A JP 2008064733A JP 2008064733 A JP2008064733 A JP 2008064733A JP 5042079 B2 JP5042079 B2 JP 5042079B2
Authority
JP
Japan
Prior art keywords
program
layer
image processing
processing apparatus
application
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
JP2008064733A
Other languages
English (en)
Other versions
JP2009224894A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2008064733A priority Critical patent/JP5042079B2/ja
Publication of JP2009224894A publication Critical patent/JP2009224894A/ja
Application granted granted Critical
Publication of JP5042079B2 publication Critical patent/JP5042079B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Control Or Security For Electrophotography (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、画像処理装置に関し、特にアプリケーション毎にプロセスを割り当てるシステムに関する。
近年におけるプリンタ、コピー機、スキャナ、ファクシミリ、又はこれらの機能を一台の筐体で実現する複合機(MFP:Multifunction Printer)などの画像処理装置では、メモリなどの制限は厳しいものの、汎用的なコンピュータと同様にCPU(Central Processing Unit)を備え、各機能はアプリケーションの制御によって実現されるようになっている。
例えば、特許文献1に記載された画像処理装置では、各アプリケーションから共通的に利用される機能をプラットフォームとして備えており、当該プラットフォームのAPI(Application Program Interface)を利用してアプリケーションを実装することができる。この画像処理装置によれば、共通的に利用される機能がプラットフォームとして備えられていることにより、アプリケーションごとに重複した機能の実装が回避され、アプリケーション全体の開発効率を向上させることができる。
その結果、このような画像処理装置では、システムにアプリケーションを追加・拡張することで、ユーザの所望する機能を提供することができる。
また、このような画像処理装置の中には、現在、実装する環境(実装機種)などに依存しないという特徴を生かし、携帯電話や家電製品などの開発にも用いられている、Sun Microsystems社が開発したJava(登録商標)言語によって開発されているものもある。また、実装する環境に、プロセスを複数に分割することでマルチプロセス化を行うことのできるプロセスベースのUNIX系OS(Operating System)を採用しているものもある。UNIX系OSの多くはプロセスを生成するためのforkシステムコールを備えており、親プロセスを複製することで新しいプロセスを生成する。また多くの場合、fork直後は親プロセスと子プロセスでメモリが共有され、メモリに対する書き込み(変更)があった場合にのみ、子プロセス側でメモリの複製を行うCopy On Writeという性質を備えている。この性質により、変更のないメモリに関しては共有が保たれるため、メモリ使用量を抑制することができる。
特許3679349号公報
しかしながら、複合機のような巨大なシステムでは、ソフトウェアモジュール同士が複雑に連携して、当該複合機の機能を実現するため、初期化シーケンスとプロセスへのモジュール配置を適切に設計しないと、メモリ共有の効果を十分に得ることができず、メモリの使用量を増大させることになるという問題がある。
そこで、本発明では、上記の問題点に鑑み、当該画像処理装置の機能を実現するために使用するメモリの一部を複数のプロセスで共有させることにより、メモリという限られたハードウェア資源を効率的に利用することのできる画像処理装置を提供することを目的とする。
本発明における画像処理装置は、当該画像処理装置において提供される複数の機能を実現するための部分であるアプリケーション共通層と当該画像処理装置において提供される各機能を実現するための固有の部分であるアプリケーション固有層とから構成されるアプリケーションロジック層と、当該画像処理装置の機能の実行要求を受け付けるユーザインタフェース層と前記実行要求を受けた当該画像処理装置の機能を実現するための処理を制御するコントロール層と前記アプリケーションロジック層から共通に利用される下位機能を実現するデバイスサービス層と当該画像処理装置のデバイスを制御するデバイス制御層とから構成されるサービス層とを有し、当該画像処理装置の機能を実現するために使用するメモリの一部を共有する第1のプロセスと、第2のプロセスとを有する画像処理装置であって、前記第1のプロセスが、前記サービス層に係るプログラムと、前記アプリケーション共通層に係るプログラムとを、前記メモリの第1の領域にロードする第1のプログラムロード手段と、前記第2のプロセスが、前記アプリケーション固有層に係るプログラムを、前記メモリの前記第1の領域と異なる第2の領域にロードする第2のプログラムロード手段とを有し、前記第2のプロセスが、前記第1の領域を前記第1のプロセスと共有することを特徴とする。
また、本発明の一形態では、前記第2のプログラムロード手段は、前記第2のプロセスを生成させる生成プログラムを、前記メモリにロードすることを特徴とする。
また、本発明の一形態では、当該画像処理装置は複数の前記第2のプロセスを有し、一の前記第2のプロセスが、前記サービス層に係るプログラムと、前記アプリケーションロジック層に係るプログラムとから構成されるアプリケーションを実行している状態で、第1のプロセスが他の第2のプロセスを生成し、生成された第2のプロセスの第2のプログラムロード手段が、前記アプリケーション固有層に係るプログラムを、前記メモリにロードすることを特徴とする。
また、本発明の一形態では、前記第2のプログラムロード手段は、通信ネットワークを介した当該画像処理装置の機能の実行要求に応答するプログラムを、前記メモリにロードする。
また、本発明の一形態では、前記第1のプログラムロード手段は、前記アプリケーション固有層に係るプログラムのうち、複数の前記第2のプロセスで実行される所定のプログラムを、前記メモリの前記第1の領域及び前記第2の領域と異なる第3の領域にロードし、前記2のプロセスが、前記第1の領域及び前記第3の領域を前記第1のプロセスと共有することを特徴とする。
また、本発明の一形態では、前記第1のプロセスが、前記サービス層に係るプログラムを実行する第1のプログラム実行手段を有することを特徴とする。
本発明によれば、当該画像処理装置の機能を実現するために使用するメモリの一部を複数のプロセスで共有させることにより、メモリという限られたハードウェア資源を効率的に利用することのできる画像処理装置を提供することができる。
図面を参照しながら、本発明を実施するための最良の形態について説明する。
(本発明に係る画像処理装置のソフトウェアアーキテクチャ)
図1は、本発明の実施の形態における複合機のソフトウェア構成例を示す図である。ここで、複合機とは、プリンタ、コピー、スキャナ、又はFAX等の複数の機能を一台の筐体において実現する画像処理装置をいう。
図1に示されるように、複合機1におけるソフトウェアは、ユーザインタフェース層10、コントロール層20、アプリケーションロジック層30、デバイスサービス層40及びデバイス制御層50より構成される。なお、図中における各層の上下関係は、層間の呼び出し関係に基づいている。すなわち、基本的に図中において上にある層が下の層を呼び出す。
ユーザインタフェース層10は、機能(例えば、コピー、印刷、スキャン、FAX送信)の実行要求を受け付けるための機能が実装されている部分であり、例えば、通信サーバ部11及びローカルUI(User Interface)12が含まれる。通信サーバ部11は、例えば、非図示のクライアントPC(Personal Computer)からネットワーク経由で要求を受け付ける。ローカルUI部12は、例えば、非図示のオペレーションパネルを介して入力される要求を受け付ける。ユーザインタフェース層10はにおいて受け付けられた要求は、コントロール層20に伝えられる。
コントロール層20は、要求された機能を実現するための処理を制御するための機能が実装されている部分である。具体的には、要求された機能に応じて、アプリケーションロジック層30における各フィルタを接続し、接続されたフィルタに基づいて機能の実行を制御する。なお、本実施の形態において「複合機1の機能」とは、複合機1がユーザに対して提供する一つのまとまった単位(要求が入力されて最終的な出力が得られるまで)のサービスと同義であり、ソフトウェア的には一つのまとまった単位のサービスを提供するアプリケーションと同義である。
アプリケーションロジック層30は、それぞれが複合機1において提供される機能の一部を実現する部品群が実装されている部分である。すなわち、アプリケーションロジック層30における部品を組み合わせることにより一つの機能が実現される。本実施の形態では、各部品を「フィルタ」と呼ぶ。これは、複合機1のソフトウェアアーキテクチャが「パイプ&フィルタ」と呼ばれる考え方に基づくことによる。
また、アプリケーションロジック層30は、複合機1において提供される複数の機能を実現するための部分であるアプリケーション共通層と、複合機1において提供される各機能を実現するための固有の部分であるアプリケーションロジック層とから構成される。
図2は、パイプ&フィルタの概念を示すための図である。図2においては、「F」はフィルタを示し、「P」はパイプを示す。図中に示されるように、各フィルタはパイプによって接続される。フィルタは、入力されたデータに対して変換を施し、その結果を出力する。パイプは、フィルタから出力されたデータを次のフィルタに伝達する。
すなわち、本実施の形態における複合機1では、各機能をドキュメント(データ)に対する「変換」の連続として捉える。複合機の各機能は、ドキュメントの入力、加工、及び出力によって構成されるものとして一般化することができる。そこで、「入力」、「加工」、及び「出力」を「変換」として捉え、一つの「変換」を実現するソフトウェア部品がフィルタとして構成される。入力を実現するフィルタを特に「入力フィルタ」という。また、加工を実現するフィルタを特に「加工フィルタ」という。更に、出力を実現するフィルタを特に「出力フィルタ」という。なお。各フィルタは独立しており、フィルタ間における依存関係(呼び出し関係)は基本的には存在しない。したがって、フィルタ単位で追加(インストール)又は削除(アンインストール)が可能とされている。
図1において、アプリケーションロジック層30には、入力フィルタとして、読取フィルタ301、メール受信フィルタ302、FAX受信フィルタ303、PC文書受信フィルタ304が含まれている。
読取フィルタ301は、スキャナによる画像データの読み取りを制御し、読み取られた画像データを出力する。メール受信フィルタ302は、電子メールを受信し、当該電子メールに含まれているデータを出力する。FAX受信フィルタ303は、FAX受信を制御し、受信されたデータを出力する。PC文書受信フィルタ304は、非図示のクライアントPCから印刷データを受信し、受信された印刷データを出力する。
文書加工フィルタ311は、入力されたデータに所定の画像変換処理(集約、拡大、又は縮小等)を施し、出力する。文書変換フィルタ312は、レンダリング処理を実行する。すなわち、入力されたPostScriptデータをビットマップデータに変換して出力する。
印刷フィルタ321は、入力されたデータをプロッタに出力(印刷)させる。メール送信フィルタ322は、入力されたデータを電子メールに添付して送信する。FAX送信フィルタ323は、入力されたデータをFAX送信する。PC文書送信フィルタ324は、入力されたデータをクライアントPCに送信する。
デバイスサービス層40は、アプリケーションロジック層30における各フィルタから共通に利用される下位機能が実装されている部分であり、例えば、画像パイプ41及びデータ管理部42が含まれる。画像パイプ41は、上述したパイプの機能を実現する。すなわち、或るフィルタからの出力データを次のフィルタに伝達する。データ管理部42は、各種のデータベースを表現する。例えば、ユーザ情報が登録されたデータベースや、文書又は画像データ等が蓄積されるデータベース等が相当する。
デバイス制御層50は、デバイス(ハードウェア)を制御するドライバと呼ばれるプログラムモジュール群が実装されている部分であり、例えば、スキャナ制御部51、プロッタ制御部52、メモリ制御部53、電話回線制御部54、及びネットワーク制御部55が含まれる。各制御部は、当該制御部の名前に付けられているデバイスを制御する。
フィルタについて更に詳しく説明する。図3は、フィルタの構成要素を説明するための図である。図3に示されるように、各フィルタは、フィルタ設定用UI、フィルタロジック、フィルタ固有下位サービス及び永続記憶領域情報により構成される。
フィルタ設定用UIは、フィルタの実行条件を設定させるための画面をオペレーションパネルに表示させるプログラムである。例えば、入力フィルタの一つである読取フィルタであれば、解像度、濃度、画像種別を設定する画面が相当する。なお、オペレーションパネルの表示がHTML(HyperText Markup Language)データや、スクリプトに基づいて行われ得ることに鑑みれば、フィルタ設定用UIはHTMLデータやスクリプトであっても良い。
フィルタロジックは、フィルタの機能を実現するためのロジックが実装されたプログラムである。例えば、読取フィルタであれば、スキャナによる原稿読み取り制御のためのロジックが相当する。
フィルタ固有下位サービスは、フィルタロジックを実現するために必要な下位機能(ライブラリ)である。例えば、読取フィルタであれば、スキャナを制御するための機能が相当する。
永続記憶領域情報は、フィルタに対する設定情報(例えば、実行条件のデフォルト値)等、不揮発性メモリに保存する必要があるデータのスキーマ定義が相当する。当該スキーマ定義は、フィルタのインストール時にデータ管理部42に登録される。
図4は、本実施の形態の複合機における各機能(アプリケーション)を実現するためのフィルタの組み合わせの例を示す図である。
例えば、コピー機能は、読取フィルタ301と印刷フィルタ321とを接続することにより実現される。読取フィルタ301によって、原稿から読み取られた画像データを印刷フィルタ321によって印刷すれば良いからである。なお、コピー機能に付随する、集約、拡大、縮小等の加工が要求された場合には、これらの加工を実現する文書加工フィルタ311が読取フィルタ301と印刷フィルタ321の間に挿入される。
プリンタ機能(クライアントPCからの印刷機能)は、PC文書受信フィルタ304と文書変換フィルタ312と印刷フィルタ321とを接続することにより実現される。スキャン to mail機能(スキャンした画像データを電子メールで転送する機能)は、読取フィルタ301とメール送信フィルタ322とを接続することにより実現される。FAX送信機能は、読取フィルタ301とFAX送信フィルタ323とを接続することにより実現される。FAX受信機能は、FAX受信フィルタ303と印刷フィルタ321とを接続することにより実現される。
(本発明の動作原理)
図5は、本発明に係る画像処理装置である複合機1の動作原理を示す図である。
複合機1は、メモリ(RAM:Random Access Memory)100と、第一のプロセス110と、第2のプロセス120と、プログラム記憶装置130とから構成される。
メモリ100は、非図示の複合機1のCPUでプログラムを実行する際に、実行するプログラムやデータが展開(ロード)され、演算の間、演算データを一時的に保持する。
プログラム記憶装置130は、複合機1の機能を実現するためのプログラムを記憶する装置であり、そのプログラムは、サービス層131と、アプリケーション共通層132と、アプリケーション固有層133から構成される。サービス層131は、前述のユーザインタフェース層10と、コントロール層20と、デバイスサービス層40と、デバイス制御層50から構成される。また、アプリケーション共通層132は、アプリケーションロジック層30に含まれる各フィルタのプログラムにおいて、全てのフィルタで共通する部分である。一方、アプリケーション固有層32は、アプリケーションロジック層30に含まれる各フィルタのプログラムにおいて、各フィルタで固有の部分である。
第1のプロセス110は、マルチプロセス対応の仮想機械であり、forkコマンドを実行することによって、第2のプロセスを生成する。forkとは、UNIX系システムコールのひとつで、プロセスのコピーを生成するものである。また、第1のプロセス110は、第1のプログラムロード手段111、生成手段112、第1のプログラム実行手段113、及び第1のプログラム読取手段114を有する。
第1のプログラム読取手段114は、サービス層131及びアプリケーション共通層132に係るプログラムを、プログラム記憶装置130から読み出す。
第1のプログラムロード手段111は、第1のプログラム読取手段114が読み出したサービス層131及びアプリケーション共通層132に係るプログラムを、メモリ100にロードする。つまり、複合機1の機能を実現するためのプログラムにつき、共通する部分を第1のプロセスがメモリ100にロードする。
そして、生成手段112は、第1のプロセスが、forkコマンドを実行することによって、第2のプロセスを生成する。図6に、第1のプロセスから第2のプロセスが生成される概念図を示す。第1のプロセスにおいて、forkコマンドを実行することによって、当該第1のプロセスとメモリ使用領域の一部を共有する第2のプロセスが生成される。生成される第2のプロセスは、一つであっても、複数であっても良い。図7に、第1のプロセスと、第2のプロセスとのメモリ使用領域の共有について説明する図を示す。図7で示すように、第1のプロセスが、第1のプログラムロード手段111でメモリ100にロードしたサービス層131及びアプリケーション共通層132に係るプログラムが使用するメモリ領域について、第1のプロセスと第2のプロセスとで共有するため、複合機1のメモリ100を効率的に利用することができる。
また、第1のプログラムロード手段111は、アプリケーション固有層133に係るプログラムであって、複数の第2のプロセスで実行され、かつ、複合機1の基本機能を実現するフィルタ(例えば、読取フィルタ301や印刷フィルタ321)に係るプログラムについても、メモリ100にロードする。この様に、アプリケーション固有層133に係るプログラムであって、複数の第2のプロセスで実行され、かつ、複合機1の基本機能を実現するフィルタ(例えば、読取フィルタ301や印刷フィルタ321)に係るプログラムを、第1のプロセス110でメモリ100にロードすることによって、更に、複合機1のメモリ100を効率的に利用することができる。
一方、第1のプログラム実行手段113は、第1のプログラムロード手段111がメモリ100にロードしたサービス層131に係るプログラムを、第1のプロセスが実行する。その後、第1のプロセス110が、forkコマンドを実行し、第2のプロセス120を生成することで、メモリ利用の効率化を図ることができ、更に、第2のプロセスでサービス層131に係るプログラムを起動する必要がないため、第2のプロセスにおけるプログラム起動時間の短縮を実現する。
第2のプロセス120は、マルチプロセス対応の仮想機械であり、第1のプロセス110がforkコマンドを実行することによって生成される。また、第2のプロセスは、複合機1の機能を実現するためのプログラムを実行するが、そのために、第2のプログラムロード手段121、生成要求手段122、第2のプログラム実行手段123、及び第2のプログラム読取手段124を有する。
第2のプログラム読取手段124は、アプリケーション固有層133に係るプログラムを、プログラム記憶装置130から読み出す。
第2のプログラムロード手段121は、第2のプログラム読取手段124が読み出したアプリケーション固有層133に係るプログラムを、メモリ100にロードする。第2のプログラム実行手段123は、メモリ100にロードされたサービス層131及びアプリケーションロジック層30に係るプログラムから構成される複合機1の機能を実現するためのアプリケーションを実行する。
また、第2のプログラム読取手段124は、生成要求手段122を実現するためのプログラムをプログラム記憶装置130から読み出し、その後、第2のプログラムロード手段121が、メモリ100にこの読み出したプログラムをロードし、第2のプログラム実行手段123が、生成要求手段122を実現するためのプログラムを実行する。こうすることで、生成要求手段122は、ユーザが、複合機1の操作画面から又は通信ネットワーク経由で、複合機1の機能につき、実行要求を行った場合に、その実行要求のあった複合機1の機能に係るプログラムを実行させるための第2のプロセスを生成するように、第1のプロセスに対して要求する。
ここで、サービス層131に係るプログラムがミドルウェア含む場合であっても、前述の説明と同様に、複合機1は動作する。第1のプログラム読取手段113が、ミドルウェアを含むサービス層131とアプリケーション共通層132に係るプログラムを、プログラム記憶装置130から読み出し、第1のプログラムロード手段111が、それらプログラムをメモリ100にロードする。そして、第2のプログラム読取手段124が、アプリケーション固有層133に係るプログラムを、プログラム記憶装置130から読み出し、第2のプログラムロード手段121が、そのプログラムをメモリ100にロードし、第2のプログラム実行手段123が、ミドルウェアを含むサービス層131とアプリケーションロジック層30に係るプログラムを実行する。こうすることで、サービス層にミドルウェアが含まれる場合であっても、複合機1のメモリを効率的に使用することができる。
(本実施の形態に係る複合機のハードウェア構成)
以下に本発明の画像処理装置である複合機1のハードウェアの構成の一例を示す。図8は、本発明の実施の形態における複合機1のハードウェア構成の一例を示す図である。
複合機1のハードウェアとしては、コントローラ80と、オペレーションパネル87、ファクシミリコントロールユニット(FCU:Facsimile Control Unit)88と、撮像部89と、印刷部90が存在する。
コントローラ80は、CPU(Central Processing Unit)84、ASIC(Application Specific Integrated Circuit)86、NB(North Bridge)85、SB(South Bridge)91、MEM-P81、MEM-C82、HDD(ハードディスクドライブ)83、メモリカードスロット96、ネットワークインタフェースコントローラ(NIC:Network Interface Controller)92、USB(Universal Serial Bus)デバイス93、IEEE(The Institute of Electrical and Electronics Engineers, Inc.)1394デバイス94、セントロニクスデバイス95により構成される。
CPU84は、種々の情報処理用のIC(Integrated Circuit)である。ASIC86は、種々の画像処理用のICである。NB85は、コントローラのノースブリッジである。SB91は、コントローラのサウスブリッジである。MEM-P81は、複合機1のシステムメモリである。MEM-C82は、複合機1のローカルメモリである。HDD83は、複合機1のストレージである。メモリカードスロット96は、メモリカード97をセットするためのスロットである。NIC92は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス93は、USB規格の接続端子を提供するためのデバイスである。セントロニクスデバイス95は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル87は、オペレータが複合機1に入力を行うためのハードウェア(操作部)であると共に、オペレータが複合機1から出力を得るためのハードウェア(表示部)である。
なお、本発明に係る複合機1のソフトウェアは、例えば、MEM-C82に格納され、CPU84によって処理されることにより、その機能を複合機1に実行させる。
(本発明の実施の形態)
(1)複合機1のコピー機能を実行する場合について
図9を用いて、本実施の形態における複合機1のコピー機能を実現する処理手順について説明する。図9は、本実施の形態における複合機1の機能を実現する処理手順についてのフローチャートである。
S90で第1のプログラム読取手段114が、プログラム記憶装置130から、サービス層131とアプリケーション共通層132に係るプログラムを読み出し、第1のプログラムロード手段111が、その読み出したプログラムをメモリ100にロードする。
S91で生成手段112が、forkコマンドを実行して、第2のプロセスAを生成する。ここで、第1のプロセスと第2のプロセスAとは、サービス層131とアプリケーション共通層132に係るプログラムのメモリ使用領域を共有しているため、複合機1における効率的なメモリの使用が実現している。
S92で第2のプログラム読取手段124が、プログラム記憶装置130から、アプリケーション管理に係るプログラムとネットワークデーモンに係るプログラムとを読み出し、第2のプログラムロード手段121が、これらのプログラムをメモリ100にロードする。ここで、アプリケーション管理に係るプログラムとは、ユーザがオペレーションパネル87より、複合機1の機能につき、実行要求を行った場合に、その実行要求のあった機能に係るプログラムを実行させる第2のプロセスBを生成するように、第1のプロセスに対して要求する生成要求手段122を実現させるアプリケーションである。また、ネットワークデーモンに係るプログラムとは、ユーザがNIC92を介して、複合機1の機能につき、実行要求を行った場合に、その実行要求のあった機能に係るプログラムを実行させる第2のプロセスBを生成するように、第1のプロセスに対して要求する生成要求手段122を実現させるアプリケーションである。更に、これら2つのアプリケーションは、一旦起動されると、当該プロセスの終了要求がされるまで、動作を継続する。
S93で第2のプログラム実行手段は、サービス層131に係るプログラムと、アプリケーション管理に係るプログラムと、ネットワークデーモンに係るプログラムとを起動する。これにより、生成要求手段122を使用できる状態となった。
S94でユーザがオペレーションパネル87より、複合機1のコピー機能につき、実行要求を行った場合(S94でYESの場合)には、S95で生成要求手段122は、コピー機能に係るプログラムを実行させる第2のプロセスBを生成するように、第1のプロセスに対して要求し、生成手段112は、その要求に応答して、新たに第2のプロセスBを生成する。一方、S94でユーザの実行要求が無い場合(S94でNOの場合)は、ユーザの実行要求があるまで複合機1は待ち状態となる。
S96で、S95において生成された第2のプロセスBが有する第2のプログラム読取手段124は、ユーザから実行要求のあったコピー機能に係るプログラムを、プログラム記憶装置130から読み出し、第2のプログラムロード手段121は、そのプログラムをメモリ100にロードする。ここでも、第1のプロセスと第2のプロセスBとで使用するメモリの共有化が図られているため、メモリ利用の効率化が実現している。
S97で、S95において生成された第2のプロセスBが有する第2のプログラム実行手段124は、サービス層131に係るプログラムと、コピー機能に係るプログラムとを実行する。このプログラムが実行されると、読取フィルタ301はスキャナ制御部51に撮像部89から原稿の画像データを読み取るよう要求を行い、その要求に応じて、撮像部89は原稿の画像データを読み取る。そして、ここで読み取られた画像データは、画像パイプ41に一時的に記憶される。次に、印刷フィルタ321は、画像パイプ41からその一時的に記憶された画像データを読み出し、プロッタ制御部52を介して、印刷部90からこの画像データを印刷させる。
S99でコピー機能に係るプログラムが終了し、それを実行させていた第2のプロセスBも終了する。第2のプロセスAでは引き続きアプリケーションの実行要求を待機する(S94に戻る)。
(2)複合機1のプリンタ機能を実行する場合について
図9を用いて、本実施の形態における複合機1のプリンタ機能を実現する処理手順について説明する。
S90で第1のプログラム読取手段114が、プログラム記憶装置130から、サービス層131とアプリケーション共通層132に係るプログラムを読み出し、第1のプログラムロード手段111が、その読み出したプログラムをメモリ100にロードする。
S91で生成手段112が、forkコマンドを実行して、第2のプロセスAを生成する。ここで、第1のプロセスと第2のプロセスAとは、サービス層131とアプリケーション共通層132に係るプログラムのメモリ使用領域を共有しているため、複合機1における効率的なメモリの使用が実現している。
S92で第2のプログラム読取手段124が、プログラム記憶装置130から、アプリケーション管理に係るプログラムとネットワークデーモンに係るプログラムとを読み出し、第2のプログラムロード手段121が、これらのプログラムをメモリ100にロードする。
S93で第2のプログラム実行手段は、サービス層131に係るプログラムと、アプリケーション管理に係るプログラムと、ネットワークデーモンに係るプログラムとを起動する。これにより、生成要求手段122を使用できる状態となった。
S94でユーザがNIC92を介して、複合機1のプリンタ機能につき、実行要求を行った場合(S94でYESの場合)には、S95で生成要求手段122は、プリンタ機能に係るプログラムを実行させる第2のプロセスBを生成するように、第1のプロセスに対して要求し、生成手段112は、その要求に応答して、第2のプロセスBを生成する。一方、S94でユーザの実行要求が無い場合(S94でNOの場合)は、ユーザの実行要求があるまで複合機1は待ち状態となる。
S96で、S95において生成された第2のプロセスBが有する第2のプログラム読取手段124は、ユーザから実行要求のあったプリンタ機能に係るプログラムを、プログラム記憶装置130から読み出し、第2のプログラムロード手段121は、そのプログラムをメモリ100にロードする。
S97で、S95において生成された第2のプロセスBが有する第2のプログラム実行手段124は、サービス層131に係るプログラムと、プリンタ機能に係るプログラムを実行する。このプログラムが実行されると、PC文書受信フィルタ304はネットワーク制御部55に対し、NIC92を介して、非図示のクライアントPCから印刷すべき画像データを受信するよう要求する。ネットワーク制御部55は、その要求に応答し、その受信した画像データをPC文書受信フィルタ304に渡す。そして、PC文書受信フィルタ304は、その受信した画像データを、画像パイプ41に出力し、記憶させる。次に、文書変換フィルタ312は、その画像データを画像パイプ41から読み出し、その画像データにレンダリング処理を施して、画像パイプ41に出力し、記憶させる。最後に、印刷フィルタ321は、その画像データを画像パイプ41から読み出し、プロッタ制御部52を介して、その画像データを印刷部90から印刷させる。
S99でプリンタ機能に係るプログラムが終了し、それを実行させていた第2のプロセスBも終了する。第2のプロセスAでは引き続きアプリケーションの実行要求を待機する(S94に戻る)。
(本発明の実施の形態の変形例)
図9を用いて、本発明の実施の形態の変形例について説明する。
(1)第1の変形例
本実施の形態の第1の変形例について説明する。
S90で第1のプログラム読取手段114が、プログラム記憶装置130から、サービス層131とアプリケーション共通層132に係るプログラムに加え、アプリケーション固有層の所定のプログラムを読み出し、第1のプログラムロード手段111が、その読み出したプログラムをメモリ100にロードし、その後、S91〜S99の手順を図9のフローチャートに従い実施することで、複合機1の機能を実現することができる。ここで、所定のプログラムとは、複数のプロセスで実行され、かつ、複合機1の基本機能を実現するフィルタ、例えば、読取フィルタ301、印刷フィルタ321をいう。
S91で生成手段112が、forkコマンドを実行して、第2のプロセスAを生成すれば、第1のプロセスと第2のプロセスAとは、サービス層131とアプリケーション共通層132に係るプログラムに加え、アプリケーション固有層の所定のプログラムについても、そのメモリ使用領域を共有しているため、更に効率的なメモリの使用が実現している。
(2)第2の変形例
本実施の形態の第2の変形例について説明する。
S90で第1のプログラム読取手段114が、プログラム記憶装置130から、サービス層131とアプリケーション共通層132に係るプログラムを読み出し、第1のプログラムロード手段111が、その読み出したプログラムをメモリ100にロードする。
そして、S91で第1のプログラム実行手段113がサービス層131に係るプログラムを起動し、主に初期化処理を実行したところで処理を中断する。その後、生成手段112が、forkコマンドを実行して、第2のプロセスAを生成する。こうすることで、第1のプロセスと第2のプロセスAとは、サービス層131とアプリケーション共通層132に係るプログラムのメモリ使用領域を共有しているため、効率的なメモリの使用が実現している。更に、第1のプロセスにおいて既にサービス層131に係るプログラムを起動させているため、第2のプロセスAでサービス層に係るプログラムを再び起動させる必要が無く、第2のプロセスAにおけるプログラムの起動時間を短縮することができる。
これに続いて、S92〜S99の手順を図9のフローチャートに従い実施することで、複合機1の機能を実現することができる。ただし、S97で第2のプログラム実行手段124は、サービス層131に係るプログラムの初期化処理を実行することは無く(中断した状態から再開する)、ユーザから実行要求のあった複合機1の機能に係るプログラムのみ実行する。
(3)第3の変形例
ここまでの実施例は、アプリケーションの実行要求を受け付けてから、第2のプロセスを生成するものであったが、あらかじめシステム起動時にアプリケーションを実行するための第2のプロセスを生成しておいても良い。この場合、第2のプロセスでは、アプリケーションの初期化処理を行った状態で、ユーザからの要求を待機する。アプリケーション管理やネットワークデーモンがユーザ要求を受け付けると、プロセス間通信により待機しているプロセスに通知を行う。
この実施例では、あらかじめ起動しているので、ユーザ要求からアプリケーション実行までの時間が短縮できるメリットがある。一方、現在使用されていないアプリケーションのためのプロセスがシステムに常駐するため、メモリ容量を圧迫するのがデメリットである。
以上、本発明の実施の形態について詳述したが、本発明は係る特定の実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲において、種々の変形・変更が可能である。
本発明の実施の形態における複合機のソフトウェア構成例を示す図である。 パイプ&フィルタの概念を示すための図である。 フィルタの構成要素を説明するための図である。 本実施の形態の複合機における各機能(アプリケーション)を実現するためのフィルタの組み合わせの例を示す図である。 本発明に係る画像処理装置である複合機1の動作原理を示す図である。 第1のプロセスから第2のプロセスが生成される概念図である。 第1のプロセスと、第2のプロセスとのメモリ使用領域の共有について説明する図である。 本実施の形態における複合機のハードウェア構成の一例を示す図である。 本実施の形態における複合機の機能を実現する処理手順についてのフローチャートである。
符号の説明
1 画像処理装置(複合機)
100 メモリ(RAM)
110 第1のプロセス
111 第1のプログラムロード手段
112 生成手段
113 第1のプログラム実行手段
114 第1のプログラム読取手段
120 第2のプロセス
121 第2のプログラムロード手段
122 生成要求手段
123 第2のプログラム実行手段
124 第2のプログラム読取手段
130 プログラム記憶装置
131 サービス層
132 アプリケーション共通層
133 アプリケーション固有層

Claims (7)

  1. 当該画像処理装置において提供される複数の機能を実現するための部分であるアプリケーション共通層と当該画像処理装置において提供される各機能を実現するための固有の部分であるアプリケーション固有層とから構成されるアプリケーションロジック層と、当該画像処理装置の機能の実行要求を受け付けるユーザインタフェース層と前記実行要求を受けた当該画像処理装置の機能を実現するための処理を制御するコントロール層と前記アプリケーションロジック層から共通に利用される下位機能を実現するデバイスサービス層と当該画像処理装置のデバイスを制御するデバイス制御層とから構成されるサービス層とを有し、当該画像処理装置の機能を実現するために使用するメモリの一部を共有する第1のプロセスと、第2のプロセスとを有する画像処理装置であって、
    前記第1のプロセスが、
    前記サービス層に係るプログラムと、前記アプリケーション共通層に係るプログラムとを、前記メモリの第1の領域にロードする第1のプログラムロード手段と、
    前記第2のプロセスが、
    前記アプリケーション固有層に係るプログラムを、前記メモリの前記第1の領域と異なる第2の領域にロードする第2のプログラムロード手段とを有し、
    前記第2のプロセスが、前記第1の領域を前記第1のプロセスと共有することを特徴とする画像処理装置。
  2. 前記第2のプログラムロード手段は、
    前記第2のプロセスを生成させる生成プログラムを、前記メモリにロードすることを特徴とする請求項1に記載の画像処理装置。
  3. 複数の前記第2のプロセスを有し、
    一の前記第2のプロセスが、前記サービス層に係るプログラムと、前記アプリケーションロジック層に係るプログラムとから構成されるアプリケーションを実行している状態で、
    前記第1のプロセスが他の第2のプロセスを生成し、生成された第2のプロセスの第2のプログラムロード手段が、
    前記アプリケーション固有層に係るプログラムを、前記メモリにロードすることを特徴とする請求項1に記載の画像処理装置。
  4. 前記第2のプログラムロード手段は、通信ネットワークを介した当該画像処理装置の機能の実行要求に応答するプログラムを、前記メモリにロードすることを特徴とする請求項2に記載の画像処理装置。
  5. 前記第1のプログラムロード手段は、
    前記アプリケーション固有層に係るプログラムのうち、複数の前記第2のプロセスで実行される所定のプログラムを、前記メモリの前記第1の領域及び前記第2の領域と異なる第3の領域にロードし
    前記2のプロセスが、前記第1の領域及び前記第3の領域を前記第1のプロセスと共有することを特徴とする請求項1に記載の画像処理装置。
  6. 前記第1のプロセスが、
    前記サービス層に係るプログラムを実行する第1のプログラム実行手段を有することを特徴とする請求項1に記載の画像処理装置。
  7. 当該画像処理装置において提供される複数の機能を実現するための部分であるアプリケーション共通層と当該画像処理装置において提供される各機能を実現するための固有の部分であるアプリケーション固有層とから構成されるアプリケーションロジック層と、当該画像処理装置の機能の実行要求を受け付けるユーザインタフェース層と前記実行要求を受けた当該画像処理装置の機能を実現するための処理を制御するコントロール層と前記アプリケーションロジック層から共通に利用される下位機能を実現するデバイスサービス層と当該画像処理装置のデバイスを制御するデバイス制御層とから構成されるサービス層とを有し、当該画像処理装置の機能を実現するために使用するメモリの一部を共有する第1のプロセスと、第2のプロセスとを有する画像処理装置のアプリケーション起動方法であって、
    前記第1のプロセスが、
    前記サービス層に係るプログラムと、前記アプリケーション共通層に係るプログラムとを、前記メモリの第1の領域にロードする第1のプログラムロード手順と、
    前記第2のプロセスが、
    前記アプリケーション固有層に係るプログラムを、前記メモリの前記第1の領域と異なる第2の領域にロードする第2のプログラムロード手順とを有し、
    前記第2のプロセスが、前記第1の領域を前記第1のプロセスと共有することを特徴とするアプリケーション起動方法。
JP2008064733A 2008-03-13 2008-03-13 画像処理装置及びアプリケーション起動方法 Expired - Fee Related JP5042079B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008064733A JP5042079B2 (ja) 2008-03-13 2008-03-13 画像処理装置及びアプリケーション起動方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008064733A JP5042079B2 (ja) 2008-03-13 2008-03-13 画像処理装置及びアプリケーション起動方法

Publications (2)

Publication Number Publication Date
JP2009224894A JP2009224894A (ja) 2009-10-01
JP5042079B2 true JP5042079B2 (ja) 2012-10-03

Family

ID=41241275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008064733A Expired - Fee Related JP5042079B2 (ja) 2008-03-13 2008-03-13 画像処理装置及びアプリケーション起動方法

Country Status (1)

Country Link
JP (1) JP5042079B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002082806A (ja) * 2000-07-05 2002-03-22 Ricoh Co Ltd 画像形成装置、画像形成方法およびプログラム
JP4198551B2 (ja) * 2002-07-26 2008-12-17 株式会社リコー 画像形成装置およびプログラム実行方法

Also Published As

Publication number Publication date
JP2009224894A (ja) 2009-10-01

Similar Documents

Publication Publication Date Title
JP6481724B2 (ja) 画像取扱装置、画像取扱方法及びプログラム
US9405495B2 (en) Image forming apparatus and scanned data process method
JP4759436B2 (ja) 画像取扱装置、画像処理システム、画像処理制御方法、及び画像処理制御プログラム
US8817279B2 (en) Image forming apparatus, method for controlling the image forming apparatus, and storage medium
KR20190040468A (ko) 정보 처리 장치 및 그 제어 방법
EP1852748B1 (en) Image handling apparatus, image processing system, image process controlling method, and image process controlling program product
JP2009064420A (ja) 画像形成装置および情報表示方法
JP2009137165A (ja) 画像形成装置、情報処理方法及びプログラム
JP2012029282A (ja) 無線通信装置、画像処理装置の制御システム、画像処理装置の制御方法、プログラムおよびその記録媒体
JP5042079B2 (ja) 画像処理装置及びアプリケーション起動方法
JP4246560B2 (ja) 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP2009194862A (ja) 情報取得方法、画像形成装置、および画像形成システム
JP4485749B2 (ja) 画像形成装置
JP5445051B2 (ja) 情報処理装置、apiプログラム、及びログ環境提供方法
JP5315919B2 (ja) 画像形成装置、画像形成制御方法及び画像形成制御プログラム
JP2010218469A (ja) 情報処理装置、情報処理方法、プログラムおよび記録媒体
JP5020046B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP5211877B2 (ja) 画像形成装置、ファクス送信データ処理方法、及びプログラム
JP5063718B2 (ja) 画像形成装置及びネットワークシステム
JP2005229270A (ja) 画像形成装置、インタフェース方法
JP2008141769A (ja) 画像形成装置及び印刷データ処理プログラム
JP2004254209A (ja) 画像形成装置及び印刷データ処理プログラム
JP2010178060A (ja) 画像形成装置、画像処理方法および画像形成プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120518

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: 20120612

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: 20120710

R150 Certificate of patent or registration of utility model

Ref document number: 5042079

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150720

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees