(57)【特許請求の範囲】
【請求項１】
複数種の通信ミドルウエアを有する通信管理手段と、
ネットワークに存在する機器が有する通信ミドルウエアのケーパビリティ情報を含む機器ケーパビリティ情報を取得する取得手段と、
前記取得手段により取得した前記機器ケーパビリティ情報から判断される、前記ネットワークに存在する機器と共通して使用できる通信プロトコルを基に、前記通信管理手段の複数種の通信ミドルウエアの内の活性化する通信ミドルウエアを判定する判定手段と、
前記判定手段により活性化すると判定された通信ミドルウエアを使用して前記ネットワークを介して機器間での通信を実行する通信手段と、
前記通信手段が、前記判定手段により活性化すると判定された通信ミドルウエアを使用した、前記ネットワークの他の機器との間の通信に失敗した場合、前記他の機器で用いられている通信プロトコルと、前記通信手段が前記他の機器との間で失敗した通信で使用した通信ミドルウエアが用いた通信プロトコルとの差分情報を抽出する抽出手段と、
前記差分情報に応じて、前記他の機器と通信を実行するために前記通信手段が使用する通信ミドルウエアが用いる通信プロトコルを修正するプロトコル修正手段と、
を有することを特徴とするネットワーク機器。
【請求項２】
管理手段、取得手段、判定手段、通信手段、解析手段、及びプロトコル修正手段を具備するネットワーク機器の制御方法であって、
前記管理手段が、複数種の通信ミドルウエアを有する通信管理工程と、
前記取得手段が、ネットワークに存在する機器が有する通信ミドルウエアのケーパビリティ情報を含む機器ケーパビリティ情報を取得する取得工程と、
前記判定手段が、前記取得工程で取得した前記機器ケーパビリティ情報から判断される、前記ネットワークに存在する機器と共通して使用できる通信プロトコルを基に、前記複数種の通信ミドルウエアの内の活性化する通信ミドルウエアを判定する判定工程と、
前記通信手段が、前記判定工程により活性化すると判定された通信ミドルウエアを使用して前記ネットワークを介して機器間での通信を実行する通信工程と、
前記抽出手段が、前記ネットワークの他の機器との間で用いられている通信プロトコルと、自機で用いられる通信プロトコルとの差分情報を抽出する抽出工程と、
前記プロトコル修正手段が、前記差分情報に応じて、前記他の機器と通信を実行するために前記通信手段が使用する通信ミドルウエアが用いる通信プロトコルを修正するプロトコル修正工程と、
を有することを特徴とするネットワーク機器の制御方法。
【請求項３】
複数種の通信ミドルウエアを有する通信管理手順と、
ネットワークに存在する機器が有する通信ミドルウエアのケーパビリティ情報を含む機器ケーパビリティ情報を取得する取得手順と、
前記取得手順で取得した前記機器ケーパビリティ情報から判断される、前記ネットワークに存在する機器と共通して使用できる通信プロトコルを基に、前記複数種の通信ミドルウエアの内の活性化する通信ミドルウエアを判定する判定手順と、
前記判定手順により活性化すると判定された通信ミドルウエアを使用して前記ネットワークを介して機器間での通信を実行する通信手順と、
前記ネットワークの他の機器で用いられている通信プロトコルと、自機で用いられる通信プロトコルとの差分情報を抽出する抽出手順と、
前記差分情報に応じて、前記他の機器と通信を実行するために前記通信手段が使用する通信ミドルウエアが用いる通信プロトコルを修正するプロトコル修正手順と、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続されるネットワーク機器及びその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
電子計算機技術の進歩により、従来は単一の機能しか有さず、相互に有機的に接続することが意図されていなかったオフィス機器や一般の家庭用機器においても、ネットワークを介して他の機器と接続され、共通する処理を実行するといった態様が提案されている。このような機器ネットワーク通じた融合を実現する技術として、ＵＰｎＰ（Universal Plug and Play），Ｊｉｎｉ，Ｊｘｔａ等のプロトコルが知られている。
【０００３】
ＵＰｎＰは、ＨＴＴＰ技術やＸＭＬ技術といった比較的高機能な処理を必要とする通信ソフトウエアで、これを各機器に対して常に個別に開発して搭載するのは容易ではない。そのため、こうしたＵＰｎＰなどの共通した通信部分のソフトウエアは、ミドルウエアという形で分離して実装するのが一般的となっている。また、通信機能を搭載した機器の高機能化により、こうしたミドルウエアを更に複数個同時に搭載したいという要求も出てきている。例えばＵＰｎＰにおいて、Ｊｉｎｉでも動的に発見できる通信機能をもった機器を実現するために、対応ミドルウエアを２種類搭載する必要がある。このように各種プロトコルに対応したい場合は、それぞれに対応した複数のミドルウエアを機器に搭載する必要がある。
【０００４】
このようにして各機器が複数のプロトコルのそれぞれに対応したミドルウエアを搭載した場合、機器間で相互にデータをやり取りして処理を実行するには、同一のプロトコルが実装されているミドルウエアを搭載した機器を選択する必要がある。しかし、実装できるプロトコルの数には制限があり、世に存在するプロトコルを全て各機器に実装することは不可能である。また仮に実存するプロトコルを全て実装できたとしても、新たに開発されたプロトコルに対応することは不可能である。また各種プロトコルにおいて、その仕様には曖昧な部分があり全てが厳密に規定されているわけではない。このため、機器の開発者が、そのプロトコルの仕様に完全に従って実装したつもりでも、そのプロトコルの仕様の曖昧さの部分ため解釈の違いが生じ、機器間での通信が失敗する場合も起こりえる。
【０００５】
また、プロトコルの仕様に完全に沿っていない状態でプロトコルを実装する場合も多々発生している。更に、仕様に沿っていないプロトコルを用いる機器が事実上の標準（デファクトスタンダード）となると、元々の仕様に沿ったプロトコルの機器を開発しても、事実上の標準となったプロトコルを用いる機器との通信が正常に行えない事態も発生する。通信が失敗する例として、例えば、ある実装では大文字／小文字を区別していないが、別の実装では大文字／小文字を区別するため通信が失敗する等のケースがある。また、ＳＯＡＰなどのＸＭＬ関連のプロトコルでは、ネームスペースの有無により通信が失敗する場合がある。
【特許文献１】特開平８−８８６７２号公報
【非特許文献１】RFC2616, R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee "Hypertext Transfer Protocol--HTTP/1.1",  http://www.ietf.org/rfc/rfc2616.txt, June, 1999
【発明の開示】
【発明が解決しようとする課題】
【０００６】
高機能化、複雑化して肥大化していく通信用ミドルウエアを複数搭載することは、計算能力に制約のある機器の組み込み環境では大きな制約となっており、これを効率的に処理することが大きな課題となってきている。機器間で各機器のプロトコルによる通信を確保するために、プロトコルの違いを発見するプロトコルモニタに関する提案の１つに特許文献１がある。この特許文献１では、プロトコルの誤り箇所を検出し、その箇所を自動的に指摘することを可能としている。
【０００７】
しかし、このような対応を出荷後の機器に対して行うのは容易ではない。また、そのようなプロトコルモニタを用いても、市場に存在する全ての機器に対処することは不可能であり、その検証が十分に行われることはない。そのためユーザは、機器の購入前に、その機器がどのような機器と通信を行えたかを、例えばインターネットでの報告を探すなどして選ばざるを得ない。
【０００８】
本発明は、上記従来技術の問題点を解決することを目的とする。
【０００９】
また本願発明の特徴は、通信機能を有する機器に搭載された通信ミドルウエアを、そのネットワークレベルでの最適化する技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明の一態様に係るネットワーク機器は以下のような構成を備える。即ち、
複数種の通信ミドルウエアを有する通信管理手段と、
ネットワークに存在する機器が有する通信ミドルウエアのケーパビリティ情報を含む機器ケーパビリティ情報を取得する取得手段と、
前記取得手段により取得した前記機器ケーパビリティ情報から判断される、前記ネットワークに存在する機器と共通して使用できる通信プロトコルを基に、前記通信管理手段の複数種の通信ミドルウエアの内の活性化する通信ミドルウエアを判定する判定手段と、
前記判定手段により活性化すると判定された通信ミドルウエアを使用して前記ネットワークを介して機器間での通信を実行する通信手段と、
前記通信手段が、前記判定手段により活性化すると判定された通信ミドルウエアを使用した、前記ネットワークの他の機器との間の通信に失敗した場合、前記他の機器で用いられている通信プロトコルと、前記通信手段が前記他の機器との間で失敗した通信で使用した通信ミドルウエアが用いた通信プロトコルとの差分情報を抽出する抽出手段と、
前記差分情報に応じて、前記他の機器と通信を実行するために前記通信手段が使用する通信ミドルウエアが用いる通信プロトコルを修正するプロトコル修正手段と、を有することを特徴とする。
【００１２】
上記目的を達成するために本発明の一態様に係るネットワーク機器の制御方法は以下のような工程を備える。即ち、
管理手段、取得手段、判定手段、通信手段、解析手段、及びプロトコル修正手段を具備するネットワーク機器の制御方法であって、
前記管理手段が、複数種の通信ミドルウエアを有する通信管理工程と、
前記取得手段が、ネットワークに存在する機器が有する通信ミドルウエアのケーパビリティ情報を含む機器ケーパビリティ情報を取得する取得工程と、
前記判定手段が、前記取得工程で取得した前記機器ケーパビリティ情報から判断される、前記ネットワークに存在する機器と共通して使用できる通信プロトコルを基に、前記複数種の通信ミドルウエアの内の活性化する通信ミドルウエアを判定する判定工程と、
前記通信手段が、前記判定工程により活性化すると判定された通信ミドルウエアを使用して前記ネットワークを介して機器間での通信を実行する通信工程と、
前記抽出手段が、前記ネットワークの他の機器との間で用いられている通信プロトコルと、自機で用いられる通信プロトコルとの差分情報を抽出する抽出工程と、
前記プロトコル修正手段が、前記差分情報に応じて、前記他の機器と通信を実行するために前記通信手段が使用する通信ミドルウエアが用いる通信プロトコルを修正するプロトコル修正工程と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、通信機能を有する機器に搭載された通信ミドルウエアを、その機器が接続されているネットワークレベルで最適化できる。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１６】
図１は、本発明の実施の形態に係るネットワークシステム全体の構成図である。
【００１７】
ここではネットワーク１０５に、デジタルカメラ１００、デジタルビデオカメラ１０１、プリンタ１０２、スキャナ１０３、プロジェクタ１０４が接続されている。尚、本実施形態では上記機器を挙げているが、本発明はこれら機器に限定されるものではない。
【００１８】
図２は、本実施の形態に係る機器における処理の概要を示した図である。本図においては説明を容易に行う目的から、各処理部における具体的な機能を例として記してあるが、本発明はこの構成に限定されるものではない。また、図２では本実施の形態に係る処理概要を説明するために機器の構成を簡略化して示している。
【００１９】
図２は、本発明の一実施の形態に係る機器の一例と、そのソフトウエアにおける内部構成を示した機能ブロック図である。
【００２０】
カラープリンタ２００は、本実施の形態に係る機能を搭載した機器であり、ここではネットワーク接続可能な高機能カラープリンタとする。このカラープリンタ２００は、通常のプリンタと同様に、ＰＣなどのクライアントからの文書データや印刷データを受信して、記録シートにカラー画像を印刷する。更に、印刷データの管理や再印刷、履歴管理などの付加機能を設けているものとする。このカラープリンタ２００のソフトウエア構成としては、まず基本的な処理を提供するオペレーティングシステム及びファームウエア２０１が搭載されている。更にその上に、各共通機能を提供するミドルウエア２０２〜２０５が搭載されている。更に最上部には、アプリケーション２０６が搭載されている。このアプリケーション２０６は、このカラープリンタ２００に付加機能を提供するために用いられる。例えば前述の履歴管理などの処理を行うものである。本図では説明の便宜上アプリケーション２０６は１つだけを示しているが、複数存在してもかまわない。
【００２１】
次にミドルウエア部分を詳細に説明する。
【００２２】
２０２〜２０５はネットワークにおける通信処理を実現するための通信ミドルウエアである。この通信ミドルウエアにおいて、ＵＰｎＰ対応ミドルウエア２０２、ＳＬＰ対応ミドルウエア２０３、ＵＤＤＩ対応ミドルウエア２０４は、各々の通信プロトコルに対応した通信ミドルウエアである。更にこれらを統合してアプリケーション２０６から扱うためのインタフェースを提供するための通信管理ミドルウエア２０５を有している。
【００２３】
図３は、このカラープリンタ２００の電源がオンされて、その稼動が開始されたときに発生する処理を概念的に示した図である。
【００２４】
まず、カラープリンタ２００に内蔵されるオペレーティングシステム・ファームウエア２０１、アプリケーション２０６、各ソフトウエアにおけるケーパビリティ情報が収集される。そして、このカラープリンタ２００に属したケーパビリティ情報である機器ケーパビリティ２０７が生成される。そして、その機器ケーパビリティ２０７を、ネットワーク１０５を通じて各機器から収集することにより、群ケーパビリティ２０８が構成される。この時、機器ケーパビリティ２０７から構成される群ケーパビリティ２０８は、どのような機能及び、どのような能力を有する機器が群を構成しているかによって生成される内容が変化する。例えば、デジタルカメラ１００が存在する場合、このデジタルカメラ１００が撮影した画像情報の印刷時における色再現性を高めるためのカラーマネージメント機能が必須と判断される。これにより群ケーパビリティ情報２０８としてカラーマネージメント機能を含むケーパビリティ情報が生成される。逆に、デジタルカメラが存在せずにモノクロ高速ドキュメントスキャナ１０３が存在する場合、高速なスキャン処理に追随するためのドラフトモードでのモノクロ印刷機能を含む群ケーパビリティ情報２０８が生成される。また、共通して使用できる通信プロトコルや対応できるデータフォーマットといった機能情報も群ケーパビリティ２０８として生成される。
【００２５】
図４は、カラープリンタ２００において群ケーパビリティ２０８と機器ケーパビリティ２０７とを用いた最適化処理によって、カラープリンタ２００に内蔵されるいくつかの通信ミドルウエアが使用を停止した状態を示している。以下に、カラープリンタ２００がこの状態に至るまでの処理の一例を以下に挙げる。
【００２６】
まず、ネットワーク１０５に接続されているいずれの機器も通信手段（お互いの機器を検索する通信手段）としてＵＤＤＩを用いないことが、各機器の機器ケーパビリティから算出された群ケーパビリティ２０８によって導き出されると仮定する。この場合は、各機器におけるＵＤＤＩ対応ミドルウエア２０４は使用停止となる。
【００２７】
この時、アプリケーション２０６を含むカラープリンタ２００が、この状況においてユーザに提供できる機能は変化していない点に注意が必要である。即ち、ＵＤＤＩ対応ミドルウエア２０４は、現在のネットワーク上における機器構成では使用できないため、その稼動を停止してもカラープリンタ２００を含む機器ネットワークがユーザに対して提供できる機能は一切変化しない。また、アプリケーション２０６は、引き続き通信処理において通信管理ミドルウエア２０５を通じて処理を行うので、ＵＤＤＩ対応ミドルウエア２０４の稼動停止による影響を受けることはない。
【００２８】
図５は、本発明の実施の形態に係る特徴を説明するブロック図である。
【００２９】
図５において、プロトコルＡに準拠している機器Ａと、プロトコルＡとＢの両方に準拠している機器Ｂと、プロトコルＢに準拠している機器Ｃが接続されている。ここで機器Ａは機器Ｂの状態を監視するとともに、機器Ｂと機器Ｃの間の通信５０５で使用されるプロトコルＢを監視する。更に、監視しているプロトコルＢでのメッセージと、機器Ｂの状態を関連付けて記録する。更に、機器Ｂと機器Ｃの間のプロトコルＢでのメッセージで遷移した機器Ｂの状態と、機器Ａが使用可能なプロトコルＡで同様の状態に遷移させることが可能なメッセージとを対応付ける。この対応付けを蓄積しておくことにより、機器ＡはプロトコルＢのメッセージの意味を解釈できるようになり、プロトコルＢを模倣することが可能となる。よって、プロトコルＢを用いて機器Ａと機器Ｃとの間での相互通信５０７が可能となる。
【００３０】
図６は、本実施の形態に係るネットワークにおける通信処理を説明するブロック図である。
【００３１】
このネットワークは、プロトコルＡに準拠している複数の機器で構成されている。ここでは、プロトコルＡに準拠している機器である機器Ａと機器Ｂ、機器Ｃとが接続されている。ここでは機器Ｂと機器Ｃとの間で、プロトコルＡの仕様の曖昧さにより生じた誤解によりプロトコルＡには厳密に準拠していないプロトコルＡ'により相互運用性が確保されている。このとき機器Ａは、機器Ｂから受信するメッセージ６０４と、機器Ｃから受信するメッセージ６０６、更に機器Ｂと機器Ｃとの間で通信されるメッセージ６０５を監視する。具体的には、機器Ａのネットワークインタフェースをプロミスキャスモードで動作させて、ネットワーク１０５に流れる全パケットを受信して通信データを収集する。こうして収集した通信データを解析し、プロトコルＡとプロトコルＡ'の差分を抽出し、機器Ａが使用できるプロトコルに適用する。その結果、機器Ａは、ローカルルールであるプロトコルＡ'で機器Ｂとの通信６０７及び機器Ｃとの通信６０８が可能となり、これら機器Ａ〜Ｃによる相互運用性を確保することが可能となる。
【００３２】
例えば、プロトコルＡが「HTTP/1.1」（「非特許文献１」）おいて、図７のメッセージをプロトコルＡ、図９のメッセージをプロトコルＡ'とする。このとき機器Ａと機器Ｂの間の通信６０４、及び機器Ａと機器Ｃの間の通信６０６において、１行目の文字列「GET」と「get」のような大文字と小文字の違いが発生している。この場合、図８に示すエラーメッセージを返す。
【００３３】
これにより機器Ａは、機器Ｂから受信するメッセージ６０４と、機器Ｃから受信するメッセージ６０６、更に機器Ｂと機器Ｃとの間で通信されるメッセージ６０５を監視して通信データを収集する。こうして収集した通信データを解析し、プロトコルＡとプロトコルＡ'の差分（図７と図９の１行目の文字列「GET」と「get」の違い）を抽出し、機器Ａが使用できるプロトコルに適用する。その結果、機器Ａは、ローカルルールであるプロトコルＡ'（図９）で、機器Ｂとの通信６０７及び機器Ｃとの通信６０８が可能（リターン値として図１０のメッセージが返却される）になる。こうして機器Ａ〜Ｃの３台での相互通信が可能となる。
【００３４】
図１１は、本実施の形態に係るネットワークシステム（プロファイル管理システム）に接続している機器の一例であるＰＣ（パーソナルコンピュータ）の構成を説明するブロック図である。尚、これら機器は前述のカメラ１００，１０１、プリンタ１０２、スキャナ１０３、プロジェクタ１０４や、このＰＣ（パーソナルコンピュータ）以外にも、ワークステーション、ノートブックＰＣ、パームトップＰＣ、コンピュータを内蔵したテレビ等の各種家電製品、通信機能を有するゲーム機、電話、ＦＡＸ、携帯電話、ＰＨＳ、電子手帳等を含む他の機器と通信するための通信機能を有する端末、又は、これらの組合せであっても良い。
【００３５】
図１１において、ＣＰＵ１１０１は、このＰＣ全体の制御を司る中央演算装置（以下、ＣＰＵ）である。ＲＡＭ１１０２は、ランダムアクセスメモリで、ＣＰＵ１１０１の主メモリとして、及び実行プログラムの領域や、そのプログラムの実行エリアならびにデータエリアを提供している。プログラムＲＯＭ１１０３は、ＣＰＵ１１０１の動作処理手順を記録しているリードオンリメモリである。このＲＯＭ１１０３には、このＰＣの機器制御を行うシステムプログラムである基本ソフト（ＯＳ）を記録したプログラムＲＯＭとシステムを稼動するために必要な情報などが記録されたデータＲＯＭがある。尚、このＲＯＭ１１０３の代わりに後述のＨＤＤ１１０９を用いる場合もある。ネットワークインターフェース（ＮＥＴＩＦ）１１０４は、ネットワーク１０５を介して機器間でのデータ転送を行うための制御や接続状況の診断を行う。ＶＲＡＭ１１０５は、ビデオＲＡＭで、このＰＣの稼動状態を示す表示部１１０６の画面に表示される画像データを展開し、その表示の制御を行う。表示部１１０６は、ＣＲＴや液晶などの表示ユニットを備える。キーボードコントローラ（ＫＢＣ）１１０７は、キーボードやポインティングデバイス等を含む入力装置１１０８からのキー信号等を入力してシステムバス１１００に出力する。入力装置１１０８は、このＰＣの利用者が、このＰＣに対して行う操作を受け付けるための外部入力装置であり、例えば、キーボードなどである。ＨＤＤ１１０９はハードディスク装置で、ＯＳや各種アプリケーションプログラムがインストールされている。また画像情報などのデータ保存用にも用いられる。尚、本実施形態におけるアプリケーションプログラムとは、本実施形態を構成する各種手段を実行するソフトウエアプログラムなどである。ＦＤＤ１１１０は、例えばフロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭドライブなどのリムーバブルな記憶媒体を装着して、データの読出しや書込みを行うもので、上述したアプリケーションプログラムの媒体からの読み出しなどに用いられる。以下、ＦＤＤと記す。なお、ＨＤＤ１１０９に格納するアプリケーションプログラムやデータをＦＤＤ１１１０に格納して使用することも可能である。システムバス１１００は、上述した各ユニット間の接続するための入出力バス（アドレスバス、データバス、及び制御バス）である。
【００３６】
図１２は、本発明の実施の形態に係る機器に実装されるアプリケーションモジュール（機器ケーパビリティ管理システム）の機能ブロック図である。尚、このアプリケーションモジュールは、本実施の形態に係る機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システム或は装置に供給し、そのシステム或は装置のコンピュータ（ＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出して処理を実行することによって達成される。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記憶媒体が本発明の実施の形態に係る機能を構成することになる。
【００３７】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーションシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００３８】
更に、記憶媒体から読み出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００３９】
この機器ケーパビリティ管理システムは、アプリケーション１２００、機器ケーパビリティ管理部１２０１、メッセージ送受信部１２１０を有する。更に、機器ケーパビリティ管理部１２０１は、アプリケーション管理部１２０２、ソフトウエアケーパビリティ管理部１２０３、機器ケーパビリティ管理部１２０４、群ケーパビリティ管理部１２０５、ミドルウエア最適化部１２０６、ミドルウエア再構成部１２０７、ミドルウエア管理部１２０８、通信ミドルウエア１２０９、未知プロトコル学習部１２２０、既知プロトコル修正部１２３０を含む。また、メッセージ送受信部１２１０は、メッセージ送信部１２１１、メッセージ受信部１２１２を含む。
【００４０】
図１３は、本実施の形態に係る未知プロトコル学習部１２２０のモジュール構成を示すブロック図である。
【００４１】
この未知プロトコル学習部１２２０は、学習コントロール部１２２１、仮想プロトコル部１２２２、テーブル読み出し書き込み部１２２３、プロトコル監視部１２２４、コマンドテーブル部１２２５、プロトコル記録テーブル部１２２６を含む。
【００４２】
図１４は、本実施の形態に係る既知プロトコル修正部１２３０のモジュール構成を示すブロック図である。
【００４３】
この既知プロトコル修正部１２３０は、相互運用性判定部１２３１、プロトコルデータ収集部１２３２、差分抽出部１２３３、差分適用部１２３４を含む。
【００４４】
尚、上述した図１２〜図１４の各部における処理内容は以下の説明で適時参照して記述する。
【００４５】
図１５は、本実施の形態に係る未知プロトコル学習部１２２０のコマンドテーブル部１２２５の具体例を示す図である。
【００４６】
このコマンドテーブル部１２２５は、ＩＰアドレス（IPAddress）項目１５０１と、プロトコル適用可否（Existing）項目１５０２で構成されている。それぞれの項目に対して、検索、読み書き、追加、削除が可能であり、ＩＰアドレス項目１５０１に対してプロトコル適用可否項目１５０２が一意に特定される。ＩＰアドレス項目１５０１は、ネットワーク１０５に接続されている機器のＩＰアドレスを格納する。またプロトコル適用可否項目１５０２には、「Ｔｒｕｅ（適用可）」又は「ｆａｌｓｅ（適用不可）」の文字列が格納される。
【００４７】
図１６は、本実施の形態に係る未知プロトコル学習部１２２０のプロトコル記録テーブル部１２２６の具体例を示す図である。
【００４８】
プロトコル記録テーブル部１２２６は、ＩＰアドレス項目１６０１、メッセージ（Message）項目１６０２、前状態（beforeStat）項目１６０３、後状態（afterStat）項目１６０４、有効コマンド（existingCommand）項目１６０５を有している。それぞれの項目に対して、検索、読み書き、追加、削除が可能である。またＩＰアドレス項目１６０１に対して、メッセージ項目１６０２、前状態項目１６０３、後状態項目１６０４、有効コマンド項目１６０５が一意に特定される。ＩＰアドレス項目１６０１は、ネットワーク１０５に接続されている機器のＩＰアドレスを格納する。メッセージ項目１６０２は、機器間でやり取りされ、ネットワーク１０５を流れるメッセージを格納する。前状態項目１６０３、後状態項目１６０４、はそれぞれネットワーク１０５に接続されている機器における、メッセージの受信前と受信後の状態を示す情報を格納する。有効コマンド項目１６０５は、前状態項目１６０３及び後状態項目１６０４に記載された状態を発生可能な、自機器に製品出荷時に予め実装されているプロトコルにおける対応コマンドが格納されている。
【００４９】
図１７は、本発明の一実施形態に係るネットワークシステム（機器ケーパビリティ管理システム）における処理を説明するフローチャートである。
【００５０】
まずステップＳ１７００で、このネットワークに接続されている各機器に搭載されている各々のソフトウエアに対するソフトウエアケーパビリティ情報を生成する。この処理はソフトウエアケーパビリティ管理部１２０３から、アプリケーション管理部１２０２及びミドルウエア管理部１２０８を通じて、アプリケーションソフトウエア、ミドルウエア、ファームウエアといった各機器に搭載されている各種のソフトウエアの情報をケーパビリティ情報１２４０にまとめることで行われる。次にステップＳ１７０１で、ステップＳ１７００で収集したソフトウエアケーパビリティ情報１２４０から、各機器の単位でのケーパビリティ情報である機器ケーパビリティ２０７を生成する。そして、この機器ケーパビリティ２０７をネットワーク１０５を通じて他の機器に通知する。これは機器ケーパビリティ管理部１２０４において実施される。尚、この機器ケーパビリティ２０７を他の機器に通知する際には、インターネットプロトコル（ＩＰ）が用いられる。この場合ＩＰのバージョンは、ＩＰｖ４とＩＰｖ６の双方が使用可能である。また、実際に通信経路として使用される媒体は、有線或は無線を用いることができる。またプロトコルによっては、更にＴＣＰ，ＵＤＰ，ＨＴＴＰ，ＳＭＴＰ，ＳＮＭＰ，ＦＴＰなどの通信プロトコルが用いられる場合もある。
【００５１】
次にステップＳ１７０２で、ネットワーク１０５にある他の機器の機器ケーパビリティを取得し、これを処理することにより、このネットワークを構成する複数の機器からなる群に対して付与する群ケーパビリティ２０８を生成する。これは群ケーパビリティ管理部１２０５が実施する。次にステップＳ１７０３で、ステップＳ１７０２で求めた群ケーパビリティ２０８と、ステップＳ１７０１で求めた機器ケーパビリティ２０７とを比較・演算し、ミドルウエアの再構成情報を生成する。これはミドルウエア最適化部１２０６により実行される。
【００５２】
次にステップＳ１７０４で、ミドルウエア最適化部１２０６によりステップＳ１７０３で生成されたミドルウエアの再構成情報を用いて、ミドルウエアの停止や開始を含む動的な再構成を実施する。これはミドルウエア再構成部１２０７で実施される。
【００５３】
次にステップＳ１７０５で、ステップＳ１７０４で実施したミドルウエア再構成の結果に基づいて、起動すべき通信ミドルウエアが存在しているかどうかを判定する。このステップＳ１７０５で、起動すべき通信ミドルウエアが存在しないと判定した場合はステップＳ１７１０に進み、未知プロトコルの学習処理を実施する。これは、未知プロトコル学習部１２２０で実行される。尚、このステップＳ１７１０の処理は、図１８を参照して詳しく後述する。
【００５４】
一方、ステップＳ１７０５で起動すべき通信ミドルウエアが存在すると判定した場合はステップＳ１７０６に進み、その通信ミドルウエアが使用できるプロトコルが他の機器との通信に適用可能かどうかを判定する。この判定は、例えば、実際にそのプロトコルで通信を行い、その通信が成功するか失敗するかによって判定する。このステップＳ１７０６で適用できないと判定した場合はステップＳ１７２０に進み、既知プロトコル修正処理を実施する。これは、既知プロトコル修正部１２３０で実行される。尚、このステップＳ１７２０の処理は図２０のフローチャートを参照して詳しく後述する。
【００５５】
こうしてステップＳ１７０６，Ｓ１７１０，Ｓ１７２０のいずれかを実行するとステップＳ１７０７に進み、処理を継続するかどうかを判定する。ここで処理を継続すると判定した場合はステップＳ１７００に進み、前述の処理を繰り返し実行する。またステップＳ１７０７で、処理を終了すると判定した場合は、この処理を終了する。
【００５６】
図１８は、図１７のステップＳ１７１０の未知プロトコルの学習処理を示すフローチャートである。ここでは前述の図５を例にして、機器Ａが機器ＢとＣとの間でやり取りされる、機器Ａにとって未知のプロトコル（プロトコルＢ）を学習する場合で説明する。
【００５７】
まずステップＳ１７１１で、機器Ａの未知プロトコル学習部１２２０の学習コントロール部１２２１が、監視対象である機器Ｂの状態をプロトコルＡを用いて取得する。こうして取得した機器Ｂの状態を学習コントロール部１２２１が機器ＢのＩＰアドレスと共に、テーブル読み出し書き込み部１２２３に渡してプロトコル記録テーブル部１２２６に記録する。このテーブル読み出し書き込み部１２２３は、プロトコル記録テーブル部１２２６のＩＰアドレス項目１６０１と前状態項目１６０３に書き込みを行う。
【００５８】
次にステップＳ１７１２で、学習コントロール部１２２１はプロトコル監視部１２２４に対して、機器Ｃから機器Ｂに送信されるプロトコルＢのメッセージを監視させ、その監視結果の記録を指示する。ここで機器Ｃから機器Ｂに対して何らかのメッセージが送信されるとプロトコル監視部１２２４は、そのメッセージを獲得して保持し学習コントロール部１２２１に受け渡す。このメッセージを受け取った学習コントロール部１２２１は、テーブル読み出し書き込み部１２２３に対して、その書き込みを指示する。これによりテーブル読み出し書き込み部１２２３は、プロトコル記録テーブル部１２２６の機器ＢのＩＰアドレスに対応するメッセージ項目１６０２に、その取得したメッセージを書き込む。
【００５９】
次にステップＳ１７１３で、学習コントロール部１２２１は、先と同じように、機器Ｂの状態をプロトコルＡを用いて取得する。こうして取得した機器Ｂの状態を学習コントロール部１２２１が機器ＢのＩＰアドレスと共に、テーブル読み出し書き込み部１２２３に渡してプロトコル記録テーブル部１２２６に記録する。即ち、テーブル読み出し書き込み部１２２３は、プロトコル記録テーブル部１２２６のＩＰアドレス項目１６０１にある同じＩＰアドレスの後状態項目１６０４に、その取得した機器Ｂの状態を書き込む。
【００６０】
図１６の例で説明すると、１６１０のＩＰアドレス「192.168.0.11」が機器ＢのＩＰアドレスに対応しているとする。１６１１は、機器Ｃから機器Ｂに送信されたメッセージで、１６１３はそのメッセージを受信する前の機器Ｂの状態を示している。この前状態項目１６０３では、プリントステータスが「アイドル」となっている。１６１３は、このメッセージを受信した後の機器Ｂの状態を記録しており、ここではプリントステータスが「印刷実行中」となっている。
【００６１】
次にステップＳ１７１４で、監視処理を終了するか否かを判定し、継続と判定した場合はステップＳ１７１１の処理に移行するが、終了と判定した場合はステップＳ１７１５の処理に移行する。ステップＳ１７１５では、学習コントロール部１２２１はテーブル読み出し書き込み部１２２３を用いてプロトコル記録テーブル部１２２６に記録したデータの読み取りを行う。こうして読み取ったデータから機器Ｂが、機器Ｃからメッセージを受け取る前の状態（前状態項目１６０３）と受け取った後の状態（後状態項目１６０４）とを比較して、既存のプロトコルＡで、プロトコルＢのコマンドと同じ役割を果たすコマンドを選択する。こうして求めたコマンドを、有効コマンド項目１６０５に記録するようにテーブル読み込み書き込み部１２２３に指示する。
【００６２】
この結果、前述の図１６の例では、１６１３には、プロトコルＢのコマンドと同じ役割を果たすプロトコルＡのコマンドとして「Print」が格納されている。
【００６３】
次にステップＳ１７１６で、学習コントロール部１２２１は、テーブル読み出し書き込み部１２２３を用いて、機器ＢのＩＰアドレスをコマンドテーブル部１２２５のＩＰアドレス項目１５０１に格納し、プロトコル適用可否項目１５０２に「Ｔｒｕｅ」を記録する（図１５参照）。更に、学習コントロール部１２２１は、機器ＣのＩＰアドスをコマンドテーブル部１２２５のＩＰアドレス項目１５０１に格納し、プロトコル適用可否項目１５０２に「ｆａｌｓｅ」を記録する。
【００６４】
以上の処理により、機器Ａは、アプリケーションからの要求を受付けると送信先のＩＰアドレスを取得し、テーブル読み出し書き込み部１２２３を用いて、コマンドテーブル部１２２５のＩＰアドレス項目１５０１にある同一の値があるレコードからプロトコル適用可否項目１５０２の値を取得する。ここでプロトコル適用可否項目１５０２の値が「Ｔｒｕｅ」の場合には既存プロトコルＡを使用すると判断し、プロトコル適用可否項目１５０２の値が「ｆａｌｓｅ」の場合には、プロトコルＢを使用すると判断して、学習コントロール部１２２１にコマンドを受け渡す。
【００６５】
こうして、そのコマンドと、対応するＩＰアドレスを受け取った学習コントロール部１２２１は、テーブル読み出し書き込み部１２２３を用いてプロトコル記録テーブル１２２６を検索する。そして、ＩＰアドレス項目１６０１の値と同じＩＰアドレスのレコードから、更に有効コマンド項目１６０５に格納されているコマンドと同じコマンドのレコードを導き出す。こうして導き出したレコードのメッセージ項目１６０２の値を取得し、仮想プロトコル部１２２２に受け渡す。これにより機器Ａの仮想プロトコル部１２２２は、機器Ｃに対して、そのメッセージ項目１６０２のメッセージを送信する。尚、このメッセージを送信する際には、インターネットプロトコル（ＩＰ）が用いられる。この場合ＩＰのバージョンはＩＰｖ４とＩＰｖ６の双方が使用可能である。また、実際に通信経路として使用される媒体は、有線あるいは無線を用いることができる。プロトコルによっては、更にＴＣＰ，ＵＤＰ，ＨＴＴＰ，ＳＭＴＰ，ＳＮＭＰ，ＦＴＰなどの通信プロトコルが用いられる場合もある。こうして機器Ａと機器ＣとがプロトコルＢで通信を行うことができる。
【００６６】
図１９は、ディスプレイ（表示ユニット）（機器Ｂ）とデジタルカメラ（機器Ｃ）との間での画像データの転送シーケンス（プロトコルＢ）を説明する図である。この場合も、機器ＡはプロトコルＡを有しており、機器Ｂの状態をモニタして、機器Ｃとの間でプロトコルＢによる通信を行うことを意図しているものとする。
【００６７】
まず１９０１の以前に、機器Ａは機器Ｂが「アイドル」状態にあることを認識しているものとする。次に１９０１で、機器Ｃから機器Ｂに対してジョブがある旨が通知される。そして、その要求に対して機器Ｂが「ＯＫ」で応答する際（１９０２）、機器Ｂの状態は「アイドル」から「レディ」状態になる。これにより機器Ａは、機器Ｂと機器Ｃとの間でのプロトコルＢによるメッセージ「CreateJpb」を獲得する。また機器Ａは、機器Ｂとの間でのプロトコルＡにより、機器Ｂの状態が「レディ」になったことを取得する。次に１９０３で、表示すべきデータ（メッセージ）が機器Ｃから機器Ｂに送信される。これにより機器Ｂの状態は、「レディ」からデータを受信したモード「Received（受信済）（画像の表示開始）」に移行する。このとき機器Ａは、機器Ｂと機器Ｃとの間でのプロトコルＢによるメッセージ「Send」を獲得する。更に機器Ａは、機器Ｂとの間でプロトコルＡにより機器Ｂの状態が「Received（受信済）（画像の表示開始）」になったと認識する。
【００６８】
これら情報を取得してプロトコル記録テーブル部１２２６に記憶している機器Ａでは、ディスプレイ（機器Ｂ）が「アイドル」状態から「レディ」状態に移行するプロトコルＢのコマンド（１９０１）に対応する、プロトコルＡのコマンドを求める。更に機器Ａは、ディスプレイ（機器Ｂ）が「レディ」状態から「受信済」状態に移行するプロトコルＢのコマンド（１９０３）に対応する、プロトコルＡのコマンドを求める。そして、これらコマンドを使用して仮想プロトコルＢを作成し、機器Ａと機器Ｃ（デジタルカメラ）との通信を行うことができるようになる。即ち、機器Ａは、機器Ｂが受信したメッセージの内容と、その機器Ｂの状態の変化に基づいて、プロトコルＢで、データを送信するために用いられるコマンド（CreateJob、Send等）を知ることができる。
【００６９】
従って、機器Ａから機器Ｃ（デジタルカメラ）に画像を転送するには、まずプロトコルＢの「CreateJob」に相当するメッセージを機器Ｃ（カメラ）に送信する。そのメッセージに対して「ＯＫ」で応答する際、機器Ｃ（デジタルカメラ）は「アイドル」状態から「レディ」状態に移行する。次に、保存すべきデータ（画像）が付与されたプロトコルＢの「Send」に対応するメッセージが機器Ａから機器Ｃに送信される。これにより機器Ｃの状態は、「レディ」からデータを受信したモード「Received（受信済）（画像の保存開始）」に移行する。即ち、機器Ａは、プロトコルＢを用いてデータを機器Ｃに画像を送信する場合、機器Ｂの状態の変化に基づいて学習したプロトコルＢで用いられるデータを送信するためのコマンドを作成して機器Ｃに送信することができる。
【００７０】
以上のように機器Ａと機器Ｃの通信が、この仮想プロトコルＢを用いることで可能となる。
【００７１】
図２０は、図１７のステップＳ１７２０の既知プロトコルの修正処理を示すフローチャートである。
【００７２】
まずステップＳ１７２１で、本実施の形態に係る既知プロトコルの修正部１２３０のプロトコルデータ収集部１２３２は、ネットワーク１０５を流れる全パケットを受信するためにメッセージ送受信部１２１０に対して、自身が管理するネットワークインタフェース１１０４をプロミスキャスモードで動作させるよう依頼する。次にステップＳ１７２２で、ネットワーク１０５に流れているメッセージをメッセージ受信部１２１２で受信する。尚、このメッセージ受信部１２１２でメッセージを受信する際には、インターネットプロトコル（ＩＰ）が用いられる。この場合ＩＰのバージョンはＩＰｖ４とＩＰｖ６の双方が使用可能である。また、実際に通信経路として使用される媒体は、有線或は無線を用いることができる。プロトコルによっては、更にＴＣＰ，ＵＤＰ，ＨＴＴＰ，ＳＭＴＰ，ＳＮＭＰ，ＦＴＰなどの通信プロトコルが用いられる場合もある。
【００７３】
次にステップＳ１７２３で、プロトコルデータ収集部１２３２は、ステップＳ１７２２で受信したメッセージを解析する。次にステップＳ１７２４で、既知プロトコルの修正部１２３０の差分抽出部１２３３は、通信ミドルウエア１２０９が制御しているプロトコルと、ステップＳ１７２３でプロトコルデータ収集部１２３２が解析したデータとの間で差分情報を抽出する。このとき抽出される差分情報としては、例えば、プロトコルが「HTTP/1.1」（「非特許文献１」）の場合は、図７と図９の１行目の文字列「GET」と「get」のようなトリビアルな（些細な）差分を抽出する。
【００７４】
こうして抽出された差分情報は、図２１に示したテーブルの形態で記録される。
【００７５】
図２１は、差分抽出部１２３３により抽出した差分情報を記憶するテーブルの具体例を示す図である。
【００７６】
ここでは監視時間、そのメッセージの送信元アドレス、送信先アドレス、送信元ポート、送信先ポート及び差分情報が記憶されている。この差分情報の例では、メッセージの１行目(1cl)に、プロトコルが「HTTP/1.1」で、文字列「GET」と「get」の違いがあることが記憶されている。
【００７７】
次にステップＳ１７２５で、差分情報の抽出に成功したかどうかを判定し、抽出に成功したと判定した、この処理を終了する。一方、差分情報の抽出に失敗したと判定した場合はステップＳ１７２６に進み、データ収集及び差分抽出処理を継続するかどうかを判定する。このステップＳ１７２６での判定基準は、例えば、収集時間及び、収集回数などが所定時間或は所定回数になったかどうかによる。尚、この処理における判定基準はこれら２つの条件に限定されるものではなく、任意の判定基準を適用することが可能である。こうしてステップＳ１７２６で、データ収集及び差分抽出処理を継続すると判定した場合はステップＳ１７２２の処理に移行する。一方、ステップＳ１７２６で、データ収集及び差分抽出処理を終了すると判定した場合は、この処理を終了し、図１７のステップＳ１７０７の処理に移行する。
【００７８】
ここで例えば、制御コマンド「GET」を送信してエラーメッセージを受信した場合、送信した「GET」を所定の関係を有するメッセージを収集する（例えば、「GET」と大文字小文字の文字の種別の異なるコマンド「get」を収集）。こうしてこの差分情報（大文字小文字の文字種別の差）の抽出に成功すると（ステップＳ１７２２）、それ以降は、「GET」の代わりに「get」を送信する。
【００７９】
また、コマンドに付加されたパラメータが原因でエラーになった場合（例えば、受信側が、「GET」コマンドに付加されるパラメータとして、ＨＴＴＰのＧＥＴメソッドとして使用されるＨＯＳＴ（インターネットホストとポート番号）とAccept-Language（レスポンスとして望む言語）を必須としているのにも拘わらず、送信側が、ＨＯＳＴのみ（Accept-Languageが付加されない）がパラメータとして付加された「GET」コマンドを送信し、エラーになった場合）には、以下のようになる。
【００８０】
送信側は、送信エラーになった「GET」コマンドと所定の関係を有するコマンドを収集する。ここでは、送信エラーになった「GET」コマンドとは、付加されるパラメータの異なる「GET」コマンド（即ち、パラメータとして「HOST」と「Accept-Language」が付加された「GET」コマンド）が収集される。このパラメータの差分の抽出に成功すると（ステップＳ１７２５）、それ以降は「HOST」のみが付加された「GET」コマンドの代わりに、「HOST」と「Accept-Language」が付加された「GET」コマンドを使用する。尚、「Accept-Language」として何を要求するかは、送信側に予め設定された「Accept-Language」を要求するようにすればよい。また、収集した「GET」コマンドに付加された「Accept-Language」の内容を表示し、その中から、使用者が所望の「Accept-Language」を選択するようにしてもよい。
【００８１】
尚、送信側は、受信側で要求されているパラメータ（例えば「Accept-Language」）を自装置が有するか判断し、自装置が有さないパラメータであると判断すると、受信側が使用しているプロトコルは許容できないとして、受信側へのメッセージの送信を中止する。また、コマンドの大文字／小文字と、コマンドに付加されたパラメータの両方に差異がある場合も同様に対応することができる。
【００８２】
以上説明したように本実施の形態によれば、単一の機器内部での最適化に留まらず、通信機能を有する機器に搭載された通信ミドルウエアの機器ネットワークレベルでの最適化を実現することが可能となる。即ち、複数の通信ミドルウエアが搭載されている機器が集まって群を構成するとき、各機器内部で動的にその群の特性を生かした最適な通信ミドルウエアの組み合わせを構築することができるようになる。
【００８３】
この時、各機器におけるアプリケーションは、この通信ミドルウエアの再構成を意識する必要がなく、また提供される機能も低下しない。これにより、高機能な通信ミドルウエアを複数搭載しながら、実行時に不要なものは使用しないようにできるため、計算機資源の有効活用ができる機器を実現することを可能となる。
【００８４】
また起動すべき通信ミドルウエアが存在しないとき、即ち、機器が該当のプロトコルを用いた通信ができない場合に、既知のプロトコルを用いて未知のプロトコルのメッセージと、それを受けた機器の状態を対にして記憶し、未知のプロトコルに対して対処することが可能となる。
【００８５】
更に、起動すべき通信ミドルウエアが存在した場合でも、仕様には曖昧さがあり厳密でない。このため、機器のベンダーが完全に仕様に沿ってプロトコルを実装したつもりでも仕様の曖昧さのために解釈の違いが生じ、通信が失敗する場合が起こりえる。このような場合でも、自機器が使用しているプロトコルと、接続しているネットワークで有効な他のプロトコルとの差分を抽出し、自機器のプロトコルを修正することにより、他の機器との通信を確保できる。
【００８６】
以上説明したように本実施の形態によれば、以下のような効果がある。
（１）単一の機器内部での最適化に留まらず、複数の機器を接続している機器ネットワークレベルで、通信機能を有する機器に搭載された通信ミドルウエアの最適化を実現できる。即ち、複数の通信ミドルウエアが搭載されている機器が集まって群を構成するとき、各機器内部で動的にその群の特性を生かした最適な通信ミドルウエアの組み合わせを構築することができる。この時、各機器内におけるアプリケーションは、この通信ミドルウエアの再構成を意識する必要がなく、また提供される機能も低下しない。これにより、高機能な通信ミドルウエアを複数搭載しながら、実行時に不要なミドルウエアは使用しないようにして、計算機の資源の有効活用ができる。
（２）起動すべき通信ミドルウエアが存在しないとき、即ち、機器が該当のプロトコルを用いた通信ができない場合に、既知のプロトコルを用いて未知のプロトコルのメッセージと、それを受けた機器の状態を対にして記憶する。そして、その機器の状態を引き起こす既存のプロトコルにおける、対応するコマンドを用いることにより未知のプロトコルに対しても機器が対応できる。
（３）機器のベンダーが仕様に完全に沿ってプロトコルを実装しているにも拘わらず、仕様の曖昧な部分で解釈の違いが発生して通信ができない場合であっても、自機が使用しているプロトコルと、対象プロトコルとの差分を抽出して自機のプロトコルを修正することにより、その機器との通信を可能にできる。
【図面の簡単な説明】
【００８７】
【図１】本発明の実施の形態に係るネットワークシステム全体の構成図である。
【図２】本発明の一実施の形態に係る機器の一例と、そのソフトウエアにおける内部構成を示した機能ブロック図である。
【図３】実施の形態に係るカラープリンタの電源がオンされて、その稼動が開始されたときに発生する処理を概念的に示した図である。
【図４】カラープリンタにおいて群ケーパビリティと機器ケーパビリティとを用いた最適化処理によって、カラープリンタに内蔵される通信ミドルウエアが使用を停止した状態を示す図である。
【図５】本発明の実施の形態に係る特徴を説明するブロック図である。
【図６】本実施の形態に係るネットワークにおける通信処理を説明するブロック図である。
【図７】本実施の形態に係るプロトコルＡのメッセージの一例を示す図である。
【図８】本実施の形態に係るエラーメッセージの一例を示す図である。
【図９】本実施の形態に係るプロトコルＡ'のメッセージの一例を示す図である。
【図１０】本実施の形態に係るリターン値として返送されるメッセージ例を示す図である。
【図１１】本実施の形態に係るネットワークシステム（プロファイル管理システム）に接続している機器の一例であるＰＣ（パーソナルコンピュータ）の構成を説明するブロック図である。
【図１２】本発明の実施の形態に係る機器に実装されるアプリケーションモジュール（機器ケーパビリティ管理システム）の機能ブロック図である。
【図１３】本実施の形態に係る未知プロトコル学習部のモジュール構成を示すブロック図である。
【図１４】本実施の形態に係る既知プロトコル修正部のモジュール構成を示すブロック図である。
【図１５】本実施の形態に係る未知プロトコル学習部のコマンドテーブル部の具体例を示す図である。
【図１６】本実施の形態に係る未知プロトコル学習部のプロトコル記録テーブル部の具体例を示す図である。
【図１７】本発明の一実施形態に係るネットワークシステム（機器ケーパビリティ管理システム）における処理を説明するフローチャートである。
【図１８】図１７のステップＳ１７１０の未知プロトコルの学習処理を示すフローチャートである。
【図１９】ディスプレイ（表示ユニット）（機器Ｂ）とデジタルカメラ（機器Ｃ）との間での画像データの転送シーケンス（プロトコルＢ）を説明する図である。
【図２０】図１７のステップＳ１７２０の既知プロトコルの修正処理を示すフローチャートである。
【図２１】本実施の形態に係る差分抽出部により抽出した差分情報を記憶するテーブルの具体例を示す図である。
【図１】
0004541992.tif 000002
【図２】
0004541992.tif 000003
【図３】
0004541992.tif 000004
【図４】
0004541992.tif 000005
【図５】
0004541992.tif 000006
【図６】
0004541992.tif 000007
【図７】
0004541992.tif 000008
【図８】
0004541992.tif 000009
【図９】
0004541992.tif 000010
【図１０】
0004541992.tif 000011
【図１１】
0004541992.tif 000012
【図１２】
0004541992.tif 000013
【図１３】
0004541992.tif 000014
【図１４】
0004541992.tif 000015
【図１５】
0004541992.tif 000016
【図１６】
0004541992.tif 000017
【図１７】
0004541992.tif 000018
【図１８】
0004541992.tif 000019
【図１９】
0004541992.tif 000020
【図２０】
0004541992.tif 000021
【図２１】
0004541992.tif 000022