JP4266962B2 - 通信装置、その制御方法及びプログラム - Google Patents

通信装置、その制御方法及びプログラム Download PDF

Info

Publication number
JP4266962B2
JP4266962B2 JP2005176891A JP2005176891A JP4266962B2 JP 4266962 B2 JP4266962 B2 JP 4266962B2 JP 2005176891 A JP2005176891 A JP 2005176891A JP 2005176891 A JP2005176891 A JP 2005176891A JP 4266962 B2 JP4266962 B2 JP 4266962B2
Authority
JP
Japan
Prior art keywords
protocol
node
message
state
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005176891A
Other languages
English (en)
Other versions
JP2006352584A (ja
Inventor
雅樹 下野
憲一 藤井
隆 平田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2005176891A priority Critical patent/JP4266962B2/ja
Priority to US11/449,623 priority patent/US7586860B2/en
Priority to CN200610083974A priority patent/CN100596362C/zh
Publication of JP2006352584A publication Critical patent/JP2006352584A/ja
Application granted granted Critical
Publication of JP4266962B2 publication Critical patent/JP4266962B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/283Processing of data at an internetworking point of a home automation network
    • H04L12/2832Interconnection of the control functionalities between home networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • H04L12/282Controlling appliance services of a home automation network by calling their functionalities based on user interaction within the home
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/2847Home automation networks characterised by the type of home appliance used
    • H04L2012/285Generic home appliances, e.g. refrigerators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Description

本発明は、通信プロトコルにより通信を行う通信装置、その制御方法及びプログラムに関するものである。
通信に用いられるプロトコルは数多く存在し、様々な形態や層(レイヤ)で存在する。例えば、プロトコルの階層化のモデルは、国際標準化機構(ISO)や国際電気通信連合(ITU)等により7階層のOSI参照モデルとして標準化されており、これに従ってプロトコルを分類することができる。現在、インターネットで標準であるIPは第3層(ネットワーク層)のプロトコルであり、TCPやUDPは第4層(トランスポート層)のプロトコル、そしてHTTPやFTP,SMTP,POPなどは第5層(セッション層)以上のプロトコルである。またネットワーク機器や家電に用いられるようなUPnPなどの統合的なプロトコルも存在している。これらの通信プロトコルをネットワーク機器や家電製品に実装して各ノード間のInteroperabiliry(相互接続性)を確保することが一般化してきている。
しかし上述したように、様々な通信プロトコルが存在し、それぞれ異なる規格、仕様、目的が存在している。また同じ目的を達成するものでも、異なるプロトコルが数種類存在することも事実である。
このためユーザは、ネットワーク機器や家電製品を購入する際には、同一のプロトコルが実装されている製品を選択しなければならない。更に、同一のプロトコルが実装されている製品を選択しても、プロトコル自身の改良(バージョンアップ)や、新しい製品における新しいプロトコルの出現等により、これら機器間や製品間でのInteroperabiliryを確保できなくなる可能性がある。
このような問題に対して、それぞれ異なったプロトコルを採用するネットワークのノード間で通信を行う技術が特許文献1に記載されている。この特許文献1は、ネッワーク上にあるノードがどの種類のプロトコルを使用するかを、その機器の送信アドレスとプロトコルの種類とに対応付けて記憶しておき、その記憶した情報を基に、機器ごとにプロトコルを切り替えて通信する技術を開示している。これを実現するためには、各機器は前もって数種類のプロトコルを実装している必要がある。各機器において、実装するプロトコルの数には制限があり、存在するプロトコルを全て実装することは事実上不可能である。また、このような技術では、実装されていないプロトコルや未知のプロトコルに対応することは不可能である。
特開平8−97878号公報
上述したように異なるプロトコルを使用するネットワーク機器や家電機器同士、また同一のプロトコルであってもバージョンの違いによりネットワーク機器や家電機器同士でInteroperabiliryを確保できなくなるという問題があった。
また特許文献1の技術は、主として製品の出荷時における対応に関するもので、出荷後の対応は全く考慮されていない。出荷された製品に対して特許文献1の技術を採用するためには、ユーザにファームウエアを更新させたり、或は製品を回収してプログラムを書き換えるなどの処置が必要になり、実用的でない。
本発明は、上記従来技術の欠点を解決することにある。
また本願発明の特徴は、ネットワーク機器や家電機器などのネットワークに接続された機器がファームウエアをアップデートすることなく未知のプロトコルに対応できるようにすることにある。
本発明の一態様に係る通信装置は以下のような構成を備える。即ち、
ネットワークを介して接続されている第1機器との間で第1プロトコルにより当該第1機器の状態を取得する取得手段と、
前記ネットワークを介して接続されている前記第1機器と第2機器との間での第2プロトコルによるメッセージを獲得する獲得手段と、
前記メッセージの前後において前記取得手段により取得した前記第1機器の状態の変化に基づいて、前記第2プロトコルのコマンドを作成して前記第2機器に送信する送信制御手段とを有することを特徴とする。
本発明の一態様に係る通信装置の制御方法は以下のような工程を備える。即ち、
ネットワークを介して接続されている第1機器との間で第1プロトコルにより当該第1機器の状態を取得する取得工程と、
前記ネットワークを介して接続されている前記第1機器と第2機器との間での第2プロトコルによるメッセージを獲得する獲得工程と、
前記メッセージの前後において前記取得工程で取得した前記第1機器の状態の変化に基づいて、前記第2プロトコルのコマンドを作成して前記第2機器に送信する送信制御工程とを有することを特徴とする。
本発明によれば、装置のプログラムやファームウエアを変更することなく、未知のプロトコルに対処して通信を行うことができるという効果がある。
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
図1は、本発明の実施の形態に係る通信システムの全体構成を説明する図である。
この通信システムでは、ネットワーク100にデジタルカメラ101、デジタルビデオカメラ102、プリンタ103、スキャナ104、プロジェクタ105が接続されている。尚、本実施の形態では、これらデバイスがネットワーク100に接続されている場合で説明するが、本発明はこれに限定されるものではない。
上記それぞれの機器は、それぞれに実装されているプログラムを実行するために必要な資源、例えば計算機能(MPU,プログラムメモリ等)、データ保持機能(メモリ等)などを持ち、それによる機器そのものを制御する制御機能と、ネットワーク100を介して他の機器と通信するための通信機能を有する。また後述するプロトコル学習制御機能を有している。尚、これら各種機能は、メモリに記憶されたプログラムに従って実行される中央演算装置(MPU)による制御に基づいて達成される場合で説明する。
図2は、本発明の実施の形態に係る上述した各機器の制御部のハードウェア構成を示すブロック図である。従って、カメラ、プリンタ、スキャナ等の各種機器は、それぞれの機能、例えばカメラやプリンタといった機能を実現するために、図2に示す構成以外に、例えばプリンタエンジン、レンズユニット、画像処理部、操作部等を備えているが、ここではそれらの構成の説明は省略して示している。
200は各ユニット間を接続するための入出力バス(アドレスバス、データバス、及び制御バス)である。タイマ201は、MPU206の指示に基づいて計時動作を実行し、指示された時間間隔で割り込みを発生させる。また、いわゆるウォッチドッグタイマ機能や計時機能を有する。ROM202は、MPU206により実行されるプログラムのコードや変化しない固定データを記憶する。RAM203は、主メモリとしてプログラム実行時のワークエリアを提供している。パラレルコントローラ204は、MPU206で扱われる並列データをそのまま外部装置と入出力する。シリアルコントローラ205は、MPU206で扱われる並列データを直列データとして出力したり、直列データを並列データに変換して入力する。MPU206は、プログラムの命令を逐次実行するとともに、割り込み制御等を実行している。デバイスコントローラ207は、ハードディスク、ディスプレイ(表示部)など一般的な外部入出力装置と接続され、これら装置を制御している。DMAC208はDMA制御部で、メモリと外部装置間でDMAによるデータの授受を制御する。A/Dコンバータ209は、アナログ信号を入力してデジタルにデータに変換している。ここではセンサ等により感知されたアナログ信号を入力して数値化する。D/Aコンバータ210は、デジタルデータをアナログ信号に変換しており、外部のアクチュエータ等の操作制御を行うのに使用される。
図3は、本実施の形態に係るプロトコル学習制御機能300のモジュール構成を示すブロック図である。
このプロトコル学習制御機能300は、上述のデジタルカメラ101、プロジェクタ102、スキャナ103、プリンタ104、デジタルビデオカメラ105などの機器に実装される。ここでは、このプロトコル学習制御機能300は、MPU206とROM202に記憶されたプログラムにより実現されている。
このプロトコル学習制御機能300は、コマンドディスパッチモジュール301、プロトコル制御モジュール302、プロトコルモジュール303、学習コントロールモジュール304、仮想プロトコルモジュール305、テーブル読み出し書き込みモジュール306、プロトコル監視モジュール307、コマンドテーブル308、プロトコル記録テーブル309を備えている。以下、それぞれを詳しく説明する。
コマンドディスパッチモジュール301は、上述のデジタルカメラ101、プロジェクタ102等の機器に実装されたアプリケーション(ROM202に記憶されている)からの要求を受付け、製品出荷時に実装されている既存プロトコルを起動するか、学習結果で得た新規仮想プロトコルを起動するかを選択する。このコマンドディスパッチモジュール301は、後述するコマンドテーブル308を検索して、既存或は新規仮想プロトコルを選択するか判断する。更に、このコマンドディスパッチモジュール301は、上述の判断結果から、後述するプロトコル制御モジュール302か、後述する学習コントロールモジュール304のいずれかを呼び出す機能も有する。
プロトコル制御モジュール302は、後述するプロトコルモジュール303の制御を行う。また学習コントロールモジュール304からのリクエストを受付ける機能と、その結果を受け渡す機能も有する。
プロトコルモジュール303は、UPnP(Universal Plug and Play),Jini,Jxta等の機器制御用プロトコルが実装されたモジュールであり、それぞれのプロトコルの機能を有する。これは製品出荷時点で予め実装されているものを想定しているが、これらプロトコルに限定されるものではない。
学習コントロールモジュール304は、コマンドディスパッチモジュール301からのリクエストを受取り、後述する仮想プロトコルモジュール305を制御する。またプロトコル制御モジュール302に対してリクエストを発行する機能を有する。また、この学習コントロールモジュール304は、後述するプロトコル監視モジュール307に対してネットワークメッセージの監視開始、監視終了などの制御を行う機能と、プロトコル監視モジュール307からのメッセージを受け取る機能を有する。学習コントロールモジュール304は、後述するテーブル読み出し書き込みモジュール306の制御とメッセージの受け渡しを行う。仮想プロトコルモジュール305は、学習コントロールモジュール304からの指示により、ネットワーク100を介して他の機器に対してメッセージを送信するとともに、他の機器からのメッセージを受信する。
テーブル読み出し書き込みモジュール306は、学習コントロールモジュール304の指示により、後述するコマンドテーブル308とプロトコル記録テーブル309に対してデータの読み込み、書き出しを指示し、これら指示に基づくデータの受け渡しを行う。
プロトコル監視モジュール307は、学習コントロールモジュール304の指示によりネットワーク100に流れるメッセージを監視し、そのメッセージを取得する。また学習コントロールモジュール304に先のメッセージを受け渡す機能も有する。コマンドテーブル308は、後述するデータを検索可能な状態で、永続的にデータを保存するデータベースであり、その内容の検索、読み書き、追加、削除可能である。プロトコル記録テーブル309は、後述するデータを検索可能な状態で、永続的にデータを保存するデータベースであり、その内容の検索、読み書き、追加、削除が可能である。
図4は、本実施の形態に係るコマンドテーブル308の一例を示す図である。
コマンドテーブル308は、IPアドレス(IPAddress)欄401と、Existing欄402とを有し、それぞれの欄に対して、検索、読み書き、追加、削除が可能である。ここではIPアドレス欄401のそれぞれに対して、Existing欄402の内容が一意に特定される。ここでIPアドレス欄401には、ネットワーク100に接続されている機器のIPアドレスが格納されている。Existing欄402には「True」(既存プロトコルが存在する)又は「false」(存在しない)の文字列が格納される。
図5は、本実施の形態に係るプロトコル記録テーブル309の一例を示す図である。
このプロトコル記録テーブル309は、IPアドレス(IPAddress)欄501、メッセージ(Message)欄502、beforeStat欄503、afterStat欄504、existingCommand欄505を有している。それぞれの欄に対して、その内容の検索、読み書き、追加、削除が可能である。またIPアドレス欄501のそれぞれに対して、Message欄502、beforeStat欄503、afterStat欄504、existingCommand欄505がそれぞれ一意に特定される。IPアドレス欄501は、ネットワーク100に接続されている機器のIPアドレスを格納する。Message欄502は、モニタしているネットワーク100を流れるメッセージを格納する。beforeStat欄503、afterStat欄504は、ネットワーク100に接続されている機器の状態を示す情報を格納しており、beforeStat欄503はメッセージ欄502で示すメッセージが送信される前の、その機器(IPアドレスで指定される)の状態を示し、afterStat欄504はメッセージが送信された後の、その機器の状態を示している。またexistingCommand欄505は、そのメッセージで送信された内容に対応する、自機器に製品出荷時に予め実装されているプロトコルのコマンドが格納される。
図4と図5を参照して、本実施の形態の具体例を説明すると、図5の510は、IPアドレスが「192.168.0.11」であるプリンタ103のプロトコル記録テーブルのレコード例を示し、メッセージを受信する前のプリンタ103の状態は「アイドル(idle)」であり、受信後の状態が「処理中(processing)」に変化している。更に、この510において、existingCommand欄505には、対応するコマンドとして、プリンタ103に対して印刷を指示する「print」が格納されている。
更に、図5の511は、IPアドレスが「192.168.0.20」であるスキャナ104のプロトコル記録テーブルのレコード例を示し、メッセージを受信する前のスキャナ104の状態は「アイドル(idle)」であり、受信後の状態が「処理中(processing)」に変化している。更に、このレコード511において、existingCommand欄505には、対応するコマンドとして、スキャナに対して読み取りを指示する「scan」が格納されている。
更に、図5の512は、IPアドレスが「192.168.0.12」である照明機器(不図示)のプロトコル記録テーブルのレコード例を示し、メッセージを受信する前の照明機器の状態は「オフ」であり、受信後の状態が「オン」に変化している。更に、このレコード512において、existingCommand欄505には、対応するコマンドとして、照明機器に対して点灯を指示する「lighton」が格納されている。
次に、本実施の形態に係る通信システムにおける処理の流れを図6を参照して説明する。
図6は、本発明の実施の形態に係る通信システムの構成を示す概念図である。
図において、ノードA(NodeA)600、ノードB(NodeB)601、ノードC(NodeC)602のそれぞれは、図1のデジタルカメラ101、デジタルビデオカメラ102、プリンタ103、プリンタ104、スキャナ105、プロジェクタ106等に対応している。しかし、本発明は上記のデバイスに限定されるものではない。
ここでノードA600、ノードB601には、既存プロトコルとしてUPnPプロトコルが実装され、ノードB601とノードC602には、新規プロトコルとしてXMLWebServiceプロトコルが実装されているとする。しかし、本発明は上記プロトコルに限定されるものではない。
ここで、ノードA600とノードB601が既存プロトコル(UPnPプロトコル(以下、プロトコルA))を使用し、ノードB601とノードC602が新規プロトコル(XMLWebServiceプロトコル(以下、プロトコルB))を使用している状況において、ノードA600がノードB601とノードC602の通信を学習し、ノードA600がプロトコルBを使用できるまでの処理の流れを説明する。
ノードA600の学習コントロールモジュール304がプロトコル制御モジュール302に対してノードB601の状態を取得するよう指示を出す。この指示を受けたプロトコル制御モジュール302は、プロトコルAを用いてノードB601の状態を取得する。こうして取得したノードB601の状態を、ノードA600の学習コントロールモジュール304がノードB601のIPアドレスと共に受け取り、テーブル読み出し書き込みモジュール306に渡し、プロトコル記録テーブル309に保持するように指示する。テーブル読み出し書き込みモジュール306は、プロトコル記録テーブル309のIPアドレス欄501とbeforeStat欄503に書き込みを行う。
図5を参照して具体例で説明する。
ここでは、ノードB601がプリンタ103の場合で説明する。ノードB601の初期状態では、ノードB601はメッセージの受信前で「アイドル」状態にあるため、レコード510のIPアドレス欄501にはプリンタ103のIPアドレスが書き込まれ、beforeStat欄503には、受信前の状態「アイドル」が記録される。
次にノードA600の学習コントロールモジュール304は、プロトコル監視モジュール307に対して、ノードC602からネットワーク100に流れるメッセージの監視、記録をするように指示する。そしてノードC602からノードB601に対して何らかのメッセージが送信されるとプロトコル監視モジュール307は、そのメッセージを獲得して保持し、学習コントロールモジュール304に受け渡す。このメッセージを受け取った学習コントロールモジュール304は、テーブル読み出し書き込みモジュール306に対して書き込みを指示する。テーブル読み出し書き込みモジュール306は、そのIPアドレス(メッセージの送信先アドレス)と同一のレコードのMessage欄502に、その取得したメッセージを書き込む。
図5の例では、レコード510のメッセージ欄502に、そのメッセージの内容が記録される。
このメッセージの書き込み指示を出した学習コントロールモジュール304は、次にプロトコル制御モジュール302に対して、先と同じようにノードB601の状態を取得する指示を出す。この指示を受けたプロトコル制御モジュール302は、プロトコルAを用いてノードB601の状態を取得する。こうして取得したノードB601の状態を学習コントロールモジュール304がノードB601のIPアドレスと共に受け取り、テーブル読み出し書き込みモジュール306に渡し、プロトコル記録テーブル309に保持するように指示する。これによりテーブル読み出し書き込みモジュール306は、プロトコル記録テーブル309のIPアドレス欄501にある、同じIPアドレスのレコードにafterStat欄504の書き込みを行う。
図5の例では、ノードA600は、ノードB601が、図5のレコード510のメッセージ欄502で示すメッセージをノードC602から受信した後、その状態が「アイドル」から「処理中」に変更されたことを認識する。これにより、レコード510のafterStat欄504には「処理中」が記憶される。
このようにして、ノードA600は、上述したノードB601の状態の取得、テーブルへ309の記録、ノードC602からノードB601に送信されるメッセージの取得、記録、ノードB601の状態の取得、記録の作業を繰り返す。
上記の繰り返しから、ノードAの学習コントロールモジュール304は、テーブル読み出し書き込みモジュール306を用いて、プロトコル記録テーブル309に記録されたデータを読み出す。この読み取ったデータから、ノードC602からメッセージを受け取る前のノードB601の状態と、受け取った後のノードB601の状態とを比較する。そして、このような状態の変化を発生させる、ノードAが有しているプロトコルAのコマンドを選択し、テーブル読み込み書き込みモジュール306により、プロトコル記録テーブル309のexistingCommand欄505に書き込む。
図5の例では、レコード510のexistingCommand欄505には、プリンタ103が「アイドル」状態から「処理中」に変化するコマンドであり、かつプロトコルAと共通しているコマンドとして「print」が記録されている。
こうしてノードA600の学習コントロールモジュール304は、テーブル読み出し書き込みモジュール306を用いてノードB601のIPアドレスと共に、図4のコマンドテーブル308のIPアドレス欄401にIPアドレスを、Existing欄402に「True」(プロトコルAが存在している)を記録する。更に、ノードAの学習コントロールモジュール304は、ノードC602のIPアドレスと共に、コマンドテーブル308のIPアドレス欄401にIPアドレス、Existing欄402に「false」(プロトコルAが存在しない)を記録する。
他の機器に対しても同様にして、ノードA600は、上述と同様の手順でプロトコル記録テーブル309、コマンドテーブル308のデータを作成し、各機器のIPアドレスに対応付けて、各テーブルに記録する。そしてデジタルカメラ101、プロジェクタ102などに実装されたアプリケーションからの要求を受付けると、メッセージの送信先のIPアドレスを取得し、テーブル読み出し書き込みモジュール306を用いて、コマンドテーブル308のIPアドレス欄401にある同一の値があるレコードからExisting欄402の値を取得する。このExisting欄402の値が「True」の場合は、既存プロトコルAを使用すると判断し、プロトコル制御モジュール302を起動する。一方、Existing欄402の値が「false」の場合は、プロトコルBを使用すると判断し、学習コントロールモジュール304にコマンドを受け渡す。
このコマンドとIPアドレスを受け取った学習コントロールモジュール304は、テーブル読み出し書き込みモジュール306を用いてプロトコル記録テーブル309を検索し、IPアドレス欄501の値と同じIPアドレスのレコードから、更に、exsitingCommand欄505に記録されているコマンドを導き出す。また、そのレコードのMessage欄502を取得し、そのコマンドと共に仮想プロトコルモジュール305に受け渡す。これにより仮想プロトコルモジュール305は、プロトコルAの「print」コマンドを、Message欄502のメッセージに代えて、例えばノードC602に対して送信する。
こうしてノードA600は、ノードB601とノードC602との通信によりノードB601から得られた情報を基に、ノードB601とノードC602との間でのプロトコルBのコマンドを取得し、それに基づいて仮想プロトコルBによるノードC602との通信が可能になる。
尚、上記説明では、図5のレコード510の場合で説明したが、他のレコード511,512の場合も同様にして作成できる。
次に、図7に示す処理の流れ図を参照して、上述したノードA〜Cにおける通信処理について説明する。
図7は、本発明の実施の形態に係る通信システム(図6)におけるデータの流れ、及び処理の流れを説明する図である。
ノードA600において、学習コントロールモジュール304がプロトコル制御モジュール302に対してノードB601の状態を取得するよう指示を出す。この指示を受けたプロトコル制御モジュール302は、プロトコルAを用いてノードB601に状態を問合せる(701)。そして702で、ノードB601から返送される状態(ここではアイドル)を受信して、ノードB601の状態を取得する。即ち、ノードA600のプロトコル制御モジュール302は、ネットワークを介して接続されているノードB601(第1機器)との間でプロトコルA(第1プロトコル)により当該ノードB601の状態を取得する。こうして取得したノードB601の状態を、ノードB601のIPアドレスに対応するプロトコル記録テーブル309に記録する(720)。ここではプロトコル記録テーブル309のIPアドレス欄501にノードB601のIPアドレスを記録し、beforeStat欄503に、その取得した状態を記録する。
次に、ノードC602からネットワーク100に流れるメッセージを監視しており、ノードC602からノードB601に対して何らかのメッセージが送信されると(703)、ノードB601は、そのメッセージに応じた処理を開始する(705)。ノードAのプロトコル監視モジュール307は、ノードC602からノードB601に送られたメッセージを獲得し(704)、学習コントロールモジュール304に受け渡す。即ち、ノードA600のプロトコル監視モジュール307は、ネットワークを介して接続されているノードB601とノードC602(第2機器)との間でのプロトコルB(第2プロトコル)によるメッセージ703を獲得する。これにより、そのノードB601のIPアドレスと同一のレコード510のプロトコル記録テーブル309のMessage欄502に、その取得したメッセージが書き込まれる(721)。
次に706で、ノードA600からノードB601に対してノードB601の状態を取得する指示を出す。この状態ではノードB601は既に処理を開始しているので、その状態は「アイドル」状態から「処理中」に変更されている。こうしてノードA600は、プロトコルAを用いてノードB601の状態を取得する(707)。即ち、ノードA600のプロトコル制御モジュール302は、ネットワークを介して接続されているノードB601(第1機器)との間でプロトコルA(第1プロトコル)により当該ノードB601の状態を取得する。ここでは取得したノードB601の状態をノードB601のIPアドレスと共に受け取り、テーブル読み出し書き込みモジュール306に渡し、プロトコル記録テーブル309に記録する(722)。上述した処理を同じノードB601,或は他のノードに対して実行することにより、プロトコル記録テーブル309には、各ノードのIPアドレスに対応して、受信したメッセージや、そのメッセージによるノードの状態変化が複数記録される。
次に708で、ノードAの学習コントロールモジュール304は、テーブル読み出し書き込みモジュール306を用いて、プロトコル記録テーブル309に記録されたデータを読み出す。この読み取ったデータから、ノードC602からメッセージを受け取る前のノードB601の状態と、そのメッセージを受け取った後のノードB601の状態とを比較する。そして、このような状態の変化を発生させる、ノードAが有しているプロトコルAのコマンドを選択し、テーブル読み込み書き込みモジュール306により、プロトコル記録テーブル309のexistingCommand欄505に書き込む。
例えば、ノードB601がプリンタである場合、そのプリンタが「アイドル」状態から「処理中」に移行するのは、プリント命令を受信した場合であると考えられる。そこで、図5の例では、レコード510のexistingCommand欄505には、プロトコルAの対応するコマンド「print」が記憶されている。従って、コマンドテーブル308のノードC602に対応するExisting欄402には「false」が記録されることになる。即ち、メッセージ703の前後において取得したノードB601の状態の変化に基づいて、メッセージ703をプロトコルA(第1プロトコル)用のコマンド(ここでは、「print」)に対応付ける。
このようにして次に709で、仮想プロトコルモジュール305は、例えばプロトコルAの「print」コマンドを、Message欄502のメッセージに代えるなどして、仮想プロトコルBを作成する。次に710では、ノードC602との通信が指示されたかどうかを判定し、ノードCとの通信が指示されると711に進み、コマンドテーブル308に記録されているノードC602のIPアドレスに対応するExisting欄402の内容を確認し、ここでは「false」が記憶されているので、709で作成した仮想プロトコルB(712)に従ってノードC602との間で通信を行う。具体的には、例えばノードCがスキャナである場合、そのスキャナにより画像をスキャンさせたい場合には、図5のレコード511に記録されているexisitingCommand「scan」に対応するメッセージ欄502のメッセージを送信する。即ち、ノードA600の仮想プロトコルモジュール35は、メッセージ703の前後において取得したノードB601の状態の変化に基づいて、プロトコルBのコマンドを作成してノードC602に送信する。詳細には、対応付けられたプロトコルA用のコマンド(例えば、「scan」)とメッセージとに基づいてプロトコルBの対応するコマンドを作成してノードC602に送信する。
図6の構成において、ノードA、B、Cはどのような機器であってもよい。特に、各ノード間で画像の転送を行う場合のプロトコルを習得することにより、画像(ファイルなど)を扱うノード(機器)の全てで有効に活用できる。例えば、プリンタが画像を受信した場合は印刷を意味し、カメラであればその画像を記憶することになる。
図8は、ディスプレイ(表示ユニット)(ノードB)とデジタルカメラ(ノードC)との間での画像データの転送シーケンス(プロトコルB)を説明する図である。この場合も、ノードAはプロトコルAを有しており、ノードBの状態をモニタしてプロトコルBでの通信を行うことを意図しているものとする。
まず801の以前に、ノードAはノードBが「アイドル」状態にあることを認識しているものとする。これは図7の701,702と同様にしてノードB601との間でプロトコルAを用いて取得できる。次に801で、ノードCからジョブがある旨が通知される。そして、その要求に対して「OK」で応答する際(802)、ノードBの状態は「アイドル」から「レディ」状態になる。ノードA600は、ノードB601とノードC602との間でのプロトコルBによるメッセージCreateJpbを獲得する。ノードA600は、ノードB601との間でプロトコルAにより当該ノードB601の状態「レディ」を取得する。次に803で、表示すべきデータ(メッセージ)がノードCからノードBに送信される。これにより、ノードBの状態は、「レディ」からデータを受信したモード「Received(受信済)(画像の表示開始)」に移行する。ノードA600は、ノードB601とノードC602との間でのプロトコルBによるメッセージSendを獲得する。ノードA600は、ノードB601との間でプロトコルAにより当該ノードB601の状態「Received(受信済)(画像の表示開始)」を取得する。
これら情報を取得してプロトコル記録テーブル309に記憶しているノードAでは、ディスプレイ(ノードB)が「アイドル」状態から「レディ」状態に移行するコマンド(801)に対応する、プロトコルAのコマンドを求める。更に、ノードAは、ディスプレイ(ノードB)が「レディ」状態から「受信済」状態に移行するコマンド(803)に対応する、プロトコルAのコマンドを求める。そして、これらコマンドを使用して仮想プロトコルBを作成し、ノードAとノードC(デジタルカメラ)との通信を行うことができるようになる。即ち、ノードAは、ノードBの状態の変化に基づいて、プロトコルBで、データを送信するために用いられるコマンド(CreateJob、Send)を知ることができる。
ノードAからノードC(デジタルカメラ)に画像を転送するには、まずプロトコルBのCreateJobに相当するメッセージをノードC(カメラ)に送信する。
そのメッセージに対して「OK」で応答する際、ノードC(デジタルカメラ)は「アイドル」状態から「レディ」状態に移行する。
次に、保存すべきデータ(画像)が付与されたプロトコルBのSendに対応するメッセージがノードAからノードCに送信される。これにより、ノードCの状態は、「レディ」からデータを受信したモード「Received(受信済)(画像の保存開始)」に移行する。即ち、ノードAは、プロトコルBを用いてデータをノードCに送信する場合、ノードBの状態の変化に基づいて学習したプロトコルBで用いられるデータを送信するためのコマンドを作成してノードCに送信する。
以上のようにノードAとノードCの通信が先に作成した仮想プロトコルBで可能となる。
なお本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが、その供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。その他のプログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件を満足するユーザに対してインターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
またコンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行ない、その処理によっても前述した実施形態の機能が実現される。
本発明の実施の形態に係る通信システムの全体構成を説明する図である。 本発明の実施の形態に係る各機器の制御部のハードウェア構成を示すブロック図である。 本実施の形態に係るプロトコル学習制御機能のモジュール構成を示すブロック図である。 本実施の形態に係るコマンドテーブルの一例を示す図である。 本実施の形態に係るプロトコル記録テーブルの一例を示す図である。 本発明の実施の形態に係る通信システムの構成を示す概念図である。 本発明の実施の形態に係る通信システム(図6)におけるデータの流れ、及び処理の流れを説明する図である。 ディスプレイ(表示ユニット)(ノードB)とデジタルカメラ(ノードC)との間での画像データの転送シーケンス(プロトコルB)を説明する図である。

Claims (9)

  1. ネットワークを介して接続されている第1機器との間で第1プロトコルにより当該第1機器の状態を取得する取得手段と、
    前記ネットワークを介して接続されている前記第1機器と第2機器との間での第2プロトコルによるメッセージを獲得する獲得手段と、
    前記メッセージの前後において前記取得手段により取得した前記第1機器の状態の変化に基づいて、前記第2プロトコルのコマンドを作成して前記第2機器に送信する送信手段と、
    を有することを特徴とする通信装置。
  2. 前記送信手段は、前記メッセージの前後において前記取得手段により取得した前記第1機器の状態の変化に基づいて、前記メッセージを前記第1プロトコル用のコマンドに対応付ける対応付け手段を備え、
    前記対応付け手段により対応付けられた前記第1プロトコル用のコマンドと前記メッセージとに基づいて前記第2プロトコルの対応するコマンドを作成して前記第2機器に送信することを特徴とする請求項1に記載の通信装置。
  3. 前記第1機器のアドレスに対応付けて、前記取得手段により取得された前記第1機器の状態を示すデータ、及び前記獲得手段により獲得されたメッセージを記憶する記憶手段を更に有することを特徴とする請求項1又は2に記載の通信装置。
  4. 前記ネットワークに接続されている機器のアドレスに対応付けて前記第1プロトコルでの通信が可能かどうかを記憶する手段を更に有することを特徴とする請求項1乃至3のいずれか1項に記載の通信装置。
  5. ネットワークを介して接続されている第1機器との間で第1プロトコルにより当該第1機器の状態を取得する取得工程と、
    前記ネットワークを介して接続されている前記第1機器と第2機器との間での第2プロトコルによるメッセージを獲得する獲得工程と、
    前記メッセージの前後において前記取得工程で取得した前記第1機器の状態の変化に基づいて、前記第2プロトコルのコマンドを作成して前記第2機器に送信する送信工程と、を有することを特徴とする通信装置の制御方法。
  6. 前記送信工程は、前記メッセージの前後において前記取得工程で取得した前記第1機器の状態の変化に基づいて、前記メッセージを前記第1プロトコル用のコマンドに対応付ける対応付け工程を備え、
    前記対応付け工程で対応付けられた前記第1プロトコル用のコマンドと前記メッセージとに基づいて前記第2プロトコルの対応するコマンドを作成して前記第2機器に送信することを特徴とする請求項5に通信装置の制御方法。
  7. 前記第1機器のアドレスに対応付けて、前記取得工程で取得された前記第1機器の状態を示すデータ、及び前記獲得工程で獲得されたメッセージを記憶する記憶工程を更に有することを特徴とする請求項5又は6に記載の通信装置の制御方法。
  8. 前記ネットワークに接続されている機器のアドレスに対応付けて前記第1プロトコルでの通信が可能かどうかを記憶する工程を更に有することを特徴とする請求項5乃至7のいずれか1項に記載の通信装置の制御方法。
  9. 請求項5乃至8のいずれか1項に記載の制御方法を実現するためのプログラム。
JP2005176891A 2005-06-16 2005-06-16 通信装置、その制御方法及びプログラム Expired - Fee Related JP4266962B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005176891A JP4266962B2 (ja) 2005-06-16 2005-06-16 通信装置、その制御方法及びプログラム
US11/449,623 US7586860B2 (en) 2005-06-16 2006-06-09 Communication apparatus, command transmission method, and program for networked devices using different protocols
CN200610083974A CN100596362C (zh) 2005-06-16 2006-06-16 通信装置和命令发送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005176891A JP4266962B2 (ja) 2005-06-16 2005-06-16 通信装置、その制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2006352584A JP2006352584A (ja) 2006-12-28
JP4266962B2 true JP4266962B2 (ja) 2009-05-27

Family

ID=37519939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005176891A Expired - Fee Related JP4266962B2 (ja) 2005-06-16 2005-06-16 通信装置、その制御方法及びプログラム

Country Status (3)

Country Link
US (1) US7586860B2 (ja)
JP (1) JP4266962B2 (ja)
CN (1) CN100596362C (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE524262C2 (sv) * 2001-10-24 2004-07-20 Abb Ab Metod och system för automatisk samverkan mellan intelligenta enheter i ett nätverk
JP4136771B2 (ja) 2003-04-23 2008-08-20 キヤノン株式会社 通信システム、通信装置、及びその制御方法、並びにコンピュータプログラム
JP4125173B2 (ja) 2003-04-23 2008-07-30 キヤノン株式会社 情報処理装置の接続制御方法、情報処理装置、及びコンピュータプログラム
JP4366323B2 (ja) * 2005-03-15 2009-11-18 キヤノン株式会社 通信装置およびその制御方法
JP4502389B2 (ja) * 2005-03-15 2010-07-14 キヤノン株式会社 通信装置及びその制御方法
JP4356997B2 (ja) * 2005-03-15 2009-11-04 キヤノン株式会社 通信装置及びその通信方法
JP4250611B2 (ja) * 2005-04-27 2009-04-08 キヤノン株式会社 通信装置、通信パラメータ設定方法及び通信方法
JP4656637B2 (ja) * 2005-04-27 2011-03-23 キヤノン株式会社 通信装置及び通信システムとその通信パラメータ設定方法
JP4900891B2 (ja) 2005-04-27 2012-03-21 キヤノン株式会社 通信装置及び通信方法
JP4886463B2 (ja) 2006-10-20 2012-02-29 キヤノン株式会社 通信パラメータ設定方法、通信装置及び通信パラメータを管理する管理装置
JP4871696B2 (ja) 2006-10-27 2012-02-08 キヤノン株式会社 通信パラメータの設定処理方法、通信装置、通信装置の制御方法、プログラム
US8379668B2 (en) * 2010-01-21 2013-02-19 Comcast Cable Communications, Llc Controlling networked media capture devices
JP6408753B2 (ja) 2012-05-17 2018-10-17 キヤノン株式会社 通信装置、通信装置の制御方法、プログラム
EP2863665B1 (en) * 2012-06-19 2020-12-09 LG Electronics Inc. Location update method for terminal supporting multiple radio access technologies
JP2016136364A (ja) 2015-01-23 2016-07-28 キヤノン株式会社 通信装置及びその制御方法、プログラム
CN112751907B (zh) * 2020-11-20 2022-10-14 青岛海尔科技有限公司 信息处理方法、装置和存储介质及电子装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0897878A (ja) 1994-09-26 1996-04-12 Nec Eng Ltd プロトコル変換装置
JPH10240551A (ja) * 1996-12-26 1998-09-11 Canon Inc 情報処理システム及びその方法
JPH10240552A (ja) * 1996-12-26 1998-09-11 Canon Inc 情報処理装置及びその方法
FI104873B (fi) * 1997-04-16 2000-04-14 Nokia Networks Oy Datapalvelu matkaviestinverkossa
US7006494B1 (en) * 2000-01-04 2006-02-28 Cisco Technology, Inc. System and method for a virtual telephony intermediary
US6718402B1 (en) * 2000-11-29 2004-04-06 Crossroads Systems, Inc. Method and system for persistent unit attention in a fibre channel storage router
DE60208382T2 (de) * 2002-10-17 2006-06-22 Alcatel Hybrides UMTS/WLAN Telekommunikationssystem
JP4136771B2 (ja) * 2003-04-23 2008-08-20 キヤノン株式会社 通信システム、通信装置、及びその制御方法、並びにコンピュータプログラム
JP4125172B2 (ja) * 2003-04-23 2008-07-30 キヤノン株式会社 無線通信システム、無線通信装置、及びその制御方法、並びにコンピュータプログラム
JP4136857B2 (ja) * 2003-09-11 2008-08-20 キヤノン株式会社 機器検索方法およびプログラム
DE10342294A1 (de) * 2003-09-12 2005-04-28 Siemens Ag Interworking von Protokollen hybrider Multimedianetze
US7631181B2 (en) * 2003-09-22 2009-12-08 Canon Kabushiki Kaisha Communication apparatus and method, and program for applying security policy
US20050063418A1 (en) * 2003-09-23 2005-03-24 Case Michael L. Tuner module utilizing device-specific controller
JP4616622B2 (ja) * 2003-12-16 2011-01-19 株式会社リコー 通信装置、通信制御方法、通信制御プログラム及び記録媒体
US7296079B2 (en) * 2004-01-27 2007-11-13 Ricoh Company, Ltd. Method and system for initializing protocol information used to extract status information from networked devices
JP4366323B2 (ja) * 2005-03-15 2009-11-18 キヤノン株式会社 通信装置およびその制御方法
JP4656637B2 (ja) * 2005-04-27 2011-03-23 キヤノン株式会社 通信装置及び通信システムとその通信パラメータ設定方法
JP4900891B2 (ja) * 2005-04-27 2012-03-21 キヤノン株式会社 通信装置及び通信方法
JP4250611B2 (ja) * 2005-04-27 2009-04-08 キヤノン株式会社 通信装置、通信パラメータ設定方法及び通信方法

Also Published As

Publication number Publication date
US20070002867A1 (en) 2007-01-04
JP2006352584A (ja) 2006-12-28
US7586860B2 (en) 2009-09-08
CN1881977A (zh) 2006-12-20
CN100596362C (zh) 2010-03-31

Similar Documents

Publication Publication Date Title
JP4266962B2 (ja) 通信装置、その制御方法及びプログラム
US7809845B2 (en) Apparatus and method for transmitting command
US8352654B2 (en) Data reproducing apparatus, content management method, program, and storage medium
JP4829563B2 (ja) 制御方法及び制御装置
JP2010198620A (ja) 管理仲介装置、画像形成装置、管理仲介プログラム及び管理仲介プログラムを記録した記録媒体
JP4541992B2 (ja) ネットワーク機器及びその制御方法、及びプログラム
US7310690B2 (en) Communication device selecting its own unique name by comparing with other names from other communication devices on a network
US20080065733A1 (en) Log transfer device and recording medium
JP2018136876A (ja) 監視装置及び方法及びプログラム
JP5822581B2 (ja) 画像形成装置、その方法、及びプログラム
JP2009098977A (ja) 周辺機器接続システム
US20070206222A1 (en) Information Acquiring Method, Information Appending Apparatus, Information Acquiring Apparatus, And Program
JP4213481B2 (ja) 画像形成装置管理システム、画像形成装置管理方法、管理装置、画像形成装置管理プログラム及び記録媒体
JP2006033086A (ja) 画像処理システム、情報処理装置、画像処理装置、それらの制御方法、それらの制御プログラム並びに、その制御プログラムを格納した記憶媒体
JP4541994B2 (ja) 制御装置、制御方法及びプログラム
JPWO2005055044A1 (ja) 印刷装置および印刷方法
JP4574253B2 (ja) 画像処理装置及びその制御方法
JP4627715B2 (ja) ドキュメントデータ管理システム、ドキュメントデータ管理方法、及びプログラム
JP2007049385A (ja) 通信装置、その制御方法及びプログラム
JP2012137864A (ja) デバイス制御装置、デバイス制御方法、およびデバイス制御システム
JP5315939B2 (ja) 画像形成装置、情報処理システム、情報処理方法、及びプログラム
JP2005141366A (ja) ネットワーク装置、識別情報通知方法、情報処理装置、接続情報取得方法、接続情報表示方法、記録媒体及びプログラム。
JP2009118058A (ja) 通信管理システムおよび通信管理プログラム
JP2001148707A (ja) 情報処理装置および方法、情報提供装置および方法、並びに記録媒体
JP2008140189A (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090206

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

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees