JP7177873B2 - ゲートウェイ装置、データ送信方法、及びプログラム - Google Patents

ゲートウェイ装置、データ送信方法、及びプログラム Download PDF

Info

Publication number
JP7177873B2
JP7177873B2 JP2021036580A JP2021036580A JP7177873B2 JP 7177873 B2 JP7177873 B2 JP 7177873B2 JP 2021036580 A JP2021036580 A JP 2021036580A JP 2021036580 A JP2021036580 A JP 2021036580A JP 7177873 B2 JP7177873 B2 JP 7177873B2
Authority
JP
Japan
Prior art keywords
data
cloud
terminal
header
gateway device
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
JP2021036580A
Other languages
English (en)
Other versions
JP2022136793A (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.)
NTT Communications Corp
Original Assignee
NTT Communications Corp
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 NTT Communications Corp filed Critical NTT Communications Corp
Priority to JP2021036580A priority Critical patent/JP7177873B2/ja
Publication of JP2022136793A publication Critical patent/JP2022136793A/ja
Application granted granted Critical
Publication of JP7177873B2 publication Critical patent/JP7177873B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、IoT端末をクラウドに接続させる技術に関連するものである。
IoT端末(例:センサー、トラッカー)からのデータ(稼働状態、位置、温湿度など)をクラウドに送信し、クラウドの機能を使ってデータ収集、蓄積、データマネジメントを行う付加価値サービスが増加している。
上記付加価値サービスを提供するにあたり、IoT端末において、クラウド接続情報のキッティングや、クラウドが提供するインタフェースの処理に合わせた実装や設定が必要となる。また、クラウドの新規機能に対応する度に、IoT端末の設定やアプリケーション実装を適合させていく必要がある。
WO2019/059034
従来技術では、IoT端末側でクラウド接続に必要な実装や設定を行う必要があるため、大きなコストがかかるとともに、拡張や変更に対する柔軟性が欠如しているという課題があった。
本発明は上記の点に鑑みてなされたものであり、クラウド固有の設定に依存することなく共通の端末設定で任意のクラウドへIoT端末から出力されるデータを送信するための技術を提供することを目的とする。
開示の技術によれば、端末とクラウドとの間に備えられるゲートウェイ装置であって、
前記端末から送信されたヘッダ付きデータを受信し、当該ヘッダ付きデータのヘッダを外してデータを取得する端末接続部と、
前記データを宛先クラウドへ送信するための処理を前記データに施すことにより送信データを生成し、当該送信データを前記宛先クラウドへ送信するクラウド接続部と、
前記端末接続部により取得された前記データを格納するキューイング部と、を備え、
前記クラウド接続部は、前記キューイング部から前記データを取得する
ゲートウェイ装置が提供される。

開示の技術によれば、クラウド固有の設定に依存することなく共通の端末設定で任意のクラウドへIoT端末から出力されるデータを送信するための技術が提供される。
本発明の実施の形態におけるシステム構成図である。 プロトコル変換GW装置の構成図である。 管理装置の構成図である。 システムの動作を説明するためのシーケンス図である。 装置のハードウェア構成図である。
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、以下の説明では、データの送信元となる端末としてIoT端末が使用されるが、データの送信元となる端末はIoT端末に限定されるわけではなく、例えば、PC、スマートフォン等の端末がデータの送信元になってもよい。
(システム構成例)
図1に、本発明の実施の形態における通信システムの全体構成例を示す。図1に示すように、本実施の形態の通信システムは、プロトコル変換GW(ゲートウェイ)装置100、ロードバランサ300、管理装置400を有する。プロトコル変換GW装置100は、ロードバランサ300と管理装置400のそれぞれと通信可能である。プロトコル変換GW装置100、ロードバランサ300、管理装置400はいずれも、物理マシンにより実現されてもよいし、クラウド上の仮想マシンにより実現されてもよい。なお、プロトコル変換GW装置100をゲートウェイ装置と呼んでもよい。
アクセス網200には複数のIoT端末1が接続されている。プロトコル変換GW装置100は、複数のクラウドと通信可能である。図1の例では、クラウドA、B、Cが示されている。
IoT端末1は、例えば、センサ、トラッカー等である。本実施の形態では、IoT端末1の処理能力が低いことを想定しており、IoT端末1はデータを暗号化しないで送信する。IoT端末1は、例えば無線LANあるいは携帯電話網を介してアクセス網200に接続される。アクセス網200は、例えば地域のIP網である。
図1には、プロトコル変換GW装置100が1台のみ示されているが、これは例であり、複数台のプロトコル変換GW装置100が備えられてもよい。複数台のプロトコル変換GW装置100が備えられている場合において、ロードバランサ300は、IoT端末1からのアクセスをいずれかのプロトコル変換GW装置100へ振り分けることができる。
また、ロードバランサ300は、IoT端末1から送信されたデータに付加されているポート番号に従って、当該データを、プロトコル変換GW装置100における対応するブローカへ振り分けることができる。プロトコル変換GW装置100の詳細については後述する。
プロトコル変換GW装置100に接続される各クラウドは、具体的には、仮想マシンやその上で動作するサービス等である。なお、プロトコル変換GW装置100の接続先はクラウドに限定されるわけではなく、物理サーバであってもよい。
管理装置400は、ユーザ(ユーザ端末)に対してWeb画面等の設定画面を表示し、設定画面から入力された設定情報(サービスオーダと呼んでもよい)を受信し、保持する。また、管理装置400は、設定情報に基づいて、装置設定情報を生成し、管理する。装置設定情報は、例えば、アクセス回線と個別識別子とのマッピング情報、個別識別子とクラウドとの接続のための情報とのマッピング等である。
(装置構成例)
次に、プロトコル変換GW装置100及び管理装置400の機能構成と動作の概要を説明する。ここでは動作の概要を説明し、詳細については、シーケンスのところで説明する。
図2に、プロトコル変換GW装置100の機能構成例を示す。図2に示すように、プロトコル変換GW装置100は、端末接続部110、キューイング部120、クラウド接続部130、設定部140を有する。
端末接続部110は、IoT端末1から送信されたデータを受信する機能部である。なお、本実施の形態において、特に断らない限り、「データ」は、アプリケーションデータを意味する。当該データに、プロトコル対応のヘッダが付されることで、当該データは当該プロトコルで送信される。ヘッダ付きのデータをパケットと呼んでもよい。
図2に示すように、端末接続部110は、プロトコル毎の処理部(本実施の形態では「ブローカ」と呼ぶ)を有している。図2の例では、IoT端末1からMQTTで送信されたデータを受信するMQTTブローカ、IoT端末1からHTTPで送信されたデータを受信するHTTPブローカ、IoT端末1からTCPで送信されたデータを受信するTCPブローカ、IoT端末1からUDPで送信されたデータを受信するUDPブローカが示されている。これらのブローカは一例であり、これら以外のプロトコルに対応したブローカが備えられてもよい。
各ブローカは、該当のプロトコルに対応したポート番号が割り当てられたポートを有する。IoT端末1からあるプロトコルで送信されるデータのヘッダには、当該プロトコルに対応したポート番号が含まれており、ロードバランサ300は、当該ポート番号に従って、IoT端末1から送信されたデータを、宛先のブローカへ振り分ける。
各ブローカは、受信したデータのヘッダを外し、当該データに個別識別子を付加したデータをキューイング部120に渡す。個別識別子を「識別子」と呼んでもよい。
キューイング部120は、個別識別子が付されたデータを蓄積するキュー(バッファ)を有する。キューイング部120は、1つだけのキューを備えてもよいし、複数のキューを備えてもよい。図2には、複数のキュー121、122、123が備えられる例が示されている。複数のキューを備える場合において、どのデータをどのキューに格納するかについて、つまり、グループ分けについては、例えば、IoT端末1が属する企業単位(例えば1企業が1グループ)としてもよいし、企業毎に、接続先クラウド単位としてもよいし、企業と関係なく、接続先クラウド単位としてもよいし、これら以外の単位でグループ分けしてもよい。また、グループ分けについては、例えば、ユーザから管理装置400のユーザIF410に対して指示された内容に沿って設定される。
クラウド接続部130は、個別識別子に基づいて、キューに格納されているデータを取得し、メタデータを付加して、暗号化処理を行って、送信データを生成し、送信データを宛先のクラウドへ送信する。クラウド接続部130は、クラウドとの間のプロトコル毎の複数の処理部(接続モジュール)を有する。接続モジュールをクラウド接続モジュールと呼んでもよい。
図2の例では、MQTTSでデータを送信するMQTTS接続モジュール、HTTPSでデータを送信するHTTPS接続モジュール等が示されている。これらの接続モジュールは一例であり、これら以外のプロトコルに対応した接続モジュールが備えられてもよい。端末接続部110では、アプリケーションデータ部分を抽出しているため、例えば、IoT端末1がMQTTを利用していても、クラウド接続モジュールはHTTPSでデータを送信するといったIoT端末1とクラウドA間で異なるプロトコルでのデータ送信が可能である。
設定部140は、管理装置400からの装置設定情報に基づいて、端末接続部110、キューイング部120、及びクラウド接続部130への設定を行う。
端末接続部110における各ブローカ、及びクラウド接続部130における各接続モジュールはそれぞれ、例えばコンテナにより実装される。コンテナを利用することで、CI/CD(継続的インテグレーション/継続的デリバリー)、オートスケールアップ、オートリカバリー等が可能となり、耐障害性を高めることができる。なお、コンテナを使用することは一例であり、コンテナを使用せずに実装することとしてもよい。ただし、コンテナを利用することで、後述する図5に示すようなハードウェア構成を抽象化でき、各モジュールを自社オンプレ開発だけでなくクラウド事業者のPaaS上に展開することも可能となり、最適なプラットフォームで動作させることが可能になる。
図3に、管理装置400の機能構成例を示す。図3に示すように、管理装置400は、ユーザIF410、情報管理部420、記憶部430、設定制御部440を有する。ユーザIF410は、ユーザ(ユーザ端末)に設定画面を表示し、設定画面から入力された設定情報を受信する。また、ユーザIF410は設定画面だけでなくアプリケーションから設定を参照/変更できるAPI(Application Programming Interface)も具備している。情報管理部420は、設定情報を記憶部430に格納するとともに、設定情報に基づいて、プロトコル変換GW装置100への設定に使用する装置設定情報を生成する。設定制御部440は、装置設定情報をプロトコル変換GW装置100へ送信する。
なお、上記のようにプロトコル変換GW装置100へ装置設定情報を送信することで設定を行うこととしてもよいし、プロトコル変換GW装置100からのルックアップに応じて、装置設定情報を送信することとしてもよい。
(システムの動作例)
次に、図4のシーケンス図を参照して、システム(特にプロトコル変換GW装置100)の動作を詳細に説明する。図4は、IoT端末1からクラウドAにデータを送信する場合のシーケンスを示している。なお、クラウドAからIoT端末1への方向の通信に関しては、一旦、図4のシーケンスによりIoT端末1からクラウドAへの接続が確立した後に行われる。
S101において、IoT端末1からヘッダ付きデータが送信される。このヘッダは、IoT端末1が使用するプロトコルに対応したヘッダであり、当該プロトコルに対応したポート番号が含まれている。例えば、当該プロトコルがHTTPである場合、HTTPヘッダとTCPポート番号がヘッダに含まれる。
本シーケンスの例においては、IoT端末1は携帯電話網に接続し、携帯電話網を介してアクセス網200にアクセスする。なお、個々のIoT端末1が携帯電話網に接続するかわりに、複数のIoT端末を収容するアクセスポイントが携帯電話網に接続することとしてもよい。携帯電話網に接続するための回線をアクセス回線と呼ぶ。アクセス回線は、携帯電話番号、MSISDN、IMSI等により識別される回線である。
アクセス網200において、ヘッダ付きデータに、アクセス回線に対応するIPアドレスが付与される。どのアクセス回線にどのIPアドレスを対応付けるかについては、管理装置400により管理されている。以降、ヘッダ付きデータにおけるヘッダに、このIPアドレスが含まれるものとして説明する。プロトコル変換GW装置100の端末接続部110は、このIPアドレスにより、受信したデータのアクセス回線を識別できる。
なお、アクセス回線を識別するために、IPアドレスを使用することは一例であり、IPアドレスを使用する方法以外の方法でアクセス回線を識別してもよい。
ヘッダ付きデータを受信したロードバランサ300は、受信したヘッダ付きデータのヘッダに含まれるポート番号に基づいて、ヘッダ付きデータを、ポート番号に対応するブローカへ振り分ける(S103)。
ヘッダ付きデータを受信した端末接続部110のブローカは、ヘッダ付きデータからヘッダを外し、データのみを取り出す(S104)。主要なプロトコルに対応した各ブローカのS104における動作は下記のとおりである。
HTTPブローカは、IP/TCP/HTTPヘッダを除くデータを取得する。MQTTブローカは、IP/TCP/MQTTヘッダを除くデータを取得する。TCPブローカは、IP/TCPヘッダを除くデータを取得する。UDPブローカは、IP/UDPヘッダを除くデータを取得する。
ヘッダ付きデータからヘッダを外し、データのみを取り出したブローカは、S105において、データに対して個別識別子を付与する。なお、個別識別子を改めて付与することは必須ではない。例えば、上記のIPアドレスを個別識別子として使用してもよい。
個別識別子は、クラウド接続部130において、データの宛先クラウド、及び当該宛先クラウドにデータを送信する際のプロトコル、及び送信方法(暗号化方法、メタデータ等)を識別するために使用される識別子である。
個別識別子等は、例えば次のようにしてプロトコル変換GW装置100に設定される。例えば、管理装置400は、ユーザから、IoT端末1のアクセス回線情報(例:携帯電話番号等の加入者情報)、当該IoT端末1から送出されるデータの宛先クラウドの情報、当該宛先クラウドにデータを送信する際のプロトコルの情報、送信方法の情報(暗号化処理のための証明書情報、メタデータ等)を設定情報として受信する。
管理装置400は、この設定情報に基づいて、アクセス回線に対応するIPアドレスと、それに対応する個別識別子と、当該個別識別子に対応する「宛先クラウド、プロトコル、送信方法」とを装置設定情報として生成し、記憶部430に格納するとともに、当該装置設定情報をプロトコル変換GW装置100に送信する。
プロトコル変換GW装置100の設定部140は、IPアドレス(アクセス回線)と個別識別子との対応情報を端末接続部110に通知し、端末接続部110は、この対応情報を例えばテーブルとして保持する。各ブローカは、ヘッダに含まれているIPアドレスと、当該テーブルの情報とから、データに付すべき個別識別子を取得することができる。
なお、これは一例である。上記のようなテーブルを保持することに代えて、各ブローカが、データへの個別識別子の付加を行う際に、管理装置400へのルックアップ(IPアドレスを用いた情報要求と、対応する個別識別子の取得)を行うこととしてもよい。クラウド接続部130の設定については後述する。
図4のS106において、端末接続部110におけるブローカは、個別識別子付きデータをキューイング部120に渡す。キューイング部120において、個別識別子付きデータがキューに格納される(S107)。キューがグループ分けされている場合、キューイング部120は、個別識別子に対応するグループのキューに当該個別識別子付きデータを格納する。
例えば、管理装置400からの設定により、キューと個別識別子との対応情報がテーブルとしてキューイング部120に備えられる。キューイング部120は、個別識別子付きデータにおける個別識別子と、当該テーブルの情報とに基づいて、当該個別識別子付きデータを格納すべきキューを決定し、決定したキューに当該個別識別子付きデータを格納する。
なお、本実施の形態において、キューイング部120を備えている理由は下記のとおりである。
端末接続部110のブローカが、ヘッダを外したデータをそのままクラウド接続部130における対応する接続モジュールに渡す構成とする場合、ブローカ単位にクラウド接続モジュールを紐付けることが必要になる。しかし、このような紐付けを行う構成では、ブローカから出力されるデータに対するクラウド接続プロトコルを変更あるいは拡張することが容易ではなくなり、プロトコルの拡張性が低下する。
そこで、本実施の形態では、ブローカからクラウド接続モジュールにデータを渡す前に、一旦データをキューイングすることで、変換前プロトコルと変換後プロトコルの組み合わせの拡張を容易に行うことを可能としている。
キューイング部120を備えることで上記の効果を得ることができるが、例えば頻繁な変更や拡張を必要としない用途においては、キューング部120を備えない構成とすることも可能である。
S108において、クラウド接続部130における接続モジュールは、キューに格納されている個別識別子付きデータにおける個別識別子を参照することにより、自身のプロトコルでの送信に対応する個別識別子が付された個別識別子付きデータをキューから取得する。例えば、MQTTS接続モジュールは、MQTTSに対応する個別識別子が付された個別識別子付きデータをキューから取得する。
なお、ブローカが受信するデータのプロトコルと、当該ブローカによりキューに格納され、読み出されたデータがクラウド向けに送信される際のプロトコルは同一である必要はない。例えば、MQTTでIoT端末1から送信されたデータが、HTTPSでクラウドAに送信されてもよい。
S109、S110において、個別識別子に対応する宛先のクラウドに、個別識別子に対応するプロトコル、及び送信方法でデータを送信する。
上記の「送信方法」に対応する処理には、例えば、宛先のクラウド向けインタフェースにおいて必要となる暗号化の処理、メタデータの付与などが含まれる。S109の送信データの作成は、該当プロトコルのヘッダ付与、暗号化処理、メタデータ付与等を行うことを示している。
メタデータとしては、例えば、オリジナルのデータのアクセス回線情報(例:MSISDN、IMSI)、アクセス回線と接続するデバイスの機体情報(例:モバイル機器の場合、IMEI)、IPアドレス等がある。また、メタデータは任意に設定したものを付与することとしてもよい。なお、個別識別子は内部識別子であるためデータから外される。
メタデータ付与の例として次のようなものがある。例えば、HTTPS接続モジュールは、暗号化処理前のHTTPヘッダにメタデータを付与する。MQTTS接続モジュールは、暗号化処理前のMQTTトピックにメタデータを付与する。Syslog接続モジュールは、暗号化処理前のSyslogアプリケーションデータにメタデータを付与する。これらの例において、メタデータが付加された後にデータに対して暗号化処理が行われる。
上記のような処理を可能とするための設定処理の例を次に説明する。プロトコル変換GW装置100の設定部140は、管理装置400から受信した装置設定情報に含まれる、個別識別情報と「宛先クラウド、プロトコル、送信方法」との対応情報をクラウド接続部130に通知し、クラウド接続部130は、この対応情報を例えばテーブルとして保持する。なお、メタデータは、「送信方法」の情報に含まれる。
クラウド接続部130における各接続モジュールは、キューに格納されている個別識別子付きデータにおける個別識別子と、当該テーブルの情報とから、自身に対応するプロトコルのデータを取得するととともに、取得したデータに対する宛先クラウド及び送信方法を決定することができる。
なお、これは一例である。上記のようなテーブルを保持することに代えて、各接続モジュールが、データのクラウドへの送信を行う際に、管理装置400へのルックアップ(個別識別子を用いた情報要求と、対応する「宛先クラウド、プロトコル、送信方法」の取得)を行うこととしてもよい。
(ハードウェア構成例)
プロトコル変換GW装置100、管理装置400はいずれも、例えば、コンピュータにプログラムを実行させることにより実現できる。このコンピュータは、物理的なコンピュータであってもよいし、クラウド上の仮想マシンであってもよい。プロトコル変換GW装置100、管理装置400を総称して「装置」と呼ぶ。なお、以下で説明するようなハードウェア構成にてプロトコル変換GW装置100や管理装置400を実現することは一例である。前述したように、本実施の形態では、プロトコル変換GW装置100をコンテナアプリケーションとして動作させるため、物理的ハードウェアを抽象化したPaaS上で動作可能である。
すなわち、当該装置は、コンピュータに内蔵されるCPUやメモリ等のハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
図5は、上記コンピュータのハードウェア構成例を示す図である。図5のコンピュータは、それぞれバスBSで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、入力装置1007、出力装置1008等を有する。なお、これらのうち、一部の装置を備えないこととしてもよい。例えば、表示を行わない場合、表示装置1006を備えなくてもよい。
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、当該装置に係る機能を実現する。インタフェース装置1005は、ネットワークに接続するためのインタフェースとして用いられ、送信部及び受信部として機能する。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。
(実施の形態のまとめ)
以下、実施の形態のまとめとして、詳細な課題や効果の例について説明する。実施の形態で説明した技術の効果を説明するために、まず、効果に対応する、従来技術の詳細な課題を説明する。ここでの従来技術は、IoT端末側でクラウド接続に必要な実装や設定、暗号化処理等を行う技術であることを想定している。
なお、以下では複数の課題と、それらに対応する複数の効果を詳細に説明しているが、これら複数の効果は本実施の形態に係る技術で得られる効果の例であり、本発明の実施技術において、以下で説明する複数の効果のうちの1つ又は複数の効果が得られないこととしてもよい。
<IoT端末のトラフィック量増加によるコストの肥大化>
アクセス回線としてモバイル(セルラー)回線を利用する場合に、実際に送りたい生データに対して暗号化処理で付与されるオーバーヘッドによって送信するデータ自体が大きくなる。そのため、モバイル回線が従量課金の場合、利用料/コストが大きくなる。
<IoT端末にて暗号化処理を実現するコスト>
IoT端末に暗号化処理を搭載する場合、下記の対応が不可欠となるため、IoT端末そのものが高コスト化する。
(1)暗号化ライブラリーを処理できるCPU、Memory実装等のためのハードコストが増加する。
(2)暗号化処理を意識してのデバイス実装/アプリケーション開発が必要となる。
<IoT端末へのプロビジョニング作業の肥大化による懸念>
IoT端末内のデータをクラウドに送信する場合に、クラウド設定情報のIoT端末へのプロビジョニングが必要となるが、IoT端末が大量に増えた場合に、膨大な作業量となる。
<接続先クラウドのインタフェースへの依存>
クラウドサービスによっては、HTTPSやMQTTSなどの暗号化インタフェースしか提供していないなど、IoT端末側でアプリケーションの暗号化を求められるものが存在する。一方でクラウドサービスが追加する新たなアプリケーションやプロトコルへの早期対応が求められる。
<対応プロトコルを拡張する場合の柔軟性の課題>
送信元となるIoT端末はデプロイ後の設定変更等が必要であり、IoT端末が増大するほど、オペレーションコストが高くなる。一方で、利用するクラウドサービスを変更したい場合や、クラウドのインタフェースとして既存IoT端末で利用しているプロトコルとは違うものを使いたいケースにおいては、IoT端末側とクラウド側で異なるプロトコル変換機能を都度実装する必要があり、柔軟な拡張が難しい。
<接続先クラウドの新規機能への対応と商用環境構築に関するコスト>
クラウドサービスは日々更新され、新たなプロトコル/インタフェースへの早急な対応が求められるため、マイクロサービスとしてのアプリケーション開発から商用へ適用するためのデプロイ作業に関する人的コストの増大が発生する。
<ベンダーロックイン/最初にデプロイした環境への依存>
新たなアプリケーションを開発し、サービス提供していくにあたって、最初に構築したハードウェアのスペック等、アプリケーションを構築するオンプレミスやPaaS等のプラットフォーム動作環境から他のプラットフォームへの移設が困難となり、将来初期構築時とは違うプラットフォームのほうがコスト最適な場合でも、既存のデプロイ環境から抜け出せないロックイン状態となるリスクも存在する。
上記のような課題に対応して、既に詳細に説明したように、本実施の形態では、IoT端末側にクラウド接続情報や暗号化処理機能を持たせずに、簡易かつセキュアにIoT端末とクラウド間の通信を行うためのプロトコル変換機能及びクラウドアダプタ機能を、プロトコル変換GW装置100により実現している。
(1)プロトコル変換機能
本実施の形態のように、アクセス回線として、モバイル(セルラー)回線を利用する場合には、IoT端末(あるいはモデム等のアクセスポイント)とモバイル網間は暗号化されているため、IoT端末が送信するアプリケーションのデータ自体はHTTPSやMQTTSではなく、HTTP、MQTTの形でよい。
プロトコル変換機能を構成しているプロトコル変換GW装置100におけるブローカがアプリケーションデータのみ抽出して、個別識別子を付与し、キューイング/データストアを経由して、クラウドアダプタ機能としてのクラウド接続部130に渡す。
(2)クラウドアダプタ機能
クラウド毎に異なる接続方式、鍵管理、メタデータ付与をプロトコル変換GW装置100で代理提供することとしており、これにより、各種クラウドサービスへの柔軟な接続を実現している。
クラウドアダプタ機能により、IoT端末追加時に必要となる作業を簡略化することができる。クラウドアダプタ機能(クラウド接続部130)において、必要に応じて利用プロトコルのアプリケーションデータフォーマットに合わせたアプリケーションデータの生成を行って、メタデータの付与と暗号化処理を施した後、インターネットあるいは閉域網経由でクラウドのインタフェースに併せて変換したデータを送信する。なお、クラウドアダプタ機能(クラウド接続部130)からクラウドへ暗号化したインタフェースでデータ送信を行うことができるので、閉域接続を行わなくてもよい。
(3)コンテナベースのアプリケーション開発
プロトコル変換GW装置100を実現するためのソフトウェア(ブローカ、接続モジュール等)については、例えば、OSS(Open Source Software)ベースのKubernetes(登録商標)をプラットフォームとしたコンテナを利用する。
上記により、開発環境であるステージング環境と、商用のプロダクション環境をアプリケーションから見て同じプラットフォームで構築し、デプロイすることが可能となる。これにより、CI/CDを可能とし、かつコンテナオーケストレータの機能を利用することで、オートスケール/オートリカバリーといった自動拡張や自動復旧によるオペレーションの簡素化を併せて実現することが可能となる。なお、管理装置400がコンテナオーケストレータの機能を有することとしてもよい。
OSSベースのコンテナ上でアプリケーションを開発することで、オンプレミスやPaaS(Platform as a Service)の動作環境をアプリケーションから隠蔽/抽象化することができ、初期構築時のプラットフォームからの移植性が向上する。
以下、上記のような機能を備えるプロトコル変換GW装置100を導入することにより、前述した課題が解決されることについて、前述した課題毎に説明する。
<IoT端末のトラフィック量増加によるコストの肥大化>
IoT端末とクラウドの間にあるプロトコル変換GW装置100が暗号化処理を行うため、IoT端末側でアプリケーションの暗号化処理が不要となる。これによりIoT端末から発信されるデータのトラフィック量を軽減できる。
<IoT端末にて暗号化処理を実現するコスト>
IoT端末とクラウドの間にあるプロトコル変換GW装置100が暗号化処理を行うため、IoT端末側でアプリケーションの暗号化処理が不要となる。そのためIoT端末のハードコストを削減できる。
<IoT端末へのプロビジョニング作業の肥大化による懸念>
IoT端末からの送信先を一律プロトコル変換GW装置100とすることで、IoT端末毎に異なる設定値を必要とせず、IoT端末へ統一したキッティング情報をセットすればよいため、プロビジョニング作業の簡素化が図れる。IoT端末のデータ自体は、例えば端末単位に紐づいたクラウド設定情報を基に目的のクラウドへプロトコル変換GW装置100から送信することができる。
<接続先クラウドのインタフェースへの依存>
接続先クラウドに依存するインタフェースについての処理は、プロトコル変換GW装置100における対応プロトコルの接続モジュールが実行する。そのため、IoT端末はHTTPやMQTTなどの一般的なプロトコルを利用して、同一の宛先であるプロトコル変換GW装置100へデータ送信すればよい。
<対応プロトコルを拡張する場合の柔軟性の課題>
プロトコル変換GW装置100において、IoT端末と通信しアプリケーションデータを抽出するブローカ部分と、データを格納するキューイング部分と、クラウドと通信しクラウドのインタフェースに合わせてデータを生成するクラウド接続モジュールとに分離した構成を採用したことで、IoT端末とプロトコル変換GW装置100との間で利用するプロトコルと、クラウドとプロトコル変換GW装置100との間で利用するプロトコルとを分離できるようになり、IoT端末が利用するプロトコルに依らずに、クラウドに対して所望のプロトコルでデータ送信を行うことが可能となる。
<接続先クラウドの新規機能への対応と商用環境構築に関するコスト>
プロトコル変換GW装置100において使用されるブローカやクラウド接続モジュールは、例えばKubernetes(登録商標)をプラットフォームとしたコンテナとして作成される。よって、ステージング環境とプロダクション環境双方でアプリケーションの動作環境を統一することができ、アプリケーションのデプロイの簡素化を実現することができる。
また、コンテナに付随するオーケストレーション機能を利用することが可能となり、オートスケールやオートリカバリーといったリソース需要の拡大に伴う自動拡張や、コンテナ障害時の自動復旧などと、オペレーションコストの削減とを両立することができる。
<ベンダーロックイン/最初にデプロイした環境への依存>
本実施の形態に係るプロトコル変換GW装置100において、OSSベースのコンテナ上のアプリケーションモジュールを使用する場合には、モジュールが動作するプラットフォームの動作環境を隠蔽/抽象化することが可能となり、初期構築するプラットフォームがオンプレミスであっても、PaaS等のクラウド環境でも、モジュールの移植性が容易になり、コスト最適なプラットフォームでのサービス提供が可能となる。
(付記)
本明細書には、少なくとも下記の各項に記載したゲートウェイ装置、データ送信方法、及びプログラムが記載されている。
(第1項)
端末とクラウドとの間に備えられるゲートウェイ装置であって、
前記端末から送信されたヘッダ付きデータを受信し、当該ヘッダ付きデータのヘッダを外してデータを取得する端末接続部と、
前記データを宛先クラウドへ送信するための処理を前記データに施すことにより送信データを生成し、当該送信データを前記宛先クラウドへ送信するクラウド接続部と
を備えるゲートウェイ装置。
(第2項)
前記端末接続部により取得された前記データを格納するキューイング部を更に備え、
前記クラウド接続部は、前記キューイング部から前記データを取得する
第1項に記載のゲートウェイ装置。
(第3項)
前記端末接続部は、前記データに識別子を付与し、識別子付きデータを前記キューイング部に格納し、前記クラウド接続部は、前記識別子に基づいて、前記送信データを生成する
第2項に記載のゲートウェイ装置。
(第4項)
前記端末接続部は、前記端末と前記ゲートウェイ装置との間でデータの送信に使用されるプロトコル毎にブローカを備え、あるプロトコルで送信されたデータは、当該プロトコルに対応するブローカが受信する
第1項ないし第3項のうちいずれか1項に記載のゲートウェイ装置。
(第5項)
前記クラウド接続部は、前記ゲートウェイ装置と前記クラウドとの間でデータの送信に使用されるプロトコル毎に接続モジュールを備え、あるプロトコルに対応する接続モジュールは、当該プロトコルに対応する送信データを生成する
第1項ないし第4項のうちいずれか1項に記載のゲートウェイ装置。
(第6項)
前記データを宛先クラウドへ送信するための前記処理は、メタデータの付与及び暗号化処理を含む
第1項ないし第5項のうちいずれか1項に記載のゲートウェイ装置。
(第7項)
端末とクラウドとの間に備えられるゲートウェイ装置が実行するデータ送信方法であって、
前記端末から送信されたヘッダ付きデータを受信し、当該ヘッダ付きデータのヘッダを外してデータを取得するステップと、
前記データを宛先クラウドへ送信するための処理を前記データに施すことにより送信データを生成し、当該送信データを前記宛先クラウドへ送信するステップと
を備えるデータ送信方法。
(第8項)
コンピュータを、第1項ないし第6項のうちいずれか1項に記載の前記ゲートウェイ装置における各部として機能させるためのプログラム。
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
1 IoT端末
100 プロトコル変換GW装置
110 端末接続部
120 キューイング部
121~123 キュー
130 クラウド接続部
140 設定部
200 アクセス網
300 ロードバランサ
400 管理装置
410 ユーザIF
420 情報管理部
430 記憶部
440 設定制御部
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置
1008 出力装置

Claims (10)

  1. 端末とクラウドとの間に備えられるゲートウェイ装置であって、
    前記端末から送信されたヘッダ付きデータを受信し、当該ヘッダ付きデータのヘッダを外してデータを取得する端末接続部と、
    前記データを宛先クラウドへ送信するための処理を前記データに施すことにより送信データを生成し、当該送信データを前記宛先クラウドへ送信するクラウド接続部と、
    前記端末接続部により取得された前記データを格納するキューイング部と、を備え、
    前記クラウド接続部は、前記キューイング部から前記データを取得する
    ゲートウェイ装置。
  2. 前記端末接続部は、前記データに識別子を付与し、識別子付きデータを前記キューイング部に格納し、前記クラウド接続部は、前記識別子に基づいて、前記送信データを生成する
    請求項に記載のゲートウェイ装置。
  3. 端末とクラウドとの間に備えられるゲートウェイ装置であって、
    前記端末から送信されたヘッダ付きデータを受信し、当該ヘッダ付きデータのヘッダを外してデータを取得する端末接続部と、
    前記データを宛先クラウドへ送信するための処理を前記データに施すことにより送信データを生成し、当該送信データを前記宛先クラウドへ送信するクラウド接続部と、を備え、
    前記端末接続部は、前記端末と前記ゲートウェイ装置との間でデータの送信に使用されるプロトコル毎にブローカを備え、あるプロトコルで送信されたデータは、当該プロトコルに対応するブローカが受信する
    ゲートウェイ装置。
  4. 端末とクラウドとの間に備えられるゲートウェイ装置であって、
    前記端末から送信されたヘッダ付きデータを受信し、当該ヘッダ付きデータのヘッダを外してデータを取得する端末接続部と、
    前記データを宛先クラウドへ送信するための処理を前記データに施すことにより送信データを生成し、当該送信データを前記宛先クラウドへ送信するクラウド接続部と、を備え、
    前記クラウド接続部は、前記ゲートウェイ装置と前記クラウドとの間でデータの送信に使用されるプロトコル毎に接続モジュールを備え、あるプロトコルに対応する接続モジュールは、当該プロトコルに対応する送信データを生成する
    ゲートウェイ装置。
  5. 端末とクラウドとの間に備えられるゲートウェイ装置であって、
    前記端末から送信されたヘッダ付きデータを受信し、当該ヘッダ付きデータのヘッダを外してデータを取得する端末接続部と、
    前記データを宛先クラウドへ送信するための処理を前記データに施すことにより送信データを生成し、当該送信データを前記宛先クラウドへ送信するクラウド接続部と、を備え、
    前記データを宛先クラウドへ送信するための前記処理は、メタデータの付与及び暗号化処理を含む
    ゲートウェイ装置。
  6. 端末とクラウドとの間に備えられるゲートウェイ装置が実行するデータ送信方法であって、
    前記端末から送信されたヘッダ付きデータを受信し、当該ヘッダ付きデータのヘッダを外してデータを取得する端末接続ステップと、
    前記端末接続ステップにより取得された前記データをキューイング部に格納するキューイングステップと、
    前記データを宛先クラウドへ送信するための処理を前記データに施すことにより送信データを生成し、当該送信データを前記宛先クラウドへ送信するクラウド接続ステップと、を備え、
    前記クラウド接続ステップにおいて、前記キューイング部から前記データを取得する
    データ送信方法。
  7. 端末とクラウドとの間に備えられるゲートウェイ装置が実行するデータ送信方法であって、
    前記端末から送信されたヘッダ付きデータを受信し、当該ヘッダ付きデータのヘッダを外してデータを取得する端末接続ステップと、
    前記データを宛先クラウドへ送信するための処理を前記データに施すことにより送信データを生成し、当該送信データを前記宛先クラウドへ送信するステップと、を備え、
    前記ゲートウェイ装置は、前記端末と前記ゲートウェイ装置との間でデータの送信に使用されるプロトコル毎にブローカを備え、前記端末接続ステップにおいて、あるプロトコルで送信されたデータは、当該プロトコルに対応するブローカが受信する
    データ送信方法。
  8. 端末とクラウドとの間に備えられるゲートウェイ装置が実行するデータ送信方法であって、
    前記端末から送信されたヘッダ付きデータを受信し、当該ヘッダ付きデータのヘッダを外してデータを取得するステップと、
    前記データを宛先クラウドへ送信するための処理を前記データに施すことにより送信データを生成し、当該送信データを前記宛先クラウドへ送信するクラウド接続ステップと、を備え、
    前記ゲートウェイ装置は、前記ゲートウェイ装置と前記クラウドとの間でデータの送信に使用されるプロトコル毎に接続モジュールを備え、前記クラウド接続ステップにおいて、あるプロトコルに対応する接続モジュールは、当該プロトコルに対応する送信データを生成する
    データ送信方法。
  9. 端末とクラウドとの間に備えられるゲートウェイ装置が実行するデータ送信方法であって、
    前記端末から送信されたヘッダ付きデータを受信し、当該ヘッダ付きデータのヘッダを外してデータを取得するステップと、
    前記データを宛先クラウドへ送信するための処理を前記データに施すことにより送信データを生成し、当該送信データを前記宛先クラウドへ送信するステップと、を備え
    前記データを宛先クラウドへ送信するための前記処理は、メタデータの付与及び暗号化処理を含む
    データ送信方法。
  10. コンピュータを、請求項1ないしのうちいずれか1項に記載の前記ゲートウェイ装置における各部として機能させるためのプログラム。
JP2021036580A 2021-03-08 2021-03-08 ゲートウェイ装置、データ送信方法、及びプログラム Active JP7177873B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021036580A JP7177873B2 (ja) 2021-03-08 2021-03-08 ゲートウェイ装置、データ送信方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021036580A JP7177873B2 (ja) 2021-03-08 2021-03-08 ゲートウェイ装置、データ送信方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2022136793A JP2022136793A (ja) 2022-09-21
JP7177873B2 true JP7177873B2 (ja) 2022-11-24

Family

ID=83311936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021036580A Active JP7177873B2 (ja) 2021-03-08 2021-03-08 ゲートウェイ装置、データ送信方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP7177873B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019530376A (ja) 2017-05-09 2019-10-17 ノキア オブ アメリカ コーポレーション IoTデバイスコネクティビティ、ディスカバリ、ネットワーキング
US20200126050A1 (en) 2017-01-19 2020-04-23 Nokia Technologies Oy IoT GATEWAY AND DESTINATION CLOUD SERVER
JP2020135816A (ja) 2019-02-26 2020-08-31 株式会社日立製作所 不正通信検知装置および不正通信検知プログラム
JP2022016935A (ja) 2020-07-13 2022-01-25 株式会社ソラコム データ処理のための装置、方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200126050A1 (en) 2017-01-19 2020-04-23 Nokia Technologies Oy IoT GATEWAY AND DESTINATION CLOUD SERVER
JP2019530376A (ja) 2017-05-09 2019-10-17 ノキア オブ アメリカ コーポレーション IoTデバイスコネクティビティ、ディスカバリ、ネットワーキング
JP2020135816A (ja) 2019-02-26 2020-08-31 株式会社日立製作所 不正通信検知装置および不正通信検知プログラム
JP2022016935A (ja) 2020-07-13 2022-01-25 株式会社ソラコム データ処理のための装置、方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小野 良司 Ryoji Ono,電子情報通信学会2017年総合大会講演論文集 通信2 PROCEEDINGS OF THE 2017 IEICE GENERAL CONFERENCE,第184頁

Also Published As

Publication number Publication date
JP2022136793A (ja) 2022-09-21

Similar Documents

Publication Publication Date Title
US11128493B2 (en) Method for implementing residential gateway service function, and server
EP3133794B1 (en) Network function virtualization network system
EP2849064B1 (en) Method and apparatus for network virtualization
CN104521196A (zh) 针对虚拟网络分组流的物理路径确定
WO2024067338A1 (zh) 云组网系统、安全访问方法、设备及存储介质
EP3133798A1 (en) Management device, control device, and managment method
JP2023543831A (ja) マイクロサービスベースのサービスメッシュシステムおよびサービス指向アーキテクチャ管理方法
US11558246B2 (en) Implementing service function chains
Mouradian et al. Network functions virtualization architecture for gateways for virtualized wireless sensor and actuator networks
JP2014207594A (ja) 障害影響範囲を特定するためのプログラム及び情報処理装置
JP7177873B2 (ja) ゲートウェイ装置、データ送信方法、及びプログラム
JP2017034309A (ja) 仮想スイッチ制御システム及び方法
Corici et al. A solution for provisioning reliable M2M infrastructures using SDN and device management
KR101953584B1 (ko) Nfv 서비스 제공자, vnf 서비스 제공자, 이들을 포함하는 서비스 체이닝 확장 시스템 및 서비스 체이닝 확장 방법
KR101934908B1 (ko) Sdn 기반의 통합 라우팅에 의한 피씨 전원 제어 방법
JP5063726B2 (ja) 仮想ノード装置のコンフィグ制御方法
KR101883712B1 (ko) 네트워크 기능 가상화 시스템을 운용하는 방법, 장치 및 컴퓨터 프로그램
WO2017145389A1 (ja) ノード装置
Yamanaka et al. AutoVFlow: Virtualization of large-scale wide-area OpenFlow networks
JP7463458B2 (ja) 設定情報提供装置、設定情報提供方法、及びプログラム
US20230094059A1 (en) Transfer apparatus, data processing method and program
KR20160062686A (ko) 호스트 추상화를 이용한 sdn 네트워크 시스템 및 그 구현방법
CN114928589A (zh) 数据传输方法、数据传输装置、计算机可读介质及设备
JP6264737B2 (ja) 負荷分散システム
CN118282866A (zh) 基于容器集群的多租户隔离部署方法、系统、设备及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220905

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221111

R150 Certificate of patent or registration of utility model

Ref document number: 7177873

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150