JP7256638B2 - 通信方法、情報処理装置、およびプログラム - Google Patents

通信方法、情報処理装置、およびプログラム Download PDF

Info

Publication number
JP7256638B2
JP7256638B2 JP2018240141A JP2018240141A JP7256638B2 JP 7256638 B2 JP7256638 B2 JP 7256638B2 JP 2018240141 A JP2018240141 A JP 2018240141A JP 2018240141 A JP2018240141 A JP 2018240141A JP 7256638 B2 JP7256638 B2 JP 7256638B2
Authority
JP
Japan
Prior art keywords
packet
protocol
response
status information
response packet
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.)
Active
Application number
JP2018240141A
Other languages
English (en)
Other versions
JP2020102038A (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 JP2018240141A priority Critical patent/JP7256638B2/ja
Priority to US16/707,409 priority patent/US11533218B2/en
Publication of JP2020102038A publication Critical patent/JP2020102038A/ja
Priority to US17/981,633 priority patent/US20230130804A1/en
Application granted granted Critical
Publication of JP7256638B2 publication Critical patent/JP7256638B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0213Standardised network management protocols, e.g. simple network management protocol [SNMP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、通信方法、情報処理装置、およびプログラムに関する。
近年、ネットワークデバイス(例えば、プリンターなど)は複数のプロトコルをサポートしている。そのようなネットワークデバイスとPCが通信する技術として特許文献1が開示されている。
特許文献1には、PCとネットワークデバイスとの通信の際、情報取得用プロトコルとして利用するSNMP(Simple Network Management Protocol)のパケットを、TCP(例えば、HTTP(Hypertext Transfer Protocol))のパケットに包含して通信する技術が記載されている。
米国特許第9537808号明細書
特許文献1の技術では、デバイスがSNMPの応答パケットを生成できない状態の場合、デバイスはSNMP応答パケットが含まれないHTTP応答パケットをPCに送信する。一方、PCは、SNMP応答パケットが含まれないHTTP応答パケットを受信するため、デバイスがSNMPパケットを生成できない原因を特定できない。その結果、ユーザーの利便性が低下するおそれがあった。
上記課題を解決するために本発明は以下の構成を有する。すなわち、装置間の通信方法であって、第1の装置において、第1のプロトコルによる第1のパケットを含む第2のプロトコルによる第2のパケットを生成する生成工程と、前記第1の装置において、前記生成工程にて生成された第2のパケットを第2の装置に送信する送信工程と、前記第2の装置において、前記第2のパケットを受信する受信工程と、前記第2の装置において、前記第2のパケットに含まれる前記第1のパケットに対する前記第1のプロトコルによる応答が可能か否かを判定する判定工程と、前記第2の装置において、前記第1のパケットに対する前記第1のプロトコルによる応答が不可であると判定された場合、当該応答が不可である原因に対応するステータス情報を前記第2のパケットに対する応答パケットに含めて前記第1の装置に送信する応答工程とを有し、前記第2のプロトコルにて用いられる標準ステータスコードと、前記第1のプロトコルによる応答が不可である原因とが対応づけて定義されており、前記応答工程では、前記ステータス情報として当該標準ステータスコードを前記第2のパケットに対する前記応答パケットに含めて前記第1の装置に送信することを特徴とする。
本発明によれば、ユーザーの利便性を向上することが可能となる。
本発明に係るシステム構成の例を示す図。 本発明に係るPCのハードウェア構成の例を示す図。 本発明に係るデバイスのハードウェア構成の例を示す図。 本発明に係るPCのソフトウェア構成の例を示す図。 HTTPパケット構成の例を示す図。 デバイスのSNMP設定とヘッダ部のステータスの関係を示す図。 デバイスにおいてSNMPv1/v3無効時の処理を示すシーケンス図。 デバイス通信中画面の例を示す図。 デバイス通信失敗画面の例を示す図。 デバイスのSNMPv1/v3機能の有効/無効を設定するリモートUIの画面例を示す図。 デバイスにおいてSNMPv1無効時の処理を示すシーケンス図。 SNMPv1リクエストパケットのコミュニティ名が不一致時の処理を示すシーケンス図。 PC側のコミュニティ名を変更する画面の例を示す図。 デバイスのSNMPv1のコミュニティ名を設定するリモートUIの画面の例を示す図。 デバイスにおいてSNMPv3無効時の処理を示すシーケンス図。 HTTPパケット構成の例を示す図。 デバイスのSNMP応答パケットを生成できない原因とステータスコードとの関係を示す図。 HTTPアクセス制限により通信できない時の処理を示すシーケンス図。 デバイスのHTTP設定を変更するリモートUIの画面例を示す図。 デバイスにおいてSNMPv1/v3無効時の処理を示すシーケンス図。
以下、添付図面を参照して本発明の好適な実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものではない。また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
<第1の実施形態>
[システム構成]
図1は、情報処理装置であるPC101を含むネットワークシステムの構成の一例を示すブロック図である。図1に示すシステムでは、PC101、デバイス102、およびルーター103が、ネットワーク104を介して接続されている。各装置は、TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)の各プロトコルを利用して通信を行う。ネットワーク104は、ルーター103を介して外部ネットワーク105と接続されている。ネットワーク104は、有線/無線は問わない。デバイス102は、プリンタ、複写機、ファクシミリ、スキャナ等の周辺機器またはそれらの複合機能を備える装置である。ルーター103は、DHCP(Dynamic Host Configuration Protocol)サーバ機能を有し、PC101、デバイス102にIPアドレスを割り当てる。なお、図1において、PC101やデバイス102はそれぞれ1台のみが示されているが、これに限定するものではなく、更に多くの装置がネットワーク104に設置されていてよく、これらの装置間で通信が行われてよい。
[ハードウェア構成]
図2は、本実施形態に係るPC101のハードウェア構成の例を示す図である。PC101は、モニタ201、CPU202、ROM203、RAM204、補助記憶装置205、キーボード206、ポインティングデバイス207、およびネットワークボード208を備える。各構成要素は、バス209を介して相互に通信可能に接続される。モニタ201は、アプリケーション401等のアプリケーションやドライバのUIを表示する。CPU(Central Processing Unit)202は、PC101全体を制御する処理部である。CPU202は、ROM(Read Only Memory)203や補助記憶装置205が記憶するアプリケーションやドライバ等のプログラムをRAM(Random Access Memory)204にロードし、ロードしたプログラムを実行する。
ROM203は、BIOS(Basic Input/Output System)等の基本ソフトウェアや、PC101で実行する処理を実現するための各種プログラムを格納する。RAM204は、アプリケーションやドライバなどのソフトウェアや、それらが利用するデータを一時的に記憶する。補助記憶装置205は、不揮発性の記憶部であり、例えば、ハードディスクである。補助記憶装置205は、OS(Operating System)、アプリケーション、ドライバ、種々のモジュールなどのソフトウェア(プログラム)を記憶する。補助記憶装置205が記憶するドライバには、デバイス102を制御するデバイスドライバが含まれる。このデバイスドライバは、デバイス102の機能に応じて、スキャナドライバ、プリンタドライバ、ファクシミリドライバ等が含まれる。また、補助記憶装置205が記憶するドライバには、モニタ201における表示を制御する表示制御ドライバ、キーボード206を制御するキーボードドライバ、ポインティングデバイス207を制御するポインティングデバイスドライバが含まれる。さらに、補助記憶装置205が記憶するドライバには、ネットワークボード208の通信を制御するネットワークドライバが含まれる。補助記憶装置205には、図4を用いて後述するアプリケーション401、SNMPライブラリ402、HTTPライブラリ403が含まれる。
アプリケーション401は、TCP/IPによるデバイスの検索機能と、TCP/IPによるデバイスへの情報設定機能とを有する。なお、アプリケーション401が、当該検索機能と当該情報設定機能を有するモジュールを呼び出して、それらの機能を実行させるようにしてもよい。また、当該検索機能と当該情報設定機能とが、それぞれ別のモジュールに設けられていてもよい。キーボード206およびポインティングデバイス207は、ユーザーからの指示を入力する入力装置である。ネットワークボード208は、ネットワーク104を介して、外部装置との通信を行う。
図3のデバイス102に示すハードウェア構成は、デバイス102がプリンタである場合のハードウェア構成の一例である。デバイス102は、CPU301、ROM302、RAM303、通信部304、記録部305、操作部306、および表示部307を備える。デバイス102を構成する各種構成要素は、バス308を介して相互に通信可能に接続される。CPU301は、例えばマイクロプロセッサである。CPU301は、デバイス102の中央処理装置として機能する。CPU301は、ROM302が記憶するプログラムをRAM303にロードし、ロードしたプログラムを実行することによって、通信部304、記録部305、操作部306、および表示部307を制御する。ROM302は、デバイス102で実行する処理を実現するための各種プログラムを記憶する。RAM303は、CPU301のワークエリアとして用いられる。RAM303は、各種データを一時的に記憶する。通信部304は、ネットワーク104を介して、他のデバイスとの通信を行う。記録部305は、例えば、画像データを紙などの記録媒体に印刷する。
操作部306は、ボタンやタッチパネル等の入力装置で構成される。表示部307は、デバイス102を操作するための画面や、デバイス102の各種情報を表示する。なお、デバイス102がプリンタ以外のデバイスである場合には、デバイス102は、記録部305に代えて、または記録部305に加えて、他の構成要素を備える。例えば、デバイス102がスキャナであれば、デバイス102は、他の構成として原稿上の画像を読み取る読取部を備える。したがって、デバイス102は、上記構成に限定するものではなく、提供する機能やサービスに応じて、対応する部位を備えてよい。
[ソフトウェア構成]
図4は、デバイス102と通信するPC101におけるソフトウェアの構成例を示すブロック図である。PC101は、アプリケーション401、SNMPライブラリ402、およびHTTPライブラリ403を備える。図4に示す各部は、PC101のCPU202が補助記憶装置205に記憶されているアプリケーション401を読み出して実行することで実現される。なお、アプリケーション401は、例えば、検索されたデバイスの状況を確認したり、検索されたデバイスへ印刷データを送信できる否かを確認したりするデバイス管理アプリケーションである。また、アプリケーション401は、PC101に、デバイス102のデバイスドライバをインストールするセットアップアプリケーションでもよい。
本実施形態では、アプリケーション401は、同一ネットワーク内にあるデバイスを検索し、検出したデバイスをモニタ201に表示する。一方、同一ネットワーク内にあるデバイスを検索できなかった場合、アプリケーション401は、デバイスの検出に失敗した旨をモニタ201に表示する。SNMPライブラリ402は、アプリケーション401が使用するライブラリファイルであり、HTTPパケットのボディ部に包含するSNMPリクエストパケットを生成する。SNMPライブラリ402は、デバイス102から受信したSNMPレスポンスパケットを解析する。
HTTPライブラリ403は、アプリケーション401が使用するライブラリファイルであり、SNMPライブラリ402で生成したSNMPリクエストパケットをHTTPパケットのボディ部に組み込む。また、HTTPライブラリ403は、デバイス102から受信したHTTP応答パケットを解析する。このとき、HTTP応答パケットのボディ部にSNMPレスポンスパケットが含まれている場合、HTTPライブラリ403は、SNMPレスポンスパケットをSNMPライブラリ402に渡す。
[パケット構成]
図5は、デバイス102が生成する本実施形態に係るSNMPレスポンスパケットが含まれたHTTP応答パケットの構成例を示す図である。HTTP応答パケット500のボディ部502には、SNMPレスポンスパケットが組み込まれる。HTTP応答パケット500のヘッダ部501には、デバイス102がSNMPレスポンスパケットを生成できない場合、その原因を示すHTTPステータスコードが含まれる。なお、図6にて後述するようなテーブルをPC101とデバイス102が備える。そのため、例えば、PC101は、デバイス102から受信したHTTP応答パケット500のヘッダ部に含まれるステータスコードからデバイスの状態を認識できる。本実施形態では、ステータスコードによりSNMPレスポンスパケットを生成できない原因が示されているが、他の情報でも構わない。例えば、テキストデータのステータス情報によりSNMPレスポンスパケットを生成できない原因が示されても構わない。ここで、SNMPレスポンスパケットに含まれる情報の一例を説明する。例えば、アプリケーション401が、デバイス102のIPアドレスの取得を要求するSNMPv1のリクエストパケットを生成し、HTTPパケットのボディ部に含めてデバイスに送信する。なお、送信するタイミングは、例えば、後述する図7のS701または図11のS1101などである。この場合、SNMPレスポンスには、IPアドレスが含まれる。また、アプリケーション401が、デバイス102のネットワーク情報として、デバイス102が接続しているルーターのSSID、通信モードを要求するSNMPv1のリクエストパケットを生成し、HTTPパケットのボディ部に含めてデバイスに送信する。この場合、SNMPレスポンスには、デバイス102が接続しているルーターのSSIDおよび通信モードとして有線モードまたは無線モードの情報が含まれる。
図6は、本実施形態に係るHTTP応答パケットのヘッダ部501に表現されるコードとデバイス102の状態の対応関係の例を示す。本実施形態では、SNMPレスポンスパケットを生成できない各原因をHTTPの標準ステータスコードに紐付けて表現する。例えば、デバイス102から受信したHTTP応答パケット500のヘッダ部501にて“404(NotFound)”がステータスとして設定されていた場合、デバイス102の状態は、“SNMP通信非サポート”であることを示す。具体的な動作については、シーケンス図と合わせて後述する。
本実施形態においては、PC101およびデバイス102は、HTTP(HyperText Transfer Protocol)およびSNMP(Simple Network Management Protocol)に対応可能に構成される。また、SNMPにおいては、SNMPv1(バージョン1)機能およびSNMPv3(バージョン3)機能の両方に対応可能なように構成される。また、デバイス102では、各機能に対して有効/無効の設定が可能である。
[シーケンス]
以下、本実施形態に係るデバイス102の状態に応じた処理のシーケンスについて、図面を用いて説明する。
(SNMPv1/v3が無効の場合)
図7は、デバイス102のSNMPv1/v3機能が共に無効である場合に、アプリケーション401がデバイス102を検索する際のシーケンスを示す。ここでは、SNMPv1の要求を行う場合を例に挙げて説明する。本シーケンスは、PC101およびデバイス102それぞれのCPUが対応するプログラムを読み出して実行することにより実現される。
S701にて、アプリケーション401は、SNMPv1のリクエストパケットを生成し、HTTPパケットのボディ部に含める。そして、アプリケーション401は、生成したHTTPパケットをデバイス102に送信する。このとき、PC101のモニタ201には、現在、PC101がデバイス102と通信中であることを示す画面(図8)をアプリケーション401が表示する。図8は、デバイス102と通信中であることを示す画面800の構成例を示す。画面800に表示する情報は、図8に限定するものではなく、例えば、通信中のデバイスの情報を更に表示してもよい。
S702にて、デバイス102は、S701のHTTPパケットに対するHTTP応答パケットをPC101に送信する。ここでのHTTP応答パケットのヘッダ部には、正常に通信可能であることを示す“200 OK”がステータスとして設定される。
S703にて、アプリケーション401は、デバイス102から受信したHTTP応答パケットを解析する。解析の結果、アプリケーション401は、HTTP応答パケットのステータスに”200 OK”が設定されていることを確認する。
S704にて、アプリケーション401は、SNMPレスポンスパケットを取得するために、HTTPパケットをデバイス102に送信する。
S705にて、デバイス102は、S704にて受信したHTTPパケットに対するHTTP応答パケットを生成する。このとき、デバイス102は、デバイス102のSNMPv1/v3機能が共に無効に設定されている。そのため、SNMPレスポンスパケットの生成に失敗した旨を示すステータスコード“403 Forbidden”がHTTP応答パケット500のヘッダ部501に設定される。つまり、この場合は、SNMPv1によるレスポンスは不可となり、ステータスコードが返される。
S706にて、デバイス102は、S705にて生成したHTTP応答パケット500をPC101に送信する。
S707にて、アプリケーション401は、デバイス102から受信したHTTP応答パケット500を解析する。アプリケーション401は、解析の結果、HTTP応答パケット500のヘッダ部501にステータスコード“403 Forbidden”がステータスとして設定されていることを確認する。アプリケーション401は、ステータスコードと図6のテーブルに基づいて、デバイス102のSNMPv1およびv3が無効化されていることを認識する。アプリケーション401は、デバイス102のSNMPv1/v3機能が共に無効化されているため、SNMPレスポンスパケットを生成できない状態であるとみなす。このため、アプリケーション401は、再度通信を行っても失敗することが明らかなので、再試行せずに失敗と判定する。
S708にて、アプリケーション401は、デバイス102との通信を再試行せず、通信を中断する。そして、アプリケーション401は、デバイス102との通信に失敗した旨を示す画面(図9)を表示する。そして、本シーケンスを終了する。なお、上記では、SNMPv1のパケットを用いた例を示したが、SNMPv3においても同様のシーケンスとなる。
図9は、本実施形態において、アプリケーション401がデバイス102との通信に失敗した場合に、アプリケーション401がPC101のモニタ201に表示するアプリケーション401の画面900の一例である。画面900には、リトライボタン901、およびヘルプボタン902を設ける。リトライボタン901は、ユーザーがデバイス102のSNMP設定を変更した後に、PC101とデバイス102との通信を再度開始させ、パケットの再送を行うためのボタンである。ヘルプボタン902は、各種ヘルプ情報を案内するマニュアルページ(不図示)をPC101のモニタ201に表示するためのボタンである。ここで図7の処理を経て表示された図9のヘルプボタン902が押下されたケースについて説明する。ヘルプボタン902が押下された場合、ヘルプ情報として、例えば、デバイス102のSNMPv1/v3設定を変更するリモートUI画面(図10)へのアクセス方法、デバイス側のSNMP機能を有効にする方法などが表示される。
図10は、デバイス102のSNMPv1/v3設定を変更するリモートUI画面1000の例を示す図である。リモートUI画面1000は、PC101のWebブラウザ(不図示)上に表示される。PC101のWebブラウザ(不図示)を介してデバイス102にアクセスすることで、デバイス102が提供するリモートUI機能により、ユーザーは、デバイス102に対する各種設定を行うことが可能となる。なお、リモートUI画面1000にて設定可能な情報は図10に示すものに限定するものではなく、他の情報を設定できてもよい。
(SNMPv1無効、SNMPv3有効の場合)
図11は、デバイス102のSNMPv1機能のみが無効である場合に、アプリケーション401がデバイス102を検索する際のシーケンスを示す。つまり、このシーケンスにおいては、SNMPv3機能は有効であるものとする。本シーケンスは、PC101およびデバイス102それぞれのCPUが対応するプログラムを読み出して実行することにより実現される。
S1101にて、アプリケーション401は、SNMPv1のリクエストパケットを生成し、HTTPパケットのボディ部に含める。そして、アプリケーション401は、生成したHTTPパケットをデバイス102に送信する。このとき、PC101のモニタ201には、現在、PC101がデバイス102と通信中であることを示す画面800をアプリケーション401が表示する。
S1102にて、デバイス102は、S1101にて受信したHTTPパケットに対するHTTP応答パケットをPC101に送信する。ここでのHTTP応答パケットのヘッダ部には、正常に通信可能であることを示すステータスコード“200 OK”がステータスとして設定される。
S1103にて、アプリケーション401は、デバイス102から受信したHTTP応答パケットを解析する。解析の結果、アプリケーション401は、HTTP応答パケットのステータスにステータスコード“200 OK”が設定されていることを確認する。
S1104にて、アプリケーション401は、SNMPレスポンスパケットを取得するために、HTTPパケットをデバイス102に送信する。
S1105にて、デバイス102は、S1104にて受信したHTTPパケットに対するHTTP応答パケットを生成する。このとき、デバイス102は、デバイス102のSNMPv1機能が無効であるためにSNMPレスポンスパケットの生成に失敗した旨を示すステータスコード“204 NoContent”をHTTP応答パケット500のヘッダ部501に設定する。つまり、このステータスコードは、図6に示すように、SNMPv1/v3のいずれか一方が無効であることを意味する。
S1106にて、デバイス102は、S1105にて生成したHTTP応答パケット500をPC101に送信する。
S1107にて、アプリケーション401は、デバイス102から受信したHTTP応答パケット500を解析する。解析の結果、アプリケーション401は、HTTP応答パケット500のヘッダ部501にステータスコード”204 NoContent”がステータスとして設定されていることを確認する。このステータスコードが設定されていることにより、アプリケーション401は、送信したSNMPリクエストパケットに対応する機能(ここでは、SNMPv1機能)がデバイス102にて無効であると判定する。そして、アプリケーション401は、デバイス102がSNMPv1のレスポンスパケットを生成できない状態であるとみなす。
S1108にて、アプリケーション401は、SNMPv1のパケットを用いた通信を再度行っても失敗することが明らかであるため、この通信を再試行せず、代替手段としてSNMPv3でのリクエストを試みる。つまり、アプリケーション401は、SNMPv3のリクエストパケットを生成し、HTTPパケットのボディ部に含める。そして、アプリケーション401は、生成したHTTPパケットをデバイス102に送信する。なお、代替手段への切り替えはアプリケーション401が自動的に行う。
S1109にて、デバイス102は、S1108にて受信したHTTPパケットに対するHTTP応答パケットをPC101に送信する。ここでのHTTP応答パケットのヘッダ部には、正常に通信可能であることを示すステータスコード“200 OK”がステータスとして設定される。
S1110にて、アプリケーション401は、デバイス102からのHTTP応答パケットを解析する。解析の結果、アプリケーション401は、HTTP応答パケットのステータスにステータスコード“200 OK”が設定されていることを確認する。
S1111にて、アプリケーション401は、SNMPv3のレスポンスパケットを取得するために、HTTPパケットをデバイス102に送信する。
S1112にて、デバイス102は、S1108にて受信したSNMPv3のリクエストパケットに対するレスポンスパケットが含まれるHTTP応答パケット500を生成する。ここでは、HTTP応答パケット500のヘッダ部501には、ステータスコード“200 OK”がステータスとして設定される。また、HTTP応答パケット500のボディ部502には、SNMPv3のレスポンスパケットが含められる。
S1113にて、デバイス102は、S1112で生成したHTTP応答パケット500をPC101に送信する。
S1114にて、アプリケーション401は、S1113にて受信したHTTP応答パケット500を解析し、また、HTTP応答パケット500のボディ部502に含まれるSNMPレスポンスパケットを解析する。解析の結果、アプリケーション401は、HTTP応答パケット500のステータスにステータスコード“200 OK”が設定されていることを確認し、正常に通信できたとみなす。そして、本シーケンスを終了する。
以上、図11によれば、アプリケーション401が、S1106で受信したHTTP応答パケット500のヘッダ部501に含まれるステータスコードにより、異なるバージョンのSNMPパケットが有効であることを認識できる。その結果、アプリケーション401が、S1008においてバージョンを変更して(図11ではv1からv3へ変更して)リクエストを試みるため、デバイス102から必要な情報を容易に取得することができる。
(コミュニティ名が不一致の場合)
図12は、PC101とデバイス102との間で、SNMPv1リクエストパケットに設定されているコミュニティ名がデバイス102に設定されているコミュニティ名と不一致の時のシーケンスを示す。本シーケンスは、PC101およびデバイス102それぞれのCPUが対応するプログラムを読み出して実行することにより実現される。
S1201にて、アプリケーション401は、SNMPv1のリクエストパケットを生成し、HTTPパケットのボディ部に含める。アプリケーション401は、生成したHTTPパケットをデバイス102に送信する。このとき、PC101のモニタ201には、現在、PC101がデバイス102と通信中であることを示す画面800をアプリケーション401が表示する。
S1202にて、デバイス102は、S1201にて受信したHTTPパケットに対するHTTP応答パケットをPC101に送信する。ここでのHTTP応答パケットのヘッダ部には、正常に通信可能であることを示す“200 OK”がステータスとして設定される。
S1203にて、アプリケーション401は、デバイス102から受信したHTTP応答パケットを解析する。解析の結果、アプリケーション401は、HTTP応答パケットのステータスにステータスコード“200 OK”が設定されていることを確認する。
S1204にて、アプリケーション401は、SNMPレスポンスパケットを取得するためのHTTPパケットをデバイス102に送信する。
S1205にて、デバイス102は、S1204にて受信したHTTPパケットに対するHTTP応答パケットを生成する。このとき、デバイス102は、デバイス102とSNMPv1リクエストパケットのコミュニティ名が一致しない旨を示すステータスコード“503 Service Unavailable”をHTTP応答パケット500のヘッダ部501に設定する。つまり、このステータスコードは、図6に示すように、コミュニティ名が不一致であることを意味する。
S1206にて、デバイス102は、S1205にて生成したHTTP応答パケット500をPC101に送信する。
S1207にて、アプリケーション401は、デバイス102から受信したHTTP応答パケット500を解析する。解析の結果、アプリケーション401は、HTTP応答パケット500のヘッダ部501にステータスコード“503 Service Unavailable”がステータスとして設定されていることを確認する。このステータスコードが設定されていることにより、アプリケーション401は、コミュニティ名が一致しないためSNMPレスポンスパケットを生成できないと判定し、デバイス102がSNMPレスポンスパケットを生成できない状態であるとみなす。アプリケーション401は、コミュニティ名の不一致により、デバイス102に再度通信を行っても失敗することが明らかであるため、通信を再試行せずに失敗と判定する。
S1208にて、アプリケーション401は、デバイス102との通信を再試行せず、PC101側のコミュニティ名の変更を促す画面(図13)に遷移する。そして、本シーケンスを終了する。
図13は、本実施形態において、PC101とデバイス102との通信の際にコミュニティ名の不一致が発生した際に表示する画面1300の一例である。画面1300は、PC101のモニタ201に表示され、PC101側のコミュニティ名の変更が可能である。ラジオボタン1301は、デバイス102のベンダーがデフォルトで設定しているコミュニティ名を使用するか、ユーザーが任意のコミュニティ名を指定するかを選択するための設定項目である。テキストボックス1302は、ユーザーが設定したい任意のコミュニティ名を指定するための設定項目である。リトライボタン1303は、ラジオボタン1301とテキストボックス1302で指定したコミュニティ名でデバイス102との通信を再度開始させるためのボタンである。ヘルプボタン1304は、各種ヘルプ情報を案内するマニュアルページ(不図示)をPC101のモニタ201に表示するためのボタンである。ここで図12の処理を経て表示された図13のヘルプボタン1304が押下されたケースについて説明する。ヘルプボタン1304が押下された場合、ヘルプ情報としては、例えば、デバイス102のコミュニティ名を変更するリモートUI(図14)へのアクセス方法、デバイス102側のコミュニティ名の設定方法などが表示される。
図14は、デバイス102のSNMPv1コミュニティ名の設定を変更するリモートUI画面1400の例を示す図である。リモートUI画面1400は、PC101のWebブラウザ(不図示)上に表示される。なお、リモートUI画面1400にて設定可能な情報は図14に示すものに限定するものではなく、他の情報を設定できてもよい。
(SNMPv1有効、SNMPv3無効の場合)
図15は、デバイス102のSNMPv3機能が無効である場合に、アプリケーション401がデバイス102を検索する際のシーケンスを示す。つまり、このシーケンスにおいては、SNMPv1機能は有効であるものとする。本シーケンスは、PC101およびデバイス102それぞれのCPUが対応するプログラムを読み出して実行することにより実現される。
S1501にて、アプリケーション401は、SNMPv3のリクエストパケットを生成し、HTTPパケットのボディ部に含める。なお、S1502~S1506は、SNMPのバージョンが異なる点を除いて基本的にS1102~S1106と同じ処理であるため詳細な説明は省略する。なお、アプリケーション401は、リクエストの目的により、S701を行うのか、S1501を行うのかを決定する。例えば、アプリケーション401がデバイス102のIPアドレスを取得する場合、暗号化する必要はないため、S701を実行する。つまり、アプリケーション401は、図7のようにSNMPv1のリクエストパケットを含むHTTPパケットをデバイス102に送信する。一方、アプリケーション401は、デバイス102が接続しているルーターのパスワードを取得する場合、暗号化する必要があるため、S1501を実行する。
S1507にて、アプリケーション401は、デバイス102から受信したHTTP応答パケット500を解析する。解析の結果、アプリケーション401は、HTTP応答パケット500のヘッダ部501にステータスコード“204 NoContent”がステータスとして設定されていることを確認する。このステータスコードが設定されていることにより、アプリケーション401は、送信したSNMPリクエストパケットに対応する機能(ここではSNMPv3機能)がデバイス102にて無効であると判定する。そして、アプリケーション401は、デバイス102がSNMPv3のレスポンスパケットを生成できない状態であるとみなす。アプリケーション401は、再度通信を行っても失敗することが明らかであるため、SNMPv3機能を用いた通信を再試行しない。
S1508にて、アプリケーション401は、SNMPv1のリクエストパケットをボディ部に含めたHTTPS(Hypertext Transfer Protocol Secure)パケットを代替として、デバイス102に送信する。これは、SNMPv3のパケットはセキュア情報を含める場合があるため、セキュリティを考慮してHTTPSによる暗号化された通信を用いる。なお、SNMPv3のパケットは暗号化して送信可能である。一方、SNMPv1のパケットは暗号化して送信することはできない。以降の処理であるS1509~S1514も、SNMPのバージョンが異なる点を除いて基本的にS1109~S1114と同じ処理であるため詳細な説明は省略する。
以上、図15によれば、アプリケーション401が、S1506で受信したHTTP応答パケット500のヘッダ部501に含まれるステータスコードにより、異なるバージョンのSNMPパケットが有効であることを認識できる。その結果、アプリケーション401が、S1008においてバージョンを変更して(図11ではv3からv1へ変更して)リクエストを試みるため、デバイス102から必要な情報を容易に取得することができる。この際、S1508にて、アプリケーション401は、SNMPv1のリクエストパケットをボディ部に含めたHTTPSパケットを使用するため、セキュリティの低下を軽減できる。
ここで他の処理についても説明する。例えば、アプリケーション401が、遠隔からデバイス102の設定変更を行うことも可能である。アプリケーション401は、例えば、設定変更情報を含むSNMPv3のリクエストパケットがボディ部に含まれたHTTPパケットをデバイス102に送信する。このHTTPパケットを受信したデバイス102は、設定変更処理を行うと共に、HTTP応答パケットを送信する。ここでのHTTP応答パケット500のヘッダ部501には、正常に通信可能であることを示すステータスコード“200 OK”がステータスとして設定される。続いてアプリケーション401は、SNMPv3のレスポンスパケットを取得するために、HTTPパケットをデバイス102に送信する。ここで、デバイス102が設定変更中である場合、デバイス102は設定変更中であることを示すステータスコードをHTTP応答パケット500のヘッダ部501に設定して、HTTP応答パケット500を送信する。アプリケーション401は、HTTP応答パケット500を解析することでデバイス102が設定変更中であると認識できる。この場合、アプリケーション401は、再度、SNMPv3のレスポンスパケットを取得するために、HTTPパケットをデバイス102に送信する。つまり、アプリケーション401は、SNMPレスポンスがHTTP応答パケット500に含まれない場合であってもリトライが必要な場合、アプリケーション401は適切にリトライ処理を実行することができる。
本実施形態により、アプリケーション401はデバイス102がSNMP応答パケットを生成できない原因を判明できる。これにより、不要なリトライ処理とリトライ処理が成功するまでユーザーを待機させる必要がなく、アプリケーション401は通信ができない旨をユーザーに通知して処理を終了することができる。その際、本実施形態では、図6のように、SNMP応答パケットを生成できない原因毎にHTTPの標準ステータスコードに紐付けて定義する。これにより、ステータスコードをアプリケーション401は、ステータスコードに合わせた代替処理(図11、図15)や、ユーザーへのPC101またはデバイス102の設定変更へ案内(図9、図13)することができる。また、アプリケーション401は、ステータスコードに基づいてリトライ処理を実行するか否かを切り替えることが可能となる。
また、図6のようにデバイスがSNMP応答パケットを生成できない原因をHTTPの標準ステータスコードで表現することは、SNMP応答パケットを包含するプロトコルに拡張ヘッダ機能を持たない場合でも対応できるメリットがある。なお、拡張ヘッダ機能を持たない場合の一例は、例えば、FTP(File Transfer Protocol)などが使用される場合である。
なお、本実施形態では、SNMPを生成できない原因を示すエラーが設定されたHTTP応答パケットを、アプリケーションからの2回目のHTTP応答パケットで返す例を示したが、これに限定するものではない。例えば、図7のS702のように、PCが送信する最初のHTTP送信パケットに対するHTTP応答パケットで、SNMPを生成できない原因を示すエラーを返してもよい。
<第2の実施形態>
第1の実施形態では、デバイスがSNMP応答パケットを生成できない原因をHTTPの標準ステータスコードに対応付けて表現していた。第1の実施形態のように標準ステータスコードでエラータイプを通知した場合、アプリケーションが適切にエラーを判定できないケースもある。
例えば、デバイスにHTTPの機能で、デバイスにアクセスできるPCを制限する機能があるとする。そして、既にアクセス制限されたPCが、SNMPリクエストパケットが含まれたHTTPパケットをデバイスに送信したとする。この場合、PCはデバイスからのHTTP応答パケットのヘッダにステータスコード“403 Forbidden”が含まれたHTTP応答パケットを受信する。しかし、PC側は、デバイスにHTTP通信によるアクセス制限が設定されているため通信できないことを示す通信エラーなのか、SNMPv1/v3が共に無効を示しているのか判定できない。また、このような例に限らず、HTTPとSNMPとのステータスコードを1つのヘッダで表現すると、どちらのプロトコルのエラーなのかをPC上では判定が困難となる。
本発明の第2の実施形態では、HTTPによるエラーなのか、または、SNMPによるエラーなのかを判定できる形態について図を用いて説明する。なお、第1の実施形態と重複する構成については説明を省略する。
[パケット構成]
図16は、本実施形態に係る、デバイス102が生成するSNMPレスポンスパケットが含まれたHTTP応答パケットの構成例を示す図である。HTTP応答パケット1600のボディ部1604にはSNMPレスポンスパケットを組み込む。HTTP応答パケットのヘッダ部1601は、ステータス部1602と拡張部1603が設けられる。ステータス部1602では、HTTP層で発生したエラーを表現する。拡張部1603では、SNMPレスポンスパケットを生成できない原因を示すステータスコードをHTTPのカスタムヘッダ機能を用いて表現する。なお、図17にて後述するようなテーブルをPC101とデバイス102が備える。そのため、例えば、PC101は、デバイス102から受信したHTTP応答パケット500の拡張部1603に含まれるステータスコードからデバイスの状態を認識できる。
図17は、本実施形態に係るHTTP応答パケット1600の拡張部1603で表現するステータスコードの対応表の一例である。本実施形態においては、SNMPレスポンスパケットを生成できない各原因をHTTPの標準ステータスコードと切り分けられるよう、HTTPのカスタムヘッダ機能を用いて独自のステータスコードで表現する。なお、ステータス部1602には、HTTPの標準ステータスコードが設定されるものとする。
[シーケンス]
(アクセス制限がされている場合)
図18は、本実施形態に係るHTTPアクセス制限によってPC101がデバイス102と通信できない時のシーケンスを示す。本シーケンスは、PC101およびデバイス102それぞれのCPUが対応するプログラムを読み出して実行することにより実現される。
S1801にて、アプリケーション401は、SNMPv1のリクエストパケットを生成し、HTTPパケットのボディ部に含める。そして、アプリケーション401は、生成したHTTPパケットをデバイス102に送信する。このとき、PC101のモニタ201には、現在、PC101がデバイス102と通信中であることを示す画面800をアプリケーション401が表示する。
S1802にて、デバイス102は、S1801にて受信したHTTPパケットに対するHTTP応答パケットを生成する。このとき、デバイス102は、HTTPアクセスが拒否された旨を示すステータスコード“403 Forbidden”をHTTP応答パケット1600のヘッダ部1601のステータス部1602に設定する。
S1803にて、デバイス102は、S1802にて生成したHTTP応答パケット1600をPC101に送信する。
S1804にて、アプリケーション401は、デバイス102から受信したHTTP応答パケット1600を解析する。解析の結果、アプリケーション401は、HTTP応答パケット1600のヘッダ部1601のステータス部1602にステータスコード“403 Forbidden”が設定されていることを確認する。アプリケーション401は、HTTP応答パケット1600のヘッダ部1601のステータス部1602にステータスコード“403 Forbidden”が設定されていることにより、デバイス102側でHTTPアクセス制限がかけられていることを判定する。アプリケーション401は、HTTP通信を再度行っても失敗することが明らかであるため、通信を再試行せず失敗と判定する。
S1805にて、アプリケーション401は、デバイス102との通信に失敗した旨を示す画面900を表示する。そして、本シーケンスを終了する。なお、上記では、SNMPv1のパケットを用いた例を示したが、SNMPv3においても同様のシーケンスとなる。
図19は、デバイス102のHTTP設定を変更するリモートUIの構成例を示す図である。図18のS1805のときに、画面900がPC101のモニタ201に表示されたとする。このとき、ユーザーが画面900のヘルプボタン902を押下すると、デバイス102のHTTPアクセス制限の確認方法が記載されたマニュアル(不図示)が表示される。ユーザーは、マニュアル(不図示)の案内に従って、図19のリモートUI画面1900を表示させ、設定内容の確認や設定変更を行うことが可能である。リモートUI画面1900は、PC101のWebブラウザ(不図示)上に表示される。なお、リモートUI画面1900にて設定可能な情報は図19に示すものに限定するものではなく、他の情報を設定できてもよい。ユーザーは、図19のリモートUI画面を使って、PC101に対応する識別情報を選択して削除ボタンを押下することにより、デバイス102に設定されているPC101のアクセス制限を解除できる。
(SNMPv1/v3が無効の場合)
図20は、デバイス102のSNMPv1/v3機能が共に無効である場合に、PC101がデバイス102を検索する際のシーケンスを示す。ここでは、SNMPv1の要求を行う場合を例に挙げて説明する。本シーケンスは、PC101およびデバイス102それぞれのCPUが対応するプログラムを読み出して実行することにより実現される。
S2001にて、アプリケーション401は、SNMPv1のリクエストパケットを生成し、HTTPパケットのボディ部に含める。そして、アプリケーション401は、生成したHTTPパケットをデバイス102に送信する。このとき、PC101のモニタ201には、現在、PC101がデバイス102と通信中であることを示す画面800をアプリケーション401が表示する。
S2002にて、デバイス102は、S2001のHTTPパケットに対するHTTP応答パケットをPC101に送信する。ここでのHTTP応答パケットのヘッダ部には、正常に通信可能であることを示す“200 OK”がステータスとして設定される。
S2003にて、アプリケーション401は、デバイス102からのHTTP応答パケットを解析する。解析の結果、アプリケーション401は、HTTP応答パケットのステータスに“200 OK”が設定されていることを確認する。
S2004にて、アプリケーション401は、SNMPレスポンスパケットを取得するために、HTTPパケットをデバイス102に送信する。
S2005にて、デバイス102は、S2004にて受信したパケットに対するHTTP応答パケットを生成する。このとき、デバイス102は、デバイス102のSNMPv1/v3機能が共に無効に設定されている。そのため、SNMP応答パケットの生成に失敗した旨を示すステータスコード“551 SNMP Invalid“がHTTP応答パケット1600のヘッダ部1601の拡張部1603に設定される。
S2006にて、デバイス102は、S2005にて生成したHTTP応答パケット1600をPC101に送信する。
S2007にて、アプリケーション401は、デバイス102から受信したHTTP応答パケット1600を解析する。アプリケーション401は、解析の結果、HTTP応答パケット1600のヘッダ部1601の拡張部1603にステータスコード“551 SNMP Invalid”がステータスとして設定されていることを確認する。これにより、アプリケーション401は、デバイス102のSNMPv1/v3機能が共に無効のためSNMPレスポンスパケットを生成できない状態であるとみなす。このため、アプリケーション401は再度通信を行っても失敗することが明らかなので、通信を再試行せず失敗と判定する。
S2008にて、アプリケーション401は、デバイス102との通信を再試行せず、デバイスとの通信に失敗した旨を示す画面900を表示する。そして、本シーケンスを終了する。なお、上記では、SNMPv1のパケットを用いた例を示したが、SNMPv3においても同様のシーケンスとなる。
以上、本実施形態では、HTTPで発生したエラーをHTTP標準ステータスコード、SNMPで発生したエラーをHTTPのカスタムヘッダ機能を用いて独自ステータスコードで表現する。これにより、第1の実施形態の効果に加え、HTTPとSNMPのどちらで発生したエラーかを適切に通知することができる。
<その他の実施形態>
上記の実施形態では、デバイスの情報管理用プロトコルにSNMPのパケットを包含し、通信するプトロコルにHTTPを用いた例を示したが、これに限定するものではない。例えば、TCPのみサポートしているIMAP(Internet Message Access Protocol)パケットをSNMPのようなUDP(User Datagram Protocol)をサポートするプロトコルで包含する。これにより、TCPによる通信ができない環境でも、UDPを用いてデバイスと通信できる効果がある。このように、デバイスとの情報の送受信と、PCとデバイスとの通信が可能であれば他の標準プロトコル、または、デバイスベンダー独自で定義したプロトコルに適用してもよい。
また、上記の実施形態では、PCとデバイス間をネットワークインターフェース経由で通信する例を示したが、これに限定するものではない。例えば、USB(Universal Serial Bus)インターフェースを経由(以下、USB経由)してSNMPやHTTPパケットを用いての通信が可能であれば、USB経由でもよい。特にUSB経由の場合、以下のような効果が期待できる。例えば、USBドライバを未インストールのPC上で動作するアプリケーション401が、USB経由でデバイスと通信する。このとき、デバイスをUSBケーブルで接続した瞬間、PC側ではUSBドライバのインストールが開始する場合がある。PCは、USB経由でデバイスと通信するために、USBドライバのインストールが完了するまでUSB通信を待機しなくてはならない。この場合、USBドライバのインストールが完了するまではデバイス検索処理の結果として0台がHTTPライブラリ403からアプリケーション401に通知される。この場合、アプリケーション401は、デバイス検索処理のリトライを実行する。このように、USB経由の場合、デバイスと通信するためにPC側で必要な処理待ちがある。一方、USBドライバがインストール済みのPC上で動作するアプリケーションが、SNMPパケットを生成できない状態のデバイスと通信する場合、アプリケーション401は、デバイスがSNMPパケットを生成できない理由を認識できる。その結果、アプリケーション401は、リトライ処理をするか否かを決めることができ、リトライ処理が不要な場合、次の処理へと進むことができる。以上により、PC側での不要な処理待ちを回避できる。つまり、本発明により、PC側は必要な処理待ちと不要な処理待ちを判別できる効果が期待される。
また、上記の実施形態では、デバイスのSNMP機能無効やコミュニティ名の不一致など、SNMP標準エラーでは表現できない状態をHTTPヘッダで表現する例を示したが、これに限定するものではない。例えば、SNMP標準エラー(tooBig、noSuchNameなど)もSNMPパケットを組み込む上位プロトコルのヘッダ情報などで表現してもよい。これにより、HTTPのボディ部にSNMPの応答パケットを組み込む必要がなくなるため、パケットサイズ・通信量の削減が期待できる。
また、デバイス102は、上述した装置の他に、例えば、デジタルカメラやスピーカなどPCと通信可能な装置であってもよい。
本発明は上述の実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101…PC、102…デバイス、104…ネットワーク、401…アプリケーション、402…SNMPライブラリ、403…HTTPライブラリ

Claims (13)

  1. 装置間の通信方法であって、
    第1の装置において、第1のプロトコルによる第1のパケットを含む第2のプロトコルによる第2のパケットを生成する生成工程と、
    前記第1の装置において、前記生成工程にて生成された第2のパケットを第2の装置に送信する送信工程と、
    前記第2の装置において、前記第2のパケットを受信する受信工程と、
    前記第2の装置において、前記第2のパケットに含まれる前記第1のパケットに対する前記第1のプロトコルによる応答が可能か否かを判定する判定工程と、
    前記第2の装置において、前記第1のパケットに対する前記第1のプロトコルによる応答が不可であると判定された場合、当該応答が不可である原因に対応するステータス情報を前記第2のパケットに対する応答パケットに含めて前記第1の装置に送信する応答工程と
    を有し、
    前記第2のプロトコルにて用いられる標準ステータスコードと、前記第1のプロトコルによる応答が不可である原因とが対応づけて定義されており、
    前記応答工程では、前記ステータス情報として当該標準ステータスコードを前記第2のパケットに対する前記応答パケットに含めて前記第1の装置に送信する、
    ことを特徴とする通信方法。
  2. 前記第1の装置において、前記応答パケットに含まれるステータス情報に応じて、当該ステータス情報に対応付けて定義された処理を実行する実行工程を更に有することを特徴とする請求項1に記載の通信方法。
  3. 前記処理は、前記第2の装置への前記第2のパケットの再送を行うか否かをユーザーに確認する処理であることを特徴とする請求項2に記載の通信方法。
  4. 前記処理は、前記第2の装置への前記第2のパケットの送信を再試行せず、通信を中断する処理であることを特徴とする請求項2または3に記載の通信方法。
  5. 前記処理は、前記第1の装置または前記第2の装置における前記第1のプロトコルに関する設定変更をユーザーに案内する処理であることを特徴とする請求項2乃至4のいずれか1項に記載の通信方法。
  6. 前記応答パケットに含まれる前記ステータス情報が前記第1のパケットに対応する前記第1のプロトコルのバージョンが無効化されていることを示すステータス情報である場合、前記処理は、前記第1のプロトコルの異なるバージョンによる第3のパケットを含む前記第2のプロトコルによるパケットを再送する処理であることを特徴とする請求項2乃至5のいずれか1項に記載の通信方法。
  7. 前記応答パケットに含まれる前記ステータス情報が前記第1のパケットに対応する前記第1のプロトコルの第1バージョンが無効化されていることを示すステータス情報である場合、前記処理は、前記第2のプロトコルによる暗号化の機能を用いて、前記第1のプロトコルの異なる第2バージョンによる第3のパケットを含むパケットを再送する処理であり、
    前記第1のプロトコルの前記第1バージョンは前記第1のパケットを暗号化して送信可能であり、
    前記第1のプロトコルの前記第2バージョンは前記第1のパケットを暗号化せずに送信することを特徴とする請求項2乃至6のいずれか1項に記載の通信方法。
  8. 前記応答パケットは、ヘッダ部とボディ部とから構成され、
    前記標準ステータスコードは、前記ヘッダ部に含められ、
    前記第1のプロトコルによるパケットは、前記ボディ部に含められることを特徴とする請求項1乃至7のいずれか一項に記載の通信方法。
  9. 前記第1のプロトコルは、SNMP(Simple Network Management Protocol)であり、
    前記第2のプロトコルは、HTTP(HyperText Transfer Protocol)であることを特徴とする請求項1乃至のいずれか一項に記載の通信方法。
  10. 第1のプロトコルおよび第2のプロトコルを用いて外部装置と通信可能な情報処理装置であって、
    前記第1のプロトコルによる第1のパケットを含む第2のプロトコルによる第2のパケットを生成する生成手段と、
    前記生成手段にて生成された第2のパケットを前記外部装置に送信する送信手段と、
    前記第1のパケットに対する応答が不可である原因に対応するステータス情報を含む、前記第2のパケットに対する応答パケットを前記外部装置から受信する受信手段と
    前記応答パケットに含まれるステータス情報に応じて、当該ステータス情報に対応付けて定義された処理を実行する実行手段と
    を有し、
    前記第2のプロトコルにて用いられる標準ステータスコードと、前記第1のプロトコルによる応答が不可である原因とが対応づけて定義されており、
    前記ステータス情報としての当該標準ステータスコードが前記第2のパケットに対する前記応答パケットに含まれる、
    ことを特徴とする情報処理装置。
  11. 第1のプロトコルおよび第2のプロトコルを用いて外部装置と通信可能な情報処理装置であって、
    前記第1のプロトコルによる第1のパケットを含む前記第2のプロトコルによる第2のパケットを前記外部装置から受信する受信手段と、
    前記第2のパケットに含まれる前記第1のパケットに対する前記第1のプロトコルによる応答が可能か否かを判定する判定手段と、
    前記第1のパケットに対する前記第1のプロトコルによる応答が不可であると判定された場合、当該応答が不可である原因に対応するステータス情報を前記第2のパケットに対する応答パケットに含めて前記外部装置に送信する応答手段と
    を有し、
    前記第2のプロトコルにて用いられる標準ステータスコードと、前記第1のプロトコルによる応答が不可である原因とが対応づけて定義されており、
    前記応答手段は、前記ステータス情報として当該標準ステータスコードを前記第2のパケットに対する前記応答パケットに含めて前記外部装置に送信する、
    ことを特徴とする情報処理装置。
  12. コンピュータを、
    第1のプロトコルによる第1のパケットを含む第2のプロトコルによる第2のパケットを生成する生成手段、
    前記生成手段にて生成された第2のパケットを外部装置に送信する送信手段、
    前記第1のパケットに対する応答が不可である原因に対応するステータス情報を含む、前記第2のパケットに対する応答パケットを前記外部装置から受信する受信手段
    前記応答パケットに含まれるステータス情報に応じて、当該ステータス情報に対応付けて定義された処理を実行する実行手段
    として機能させ
    前記第2のプロトコルにて用いられる標準ステータスコードと、前記第1のプロトコルによる応答が不可である原因とが対応づけて定義されており、
    前記ステータス情報としての当該標準ステータスコードが前記第2のパケットに対する前記応答パケットに含まれる、
    ことを特徴とするプログラム。
  13. コンピュータを、
    第1のプロトコルによる第1のパケットを含む第2のプロトコルによる第2のパケットを外部装置から受信する受信手段、
    前記第2のパケットに含まれる前記第1のパケットに対する前記第1のプロトコルによる応答が可能か否かを判定する判定手段、
    前記第1のパケットに対する前記第1のプロトコルによる応答が不可であると判定された場合、当該応答が不可である原因に対応するステータス情報を前記第2のパケットに対する応答パケットに含めて前記外部装置に送信する応答手段
    として機能させ
    前記第2のプロトコルにて用いられる標準ステータスコードと、前記第1のプロトコルによる応答が不可である原因とが対応づけて定義されており、
    前記応答手段は、前記ステータス情報として当該標準ステータスコードを前記第2のパケットに対する前記応答パケットに含めて前記外部装置に送信する、
    ことを特徴とするプログラム。
JP2018240141A 2018-12-21 2018-12-21 通信方法、情報処理装置、およびプログラム Active JP7256638B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018240141A JP7256638B2 (ja) 2018-12-21 2018-12-21 通信方法、情報処理装置、およびプログラム
US16/707,409 US11533218B2 (en) 2018-12-21 2019-12-09 Communication method and control method in information processing apparatus
US17/981,633 US20230130804A1 (en) 2018-12-21 2022-11-07 Communication method and control method in information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018240141A JP7256638B2 (ja) 2018-12-21 2018-12-21 通信方法、情報処理装置、およびプログラム

Publications (2)

Publication Number Publication Date
JP2020102038A JP2020102038A (ja) 2020-07-02
JP7256638B2 true JP7256638B2 (ja) 2023-04-12

Family

ID=71099366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018240141A Active JP7256638B2 (ja) 2018-12-21 2018-12-21 通信方法、情報処理装置、およびプログラム

Country Status (2)

Country Link
US (2) US11533218B2 (ja)
JP (1) JP7256638B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11297058B2 (en) * 2016-03-28 2022-04-05 Zscaler, Inc. Systems and methods using a cloud proxy for mobile device management and policy
US11616781B2 (en) * 2017-12-05 2023-03-28 Goldilock Secure s.r.o. Air gap-based network isolation device
JP7256638B2 (ja) * 2018-12-21 2023-04-12 キヤノン株式会社 通信方法、情報処理装置、およびプログラム
US20230379300A1 (en) * 2022-05-19 2023-11-23 Cisco Technology, Inc. Authorization and audit control in a multi-protocol iot domain

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040019636A1 (en) 2002-07-24 2004-01-29 Sun Microsystems, Inc. System and method for dynamically routing web procedure calls
JP2007535190A (ja) 2004-04-20 2007-11-29 松下電器産業株式会社 通信ネットワークシステム、及び通信装置
JP2010108397A (ja) 2008-10-31 2010-05-13 Brother Ind Ltd 情報処理装置
JP2010273297A (ja) 2009-05-25 2010-12-02 Ntt Docomo Inc 中間サーバ装置、送信サーバ装置、通信システム、及び通信方法
JP2011254196A (ja) 2010-06-01 2011-12-15 Hitachi Ltd ネットワークシステム、ネットワーク管理装置及びゲートウェイ装置
JP2016116104A (ja) 2014-12-16 2016-06-23 Kddi株式会社 ユーザデータを用いて通信帯域を計測するプログラム、サーバ、システム及び方法
US20170019365A1 (en) 2015-07-14 2017-01-19 Kyocera Document Solutions Inc. Communication Between Peripheral Device and Client Device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812847A (en) * 1996-02-02 1998-09-22 International Business Machines Corporation Rule-based method for designing user interfaces for applications
US7093008B2 (en) * 2000-11-30 2006-08-15 Intel Corporation Communication techniques for simple network management protocol
US7167470B2 (en) * 2001-03-15 2007-01-23 American Express Travel Related Services Company, Inc. Method and apparatus for locating a communication device using local area network switch information
US7739346B1 (en) * 2004-01-20 2010-06-15 Marvell International Ltd. Method and apparatus for specification of transaction failures in a network management protocol
US7877469B2 (en) * 2006-02-01 2011-01-25 Samsung Electronics Co., Ltd. Authentication and authorization for simple network management protocol (SNMP)
JP4229163B2 (ja) * 2006-09-27 2009-02-25 ブラザー工業株式会社 情報処理装置およびプログラム
US20120198082A1 (en) * 2011-01-27 2012-08-02 Joseph Gaertner Automatic Fallback Communication Mechanism
JP7256638B2 (ja) * 2018-12-21 2023-04-12 キヤノン株式会社 通信方法、情報処理装置、およびプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040019636A1 (en) 2002-07-24 2004-01-29 Sun Microsystems, Inc. System and method for dynamically routing web procedure calls
JP2007535190A (ja) 2004-04-20 2007-11-29 松下電器産業株式会社 通信ネットワークシステム、及び通信装置
JP2010108397A (ja) 2008-10-31 2010-05-13 Brother Ind Ltd 情報処理装置
JP2010273297A (ja) 2009-05-25 2010-12-02 Ntt Docomo Inc 中間サーバ装置、送信サーバ装置、通信システム、及び通信方法
JP2011254196A (ja) 2010-06-01 2011-12-15 Hitachi Ltd ネットワークシステム、ネットワーク管理装置及びゲートウェイ装置
JP2016116104A (ja) 2014-12-16 2016-06-23 Kddi株式会社 ユーザデータを用いて通信帯域を計測するプログラム、サーバ、システム及び方法
US20170019365A1 (en) 2015-07-14 2017-01-19 Kyocera Document Solutions Inc. Communication Between Peripheral Device and Client Device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
鶴長 鎮一 Shinichi TSURUNAGA,10年先も役立つ!! Web技術入門 TCP/IP HTTP URL HTML,WEB+DB PRESS Vol.80 ,日本,(株)技術評論社,2014年05月25日,第80巻,p.29-35

Also Published As

Publication number Publication date
US20230130804A1 (en) 2023-04-27
US20200204435A1 (en) 2020-06-25
US11533218B2 (en) 2022-12-20
JP2020102038A (ja) 2020-07-02

Similar Documents

Publication Publication Date Title
JP7256638B2 (ja) 通信方法、情報処理装置、およびプログラム
US8879089B2 (en) Image output apparatus, method for outputting image, and storage medium
US10694073B2 (en) Multi-function peripheral, system including the multi-function peripheral, information processing apparatus, method of controlling the same, and storage medium
US10225254B2 (en) Server transmitting device information assigned to service identification information
WO2011152026A1 (en) User device identifying method and information processing system
EP1659770A1 (en) Data processing system, data processing device and data processing program
JP5264433B2 (ja) 画像形成装置及びデータ処理方法
JP6971597B2 (ja) 情報処理装置、表示制御方法、及びプログラム
JP2008140192A (ja) 印刷システム、印刷装置、端末装置、印刷設定方法及び印刷設定プログラム
JP2010009318A (ja) 画像処理システム、その制御方法、コンピュータプログラム及び記憶媒体
JP6798226B2 (ja) 通信装置
JP2005218036A (ja) ネットワークサーバ
JP7317591B2 (ja) 印刷装置、印刷装置の制御方法及びプログラム
JP5524723B2 (ja) 画像読取システム、サーバ装置、画像読取装置、画像読取方法、制御方法、及びプログラム
JP4154316B2 (ja) 画像処理システム、制御方法、画像処理装置、プログラムおよび記憶媒体
JP2008262409A (ja) 情報処理装置、画像処理装置及びその制御方法、並びにプログラム
JP2008283468A (ja) 画像形成装置、画像形成装置の制御方法およびプログラム
CN105827883B (zh) 信息处理系统
CN114063940A (zh) 图像处理装置、控制方法和非暂时性存储介质
JP5424680B2 (ja) 通信装置及びその制御方法、並びにプログラム
JP2015225479A (ja) 情報処理システム、情報処理装置、情報処理方法、及びコンピュータプログラム
US20170353616A1 (en) Authentication control apparatus, image reading apparatus, and non-transitory computer readable medium
JP2010286890A (ja) デバイス管理装置、制御方法、及びプログラム
JP2017098828A (ja) 情報処理システム、携帯端末、設定プログラム、画像処理装置、及び情報処理プログラム
JP6870237B2 (ja) 情報処理システム、情報処理装置、及び情報処理方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230331

R151 Written notification of patent or utility model registration

Ref document number: 7256638

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151