JP2005259105A - 仲介装置、通信システム、仲介装置の制御方法、プログラム及び記録媒体 - Google Patents
仲介装置、通信システム、仲介装置の制御方法、プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP2005259105A JP2005259105A JP2004272605A JP2004272605A JP2005259105A JP 2005259105 A JP2005259105 A JP 2005259105A JP 2004272605 A JP2004272605 A JP 2004272605A JP 2004272605 A JP2004272605 A JP 2004272605A JP 2005259105 A JP2005259105 A JP 2005259105A
- Authority
- JP
- Japan
- Prior art keywords
- command
- response
- request
- server
- communication
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
【解決手段】 複数の端末装置10,10′と処理サーバ13との間の通信を仲介する仲介サーバ12が、処理サーバ13から、端末装置10,10′に転送すべき動作要求を複数一括して受信し、受信した動作要求を、転送先となる各端末装置10,10′に装置毎に一括して送信する。また、各端末装置10,10′から、処理サーバ13から転送されてきた動作要求に対する動作応答を複数一括して受信し、その動作応答を、転送先となる処理サーバ13に複数一括して送信する。
【選択図】 図1
Description
また、この文献には、ローカルプロセッサがファイアウォールの内側に配置されている場合において、ローカルプロセッサからファイアウォールの外側のリモートプロセッサに通信要求を送信し、リモートプロセッサがこの通信要求に対する応答としてローカルプロセッサに対してコマンドを送信するようにすることにより、ファイアウォールの外側から内側に向けてコマンドを送信できるようにする技術も開示されている。
従来、このような動作を行う場合には、コマンドの宛先となる通信装置と個別に通信を行い、宛先毎にコマンドを送信するようにしていた。また、コマンド応答を受信する際にも、コマンドを送信した各通信装置と個別に通信を行ってコマンド応答を受信するようにしていた。
現状では、ネットワークを介した通信をダイヤルアップ接続で行う環境もまだ多く残っており、このような環境においては上記の点が特に問題となる。このような環境では、コネクションの確立に数十秒単位の時間を要することもあり、またコネクションを確立する毎に料金を課金されるので、コネクションを確立する回数が増加するとコストアップにつながるためである。
このような仲介装置において、上記第1の送信手段に、上記第2の通信装置に対して定期的にHTTPリクエストを送信する手段を設けるとよい。
さらに、上記第2の送信手段を、上記第1の受信手段がHTTPリクエストを受信した場合に、その要求元に送信すべきSOAPリクエストを全て、受信したHTTPリクエストに対するHTTPレスポンスに記載して送信する手段とするとよい。
このような分散処理システムにおいて、上記仲介サーバの第1の送信手段に、上記処理サーバに対して定期的にHTTPリクエストを送信する手段を設けるとよい。
さらに、上記仲介サーバの上記第2の送信手段を、上記第1の受信手段がHTTPリクエストを受信した場合に、その要求元に送信すべきSOAPリクエストを全て受信したHTTPリクエストに対するHTTPレスポンスに記載して送信する手段とし、上記処理サーバの送信手段を、その処理サーバの受信手段がHTTPリクエストを受信した場合に、その要求元に送信すべきSOAPリクエストを全て受信したHTTPリクエストに対するHTTPレスポンスに記載して送信する手段とするとよい。
このようなデータ転送方法において、上記第1の送信手順に、上記第2の通信装置に対して定期的にHTTPリクエストを送信する手順を設けるとよい。
さらに、上記第2の送信手順を、上記第1の受信手順でHTTPリクエストを受信した場合に、その要求元に送信すべきSOAPリクエストを全て、受信したHTTPリクエストに対するHTTPレスポンスに記載して送信する手順とするとよい。
このようなプログラムにおいて、上記第1の送信手段に、上記第2の通信装置に対して定期的にHTTPリクエストを送信する機能を設けるとよい。
さらに、上記第2の送信手段の機能を、上記第1の受信手段がHTTPリクエストを受信した場合に、その要求元に送信すべきSOAPリクエストを全て、受信したHTTPリクエストに対するHTTPレスポンスに記載して送信する機能とするとよい。
この発明の記録媒体は、上記のいずれかのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
〔実施形態〕
まず、この発明の仲介装置である仲介サーバ及び、その仲介サーバを用いて構成した通信システムである分散処理システムの1つの実施形態について説明する。図1は、その分散処理システムの構成を示すブロック図である。
なお、ここではシステムの理解を容易にするために「仲介サーバ」及び「処理サーバ」の用語を用いているが、これは、これらの装置をネットワーク上で「サーバ」としての機能を果たす装置には限定する意図ではない。
さらに、各顧客先環境内の端末装置10は、LAN(ローカルエリアネットワーク)に接続して設けているが、セキュリティ面を考慮し、ファイアウォール11を介してLANをインターネット14に接続している。
さらに、ここでは処理サーバ13と仲介サーバ12との間の接続はインターネット14とは異なる線で示しているが、これらがインターネット14を介して通信可能な構成とすることも、もちろん可能である。
図2(A)は、端末装置10で処理サーバ13に対する動作要求が発生したケースである。このケースでは、端末装置10が端末装置側動作要求aを生成し、これを仲介サーバ12を経由して受け取った処理サーバ13がこの動作要求に対する動作応答aを返すというモデルになる。
また、図2(B)のケースでも、応答を即座に返せないときに遅延通知b′を返すことは図2(A)のケースと同様である。
図2(D)は、仲介サーバ12で端末装置10に対する動作要求が発生したケースである。このケースでは、仲介サーバ12が仲介サーバ側動作要求dを生成し、これを受け取った端末装置10が、その動作要求に対する動作応答dを返すというモデルになる。
遅延通知については、図2(C)及び(D)の場合も、図2(A)や(B)の場合と同様である。
なお、ここではRPCによる引数並びに戻り値の受け渡しのプロトコルとしてSOAP(Simple Object Access Protocol)を採用し、上記の動作要求や動作応答は、ここではSOAPメッセージとして記載するようにしている。
ここでは、図1に示した分散処理システムのより具体的な実施例として、第1の通信装置である画像処理装置100から、それぞれ第2の通信装置である販売管理サーバ103aや情報配信サーバ103bによって提供されるサービスを利用し、これらの装置間の通信をこの発明の仲介装置である機器管理サーバ102によって仲介する遠隔管理システムについて説明する。このシステムにおいて、画像処理装置100は、機器管理サーバ102によって提供されるサービスを利用することもできる。
図3は、その分散処理システムの構成の一例を示す概念図であるが、端末装置10を画像処理装置100に変更し、各サーバに具体的な名称をつけた点が図1と相違するのみであるので、システムの全体構成についての説明は省略する。
また、機器管理サーバ102は、処理サーバと画像処理装置100との間の通信を仲介する仲介サーバとしての機能の他に、画像処理装置100の遠隔管理及び保守に関するサービスを提供する機能を有する。
販売管理サーバ103aは、画像処理装置100における消耗品やサプライの注文受付や販売に関するサービスを提供する機能を有する。そして、情報配信サーバ103bは、画像処理装置100のユーザに対してニュースや案内あるいは製品紹介等の種々の情報を配信するサービスを提供する機能を有する。
なお、以後の説明においては、特にサービスの内容に関する説明をする場合以外は、機器管理サーバ102を仲介サーバ102と呼び、販売管理サーバ103a及び情報配信サーバ103bを併せて処理サーバ103と呼ぶことにする。
図4(A)は、画像処理装置100で処理サーバ103に対する動作要求が発生したケースである。このケースでは、画像処理装置100が画像処理装置側動作要求a(以下、「端末装置コマンド」とも呼ぶ)を生成し、これを仲介サーバ102を経由して受け取った処理サーバ103がこのコマンドに対する動作応答a(以下、「コマンド応答」あるいは単に「応答」とも呼ぶ)を返すというモデルになる。なお、画像機器側動作要求aが複数の仲介サーバ102に順次仲介されて処理サーバ103に到達するケースも想定できる。
これらの図4(A),(B)の場合において、画像処理装置100側で、動作要求が最終的にどこに転送されるかを把握している必要がない点は、図2の場合と同様である。
図4(D)は、仲介サーバ102で画像処理装置100に対する動作要求が発生したケースである。このケースでは、仲介サーバ102が仲介サーバ側動作要求(以下、「仲介サーバコマンド」とも呼ぶ)dを生成し、これを受け取った画像処理装置100が、そのコマンドに対する動作応答dを返すというモデルになる。
また、図4(A)乃至(D)の全てについて、応答を即座に返せないときに遅延通知を返信することは、図2(A)の場合と同様である。
このように、動作要求及び動作応答は、RPCのレベルでは、画像処理装置100と処理サーバ103との間及び画像処理装置100と仲介サーバ102との間で対称に取り扱われるものである。しかし、通信のレベルでは対称ではない。
まず、図5に画像処理装置と仲介サーバとの間の通信シーケンスの例を示す。
この図に示すように、画像処理装置100と仲介サーバ102とは、通信要求であるHTTPリクエストと、その通信要求に対する通信応答であるHTTPレスポンスとを、互いに送受信することによって通信を行っている。
そして、仲介サーバ102からのHTTPレスポンスには、処理サーバ103からの画像処理装置100に対する動作要求である処理サーバコマンドと、仲介サーバ102からの画像処理装置100に対する動作要求である仲介サーバコマンドと、画像処理装置100からの仲介サーバ102又は処理サーバ103に対する端末装置コマンドに対する応答とを記載して送信するようにしている。
また、この例からわかるように、例えば端末装置コマンドA及びBは、HTTPリクエストXに記載して転送し、それに対する応答あるいは遅延通知をそのHTTPリクエストXと対応するHTTPレスポンスXに記載して転送することができる。しかし、処理サーバコマンドCや仲介サーバコマンドDについては、HTTPリクエストXと対応するHTTPレスポンスXに記載して転送し、それに対する応答あるいは遅延通知は次のHTTPリクエストであるHTTPリクエストYに記載して転送することになる。
仲介サーバ102と処理サーバ103との間には、ファイアウォールがあるとは限らない。しかし、処理サーバ103側で通信すべき相手を管理したり、通信を要求すべきタイミングを管理したりする負荷をなくすため、この図に示すように、通信は常に、仲介サーバ102から通信要求としてHTTPリクエストを処理サーバ103に送信し、処理サーバ103からこの通信要求に対する通信応答としてHTTPレスポンスを仲介サーバ102に返すという手順で行うようにしている。例えば仲介サーバ102が送信したHTTPリクエストZに対して処理サーバ103がHTTPレスポンスZを返し、同じくHTTPリクエストWに対してHTTPレスポンスWを返すという具合である。
そして、このように、宛先や送信元の異なる動作要求や動作応答を一括して転送することにより、必要な情報を転送するために必要なコネクションの回数を減らし、オーバーヘッドを低減して通信の効率化を図ることができる。
説明のため、図5及び図6には極めて単純なシーケンス例を示したが、図7には、各HTTPリクエストやHTTPレスポンスに記載するコマンドやコマンド応答の数が一定でない例を示している。
また、コマンドに対して遅延通知を送信した場合に、次の送信機会の時点で応答を返す必要もない。例えば、図7に示す端末装置コマンドBのように遅延通知を記載したHTTPレスポンスX′の次のHTTPレスポンスY′に記載して応答を返さず、図示しないさらに後のHTTPレスポンス応答を返すようにしてもよい。
もちろん仲介サーバコマンドや処理サーバコマンドについても同様であり、遅延通知を記載したHTTPリクエストの次のHTTPリクエストにそのコマンドに対する応答を記載する必要はない。そして、さらに後のHTTPリクエストに記載して転送すればよい。
なお、説明を簡単にするため、以後の説明では遅延通知に関する処理の記載を省略する。
図8は、仲介サーバ102の概略構成例を示すブロック図である。
この仲介サーバ102は、モデム121,通信端末122,外部接続I/F(インタフェース)123,操作者端末124,制御装置125,ファイルサーバ126等からなる。
モデム121は、図示しない公衆回線を介して機器利用者側(例えば画像処理装置を利用しているユーザ先)の画像処理装置100と通信するものであり、送受信するデータを変復調する。また、通信端末122は、モデム121による通信を制御するものである。そして、これらのモデム121と通信端末122により通信手段としての機能を果たす。
操作者端末124は、各種データの入力をオペレータによるキーボード等の入力装置上の操作により受け付ける。入力されるデータとしては、例えば、各顧客先環境の画像処理装置100と通信する際に使用するそれらのIPアドレスや電話番号(発呼先電話番号)等の顧客情報がある。
なお、管理装置の構成はこれに限られることはなく、例えば1台のPCを用いて構成することもできる。
画像処理装置100はここでは、プリンタ、ファクシミリ(FAX)装置、デジタル複写機、スキャナ装置、文書管理装置等の機能を備えたデジタル複合機として構成しており、図9に示すように、CPU201,ASIC(Application Specific Integrated Circuit)202,SDRAM203,フラッシュメモリ(不揮発性メモリ)204,NRS用メモリ205,PHY(物理メディアインタフェース)206,NVRAM(不揮発性メモリ)207,操作部209,HDD(ハードディスクドライブ)210,モデム211,PI(パーソナルインタフェース)212,FCU(ファックスコントロールユニット)213,USB(Universal Serial Bus)214,IEEE(Institute of Electrical and Electronic Engineers)1394_215,エンジンインタフェース(I/F)216,およびエンジン部217を備えている。これらの構成が、画像読み取り、画像形成、画情報送信等の画像処理を行うためのハードウェア資源である。
ASIC202は、CPUインタフェース,SDRAMインタフェース,ローカルバスインタフェース,PCIインタフェース,MAC(Media Access Controller)、HDDインタフェースなどからなる多機能デバイスであり、CPU201の制御対象となるデバイスの共有化を図り、アーキテクチャの面からアプリ(アプリケーションソフト)や共通システムサービスの開発の高効率化を支援するものである。
また、このASIC202には各エンジン部の操作命令等を受け付けるオペレーションパネル等による操作部209が直接的に接続されると共に、PHY206も直接的に接続される。また、FCU213やUSB214,IEEE1394_215及びエンジンI/F216がPCIバス218を介して接続され、必要に応じてモデム211やPI212等が直接接続される。
SDRAM203は、OSを含む各種プログラムを記憶するプログラムメモリや、CPU201がデータ処理を行う際に使用するワークメモリ等として使用するメインメモリである。なお、このSDRAM203の代わりに、DRAMやSRAMを使用してもよい。
PHY206は、LANを介して外部装置と通信を行うためのインタフェースである。
NVRAM207は、例えば、この画像処理装置100の識別情報である機種機番を記憶する機種機番メモリ、操作部209による操作上の初期値を記憶するメモリ、各アプリ(APL)の初期値を記憶するメモリ、各カウンタ情報(課金カウンタのデータ等)を記憶するメモリ、自身や通信相手の設定状況、ネットワークアドレス情報、プロトコル等の機種情報を記憶するメモリ等として使用する不揮発性メモリ(記憶手段)であり、電源がオフになっても記憶内容を保持するようになっている。なお、このNVRAM207として、RAMと電池を利用したバックアップ回路を集積した不揮発性RAMや、EEPROM,フラッシュメモリ等の不揮発性メモリを使用することができる。
HDD210は、電源のオン・オフに関係なくデータを記憶保存する記憶手段(記録媒体)である。このHDD210に、上述したフラッシュメモリ204内のプログラムやそれ以外のデータ、あるいはNVRAM207内のデータを記憶しておくこともできる。また、定期的に収集、更新、送信等の処理を行う対象となるデータも、このHDD210に記憶させておくとよい。
モデム211は、変復調手段であり、仲介サーバ102へ公衆回線経由でデータを送信する場合、そのデータを公衆回線に流せる形に変調する。また、仲介サーバ102から送られてくる変調されたデータを受信した場合、そのデータを復調する。
FCU213は、FAX装置又はモデム機能(FAX通信機能)を有するデジタル複写機やデジタル複合機等の画像処理装置を始めとする外部装置との通信を公衆回線経由で制御する。
USB214及びIEEE1394_215はそれぞれ、周辺機器と通信を行うための、USB規格及びIEEE1394規格のインタフェースである。
エンジンI/F216は、エンジン部217をPCIバスに接続するためのインタフェースである。
エンジン部217は、公知のスキャナエンジン及びプロッタエンジン等からなる画像読み取り/形成用のエンジンや、プロッタエンジンによって画像を形成した用紙に、ソート、穴開け、ステープル処理等の後処理を行う後処理ユニット等が該当する。
この図に示すように、各処理サーバ103は、CPU301、ROM302、RAM303、SD(Secure Digital)カード304、ネットワークインタフェースカード(NIC)305を備え、これらがシステムバス306で接続されている。
RAM303は、CPU301がデータ処理を行う際のワークメモリ等として使用する一時記憶用メモリである。SDカード304は、装置の電源がオフになっても記憶内容を保持するようになっている不揮発性メモリである。NIC305は、インターネット14を始めとするネットワークを介して通信相手と情報の送受信を行うための通信手段である。
なお、これらの基本構成に、必要に応じてハードウェアを追加してもよいことはもちろんである。
図11に示す機能のうち、端末装置コマンドプール41、仲介サーバコマンドプール42、送信用転送メッセージプール51、受信用転送メッセージプール52は、いずれかの書き換え可能な記憶手段に設けられるものである。例えば制御装置125内のフラッシュメモリあるいはSDRAMやHDDに設けることができるが、ファイルサーバ126に設けてもよい。端末装置コマンド実行結果生成手段43、仲介サーバコマンド生成手段44、メッセージ収集手段45、メッセージ分配手段47、メッセージ転送手段48の機能は、制御装置125のCPUによって実現されるものである。また、HTTPサーバ機能部46及びHTTPクライアント機能部49の機能は、制御装置125のCPU及び外部接続I/F123によって実現されるものである。転送先情報記憶手段50の機能は、制御装置125内のフラッシュメモリやHDDのような不揮発性記憶手段によって実現されるものである。
まず、端末装置コマンドプール41は、画像処理装置100から受信した端末装置コマンドのうち仲介サーバ102自身が実行すべきと判断したものを、これらのコマンドに対する応答や、このコマンドの識別情報及び送信元の情報等と関連付けて登録するプールである。
これらのプールにおいては、コマンド毎にテーブル形式のコマンドシートを作成して情報を格納することにより、コマンドと、識別情報や応答等の情報とを関連付けるようにしている。
なお、端末装置コマンドハンドラ43aは、アプリケーションそのものではなく、端末装置コマンドの実行に必要なアプリケーションを呼び出してコマンドを実行させるモジュールであってもよい。
この図に示すように、仲介サーバ102においては、端末装置コマンドシートには、「コマンドID」、「送信元情報」、「メソッド名」、「入力パラメータ」、「状態」、「出力パラメータ」、および「コマンドの通知先」のデータを記憶する領域を設けている。そして、このうち「コマンドID」、「メソッド名」、および「入力パラメータ」が端末装置コマンド(及びそこに付されたID)に該当し、「状態」及び「コマンドの通知先」が管理情報に該当する。「出力パラメータ」は、仲介サーバコマンドの実行結果であり、仲介サーバ102が返すコマンド応答の内容となる。
まず、「メソッド名」は、仲介サーバ102に対するリクエストの内容であり、仲介サーバ102において呼び出す関数の種類を示す。「入力パラメータ」は、「メソッド名」に付随するデータであり、関数を呼び出す際の引数である。
「送信元情報」は、コマンドの送信元、すなわちコマンドを生成した装置の識別情報を示す。端末装置コマンドの場合には、ここには画像処理装置100の識別情報を登録することになる。またこの情報は、コマンドに対する応答を送信する際の宛先を示す情報になる。
端末装置コマンドプール41に記憶させる端末装置コマンドは、全て仲介サーバ102自身が実行すべきものであるから、コマンドの宛先を管理する必要はない。
この図に示すように、仲介サーバ102においては、仲介サーバコマンドシートには、「コマンドID」、「宛先情報」、「メソッド名」、「入力パラメータ」、「状態」、「コマンド実行結果の通知先」、および「出力パラメータ」のデータを記憶する領域を設けている。そして、このうち「コマンドID」、「メソッド名」、および「入力パラメータ」が仲介サーバコマンド(及びそこに付されたID)に該当し、「状態」及び「コマンド実行結果の通知先」が管理情報に該当する。「出力パラメータ」は、コマンドの宛先となる画像処理装置100から受信するコマンド応答の内容である。
まず、「メソッド名」は、画像処理装置100に対するリクエストの内容であり、画像処理装置100において呼び出す関数の種類を示す。「入力パラメータ」は、「メソッド名」に付随するデータであり、関数を呼び出す際の引数である。
「宛先情報」は、コマンドを実行させる対象の装置、すなわちコマンドの宛先となる装置の識別情報を示す。仲介サーバコマンドの場合には、ここには画像処理装置100の識別情報を登録することになる。なお、識別情報としては、ID、固有名称、IPアドレス等を用いることができる。
仲介サーバコマンドは常に仲介サーバ102自身が生成するものであるから、コマンドの送信元情報を管理する必要はない。
「コマンド実行結果の通知先」は、そのシートに記載している仲介サーバコマンドに対する応答を受信した場合に、その旨を通知して必要な処理を実行させるモジュールを示す参照情報である。参照するモジュールは、仲介サーバコマンドを登録したハンドラであることが多いが、必ずしもそうである必要はない。「出力パラメータ」には、コマンド応答を受け取った段階で、その内容を格納する。画像処理装置100からのコマンド応答を受け取るまでは空である。
なお、コマンド応答や端末装置コマンドあるいは転送用のメッセージに優先順位が指定されている場合には、メッセージ収集手段45がそれぞれ優先順位の高いものから順に読み出すようにすることが考えられる。
なお、転送用のメッセージについては、XMLで記載したSOAPエンベロープの状態で記憶しておき、そのまま送信メッセージとして使用することができるようにしている。
このようにするのは、上述のように、仲介サーバ102からファイアウォール11を越えて画像処理装置100にHTTPリクエストを送信することができないためである。
ここで、受信メッセージとは、上記のコマンドや応答とコマンドID等とをSOAPメッセージとして記載したものである。そして、仲介サーバ102に宛てたメッセージであるか処理サーバ103等の他の装置に転送すべきメッセージであるかは、受信の時点では区別しないし、そのための宛先や転送先の情報が含まれている必要もない。
具体的には、転送先情報記憶手段50に記憶している転送先テーブルを参照し、転送先決定手段として機能して受信したコマンドやコマンド応答の種別に従ってその転送先を判断し、その結果に基づいて登録するプールを決定する。詳細は後述するが、転送先テーブルは、コマンドやコマンド応答の群毎にその群に属するコマンドやコマンド応答の転送先を定めた転送先テーブルを記載したものである。そして、コマンドやコマンド応答をキーにしてその転送先テーブルを検索することにより、そのコマンドやコマンド応答を転送すべき転送先の情報を取得することができる。
一方、仲介サーバ102自身以外が転送先であるコマンドやコマンド応答については、そのコマンドやコマンド応答に係るメッセージを他の装置に転送するために送信用転送メッセージプール51に登録する。そして、送信用転送メッセージプール51への登録を行う場合には、転送メッセージシートを作成して登録する。
この図に示すように、送信用転送メッセージプール51の転送メッセージコマンドシートには、「転送先情報」、「エンティティヘッダ情報」、「メッセージのXMLデータ」を記憶する領域を設けている。
そして、このうち「転送先情報」には、メッセージ分配手段47が受信したコマンドやコマンド応答の種別に従って判断した転送先の情報を登録する。「エンティティヘッダ情報」には、メッセージが記載されていたパートのエンティティヘッダの情報(詳細は後述する)を登録し、「メッセージのXMLデータ」には、メッセージに係るSOAPエンベロープの内容を登録する。ここで、転送用のメッセージについては、メッセージの内容によらずそのまま転送すればよいので、SOAPエンベロープのデータ形式を変換する必要はない。
なお、メッセージ分配手段47が送信用転送メッセージプール51にメッセージを登録する際には、そのメッセージが記載されていたHTTPリクエストの送信元の情報を参照し、メッセージの送信元の情報を記載したヘッダを生成してエンティティヘッダ情報に追加するようにしている。
また、受信用転送メッセージプール52への登録に関しては、受信したメッセージを登録するための転送メッセージシートを作成して登録する。しかし、このシートの形式は、送信用転送メッセージプール51の場合とは若干異なる。
この図に示すように、受信用転送メッセージプール52の転送メッセージシートには、「エンティティヘッダ情報」及び「メッセージのXMLデータ」を記憶する領域を設けている。
受信用転送メッセージプール52の場合には、「転送先情報」の項目がないが、これは、メッセージの転送経路の情報をエンティティヘッダに記載するようにしているためである。
このHTTPリクエストは、図16に示すように、ボディ部としてMIME(Multipurpose Internet Mail Extension)に従ったマルチパートのメッセージが記載され、この各パートには、それぞれエンティティヘッダが記載されると共に、詳細な図示は省略しているが、SOAPエンベロープが埋め込まれている。図16の例では、HTTPリクエストのHTTPボディには、「MIME_boundary」で区分された各要素が、独立した第1パート、第2パート、第3パート、第4パートを構成しているが、HTTPボディに含めることのできるパート数は4つに限られない。0個を含め、いくつでもよい。
また、このような機能を有する仲介サーバ102が画像処理装置100に送信するHTTPレスポンスの例を図17に示す。
HTTPレスポンスに埋め込まれて引き渡されるSOAPエンベロープには、仲介サーバコマンドを記載したものと、処理サーバコマンドを記載したものと、端末装置コマンドに対する応答を記載したものとがある。
図18に示すように、このHTTPリクエストは、形式としては図16に示したHTTPリクエストと同様なものである。ただし、SOAPエンベロープの内容については、当然コマンドやコマンド応答の内容に従って異なるものである。そして、このHTTPリクエストに埋め込まれて引き渡されるSOAPエンベロープには、端末装置コマンドを記載したものと、処理サーバコマンドに対する応答を記載したものとがある。
図19に示すように、このHTTPレスポンスは、形式としては図18に示したHTTPレスポンスと同様なものである。ただし、SOAPエンベロープの内容については、当然コマンドやコマンド応答の内容に従って異なるものである。そして、このHTTPレスポンスに埋め込まれて引き渡されるSOAPエンベロープには、処理サーバコマンドを記載したものと、端末装置コマンドに対する応答を記載したものとがある。
なお、図16及び図17に示したような、画像処理装置100と仲介サーバ102との間で授受するメッセージにおいては、SOAPメッセージの宛先や転送経路を記載する必要はない。
図20には、仲介サーバ(機器管理サーバ)102に対する端末装置コマンドを記載したパートの例を示す。
この例においては、まず、エンティティヘッダの部分の「X-SOAP-Type」ヘッダに、このパートに記載されているSOAPメッセージがSOAPリクエストであるかSOAPレスポンスであるかを示す情報を記載している。この例では、値の「Request」により、SOAPリクエストであること、すなわちコマンドを記載したSOAPメッセージであることを示している。
SOAPボディには、仲介サーバ102において呼び出すメソッドを指定する情報として、「Body」タグの直下に、「異常通知」タグが記載され(「メソッド名」に該当し、コマンドの種別を示す)、その下位のタグ「エラーID」や「説明」の要素として、そのメソッドを呼び出す際の引数が記載されている(「入力パラメータ」に該当する)。ここでは異常通知の通知内容が記載されている。
この例においては、まず、エンティティヘッダの部分の「X-SOAP-Type」ヘッダの値を「Response」と記載することにより、このパートに記載されているSOAPメッセージがSOAPレスポンスであること、すなわちコマンド応答を記載したSOAPメッセージであることを示している。
また、この例においても、名前空間の宣言は図20に示した例と同様である。そして、SOAPヘッダには、「コマンドID」のXMLタグの内容として、応答を生成した端末装置コマンドのIDである「12345」が記述されている。
この分散処理システムにおいては、画像処理装置100側に、コマンド応答がどの装置で生成されたものであるかを認識させる必要はないので、このパートにはコマンド応答の送信元は記載していない。
この例においても、図20の場合と同様に、「X-SOAP-Type」ヘッダの値の「Request」により、このパートに記載されているSOAPエンベロープがSOAPリクエストであることを示し、「SOAPAction」ヘッダの情報により、SOAPリクエストの内容を示している。
SOAPヘッダには、「要求ID」のXMLタグの内容として、この画像機器コマンドのIDである「12346」が記載されている。
なお、このパートに記載されたコマンドが処理サーバ103aに転送すべきものであることは、仲介サーバ102のメッセージ分配手段47がコマンドの種類に従って認識するものである。従って、このパートにもコマンドの宛先や転送先は記載していないし、画像処理装置100側で、このコマンドが最終的にどの装置で実行されるかを認識している必要はない。
このパートは、図22に示したものと同じコマンドを処理サーバ103aに転送する際のものであるから、図22に示したパートとほぼ同じ内容が記載されている。しかし、エンティティヘッダ部に「X-Received-From」ヘッダが追加され、このパートに記載されたコマンドが「Cilent_A」(画像処理装置100とする)から送信されてきたことを示す情報が記載されている。そして、この情報は、コマンドが実行された後、コマンド応答を返す際の転送経路を指定するために使用される。
なおここでも、パートにはコマンドの宛先は記載する必要はない。仲介サーバ102は、コマンドを次に転送する転送先を認識しているのみであり、最終的にどの装置に転送されるかは認識していなくてもよいためである。
この例においても、図21の場合と同様に、エンティティヘッダの部分の「X-SOAP-Type」ヘッダの値を「Response」と記載することにより、このパートに記載されているSOAPメッセージがSOAPレスポンスであることを示している。
また、この例においても、名前空間の宣言は図22に示した例と同様である。そして、SOAPヘッダには、「コマンドID」のXMLタグの内容として、応答を生成した端末装置コマンドのIDである「12346」が記載されている。
この分散処理システムにおいては、仲介サーバ102側に、コマンド応答がどの装置で生成されたものであるかを認識させる必要はないので、このパートにはコマンド応答の送信元は記載していない。
このパートは、図24に示したものと同じコマンド応答を画像処理装置100に転送する際のものであるから、図24に示したパートとほぼ同じ内容が記載されている。しかし、もはや画像処理装置100に対して転送すべき旨の転送経路の情報は必要ないので、エンティティヘッダ部の「X-Send-To」ヘッダは削除している。
この例においても、図20の場合と同様に、「X-SOAP-Type」ヘッダの値の「Request」により、このパートに記載されているSOAPエンベロープがSOAPリクエストであることを示し、「SOAPAction」ヘッダの情報により、SOAPリクエストの内容を示している。仲介サーバ102から画像処理装置100へは直接コマンドを転送することができるので、転送経路の情報を示す「X-Send-To」ヘッダは記載していない。
SOAPヘッダには、「要求ID」のXMLタグの内容として、この仲介サーバコマンドのIDである「98765」が記載されている。
また、画像処理装置100側では、受信したコマンドに対するコマンド応答はとりあえず仲介サーバ102に送信すればよいということを認識できるようにしているので、パートには、コマンドの送信元の情報は記載していない。
この例においても、図21の場合と同様に、エンティティヘッダの部分の「X-SOAP-Type」ヘッダの値を「Response」と記載することにより、このパートに記載されているSOAPメッセージがSOAPレスポンスであることを示している。
SOAPボディには、「Body」タグの直下に、「温度センサ値取得」コマンドに対する応答であることを示すための「温度センサ値取得Response」タグが設けられ、その下位のタグに、コマンド応答の内容が記載される。ここでは、値取得を要求されたセンサの示す温度値の情報が記載されている。
この例においても、図20の場合と同様に、「X-SOAP-Type」ヘッダの値の「Request」により、このパートに記載されているSOAPエンベロープがSOAPリクエストであることを示し、「SOAPAction」ヘッダの情報により、SOAPリクエストの内容を示している。また、処理サーバ103aでは、コマンドの転送経路及び宛先を認識できるようにしており、コマンドを仲介サーバ102から先に転送する際の転送経路を、図24の場合と同様に「X-Send-To」ヘッダに記載している。
SOAPヘッダには、「要求ID」のXMLタグの内容として、この処理サーバコマンドのIDである「77777」が記載されている。
仲介サーバ102は、後述するように、コマンドがどこから送信されてきたものかわからなくても、コマンド応答を適切な転送先に転送することができるので、パートにはコマンドの送信元の情報は記載していない。
このパートは、図28に示したものと同じ処理サーバコマンドを画像処理装置100に転送する際のものであるから、図28に示したパートとほぼ同じ内容が記載されている。しかし、もはや画像処理装置100に対して転送すべき旨の転送経路の情報は必要ないので、エンティティヘッダ部の「X-Send-To」ヘッダは削除している。
画像処理装置100側では、受信したコマンドに対するコマンド応答はとりあえず仲介サーバ102に送信すればよいということを認識できるようにしているし、その後コマンド応答がどこに転送されるかは認識する必要がないので、パートには、コマンドの送信元の情報は記載していない。
この例においても、図21の場合と同様に、エンティティヘッダの部分の「X-SOAP-Type」ヘッダの値を「Response」と記載することにより、このパートに記載されているSOAPメッセージがSOAPレスポンスであることを示している。
SOAPボディには、「Body」タグの直下に、「新製品情報通知」コマンドに対する応答であることを示すための「新製品情報通知Response」タグが設けられ、その下位のタグに、コマンド応答の内容が記載される。ここでは、通知を正常に受け付けた旨の情報が記載されている。
このパートは、図30に示したものと同じコマンド応答を処理サーバ103aに転送する際のものであるから、図30に示したパートとほぼ同じ内容が記載されている。エンティティヘッダ部には、図23の場合と同様に「X-Received-From」ヘッダを追加しているが、コマンド応答に対する応答を返してもらう必要はないので、ここではこの記載は必須ではない。パートにコマンド応答の宛先を記載しない点については、図23の場合と同様である。
CPUは、画像処理装置100からHTTPリクエストが送信されてくると、図32のフローチャートに示す処理を開始する。
そして、まず画像処理装置100からそのHTTPリクエストを受信し(S11)、受信したHTTPリクエストのHTTPボディを各パートに分割する(S12)。ここで、各パートへの分割は、「MIME_boundary」で区分された要素に分割することであり、またここで全てのパートに関して分割する。
ここまでの処理において、ステップS11及びS12が第1の受信手順の処理であり、ここではCPUはHTTPリクエスト受信手段46bとして機能する。また、ステップS13では、CPUはメッセージ分配手段47として機能する。
その後、仲介サーバコマンド収集処理を行う(S15)。この処理は、仲介サーバコマンドプール42から画像処理装置100に送信すべき仲介サーバコマンドを収集する処理であり、収集したデータからSOAPエンベロープによるパートを生成する処理を含む。
その後、ステップS14乃至S16の処理で生成したパートを1つにマージして、すべてのパートを含むHTTPレスポンスを生成し(S17)、そのHTTPレスポンスを画像処理装置100に送信する(S18)。なお、ステップS14乃至S16の処理は、順不同でよい。
ここまでの処理において、ステップS14乃至S16ではCPUはメッセージ収集手段45として機能する。また、ステップS17及びS18が第2の送信手順の処理であり、ここではCPUはHTTPレスポンス送信手段46aとして機能する。
図33は、図32に示したメッセージ分配処理の内容をより詳細に示したフローチャートである。
この転送先テーブルの例を図34に示す。
この図に示すように、転送先テーブルには、名前空間URI毎に、その名前空間に属するコマンド又はコマンド応答の転送先の情報を記載している。そして、転送先の情報は、IPアドレスやホスト名等として記憶しておくと良い。このとき、異なる名前空間URIに同じ転送先を対応させてももちろん構わない。
そこで、対象のパートがそのいずれであるかを判断する。図33には、仲介サーバコマンドに対する応答か否かを判断するものとして記載している(S24)。そして、この判断は、対象のパートに「SOAPAction」ヘッダが存在するか否か、あるいは「X-SOAP-Type」ヘッダの内容によって判断することができる。
すなわち、まずそのパートのSOAPエンベロープを解析して仲介サーバコマンドシートに登録できる形式のデータに変換し(S25)、仲介サーバコマンドプール42からその応答に対応する仲介サーバコマンドを探索し、その仲介サーバコマンドについての仲介サーバコマンドシートの「出力パラメータ」の項目に応答のデータを登録する(S26)。なお、コマンド応答には、「コマンドID」の情報として、仲介サーバコマンドの送信時に付したものと同じコマンドIDが付してあるものとし、仲介サーバコマンドの探索は、この情報をキーとして行うことができる。
以上のステップS28までの処理が終了すると、図33の処理を終了して元の処理に戻る。
すなわち、まずそのパートのSOAPエンベロープを解析して端末装置コマンドシートに登録できる形式のデータに変換し(S29)、その端末装置コマンドを登録するための端末装置コマンドシートを端末装置コマンドプール41に作成して(S30)、端末装置コマンドとコマンドIDと送信元情報とをその端末装置コマンドシートに登録する(S31)。
以上のステップS33までの処理が終了すると、図33の処理を終了して元の処理に戻る。
すなわち、まずそのメッセージを登録するための転送メッセージシートを送信用転送メッセージプール51に作成して(S34)、メッセージ及びそのメッセージの転送先情報をその転送用メッセージシートに登録する(S35)。
そして、以上の項目への登録が終了すると、「エンティティヘッダ情報」に登録したエンティティヘッダの末尾に、「X-Received-From」ヘッダを追加し、メッセージの送信元の情報として、対象のパートが記載されていたHTTPリクエストの送信元の情報を記載する(S36)。
以上のステップS36までの処理が終了すると、図33の処理を終了して元の処理に戻る。
図33の処理を終了した後は、図32の処理に戻るが、この図に示したように、次のパートがあればそのパートを対象として図33の処理を繰り返すことになる。
この処理においては、CPUは、まず受信用転送メッセージプール52から「X-Send-To」ヘッダの最下段に、図32のステップS11で受信したHTTPリクエストの送信元が記載されている転送メッセージシートを収集する(S41)。なお、受信用転送メッセージプール52中の転送メッセージシートに登録されている情報は図15に示した通りであり、「X-Send-To」ヘッダは、このうち「エンティティヘッダ情報」の項目に登録されている。
そして、この処理においては、まず対象の転送メッセージシートに記載された転送メッセージのパートを生成する(S42)。この処理は、対象シートの「メッセージのXMLデータ」の項目に登録されているSOAPエンベロープに、「エンティティヘッダ情報」の項目に登録されているエンティティヘッダを付すものである。ただし、エンティティヘッダ中の最下段の「X-Send-To」ヘッダの内容は、転送先の装置に伝える必要はないので、このヘッダは取り除くようにしている。
また、パートの作成が終了すると、対象の転送メッセージシートを受信用転送メッセージプール52から削除する(S43)。そして、収集した全てのシートについてこれらの処理を行った時点で、図32のステップS15に示した処理に進む。
この処理においては、CPUは、まず仲介サーバコマンドプール42から、宛先情報が図32のステップS11で受信したHTTPリクエストの送信元と等しく、かつ「状態」が「未送信」である仲介サーバコマンドシートの「メソッド名」と「入力パラメータ」の内容を、送信すべき仲介サーバコマンドとして収集し、「コマンドID」の内容もそのコマンドのコマンドIDとして収集する(S51)。「未送信」という「状態」は、コマンドが仲介サーバコマンド生成手段44によって生成された後、まだ画像処理装置100に送信されていないことを示すものであるので、これを基準に画像処理装置100に送信すべきコマンドを抽出できる。
ここでは、CPUは、端末装置コマンドプール41から、送信元情報が図32のステップS11で受信したHTTPリクエストの送信元と等しく、かつ「状態」が「処理完了」である端末装置コマンドシートの「出力パラメータ」の内容を、端末装置コマンドに対するコマンド応答のうち送信すべきものとして収集し、「コマンドID」の内容も、対応する端末装置コマンドのコマンドIDとして収集する(S55)。仲介サーバ102においては、「処理完了」という「状態」は、端末装置コマンドに対応する処理が端末装置コマンド実行結果生成手段43によって生成された後、まだ画像処理装置100に通知されていないことを示すものであるので、これを基準に画像処理装置100に送信すべきコマンド応答を抽出できる。
以上のように、図32乃至図36を用いて説明したメッセージの分配及び収集の処理を行うことにより、仲介サーバ102は、画像処理装置100から複数の動作要求及び動作応答を一括して受信して処理することができるし、それらに宛先が付されていない場合にも、適当な転送先を自動で認識し、転送先に応じた対応を行うことができる。また、自身が生成したり他の装置から受信したりした、画像処理装置100に転送すべき複数の動作要求及び動作応答を、一括して画像処理装置100に転送することもできる。
また、ここでは送信すべき全てのパートを全て生成してからマージして送信を行うようにし、また全てのパートを受信してからこれを各パートに分割して処理を行うように説明したが、このようにする必要はない。
また、受信側でも、各パートに関する処理を、各パートを受信するたびに順次行うようにすることができる。このようにした場合にメモリ容量を低減できることは、送信側の場合と同様である。
図37は、この処理の一例を示すフローチャートである。
端末装置コマンドの実行に関する処理としては、まず、図37のフローチャートに示す処理を、図33に示したステップS33の処理の後に、すなわち端末装置コマンドを端末装置コマンドプール41に登録した直後に行うことが考えられる。この処理において、CPUは、端末装置コマンド実行結果生成手段43として機能する。
この処理は、CPUが仲介サーバ102の起動時に開始するものである。そして、この処理においては、まず端末装置コマンドプール41に「状態」が「未処理」である端末装置コマンドシートがあるか否か判断し(SX1)、なければこのような端末装置コマンドシートを発見するまで待機する。なお、上述のように、「未処理」という状態は、端末装置コマンドシートにおける「状態」の初期値であり、コマンドの登録後に特に処理が行われていないことを示すものである。
その後、図37の場合と同様なステップS61乃至S63の処理を行って処理対象の端末装置コマンドシートに記載された端末装置コマンドを実行し、これが完了するとステップSX1に戻って処理を繰り返す。
以上のような処理を行うようにすれば、任意のタイミングで端末装置コマンドを実行することができるので、実行に時間のかかるコマンドがあった場合でも、以後の処理が滞ることがない。そして、実行の終了したものから順に、その結果をコマンド応答として画像処理装置に送信可能な状態にすることができる。
この処理においては、まず送信用転送メッセージプール51から、対象の転送先が「転送先情報」の項目に登録された転送メッセージシートを収集する(S71)。そして、ステップS71で収集した全ての転送メッセージシートを順次対象として、ステップS72及びS73の処理を繰り返す。
ここまでの処理において、ステップS71乃至S73ではCPUはメッセージ転送手段48として機能する。また、ステップS74及びS75が第1の送信手順の処理であり、ここではCPUはHTTPリクエスト送信手段49aとして機能する。
なお、ステップS73で行った転送メッセージシートの削除は、実際にこの送信が終了してから行うようにしてもよいことは、上述した図35のステップS43の場合と同様である。
これらの処理においては、まず対象のメッセージを登録するための転送メッセージシートを受信用転送メッセージプール52に作成して(S78)、対象のメッセージをその転送用メッセージシートに登録する(S79)。ここで、対象パートのエンティティヘッダをそのまま「エンティティヘッダ情報」の項目に登録し、SOAPエンベロープの内容をそのまま「メッセージのXMLデータ」の項目に登録する。「X-Send-To」ヘッダもこの時点では削除しない。
以上の処理において、ステップS76及びS77が第2の受信手順の処理であり、ここではCPUはHTTPレスポンス受信手段49bとして機能する。ステップS78及びS79ではCPUはメッセージ転送手段48として機能する。
この処理は、CPUが仲介サーバ102の起動時に開始するものである。そして、この処理は、一定時間毎に、図34に示した転送先テーブルに記載されている全ての転送先を順次対象として図39に示したのメッセージ転送処理を行うものである。この場合において、同じ転送先が転送先テーブルに複数回登場する場合にも、1つの転送先について1回のメッセージ転送処理を行えば足りる。
この処理は、図38の場合と同様、CPUが仲介サーバ102の起動時に開始するものである。そして、この処理においては、まず送信用転送メッセージプール51にコマンドを記載した転送メッセージシートがあるか否か判断し(S91)、なければこのような転送メッセージシートを発見するまで待機する。
以上の処理により、コマンドの転送先からコマンド応答を取得してその内容を受信用転送メッセージプール52に登録することができるので、登録したコマンド応答は、図39及び図40の処理によって登録した場合と同様に、メッセージ収集手段45によって収集して画像処理装置100に送信することができる。
以上で、仲介サーバ102において実行する、各コマンド及びコマンド応答の転送に関する処理の説明を終了する。
図42は、画像処理装置100の機能のうち、コマンド及びコマンド応答に関する処理を行うための機能の構成を示す機能ブロック図である。
図42に示す機能のうち、端末装置コマンドプール141及びサーバ側コマンドプール142は、いずれかの書き換え可能な記憶手段に設けられるものである。例えばNVRAM207に設けることができるが、SDRAM203やHDD210に設けてもよい。端末装置コマンド生成手段143、サーバ側コマンド実行結果生成手段144、メッセージ収集手段145、メッセージ分配手段147の機能は、CPU201によって実現されるものである。また、HTTPクライアント機能部146の機能は、CPU201及びPHY206によって実現されるものである。
まず、端末装置コマンドプール141は、端末装置コマンドと、このコマンドに対する応答と、このコマンドの識別情報とを関連付けて登録するプールである。また、サーバ側コマンドプール142は、サーバ側コマンドと、このコマンドに対する応答と、このコマンドの識別情報とを関連付けて登録するプールである。これらのプールにおいては、コマンド毎にテーブル形式のコマンドシートを作成して情報を格納することにより、コマンドと、識別情報や応答等の情報とを関連付けるようにしている。
この図に示すように、画像処理装置100においては、端末装置コマンドシートには、「コマンドID」、「メソッド名」、「入力パラメータ」、「状態」、「コマンド実行結果の通知先」、および「出力パラメータ」のデータを記憶する領域を設けている。そして、このうち「コマンドID」、「メソッド名」、および「入力パラメータ」が端末装置コマンド(及びそこに付されたID)に該当し、「状態」及び「コマンド実行結果の通知先」が管理情報に該当する。「出力パラメータ」は、コマンドに係る処理を実行する装置から返されるコマンド応答の内容である。
なお、サーバ側コマンド実行結果生成手段144は、アプリケーションそのものではなく、サーバ側コマンドの実行に必要なアプリケーションを呼び出してコマンドを実行させるモジュールであってもよい。
この図に示すように、画像処理装置100においては、サーバ側コマンドシートには、「コマンドID」、「メソッド名」、「入力パラメータ」、「状態」、「出力パラメータ」、および「コマンドの通知先」のデータを記憶する領域を設けている。そして、このうち「コマンドID」、「メソッド名」、および「入力パラメータ」がサーバ側コマンド(及びそこに付されたID)に該当し、「状態」及び「コマンドの通知先」が管理情報に該当する。「出力パラメータ」は、サーバ側コマンドの実行結果であり、画像処理装置100が返すコマンド応答の内容となる。
送信メッセージの記載形式や生成方式については、仲介サーバ102について説明したものと同様である。
そして、HTTPリクエスト送信手段146aは、送信手段に該当し、メッセージ収集手段145が生成した送信メッセージを含むHTTPリクエストを生成し、仲介サーバ102に送信する機能を有する。このとき、1つのHTTPリクエストに送信メッセージをいくつ含めてもよいし、コマンド応答に係る送信メッセージと端末装置コマンドに係る送信メッセージとを任意に混在させることもできる。
ここで、受信メッセージの記載形式については、仲介サーバ102について説明したものと同様である。
具体的には、サーバ側コマンド及びそのコマンドと関連付けられたコマンドIDとをサーバ側コマンドプール142にサーバ側コマンドシートを設けて登録すると共に、端末装置コマンドに対する応答については、そのコマンドと関連付けられたコマンドIDを端末装置コマンドプール141に記憶している端末装置コマンドシートのコマンドIDと照合して対応する端末装置コマンドを特定し、その端末装置コマンドについての「出力パラメータ」として登録する。
この登録の際のデータ変換方式についても、仲介サーバ102について説明したものと同様である。
CPU201は、メッセージ収集手段145が端末装置コマンドやコマンド応答等の読み出しを試みるタイミングになると、図45のフローチャートに示す処理を開始する。
そして、まず端末装置コマンドの収集処理を行う(S111)。この処理は、端末装置コマンドプール141から仲介サーバ102に送信すべき端末装置コマンドを収集する処理であり、収集したデータからSOAPエンベロープによるパートを生成する処理を含む。
ここまでの処理において、ステップS111及びS112ではCPU201はメッセージ収集手段145として機能し、ステップS113及びS114ではHTTPリクエスト送信手段146aとして機能する。
ここまでの処理において、ステップS115及びS116ではCPU201はHTTPレスポンス受信手段146bとして機能し、ステップS117乃至S119ではメッセージ分配手段147として機能する。
図46は、図45のステップS114までの部分の処理をより詳細に示したフローチャートである。
なお、ステップS124又はS128で行った「状態」の変更は、実際にこの送信が終了してから行うようにしてもよい。このようにすることにより、通信エラーが発生しても、送信しようとしていたコマンド及びコマンド応答を再度送信の対象とすることができるので、システムの信頼性が向上する。
以上でHTTPリクエストの送信に関する処理を終了し、図45のステップS115以降に相当する処理に進む。
この処理においては、CPU201はまず、送信したHTTPリクエストに対するHTTPレスポンスの受信を待ち、仲介サーバ102からこれを受信する(S131)。これを受信すると、そのHTTPボディを解析して各パートに分割する(S132)。
そしてその後、分割して得た各パートを順次対象として、ステップS133乃至ステップS142の処理を繰り返す。
すなわち、まずそのパートのSOAPエンベロープを解析して端末装置コマンドシートに登録できる形式のデータに変換し(S134)、端末装置コマンドプール141からそのコマンド応答に対応する端末装置コマンドを探索し、その端末装置コマンドについての端末装置コマンドシートの「出力パラメータ」の項目にコマンド応答のデータを登録する(S135)。なお、コマンド応答には、「コマンドID」の情報として、端末装置コマンドの送信時に付したものと同じコマンドIDが付してあるものとし、端末装置コマンドの探索は、この情報をキーとして行うことができる。
以上のステップS137までの処理が終了すると、次のパートがあればそれを対象としてステップS133からの処理を繰り返す。
すなわち、まずそのパートのSOAPエンベロープを解析してサーバ側コマンドシートに登録できる形式のデータに変換し(S138)、そのサーバ側コマンドを登録するためのサーバ側コマンドシートをサーバ側コマンドプール142に作成して(S139)、サーバ側コマンドとコマンドIDとをそのサーバ側コマンドシートに登録する(S140)。
全てのパートについてステップS133乃至S142の処理が終了すると、図47のフローチャートに示した処理は終了する。
また、サーバ側コマンドの実行に関する処理としては、仲介サーバ102について図37又は図38を用いて説明した処理を、サーバ側コマンドシートについて実行するようにすればよい。
以上で、画像処理装置100において実行する、各コマンド及びコマンド応答の転送に関する処理の説明を終了する。
図48は、処理サーバ103の機能のうち、コマンド及びコマンド応答に関する処理を行うための機能の構成を示す機能ブロック図である。
まず、処理サーバコマンドプール241は、処理サーバコマンドを、このコマンドに対する応答や、このコマンドの識別情報及びコマンドの宛先や送信元の情報等と関連付けて登録するプールである。また、端末装置コマンドプール242は、端末装置コマンドを、このコマンドに対する応答や、このコマンドの識別情報及びコマンドの宛先や送信元の情報等と関連付けて登録するプールである。
すなわち、経路情報記憶手段250は、コマンド(あるいはその他の情報)の宛先と、その宛先にコマンドを送信する際の経路情報とを対応させて、経路情報テーブルとして記憶しているので、最終的な宛先をキーとしてこの経路情報テーブルを検索することにより、その宛先に転送するまでの経路情報を取得することができる。
この例では、4台の画像処理装置が登録されているテーブルを示している。そして、画像処理装置A及びBについては、仲介サーバ102を介してコマンドを転送すれば良い旨の情報が登録されているが、画像処理装置C及びDについては、経路が不明である旨の情報が登録されている。
また、複数の仲介サーバを介して転送するような転送経路も登録可能であるが、1つの端末装置につき、経路は1種類のみ登録するようにしている。
また、処理サーバ103の端末装置コマンドシートにおけるデータ構造は、図12に示した仲介サーバ102の端末装置コマンドシートにおけるデータ構造と同様なものである。
送信メッセージの記載形式や生成方式については、仲介サーバ102について説明したものと同様である。
そして、HTTPレスポンス送信手段246aは、送信手段に該当し、メッセージ収集手段245が生成した送信メッセージを含むHTTPレスポンスを、仲介サーバ102から受信したHTTPリクエストに対する通信応答として生成し、仲介サーバ102に送信する機能を有する。このとき、1つのHTTPレスポンスに送信メッセージをいくつ含めてもよいし、コマンド応答に係る送信メッセージと処理サーバコマンドに係る送信メッセージとを任意に混在させることもできる。もちろん、宛先の異なる送信メッセージを混在させることもできる。
これ以外の場面で読み出しを試みても、処理サーバ103はHTTPクライアント機能部を有しないので、自らHTTPリクエストを送信して送信メッセージを仲介サーバ102に転送することができないためである。
受信メッセージの記載形式については、仲介サーバ102について説明したものと同様である。
具体的には、端末装置コマンド及びそのコマンドと関連付けられたコマンドID及び転送経路情報(送信元情報として登録する)とを端末装置コマンドプール242に端末装置コマンドシートを設けて登録すると共に、処理サーバコマンドに対する応答については、その応答と関連付けられたコマンドIDを処理サーバコマンドプール241に記憶している処理サーバコマンドシートのコマンドIDと照合して対応する処理サーバコマンドシートを特定し、その処理サーバコマンドシートの「出力パラメータ」の項目に登録する。
この登録の際のデータ変換方式についても、仲介サーバ102について説明したものと同様である。
図50に仲介サーバとの間でのメッセージの送受信に関する基本動作のフローチャートを示すが、このフローチャートに示す処理は、処理サーバ103のCPU301が所要の制御プログラムを実行することによって行うものである。
そして、まずそのHTTPリクエストを受信する(S211)。そして、受信したHTTPリクエストのHTTPボディを各パートに分割する(S212)。ここで、各パートへの分割は、「MIME_boundary」で区分された要素に分割することであり、またここで全てのパートに関して分割する。
ここまでの処理において、ステップS211及びS212ではCPU301はHTTPリクエスト受信手段246bとして機能し、ステップS213乃至S215ではメッセージ分配手段247として機能する。
次に、端末装置コマンドに対する応答である端末装置コマンド実行結果の収集処理を行う(S217)。この処理は、端末装置コマンドプール242から仲介サーバ102に送信すべきコマンド応答を収集する処理であり、やはり収集したデータからSOAPエンベロープによるパートを生成する処理を含む。
ここまでの処理において、ステップS216及びS217ではCPU301はメッセージ収集手段245として機能し、ステップS218及びS219ではHTTPレスポンス送信手段246aとして機能する。
図51は、図50のステップS215までの部分の処理をより詳細に示したフローチャートである。
この処理においては、CPU301はまず、仲介サーバ102からHTTPリクエストを受信する(S221)。そしてこれを受信すると、そのHTTPボディを解析して各パートに分割する(S222)。
これらの処理について、ステップSYについては後述する。また、ステップS223乃至ステップS232については、画像処理装置100について図47を用いて説明したステップS133乃至S142の処理とほぼ同様なものである。そして、基本的には、図47の処理で端末装置コマンドであったものがここでは処理サーバコマンドであり、サーバ側コマンドであったものが端末装置コマンドであり、またそれに伴ってコマンドシートの名称が異なるのみである。
そこで、その他の点については説明を省略する。
そして、全てのパートについてステップSY及びステップS223乃至ステップS232のの処理が終了すると、図51のフローチャートに示した処理は終了し、図50のステップS216以降に相当する処理に進む。
この処理においては、CPU301はまず、処理サーバコマンドプール241から、直近の転送先がステップS211で受信したHTTPリクエストの送信元と等しく、かつ「状態」が「未送信」である処理サーバコマンドシートの「メソッド名」と「入力パラメータ」の内容を、送信すべき処理サーバコマンドとして収集し、「コマンドID」の内容もそのコマンドのコマンドIDとして収集する(S241)。
また、「未送信」という「状態」は、コマンドが処理サーバコマンド生成手段243によって生成された後、まだ仲介サーバ102に通知されていないことを示すものであるので、これを基準に仲介サーバ102に送信すべきコマンドを抽出できる。
これらの処理においては、まず対象の処理サーバコマンドとそのコマンドIDとを、これらの情報がそれぞれSOAPボディとSOAPヘッダとに含まれるSOAPエンベロープに変換し(S242)、これにエンティティヘッダを付加して対象のコマンドに関するパートを生成する(S243)。なお、ステップS243では、エンティティヘッダに、「宛先情報」を参照して上述した「X-Send-To」ヘッダにより転送経路の情報を記載する。このとき、これからHTTPレスポンスを送信しようとする対象の情報は、もはや不要であるので記載しない。
そして、対象の処理サーバコマンドを記載していた処理サーバコマンドシートの「状態」を「応答待ち」に変更する(S244)。「応答待ち」という「状態」は、コマンドを仲介サーバ102に送信済であることを示すものである。
また、「処理完了」という「状態」は、端末装置コマンドに対応する処理が端末装置コマンド実行結果生成手段244によって生成された後、まだ仲介サーバ102に送信されていないことを示すものであるので、これを基準に仲介サーバ102に送信すべきコマンド応答を抽出できる。
そして、次に対象のコマンド応答を記載していた端末装置コマンドシートの「状態」を「応答済」に変更する(S248)。「応答済」という「状態」は、コマンド応答を仲介サーバ102に送信済であることを示すものである。
なお、ステップS244又はS248で行った「状態」の変更は、実際にこの送信が終了してから行うようにしてもよい。このようにすることにより、通信エラーが発生しても、送信しようとしていたコマンド及びコマンド応答を再度送信の対象とすることができるので、システムの信頼性が向上する。
以上で図52に示した処理を終了する。
この処理においては、CPU301は、まず対象パートに「X-Received-From」ヘッダがあるか否か、すなわちエンティティヘッダに経路情報が記載されているか否か判断する(S251)。
そして、「X-Received-From」ヘッダがあれば、対象パートの送信元情報として先頭の「X-Received-From」ヘッダの値を取得し、経路情報として残りの「X-Received-From」ヘッダの値及び図50のステップS211で受信したHTTPリクエストの送信元情報を取得する(S252)。一方、「X-Received-From」ヘッダがなければ、対象パートの送信元情報としてHTTPリクエストの送信元情報を取得し、経路情報がない旨を記憶する(S253)。
ステップS254で登録されていなかった場合には、パートの送信元を新規に経路情報テーブルに登録すべく、経路情報テーブルに、端末装置IDとして送信元情報を登録し、対応する経路情報として、ステップS252又はS253で取得した経路情報を登録する。
ステップS256又はS257の後では、経路情報テーブルの更新内容を既にプールに登録されているコマンドシートに反映させるべく、処理サーバコマンドプール241及び端末装置コマンドプールから、宛先又送信元(途中の転送経路は含まない)が対象パートの送信元(ステップS252又はS253で取得した送信元情報)と一致するコマンドシートを抽出する(S258)。
以上の処理が全て終了すると、図53のフローチャートに示す処理を終了し、元の処理に戻る。
また、画像機器コマンドの実行に関する処理としては、仲介サーバ102について図37又は図38を用いて説明した処理と同様な処理を実行するようにすればよい。
以上で、処理サーバ103において実行する、各コマンド及びコマンド応答の取扱いに関する処理の説明を終了する。
これらの図に示す処理の各々は、既に説明した処理のいずれかであるので、詳細な説明は省略するが、以上説明してきた遠隔管理システムにおいては、このような処理を行うことにより、処理サーバ103と画像処理装置100との間のコマンド及びコマンド応答の送受信を、仲介サーバ102によって仲介して行うことができる。
特に、画像処理装置100にとっては、仲介サーバ102との間で、全ての動作要求及び動作応答を一括して転送できるので、通信のタイミング管理も容易になる。
そして、このようにしたことにより、各装置が、一括して受信した動作要求と動作応答とを、容易に個々のメッセージに分離し、それが動作要求であるか動作応答であるか、またその種別や転送先に応じて、適切な処理を行うことができる。
同様に、仲介サーバ102と処理サーバ103の間の通信についても、通信要求を常に仲介サーバ102から発して通信を行うようにすれば、処理サーバ103側でどの仲介サーバが通信相手となり得るかを管理していない場合であっても、問題なく動作要求及び動作応答の送受信を行うことができる。従って、処理サーバ103側での通信先の管理負担を低減することができる。
この場合において、上記の仲介サーバ102から処理サーバ103に定期的に通信要求を送信するようにすれば、処理サーバ103から仲介サーバ102に向けての情報の送信が長時間に亘って停滞してしまう事態を防止できる。
また、受信した動作要求や動作応答を各々分離して適切なプールに記憶させる分配手段を設け、受信した情報もプールに蓄積しておくようにすることにより、受信した動作要求に係る動作の実行や、動作応答受信後の処理、動作要求及び動作応答の転送を、通信相手からの受信タイミングを考慮せずに行うことができる。従って、タイミング管理を簡略化することができ、装置の設計や開発が容易になる。
さらに、動作要求に優先順位を付して、これが高いものから順に実行したり応答を送信したりするようにすれば、緊急を要する動作を優先的に実行すると共にその応答も優先的に返すことができる。
次に、上述した実施形態の変形例について説明する。
まず、上述した実施形態においては、画像処理装置100のような端末装置と処理サーバ103との間で仲介サーバ102を1つだけ介してメッセージを送受信する例について説明したが、2つ以上の仲介装置を介して送受信するようにしてもよいことはもちろんである。
このような分散処理システムの例を図56に示す。
そして、この場合において、端末装置から処理サーバに向かう方向に転送するメッセージは通信要求に記載して、逆方向に転送するメッセージはその通信要求に対する通信応答に記載して転送するものとする。
また、どの装置が第1の通信装置でどの通信装置が第2の通信装置であるかは、各仲介サーバに関して相対的に定まるものである。具体的には、仲介サーバに通信要求を送信してくる装置が第1の通信装置、仲介サーバが通信要求を送信する相手の装置が第2の通信装置となる。あるいは、転送先を記載していないメッセージを送信してくる装置が第1の通信装置、転送先を記載してあるメッセージを送信してくる装置が第2の通信装置と考えることもできる。
そして、このようにしておけば、転送経路に当たる仲介サーバは、この経路情報を参照し、次の転送先にメッセージを転送して、最終的に端末装置Aまでメッセージを転送することができる。このとき、メッセージの転送に際して、転送先を示す経路情報は消去し、最下段に次の転送先が示されるようにしている。
また、上述した実施形態では、「X-Received-From」ヘッダの追加は受信側で、「X-Send-To」ヘッダの削除は送信側で行う例について説明したが、このようにすることは必須ではない。逆に、「X-Received-From」ヘッダの追加を送信側で、「X-Send-To」ヘッダの削除を受信側で行うようにしてもよい。
この図に示すように、この発明の分散処理システムにおいて、端末装置と直接通信する仲介サーバが1つである必要はない。また、処理サーバについても、1つの仲介サーバとの間でのみメッセージの送受信を行う構成である必要もない。1つの仲介サーバが複数の端末装置との間でメッセージの送受信を行ってもよいことは、上述した通りである。
このようにしても、端末装置から処理サーバに向けて転送するメッセージには送信元及び転送経路の情報を記載し、また途中の仲介サーバがメッセージの種別毎に転送先の情報を記憶しており、処理サーバから端末装置に向けて転送するメッセージには転送経路及び宛先の情報を記載しているので、これらを参照すれば、適切な相手にメッセージを転送することができる。
端末装置C及びDについては、まだ経路が登録されていない。しかし、例えば処理サーバJが端末装置Dからのメッセージを受信すると、そのメッセージの転送経路の情報から、端末装置D⇔仲介サーバF⇔仲介サーバG⇔処理サーバJの経路を認識し、これを経路情報テーブルに登録することができる。
なお、分散処理システムとして、図56や図57に示した構成以外にも、種々の構成が取り得ることは言うまでもない。ただし、1つの端末装置から複数の仲介サーバにメッセージを送信可能とすると、端末装置側でメッセージの宛先を管理する必要が生じてしまう。そこで、各端末装置からは1つの仲介サーバのみにメッセージを送信可能とすることが好ましい。
また、処理サーバから仲介サーバに対して通信要求を送信し、その通信要求に動作要求や動作応答に係るメッセージを記載して転送することを可能とすることも考えられる。
このようにすることにより、仲介サーバ102において、扱い得る全てのコマンドやコマンド応答に応じた転送先情報を指定しなくてもよいようになるので、システムの設計や管理が容易になる。
この場合、例えば、分散処理システムを図62に示すように構成し、複数の仲介サーバを直列に配置して、各仲介サーバは、自身で処理すべきもの以外のコマンドやコマンド応答に係るメッセージを、順次次のサーバに転送していくようにすることができる。このようにシステムを構成すれば、各仲介サーバには、自身で処理すべきコマンド及びコマンド応答の情報と、その他のコマンド及びコマンド応答の転送先のみを記憶させておけばよいので、システムの設計や管理がさらに容易になる。
そして、最終段の処理サーバNにおいては、転送先テーブルに「default」の項目を設けないようにし、名前空間URIが転送先テーブルに登録されていないコマンドやコマンド応答に対してエラー処理を行うようにすれば、全く関係ないコマンド等についても、適切な対応が可能になる。
すなわち、図63に示した情報を用いる場合、図32に示したメッセージ送受信の基本フロー中のメッセージ分配処理において、図64に示した処理を行うようにする。そして、ステップS21で対象パートのSOAPメッセージからそのメッセージに係るコマンド又はコマンド応答の名前空間URIを取得し、ステップSAで、その名前空間URIが図63に示した「自身で処理するメソッドの属する名前空間URI」に含まれるか否か判断する。
各仲介サーバに、以上のような処理を実行させるようにすれば、図63に示したような情報のみで、メッセージの転送を適切に行わせることができる。なお、このような処理を採用した場合、転送先のサーバは1つしかないので、図39に示したようなメッセージ転送処理を行う場合において、送信用転送メッセージプール51に登録されている全てのメッセージを収集し、所定の転送先に送信するようにすればよい。従って、図14に示したような転送メッセージシートにおいてメッセージの転送先を管理することも、必須ではない。
さらに、コマンド応答についても同様な処理を行うようにしてもよい。この場合において、最終的にメッセージを受け取る可能性がある各装置が共通に参照できるデータベースを設けてここに受け取ったメッセージをプールしておくようにすれば、コマンド応答がコマンドの送信元の装置に届かなかったとしても、送信元の装置は、データベースにアクセスすることによりコマンド応答を参照することができる。
また、システム全体で取り扱うコマンドを、端末装置から仲介サーバや処理サーバに向けたものだけとしても、上述のようなマルチパートによる転送を行うようにすれば、上述した効果を同様に得ることができる。
また、送受信するコマンドやコマンド応答の情報量に制限を設けても構わない。特に、受信するコマンドの情報量を制限するようにすると、受信側がメモリ容量の限られた装置である場合にメモリの使用量を抑えることができる。
例えば、上述した実施形態における「端末装置」は、あくまで分散処理システムにおける「端末」であって、顧客先環境内においても「端末」として機能している必要はない。すなわち、顧客先環境における基幹系サーバを「端末装置」として上述の実施形態のような分散処理システムに接続し、ここから取得した情報を加工して顧客先環境内の他の装置に配布するような構成も採りうる。
さらに、端末装置側からの動作要求については、仲介サーバが通信トラフィックを監視する等して、その内容に応じて転送先を動的に変更することも可能である。このようにしても、処理サーバには適切な転送経路を指定して動作応答を返す機能があるので、動作要求の送信元まで正確に動作応答を返すことができる。
従って、顧客先環境の仲介サーバにこのようなプロトコル変換機能を設ければ、特殊なプロトコルに対応していない端末装置であっても、マルチパート転送等の特殊なプロトコルを使用する分散処理システムに接続し、上述した効果を得ることができる。
なおこの場合、顧客先環境の仲介サーバと端末装置との接続は、LANに限らず、RS−485規格等に準拠したシリアル接続や、SCSI(Small Computer System Interface)規格等に準拠したパラレル接続等によって行ってもよい。例えばRS−485規格の場合には、仲介サーバに直列に5台までの端末装置を接続することができる。
従って、端末装置側で、観光地案内、時刻表案内、チケット予約、宿泊予約といった機能を提供する複数の処理サーバに対するコマンドを送信し、各々コマンド応答のXMLデータを加工して結合し、1つのHTML文書に変換するような処理を行えば、仲介サーバは、複数のサイトの機能を1つのウェブページ内で提供するような、いわゆるポータルサイトと同様なサービスを提供することもできる。
このようにする場合には、SOAPメッセージ中のSOAPヘッダに、宛先や送信元の情報を記載しておき、これを端末装置コマンドシートやサーバ側コマンドシートに記載して管理すれば良い。
なお、いずれにしろ、SOAPヘッダの内容を解釈するためには、一旦SOAPメッセージをデシリアライズする必要がある。
また、仲介サーバが、端末装置宛ての複数の処理サーバからの動作要求を端末装置に一括して送信し、それらの動作要求に対する動作応答を一括して受信する場合にも、同様に通信効率向上の効果が得られる。この効果は、仲介サーバが機能提供側に設けられている場合に特に効果が大きい。
これらの効果は、端末装置側からの動作要求を取り扱わず、処理サーバ側からの動作要求と、それに対する動作応答のみを取り扱う場合でも得られるものである。
なお、以上説明した各変形を、矛盾しない範囲で組み合わせて適用できることはもちろんである。
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部機器あるいはプログラムを記憶手段に記憶した外部機器からダウンロードして実行させることも可能である。
従って、この発明を、このような通信システム又はこのような通信システムにおいて通信を仲介する仲介装置に適用することにより、通信の負荷が小さい通信システムを構成することができる。
12,102:仲介サーバ 13,103:処理サーバ
14:インターネット
41,141,242:端末装置コマンドプール
42:仲介サーバコマンドプール
43,244:端末装置コマンド実行結果生成手段
43a:端末装置コマンドハンドラ
44:仲介サーバコマンド生成手段
44a:仲介サーバコマンド生成ハンドラ
45,145,245:メッセージ収集手段
46,246:HTTPサーバ機能部
46a,246a:HTTPレスポンス送信手段
46b,246b:HTTPリクエスト受信手段
47,147,247:メッセージ分配手段
48:メッセージ転送手段
49,146:HTTPクライアント機能部
49a,146a:HTTPリクエスト送信手段
49b,146b:HTTPレスポンス受信手段
50:転送先情報記憶手段
51:送信用転送メッセージプール
52:受信用転送メッセージプール
100:画像処理装置 112:顧客環境側仲介サーバ
125:制御装置 142:サーバ側コマンドプール
143:端末装置コマンド生成手段
144:サーバ側コマンド実行結果生成手段
201,301:CPU
241:処理サーバコマンドプール
243:処理サーバコマンド生成手段
244:端末装置コマンド実行結果生成手段
250:経路情報記憶手段
Claims (29)
- 複数の第1の通信装置と第2の通信装置との間の通信を仲介する仲介装置であって、
前記各第1の通信装置から、前記第2の通信装置から転送されてきた動作要求に対する動作応答を複数一括して受信する第1の受信手段と、
該第1の受信手段が受信した各動作応答を、転送先となる第2の通信装置に複数一括して送信する第1の送信手段と、
前記第2の通信装置から、前記第1の通信装置に転送すべき動作要求を複数一括して受信する第2の受信手段と、
前記第2の受信手段が受信した各動作要求を、転送先となる前記各第1の通信装置に装置毎に一括して送信する第2の送信手段とを設けたことを特徴とする仲介装置。 - 複数の第1の通信装置と第2の通信装置との間の通信を仲介する仲介装置であって、
前記各第1の通信装置から、動作要求と、前記第2の通信装置から転送されてきた動作要求に対する動作応答とを一括して受信する第1の受信手段と、
該第1の受信手段が受信した各動作要求及び動作応答を、各動作要求及び動作応答の種別に従って転送先となる第2の通信装置に一括して送信する第1の送信手段と、
前記第2の通信装置から、前記第1の通信装置に転送すべき動作要求と、前記第1の通信装置から転送されてきた動作要求に対する動作応答とを一括して受信する第2の受信手段と、
該第2の受信手段が受信した各動作要求と各動作応答とを転送先となる前記各第1の通信装置に装置毎に一括して送信する第2の送信手段とを設けたことを特徴とする仲介装置。 - 複数の第1の通信装置と第2の通信装置との間の通信を仲介する仲介装置であって、
前記各第1の通信装置から、前記第2の通信装置に転送すべき動作要求と、前記第2の通信装置から転送されてきた動作要求に対する動作応答とを一括して受信する第1の受信手段と、
該第1の受信手段が受信した各動作要求及び動作応答を、転送先となる第2の通信装置に一括して送信する第1の送信手段と、
前記第2の通信装置から、前記第1の通信装置に転送すべき動作要求と、前記第1の通信装置から転送されてきた動作要求に対する動作応答とを一括して受信する第2の受信手段と、
該第2の受信手段が受信した各動作要求と各動作応答とを転送先となる前記各第1の通信装置に装置毎に一括して送信する第2の送信手段とを設けたことを特徴とする仲介装置。 - 請求項2又は3記載の仲介装置であって、
前記第1の受信手段が受信した動作要求が当該仲介装置において実行すべきものであった場合にその動作要求に係る動作を実行し、実行結果としてその動作要求に対する動作応答を生成する応答生成手段を有し、
前記第2の送信手段を、該応答生成手段が生成した動作応答も前記第2の受信手段が受信した各動作要求及び各動作応答と一括して前記第1の通信装置に送信する手段としたことを特徴とする仲介装置。 - 複数の第1の通信装置と第2の通信装置との間の通信を仲介する仲介装置であって、
前記各第1の通信装置から、前記第2の通信装置から転送されてきたSOAPリクエストに対するSOAPレスポンスを1つのHTTPリクエストに複数記載した状態で受信する第1の受信手段と、
該第1の受信手段が受信した各SOAPレスポンスを、転送先となる第2の通信装置に1つのHTTPに複数記載して送信する第1の送信手段と、
前記第2の通信装置から、前記第1の通信装置に転送すべきSOAPリクエストを1つのHTTPリクエストに複数記載した状態で受信する第2の受信手段と、
該第2の受信手段が受信した各SOAPリクエストを、前記第1の受信手段が受信したHTTPリクエストに対する1つのHTTPレスポンスに複数記載して転送先となる前記各第1の通信装置に装置毎に送信する第2の送信手段とを設けたことを特徴とする仲介装置。 - 請求項5記載の仲介装置であって、
前記第1の送信手段に、前記第2の通信装置に対して定期的にHTTPリクエストを送信する手段を設けたことを特徴とする仲介装置。 - 請求項5又は6記載の仲介装置であって、
前記第2の送信手段は、前記第1の受信手段がHTTPリクエストを受信した場合に、その要求元に送信すべきSOAPリクエストを全て、受信したHTTPリクエストに対するHTTPレスポンスに記載して送信する手段であることを特徴とする仲介装置。 - 処理サーバと、該処理サーバと複数の端末装置との間の通信を仲介する仲介サーバとを備えた分散処理システムであって、
前記仲介サーバに、
前記各端末装置から、前記処理サーバからの動作要求に対する動作応答を複数一括して受信する第1の受信手段と、
該第1の受信手段が受信した各動作応答を、転送先となる処理サーバに複数一括して送信する第1の送信手段と、
前記処理サーバから、前記端末装置宛ての動作要求を複数一括して受信する第2の受信手段と、
該第2の受信手段が受信した各動作要求を転送先となる前記各端末装置に装置毎に複数一括して送信する第2の送信手段とを設け、
前記処理サーバに、
前記端末装置宛ての動作要求を複数一括して前記仲介サーバに送信する送信手段と、
前記端末装置宛ての動作要求に対する動作応答を複数一括して前記仲介サーバから受信する受信手段とを設けた
ことを特徴とする分散処理システム。 - 処理サーバと、該処理サーバと複数の端末装置との間の通信を仲介する仲介サーバとを備えた分散処理システムであって、
前記仲介サーバに、
前記各端末装置から、動作要求と、前記処理サーバからの動作要求に対する動作応答とを一括して受信する第1の受信手段と、
該第1の受信手段が受信した各動作要求及び動作応答を、各動作要求及び動作応答の種別に従って転送先となる処理サーバに一括して送信する第1の送信手段と、
前記処理サーバから、前記端末装置宛ての動作要求と、前記端末装置からの動作要求に対する動作応答とを一括して受信する第2の受信手段と、
該第2の受信手段が受信した各動作要求と各動作応答とを転送先となる前記各端末装置に装置毎に一括して送信する第2の送信手段とを設け、
前記処理サーバに、
前記端末装置からの当該処理サーバに対する動作要求と、前記端末装置宛ての動作要求に対する動作応答とを一括して前記仲介サーバから受信する受信手段と、
該手段が受信した動作要求に係る動作を実行し、実行結果としてその動作要求に対する動作応答を生成する手段と、
該手段が生成した動作応答と、前記端末装置宛ての動作要求とを一括して前記仲介サーバに送信する送信手段とを設けた
ことを特徴とする分散処理システム。 - 処理サーバと、該処理サーバと複数の端末装置との間の通信を仲介する仲介サーバとを備えた分散処理システムであって、
前記仲介サーバに、
前記各端末装置から、前記処理サーバ宛ての動作要求と、前記処理サーバからの動作要求に対する動作応答とを一括して受信する第1の受信手段と、
該第1の受信手段が受信した各動作要求及び動作応答を、転送先となる処理サーバに一括して送信する第1の送信手段と、
前記処理サーバから、前記端末装置宛ての動作要求と、前記端末装置からの動作要求に対する動作応答とを一括して受信する第2の受信手段と、
該第2の受信手段が受信した各動作要求と各動作応答とを転送先となる前記各端末装置に装置毎に一括して送信する第2の送信手段とを設け、
前記処理サーバに、
前記端末装置からの当該処理サーバ宛ての動作要求と、前記端末装置宛ての動作要求に対する動作応答とを一括して前記仲介サーバから受信する受信手段と、
該手段が受信した動作要求に係る動作を実行し、実行結果としてその動作要求に対する動作応答を生成する手段と、
該手段が生成した動作応答と、前記端末装置宛ての動作要求とを一括して前記仲介サーバに送信する送信手段とを設けた
ことを特徴とする分散処理システム。 - 請求項9又は10記載の分散処理システムであって、
前記仲介サーバにおいて、
前記第1の受信手段が受信した動作要求が当該仲介装置において実行すべきものであった場合にその動作要求に係る動作を実行し、実行結果としてその動作要求に対する動作応答を生成する応答生成手段を有し、
前記第2の送信手段を、該応答生成手段が生成した動作応答も前記第2の受信手段が受信した各動作要求及び各動作応答と一括して前記端末装置に送信する手段としたことを特徴とする分散処理システム。 - 処理サーバと、該処理サーバと複数の端末装置との間の通信を仲介する仲介サーバとを備えた分散処理システムであって、
前記仲介サーバに、
前記各端末装置から、前記処理サーバからのSOAPリクエストに対するSOAPレスポンスを1つのHTTPリクエストに複数記載した状態で受信する第1の受信手段と、
該第1の受信手段が受信したSOAPレスポンスを、転送先となる処理サーバに1つのHTTPリクエストに複数記載して送信する第1の送信手段と、
前記処理サーバから、前記端末装置宛てのSOAPリクエストを1つのHTTPレスポンスに複数記載した状態で受信する第2の受信手段と、
該第2の受信手段が受信した各SOAPリクエストを、前記第1の受信手段が受信したHTTPリクエストに対する1つのHTTPレスポンスに複数記載して、転送先となる前記端末装置に装置毎に送信する第2の送信手段とを設け、
前記処理サーバに、
前記端末装置宛てのSOAPリクエストに対するSOAPレスポンスを1つのHTTPリクエストに複数記載した状態で前記仲介サーバから受信する受信手段と、
前記端末装置宛てのSOAPリクエストを、前記仲介サーバから受信したHTTPリクエストに対する1つのHTTPレスポンスに複数記載して前記仲介サーバに送信する送信手段と、
を設けたことを特徴とする分散処理システム。 - 請求項12記載の分散処理システムであって、
前記仲介サーバの第1の送信手段に、前記処理サーバに対して定期的にHTTPリクエストを送信する手段を設けたことを特徴とする分散処理システム。 - 請求項12又は13記載の分散処理システムであって、
前記仲介サーバの前記第2の送信手段は、前記第1の受信手段がHTTPリクエストを受信した場合に、その要求元に送信すべきSOAPリクエストを全て受信したHTTPリクエストに対するHTTPレスポンスに記載して送信する手段であり、
前記処理サーバの送信手段は、当該処理サーバの受信手段がHTTPリクエストを受信した場合に、その要求元に送信すべきSOAPリクエストを全て受信したHTTPリクエストに対するHTTPレスポンスに記載して送信する手段であることを特徴とする分散処理システム。 - 複数の第1の通信装置と第2の通信装置との間で仲介装置を介して動作要求及び動作応答を送受信させるデータ転送方法であって、
前記仲介装置に、
前記各第1の通信装置から、前記第2の通信装置から転送されてきた動作要求に対する動作応答を複数一括して受信する第1の受信手順と、
該第1の受信手順で受信した各動作応答を、転送先となる第2の通信装置に複数一括して送信する第1の送信手順と、
前記第2の通信装置から、前記第1の通信装置に転送すべき動作要求を複数一括して受信する第2の受信手順と、
前記第2の受信手順で受信した各動作要求を、転送先となる前記各第1の通信装置に装置毎に一括して送信する第2の送信手順とを実行させることを特徴とするデータ転送方法。 - 複数の第1の通信装置と第2の通信装置との間で仲介装置を介して動作要求及び動作応答を送受信させるデータ転送方法であって、
前記仲介装置に、
前記各第1の通信装置から、動作要求と、前記第2の通信装置から転送されてきた動作要求に対する動作応答とを一括して受信する第1の受信手順と、
該第1の受信手順で受信した各動作要求及び動作応答を、各動作要求及び動作応答の種別に従って転送先となる第2の通信装置に一括して送信する第1の送信手順と、
前記第2の通信装置から、前記第1の通信装置に転送すべき動作要求と、前記第1の通信装置から転送されてきた動作要求に対する動作応答とを一括して受信する第2の受信手順と、
該第2の受信手順で受信した各動作要求と各動作応答とを転送先となる前記各第1の通信装置に装置毎に一括して送信する第2の送信手順とを実行させることを特徴とするデータ転送方法。 - 複数の第1の通信装置と第2の通信装置との間で仲介装置を介して動作要求及び動作応答を送受信させるデータ転送方法であって、
前記仲介装置に、
前記各第1の通信装置から、前記第2の通信装置に転送すべき動作要求と、前記第2の通信装置から転送されてきた動作要求に対する動作応答とを一括して受信する第1の受信手順と、
該第1の受信手順で受信した各動作要求及び動作応答を、転送先となる第2の通信装置に一括して送信する第1の送信手順と、
前記第2の通信装置から、前記第1の通信装置に転送すべき動作要求と、前記第1の通信装置から転送されてきた動作要求に対する動作応答とを一括して受信する第2の受信手順と、
該第2の受信手順で受信した各動作要求と各動作応答とを転送先となる前記各第1の通信装置に装置毎に一括して送信する第2の送信手順とを実行させることを特徴とするデータ転送方法。 - 請求項16又は17記載のデータ転送方法であって、
前記第1の受信手順で受信した動作要求が当該仲介装置において実行すべきものであった場合にその動作要求に係る動作を実行し、実行結果としてその動作要求に対する動作応答を生成する応答生成手順を有し、
前記第2の送信手順を、該応答生成手順で生成した動作応答も前記第2の受信手順で受信した各動作要求及び各動作応答と一括して前記第1の通信装置に送信する手順としたことを特徴とするデータ転送方法。 - 複数の第1の通信装置と第2の通信装置との間で仲介装置を介して動作要求及び動作応答を送受信させるデータ転送方法であって、
前記仲介装置に、
前記各第1の通信装置から、前記第2の通信装置から転送されてきたSOAPリクエストに対するSOAPレスポンスを1つのHTTPリクエストに複数記載した状態で受信する第1の受信手順と、
該第1の受信手順で受信した各SOAPレスポンスを、転送先となる第2の通信装置に1つのHTTPに複数記載して送信する第1の送信手順と、
前記第2の通信装置から、前記第1の通信装置に転送すべきSOAPリクエストを1つのHTTPリクエストに複数記載した状態で受信する第2の受信手順と、
該第2の受信手順で受信した各SOAPリクエストを、前記第1の受信手順で受信したHTTPリクエストに対する1つのHTTPレスポンスに複数記載して転送先となる前記各第1の通信装置に装置毎に送信する第2の送信手順とを実行させることを特徴とするデータ転送方法。 - 請求項19記載のデータ転送方法であって、
前記第1の送信手順に、前記第2の通信装置に対して定期的にHTTPリクエストを送信する手順を設けたことを特徴とするデータ転送方法。 - 請求項19又は20記載のデータ転送方法であって、
前記第2の送信手順は、前記第1の受信手順でHTTPリクエストを受信した場合に、その要求元に送信すべきSOAPリクエストを全て、受信したHTTPリクエストに対するHTTPレスポンスに記載して送信する手順であることを特徴とするデータ転送方法。 - コンピュータを、複数の第1の通信装置と第2の通信装置との間の通信を仲介する仲介装置として機能させるためのプログラムであって、
前記コンピュータを、
前記各第1の通信装置から、前記第2の通信装置から転送されてきた動作要求に対する動作応答を複数一括して受信する第1の受信手段と、
該第1の受信手段が受信した各動作応答を、転送先となる第2の通信装置に複数一括して送信する第1の送信手段と、
前記第2の通信装置から、前記第1の通信装置に転送すべき動作要求を複数一括して受信する第2の受信手段と、
前記第2の受信手段が受信した各動作要求を、転送先となる前記各第1の通信装置に装置毎に一括して送信する第2の送信手段として機能させるためのプログラム。 - コンピュータを、複数の第1の通信装置と第2の通信装置との間の通信を仲介する仲介装置として機能させるためのプログラムであって、
前記コンピュータを、
前記各第1の通信装置から、動作要求と、前記第2の通信装置から転送されてきた動作要求に対する動作応答とを一括して受信する第1の受信手段と、
該第1の受信手段が受信した各動作要求及び動作応答を、各動作要求及び動作応答の種別に従って転送先となる第2の通信装置に一括して送信する第1の送信手段と、
前記第2の通信装置から、前記第1の通信装置に転送すべき動作要求と、前記第1の通信装置から転送されてきた動作要求に対する動作応答とを一括して受信する第2の受信手段と、
該第2の受信手段が受信した各動作要求と各動作応答とを転送先となる前記各第1の通信装置に装置毎に一括して送信する第2の送信手段として機能させるためのプログラム。 - コンピュータを、複数の第1の通信装置と第2の通信装置との間の通信を仲介する仲介装置として機能させるためのプログラムであって、
前記コンピュータを、
前記各第1の通信装置から、前記第2の通信装置に転送すべき動作要求と、前記第2の通信装置から転送されてきた動作要求に対する動作応答とを一括して受信する第1の受信手段と、
該第1の受信手段が受信した各動作要求及び動作応答を、転送先となる第2の通信装置に一括して送信する第1の送信手段と、
前記第2の通信装置から、前記第1の通信装置に転送すべき動作要求と、前記第1の通信装置から転送されてきた動作要求に対する動作応答とを一括して受信する第2の受信手段と、
該第2の受信手段が受信した各動作要求と各動作応答とを転送先となる前記各第1の通信装置に装置毎に一括して送信する第2の送信手段として機能させるためのプログラム。 - 請求項23又は24記載のプログラムであって、
前記コンピュータを、
前記第1の受信手段が受信した動作要求が当該仲介装置において実行すべきものであった場合にその動作要求に係る動作を実行し、実行結果としてその動作要求に対する動作応答を生成する応答生成手段として機能させるためのプログラムをさらに含み、
前記第2の送信手段の機能を、該応答生成手段が生成した動作応答も前記第2の受信手段が受信した各動作要求及び各動作応答と一括して前記第1の通信装置に送信する機能としたことを特徴とするプログラム。 - コンピュータを、複数の第1の通信装置と第2の通信装置との間の通信を仲介する仲介装置として機能させるためのプログラムであって、
前記コンピュータを、
前記各第1の通信装置から、前記第2の通信装置から転送されてきたSOAPリクエストに対するSOAPレスポンスを1つのHTTPリクエストに複数記載した状態で受信する第1の受信手段と、
該第1の受信手段が受信した各SOAPレスポンスを、転送先となる第2の通信装置に1つのHTTPに複数記載して送信する第1の送信手段と、
前記第2の通信装置から、前記第1の通信装置に転送すべきSOAPリクエストを1つのHTTPリクエストに複数記載した状態で受信する第2の受信手段と、
該第2の受信手段が受信した各SOAPリクエストを、前記第1の受信手段が受信したHTTPリクエストに対する1つのHTTPレスポンスに複数記載して転送先となる前記各第1の通信装置に装置毎に送信する第2の送信手段として機能させるためのプログラム。 - 請求項26記載のプログラムであって、
前記第1の送信手段に、前記第2の通信装置に対して定期的にHTTPリクエストを送信する機能を設けたことを特徴とするプログラム。 - 請求項26又は27記載のプログラムであって、
前記第2の送信手段の機能は、前記第1の受信手段がHTTPリクエストを受信した場合に、その要求元に送信すべきSOAPリクエストを全て、受信したHTTPリクエストに対するHTTPレスポンスに記載して送信する機能であることを特徴とするプログラム。 - 請求項22乃至28のいずれか一項記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004272605A JP2005259105A (ja) | 2004-02-09 | 2004-09-17 | 仲介装置、通信システム、仲介装置の制御方法、プログラム及び記録媒体 |
US11/197,547 US7587496B2 (en) | 2004-09-17 | 2005-08-05 | Transfer device, distributed processing system, transfer device control method, program, and recording medium |
DE602005013037T DE602005013037D1 (de) | 2004-09-17 | 2005-08-08 | Transfergerät, -system und -verfahren zur Vermittlung von Kommunikationen zwischen ersten und zweiten Endgeräten |
EP05017208A EP1638289B1 (en) | 2004-09-17 | 2005-08-08 | Transfer device, system and method for mediating communications between first and second communication devices |
CN200510119981.2A CN100581161C (zh) | 2004-09-17 | 2005-08-09 | 传送设备及其控制方法、分布式处理系统、程序和记录介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004032608 | 2004-02-09 | ||
JP2004272605A JP2005259105A (ja) | 2004-02-09 | 2004-09-17 | 仲介装置、通信システム、仲介装置の制御方法、プログラム及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005259105A true JP2005259105A (ja) | 2005-09-22 |
Family
ID=35084716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004272605A Pending JP2005259105A (ja) | 2004-02-09 | 2004-09-17 | 仲介装置、通信システム、仲介装置の制御方法、プログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005259105A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2007039942A1 (ja) * | 2005-10-06 | 2009-04-16 | 三菱電機株式会社 | 端末装置及びサーバ装置及び指令装置 |
JP2012517127A (ja) * | 2009-02-13 | 2012-07-26 | エヌイーシー ヨーロッパ リミテッド | 通信ネットワークおよび通信ネットワークの動作方法 |
WO2014010189A1 (ja) * | 2012-07-13 | 2014-01-16 | パナソニック株式会社 | プロキシ装置、通信システム、プログラム |
JP2014059716A (ja) * | 2012-09-18 | 2014-04-03 | Ricoh Co Ltd | 要求伝達装置、機器、要求伝達システム、要求伝達方法、及びプログラム |
JP2019208112A (ja) * | 2018-05-29 | 2019-12-05 | 株式会社 日立産業制御ソリューションズ | 中継サーバ、および、中継方法 |
-
2004
- 2004-09-17 JP JP2004272605A patent/JP2005259105A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2007039942A1 (ja) * | 2005-10-06 | 2009-04-16 | 三菱電機株式会社 | 端末装置及びサーバ装置及び指令装置 |
JP2012517127A (ja) * | 2009-02-13 | 2012-07-26 | エヌイーシー ヨーロッパ リミテッド | 通信ネットワークおよび通信ネットワークの動作方法 |
WO2014010189A1 (ja) * | 2012-07-13 | 2014-01-16 | パナソニック株式会社 | プロキシ装置、通信システム、プログラム |
JP2014059716A (ja) * | 2012-09-18 | 2014-04-03 | Ricoh Co Ltd | 要求伝達装置、機器、要求伝達システム、要求伝達方法、及びプログラム |
JP2019208112A (ja) * | 2018-05-29 | 2019-12-05 | 株式会社 日立産業制御ソリューションズ | 中継サーバ、および、中継方法 |
JP7018359B2 (ja) | 2018-05-29 | 2022-02-10 | 株式会社 日立産業制御ソリューションズ | 中継サーバ、および、中継方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1638290B1 (en) | System, method and intermediary server for transmitting operational requests and responses between apparatuses | |
EP1638289B1 (en) | Transfer device, system and method for mediating communications between first and second communication devices | |
US7600050B2 (en) | Information processing apparatus, information processing apparatus control method, information processing program, and network system | |
JP4704105B2 (ja) | 通信装置、通信システム及び通信方法 | |
US7620700B2 (en) | Communication system implementing a plurality of communication apparatuses as communication client and communication server for exchanging operation requests and operation responses | |
JP2007122376A (ja) | ネットワークプリントシステム及びネットワーク周辺装置及び情報処理装置とプログラム | |
US7822864B2 (en) | Communication apparatus, program product for adding communication mechanism to communication apparatus for providing improved usability and communication efficiency, and recording medium storing program product | |
JP5558681B2 (ja) | デバイス検索装置、デバイス検索装置の制御方法、及びコンピュータプログラム | |
JP2004139586A (ja) | 仲介装置、通信システム、仲介装置の制御方法、プログラム及び記録媒体 | |
JP2005259106A (ja) | 仲介装置、分散処理システム、データ転送方法、プログラム及び記録媒体 | |
US20060077421A1 (en) | System and method for driverless printers | |
JP4382006B2 (ja) | 仲介装置、通信システム、通信方法、プログラム及び記録媒体 | |
US8332494B2 (en) | Device management system, servers, method for managing device, and computer readable medium | |
JP4030943B2 (ja) | 画像処理装置、画像処理システム、画像処理装置の制御方法、プログラム及び記録媒体 | |
JP5473248B2 (ja) | 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム | |
JP2005322222A (ja) | 通信機能付加方法、プログラム、記録媒体及び通信装置 | |
JP2005259105A (ja) | 仲介装置、通信システム、仲介装置の制御方法、プログラム及び記録媒体 | |
JP4160480B2 (ja) | 仲介装置、通信システム、仲介装置の制御方法、プログラム及び記録媒体 | |
JP2018136876A (ja) | 監視装置及び方法及びプログラム | |
JP5016475B2 (ja) | 通信装置,制御方法,プログラム,および記録媒体 | |
JP2008301159A (ja) | ネットワーク間仲介装置 | |
JP7456160B2 (ja) | 仲介プログラム、管理プログラム及びデバイス管理システム | |
JP4378372B2 (ja) | 情報処理方法、情報処理装置、及び記憶媒体 | |
JP2007128215A (ja) | ネットワークデバイスに関する情報収集 | |
JP4198562B2 (ja) | 通信クライアント、通信サーバ、通信システム及び通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070126 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090908 |