(57)【要約】【課題】機能の増加によるハードウェア資源の消費を軽減しつつ、外部の機器からのメッセージを解析して処理を実施する画像処理装置及び処理振分け方法を提供することを目的とする。【解決手段】外部の機器から受信したメッセージを解析してメッセージに応じた処理を実施する画像処理装置であって、外部の機器との間でメッセージを送受信するメッセージ送受信手段４８と、外部の機器からメッセージ送受信手段４８が受信したメッセージに含まれる所定の情報に基づき、メッセージにより要求された処理を特定し、特定した処理に応じてメッセージの送信先を決定して、送信先へメッセージを送信するメッセージ制御手段６２と、メッセージにより要求された処理を実施する１つ以上の処理実施手段とを有することにより上記課題を解決する。【選択図】図６
2009111785.tif 000002
【特許請求の範囲】
【請求項１】
外部の機器から所定のメッセージを受信し、前記メッセージを解析して前記メッセージに応じた処理を実施する画像処理装置であって、
前記外部の機器との間で前記メッセージを送受信するメッセージ送受信手段と、
前記外部の機器から前記メッセージ送受信手段が受信した前記メッセージに含まれる所定の情報に基づき、前記メッセージにより要求された処理を特定し、特定した処理に応じて前記メッセージの送信先を決定して、前記送信先へ前記メッセージを送信するメッセージ制御手段と、
前記メッセージにより要求された処理を実施する１つ以上の処理実施手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記メッセージ制御手段は、前記メッセージに含まれる前記メッセージにより要求される処理を表す情報に基づき、前記メッセージにより要求された処理を特定することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記メッセージ制御手段は、前記メッセージにより要求される処理を表す情報と、前記メッセージの送信先とが対応付けられたテーブルを参照し、前記メッセージに含まれる前記メッセージにより要求される処理を表す情報に基づき、前記メッセージの送信先を決定することを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記メッセージ送受信手段は、前記処理実施手段から受信した情報から前記メッセージを生成し、作成した前記メッセージを前記外部の機器へ送信することを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記メッセージ制御手段は、特定した前記処理を実施する処理実施手段を有していなければ、前記メッセージの送信元である前記外部の機器へ、前記処理を実施する処理実施手段の追加を要求する前記メッセージを送信することを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記メッセージ制御手段は、前記外部の機器へ前記処理を実施する処理実施手段の追加を要求したあと、前記処理を実施する処理実施手段が追加されると、前記外部の機器へ前記処理を実施する処理実施手段が追加された旨を通知することを特徴とする請求項５記載の画像処理装置。
【請求項７】
前記処理を実施する処理実施手段の追加は、前記外部の機器から前記処理を実施する処理実施手段の追加が要求された前記処理実施手段の提供装置によって実施されることを特徴とする請求項６記載の画像処理装置。
【請求項８】
外部の機器から所定のメッセージを受信し、前記メッセージを解析して前記メッセージに応じた処理を実施する画像処理装置における処理振分け方法であって、
前記外部の機器との間で前記メッセージを送受信するメッセージ送受信手段により前記メッセージを受信するメッセージ受信ステップと、
前記メッセージ送受信手段から前記メッセージを受信したメッセージ制御手段が、前記メッセージに含まれる所定の情報に基づき、前記メッセージにより要求された処理を特定する処理特定ステップと、
前記メッセージ制御手段が、前記特定した処理に応じて前記メッセージの送信先を決定して、前記送信先へ前記メッセージを送信するメッセージ送信ステップと、
１つ以上の処理実施手段が、前記メッセージにより要求された処理を実施する処理実施ステップと
を有することを特徴とする処理振分け方法。
【請求項９】
前記処理特定ステップは、前記メッセージに含まれる前記メッセージにより要求される処理を表す情報に基づき、前記メッセージにより要求された処理を特定することを特徴とする請求項８記載の処理振分け方法。
【請求項１０】
前記処理特定ステップは、前記メッセージにより要求される処理を表す情報と、前記メッセージの送信先とが対応付けられたテーブルを参照し、前記メッセージに含まれる前記メッセージにより要求される処理を表す情報に基づき、前記メッセージの送信先を決定することを特徴とする請求項８記載の処理振分け方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び処理振分け方法に係り、特に外部の機器からのメッセージを解析して処理を実施する画像処理装置及びその画像処理装置における処理振分け方法に関する。
【背景技術】
【０００２】
画像処理装置はＰＣ（Personal Computer）等の外部機器（外部の機器）とネットワークなどの所定のデータ通信手段を介して受け付けた動作要求に応じて、画像処理装置が搭載する機能（搭載機能）により、要求された処理を行っている。従来の画像処理装置には外部の機器からＸＭＬ（Extensible Markup Language）を利用したＳＯＡＰ（Simple Object Access Protocol）により要求を受信するものがあった。
【０００３】
外部の機器から所定の処理を画像処理装置に対して要求する場合には、外部の機器からの要求を所定の形式で定義した構造化データ（以下、ＳＯＡＰメッセージという）により画像処理装置へ送信し、画像処理装置が要求に応じて処理を行った後に、その結果をまとめたＳＯＡＰデータを外部の機器へ送信するというＳＯＡＰを利用したメッセージ交換方式が広く採用されている（例えば引用文献１参照）。
【０００４】
ＳＯＡＰとは、ＸＭＬをベースとしたメッセージ交換の為のプロトコル仕様で、ＨＴＴＰ（Hypertext Transfer Protocol）やＳＭＴＰ（Simple Mail Transfer Protocol）などのプロトコルの上位に位置し、そのパケットの中でＳＯＡＰメッセージの交換を行うためのプロトコルである。ＳＯＡＰは、送受信するＳＯＡＰメッセージにＩＰアドレスやポート番号などの宛先情報や所定の処理を指示するアクション情報などのＸＭＬ文書本体以外の付加情報を付加できる。
【０００５】
このように、外部の機器とのメッセージ交換にＳＯＡＰを利用することで、画像処理装置は自機の情報を外部の機器に提供したり、外部の機器からの要求に応じてプロッタやスキャナ等の搭載機能により処理を行ったりすることができる。複合機は外部の機器から受信したＳＯＡＰメッセージを解析し、実施する処理の切り分けを行っていた。
【特許文献１】特開２００５―２８４９８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、複合機のような複数の機能を有する画像処理装置では、各機能が動作するときに使用するメモリ空間が異なるように、それぞれ別のプロセスで動作するように設計されている。このようなマルチプロセス環境では、ＳＯＡＰを利用したメッセージ交換を行うモジュールが機能ごとに実装されている。このような場合、従来の画像処理装置はＳＯＡＰを利用したメッセージ交換を行うモジュール毎に通信ポートを用意しなければならないという問題があった。
【０００７】
また、従来の画像処理装置はＳＯＡＰを利用したメッセージ交換を行うモジュールが機能ごとに実装されることから、機能を増やす毎に、ＳＯＡＰを利用したメッセージ交換を行うモジュールのサイズが増大し、メモリなどの記憶領域を余分に消費してしまうという問題があった。
【０００８】
このように、従来の画像処理装置は、提供する機能を増やしていくと、通信ポートや記憶領域などのハードウェア資源を余分に消費してしまうという問題があった。
【０００９】
本発明は、上記の点に鑑みなされたもので、機能の増加によるハードウェア資源の消費を軽減しつつ、外部の機器からのメッセージを解析して処理を実施する画像処理装置及び処理振分け方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明は、外部の機器から所定のメッセージを受信し、前記メッセージを解析して前記メッセージに応じた処理を実施する画像処理装置であって、前記外部の機器との間で前記メッセージを送受信するメッセージ送受信手段と、前記外部の機器から前記メッセージ送受信手段が受信した前記メッセージに含まれる所定の情報に基づき、前記メッセージにより要求された処理を特定し、特定した処理に応じて前記メッセージの送信先を決定して、前記送信先へ前記メッセージを送信するメッセージ制御手段と、前記メッセージにより要求された処理を実施する１つ以上の処理実施手段とを有することを特徴とする。
【００１１】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によれば、機能の増加によるハードウェア資源の消費を軽減しつつ、外部の機器からのメッセージを解析して処理を実施する画像処理装置及び処理振分け方法を提供可能である。
【発明を実施するための最良の形態】
【００１３】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。実施例では、画像処理装置の一例としての複合機を例に説明するが、如何なる画像処理装置であってもよい。
【００１４】
（ハードウェア構成）
本発明による複合機１００のハードウェア構成について図１を用いて説明する。図１は本発明による複合機のハードウェア構成図である。図１の複合機１００は、操作パネル１１と、記憶メディアＩ／Ｆ１２と、コントローラ１３と、データ通信Ｉ／Ｆ１４と、ＨＤＤ（Hard Disk Drive）１７と、スキャナ１５と、プロッタ１６とが、それぞれ相互に接続されるように構成されている。
【００１５】
操作パネル１１は入力装置１１ａと表示装置１１ｂとを有している。入力装置１１ａはハードウェアキーなどで構成されており、複合機１００に各操作信号を入力するのに用いられる。また、表示装置１１ｂは、ディスプレイなどで構成され、例えば画像形成動作に関する各種情報を表示する。データ通信Ｉ／Ｆ１４は、インタフェース装置１４ａを有しており、複合機１００をデータ伝送路であるネットワークなどに接続するインタフェースである。ＨＤＤ１７は複合機１００で取り扱われる受信文書データや読み取り画像データなどの各種データを格納している。また、ＨＤＤ１７は、これらの各種データを、所定のファイルシステムやＤＢ（Data Base）により管理している。
【００１６】
ＨＤＤ１７に格納される各種データの中には、例えば、デジタルカメラ等の外部の機器によって記録された電子データも含まれる。このような場合、電子データはメモリカードなどの記録媒体１２ｂによって複合機１００に提供されるか、データ伝送路であるネットワークなどを通じてアップロードされる。記録媒体１２ｂは、記憶メディアＩ／Ｆ１２が有するドライブ装置１２ａにセットされ、各種データが記録媒体１２ｂからドライブ装置１２ａを介してＨＤＤ１７に格納される。
【００１７】
コントローラ１３はＲＯＭ（Read Only Memory）１３ａ，ＲＡＭ（Random Access Memory）１３ｂ及びＣＰＵ（Central Processing Unit）１３ｃを有している。ＲＯＭ１３ａは複合機１００が起動されるときに実行されるプログラムや各種データを格納している。また、ＲＡＭ１３ｂは、ＲＯＭ１３ａやＨＤＤ１７から読み出された各種プログラムやデータを一時保持する。更に、ＣＰＵ１３ｃは、ＲＡＭ１３ｂが一時保持しているプログラムを実行する。
【００１８】
コントローラ１３は、例えば、データ通信Ｉ／Ｆ１４を介して印刷データを受信した場合に、ＲＯＭ１３ａからＲＡＭ１３ｂ上に読み出された、ＰＤＬ（Page Description Language）を解釈可能なプログラム（ＰＤＬパーサ）をＣＰＵ１３ｃにより実行し、印刷データを解釈してビットマップイメージを生成する。
【００１９】
スキャナ１５は画像読取装置１５ａを有しており、読み取り面に配置された原稿を光学的に読み取り画像データを生成する。プロッタ１６は印刷装置１６ａを有しており、例えば電子写真プロセス方式によってビットマップイメージを記録紙に印刷する。本発明による複合機１００では、上記したハードウェア構成により、コピー、プリンタ、ファクシミリ又はスキャナなどの複数の機能を実現している。
【００２０】
（ソフトウェア構成）
本発明による複合機１００のソフトウェア構成について図２を用いて説明する。図２は本発明による複合機のソフトウェア構成図である。
【００２１】
図２の複合機１００は、図１に示したプロッタ１６と、スキャナ１５と、ファクシミリやＨＤＤ１７などのハードウェアリソース１０１とを有するとともに、起動部１４０により起動されるプラットフォーム１２０及びアプリケーション１３０を含むように構成されるソフトウェア群１１０とを備えている。
【００２２】
プラットフォーム１２０は、アプリケーション１３０からの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービス１５０と、１つ以上のハードウェア資源の管理を行い、コントロールサービス１５０からの獲得要求を調停するＳＲＭ（System Resource Manager）１２３と、ＯＳ（Operating System）１２１とを有する。
【００２３】
コントロールサービス１５０は、複数のサービスモジュールから形成され、ＳＣＳ（System Control Service）１２２と、ＥＣＳ（Engine Control Service）１２４と、ＭＣＳ（Memory Control Service）１２５と、ＯＣＳ（Operation panel Control Service）１２６と、ＦＣＳ（FAX Control Service）１２７と、ＮＣＳ（Network Control Service）１２８とを有するように構成される。
【００２４】
なお、このプラットホーム１２０は、予め定義されたメソッドによりアプリケーション１３０から処理要求を受信可能とするＡＰＩ（Application Program Interface）１０３と、プロッタ１６やスキャナ１５、その他のハードウェアリソース１０１等をハードウェア資源を利用する上位層からの要求に従ってＯＳ１２１を介して制御するときのインタフェースであるエンジンＩ／Ｆ１０２を有する。
【００２５】
ＯＳ１２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットフォーム１２０並びにアプリケーション１３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００２６】
ＳＲＭ１２３は、ＳＣＳ１２２とともにシステムの制御およびリソースの管理を行うものであり、プロッタ１６やスキャナ１５などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（例えば、セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４ Ｉ／Ｆ、ＲＳ２３２Ｃ Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求に従って調停を行い、実行制御する。
【００２７】
具体的には、このＳＲＭ１２３は要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、ＳＲＭ１２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など。）を直接実施している。
【００２８】
ＳＣＳ１２２は、アプリ管理、操作部制御、システム画面表示、ＬＥＤ（Light Emitting Diode）表示、リソース管理、割り込みアプリ制御を行うものである。ＥＣＳ１２４は、プロッタ１６、スキャナ１５などから構成されるハードウェア資源のエンジンを制御するものである。
【００２９】
ＭＣＳ１２５は、画像メモリの取得および解放、ＨＤＤの利用、画像データの圧縮および伸張などを行うものである。ＯＣＳ１２６は、オペレータと本体制御間の情報伝達手段となる操作パネル１１を制御するモジュールである。
【００３０】
ＦＣＳ１２７は、システムコントローラの各アプリ層からＰＳＴＮ（Public Switched Telephone Networks）／ＩＳＤＮ（Integrated Services Digital Network）を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ：Static Random Access Memory）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供するものである。ＦＣＳ１２７には、そのサブプロセスであるＦＣＵハンドラ（ＦＣＵＨ）が起動される。このＦＣＵＨは、ＦＣＳ１２７からの指令によりファクシミリ送受信のときにファクシミリエンジンのデバイスドライバを制御するものである。
【００３１】
ＮＣＳ１２８は、ネットワークＩ／Ｏを必要とするアプリケーション１３０に対して共通に利用できるサービスを提供するためのモジュール群である。
【００３２】
本発明によるデータ通信機能は、ＮＣＳ１２８が有している。ＮＣＳ１２８を構成する具体的なソフトウェア部品（プログラム）については、後述の図３を用いて説明する。
【００３３】
アプリケーション１３０は、ＰＣＬやポストスクリプト（ＰＳ）などのＰＤＬパーサを有するプリンタ用のアプリケーションであるプリンタアプリ１１１と、コピー用アプリケーションであるコピーアプリ１１２と、ファクシミリ用アプリケーションであるファックスアプリ１１３と、スキャナ用アプリケーションであるスキャナアプリ１１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ１１５と、工程検査用アプリケーションである工程検査アプリ１１６と、配信用のアプリケーションである配信アプリ１１７とを有している。
【００３４】
これらの各コントロールサービスとＳＲＭ１２３と各アプリケーション１３０とは１つ以上のメソッドを有するオブジェクトであり、このオブジェクトを起動することによりそれぞれプロセスとしてＯＳ１２１上に生成されて実行される。そして、各プロセス内部には複数のスレッドが起動され、ＯＳ１２１の管理下でこれらのスレッドのＣＰＵ占有時間を切り替えることにより並列実行が実現されている。このため、複合機１００はプロセス切り替えによる並列実行と比較して、並列実行時の処理速度の向上が図られている。
【００３５】
なお、各アプリプロセスと各コントロールサービスプロセスとは、メソッドの実行によるプロセス間通信によってメッセージの送受信が行われる。ここからは、複合機１００に含まれるＮＣＳ１２８の詳細について説明する。
【００３６】
図３は、本発明による複合機に含まれるＮＣＳのソフトウェア構成図である。図３に示したＮＣＳ１２８のソフトウェア構成は、主に、各プロトコルによって受信したデータを各アプリケーション１３０に振り分け、各アプリケーション１３０から受信したデータをネットワーク側に送信する際の仲介を行うモジュール群で構成される。そのモジュール群の中には、ＷＳ−ＭＦＰモジュール群２０がある。
【００３７】
ここで上記の「ＷＳ」とは、Ｗｏｒｌｄ Ｗｉｄｅ Ｗｅｂ Ｃｏｎｓｏｒｔｉｕｍ（Ｗ３Ｃ）のワーキンググループ（ＷＧ）により進められているＸＭＬをベースとした標準化Ｗｅｂサービスの意味である。「ＷＳ」については、その詳細が開示されている公開文献「Devices Profile for Web Services」を開示し、ここでの説明を省略する。公開文献の入手先ＵＲＬは、"http://specs.xmlsoap.org/ws/2006/02/devprof/devicesprofile.pdf"である。以降の説明の中で、「ＷＳ」がつく機能名やモジュール名は、この標準化Ｗｅｂサービスに準拠して設計された機能やモジュールである。例えば、ＷＳ−ＭＦＰモジュール群２０は、標準化Ｗｅｂサービスに準拠して設計された複合機用のモジュール群を示している。
【００３８】
図３に示したＷＳ−ＭＦＰモジュール群２０は、外部の機器と複合機１００が有するプリンタアプリ１１１との間で、プリンタ関連のデータを取り扱うＷＳ−Ｐｒｉｎｔｅｒ２１ｐや、外部機器と複合機１００が有するスキャナアプリ１１４との間でスキャナ関連のデータを取り扱うＷＳ−Ｓｃａｎｎｅｒ２１ｓ、外部機器と複合機１００との間で機器関連のデータを取り扱うＤＦＭモジュール２２等のソフトウェア部品から構成される。上記各ソフトウェア部品は、それぞれ別プロセスで起動され、動作するように実装される。
【００３９】
例えば、ＷＳ−Ｐｒｉｎｔｅｒ２１ｐは、ＤＦＭモジュール２２からのプリンタアプリ１１１に関する情報の取得要求に応答したり、外部機器からの印刷要求をプリンタアプリ１１１に通知したりする機能である。ＤＦＭモジュール２２は、ＷＳ−Ｐｒｉｎｔｅｒ２１ｐやＷＳ−Ｓｃａｎｎｅｒ２１ｓなどからプリンタアプリ１１１やスキャナアプリ１１４などのアプリケーション情報を取得し、取得した情報を基に外部機器に対して、複合機１００が提供可能な標準化Ｗｅｂサービスに関する情報を含む機器情報を送信する。
【００４０】
上記において、ＤＦＭモジュール２２がＷＳ−Ｐｒｉｎｔｅｒ２１ｐの保有するプリンタ関連の情報を取得する場合について説明したが、ＤＦＭモジュール２２及びＷＳ−Ｐｒｉｎｔｅｒ２１ｐは互いに別のプロセスによって動作しているため、プロセス間通信によりデータの送受信を行う。このように、複合機１００は、上記構成によるＮＣＳ１２８を有することにより、外部の機器との間でデータの送受信を行うことができる。
【００４１】
ここで、本発明の理解を容易とするため、従来の複合機１００におけるＷＳ−ＭＦＰモジュール群２０及び各アプリケーション１３０により生成されるプロセスの関係について説明する。
【００４２】
図４は従来の複合機におけるＷＳ−ＭＦＰモジュール群及び各アプリケーションにより生成されるプロセスの関係を表した構成図である。図４において、ｗｓｄｅｖｄ４１はＤＦＭモジュール２２により生成されるプロセス（デーモン）である。Ｓｃａｎｎｅｒアプリ４２はスキャナアプリ１１４により生成されるプロセスである。Ｐｒｉｎｔｅｒアプリ４３はプリンタアプリ１１１により生成されるプロセスである。
【００４３】
また、ｗｓｓｃｎｄ４４ｓはＷＳ−Ｓｃａｎｎｅｒ２１ｓにより生成されるプロセスである。ｗｓｐｒｎｄ４４ｐはＷＳ−Ｐｒｉｎｔｅｒ２１ｐにより生成されるプロセスである。
【００４４】
ｗｓｓｃｎｄ４４ｓは、ＷＳ−Ｓｃａｎｎｅｒ処理部分４５ｓ，ｗｓ−ａｄｄｒｅｓｓｉｎｇ４６ｓ，ｗｓ−ｅｖｅｎｔｉｎｇ４７ｓ，ｇＳＯＡＰ４８ｓを含むように構成されている。ｗｓｐｒｎｄ４４ｐは、ＷＳ−Ｐｒｉｎｔｅｒ処理部分４５ｐ，ｗｓ−ａｄｄｒｅｓｓｉｎｇ４６ｐ，ｗｓ−ｅｖｅｎｔｉｎｇ４７ｐ，ｇＳＯＡＰ４８ｐを含むように構成されている。
【００４５】
Ｓｃａｎｎｅｒアプリ４２及びｗｓｓｃｎｄ４４ｓはスキャナサービス（機能）を提供する。Ｐｒｉｎｔｅｒアプリ４３及びｗｓｐｒｎｄ４４ｐはプリンタサービス（機能）を提供する。
【００４６】
ＷＳ−Ｓｃａｎｎｅｒ処理部分４５ｓはＷＳ−Ｓｃａｎｎｅｒ２１ｓに対応した処理を行うものである。ＷＳ−Ｐｒｉｎｔｅｒ処理部分４５ｐはＷＳ−Ｐｒｉｎｔｅｒ２１ｐに対応した処理を行うものである。ｗｓ−ａｄｄｒｅｓｓｉｎｇ４６ｓ及び４６ｐは例えばＳＯＡＰメッセージの信頼性を確保するものである。ｗｓ−ｅｖｅｎｔｉｎｇ４７ｓ及び４７ｐはスキャナ機能又は印刷機能を利用する外部機器から送信された画像読み取り要求又は印刷要求などの処理要求イベントを複合機１００が有するスキャナアプリ１１４又はプリンタアプリ１１１に通知する。
【００４７】
ｇＳＯＡＰ４８ｓ及び４８ｐはＳＯＡＰメッセージ送受信機能と、ＳＯＡＰメッセージ生成機能とを含むように構成される。ｇＳＯＡＰ４８ｓ及び４８ｐは、下位層にあたるＨＴＴＰやＳＭＴＰ等の通信プロトコルにより、外部の機器との間で、ＳＯＡＰメッセージを送受信する。また、ｇＳＯＡＰ４８ｓ及び４８ｐはＳｃａｎｎｅｒアプリ４２又はＰｒｉｎｔｅｒアプリ４３から受信したデータを基にＳＯＡＰメッセージを生成する。
【００４８】
ｇＳＯＡＰ４８ｓ及び４８ｐはＳｃａｎｎｅｒアプリ４２又はＰｒｉｎｔｅｒアプリ４３から受け取ったデータをＳＯＡＰメッセージに変換し、外部の機器との間のメッセージ交換を実現している。ｇＳＯＡＰ４８ｓ及び４８ｐについては、その詳細が開示されている開発元の公式サイトである「gSOAP：C/C++ Web Services and Clients」へのＵＲＬ（http://www.cs.fsu.edu/~engelen/soap.html）を開示し、ここでの説明を省略する。
【００４９】
図４に示すように従来の複合機１００はスキャナサービスのｗｓ−ａｄｄｒｅｓｓｉｎｇ４６ｓ，ｗｓ−ｅｖｅｎｔｉｎｇ４７ｓ，ｇＳＯＡＰ４８ｓと、プリンタサービスのｗｓ−ａｄｄｒｅｓｓｉｎｇ４６ｐ，ｗｓ−ｅｖｅｎｔｉｎｇ４７ｐ，ｇＳＯＡＰ４８ｐとが重複している。また、従来の複合機１００はスキャナサービス及びプリンタサービス毎に外部の機器との通信に必要な通信ポートをオープンしている。
【００５０】
次に、例えば図４に示す従来の複合機１００へ新たなカメラサービスを追加した例について説明する。図５は従来の複合機にサービスを追加した例を表す構成図である。図５では図４に示した従来の複合機１００の構成に、Ｃａｍｅｒａアプリ５１，ｗｓｃｍｒｄ４４ｃが追加されている。
【００５１】
Ｃａｍｅｒａアプリ５１はカメラアプリにより生成されるプロセスである。ｗｓｃｍｒｄ４４ｃはＷＳ−Ｃａｍｅｒａ処理部分４５ｃ，ｗｓ−ａｄｄｒｅｓｓｉｎｇ４６ｃ，ｗｓ−ｅｖｅｎｔｉｎｇ４７ｃ，ｇＳＯＡＰ４８ｃを含むように構成されている。Ｃａｍｅｒａアプリ５１及びｗｓｃｍｒｄ４４ｃはカメラサービス（機能）を提供する。
【００５２】
図５に示すように、従来の複合機１００はカメラサービスのｗｓ−ａｄｄｒｅｓｓｉｎｇ４６ｃ，ｗｓ−ｅｖｅｎｔｉｎｇ４７ｃ，ｇＳＯＡＰ４８ｃが更に必要となり、メモリなどの記憶領域を余分に消費してしまう。また、従来の複合機１００はカメラサービスも外部の機器との通信に必要な通信ポートを独自にオープンする為、カメラサービス用の通信ポートを新たに用意しなければならない。結果として、従来の複合機１００は、動的にサービスを追加することができなかった。
【００５３】
そこで、本発明による複合機１００は図６に示すような構成とした。図６は本発明による複合機のＷＳ−ＭＦＰモジュール群及び各アプリケーションにより生成されるプロセスの関係を表した構成図である。
【００５４】
図６の構成図は、図４に示したｗｓｓｃｎｄ４４ｓ及びｗｓｐｒｎｄ４４ｐが一つのＷＳデーモン６１として構成されている。図６のＷＳデーモン６１は、ＷＳ−Ｓｃａｎｎｅｒ処理部分４５ｓ，ＷＳ−Ｐｒｉｎｔｅｒ処理部分４５ｐ，ｗｓ−ａｄｄｒｅｓｓｉｎｇ４６，ｗｓ−ｅｖｅｎｔｉｎｇ４７，ｇＳＯＡＰ４８及びＡｃｔｉｏｎ  Ｄｉｓｐａｔｃｈｅｒ６２を含むように構成されている。
【００５５】
図６のＷＳデーモン６１は、Ａｃｔｉｏｎ  Ｄｉｓｐａｔｃｈｅｒ６２を追加する構成としたことにより、スキャナサービス等の各種サービス間でｗｓ−ａｄｄｒｅｓｓｉｎｇ４６，ｗｓ−ｅｖｅｎｔｉｎｇ４７，ｇＳＯＡＰ４８を共通化でき、メモリなどの記憶領域が余分に消費されることを防止できる。また、図６のＷＳデーモン６１は各種サービス間で外部の機器との通信に必要な通信ポートも共通化できる。
【００５６】
なお、Ｓｃａｎｎｅｒアプリ４２及びＰｒｉｎｔｅｒアプリ４３はＡｃｔｉｏｎ  Ｄｉｓｐａｔｃｈｅｒ６２に対して後述のようにサービスの登録を行う。サービスの登録が行われることにより、Ａｃｔｉｏｎ  Ｄｉｓｐａｔｃｈｅｒ６２はＳＯＡＰメッセージに含まれる「Ａｃｔｉｏｎ」からサービスを判断し、ＳＯＡＰメッセージにより要求された処理をサービスに振り分ける。
【００５７】
Ａｃｔｉｏｎ  Ｄｉｓｐａｔｃｈｅｒ６２は、ｇＳＯＡＰ４８を介して外部の機器から受信したＳＯＡＰメッセージを、ＳＯＡＰメッセージの内容に応じて、スキャナサービス又はプリンタサービスに振り分ける（メッセージ内容を通知する）。また、その逆に、Ｓｃａｎｎｅｒアプリ４２及びＰｒｉｎｔｅｒアプリ４３から受け付けたデータをｇＳＯＡＰ４８へ送信する。
【００５８】
このように、Ａｃｔｉｏｎ  Ｄｉｓｐａｔｃｈｅｒ６２は、ｇＳＯＡＰ４８を介して外部の機器と複合機１００が有する各種サービスとの間で行うＳＯＡＰメッセージのディスパッチ機能を実現している。なお、Ａｃｔｉｏｎ  Ｄｉｓｐａｔｃｈｅｒ６２の処理の詳細は後述する。
【００５９】
次に、例えば図６に示す本発明による複合機１００へ新たなカメラサービスを追加した例について説明する。図７は本発明による複合機にサービスを追加した例を表す構成図である。図７では図６に示した本発明による複合機１００の構成に、Ｃａｍｅｒａアプリ５１及びＷＳ−Ｃａｍｅｒａ処理部分４５ｃが追加されている。
【００６０】
Ｃａｍｅｒａアプリ５１はカメラアプリにより生成されるプロセスである。ＷＳ−Ｃａｍｅｒａ処理部分４５ｃはＷＳデーモン６１に含まれるように構成されている。Ｃａｍｅｒａアプリ５１及びＷＳ−Ｃａｍｅｒａ処理部分４５ｃはカメラサービス（機能）を提供する。
【００６１】
図７に示すように、本発明による複合機１００はスキャナサービス，プリンタサービス及びカメラサービスにより、ｗｓ−ａｄｄｒｅｓｓｉｎｇ４６，ｗｓ−ｅｖｅｎｔｉｎｇ４７，ｇＳＯＡＰ４８を共通化できるので、メモリなどの記憶領域が余分に消費されることを防止できる。また、本発明による複合機１００はスキャナサービス，プリンタサービス及びカメラサービスにより外部の機器との通信に必要な通信ポートも共通化できる。結果として、本発明による複合機１００は動的なサービスの追加が容易である。
【００６２】
次に、Ａｃｔｉｏｎ  Ｄｉｓｐａｔｃｈｅｒ６２の処理の詳細について説明する。図８はＡｃｔｉｏｎ  Ｄｉｓｐａｔｃｈｅｒの処理内容を表した模式図である。図８のＡｃｔｉｏｎ  Ｄｉｓｐａｔｃｈｅｒ６２は、レスポンスのキューイングと送信とを行う処理部７１と、イベントの振分け処理部７２と、サービスの登録処理部７３とを行う。
【００６３】
サービスの登録処理部７３は、アプリケーション１３０からのサービスの登録を受信するとイベントの振分け処理部７２へサービスの登録通知を送信する。イベントの振分け処理部７２は、サービスの登録通知により、スキャナサービス等の各種サービスとＳＯＡＰメッセージに含まれる「Ａｃｔｉｏｎ」とが対応付けられた図９のテーブルをサービスの登録通知に従って更新する。図９はＳＯＡＰメッセージにより要求された処理をサービスに振り分ける為のテーブルを表した一例の構成図である。
【００６４】
例えばカメラサービスの登録通知を受信すると、イベントの振分け処理部７２はカメラサービスと、ＳＯＡＰメッセージに含まれる「Ａｃｔｉｏｎ」である「ＧｅｔＣａｍｅｒａＥｌｅｍｅｎｔｓ」とを対応付けるように図９のテーブルを更新する。
【００６５】
イベントの振分け処理部７２は、ｇＳＯＡＰ４８を介して外部の機器から図１０のようなＸＭＬを受信すると、ＸＭＬの「Ａｃｔｉｏｎ」が記載されている部分８１から「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」を特定し、図９のテーブルを参照して「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」に対応するプリンタサービスをＳＯＡＰメッセージの送信先に決定する。
【００６６】
なお、イベントの振分け処理部７２は、特定した「Ａｃｔｉｏｎ」が図９のテーブルに無ければサービス要求レスポンスをレスポンスのキューイングと送信とを行う処理部７１に送信する。また、アプリケーション１３０はレスポンスのキューイングと送信とを行う処理部７１にデータを送信する。
【００６７】
レスポンスのキューイングと送信とを行う処理部７１はイベントの振分け処理部７２から受信したサービス要求レスポンス及びアプリケーション１３０から受信したデータをレスポンスとしてｇＳＯＡＰ４８経由で外部の機器に送信する。
【００６８】
図１１はイベントの振分け処理部の処理を表した一例のフローチャートである。ＸＭＬを受信すると、イベントの振分け処理部７２はステップＳ１に進み、ＸＭＬの「Ａｃｔｉｏｎ」を特定し、図９のようなテーブルを参照して、ＸＭＬの「Ａｃｔｉｏｎ」に対応するサービスを決定する。
【００６９】
ステップＳ１に進み、決定したサービスがプリンタサービスであれば、イベントの振分け処理部７２はＳＯＡＰメッセージの送信先をプリンタサービスに決定し、そのＳＯＡＰメッセージをプリンタサービスに振り分ける。
【００７０】
ステップＳ２に進み、決定したサービスがスキャナサービスであれば、イベントの振分け処理部７２はＳＯＡＰメッセージの送信先をスキャナサービスに決定し、そのＳＯＡＰメッセージをスキャナサービスに振り分ける。
【００７１】
また、ステップＳ３に進み、決定したサービスがカメラサービスであれば、イベントの振分け処理部７２はＳＯＡＰメッセージの送信先をカメラサービスに決定し、そのＳＯＡＰメッセージをカメラサービスに振り分ける。なお、ステップＳ３に進み、イベントの振分け処理部７２は決定したサービスがカメラサービスでなければ、サービス要求レスポンスを、レスポンスのキューイングと送信とを行う処理部７１に送信する。上記したサービス要求レスポンスにより、ユーザは必要なサービスがない場合に、必要なサービスを動的に複合機１０へインストールすることができる。
【００７２】
次に、従来の複合機１００の処理について通信ポートに着目して説明する。図１２は従来の複合機の処理について通信ポートに着目して説明する為の説明図である。図１２に示すように、従来の複合機１００はプリンタサービス，スキャナサービス及びカメラサービス毎に通信ポートを別々にオープンしている。つまり、従来の複合機１００はサービスを追加する毎に新たに通信ポートを用意しなければならない。
【００７３】
図１３は本発明による複合機の処理について通信ポートに着目して説明する為の説明図である。図１３に示すように、本発明による複合機１００はプリンタサービス，スキャナサービス及びカメラサービスで１つの通信ポートをオープンすればよい。つまり、本発明による複合機１００はプリンタサービス，スキャナサービス及びカメラサービスで外部の機器との通信に必要な通信ポートを共通化できる。
【００７４】
各種サービスで通信ポートを共通化することにより、本発明による複合機１００は悪意のあるポートスキャンによる脆弱性に対し、１つの通信ポートでアクセスコントロールすることにより効率的に対処できる。
【００７５】
また、本発明による複合機１００は前述したように、ＳＯＡＰメッセージにより要求された処理に対応するサービスが無ければ、サービス要求レスポンスを外部の機器に送信してＳＯＡＰメッセージにより要求された処理に対応するサービスを図１４に示すように動的にインストールさせることができる。
【００７６】
図１４は複合機に各種サービスを動的に導入するシステムの一例の構成図である。図１４に示したシステムは、複合機１００，外部の機器としてのクライアント２００，サービスセンター３００がデータ通信可能に接続された構成である。
【００７７】
ステップＳ１１に進み、複合機１００はクライアント２００からサポートされていないサービス（インストールされていないサービス）への要求を受信する。複合機１００はクライアント２００からサポートされていないサービスへの要求を受信した為、前述したようにサービス要求レスポンス（ＵＲＬ）をクライアント２００へ送信する。
【００７８】
ステップＳ１３に進み、クライアント２００は複合機１００から受信したサービス要求レスポンス（ＵＲＬ）により、必要に応じて複合機１００へのサービスの導入（ファームウェアの更新）をサービスセンター３００へ要求する。
【００７９】
ステップＳ１４に進み、サービスセンター３００は、クライアント２００から受信したサービス要求レスポンス（ＵＲＬ）により、複合機１００のファームウェアを更新することで複合機１００へサービスを動的に導入する。ステップＳ１５に進み、複合機１００はファームウェアの更新が終了すると、クライアント２００へアップデート完了通知を送信する。これにより、クライアント２００は新たなサービスがサポートされたことを認識できる。
【００８０】
また、本発明による複合機１００は各種サービスの削除や更新を自機の操作パネルから行うことができる。図１５は各種サービスの削除や更新を複合機の操作パネルから行う手順を表したイメージ図である。
【００８１】
ユーザは複合機１００の操作パネルに表示された機能選択画面４００から削除又は更新を行いたいスキャナサービス等のサービスを選択する。サービスが選択されると、複合機１００は作業画面４０１を操作パネルに表示する。作業画面４０１はファームウェア削除又はファームウェア更新を選択するものである。
【００８２】
作業画面４０１からファームウェア削除又はファームウェア更新が選択されると、複合機１００は操作パネルに確認画面４０２を表示する。確認画面４０２は作業画面４０１から選択されたファームウェア削除又はファームウェア更新を処理するか否かをユーザに確認するものである。
【００８３】
確認画面４０２から「はい」が選択されると、複合機１００は操作パネルに処理中画面４０３を表示し、処理が終了すると、機能選択画面４００を操作パネルに表示する。確認画面４０２から「いいえ」が選択されると、複合機１００は操作パネルに再び作業画面４０１を表示する。
【００８４】
なお、ファームウェア削除時、複合機１００は対応するアプリケーション１３０を削除する。また、ファームウェア更新時、複合機１００は再びサービスセンター３００から動的にファームウェアを取得する。
【００８５】
以上、本発明による複合機１００は、各種サービスを増やしても通信ポートや記憶領域などのハードウェア資源を余分に消費してしまうことも無く、各種サービスの増加によるハードウェア資源の消費を軽減できる。本発明による複合機１００は各種サービスの増加によるハードウェア資源の消費を軽減できるので、動的に各種サービスを導入できる。
【００８６】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００８７】
【図１】本発明による複合機のハードウェア構成図である。
【図２】本発明による複合機のソフトウェア構成図である。
【図３】本発明による複合機に含まれるＮＣＳのソフトウェア構成図である。
【図４】従来の複合機におけるＷＳ−ＭＦＰモジュール群及び各アプリケーションにより生成されるプロセスの関係を表した構成図である。
【図５】従来の複合機にサービスを追加した例を表す構成図である。
【図６】本発明による複合機のＷＳ−ＭＦＰモジュール群及び各アプリケーションにより生成されるプロセスの関係を表した構成図である。
【図７】本発明による複合機にサービスを追加した例を表す構成図である。
【図８】Ａｃｔｉｏｎ  Ｄｉｓｐａｔｃｈｅｒの処理内容を表した模式図である。
【図９】ＳＯＡＰメッセージにより要求された処理をサービスに振り分ける為のテーブルを表した一例の構成図である。
【図１０】ＸＭＬの一例の構成図である。
【図１１】イベントの振分け処理部の処理を表した一例のフローチャートである。
【図１２】従来の複合機の処理について通信ポートに着目して説明する為の説明図である。
【図１３】本発明による複合機の処理について通信ポートに着目して説明する為の説明図である。
【図１４】複合機に各種サービスを動的に導入するシステムの一例の構成図である。
【図１５】各種サービスの削除や更新を複合機の操作パネルから行う手順を表したイメージ図である。
【符号の説明】
【００８８】
１１  操作パネル
１２  記憶メディアＩ／Ｆ
１３  コントローラ
１４  データ通信Ｉ／Ｆ
１５  スキャナ
１６  プロッタ
１７  ＨＤＤ
２０  ＷＳ−ＭＦＰモジュール群
２１ｐ  ＷＳ−Ｐｒｉｎｔｅｒ
２１ｓ  ＷＳ−Ｓｃａｎｎｅｒ
２２  ＤＦＭモジュール
４１    ｗｓｄｅｖｄ
４２    Ｓｃａｎｎｅｒアプリ
４３    Ｐｒｉｎｔｅｒアプリ
４４ｓ    ｗｓｓｃｎｄ
４４ｐ    ｗｓｐｒｎｄ
４４ｃ    ｗｓｃｍｒｄ
４５ｓ    ＷＳ−Ｓｃａｎｎｅｒ処理部分
４５ｐ    ＷＳ−Ｐｒｉｎｔｅｒ処理部分
４５ｃ    ＷＳ−Ｃａｍｅｒａ処理部分
４６ｓ，４６ｐ，４６ｃ，４６    ＷＳ−ａｄｄｒｅｓｓｉｎｇ
４７ｓ，４７ｐ，４７ｃ，４７    ＷＳ−Ｅｖｅｎｔｉｎｇ
４８ｓ，４８ｐ，４８ｃ，４８    ｇＳＯＡＰ
５１    Ｃａｍｅｒａアプリ
６１    ＷＳデーモン
６２    Ａｃｔｉｏｎ  Ｄｉｓｐａｔｃｈｅｒ
７１    レスポンスのキューイングと送信とを行う処理部
７２    イベントの振分け処理部
７３    サービスの登録処理部
１００    複合機
１０１  ハードウェアリソース
１０２  エンジンＩ／Ｆ
１０３  ＡＰＩ
１１０  ソフトウェア群
１１１  プリンタアプリ
１１２  コピーアプリ
１１３  ファクスアプリ
１１４  スキャナアプリ
１１５  ネットファイルアプリ
１１６  工程検査アプリ
１１７  配信アプリ
１２０  プラットフォーム
１２１  ＯＳ
１２２  ＳＣＳ
１２３  ＳＲＭ
１２４  ＥＣＳ
１２５  ＭＣＳ
１２６  ＯＣＳ
１２７  ＦＣＳ
１２８  ＮＣＳ
１２９  ＩＭＨ
１３０  アプリケーション
１４０  起動部
１５０  コントロールサービス
２００  クライアント
３００    サービスセンター
【図１】
2009111785.tif 000003
【図２】
2009111785.tif 000004
【図３】
2009111785.tif 000005
【図４】
2009111785.tif 000006
【図５】
2009111785.tif 000007
【図６】
2009111785.tif 000008
【図７】
2009111785.tif 000009
【図８】
2009111785.tif 000010
【図９】
2009111785.tif 000011
【図１０】
2009111785.tif 000012
【図１１】
2009111785.tif 000013
【図１２】
2009111785.tif 000014
【図１３】
2009111785.tif 000015
【図１４】
2009111785.tif 000016
【図１５】
2009111785.tif 000017