JP4373692B2 - Webサービス機能を有する画像形成装置 - Google Patents
Webサービス機能を有する画像形成装置 Download PDFInfo
- Publication number
- JP4373692B2 JP4373692B2 JP2003081245A JP2003081245A JP4373692B2 JP 4373692 B2 JP4373692 B2 JP 4373692B2 JP 2003081245 A JP2003081245 A JP 2003081245A JP 2003081245 A JP2003081245 A JP 2003081245A JP 4373692 B2 JP4373692 B2 JP 4373692B2
- Authority
- JP
- Japan
- Prior art keywords
- web service
- processing
- request
- message
- element tree
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Facsimiles In General (AREA)
Description
【発明の属する技術分野】
本発明は、Webサービスを提供する画像形成装置に係り、詳しくは、夫々異なる画像形成処理を行う複数のアプリケーションを有する画像形成装置において、接続される機器との間のデータの送受信制御に従ったメッセージ形式を意識せずに該複数のWebサービスの開発を可能とする画像形成装置を提供するものである。
【0002】
【従来の技術】
近年、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置が一般的に知られている。このような複合型の画像形成装置は、1つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピー、スキャナおよびファクシミリ装置にそれぞれ対応するアプリケーションを設け、アプリケーションの切り替えによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。
【0003】
【発明が解決しようとする課題】
しかしながら、上記従来の複合型画像形成装置において、ネットワークを介して個々のアプリケーションが画像形成処理をWebサービスとして提供する場合、そのネットワークプロトコルに従って交換されるメッセージの記述形式を解釈できるように実装されたアプリケーションを改良する必要があった。また、メッセージの記述形式がXML(eXtensible Markup Language)である場合、従来の開発方法で開発されたアプリケーションをWebサービス対応に改良するのも、また、上記従来の複合型画像形成装置に新規にWebサービス対応のアプリケーションを追加するのも、開発者にXMLの知識が要求されるため、従来の開発方法によってアプリケーションを開発することが困難であった。。
【0004】
そこで、本発明の課題は、複数のWebサービスを提供する該画像形成装置と接続される機器とで交換されるメッセージの記述形式に依存することなく、Webサービスとして機能可能なアプリケーションの開発を行うことができる画像形成装置を提供することである。
【0005】
【課題を解決するための手段】
上記課題を解決するため、本発明は、請求項1に記載されるように、ネットワークを介して接続される機器から受信したHTTPリクエスト内の要求メッセージに基づいて処理を実行し、その処理結果をWebサービスとして提供する複数のWebサービス処理手段と、
上記要求メッセージの構成を示す要素木のうち要素と値の関連付けが繰り返される木構造において各関連付け毎に該要素と該値を取得することによって、上記Webサービス処理手段によって処理可能なデータ構造に変換する、上記複数のWebサービス処理手段の夫々に対応する複数のデータ変換手段と、
上記HTTPリクエスト内で指定されるURIに対応する上記複数のデータ変換手段の1つに上記要素木を振り分ける振り分け手段と、
SOAPに従ってXMLによって記述される上記要求メッセージを構成する要素とその要素に対して設定された値とを関連付けた要素木を生成することによって、該要求メッセージを該要素木に変換するメッセージ変換手段と、
上記要求メッセージによって処理要求を行うメソッドである上記HTTPリクエストを上記メッセージ変換手段へ分配する分配手段と、を有するように構成される。
【0008】
このような画像形成装置では、ネットワークを介して接続された機器からの要求メッセージを、Webサービスを実行するWebサービス処理手段が処理可能なデータ構造に変換されるため、Webサービス手段を開発する開発者は、要求メッセージの記述形式を意識する必要がない。
【0009】
更に、要求メッセージをデータ形式にするという観点から、本発明は、請求項3に記載されるように、上記第一メッセージ変換手段は、上記要求メッセージから該要求メッセージを構成する要素とその要素に対して設定された値とに基づいて要素木を生成し、その要素木を上記第一データ形式とするように構成することができる。また、本発明は、請求項4に記載されるように、上記第一データ形式変換手段は、上記要素木の上記要素間の関連を辿ることによって、上記Webサービス処理手段にて処理可能な上記第二データ形式の要素に値を設定するように構成することができる。
【0010】
このような画像形成装置では、Webサービス処理手段が処理可能なデータ構造に変換し易い要素木が生成され、要素木の要素間の関連を辿ることによって、Webサービス手段にて処理可能なデータ構造の要素に値を容易に設定することができる。
【0011】
更に、Webサービスの処理結果を機器にて受信可能な応答メッセージにするという観点から、本発明は、請求項2に記載されるように、上記各データ変換手段は、上記Webサービス処理手段のデータ構造による出力に応じた応答メッセージの構成となる要素木を生成し、該出力された処理結果を該要素木のノードに対応付けることによって、該処理結果を該応答メッセージの構成に変換し、上記メッセージ変換手段は、上記応答メッセージの要素木を用いて上記SOAPに従ったXMLによって該応答メッセージを記述するように構成することができる。
【0012】
このような画像形成装置では、Webサービス処理手段は、処理結果を機器にて受信可能な応答メッセージに構成する必要がないため、Webサービス処理手段の開発者は、従来からの所定のプログラム言語にて開発することができる。
【0015】
プログラム開発したWebサービス手段が汎用的に画像形成装置に搭載できるという観点から、本発明は、請求項3に記載されるように、上記データ構造は、C言語によって処理可能な構造体を示すように構成することができる。
【0016】
所定通信プロトコルに従ったメソッドに応じてWebサービスを実行するという観点から、本発明は、請求項4に記載されるように、Hypertext Transfer Protocolに従って受信したHTTPリクエストが上記要求メッセージによって処理要求を行うメソッドであるか否かを判断するメソッド判断手段を有するように構成することができる。
【0017】
機器から送信された処理リクエストの解析結果に基づいて処理を振り分けるという観点から、本発明は、請求項5に記載されるように、上記振り分け手段は、上記HTTPリクエストのSOAPActionヘッダを解析してWebサービスを指定する上記URIを取得するように構成することができる。
【0018】
資源を効率的に利用した所定通信制御を行うという観点から、本発明は、請求項6に記載されるように、上記Hypertext Transfer Protocolに従って、ネットワークを介して機器との接続を管理する接続管理手段と、上記接続管理手段から上記接続の通知を受信後、上記Hypertext Transfer Protocolに従って、上記HTTPリクエストに基づいて上記Webサービス処理手段に処理を実行させ、その処理結果をHTTPレスポンスとして上記機器へ提供するサービス提供手段とを有するように構成することができる。
【0019】
更に、本発明は、請求項7に記載されるように、上記Hypertext Transfer Protocolに従って通信を制御する通信制御手段と、上記接続管理手段へ、上記ネットワークを介してHTTPリクエストを受信したことを通知することによって、上記通信制御手段と上記サービス提供手段との接続を制御する接続制御手段とを有するように構成することができる。
【0022】
上記課題を解決するための手段として、本発明は、上記画像形成装置におけるWebサービス提供方法とすることもできる。
【0023】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
【0024】
多種の画像形成機能を融合する本発明の実施の一形態に係る画像形成装置(以下、融合機と言う)は、例えば、図1に示すような機能構成を成す。図1は、本発明の一実施例に係る多種の画像形成機能を融合する融合機の機能構成を示すブロック図である。
【0025】
図1において、融合機1200は、プロッタ1201と、スキャナ1202と、その他ハードウェアリソース1203などを有するとともに、プラットフォーム1220とアプリケーション1230とから構成されるソフトウェア群1210と、融合機起動部1240とを備えている。
【0026】
融合機起動部1240は、融合機1200の電源投入時に先ず始めに実行され、プラットフォーム1220やアプリケーション1230を起動する。
【0027】
プラットフォーム1220は、アプリケーション1230からの処理要求を解釈して、ハードウェア資源の獲得要求を発生させる下記に示すコントロールサービス1250と、一または複数のハードウェア資源の管理をおこない、コントロールサービス1250からの獲得要求を調停するシステムリソースマネージャー(SRM(System Resource Manager)1223)と、OS(Operating System)1221とを有する。
【0028】
このコントロールサービス1250は、複数のサービスモジュールにより形成され、具体的には、SCS(System Control Service)1222と、ECS((Engine Control Service)1224と、MCS(Memory Control Service)1225と、OCS(Operation panel Control Service)1226と、FCS(FAX Control Service)1227と、NCS(Network Control Service)1228と、IMH(Imaging Memory Handler)1229とがある。なお、このプラットフォーム1220は、あらかじめ定義された関数により前記アプリケーションからの処理要求を受信可能とするアプリケーションプログラムインターフェースを有する。
【0029】
OS1221は、UNIX(登録商標)などのオペレーティング・システムであり、プラットフォーム1220並びにアプリケーション1230の各ソフトウェアをそれぞれプロセスとして並列実行する。オープンソースのUNIX(登録商標)を用いることにより、プログラムの安全性を確保できるとともに、ネットワーク対応可能となり、ソースコードの入手も容易となる。さらに、OS、TCP/IPのロイヤリティが不要であり、アウトソーシングも容易となる。
【0030】
SRM1223は、SCS1222とともにシステムの制御およびリソースの管理をおこなうものであり、スキャナやプロッタなどのエンジン部、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394I/F、RS232CI/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停をおこない、実行制御する。
【0031】
具体的には、このSRM1223は、要求されたハードウェア資源が利用可能であるかどうか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、上位層からの要求に対してハードウェア資源の利用スケジューリングをおこない、要求内容(たとえば、プリンタエンジンによる紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施するようにしてもよい。
【0032】
SCS1222は、アプリ管理(機能1)、操作部制御(機能2)、システム画面表示(ジョブリスト画面、カウンタ表示画面など)(機能3)、LED表示(機能4)、リソース管理(機能5)、割り込みアプリ制御(機能6)等の複数の機能を行う。具体的には、アプリ管理(機能1)では、アプリの登録と、その情報を他のアプリに通知する処理をおこなう。操作部制御(機能2)では、アプリの操作部使用権の排他制御をおこなう。システム画面表示(機能3)では、操作部使用権を持つアプリからの要求内容に応じて、エンジン部の状態に対応する警告画面の表示をおこなう。LED表示(機能4)では、警告LED、アプリキーなどのシステムLEDの表示制御をおこなう。リソース管理(機能5)では、アプリがECSを使ってジョブを実行するにあたって、排他しなければならないエンジンリソース(スキャナ、ステープルなど)の排他制御のためのサービスをおこなう。割り込みアプリ制御(機能6)では、特定のアプリを優先動作させるための制御及びサービスをおこなう。
【0033】
ECS1224は、プロッタ1201、スキャナ1202、その他ハードウェアリソース1203などのエンジン部を制御するものであり、画像読み込みと印刷動作、状態通知、ジャムリカバリなどをおこなう。
【0034】
MCS1225は、メモリ制御をおこなうものであり、具体的には、画像メモリの取得および開放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などをおこなう。
【0035】
OCS1226は、オペレータと本体制御間の情報伝達手段となる操作パネルを制御するモジュールであり、オペレータのキー操作イベントを本体制御に通知する処理、各アプリがGUIを構築するためのライブラリ関数を提供する処理、構築されたGUI情報をアプリ別に管理する処理、操作パネル上への表示反映処理などをおこなう。
【0036】
FCS1227は、システムコントローラの各アプリ層からPSTN/ISDN網を使ったファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読み取り、ファクシミリ受信印刷、融合送受信をおこなうためのAPI(Application Program Interface)を提供する。
【0037】
NCS1228は、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのモジュール群であり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介をおこなう。
【0038】
本実施例において、NCS1228は、複数のプロトコルのうちhttp(Hypertext Transfer Protocol)デーモンによって、インターネットを介して接続されるネットワーク機器とのデータ通信をHTTP(Hypertext Transfer Protocol)で制御し、HTTPリクエストヘッダで指定される処理に必要な複数のWebサービスを関数コールによって起動し、その複数のWebサービスによる処理結果をHTTPレスポンスで該ネットワーク機器へ通知する。Webサービスは、例えば、XML(eXtensible Markup Language)によって記述されたメッセージに従って処理を行う。
【0039】
IMH1229は、イメージデータを仮想メモリ領域(ユーザー仮想空間)から物理メモリへマップする。プロセスの起動に応じて、システムコールを行ない、プロセス用の仮想メモリ領域をマップしたり、マップした仮想メモリ領域をプロセスの終了時に開放する処理等を行う。
【0040】
アプリケーション1230は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ1211と、コピー用アプリケーションであるコピーアプリ1212と、ファクシミリ用アプリケーションであるファックスアプリ1213と、スキャナ用アプリケーションであるスキャナアプリ1214と、ネットファイル用アプリケーションであるネットファイルアプリ1215と、工程検査用アプリケーションである工程検査アプリ1216と、配信用アプリケーションである配信アプリ1217と、実行した処理結果をWebサービスとして提供するWebサービスアプリ1218とを有する。各アプリケーション1211〜1218は、プラットフォーム1220上の各プロセスを利用して動作実行し得るため、画面制御、キー操作制御およびジョブ生成などをおこなう画面表示制御プログラムがその主体となる。なお、NCS1228により接続されたネットワークを介して新たなアプリケーションをネットワーク経由で搭載することもできる。また、各アプリケーションはアプリケーションごとに追加または削除することができる。
【0041】
ここで、Webサービスアプリ1218とは、NCS1228によって通知されるHTTPリクエスト対応する処理を実行するアプリケーションであって、その処理結果は、HTTPレスポンスとしてNCS1228によってHTTPリクエストを行ったネットワーク機器へ提供される。
【0042】
このように、融合機1200は、各アプリで共通的に必要となる処理をプラットフォーム1220で一元的に処理する。
【0043】
次に、融合機1200のハードウェア構成について説明する。図2は、図1に示す融合機のハードウェア構成を示すブロック図である。図2に示すように、この融合機1200は、オペレーションパネル1310と、FCU(ファックスコントロールユニット)1320と、プロッタ1201、スキャナ1202及びその他ハードウェアで構成されるエンジン部1350と、コントローラ1300のASIC1301とをPCI(Peripheral Component Interconnect)バス等で接続した構成となる。FCU1320は、受信したファックスデータを格納するための不揮発性メモリ1321と、FCU1320内での時間を計測するためのRTC(Real Time Clock)1322とを有し、通常G3規格に従ってファックスデータの送受信を行う。FCU1320は、オプションとして更にG3規格とG4規格とを搭載しても良い。
【0044】
コントローラ1300は、ASIC1301にMEM−C1302、HDD(Hard Disk Drive)1303などを接続するとともに、このASIC1301とCPU1304とをCPUチップセットのNB1305を介して接続している。このように、NB1305を介して接続する理由は、CPU1304自体のインターフェイスが公開されていないためである。
【0045】
ここで、このASIC1301とNB1305は、単にPCIを介して接続されているのではなく、AGP1308を介して接続されている。このようにAGP1308を介して接続することとした理由は、この融合機1200がプラットフォーム1220やアプリケーション1230を形成する複数のプロセスを実行制御する関係上、これらを低速のPCIで接続したのでは、パフォーマンスが低下するからである。
【0046】
CPU1304は、融合機1200の全体制御をおこなうものであり、具体的には、OS1221上でプラットフォーム1220を形成するSCS1222、SRM1223、ECS1224、MCS1225、OCS1226、FCS1227、NCS1228をそれぞれプロセスとして起動して実行させるとともに、アプリケーション1230を形成するプリンタアプリ1211、コピーアプリ1212、ファックスアプリ1213、スキャナアプリ1214、ネットファイルアプリ1215、工程検査アプリ1216、配信アプリ1217、Webサービスアプリ1218を起動して実行させる。
【0047】
NB1305は、CPU1304とMEM−P1306、SB1307、ASIC1301とを接続するためのブリッジであり、MEM−P1306は、融合機の描画用メモリなどとして用いるシステムメモリであり、MEM−C1302は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、ASIC1301は、画像処理用のハードウェア要素を有する画像処理用途向けのICである。
【0048】
NB1305は、PCIバスを介してSB1307と接続する他、ネットワーク通信を制御するNIC(Network Interface Card)1311と、パーソナルコンピュータと接続し大容量の画像データの送受信を可能とするUSB(Universal Serial Bus)1312及びIEEE13941313と、パラレルケーブルによって接続可能なセントロニクス1314と接続する。SB1307は、NB1305とROM、PCIデバイス、周辺デバイスとを接続するためのブリッジである。SB1307は、コントローラ1300での時間を計測するRTC(Real Time Clock)1323を有する。
【0049】
HDD1310は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージであり、オペレーションパネル1310は、操作者からの入力操作の受け付け並びに操作者に向けた表示をおこなう操作部である。
【0050】
したがって、ASIC1301には、MEM−C1302を接続するためのRAMインターフェイスと、HDD1310を接続するためのハードディスクインターフェースが設けられ、これらの記憶部に対して画像データの入出力をおこなう場合には、入出力先がRAMインターフェイスまたはハードディスクインターフェースに切り替えられる。
【0051】
AGP1308は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェイスであり、システムメモリに高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にする。
【0052】
次に、上記構成を有する融合機1200において、XML(Extensible Markup Language)によるSOAP(Simple Object Access Protocol)に従ったWebサービスを提供可能とする構成について詳述する。Webサービスファンクションは、例えば、C言語などのプログラム言語で記述されたソフトウェア(アプリケーション)である。SOAPに従って記述されるXMLによる処理内容をメッセージとしてWebサービスファンクションが理解できるように、構文の異なるXMLとプログラム言語との間をハンドリングする処理部(ハンドラ)が必要となる。以下に、印刷する印刷Webサービス、文書リストを取得する文書リスト取得Webサービス、文書情報を取得する文書情報取得Webサービスを例として、図3で説明する。
【0053】
図3は、Webサービスを実現するための構成例を示す図である。図3において、印刷Webサービス、文書リスト取得Webサービス、文書情報取得Webサービスが、Webサービスアプリ1218にて提供される場合を示す。これらWebサービスは、アプリケーション1230の別の機能としてWebサービスアプリ1218から独立した構成としても良い。図3中、図1に示す融合機1200の機能構成のうち主要な機能構成のみが図示され、他の機能構成は省略される。
【0054】
図3において、Webサービスを実現するために、コントロールサービス1250とWebサービスアプリ1218との間に、接続される機器との間のデータの送受信を制御する中間層が構成される。
【0055】
コントロールサービス1250は、Webサービスアプリ1218によるWebサービスを実現する構成部分として、ECS1224と、MCS1225と、NCS1228とを有する。NCS1228は、HTTPを制御するHTTPデーモン2と、HTTPデーモン2とWebサービスアプリ1218との接続処理の仲介をする要求仲介デーモン7とを有する。
【0056】
また、中間層1255は、接続される機器との間のデータの送受信制御を吸収する構成部分として、シーケンス制御ライブラリ100と、XMLライブラリ110と、SOAPライブラリ120と、ジョブ管理部310と、ファイル管理部311とを有する。シーケンス制御ライブラリ100は、更に、HTTP接続管理部101と、HTTPサービス実行部102と、POSTメソッド分配処理部105とを有する。XMLライブラリ110は、XML処理部115と、XMLプロセッサ116と、XMLシリアライザ117とを有する。SOAPライブラリ120は、SOAPアクション振分処理部121を有する。
【0057】
更に、Webサービスアプリ1218は、Webサービスを実現するための構成部分として、要素木解析・生成ハンドラ200と、Webサービスファンクション(WSF)300とを有する。要素木解析・生成ハンドラ200は、機器間におけるSOAPに従ったメッセージのデータ形式による構文を解析し、Webサービスファンクション300にて処理可能なデータ形式に変換する処理部であって、複数の要素木解析・生成ハンドラを有し、例えば、印刷ハンドラ201と、文書リスト取得ハンドラ202と、文書情報取得ハンドラ203とを有する。
【0058】
Webサービスファンクション300は、複数のWebサービスファンクションを有し、例えば、印刷機能301と、文書リスト取得機能302と、文書情報取得機能303とを有する。この場合、印刷ハンドラ201は、印刷機能301に対する処理の内容を示すSOAPに従ったメッセージのデータ形式を構文解析し、印刷機能301が処理可能なデータ形式に変換して印刷機能301に処理を要求する。また、印刷ハンドラ201は、印刷機能301からの応答をSOAPに従ったデータ形式にてメッセージとして生成する。文書リスト取得ハンドラ202及び文書情報取得ハンドラ203は、夫々、文書リスト取得機能302及び文書情報取得機能303に対して同様の処理を行う。
【0059】
印刷機能301は、入力パラメータとしてファイルIDと部数を受け取り、ジョブ管理部ファイルIDと部数を指定して印刷要求をジョブ管理部310に発行する。ジョブ管理部310から受け取ったリクエストIDを出力パラメータとして返す。文書リスト取得機能302は、ファイル管理部311にファイルリストを要求し、ファイル管理部311から受け取ったIDのリストを出力パラメータとして返す。文書情報取得機能303は、入力パラメータとしてファイルIDを受け取り、ファイル管理部311にファイルIDを指定してファイル情報を要求する。ファイル管理部311から受け取ったファイル情報を出力パラメータとして返す。
【0060】
ジョブ管理部310は、ジョブのキュー及び実行結果を管理する。また、ECS1224及びMCS1125と通信して蓄積文書の印刷処理を実行する。ファイル管理部311は、MCS1225と通信してファイル情報を取得する。
【0061】
以下、HTTPリクエストを受信してからHTTPレスポンスを送信するまでの処理について図4及び図5を参照しつつ説明する。図4及び図5は、SOAPによるWebサービスの提供処理について説明するフローチャート図である。
【0062】
NCS1228のHTTPデーモン2がネットワーク15からの接続要求を受信する(ステップS1100)。その接続要求は要求仲介デーモン7を介してWebサービスアプリ1218のHTTP接続管理部101に通知される。その後、HTTP接続管理部101は、その接続要求をHTTPに従ってサービスを提供するHTTPサービス実行部102に通知する。通知を受けたHTTPサービス実行部102は、HTTPデーモン2に接続を行い、HTTPリクエストを取得する。このような制御をNCS1228で行うことにより、必要時のみHTTPによる通信制御をすることができる。よって、常時HTTP通信制御をする場合に比べて、通信制御に必要な資源を効果的に利用することができる。
【0063】
HTTPサービス実行部102は、ネットワーク15を介して受信したHTTPリクエストからデータ送信方法を示すHTTPメソッドを解析して、GETメソッドであるか否かをチェックする(ステップS1101)。GETメソッドである場合、GETメソッドによるWebサービスの提供を実行する(ステップS1102)。つまり、SOAPによるWebサービス以外のWebサービスの提供を行う。
【0064】
一方、GETメソッドでない場合、POSTメソッドであるか否かをチェックする(ステップS1103)。POSTメソッドでない場合、ステップS1107へ進み、エラー処理を行い、SOAPによるWebサービスの提供処理を終了する。POSTメソッドである場合、POSTメソッド分配処理部105をコールする。POSTメソッド分配処理部105は、HTTPリクエストヘッダ情報を解析し、HTTPボディの記述形式がXMLであることを確認する(ステップS1104)。つまり、HTTPレスポンスヘッダのContent-Typeがtext/xmlを指定しているか否かを判断する。XMLでない場合、ステップS1107へ進み、エラー処理を行う。一方、XMLである場合、XMLコンテンツハンドラ111をコールする。
【0065】
XML処理部115は、POSTメソッドハンドラとして、XMLプロセッサ116によって、HTTPボディのXMLの構文を解析し、XMLで記述されるタグ間の関連を木構造で示すリクエストの要素木を作成する(ステップS1105)。構文解析結果がエラーか否かを判断する(ステップS1106)。構文解析結果がエラーの場合、ステップS1107へ進み、エラー処理を行う。一方、構文解析結果が正常の場合、図5のステップS1109へ進む。
【0066】
SOAPアクション振分処理部121は、HTTPリクエストのSOAPActionヘッダを解析して、URI(Uniform Resource Indicator)により異なる要素木解析・生成ハンドラ200にHTTPリクエストを振り分ける(ステップS1109)。この場合、印刷Webサービスを指定するURIに対して印刷ハンドラ201、文書リスト取得Webサービスを指定するURIに対して文書リスト取得ハンドラ202、及び、文書情報取得Webサービスを指定するURIに対して文書情報取得ハンドラ203に、HTTPリクエスト及び要素木とが振り分けられる。
【0067】
各要素木解析・生成ハンドラ200は、リクエストの要素木を解析してC言語の構造体データに変換する(ステップS1110)。その後、変換した構造体データを引数として、HTTPリクエストで指定されるURIに対応するWebサービスファンクション300をコールする(ステップS1111)。この場合、印刷ハンドラ201は印刷機能301、文書リスト取得ハンドラ202は文書リスト取得機能302、文書情報取得ハンドラ203は文書情報取得機能303をコールする。
【0068】
Webサービスファンクション300は、所定のWebサービスのロジックを実行して、構造体データとして結果を返す(ステップS1112)。この場合、印刷機能301、文書リスト取得機能302、文書情報取得機能303は、各Webサービスのロジックを実行して、その結果を返す。返される結果は、プログラム言語で処理可能なデータ形式(例えば、C言語の構造体)である。
【0069】
各要素木解析・生成ハンドラ200は、受け取った結果の構造体データからレスポンスの要素木を生成する(ステップS1113)。各要素木解析・生成ハンドラ200によって生成された要素木は、例えば、XMLのタグ間の関係をタグからタグへのポインタによるリンクによって、そのデータ構造を示す。以後、SOAPアクション振分処理部121を介して、XMLシリアライザ117によって、レスポンスの要素木からXMLに変換される。XMLシリアライザ117は、要素木をテキストで示すXMLに変換する。変換されたXMLは、SOAPに従ったHTTPボディに構成され、所定のHTTPヘッダが付加された後、HTTPレスポンスとして送信される(ステップS1114)。
【0070】
上述より、要素木解析・生成ハンドラ200が要素木をC言語の構造体に応じたデータ変換を行う。また、C言語の構造体データから要素木への変換を行う。各機能301から303は、SOAPに従ったXMLの解析を行わなくて良いため、開発者は、SOAP及びXMLの知識が無くても、Webサービスをプログラム言語で開発することができる。
【0071】
Webサービスファンクション300を起動時の初期化処理では、モジュール間の(直線で示される)接続が行われ、図3に示すように構成される。初期化処理では、POSTメソッド分配処理部105がPOSTメソッドハンドラとしてシーケンス制御ライブラリ100に接続することで開始され、XML処理部115のPOSTメソッド分配処理部105への登録、SOAPアクション振分処理部121のXML処理部115への登録、要素木解析・生成ハンドラ200のSOAPアクション振分処理部121への登録が行われる。
【0072】
次に、要素木解析・生成ハンドラ200の印刷ハンドラ201を例にして、印刷ハンドラ201における要素木の解析処理について図6、図7及び図8で説明する。図6は、XMLを使用したSOAPに従ったHTTPリクエストの記述例を示す図である。図7は、XMLプロセッサによって変換された要素木の例を示す図である。図8は、印刷ハンドラによる要素木解析処理を説明するためのフローチャート図である。
【0073】
印刷Webサービスを依頼する図6に示すようなHTTPリクエストの場合、XMLプロセッサ112は、<SOAP-ENV:Envelope>で始まるHTTPボディ20を要素木に変換する。タグ名21「Envelope」をルート要素とし、ルート要素の子ノードとしてタグ名22「Header」及びタグ名23「Body」を関連づける。更に、タグ名23「Body」の子ノードをタグ名24「print」とし、更に、タグ名24「print」の子ノードとしてタグ名25「fileId」及びタグ名26「count」とを関連付ける。そして、タグ名25「fileId」及びタグ名26「count」に、夫々、テキストデータ27「123」及びテキストデータ28「2」を関連付ける。このようにして関連付けられた要素木構造は、例えば、図7に示されるようなデータ構造となる。図7において、タグ名21から26及びテキストデータ27から28を楕円で示し、関連付けが矢印で示される。
【0074】
図7に示すようなデータ構造となった要素木は、印刷ハンドラ201によって、図8に示されるフローチャートに従って、印刷機能301が処理可能なプログラム言語による構造体データが生成される。図8において、印刷ハンドラ201は、ルート要素を取得する(ステップS120)。この場合、ルート要素は、Envelope要素となる。子ノードリストを取得する(ステップS121)。つまり、タグ名22「Header」及び23「Body」を取得する。子ノードリストからタグ名がBodyの要素を検索して取得する(ステップS122)。Body要素の最初の子ノードを取得する(ステップS123)。この場合、print要素を取得する。print要素の子ノードリストを取得する(ステップS124)。取得した子ノードリストからタグ名を順に取得する(ステップS125)。
【0075】
タグ名がfileIDであるか否かを判断する(ステップS126)。タグ名がfileIDでない場合、ステップS129へ進む。一方、タグ名がfileIDである場合、タグ名がfileIDの最初の子ノードを取得する(ステップS127)。つまり、テキストノードを取得する。取得したテキストノードを抽出して整数に変換する(ステップS128)。つまり、ファイルIDパラメータとして、値「123」が所定の構造体に設定される。更に、タグ名がcountであるか否かを判断する(ステップS129)。タグ名がcountでない場合、ステップS132へ進む。一方、タグ名がcountである場合、タグ名がcountの最初の子ノードを取得する(ステップS130)。つまり、テキストノードを取得する。取得したテキストノードを抽出して整数に変換する(ステップS131)。つまり、部数パラメータとして、値「2」が所定の構造体に設定される。
【0076】
印刷ハンドラ201は、ステップS125で取得した子ノードリストから次の子ノードがあるか否かを判断する(ステップS132)。次の子ノードがある場合、ステップS125に戻り、次の子ノードを取得し、上記同様の処理を行う。次の子ノードがない場合、要素木の解析処理を終了する。
【0077】
このようにして解析された要素木は、印刷ハンドラ201によって図9に示されるようなプログラム言語による構造体29(「struct printParam」)に変換される。パラメータ「int fileId」には、ステップS128によって、値「123」が設定される。また、パラメータ「int count」には、ステップS131によって、値「2」が設定される。
【0078】
Webサービスファンクション300の印刷機能301が、例えば、C言語でプログラミングされる「print」関数である場合、例えば、「struct printParam *in」のようにして、構造体29へのポインタ「in」が引数30に設定される。印刷機能301(「print」関数)をコールすると、印刷機能301での処理結果が、例えば、構造体名「struct printResult」へのポインタ「out」を示す「struct printResult *out」のような引数31で戻る。
【0079】
図10は、印刷ハンドラでの処理結果を示す構造体の例を示す図である。図10において、印刷ハンドラ201は、引数31のポインタ「out」によって、処理結果を設定すべき構造体39を取得する。例えば、構造体39において、処理結果として、パラメータ「requestId」に値「100」を設定する。
【0080】
次に、処理結果を示す構造体39から要素木を生成する要素木の生成処理について図11及び図12で説明する。図11は、印刷ハンドラによる要素木生成処理を説明するためのフローチャート図である。図12は、生成された要素木の例を示す図である。
【0081】
図12を参照しつつ印刷ハンドラによる要素木生成処理を説明する。図11において、印刷ハンドラ201は、Envelope要素32を生成する(ステップS140)。Body要素33を生成する(ステップS141)。そして、Body要素33をEnvelope要素32に接続する(ステップS142)。これらステップS140からS142での処理によって、SOAPに従ったHTTPレスポンスのHTTPボディが設定される。
【0082】
そして、印刷ハンドラ201は、printResponse要素34を生成し(ステップS143)、printResponse要素34をBody要素33に接続する(ステップS144)。更に、requestId要素35を生成し(ステップS145)、requestId要素35をprintResponse要素34に接続する(ステップS146)。
【0083】
印刷ハンドラ201は、結果として得られたリクエストIDより、テキストノード36を生成して(ステップS147)、テキストノードをrequestId要素35に接続する(ステップS148)。この場合、テキストノード36には、「100」が設定される。
【0084】
このように生成された要素木は、XML処理部115及びXMLシリアライザ117によって、図13に示されるようなHTTPボディ32を生成する。図13は、要素木から変換されたXMLを使用したSOAPに従ったHTTPレスポンスの記述例を示す図である。図13において、図12に示す各要素32から36は、< >で区切られるタグ内に記述され、所定の情報をSOAPに従った手順でXMLにて記述される。
【0085】
上記実施例より、XMLのデータ構造を示す要素木をWebサービスファンクション300が処理可能な構造体に変換、及び、構造体をXMLの要素木に変換する要素木解析・生成ハンドラ200を備えることによって、開発者は、従来と同様の開発方法、例えば、C言語による開発方法によって、Webサービスファンクションとしてのアプリケーションの開発を行うことができる。また、既に実装されているアプリケーションを容易にWebサービスに対応するに改良することができる。
【0086】
また、要素木解析・生成ハンドラ200を有する融合機1200では、SOAPに従うXML記述されたメッセージをWebサービスファンクション300が解釈することができるため、Webサービスファンクション300を他システムに提供することが可能となる。よって、融合機1200に接続されるシステム又はコンピュータ端末を限定しないため、融合機1200の利用可能性を大幅に拡大することが可能となる。
【0087】
【発明の効果】
以上、説明してきたように、本願発明によれば、機器間におけるメッセージ交換プロトコルに従ったメッセージのデータ形式の変換を行う処理部を備えているため、従来と同様の方法によって開発されたWebサービスファンクションであっても、該メッセージの処理が可能となる。そのため、画像形成装置におけるWebサービスファンクションの開発をメッセージの記述形式に依存することなく容易に行うことができる。また、既に実装されているアプリケーションを容易にWebサービスに対応できるように改良することができる。更に、画像形成装置に接続可能な他システムとの連携を拡大することができる。
【0088】
【図面の簡単な説明】
【図1】本発明の一実施例に係る多種の画像形成機能を融合する融合機の機能構成を示すブロック図である。
【図2】図1に示す融合機のハードウェア構成を示すブロック図である。
【図3】Webサービスを実現するための構成例を示す図である。
【図4】SOAPによるWebサービスの提供処理について説明するフローチャート図である。
【図5】SOAPによるWebサービスの提供処理について説明するフローチャート図である。
【図6】XMLを使用したSOAPに従ったHTTPリクエストの記述例を示す図である。
【図7】XMLプロセッサによって変換された要素木の例を示す図である。
【図8】印刷ハンドラによる要素木解析処理を説明するためのフローチャート図である。
【図9】要素木解析処理によって生成される構造体の例を示す図である。
【図10】印刷ハンドラでの処理結果を示す構造体の例を示す図である。
【図11】印刷ハンドラによる要素木生成処理を説明するためのフローチャート図である。
【図12】生成された要素木の例を示す図である。
【図13】要素木から変換されたXMLを使用したSOAPに従ったHTTPレスポンスの記述例を示す図である。
【符号の説明】
2 httpデーモン
7 要求仲介デーモン
15 ネットワーク
100 シーケンス制御ライブラリ
101 HTTP接続管理部
102 HTTPサービス実行部
105 POSTメソッド分配処理部
110 XMLライブラリ
115 XML処理部 116 XMLプロセッサ
117 XMLシリアライザ
120 SOAPライブラリ
121 SOAPアクション振分処理部
200 要素木解析・生成ハンドラ
300 Webサービスファンクション
1200 融合機
1201 プロッタ、 1202 スキャナ、
1203 その他ハードウェアリソース、
1210 ソフトウェア群、
1230 アプリケーション、 1220 プラットフォーム、
1221 OS、 1222 SCS、
1223 SRM、 1224 ECS、
1225 MCS、 1226 OCS、
1227 FCS、 1228 NCS、
1229 IMH、 1240 融合機起動部、
1300 コントローラ、 1301 ASIC、
1302 MEM−C、 1303 HDD、
1304 CPU、 1305 NB、
1306 MEM−P、 1307 SB、
1308 AGP、 1310 オペレーションパネル、
1320 ファックスコントロールユニット
1311 NIC、 1312 USB、
1313 IEEE1394、 1314 セントロニクス、
1350 エンジン部
Claims (8)
- ネットワークを介して接続される機器から受信したHTTPリクエスト内の要求メッセージに基づいて処理を実行し、その処理結果をWebサービスとして提供する複数のWebサービス処理手段と、
上記要求メッセージの構成を示す要素木のうち要素と値の関連付けが繰り返される木構造において各関連付け毎に該要素と該値を取得することによって、上記Webサービス処理手段によって処理可能なデータ構造に変換する、上記複数のWebサービス処理手段の夫々に対応する複数のデータ変換手段と、
上記HTTPリクエスト内で指定されるURIに対応する上記複数のデータ変換手段の1つに上記要素木を振り分ける振り分け手段と、
SOAPに従ってXMLによって記述される上記要求メッセージを構成する要素とその要素に対して設定された値とを関連付けた要素木を生成することによって、該要求メッセージを該要素木に変換するメッセージ変換手段と、
上記要求メッセージによって処理要求を行うメソッドである上記HTTPリクエストを上記メッセージ変換手段へ分配する分配手段と、
を有することを特徴とする画像形成装置。 - 上記各データ変換手段は、上記Webサービス処理手段のデータ構造による出力に応じた応答メッセージの構成となる要素木を生成し、該出力された処理結果を該要素木のノードに対応付けることによって、該処理結果を該応答メッセージの構成に変換し、
上記メッセージ変換手段は、上記応答メッセージの要素木を用いて上記SOAPに従ったXMLによって該応答メッセージを記述することを特徴とする請求項1記載の画像形成装置。 - 上記データ構造は、C言語によって処理可能な構造体を示すことを特徴とする請求項1又は2項記載の画像形成装置。
- Hypertext Transfer Protocolに従って受信したHTTPリクエストが上記要求メッセージによって処理要求を行うメソッドであるか否かを判断するメソッド判断手段を有することを特徴とする請求項1乃至3のいずれか一項記載の画像形成装置。
- 上記振り分け手段は、上記HTTPリクエストのSOAPActionヘッダを解析してWebサービスを指定する上記URIを取得することを特徴とする請求項1乃至4のいずれか一項記載の画像形成装置。
- 上記Hypertext Transfer Protocolに従って、ネットワークを介して機器との接続を管理する接続管理手段と、
上記接続管理手段から上記接続の通知を受信後、上記Hypertext Transfer Protocolに従って、上記HTTPリクエストに基づいて上記Webサービス処理手段に処理を実行させ、その処理結果をHTTPレスポンスとして上記機器へ提供するサービス提供手段とを有することを特徴とする請求項4記載の画像形成装置。 - 上記Hypertext Transfer Protocolに従って通信を制御する通信制御手段と、
上記接続管理手段へ、上記ネットワークを介してHTTPリクエストを受信したことを通知することによって、上記通信制御手段と上記サービス提供手段との接続を制御する接続制御手段とを有することを特徴とする請求項6記載の画像形成装置。 - コンピュータが、
ネットワークを介して接続される機器から受信したHTTPリクエスト内の要求メッセージに基づいて処理を実行し、その処理結果をWebサービスとして提供するWebサービス処理手順と、
上記要求メッセージの構成を示す要素木のうち要素と値の関連付けが繰り返される木構造において各関連付け毎に該要素と該値を取得することによって、上記Webサービス処理手順によって処理可能なデータ構造に変換する、上記複数のWebサービス処理手順の夫々に対応する複数のデータ変換手順と、
上記HTTPリクエスト内で指定されるURIに対応する上記複数のデータ変換手順の1つに上記要素木を振り分ける振り分け手順と、
SOAPに従ってXMLによって記述される上記要求メッセージを構成する要素とその要素に対して設定された値とを関連付けた要素木を生成することによって、該要求メッセージを該要素木に変換するメッセージ変換手順と、
上記要求メッセージによって処理要求を行うメソッドである上記HTTPリクエストを上記メッセージ変換手順へ分配する分配手順と、
を有することを特徴とするWebサービス提供方法。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003081245A JP4373692B2 (ja) | 2002-03-25 | 2003-03-24 | Webサービス機能を有する画像形成装置 |
PCT/JP2003/003651 WO2003081443A1 (fr) | 2002-03-25 | 2003-03-25 | Dispositif de formation d'images comportant une fonction de service web |
EP03715406.9A EP1489520B1 (en) | 2002-03-25 | 2003-03-25 | Image formation device having a web service function |
US10/490,978 US7743162B2 (en) | 2002-03-25 | 2003-03-25 | Image forming apparatus, with connection request mediation, having web service functions |
CN200610172730.5A CN1980247B (zh) | 2002-03-25 | 2003-03-25 | 具有万维网服务功能的图像形成装置及方法 |
CNB038015641A CN100351818C (zh) | 2002-03-25 | 2003-03-25 | 具有万维网服务功能的图像形成装置 |
US12/771,330 US8549162B2 (en) | 2002-03-25 | 2010-04-30 | Image forming apparatus having web service functions |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002084552 | 2002-03-25 | ||
JP2002084554 | 2002-03-25 | ||
JP2002084553 | 2002-03-25 | ||
JP2003081245A JP4373692B2 (ja) | 2002-03-25 | 2003-03-24 | Webサービス機能を有する画像形成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004005504A JP2004005504A (ja) | 2004-01-08 |
JP4373692B2 true JP4373692B2 (ja) | 2009-11-25 |
Family
ID=30449504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003081245A Expired - Fee Related JP4373692B2 (ja) | 2002-03-25 | 2003-03-24 | Webサービス機能を有する画像形成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4373692B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007213156A (ja) * | 2006-02-07 | 2007-08-23 | Seiko Epson Corp | 複数種類のサービスを提供するサーバー |
-
2003
- 2003-03-24 JP JP2003081245A patent/JP4373692B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004005504A (ja) | 2004-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4444752B2 (ja) | サービス提供装置、サービス提供プログラム、記録媒体及びサービス提供方法 | |
US7743162B2 (en) | Image forming apparatus, with connection request mediation, having web service functions | |
EP1650953B1 (en) | Image forming apparatus, a print process method, a computer program and a computer readable storage medium | |
JP5370439B2 (ja) | 装置、要求処理方法、プログラム、及び記録媒体 | |
JP2003296065A (ja) | 画像形成装置 | |
JP4291856B2 (ja) | Webサービス機能を有する画像形成装置 | |
JP3683542B2 (ja) | 画像形成装置 | |
JP2005310171A (ja) | プログラム生成処理をコンピュータに行わせるためのコンピュータ読み取り可能なプログラム | |
JP3831352B2 (ja) | プログラム生成処理をコンピュータに行わせるためのコンピュータ読み取り可能なプログラム | |
JP3683543B2 (ja) | 画像形成装置 | |
JP4141209B2 (ja) | Webサービス機能を有する画像形成装置 | |
JP2005050018A (ja) | 文書ファイル管理装置及びデータ構造 | |
JP4373692B2 (ja) | Webサービス機能を有する画像形成装置 | |
JP4527796B2 (ja) | 画像形成装置及び文書管理システム | |
JP4130108B2 (ja) | Webサービス機能を有する画像形成装置 | |
JP4291855B2 (ja) | Webサービス機能を有する画像形成装置 | |
JP4520484B2 (ja) | Webサービス機能を有する画像形成装置 | |
JP3710789B2 (ja) | 複数の通信プロトコルを有する画像形成装置 | |
JP2004005503A (ja) | Webサービス機能を有する画像形成装置 | |
JP4136738B2 (ja) | Webサービス機能を有する画像形成装置 | |
JP2003298793A (ja) | 画像形成装置 | |
JP2006020341A (ja) | Webサービス機能を有する画像形成装置 | |
JP5046818B2 (ja) | 画像形成装置、画像形成装置内のデータ処理方法、及びデータ処理プログラム | |
JP4141210B2 (ja) | Webサービス機能を有する画像形成装置 | |
JP4180438B2 (ja) | イベント通知方法、情報機器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050315 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050607 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050707 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050712 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20060224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090622 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090810 |
|
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: 20090904 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120911 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130911 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |