<概要>
まず、以下に示す実施形態に係る通信制御装置70の概要を説明し、その後により詳細な実施形態を説明する。通信制御装置70は、複数のコンポーネントの間の通信を制御する。コンポーネントとは、通信制御装置70を具備する通信システム1の構成機器を示す。通信制御装置70は、複数のコンポーネントの間の通信において送信元のコンポーネントから送信先のコンポーネントに送信された送信情報を取得し、取得された送信情報の内容に基づいて送信情報を変更し、変更された送信情報を送信先に送信する。
より具体的には、通信制御装置70は、送信元のコンポーネントと送信先のコンポーネントとが異なる通信規格に対応している場合、送信元のコンポーネントから送信された情報の通信規格を送信先のコンポーネントの通信規格に変更し、送信先のコンポーネントに送信する。また、通信制御装置70は、送信元のコンポーネントから送信された送信情報の内容(例えば、送信先のコンポーネントに要求する処理を示す情報等)に基づいて、送信情報の内容を変更する。
送信内容の変更とは、例えば、送信元のコンポーネントから送信先のコンポーネントに要求する処理が、送信情報の内容においてポイント毎に指定されている場合、通信システム1がポイント毎にアクセスが許可されているか否かを判定し、アクセスが許可されていない場合、アクセスが許可されていないポイントに係る記述を送信情報の内容から削除することを示す。
これらにより、通信制御装置70は、詳細なアクセス制御を行うことができる。
<第1実施形態>
以下、本発明の第1実施形態について、図面を参照して説明する。図1は、第1実施形態に係る通信制御装置70を具備する通信システム1のシステム構成の一例を示す図である。通信システム1は、複数のコンポーネントを具備する。複数のコンポーネントとは、例えば、デバイス10と、ゲートウェイ20と、ゲートウェイ20Xと、ストレージ30と、ストレージ30Xと、他規格コンポーネント35と、アプリケーション40と、レジストリ50と、RAM(Resource Access Manager)60である。なお、複数のコンポーネントには、これらと異なる他のコンポーネントが含まれていてもよい。また、デバイス10とゲートウェイ20の間は、デバイスが接続できるフィールドバスのプロトコル(TCP/IPに限らない)で接続されている構成であればよい。ゲートウェイ20と通信制御装置70の間は、TCP/IPネットワークで接続されていればよく、例えば、前記の間にスイッチングハブ等が接続されていてもかまわない。
通信システム1は、例えば、デバイス10と接続されたゲートウェイ20と、ストレージ30と、ストレージ30Xと、他規格コンポーネント35と、アプリケーション40と、レジストリ50と、RAM60がネットワークNWを介して相互に連携するM2M(Machine to Machine)システムである。
ネットワークNWとは、TCP(Transmission Control Protocol)/IP(Internet Protocol)に準拠したインターネット等のパケット交換ネットワークであるが、これに代えて、接続された各種のコンポーネント同士が通信可能に接続する通信路であれば他の何らかのネットワークであってもよい。
以下では、通信システム1が具備する複数のコンポーネントを区別する必要が無い場合、まとめて単にコンポーネントと称して説明する。コンポーネントは、構成機器の一例である。また、コンポーネントのうち、通信制御装置70により管理されるコンポーネントを管理コンポーネントと称して説明する。具体的には、管理コンポーネントとは、通信制御装置70に予め記憶される管理情報に記憶されているコンポーネントを示す。また、通信制御装置70によりネットワークNWを介して通信可能であることが把握されているコンポーネントを把握コンポーネントと称して説明する。具体的には、把握コンポーネントとは、通信制御装置70に予め記憶される把握情報に記憶されているコンポーネントを示す。
通信システム1が具備するコンポーネントは、IEEE(The Institute of Electrical and Electronics Engineers)1888.3(通信規格IEEE1888にセキュリティ<SSL(Secure Sockets Layer)やアクセス制御等>の実装や運用方法を(追加)規定したもの)に基づく通信(以下、IEEE1888.3通信と称する)と、通信規格IEEE1888に基づく通信(以下、IEEE1888通信と称する)と、通信規格IEEE1888とは異なる通信規格に基づく通信(以下、他規格通信と称する)のうちいずれか1つ又はこれらを任意に組み合わせた通信を行う。なお、以下では、説明の便宜上、IEEE1888.3も通信規格の1つとして説明するが、上述したように、IEEE1888.3は、通信規格IEEE1888に対するセキュリティの実装や運用方法を規定したものである。IEEE1888、IEEE1888.3はそれぞれ、通信規則の一例である。
なお、IEEE1888通信又はIEEE1888.3通信を行うコンポーネントは、すべて同じインターフェースを備えており、HTTP(HyperText Transfer Protocol)/XML(Extensible Markup Language)形式に基づく情報を送受信することで遠隔手続き呼び出しをベースに各種の処理を行う。以下では、IEEE1888通信又はIEEE1888.3通信により送信される送信情報の内容は、すべてHTTP/XML形式で記述されているとして説明する。なお、送信情報は、送信された信号の一例である。また、送信情報の内容は、信号に含まれる情報の一例である。
また、各コンポーネントは、ポート80又はポート8080によってIEEE1888通信を行う構成とするが、これに代えて、他の番号のポートによってIEEE1888通信を行う構成であってもよい。また、各コンポーネントは、ポート443及びポート8443によってIEEE1888.3通信を行う構成とするが、これに代えて、他の番号のポートによってIEEE1888通信を行う構成であってもよい。また、各コンポーネントは、ポート80、8080、443、8443とは異なるポートによって他規格通信を行う構成として説明するが、これに代えて、ポート80、8080、443、8443のうちの少なくとも1つ以上のポートによって他規格通信を行う構成であってもよい。
デバイス10は、例えば、電力センサーや温度センサー等のセンサー機器や、スマートタップ、スマートメーター、空調機器等の電源や温度制御等が可能なアクチュエーター等である。デバイス10は、ゲートウェイ20と有線又は無線によって通信可能に接続され、ゲートウェイ20から各種の制御情報を取得することで動作する。デバイス10は、ゲートウェイ20とIEEE1888通信を行う構成であるとするが、これに代えて、ゲートウェイ20が対応する他の何らか通信規格に基づく通信を行う構成であってもよい。
デバイス10により取得される測定値(例えば、電力センサーが測定する電力や温度センサーが測定する温度等)や、デバイス10に設定される制御値(例えば、温度制御が可能なアクチュエーターに設定する温度等)は、デバイス10に接続されたゲートウェイ20を介して各コンポーネントにより制御(入力、出力、更新等)される。以下では、前記の測定値や制御値を示す情報であって、それぞれの測定値や制御値を識別する情報をポイントと称して説明する。ポイントは、データの一例である。
ポイントには、URI(Uniform Resource Identifier)が割り振られる。各コンポーネントは、URIを用いて各種のポイントにアクセス(入力、出力、更新等)する。例えば、各コンポーネントは、ポイントが示す計測値を取得し、あるいはポイントが示す制御値を更新(変更)する。なお、コンポーネント及びポイントの概念は、通信規格IEEE1888に基づくものである。
ゲートウェイ20は、通信制御装置70により管理される管理コンポーネントである。ゲートウェイ20は、デバイス10と有線又は無線によって通信可能に接続され、デバイス10を制御する。本実施形態において、ゲートウェイ20は、1つのデバイス10と接続される構成とするが、これに代えて、複数のデバイス10と接続される構成であってもよい。また、ゲートウェイ20は、通信制御装置70と有線又は無線によって通信可能に接続され、通信制御装置70を介してネットワークNWに接続された他のコンポーネントと通信を行う。
ゲートウェイ20は、デバイス10及び通信制御装置70とIEEE1888通信を行う。ゲートウェイ20は、自装置のコンポーネント情報や、自装置に接続されたデバイス10に係るポイント情報の登録、更新、削除の要求をレジストリ50に出力する。コンポーネント情報とは、例えば、コンポーネントを識別する情報や、コンポーネントが通信に用いるポート番号、コンポーネントを示すURI等を含む情報である。
コンポーネントを識別する情報とは、例えば、IPアドレスであるが、これに代えて、MAC(Media Access Control)アドレス等でもよい。ポイント情報とは、各種のポイントを示すURIや、ポイントが示す測定値、ポイントが示す制御値等を含む情報である。
また、ゲートウェイ20は、レジストリ50に通信対象となるコンポーネントのコンポーネント情報や、ポイントのポイント情報を検索させ、検索結果をレジストリ50から取得する。また、ゲートウェイ20は、他のコンポーネントからの要求に従い、ポイントが示す制御値を更新する。また、ゲートウェイ20は、他のコンポーネントからの要求に従い、ポイントが示す測定値を要求元のコンポーネントに出力する。
ゲートウェイ20Xは、ゲートウェイ20と同様の機能を有し、ネットワークNWを介して他のコンポーネントとIEEE1888通信を行う。
ストレージ30は、通信制御装置70によりネットワークNWを介して通信可能であることが把握されている把握コンポーネントである。ストレージ30は、他のコンポーネントから各種のストレージ情報を記憶し、他のコンポーネントからの要求に応じてストレージ情報の検索や登録、更新、出力を行う。ストレージ情報とは、例えば、ゲートウェイ20に接続されたデバイス10に係るポイントのポイント情報や、アプリケーション40により生成・加工された各種のアプリ情報である。アプリ情報とは、例えば、HTML(HyperText Markup Language)やCSS(Cascading Style Sheets)等によって生成された画面情報や、加工前後の画像を表す情報等である。
ストレージ30は、自装置のコンポーネント情報や、自装置が記憶するポイント情報の登録、更新、削除の要求をレジストリ50に出力する。また、ストレージ30は、レジストリ50に通信対象となるコンポーネントのコンポーネント情報や、ポイントのポイント情報を検索させ、検索結果をレジストリ50から取得する。ストレージ30は、ネットワークNWを介して他のコンポーネントとIEEE1888.3通信を行う。
ストレージ30Xは、ストレージ30と同様の機能を有し、ネットワークNWを介して他のコンポーネントとIEEE1888通信を行う。
他規格コンポーネント35は、他規格通信を行う各種のコンポーネントである。
アプリケーション40は、ゲートウェイ20やストレージ30から各種の情報を取得し、取得された情報を表示することや、取得された情報の加工等を行う。また、アプリケーション40は、自装置により加工された情報を他のコンポーネントに出力する。また、アプリケーション40は、ゲートウェイ20に接続されたデバイス10を動作させるための制御情報をゲートウェイ20に出力する。また、アプリケーション40は、レジストリ50に通信対象となるコンポーネントのコンポーネント情報や、ポイントのポイント情報を検索させ、検索結果をレジストリ50から取得する。
なお、アプリケーション40は、ネットワークNWを介して他のコンポーネントとIEEE1888.3通信を行う。
レジストリ50は、通信システム1におけるコンポーネントのコンポーネント情報や、ポイントのポイント情報の一部又は全部を記憶する。換言すると、レジストリ50は、通信システム1のネットワークトポロジーの管理(登録、更新、削除、検索等)を行う。より具体的には、レジストリ50は、各種のコンポーネントからの要求に従い、コンポーネント情報やポイント情報の登録、更新、削除を行う。
また、レジストリ50は、他のコンポーネントからの要求に従い、記憶しているコンポーネント情報やポイント情報を検索し、検索結果を要求元のコンポーネントに出力する。レジストリ50は、ネットワークNWを介して他のコンポーネントとIEEE1888通信を行う。
RAM60は、他のコンポーネントからの要求に従い、要求元のコンポーネントに応じたACL(Access Control List)を、要求元のコンポーネントに出力する。ACLとは、例えば、ある特定のコンポーネントに対してアクセス権を有するコンポーネントを示す情報又はアクセス権を有しないコンポーネントを示す情報のうちいずれか一方又は両方の一覧である。また、RAM60は、他のコンポーネントからの要求に従い、ACLの登録、更新、削除を行う。RAM60は、ネットワークNWを介して他のコンポーネントとIEEE1888通信を行う。
通信制御装置70は、例えば、ゲートウェイ20とネットワークNW(又はゲートウェイ20とは異なる他のコンポーネント)との間に介挿される。通信制御装置70は、ゲートウェイ20と有線又は無線により通信可能に接続される。また、通信制御装置70は、ネットワークNWを介して他のコンポーネントと通信可能に接続される。通信制御装置70は、IEEE1888通信と、IEEE1888.3通信と、他規格通信とをそれぞれ異なるポートによって行う。通信制御装置70は、ゲートウェイ20と、ゲートウェイ20の通信対象である他のコンポーネントとの間の通信を中継する。
通信制御装置70は、前記の通信を中継する際、中継する情報に含まれる送信元のコンポーネント(以下、単に送信元と称する)及び送信先のコンポーネント(以下、単に送信元と称する)のポート番号によって通信規格を判定し、判定結果に応じて所定の処理を行う。所定の処理とは、例えば、他規格通信により送信元から送信先に送信された送信情報は、そのまま何もせず送信先に送信(透過)させ、IEEE1888通信又はIEEE1888.3通信により送信元から送信先に送信された送信情報に対して所定の変換ルールに基づいた通信規格の変換を行い、変換された通信規格に基づいて送信情報を送信先に送信させる。
これにより、通信制御装置70は、通信システム1においてIEEE1888.3通信に対応していないコンポーネントA(例えば、ゲートウェイ20)とネットワークNWとの間に介挿されることによって、コンポーネントAに変更(例えば、コンポーネントAの各機能部を実現するためのプログラムを変更する等)を加えることなく、IEEE1888.3通信を行うコンポーネントBと、IEEE1888通信を行うコンポーネントAとの間で有効的にIEEE1888.3通信を行わせることができる。なお、図1において、通信制御装置70は、ゲートウェイ20に接続される構成としたが、IEEE1888通信を行うゲートウェイ20と異なる他のコンポーネントに接続される構成であってもよい。
ここで、図2を参照して、通信制御装置70によって中継される通信の流れについて説明する。図2は、通信制御装置70によって中継される通信の流れの一例を示す図である。図2(A)には、通信システム1に通信制御装置70を介挿していない状態におけるゲートウェイ20と他のコンポーネントとの間のネットワークNWを介した通信の流れの一例を示す。図2(B)には、通信システム1に通信制御装置70を介挿した状態におけるゲートウェイ20と他のコンポーネントとの間のネットワークNWを介した通信の流れの一例を示す。
非対応コンポーネント36は、ネットワークNWを介して他のコンポーネントとIEEE1888通信を行い、IEEE1888.3通信に対応していないコンポーネントである。図2(A)に示したように、通信システム1に通信制御装置70を介挿する前のゲートウェイ20は、ネットワークNWを介して非対応コンポーネント36とポート80を利用したIEEE1888通信CNT1を行う。また、ゲートウェイ20は、ネットワークNWを介して他規格コンポーネント35とポート80、8080、443、8443のいずれとも異なるポートを利用した他規格通信CNT2を行う。
これに対し、図2(B)に示したように、通信システム1に通信制御装置70を介挿した後のゲートウェイ20は、ネットワークNWを介して他のコンポーネントと通信を行う場合、通信制御装置70により通信が中継される。把握コンポーネント37は、前述した通り、通信制御装置70によりネットワークNWを介して通信可能であることが把握されているコンポーネントである。非把握コンポーネント38は、通信制御装置70によりネットワークNWを介して通信可能であるか否かが把握されていないコンポーネントである。
図2(B)に示した例では、通信制御装置70は、以下の1)から4)に示したように通信を中継する。
1)ゲートウェイ20と把握コンポーネント37の間の通信:
・ゲートウェイ20から把握コンポーネント37へのIEEE1888通信CNT1を通信制御装置70がIEEE1888.3通信CNT3に変換する。
・把握コンポーネント37からゲートウェイ20へのIEEE1888.3通信CNT3を通信制御装置70がIEEE1888通信CNT1に変換する。
2)ゲートウェイ20と非把握コンポーネント38の間の通信:
・ゲートウェイ20から非把握コンポーネント38へのIEEE1888通信CNT1を通信制御装置70が透過させる。
・非把握コンポーネント38からゲートウェイ20へのIEEE1888.3通信CNT3を通信制御装置70がIEEE1888通信CNT1に変換する。
3)ゲートウェイ20と非対応コンポーネント36の間の通信:
・ゲートウェイ20から非対応コンポーネント36へのIEEE1888通信CNT1を通信制御装置70が透過させる。
・非対応コンポーネント36からゲートウェイ20へのIEEE1888通信CNT1を通信制御装置70が透過させる。
4)ゲートウェイ20と他規格コンポーネント35の間の通信:
・ゲートウェイ20から他規格コンポーネント35への他規格通信CNT2を通信制御装置70が透過させる。
・他規格コンポーネント35からゲートウェイ20への他規格通信CNT2を通信制御装置70が透過させる。
このように、通信制御装置70は、所定の変換ルールに基づいて通信規格を変換することで通信を中継するため、IEEE1888通信を行うコンポーネントと、IEEE1888.3通信を行うコンポーネントとの間に通信制御装置70を介挿するだけで、IEEE1888通信を行うコンポーネントに対して有効的にIEEE1888.3通信を行わせることができる。
その結果、通信制御装置70は、IEEE1888通信を行うコンポーネントをIEEE1888.3通信に対応させるために費やされるコストや手間を低減させることができる。なお、本実施形態において、通信制御装置70は、IEEE1888通信とIEEE1888.3通信とを相互に変換する構成であるが、これに代えて、IEEE1888通信とIEEE1888.3通信とは異なる通信規格であって、互いに異なる2つの他の通信規格を相互に変換する構成であってもよい。
以下、図3を参照して、通信制御装置70の機能構成について説明する。図3は、通信制御装置70の機能構成の一例を示す図である。通信制御装置70は、記憶部71と、情報取得部72と、IP変換部74と、送信処理部76と、アクセス制御部78と、通信部79を備える。
なお、通信制御装置70が備える情報取得部72と、IP変換部74と、送信処理部76と、アクセス制御部78と、通信部79のうち一部又は全部は、例えば、通信制御装置70が備える図示しないCPUが、記憶部71に記憶された各種プログラムを実行することで実現される。また、情報取得部72と、IP変換部74と、送信処理部76と、アクセス制御部78と、通信部79のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
記憶部71は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)などを含み、通信制御装置70が処理する各種情報やプログラムを格納する。なお、記憶部71は、通信制御装置70に内蔵されるものに代えて、USB(Universal Serial Bus)等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
情報取得部72は、通信システム1において送信元から通信制御装置70を介して送信先に送信される送信情報を取得する。情報取得部72は、取得部の一例である。
IP変換部74は、情報取得部72により取得された送信情報の送信先のポートに基づいて、送信情報を透過させるか否かを判定する。IP変換部74は、透過させると判定した場合、送信情報に対して何もせずそのまま前記の送信先に透過するように通信部79を制御する。IP変換部74は、透過させないと判定した場合、送信情報の送信先を自装置に変換する。
送信処理部76は、IP変換部74により送信先が自装置に変換された送信情報を取得する。送信処理部76は、取得された送信情報の内容(例えば、HTTP/XML形式のヘッダ又はボディに記載された情報等)を参照し、送信先を表す情報を検出する。送信先を表す情報とは、例えば、送信先のIPアドレス及びポート番号を含む情報である。送信処理部76は、検出された送信先を表す情報に基づいて通信に利用するポートを選択(すなわち、通信規格を選択)し、検出された送信先のIPアドレスと、選択されたポートとに基づいて送信情報を送信先に送信するように通信部79を制御する。
本実施形態において、送信処理部76は、IEEE1888とIEEE1888.3のいずれかの通信規格を選択する構成であるが、これに代えて、他の通信規格を選択する構成であってもよい。なお、送信処理部76は、送信先から送信元へのレスポンスを透過させる構成であるとするが、これに代えて、送信情報に対する処理と同様の処理を行い、通信規格を選択する構成であってもよい。
アクセス制御部78は、送信処理部76が通信部79により送信情報を管理コンポーネントへ送信する際、送信情報の送信元から管理コンポーネントへのアクセス制御を行う。より具体的には、アクセス制御部78は、通信部79を介してRAM60から管理コンポーネントのACLを取得する。そして、アクセス制御部78は、取得されたACLを参照し、送信元から管理コンポーネントへのアクセスが許可されているか否かを判定する。
アクセス制御部78は、アクセスが許可されていないと判定した場合、送信元に対してアクセス不許可であることを示す情報を送信するように通信部79を制御する。アクセス制御部78は、アクセスが許可されていると判定した場合、何もしない。なお、送信処理部76とアクセス制御部78を合わせた機能部は、処理部の一例である。また、送信処理部76は、出力部の一例である。
通信部79は、送信処理部76からの要求に基づいて送信情報を送信先に送信する。
以下、図4を参照して、通信制御装置70が中継するゲートウェイ20から他のコンポーネントへの通信の流れを説明する。図4は、通信制御装置70が中継するゲートウェイ20から他のコンポーネントへの通信の流れの一例を示すシーケンス図である。図4では、ゲートウェイ20が通信制御装置70を介してストレージ30及び他規格コンポーネント35と通信を行う場合について説明する。
まず、ゲートウェイ20は、他規格コンポーネント35に対して送信情報Cを送信する。そして、通信制御装置70の情報取得部72は、ゲートウェイ20から他規格コンポーネント35に送信された送信情報Cを取得(横取り)する(ステップS100)。送信情報Cとは、ゲートウェイ20と他規格コンポーネント35の間の通信において送受信される各種情報(例えば、何らかの情報取得の要求を示す情報や画像を表す情報等)である。
次に、通信制御装置70のIP変換部74は、取得された送信情報Cの送信先のポート番号に基づいて、送信情報Cを透過させるか否かを判定する。ここでは、IP変換部74は、送信情報Cを透過させると判定したとして説明する。IP変換部74は、送信情報Cの送信先(この一例では、他規格コンポーネント35)に送信情報Cを透過(送信するように通信部79を制御)する(ステップS110)。
ここで、図5を参照して、IP変換部74が送信情報を透過させるか否かを判定する処理について説明する。図5は、IP変換部74が送信情報を透過させるか否かを判定する処理の一例の概要を示す図である。図5(A)には、ゲートウェイ20と把握コンポーネント37の間に通信制御装置70を介挿した状態の一例を示す。
図5(A)に示したように、ゲートウェイ20は、IPアドレスとして192.168.1.3が割り当てられており、IEEE1888通信を、ポート80によって行う。また、ゲートウェイ20は、通信制御装置70による把握コンポーネント37との間の通信の中継によって、仮想的にIEEE1888.3通信を行う。図5(A)では、ゲートウェイ20が前記の仮想的なIEEE1888.3通信を行うためのポートをポート443とする。
また、通信制御装置70は、IPアドレスとして192.168.1.10が割り当てられており、IEEE1888通信をポート8080によって行う。また、通信制御装置70は、IEEE1888.3通信をポート8443によって行う。
また、把握コンポーネント37は、IPアドレスとして192.168.1.200が割り当てられており、IEEE1888.3通信をポート443によって行う。また、把握コンポーネント37は、通信制御装置70によるゲートウェイ20との間の通信の中継によって、仮想的にIEEE1888通信を行う。図5(A)では、把握コンポーネント37が前記の仮想的なIEEE1888通信を行うためのポートをポート80とする。
ゲートウェイ20から把握コンポーネント37に送信情報Dが送信された場合、通信制御装置70の情報取得部72は、送信情報Dを取得する。そして、通信制御装置70のIP変換部74は、予め記憶部71に記憶されたIPテーブルであって、図5(B)に示したIPテーブルT70を記憶部71から読み込む。IPテーブルT70は、変更を行うか否かを規定する条件の情報の一例である。ここで、送信情報Dとは、ゲートウェイ20と把握コンポーネント37の間の通信において送受信される各種情報(例えば、何らかの情報取得の要求を示す情報や画像を表す情報等)である。
IPテーブルT70には、変換対象を示す情報と、変換後の送信先を表す情報とが格納されている。変換対象を示す情報とは、送信元のIPアドレス及びポート番号と、送信先のIPアドレス及びポート番号とが対応付けられた情報である。また、変換後の送信先を表す情報とは、通信制御装置70のIPアドレス及びポート番号であり、変換対象を示す情報のレコード毎に対応付けられた情報である。
IP変換部74は、読み込まれたIPテーブルT70の変換対象を示す情報を参照し、変換対象を示す情報の中に送信情報Dの送信元及び送信先のIPアドレス及びポート番号に該当する情報が含まれているか否かを判定する。IP変換部74は、この判定により、送信元と送信先(それぞれ、IPアドレスにより同定)がIEEE1888通信又はIEEE1888.3通信(それぞれ、ポート番号により同定)によって送信情報Dを送信したか否かを判定する。
上述したようにIPテーブルT70が構成されることにより、IP変換部74は、IEEE1888通信又はIEEE1888.3通信とは異なる他規格通信によって送信された送信情報を判定し、他規格通信によって送信された送信情報を透過させる。何故なら、他規格通信に用いられるポートは、ポート80とポート443のうちのいずれでもないためである。また、IP変換部74は、通信制御装置70が中継する送信情報の中から、IEEE1888通信又はIEEE1888.3通信によって送信された送信情報のみを抽出することができる。
従って、IP変換部74は、IPテーブルT70を参照し、変換対象を示す情報の中に送信情報Cの送信元及び送信先に該当する情報が含まれていないと判定した場合、送信情報Cを透過させる。これにより、図4のステップS110におけるIP変換部74は、ゲートウェイ20から他規格コンポーネント35への送信情報Cを透過させる。
一方、図5(A)及び図5(B)に示したように、IP変換部74は、変換対象を示す情報の中に送信情報Dの送信先に該当する情報が含まれていると判定した場合、前記の該当する情報に対応付けられた情報であって、変換後の送信先(自装置)を表す情報へと送信情報Dの送信先を変換する。なお、IPテーブルT70に格納されている「any」は、ワイルドカードを示す。また、上述した管理コンポーネントは、IPテーブルT70の変換対象を示す情報のうち、ワイルドカードを除いた送信元のIPアドレスが示すコンポーネントのことである。
また、通信制御装置70は、前記のIPアドレスの一覧を管理情報として記憶部71に予め記憶されており、管理情報のIPアドレスを更新した場合、IPテーブルT70の中の対応するIPアドレスも管理情報と同様に更新されるとする。また、上述した把握コンポーネントは、IPテーブルT70の変換対象を示す情報のうち、ワイルドカードを除いた送信先のIPアドレスが示すコンポーネントのことである。また、通信制御装置70は、前記のIPアドレスの一覧を把握情報として記憶部71に予め記憶されており、把握情報のIPアドレスを更新した場合、IPテーブルT70の中の対応するIPアドレスも管理情報と同様に更新されるとする。
次に、他規格コンポーネント35は、通信制御装置70から透過された送信情報Cを取得し、取得された送信情報Cに基づくレスポンスをゲートウェイ20に送信する。そして、通信制御装置70の情報取得部72は、他規格コンポーネント35からゲートウェイ20に送信されたレスポンスを取得する(ステップS120)。次に、通信制御装置70のIP変換部74は、取得されたレスポンスをゲートウェイ20に透過させる(ステップS130)。
次に、ゲートウェイ20は、ストレージ30に送信情報Eを送信する。そして、通信制御装置70の情報取得部72は、ゲートウェイ20からストレージ30に送信された送信情報Eを取得する(ステップS140)。ここで、送信情報Eとは、ゲートウェイ20とストレージ30の間の通信において送受信される各種情報(例えば、何らかの情報取得の要求を示す情報や画像を表す情報等)である。
次に、通信制御装置70のIP変換部74は、IPテーブルT70を記憶部71から読み込む。IP変換部74は、読み込まれたIPテーブルT70の変換対象を示す情報を参照し、変換対象を示す情報の中に送信情報Eの送信元及び送信先に該当する情報が含まれているか否かを判定する。ここで、IP変換部74は、変換対象を示す情報の中に送信情報Eの送信元及び送信先に該当する情報が含まれていると判定したとして説明する。IP変換部74は、送信情報Eの送信先を自装置に変換する(ステップS150)。そして、IP変換部74は、送信先が自装置に変換された送信情報Eを送信処理部76に出力する(ステップS160)。
次に、送信処理部76は、IP変換部74により送信先が自装置に変換された送信情報Eの内容を参照し、IP変換部74により送信先が自装置に変換される前の送信先を表す情報を検出する。送信処理部76は、検出された送信先を表す情報に基づいてポートを選択(すなわち、通信規格を選択)し、検出された送信先のIPアドレスと、選択されたポートとに基づいて送信情報を送信先に送信するように通信部79を制御する。ここで、ストレージ30がIEEE1888.3通信に対応しているため、選択されたポートは、ポート443であるとして説明する。通信部79は、ストレージ30にホスト名を確認し、IEEE1888.3通信による通信の認証を行う(ステップS170)。
ここで、送信処理部76は、何らかの理由によりストレージ30との認証に失敗したとして説明する。送信処理部76は、認証に失敗した場合、送信元(この一例では、ゲートウェイ20)に認証に失敗したことを示す情報を送信する(ステップS180)。その後、ステップS180から時間が経過したとして、再びステップS140からステップS170までの処理が行われ、前記の認証に成功したとして説明する。通信部79は、送信処理部76からの要求に従い、送信情報Eをストレージ30のポート443に送信する(ステップS190)。
次に、ストレージ30は、通信制御装置70から送信情報Eを取得し、取得された送信情報Eに基づくレスポンスをゲートウェイ20へ送信する。そして、通信制御装置70の情報取得部72は、ストレージ30からゲートウェイ20へ送信された前記のレスポンスを取得する(ステップS200)。送信処理部76は、情報取得部72により取得されたストレージ30からゲートウェイ20へのレスポンスをゲートウェイ20に透過させる(ステップS210)。
以下、図6を参照して、通信制御装置70が中継する他のコンポーネントからゲートウェイ20への通信の流れを説明する。図6は、通信制御装置70が中継する他のコンポーネントからゲートウェイ20への通信の流れの一例を示すシーケンス図である。図6では、ストレージ30及び他規格コンポーネント35が通信制御装置70を介してゲートウェイ20と通信を行う場合について説明する。
まず、他規格コンポーネント35は、ゲートウェイ20に対して送信情報Fを送信する。そして、通信制御装置70の情報取得部72は、他規格コンポーネント35からゲートウェイ20に送信された送信情報Fを取得する(ステップS300)。ここで、送信情報Fとは、他規格コンポーネント35とゲートウェイ20の間の通信において送受信される各種情報(例えば、何らかの情報取得の要求を示す情報や画像を表す情報等)である。次に、通信制御装置70のIP変換部74は、取得された送信情報Fの送信先のポート番号に基づいて、送信情報Fを透過させるか否かを判定する。IP変換部74は、他規格コンポーネント35とゲートウェイ20の間の通信が他規格通信であるため、送信情報Fを透過させる(ステップS310)。
次に、ゲートウェイ20は、通信制御装置70から透過された送信情報Fを取得し、取得された送信情報Fに基づくレスポンスを他規格コンポーネント35に送信する。そして、通信制御装置70の情報取得部72は、ゲートウェイ20から他規格コンポーネント35に送信されたレスポンスを取得する(ステップS320)。次に、通信制御装置70のIP変換部74は、取得されたレスポンスを他規格コンポーネント35に透過させる(ステップS330)。
次に、ストレージ30は、ゲートウェイ20に送信情報Gを送信する。そして、通信制御装置70の情報取得部72は、ストレージ30からゲートウェイ20に送信された送信情報Gを取得する(ステップS340)。ここで、送信情報Gとは、ストレージ30とゲートウェイ20の間の通信において送受信される各種情報(例えば、何らかの情報取得の要求を示す情報や画像を表す情報等)である。
次に、通信制御装置70のIP変換部74は、IPテーブルT70を記憶部71から読み込む。IP変換部74は、読み込まれたIPテーブルT70の変換対象を示す情報を参照し、変換対象を示す情報の中に送信情報Gの送信先に該当する情報が含まれているか否かを判定する。ここで、IP変換部74は、変換対象を示す情報の中に送信情報Gの送信先に該当する情報が含まれていると判定したとして説明する。IP変換部74は、送信情報Gの送信先を自装置に変換する(ステップS350)。そして、IP変換部74は、送信先が自装置に変換された送信情報Gを送信処理部76に出力する(ステップS360)。
次に、送信処理部76は、IP変換部74により送信先が自装置に変換された送信情報Gの内容を参照し、IP変換部74により送信先が自装置に変換される前の送信先を表す情報を検出する。送信処理部76は、検出された送信先を表す情報に基づいてポート番号を選択し、検出された送信先のIPアドレスと、選択されたポート番号とに基づいて送信情報を送信先に送信するように通信部79を制御する。ここで、ゲートウェイ20がIEEE1888通信に対応し、IEEE1888.3通信に対応していないため、選択されたポート番号は、80であるとして説明する。
通信部79が送信情報Gをゲートウェイ20に送信する前に、アクセス制御部78は、RAM60からゲートウェイ20のACLを取得する(ステップS370)。そして、アクセス制御部78は、取得されたACLと、送信情報Gの送信元(すなわち、ストレージ30)から送信先(すなわち、ゲートウェイ20)へのアクセスが許可されているか否かを判定する(ステップS380)。ここで、アクセス制御部78は、前記の送信元から送信先へのアクセスが許可されていないとして説明する。アクセス制御部78は、ストレージ30からゲートウェイ20へのアクセスが許可されていないことを示す情報をストレージ30に送信する。
ここから、ステップS380から時間が経過し、ステップS340からステップS370までの処理が再び行われたとし、さらに、ストレージ30からゲートウェイ20へのアクセスが許可されているとアクセス制御部78が判定したとして説明する。通信部79は、送信処理部76からの要求に従い、送信情報Gをゲートウェイ20のポート80に送信する(ステップS390)。
次に、ゲートウェイ20は、通信制御装置70から送信情報Gを取得し、取得された送信情報Gに基づくレスポンスをストレージ30へ送信する。そして、通信制御装置70の情報取得部72は、ゲートウェイ20からストレージ30へ送信された前記のレスポンスを取得する(ステップS400)。送信処理部76は、情報取得部72により取得されたゲートウェイ20からストレージ30へのレスポンスをストレージ30に透過させる(ステップS410)。
以下、図7を参照して、送信処理部76による処理の流れの一例について説明する。図7は、送信処理部76による処理の流れの一例を示すフローチャートである。なお、図7に示したフローチャートは、IP変換部74から送信先が自装置に変換された送信情報を送信処理部76が取得した後の処理であることを前提に説明する。なお、図7に示したフローチャートにおける各判定は、前述の所定の変換ルールの一例である。
まず、送信処理部76は、IP変換部74から取得された送信情報の内容を参照し、HTTPメソッドがget又はpostであるか否かを判定する(ステップS500)。HTTPメソッドがget又はpostではないと判定した場合(ステップS500−No)、送信処理部76は、IP変換部74から取得された送信情報がIEEE1888通信又はIEEE1888.3通信によって送信された送信情報ではないと判定し、送信元にエラーを示す情報を送信するように通信部79を制御し(ステップS610)、処理を終了する。
なお、送信処理部76は、ステップS610において、送信元にエラーを示す情報を送信する構成に代えて、送信情報を送信先に透過させる構成であってもよい。この場合、通信制御装置70は、ポート8080とポート8443のうちいずれか一方又は両方を通信制御装置70とは異なる処理を行うサーバーの通信ポートとして併用することができる。また、以下では、ステップS500においてHTTPメソッドがpostであった場合について説明する。
一方、ステップS500においてHTTPメソッドがpostであると判定した場合(ステップS500−Yes)、送信処理部76は、送信情報の送信元が管理コンポーネント(例えば、図1、2、4、5、6に示したゲートウェイ20)であるか否かを判定する(ステップS510)。ここで、送信処理部76は、記憶部71から管理情報を読み込み、読み込まれた管理情報を参照し、管理情報に送信情報の送信元に該当する情報が含まれているか否かを判定することで、送信元が管理コンポーネントであるか否かを判定する。
送信元が管理コンポーネントであると判定した場合(ステップS510−Yes)、送信処理部76は、送信情報の内容を参照し、送信情報に含まれるヘッダからIP変換部74により変更される前の送信先を検出(例えば、送信先のURIを検出)し、検出された送信先が把握コンポーネント37であるか否かを判定する(ステップS520)。ここで、送信処理部76は、記憶部71から予め記憶された把握情報を読み込み、読み込まれた把握情報を参照し、把握情報に前記の送信先に該当する情報が含まれているか否かを判定することで、送信先が把握コンポーネント37であるか否かを判定する。
送信元が把握コンポーネントではないと判定した場合(ステップS520−No)、送信処理部76は、送信元にエラーを示す情報を送信するように通信部79を制御し(ステップS630)、処理を終了する。なお、送信処理部76は、ステップS630において、送信元にエラーを示す情報を送信する構成に代えて、送信情報を送信先に透過させる構成であってもよい。
一方、送信元が把握コンポーネントであると判定した場合(ステップS520−Yes)、送信処理部76は、ステップS520で検出された送信先のポート443へIEEE1888.3通信によって送信情報を送信する(ステップS530)。次に、送信処理部76は、前記の送信情報の送信元に対してレスポンスを送信する(ステップS540)。ステップS510で送信情報の送信元が管理コンポーネントではないと判定した場合(ステップS510−No)、送信処理部76は、送信情報の内容及び上述の管理情報を参照し、送信情報のヘッダからIP変換部74により変更される前の送信先を検出し、検出された送信先が管理コンポーネントであるか否かを判定する(ステップS550)。
検出された送信先が管理コンポーネントではないと判定した場合(ステップS550−No)、送信処理部76は、ステップS610に遷移し、送信元にエラーを示す情報を送信するように通信部79を制御する。検出された送信先が管理コンポーネントであると判定した場合(ステップS550−Yes)、送信処理部76は、送信情報の送信元の証明書を取得する(ステップS560)。
次に、送信処理部76は、アクセス制御部78に送信先である管理コンポーネントのACLを取得させる(ステップS570)。次に、送信処理部76は、送信先である管理コンポーネントのACLに基づいて送信元から送信先である管理コンポーネントへのアクセスが許可されているか否かをアクセス制御部78に判定させる(ステップS580)。
送信元から送信先である管理コンポーネントへのアクセスが許可されていないとアクセス制御部78が判定した場合(ステップS580−No)、送信処理部76は、アクセスが不許可であることを示す情報を送信元へ送信するように通信部79を制御し(ステップS620)、処理を終了する。一方、送信元から送信先である管理コンポーネントへのアクセスが許可されているとアクセス制御部78が判定した場合(ステップS580−Yes)、送信処理部76は、ステップS550で検出された送信先のポート443にIEEE1888.3通信によって送信情報を送信する(ステップS590)。次に、送信処理部76は、前記の送信情報の送信元に対してレスポンスを送信する(ステップS600)。
以下、図8を参照して、送信処理部76による処理の流れの他の例について説明する。図8は、送信処理部76による処理の流れの他の例を示すフローチャートである。なお、図8に示したフローチャートは、IP変換部74から送信先が自装置に変換された送信情報を送信処理部76が取得した後の処理であることを前提に説明する。なお、図8に示したフローチャートにおける各判定は、前述の所定の変換ルールの一例である。
まず、送信処理部76は、IP変換部74から取得された送信情報の内容を参照し、HTTPメソッドがget又はpostであるか否かを判定する(ステップS700)。HTTPメソッドがget又はpostではないと判定した場合(ステップS700−No)、送信処理部76は、IP変換部74から取得された送信情報がIEEE1888通信又はIEEE1888.3通信によって送信された情報ではないと判定し、送信元にエラーを示す情報を送信するように通信部79を制御し(ステップS830)、処理を終了する。
なお、ステップS830において、送信処理部76は、送信元にエラーを示す情報を送信する構成に代えて、送信先に送信情報を透過させる構成であってもよい。この場合、通信制御装置70は、ポート8080、ポート8443を通信制御装置70とは異なる処理を行うサーバーの通信ポートとして併用することができる。また、以下では、ステップS700においてHTTPメソッドがgetであった場合について説明する。
一方、ステップS500においてHTTPメソッドがgetであると判定した場合(ステップS700−Yes)、送信処理部76は、送信情報の送信元が管理コンポーネントであるか否かを判定する(ステップS710)。より具体的には、送信処理部76は、記憶部71から管理情報を読み込み、読み込まれた管理情報を参照し、管理情報に送信情報の送信元に該当する情報が含まれているか否かを判定することで、送信元が管理コンポーネントであるか否かを判定する。
送信元が管理コンポーネントであると判定した場合(ステップS710−Yes)、送信処理部76は、送信情報の内容を参照し、送信情報のヘッダからIP変換部74により変更される前の送信先を検出し、検出された送信先が把握コンポーネント37であるか否かを判定する(ステップS720)。より具体的には、送信処理部76は、記憶部71から予め記憶された把握情報を読み込み、読み込まれた把握情報を参照し、把握情報に前記の送信先に該当する情報が含まれているか否かを判定することで、送信先が把握コンポーネント37であるか否かを判定する。
送信先が把握コンポーネントではないと判定した場合(ステップS720−No)、送信処理部76は、送信元にエラーを示す情報を送信するように通信部79を制御し(ステップS850)、処理を終了する。ここで、送信処理部76は、ステップS850においてエラーを示す情報を送信する構成に代えて、送信先に送信情報を透過させる構成であってもよい。一方、送信元が把握コンポーネントであると判定した場合(ステップS720−Yes)、送信処理部76は、送信情報の内容を参照し、送信情報の内容に含まれる送信先のURI及びリクエストパラメーターがWSDL(Web Services Description Language)取得処理を示すか否かを判定する(ステップS730)。
WSDL取得処理を示さないと判定した場合(ステップS730−No)、送信処理部76は、ステップS850に遷移して送信元にエラーを示す情報を送信するように通信部79を制御し、処理を終了する。一方、WSDL取得処理を示すと判定した場合(ステップS730−Yes)、送信処理部76は、ステップS720で検出された送信先のポート443へIEEE1888.3通信によって送信情報を送信する(ステップS740)。次に、送信処理部76は、前記の送信情報の送信元に対してレスポンスを送信する(ステップS750)。
ステップS710で送信情報の送信元が管理コンポーネントではないと判定した場合(ステップS710−No)、送信処理部76は、送信情報の内容及び上述の管理情報を参照し、送信情報のヘッダからIP変換部74により変更される前の送信先を検出し、検出された送信先が管理コンポーネントであるか否かを判定する(ステップS760)。検出された送信先が管理コンポーネントではないと判定した場合(ステップS760−No)、送信処理部76は、ステップS830に遷移し、送信元にエラーを示す情報を送信するように通信部79を制御する。
一方、検出された送信先が管理コンポーネントであると判定した場合(ステップS760−Yes)、送信処理部76は、送信情報の内容を参照し、送信情報の内容に含まれる送信先のURI及びリクエストパラメーターがWSDL取得処理を示すか否かを判定する(ステップS770)。WSDL取得処理を示さないと判定した場合(ステップS770−No)、送信処理部76は、ステップS830に遷移して送信元にエラーを示す情報を送信するように通信部79を制御し、処理を終了する。
一方、WSDL取得処理を示すと判定した場合(ステップS770−Yes)、送信処理部76は、送信情報の送信元の証明書を取得する(ステップS780)。次に、送信処理部76は、アクセス制御部78に送信先のACLを取得させる(ステップS790)。次に、送信処理部76は、送信先のACLに基づいて送信元から送信先へのアクセスが許可されているか否かをアクセス制御部78に判定させる(ステップS800)。
送信元から送信先へのアクセスが許可されていないとアクセス制御部78が判定した場合(ステップS800−No)、送信処理部76は、アクセスが不許可であることを示す情報を送信元へ送信するように通信部79を制御し(ステップS840)、処理を終了する。一方、送信元から送信先へのアクセスが許可されているとアクセス制御部78が判定した場合(ステップS800−Yes)、送信処理部76は、送信情報をステップS760で検出された送信先のポート443にIEEE1888.3通信によって送信する(ステップS810)。次に、送信処理部76は、前記の送信情報の送信元に対してレスポンスを送信する(ステップS820)。
<第1実施形態の変形例1>
以下、本発明の第1実施形態の変形例1について、図面を参照して説明する。第1実施形態の変形例1における通信制御装置70の送信処理部76は、情報取得部72により取得された送信情報の抽象化、平均化を行う。そのような一例として、以下では、送信処理部76が、送信先が制御する複数のポイントに対する送信元からのアクセスに対して、ポイント毎にアクセス制御を行う場合について説明する。このアクセス制御の際、送信処理部76は、アクセスが許可されていないポイントに対するアクセスを示す情報を、送信情報の内容から削除する。以下、送信処理部76によるポイント毎のアクセス制御の例を説明する。
送信処理部76は、例えば、図7に示したステップS620や図8に示したステップS840において、アクセス制御部78によりアクセスが不許可であることを示す情報を送信元に送信させる構成に加えて、送信情報の内容をアクセス制御部78によるアクセス制御の判定に応じて書き換える。すなわち、第1実施形態の変形例1に係る通信制御装置70は、管理コンポーネントと他のコンポーネントとの間の通信を中継する際、送信情報の送信元及び送信先に基づいて通信規格を変更する構成に加えて、送信情報の内容を変更する。
図9は、把握コンポーネント37から管理コンポーネント100へ通信制御装置70を介した通信が行われる状況の一例を示す図である。図9において、把握コンポーネント37は、図9に示したように送信情報TM1によってポイントA〜Cまでの3つのポイントに対する値の更新(書き込み)を示す情報を送信情報として管理コンポーネント100に送信する。通信制御装置70は、前記の送信情報を取得し、送信情報の送信先を自装置に変換する。そして、通信制御装置70は、管理コンポーネント100のACLであるリストKを取得する。ACLは、処理の可否に関する情報の一例である。
リストKには、ポイントA及びポイントCへのアクセスが許可されており、ポイントBへのアクセスが許可されていないことを示す情報が記載されている。従って、通信制御装置70は、把握コンポーネント37からの送信情報TM1を、送信情報TM2のように書き換え、その後、管理コンポーネント100に送信する。図9に示したような状況において、通信制御装置70は、ポイントBへのアクセスが不許可であることを示す情報を送信元である把握コンポーネント37に送信する構成とするが、これに代えて、前記の情報を送信しない構成であってもよい。
このように、通信制御装置70は、送信先が制御する複数のポイントに対する送信元からのアクセスに対して、ポイント毎にアクセス制御を行う。これにより、ポイント毎にアクセス制御を行わない装置と比べて、より柔軟な通信システムの管理を提供することができる。
<第1実施形態の変形例2>
以下、本発明の第1実施形態の変形例2について、図面を参照して説明する。第1実施形態の変形例2における通信制御装置70の送信処理部76は、第1実施形態の変形例1と同様に、情報取得部72により取得された送信情報の抽象化、平均化を行う。そのような他の例として、以下では、送信処理部76が、管理コンポーネント100がレジストリ50に対して送信情報を送信することでコンポーネント情報を登録する際、登録するコンポーネント情報を変更する場合を説明する。より具体的には、送信処理部76は、コンポーネント情報のうち、管理コンポーネント100が対応している通信規格を示す情報を、IEEE1888通信を示す情報に加えて、IEEE1888.3通信を示す情報を追加する。以下、送信処理部76によるこのような送信情報の変更の例を説明する。
通信制御装置70は、通信対象がレジストリ50である場合、例えば、図7に示したステップS630において、エラーを示す情報を送信元に送信させるのに代えて、送信情報の内容に基づいて送信情報を変更する。すなわち、第1実施形態の変形例2に係る通信制御装置70は、第1実施形態の変形例1と同様に、管理コンポーネントと他のコンポーネントとの間の通信を中継する際、送信情報の送信元及び送信先に基づいて通信規格を変更する構成に加えて、送信情報の内容を変更する。
図10は、管理コンポーネント100からレジストリ50へ通信制御装置70を介した通信が行われる状況の一例を示す図である。図10において、管理コンポーネント100は、図10に示したように送信情報TM3によって管理コンポーネント100のコンポーネント情報を登録又は更新することを示す情報を送信情報としてレジストリ50に送信する。送信情報TM3は、管理コンポーネント100が、IEEE1888通信が可能なコンポーネントであることを示すコンポーネント情報のレジストリ50に対する登録又は更新を示す情報である。
通信制御装置70は、前記の送信情報を取得し、送信情報の送信先を自装置に変換する。そして、通信制御装置70は、管理コンポーネント100が、IEEE1888.3通信が可能なコンポーネントであることを示すコンポーネント情報のレジストリ50に対する登録又は更新を示す情報を送信情報TM3に追加する変更を行う。より具体的には、通信制御装置70は、管理情報に基づいて、管理コンポーネント100が対応している通信規格を判定し、その判定結果に基づいて前記の変更を行う。通信制御装置70は、前記の変更が行われた後の送信情報TM4をレジストリ50に送信する。管理情報は、処理の可否に関する情報の一例である。
このように、通信制御装置70は、送信情報に含まれるコンポーネントURIを変更する。これにより、通信制御装置70は、管理コンポーネント100がレジストリ50にコンポーネント情報を登録する場合、コンポーネントURIがIEEE1888のURIに加えて、IEEE1888.3のURIを付加することができる。その結果、送信処理部76は、他のコンポーネントがレジストリ50に登録されたコンポーネント情報を検索してから管理コンポーネント100にアクセスする際、IEEE1888.3通信によってアクセスさせることができる。
<第1実施形態の変形例3>
以下、本発明の第1実施形態の変形例3について、図面を参照して説明する。第1実施形態の変形例3における通信制御装置70の送信処理部76は、第1実施形態の変形例1、2と同様に、情報取得部72により取得された送信情報の抽象化、平均化を行う。そのような他の例として、以下では、送信処理部76が、管理コンポーネントが自装置のコンポーネント情報をレジストリ50から取得する際、レジストリ50から管理コンポーネントへ送信される送信情報(管理コンポーネントのコンポーネント情報)を変更する場合を説明する。より具体的には、送信処理部76は、コンポーネント情報のうち、管理コンポーネントが対応している通信規格を示す情報を、IEEE1888.3通信を示す情報を削除し、IEEE1888通信を示す情報のみに変更する。以下、送信処理部76によるこのような送信情報の変更の例を説明する。
図11は、管理コンポーネント100がレジストリ50に対してLOOKUPにより通信先を検索した場合のレスポンス(前記の通信先のコンポーネント情報)を、レジストリ50が管理コンポーネント100に送信する状況の一例を示す図である。レジストリ50は、図11に示したように送信情報TM5によって検索結果のコンポーネント情報を送信情報として管理コンポーネント100に送信する。
通信制御装置70は、前記の送信情報を取得し、送信情報の送信先を自装置に変換する。そして、通信制御装置70は、送信情報TM5に含まれるコンポーネントURIがIEEE1888.3の場合、前記のコンポーネントURIをIEEE1888に変更する。より具体的には、通信制御装置70は、管理情報に基づいて、管理コンポーネント100が対応している通信規格を判定し、その判定結果に基づいて前記の変更を行う。通信制御装置70は、前記の変更が行われた後の送信情報TM6を管理コンポーネント100に送信する。
このように、通信制御装置70は、送信情報に含まれるコンポーネントURIを変更する。これにより、通信制御装置70は、管理コンポーネント100がレジストリ50を用いて通信先を検索した場合に、レスポンスに含まれるコンポーネントURIがIEEE1888.3のURIになっていることによって通信が出来なくなってしまうことを防止することができる。
以上説明したように、第1実施形態に係る通信制御装置70は、複数のコンポーネントの間の通信を制御し、送信元のコンポーネントから送信先のコンポーネントに対して送信された送信情報を取得し、取得された送信情報に含まれる送信元のコンポーネントにより使用される通信規格の情報を、当該通信規格および当該通信規格に対して自装置が変換することが可能な他の通信規格の情報へ変更し、変更された情報を含む送信情報を送信先のコンポーネントに対して送信する。これにより、通信制御装置70は、送信情報を送信先のコンポーネントに適した送信情報に変更することができる。
また、通信制御装置70は、複数のコンポーネントの間の通信を制御し、送信元のコンポーネントから送信先のコンポーネントに対して送信された送信情報を取得し、取得された送信情報に含まれる送信元のコンポーネントによる対象ポイントへのアクセス処理に関する情報を、当該対象ポイントへの当該アクセス処理が不可能である場合に削除するように変更し、変更された情報を含む送信情報を送信先のコンポーネントに対して送信する。また、通信制御装置70は、送信元のコンポーネントによるアクセス処理の可否を対象ポイントごとに示すACLに基づいて、前記の変更を行う。これにより、通信制御装置70は、詳細なアクセス制御を行うことができる。
また、通信制御装置70は、送信情報の内容に基づいて送信元のコンポーネント及び送信先のコンポーネントの通信規格を判定し、判定の結果に基づいて送信情報の内容を変更する。これにより、通信制御装置70は、送信元及び送信先の通信規格に基づいた変更を送信情報に行うことができ、その結果、送信情報を通信規格に適した送信情報に変更することができる。
また、通信制御装置70は、送信情報の内容に基づいて送信元のコンポーネント及び送信先のコンポーネントの通信規格を判定し、判定の結果に応じた通信規格に基づいて送信情報を送信先に送信する。これにより、通信制御装置70は、互いに異なる2つの通信規格のそれぞれに対応したコンポーネント同士に通信を行わせることができる。
<第2実施形態>
以下、本発明の第2実施形態について、図面を参照して説明する。図12は、第2実施形態に係る通信制御装置70aの機能構成の一例を示す図である。通信制御装置70aは、IP変換部74を備えない点が第1実施形態に係る通信制御装置70と異なる。また、通信制御装置70aは、管理コンポーネントと他のコンポーネントの間に介挿されることによって通信を中継する構成に代えて、ネットワークNW等のネットワークを介してコンポーネント間の通信を中継する。
換言すると、IEEE1888通信を行うコンポーネントMと、IEEE1888.3通信を行うコンポーネントNとの間で通信を行う際、コンポーネントMは、例えば、URIによって(例えば、プロキシを経由させるように)通信制御装置70aを経由させることで、通信制御装置70aを介してコンポーネントNとIEEE1888.3通信を行うことができる。なお、第2実施形態では、第1実施形態と同様な構成部には、同じ符号を付して説明を省略する。
以下、図13を参照して、第2実施形態に係る通信制御装置70aを具備する通信システム2のシステム構成の一例及び通信制御装置70aによって中継される通信の流れの一例について説明する。図13は、第2実施形態に係る通信制御装置70aを具備する通信システム2のシステム構成の一例及び通信制御装置70aによって中継される通信の流れの一例を示す図である。通信システム2は、複数のコンポーネントの例としてゲートウェイ20−1、20−2と、ゲートウェイ20−1と通信可能に接続されたデバイス10−1と、ゲートウェイ20−2と通信可能に接続されたデバイス10−2と、把握コンポーネント37と、通信制御装置70aを具備する。
なお、通信システム2には、他の各種のコンポーネントが具備される構成であってもよい。また、デバイス10−1、デバイス10−2は、それぞれデバイス10と同様の機能を有する。また、ゲートウェイ20−1、ゲートウェイ20−2は、それぞれゲートウェイ20と同様の機能を有する。
通信制御装置70aは、例えば、ゲートウェイ20−1から通信制御装置70を経由して把握コンポーネント37へIEEE1888通信によって送信された送信情報を取得し、取得された送信情報をIEEE1888.3通信によって送信される送信情報に変換し、変換された送信情報をIEEE1888.3通信によって把握コンポーネント37に送信する。
以下、図14を参照して、前述のコンポーネントMがURIによって通信制御装置70aを経由させる場合のURIについて説明する。図14は、前述のコンポーネントMがURIによって通信制御装置70aを経由させる場合のURIの一例を示す図である。図14に示したように、コンポーネントMが通信制御装置70aを経由してコンポーネントNにアクセスする際のURIは、通信制御装置70aのURI(図14における部分P1)と、アクセスしたいコンポーネントNのURI(図14における部分P3)とを、「−_−」(図14における部分P2)によって繋ぐことによって表される。
以下、図15を参照して、通信制御装置70aによって中継されるコンポーネント間の通信の流れについて説明する。図15は、通信制御装置70aによって中継されるコンポーネント間の通信の流れの一例を示す図である。図15において、通信制御装置70aは、ゲートウェイ20とストレージ30の間の通信を中継するとして説明する。
まず、ゲートウェイ20は、図14に示したURIに基づいて、通信制御装置70aを経由させてストレージ30にIEEE1888通信によって送信情報Hを送信する。そして、通信制御装置70aは、前記の送信情報Hを受信する(ステップS900)。ここで、送信情報Hとは、ゲートウェイ20とストレージ30の間の通信において送受信される各種情報(例えば、何らかの情報取得の要求を示す情報や画像を表す情報等)である。
次に、通信制御装置70aは、記憶部71から登録情報を読み込み、読み込まれた登録情報に受信された送信情報Hの送信元(この一例では、ゲートウェイ20)に該当する情報が含まれているか否かを判定する。ここで、登録情報とは、予め通信制御装置70の記憶部71に登録された情報であって、通信制御装置70aによって通信を中継させたいコンポーネントのIPアドレス及びポート番号の一覧である。通信制御装置70aは、登録情報にゲートウェイ20に該当する情報が含まれていないと判定した場合、ゲートウェイ20が管理コンポーネントではないと判定し、送信元(すなわちゲートウェイ20)にエラーを示す情報を送信する(ステップS910)。
以下では、ステップS910から時間が経過して、その期間に通信制御装置70aの登録情報にゲートウェイ20を表す情報が登録されたとして説明する。ゲートウェイ20は、再び図14に示したURIに基づいて、通信制御装置70aを経由させてストレージ30にIEEE1888通信によって送信情報を送信する。そして、通信制御装置70aは、前記の送信情報Hを受信する(ステップS920)。
次に、通信制御装置70aは、記憶部71から登録情報を読み込み、読み込まれた登録情報にゲートウェイ20に該当する情報が含まれているか否かを判定する。そして、通信制御装置70aは、登録情報にゲートウェイ20に該当する情報が含まれていると判定し、前述のURIからストレージ30のURIを抽出し、抽出されたURIに基づいて、IEEE1888.3通信によって送信情報Hをストレージ30に送信する。ストレージ30は、通信制御装置70aから送信された送信情報Hを取得する(ステップS930)。
次に、ストレージ30は、取得された送信情報Hに基づくレスポンスを、通信制御装置70aを経由するようにゲートウェイ20にIEEE1888.3通信によって送信する。そして、通信制御装置70aは、ストレージ30から送信されたレスポンスを取得する(ステップS940)。次に、通信制御装置70aは、取得されたレスポンスをゲートウェイ20にIEEE1888通信によって送信する(ステップS950)。
以上説明したように、第2実施形態に係る通信システム2における通信制御装置70aは、コンポーネント間に介挿されることによって通信を中継する構成に代えて、ネットワークNWを介してコンポーネント間の通信を中継する。これにより、通信制御装置70aは、第1実施形態と同様の効果を得るのに加えて、通信制御装置70と比べて、より設置の手間を低減することができる。
<第3実施形態>
以下、本発明の第3実施形態について説明する。第3実施形態に係る通信制御装置70は、IPテーブルT70を自動で更新する。なお、第3実施形態では、第1実施形態と同様な構成部には、同じ符号を付して説明を省略する。通信制御装置70は、所定の時間が経過する毎にDNS(Domain Name System)サーバーに対して管理コンポーネント及び把握コンポーネントのコンポーネント情報の取得要求を行う。そして、通信制御装置70は、DNSサーバーから管理コンポーネント及び把握コンポーネントのコンポーネント情報を取得し、取得されたコンポーネント情報に基づいてIPテーブルT70に含まれる管理情報及び把握情報を更新する。
これにより、通信制御装置70は、管理コンポーネント又は把握コンポーネントのIPアドレスやコンポーネントURIが変更された場合であっても、DNSサーバーを介して管理情報及び把握情報を最新の情報に更新することができ、その結果、ユーザーによる通信制御装置70の管理に係る手間を低減することができる。
<第4実施形態>
以下、本発明の第4実施形態について説明する。第4実施形態に係る通信制御装置70は、IPテーブルT70を自動で更新する。なお、第4実施形態では、第1実施形態と同様な構成部には、同じ符号を付して説明を省略する。通信制御装置70は、所定の時間が経過する毎にレジストリ50に対して管理コンポーネント及び把握コンポーネントのコンポーネント情報の取得要求を行う。そして、通信制御装置70は、レジストリ50から管理コンポーネント及び把握コンポーネントのコンポーネント情報を取得する受信部と、取得されたコンポーネント情報に基づいてIPテーブルT70に含まれる管理情報及び把握情報を更新する更新部を備える。
受信部と更新部による処理により、通信制御装置70は、把握コンポーネントがIEEE1888通信を行う機器からIEEE1888.3通信を行う機器に変更された場合であっても、レジストリ50を介して管理情報及び把握情報を最新の情報に更新することができ、その結果、ユーザーによる通信制御装置70の管理に係る手間を低減することができる。
<第5実施形態>
以下、本発明の第5実施形態について、図面を参照して説明する。第1実施形態と同様な構成部には、同じ符号を付して説明を省略する。第5実施形態に係る通信制御装置70は、送信情報の内容に基づいて送信情報を記憶部71にバッファリングするか否かを判定し、バッファリングすると判定した場合、送信情報を記憶部71にバッファリングする。
そして、通信制御装置70は、バッファリングされた送信情報を所定のタイミングで送信先に送信する。これにより、通信制御装置70は、通信制御装置70から送信先への通信が集中することによって生じる送信先への負荷を分散することができる。前記の負荷は、例えば、通信制御装置70に複数の管理コンポーネントが接続されている場合等に生じる。
図16は、通信制御装置70のバッファリング処理の流れの一例を示すシーケンス図である。図16において、通信制御装置70には、管理コンポーネントとしてゲートウェイ20が接続されており、把握コンポーネントとしてストレージ30がネットワークNWを介して接続されているものとして説明する。
まず、ゲートウェイ20は、IEEE1888通信によってストレージ30に送信情報Iを送信する。そして、通信制御装置70の情報取得部72は、ゲートウェイ20からストレージ30に送信された送信情報Iを取得する(ステップS1000)。ここで、送信情報Iとは、他規格コンポーネント35とゲートウェイ20の間の通信において送受信される各種情報(例えば、何らかの情報取得の要求を示す情報や画像を表す情報等)である。
次に、通信制御装置70のIP変換部74は、IPテーブルT70を記憶部71から読み込む。IP変換部74は、読み込まれたIPテーブルT70の変換対象を示す情報を参照し、変換対象を示す情報の中に送信情報Iの送信先に該当する情報が含まれているか否かを判定する。ここで、IP変換部74は、変換対象を示す情報の中に送信情報Iの送信先に該当する情報が含まれていると判定したとして説明する。IP変換部74は、送信情報Iの送信先を自装置に変換する(ステップS1010)。そして、IP変換部74は、送信先が自装置に変換された送信情報Iを送信処理部76に出力する(ステップS1020)。
次に、通信制御装置70の送信処理部76は、送信情報Iを取得し、取得された送信情報Iの内容に基づいて、送信情報Iをバッファリングするか否かを判定する。ここで、送信処理部76による前記の判定について説明する。送信処理部76は、例えば、送信情報Iの内容を参照し、送信情報Iの内容が所定の条件を満たすか否かによって送信情報Iをバッファリングするか否かを判定する。所定の条件とは、例えば、送信情報Iの内容が、送信先(この一例では、ストレージ30)にポイントが示す計測値や制御値を蓄積(登録、記憶)させるためのWRITE手順であることや、リアルタイム性を要求されていないアクチュエーターの制御を行うためのWRITE手順であること等である。
なお、送信処理部76は、送信情報Iの内容が、例えば、送信先に対するポイントが示す計測値や制御値の取得を要求するためのFETCH手順である場合や、リアルタイム性が要求されているアクチュエーターの制御を行うためのWRITE手順である場合、送信情報Iをバッファリングしないと判定する。
送信処理部76は、送信情報Iをバッファリングすると判定した場合、送信情報Iを記憶部32にバッファリングさせる。また、送信処理部76は、送信情報Iをバッファリングしないと判定した場合、送信情報Iを送信先に送信するように通信部79を制御する。以下では、送信処理部76が送信情報Iをバッファリングすると判定したものとして説明する。送信処理部76は、送信情報Iを記憶部32にバッファリングする(ステップS1030)。次に、送信処理部76は、ゲートウェイ20に対してストレージ30の代わりにレスポンスを送信(代理応答)する(ステップS1040)。
次に、ゲートウェイ20は、再びIEEE1888通信によってストレージ30に送信情報Jを送信する。そして、通信制御装置70の情報取得部72は、ゲートウェイ20からストレージ30に送信された送信情報Jを取得する(ステップS1050)。ここで、送信情報Jとは、他規格コンポーネント35とゲートウェイ20の間の通信において送受信される各種情報(例えば、何らかの情報取得の要求を示す情報や画像を表す情報等)である。
次に、通信制御装置70のIP変換部74は、IPテーブルT70を記憶部71から読み込む。IP変換部74は、読み込まれたIPテーブルT70の変換対象を示す情報を参照し、変換対象を示す情報の中に送信情報Jの送信先に該当する情報が含まれているか否かを判定する。ここで、IP変換部74は、変換対象を示す情報の中に送信情報Jの送信先に該当する情報が含まれていると判定したとして説明する。IP変換部74は、送信情報Jの送信先を自装置に変換する(ステップS1060)。そして、IP変換部74は、送信先が自装置に変換された送信情報Iを送信処理部76に出力する(ステップS1070)。
次に、通信制御装置70の送信処理部76は、送信情報Jを取得し、取得された送信情報Iの内容に基づいて、送信情報Jをバッファリングするか否かを判定する。ここで、送信処理部76による前記の判定について説明する。送信処理部76は、例えば、送信情報Jの内容を参照し、送信情報Jの内容が所定の条件を満たすか否かによって送信情報Jをバッファリングするか否かを判定する。以下では、送信処理部76が送信情報Jをバッファリングすると判定したものとして説明する。送信処理部76は、送信情報Jを記憶部32にバッファリングする(ステップS1080)。次に、送信処理部76は、ゲートウェイ20に対してストレージ30の代わりにレスポンスを送信(代理応答)する(ステップS1090)。
次に、送信処理部76は、記憶部32にバッファリングされた送信情報I及び送信情報Jのそれぞれを、所定のタイミングでストレージ30に送信する(ステップS1100)。所定のタイミングとは、例えば、所定時間が経過した時や、バッファリングされた送信情報の容量が所定値以上になった時等である。また、送信処理部76は、所定のタイミングで送信情報I及び送信情報Jのそれぞれをストレージ30に送信する際、時系列順やランダムな順等の所定の順序に基づいて送信情報I及び送信情報Jのそれぞれをストレージ30に送信する。次に、ストレージ30は、通信制御装置70に対してレスポンスを送信する(ステップS1110)。
図17は、通信制御装置70のバッファリング処理の流れの他の例を示すシーケンス図である。図17において、通信制御装置70には、管理コンポーネントとしてゲートウェイ20−1、ゲートウェイ20−2が接続されており、把握コンポーネントとしてストレージ30がネットワークNWを介して接続されているものとして説明する。つまり、図17におけるシーケンス図は、通信制御装置70に対して複数の管理コンポーネントが接続されている場合の例である。
また、ステップS1000からステップS1090までのゲートウェイ20−1と通信制御装置70がそれぞれ行う処理については、図16におけるステップS1000からステップS1090までのゲートウェイ20と通信制御装置70がそれぞれ行う処理と同様なため、説明を省略する。
ステップS1090でゲートウェイ20−1がレスポンスを取得した後、ゲートウェイ20−2は、IEEE1888通信によってストレージ30に送信情報Lを送信する。そして、通信制御装置70の情報取得部72は、ゲートウェイ20−2からストレージ30に送信された送信情報Lを取得する(ステップS1120)。ここで、送信情報Lとは、他規格コンポーネント35とゲートウェイ20−2の間の通信において送受信される各種情報(例えば、何らかの情報取得の要求を示す情報や画像を表す情報等)である。
次に、通信制御装置70のIP変換部74は、IPテーブルT70を記憶部71から読み込む。IP変換部74は、読み込まれたIPテーブルT70の変換対象を示す情報を参照し、変換対象を示す情報の中に送信情報Lの送信先に該当する情報が含まれているか否かを判定する。ここで、IP変換部74は、変換対象を示す情報の中に送信情報Lの送信先に該当する情報が含まれていると判定したとして説明する。IP変換部74は、送信情報Lの送信先を自装置に変換する(ステップS1130)。そして、IP変換部74は、送信先が自装置に変換された送信情報Iを送信処理部76に出力する(ステップS1140)。
次に、通信制御装置70の送信処理部76は、送信情報Lを取得し、取得された送信情報Lの内容に基づいて、送信情報Lをバッファリングするか否かを判定する。以下では、送信処理部76が送信情報Lをバッファリングすると判定したものとして説明する。送信処理部76は、送信情報Lを記憶部32にバッファリングする(ステップS1150)。次に、送信処理部76は、ゲートウェイ20−2に対してストレージ30の代わりにレスポンスを送信(代理応答)する(ステップS1160)。
次に、送信処理部76は、記憶部32にバッファリングされた送信情報I、送信情報J、送信情報Lのそれぞれを、所定のタイミングでストレージ30に送信する(ステップS1170)。また、送信処理部76は、所定のタイミングで送信情報I、送信情報J、送信情報Lのそれぞれをストレージ30に送信する際、時系列順やランダムな順等の所定の順序に基づいて送信情報I、送信情報J、送信情報Lのそれぞれをストレージ30に送信する。次に、ストレージ30は、通信制御装置70に対してレスポンスを送信する(ステップS1180)。
以上説明したように、通信制御装置70は、送信情報の内容に基づいて、送信情報を送信先のコンポーネントに出力する前にバッファリングするか否かを判定し、バッファリングすると判定した場合、送信情報を記憶部71にバッファリングさせ、記憶部71にバッファリングさせた送信情報を所定のタイミングで送信先のコンポーネントに対して送信するように通信部79を制御する。これにより、通信制御装置70は、送信先のコンポーネントに送信情報を送信するタイミングを制御することで、送信先のコンポーネントへの通信の負荷を分散することができ、その結果、送信先のコンポーネントへの通信が集中してしまうことを抑制することができる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
なお、以上に説明した装置(例えば、通信制御装置70、70a)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM:Random Access Memory)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。