(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-27
(45)【発行日】2023-05-10
(54)【発明の名称】モノの記述モデルに基づいてUSBデバイスをモノのインターネット(IoT)のデバイスとして稼働させることができる方法及びシステム
(51)【国際特許分類】
G06F 3/00 20060101AFI20230428BHJP
G06F 13/38 20060101ALI20230428BHJP
G16Y 20/20 20200101ALI20230428BHJP
【FI】
G06F3/00 A
G06F13/38 320Z
G06F13/38 350
G16Y20/20
(21)【出願番号】P 2021529511
(86)(22)【出願日】2019-09-11
(86)【国際出願番号】 CN2019105261
(87)【国際公開番号】W WO2020052576
(87)【国際公開日】2020-03-19
【審査請求日】2021-02-03
(32)【優先日】2018-09-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521051266
【氏名又は名称】ユー-シィング テクノロジー リミテッド
【氏名又は名称原語表記】U-THING TECHNOLOGY LTD
【住所又は居所原語表記】Unit 2001, 20/F, Mongkok Commercial Centre, 16 Argyle Street, Mongkok, Kowloon, Hong Kong
(74)【代理人】
【識別番号】110002262
【氏名又は名称】TRY国際弁理士法人
(72)【発明者】
【氏名】ン ウィング ホン
【審査官】打出 義尚
(56)【参考文献】
【文献】米国特許出願公開第2012/0140401(US,A1)
【文献】米国特許出願公開第2015/0331821(US,A1)
【文献】特開2009-098977(JP,A)
【文献】特開2013-200694(JP,A)
【文献】特開2005-102156(JP,A)
【文献】国際公開第2018/125053(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/00
G06F 13/38
G16Y 20/20
(57)【特許請求の範囲】
【請求項1】
USB I/OデバイスをIoTデバイスとして稼働させることができる方法であって、
USB I/Oデバイスを用意すること、
USB信号ポートを有するネットワークインタフェースモジュールを用意することであって、前記USB I/OデバイスがUSB信号ポートに挿入され、前記ネットワークインタフェースモジュールは、ネットワークとデータ通信するインタフェース、USBホストコントローラー回路、前記USBホストコントローラー回路とデータ通信するUSB通信インタフェース、及び、前記USB通信インタフェースとデータ通信する論理回路をさらに含む
ネットワークインタ
フェースモジュールを提供することと、
インターネットとデータ通信するとともに、特定のUSB拡張を有する複数のモノの記述(Thing Description、TD)ドキュメントを記憶しているデータベースを含むセントラルリポジトリを用意することであって、モノの記述(TD)ドキュメントのそれぞれが特定のUSB I/Oデバイスと対応していること、
前記ネットワークインタフェースモジュールにより、前記ネットワークインタフェースモジュールの前記USB信号ポートに挿入された前記USB I/Oデバイスのサプライヤー及び製品識別子を取得すること、
前記ネットワークインタフェースモジュールにより、前記セントラルリポジトリの前記データベースに、取得したサプライヤー及び製品識別子と対応する特定のUSB拡張を有する前記モノの記述(TD)ドキュメントを照会すること、
前記ネットワークインタフェースモジュールにより、取得したサプライヤー及び製品識別子と対応するUSB拡張を有する前記モノの記述(TD)ドキュメントを取り出すこと、及び、
取り出したモノの記述(TD)ドキュメント及びUSBホストコントローラーの論理回路を利用して、USB信号ポートに挿入された前記USB I/Oデバイスと交換性を持つ通信パイプを構築すること、を含み、
取り出したモノの記述(TD)ドキュメント及びUSBホストコントローラーの論理回路を利用するステップは、
前記通信パイプを構築するために、前記ネットワークインタフェースモジュールにより、取り出したモノの記述(TD)ドキュメントを解析することをさらに含み、
前記解析するステップは、
前記通信パイプを用いて通信ソケットを確立し、USB信号ポートに挿入された前記USBI/Oデバイスが
モノインタラクションモデルに基づいて稼働できるようにすることをさらに含み、
前記モノインタラクションモデルは、モノのメタデータ及びモノのアクセスポイントのインタフェースを記述するためのデータモデルであり、前記モノの記述(TD)ドキュメントの属性/動作/イベントというインタラクションパターンを持つ、
ことを特徴とする方法。
【請求項2】
サプライヤー及び製品識別子を取得することは、
前記USB I/Oデバイスとのインタフェースを確立し、サプライヤー及び製品識別子を取得するために、前記ネットワークインタフェースモジュールにより、USB信号ポートに挿入された前記USB I/Oデバイス上で列挙プロセスを実行することを含む
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記ネットワークインタフェースモジュールは、取得したサプライヤー及び製品識別子を照会用のキーワードとして使用し、前記セントラルリポジトリをアクセスして照会する
ことを特徴とする請求項1に記載の方法。
【請求項4】
USBサプライヤー及び製品識別子により、前記セントラルリポジトリのデータベースに記憶された、特定のUSB拡張を有する複数のモノの記述ドキュメントを索引する
ことを特徴とする請求項1に記載の方法。
【請求項5】
前記ネットワークインタフェースモジュールがインターネットを用いて前記セントラルリポジトリを照会すると共に前記特定のUSB拡張を有する前記モノの記述ドキュメントを取り出すように許可するウェブサービス(web service)を、前記セントラルリポジトリ上で提供することをさらに含む
ことを特徴とする請求項1に記載の方法。
【請求項6】
USB I/OデバイスをIoTデバイスとして稼働させることができる方法であって、
少なくとも一つのUSB I/Oデバイスを用意すること、
ローカル通信ネットワークを用意すること、
インターネットとデータ通信する第一インタフェース、及び、前記ローカル通信ネットワークとデータ通信する第二インタフェースを含む、IoTネットワークゲートウェイを用意すること、
プロセッサー、前記ローカル通信ネットワークとデータ通信するインタフェース、及び、USB信号ポートを含む少なくとも一つの小型インタフェースモジュール(Thin Interface Module)を用意することであって、前記USB I/OデバイスがUSB信号ポートに挿入され、小型インタフェースモジュールのプロセッサーは、USB信号ポートに挿入された前記USB I/OデバイスのUSB列挙を実現するファームウェアを含み、前記小型インタフェースモジュールは、USBホストコントローラー回路、USBホストコントローラー回路とデータ通信するUSB通信インタフェース、及び、USB通信インタフェースとデータ通信する論理回路を含む小型インターフェースモジュールを提供することと、
前記
IoTネットワークゲートウェイが、モノインタラクションモデルに基づいて前記USB信号ポートに挿入された前記USBI/Oデバイスの機能を記述するモノの記述(TD)
ドキュメントを解析し、
モノインタラクションモデルは、モノのメタデータ及びモノのアクセスポイントのインタフェースを記述するためのデータモデルであり、前記モノの記述(TD)ドキュメントの属性/動作/イベントというインタラクションパターンを持ち、
インターネットとデータ通信するとともに、特定のUSB拡張を有する複数のモノの記述(TD)ドキュメントを記憶しているデータベースを含むセントラルリポジトリを用意することであって、モノの記述(TD)ドキュメントのそれぞれが特定のUSB I/Oデバイスと対応していること、
前記USB I/Oデバイスのサプライヤー及び製品識別子を取得するために、前記小型インタフェースモジュールのプロセッサーにより、USB信号ポートに挿入された前記USB I/Oデバイスの列挙プロセスを実行すること、
前記IoTネットワークゲートウェイにより、前記セントラルリポジトリのデータベースに、取得したサプライヤー及び製品識別子と対応する特定のUSB拡張を有するモノの記述(TD)ドキュメントをサーチすること、
前記IoTネットワークゲートウェイにより、取得したサプライヤー及び製品識別子と対応するUSB拡張を有する前記モノの記述(TD)ドキュメントを取り出すこと、及び、
取り出したモノの記述(TD)ドキュメント及びUSBホストコントローラー回路の論理回路を利用して、(i)USB信号ポートに挿入された前記USB I/Oデバイスと交換性を持つ通信パイプを構築することを含み、
取り出したモノの記述(TD)ドキュメント及びUSBホストコントローラーの論理回路を利用するステップは、
前記IoTネットワークゲートウェイにより、取り出したモノの記述(TD)ドキュメントを解析
された情報により前記通信パイプを構築することをさらに含み、
前記
構築するステップは、
前記通信パイプを用いて通信ソケットを確立し、USB信号ポートに挿入された前記USBI/Oデバイスが前記モノインタラクションモデルに基づいて稼働できるようにすることをさらに含む
ことを特徴とする方法。
【請求項7】
前記小型インタフェースモジュールのプロセッサーのそれぞれは、
ローカル通信ネットワーク上でUSBデータ転送の通信プロトコルを実行して、前記ローカル通信ネットワーク上で、前記IoTネットワークゲートウェイを往復するUSBデータを転送するための高信頼性且つ分散式のUSB通信パイプを提供するようにプログラミングされる
ことを特徴とする請求項6に記載の方法。
【請求項8】
前記IoTネットワークゲートウェイのプロセッサーは、
前記IoTネットワークゲートウェイが前記小型インタフェースモジュールを発見できると共に前記IoTネットワークゲートウェイと前記小型インタフェースモジュールとの間にネットワーク接続を確立できるようにするファームウェアを含む
ことを特徴とする請求項6に記載の方法。
【請求項9】
前記IoTネットワークゲートウェイのプロセッサーは、
前記IoTネットワークゲートウェイが、前記セントラルリポジトリに、前記小型インタフェースモジュールのUSB信号ポートに挿入された前記USB I/Oデバイスのモノの記述ドキュメントを照会できるようにするファームウェアを含む
ことを特徴とする請求項6に記載の方法。
【請求項10】
前記IoTネットワークゲートウェイのプロセッサーは、
前記IoTネットワークゲートウェイが、モノの記述(TD)ドキュメントを解析して、前記小型インタフェースモジュールのUSB信号ポートに挿入された前記USB I/Oデバイスとの通信を確立できるようにするファームウェアを含む
ことを特徴とする請求項6に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セントラルリポジトリから取り出された対応するモノの記述(TD、Thing Description)ドキュメントを用いて、USBデバイスをモノのインターネット(IoT、Internet of Things)デバイスにコンバートするための方法及びシステムに関する。
【背景技術】
【0002】
例えばスマートフォンやタブレットなどの携帯デバイスの普及に伴い、モノのインターネット(IoT)に数多くの注目が集められている。これらの携帯デバイスは、データネットワーク(例えばインターネット)により、情報を表示し、異なる電子又は電気デバイスを遠隔制御するためのものである。
【発明の概要】
【発明が解決しようとする課題】
【0003】
ユニバーサルシリアルバス(USB)は、パーソナルコンピューターとその周辺デバイスとの接続、通信、及び、給電用の電気配線、コネクター及びプロトコルについての業界標準である。例えば、USBは、最初に、パーソナルコンピューター向けの周辺バスとして定義され、すべてのI/Oインタフェースを単一の規格バスとして統合してきた。USBの規格は、段々に発展するのに伴い、例えば、パラレルプリンタポート、シリアルポート及びビデオポートなどの他の規格による接続に取って代わってきた。USBは、最近、その更新済みのバージョンがUSB 3.1であり、データスピード及び給電容量が大幅に向上するので、USBデバイスが最大10Gbpsというスピードでデータを転送できると共に最大100Wの電力を提供できることになる。USBは、良好な定義とされるインタフェースの構造により、コンピューターの周辺デバイス以外に、数多くの電子デバイスに適用され得る。更新済みのUSB規格によると、例えば、家庭電化製品、音楽プレーヤーやビデオレコーダーなどに仕組み込まれているアプリケーションまでサポート範囲が拡大されている。これらのものは、USBソケットを有し、USBメモリをデータ記憶(例えば、音楽やビデオデータの記憶など)に利用できる。USBは、物理的な接続以外に、ユニークな論理アーキテクチャー定義を有しているので、パーソナルコンピューター(PC)と周辺デバイスとの間の通信を体系的に設定でき、あらゆる種類の周辺機能まで拡張できるようになる。電力転送プロトコル(Power Delivery、PD)が登場するにつれ、周辺デバイスの電力消費が100Wにも及ぶことから、周辺デバイスの機能が拡張される。このような拡張された機能により、USBデバイスは、PCの周辺デバイスのみならず、如何なる種類のI/Oデバイスにも適用され得る。例えば、現在、ほぼ全ての携帯電話は、USB-Cを、電力と通信のインタフェースとして利用している。従って、電力とスピードに対する要求がUSBインタフェースのサポート可能範囲に含まれていれば、USBインタフェースを次世代のI/Oデバイス(例えば家庭電化製品を含む)の規格として選択できる。
【0004】
図1を参照して、USBデバイス101及びUSBハブ103は、異なる種類のUSB周辺デバイスとインタフェーシングするために、元々、パーソナルコンピューター102及び対応するデバイスドライバープログラムだけと一緒に使われていた。通常のシステムでは、デバイスドライバープログラム204が必要となり(
図3参照)、そうすると、パーソナルコンピューター(PC)のオペレーティングシステム201により、特定のUSBハードウェアを駆動することが可能となる。各USBデバイスは、ユニークなデバイスドライバープログラム204により、或いは、対応する定義類別のドライバープログラムにより、上位層のアプリケーション層206がUSB I/Oを使用できる(
図3参照)ようになる。当分野によく知られているように、Windows OS 201には、カーネルモード202及びユーザモード203が含まれている。カーネルモード202には、カーネルモードクライアントドライバープログラム、USBホストコントローラー及びドライバープログラム205が含まれている。ユーザモード203には、ユーザモードクライアントドライバープログラム、Windows API及び上位層のアプリケーション層206が含まれている。USBデバイスドライバープログラム104は、ローカルから、オペレーティングシステムにロードされ、或いは、セントラルリポジトリ105(
図2参照)からリモートでオペレーティングシステムにロードされることができる。当該セントラルリポジトリ105は、サプライヤーのウェブサイトであってもよい。USB I/Oデバイスは、これらの特定のドライバープログラムに基づいて、ハードウェア及びオペレーティングシステムにおいて稼働する必要がある。USBデバイスは、主に、PCアプリケーションのために確立されたものであり、既存の定義済みデバイスの類別は、PCアプリケーション用に限定されている。IoTアプリケーションにUSBの接続技術を採用すると、USB I/Oデバイスのアプリケーションの多様性が広げられる。既存の定義済みデバイス類別は、IoTアプリケーションをサポートできない。従って、新たなデバイスドライバープログラムは、新たなUSBアプリケーションにとって必要なものである。デバイスドライバープログラムに対する元々の設計は、例えば、Windows、Linux(登録商標)又は他の組み込みOSといったペレーティングシステム(OS)に大きく依存されてしまう。もう一つの欠点は、デバイスドライバープログラムがOSの特定のバージョンにも依存しているということである。このことから、USB I/Oデバイスのメーカーによるデバイスドライバープログラムの開発や保守は、複雑となってしまう。
図1は、直接に、又は、USBハブ103を介して、USB周辺デバイス101とパーソナルコンピューター(PC)システム102との間に形成された標準接続を示している。
図1に示されている配置は、システムを中心とする通常のI/O配置であり、そのうち、含まれているI/Oデバイスがいずれも、パーソナルコンピューターのCPUシステム及びそのオペレーティングシステム(OS)の組み合わせに接続されると共に、この組み合わせにより制御される。すべてのI/O操作は、上位層のアプリケーション層206に基づいて確立される(
図3参照)。
【0005】
特に、通常のシステムでは、USBホストコントローラーは、列挙プロセスにより、すべてのUSBデバイスの記述子を識別する。そして、オペレーティングシステム(OS)は、特定のUSBデバイスと対応するUSBデバイスドライバープログラムをロードし、或いは標準類別のドライバープログラムを使用することにより、USBホストコントローラーを介して、対応するポートと通信パイプを確立する。USBデバイスドライバープログラムは、オペレーティングシステム(OS)の下で稼働して、下位層に位置するUSBシステムのソフトウェアを介して、接続されているUSBデバイスと特定の通信パイプを確立する。しかしながら、当該USBデバイスドライバープログラムは、オペレーティングシステム(OS)に依存しているので、OSを中心とするものである。その結果、USBデバイスのメーカーは、使用されているOSの規格に準じなければならない。OSに依存しているUSBデバイスドライバープログラムの主な欠点は、USBデバイスのユーザーがプラットフォームのハードウェア及びソフトウェアを選択する際の自由度が低く、使用されているOSの規格に準ずるしかない点である。
【0006】
USB I/Oデバイスをネットワークシステムとインタフェーシングするには、当該USB I/Oデバイスのために特定のドライバープログラムを確立することがなく、当該USB I/Oデバイスを変更することもなく、当該USB I/OデバイスをIoTデバイスとして機能させることができる、新しく改良された方法が望ましい。
【課題を解決するための手段】
【0007】
本発明は、セントラルリポジトリを利用して、特定のUSB I/Oスキーマと対応するUSB拡張を有するモノの記述(Thing Description、TD)ドキュメントを記憶して共有するシステム及び方法を提供する。ネットワークインタフェースモジュールは、USB I/Oサプライヤー及び製品識別子により、セントラルリポジトリを照会し、特定のUSB I/Oデバイスに対して、対応するモノの記述(TD)ドキュメントをダウンロードする。ネットワークインタフェースモジュールは、TDドキュメントを解析し、適正なウェブ・オブ・シングズ(WoT、Web of Things)データアーキテクチャーを確立し、このデータアーキテクチャーによって、ネットワークとUSB I/Oデバイスとの間にインタフェースを確立し、USB I/OデバイスをIoTデバイスにコンバートする。該当態様では、ネットワークインタフェースモジュールには、
図4に示されるように、モノの記述ドキュメントに従ってUSB I/Oを配置し、組み合わせられたシステムをIoTにコンバートする実行プログラムが記憶されている。
【0008】
従って、いくつかの実施例では、本発明は、あらゆるUSB I/OデバイスをIoTデバイスとして稼働させることができるようにするシステム及び方法を提供する。セントラルリポジトリは、モノの記述(TD)ドキュメントを配置して記憶するためのものであり、当該ドキュメントは、USB I/Oデバイスにおける特定のUSB機能と対応するWoTデータモデルを定義している。ネットワークインタフェースモジュールは、列挙プロセスを実行して、USB I/Oデバイスと対応するユニークなサプライヤーID(識別子)又はVID、及び、製品ID(識別子)又はPIDを取得する。ユニークなサプライヤーID及び製品ID識別子符は、インターネットを経由してセントラルリポジトリから対応するモノの記述(TD)ドキュメントを探して取り出す時に、照会用のキーワードとして用いられる。ネットワークインタフェースモジュールは、取り出したモノの記述(TD)ドキュメントにより、特定のUSB I/Oデバイスと交換性を持つデータ通信を構築して、USB I/OデバイスがIoTデバイスとしてネットワークとインタフェーシングして通信できるようにする。
【発明の効果】
【0009】
本発明は、以下の新たな特徴、メリット及び利点がある。
a)USB I/Oデバイスは、例えば、Microsoft Windows、Apple Mac OS、Chrome OS或いはLinuxオペレーティングシステムといった如何なる特定のオペレーティングシステム(OS)にも依存しなくなる。
b)OSを中心とするプラットフォームではなく、I/Oを中心とするプラットフォームに依存する。
c)インタフェースハードウェアプラットフォームのリソース需要が低減される。
d)特定のUSB I/Oデバイスに対して、デバイスドライバープログラムを実現する必要がなくなる。
e)デバイスドライバープログラムを開発したり保守したりする必要性が大幅に削減される。
f)USBデバイスのメーカーは、USBデバイスの機能を定義する際に、より大きい主導権があり、しかも、このような定義がモノの記述(TD)ドキュメントの一部になる。
g)特定のUSB I/Oデバイスに対して一つだけのモノの記述(TD)ドキュメントを構築することが許可され、構築したモノの記述(TD)ドキュメントが集中的に記憶され、そのうち、集中的に記憶したモノの記述(TD)ドキュメントが、永遠に如何なるプラットフォームにも使用され得る。
h)プラグアンドプレイという機能を持つ。
【0010】
以下の説明がUSB I/Oデバイスに対するものであるが、本発明がUSB I/Oアーキテクチャー以外のI/Oアーキテクチャー(例えば、PCI、サンダーボルトなど)を有するデバイスにも適用され、或いは、当該デバイスと一緒に適用されると理解され得るであろう。
【0011】
当該概要の部分には、大まかに本発明のいくつかの特徴及び利点を記載したが、本明細書の図面、明細書及び請求の範囲に基づいて、他の特徴、利点及び実施例がここで提示され、或いは、当業者にとって明らかである。従って、理解すべきところは、本発明の範囲は、同概要の部分に開示されている特定の実施例に限定されない。
【図面の簡単な説明】
【0012】
【
図1】システムを中心とする通常のUSB入力/出力の配置を示すブロック図であり、そのうち、USB周辺デバイスが、直接に、又は、USBハブを介してパーソナルコンピューター(PC)のシステムに接続される。
【
図2】USBデバイスドライバープログラムが、従来技術に従ってローカルから又はデータベースからリモートで、オペレーティングシステムにロードされるブロック図である。
【
図3】システムを中心とする通常のUSB I/O配置のオペレーティングシステム(OS)を示すブロック図である。
【
図4】本発明の実施例に係るネットワークインタフェースモジュールを示すブロック図であり、当該ネットワークインタフェースモジュールがUSB I/Oデバイスをネットワークとインタフェーシングして、USB I/OデバイスがIoTデバイスとして稼働できるようにする。
【
図5】本発明に係るI/Oを中心とするアーキテクチャーに基づいて入力/出力デバイスに接続されるモノのインターネット(IoT)ネットワークを示す図である。
【
図6】物理のIoTデバイスにおけるロジック又はプログラムによる記述をモデリングするためのウェブ・オブ・シングズ(WoT)、及び、モノの記述(TD)ドキュメントの図である。
【
図7】特定のUSBデバイスの機能、特性、インタフェース、通信、及び、データフォーマットのデバイス記述子を示す各層の図である。
【
図8】データが如何にUSBホストコントローラーからUSB I/Oデバイスに流れるかを提示するためのUSB通信モデルを示す図である。
【
図9】USB記述ドキュメントを解析して、USB I/OデバイスとインタフェーシングするためのUSBホストコントローラーを配置するMCUを示すブロック図である。
【
図10】ハードウェアロジックに、対応する通信プロセス及びデータ構成を理解・実施させて、USB I/Oデバイス操作を駆動するためのUSBデバイス記述モデルを示す図である。
【
図11】USB通信ソケット及び通信パイプに関するブロック図である。
【
図12】本発明の実施例のネットワークインタフェースモジュールに基づく一般的なハードウェア配置を示すブロック図である。
【
図13】セントラルリポジトリから取得された特定のUSB I/Oデバイス記述拡張を有するモノの記述(TD)ドキュメントとソフトウェア抽象化レイヤー構造との関連、及び、ネットワークインタフェースモジュール及びUSB I/Oデバイスの組み合わせを、IoTデバイスに必要な対応するWoTデータアーキテクチャーにコンバートするブロック図である。
【
図14】USB I/OデバイスからUSB IoTデバイスへのコンバートのブロック図であり、そのうち、セントラルリポジトリから特定のUSB拡張を有するモノの記述(TD)ドキュメントを取得し、ネットワークインタフェースモジュールのロジックを配置して、USB I/OデバイスをネットワークとインタフェーシングしてIoTデバイスにコンバートできるようにする。
【
図15】ネットワークインタフェースモジュールにモノの記述(TD)ドキュメントをフィードバックして、USB I/Oデバイスを例えばインターネットといったネットワークとデータ通信するIoTデバイスにコンバートできるようにする方法を実行するためのフローチャートである。
【
図16】本発明の他の実施例のブロック図であり、当該実施例は、ネットワークゲートウェイと小型インタフェース(Thin Interface)モジュールのクラスターとを、
図4に示すネットワークインタフェースモジュールに代えるものである。
【
図17】本発明の他の例示的実施例のブロック図であり、当該実施例は、
図16に示す実施例に基づいて電気配線通信(PLC)ネットワークを用いたものであり、そのうち、
図16に示される小型インタフェースモジュール及びネットワークゲートウェイがそれぞれPLC USB電源アダプタ及びPLCネットワークゲートウェイにより実現される。
【
図18】本発明の更に他の実施例を示す図であり、そのうち、ドキュメント購読者は、ネットワークとインタフェーシングしてセントラルリポジトリからUSB拡張を有するモノの記述(TD)ドキュメントを取得してから、取得したモノの記述(TD)ドキュメントを、ローカルに展開するための他のアプリケーションプログラムのフォーマットに変換する。
【
図19】本発明を利用したUSBアクアテラリウム制御センターのブロック図である。
【
図20】
図19に示されるUSBアクアテラリウム制御センターと同等するモノモデルイントラクションのテーブルである。
【
図21】
図19に示されるUSBアクアテラリウム制御センターのUSBエンドポイントの対応性を示す図である。
【
図22】
図19に示されるUSBアクアテラリウム制御センターのモノの記述(TD)ドキュメントにおけるイントラクション、通信ソケット及びUSB通信パイプの相互関係を示す図である。
【発明を実施するための形態】
【0013】
本文に言及する、「含み」、「含まれる」、「有する」などの用語又はあらゆる変形した用語とは、非排他的な包含という意味を指す。例えば、一連の要素を含む過程、方法、もの又は装置は、これらの要素だけに限定されるわけではなく、明示的に挙げられていない要素や、このような過程、方法、もの又は装置に固有の他の要素を含んでもよい。
【0014】
本文に言及する「 USB」とは、「ユニバーサルシリアルバス」を意味する。
本文に言及する「 I/O」とは、「 入力/出力」を意味する。
本文に言及する「 NIM」とは、「ネットワークインタフェースモジュール 」を意味する。
本文に言及する「 IoT 」とは、「 モノのインターネット」を意味する。
本文に言及する「 WoT」とは、「 ウェブ・オブ・シングズ」を意味する。
本文に言及する「 TD 」とは、「 モノの記述」を意味する。
本文に言及する「 OS 」とは、「 オペレーティングシステム」を意味する。
【0015】
本文に言及する、「ネットワーク」とは、互いに通信する複数のデバイスを指すべきであり、パーソナルエリアネットワーク(PAN)、無線パーソナルエリアネットワーク(WPAN)、ローカルエリアネットワーク(LAN)、無線ローカルエリアネットワーク(WLAN)、ワイドエリアネットワーク(WAN)、無線ワイドエリアネットワーク(WWAN)、メトロポリタンエリアネットワーク(MAN)、携帯電話ネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、或いはそれらのうち2つ又はより多くのネットワークの組み合わせを含むが、それらに限定されない。「ネットワーク」には、インターネット又はワールドワイドウェブを用いて互いに通信を行う複数のデバイスが含まれてもよい。
【0016】
本発明は、USB I/Oデバイスのために特定のデバイスドライバープログラムを確立することがなく、USB I/Oデバイスに対して如何なる変更をすることもなく、USB I/OデバイスをIoTデバイスとして稼働させることができるシステム及び方法を提供する。数多くのスマートデバイスは、USB I/Oをデータ通信、データ転送、及び、DC電源から電圧及び電流を受けるインタフェースとして用いている。外部のデバイスは、ネットワークを介してUSB I/Oデバイスを制御することができる。
図4及び
図5を参照して、USB I/O 101は、ネットワークインタフェースモジュール301を経由してネットワークとインタフェーシングし、USB I/Oデバイスがネットワークにより通信を行えるようにする。ネットワークインタフェースモジュール及びUSB I/Oデバイスの組み合わせは、モノのインターネット(IoT)の環境において稼働できる「モノ」302とされる。以下の明細書では、ネットワークインタフェースモジュールを詳しく記載する。モノのインターネット(IoT)は、接続されているI/Oデバイスのネットワークとして定義され、これらのI/Oデバイスは、既存のネットワーク(例えばインターネット)のインフラにおいて、互いに通信を行うことができる。このようなネットワークでは、接続されているモノ302、即ちI/Oデバイスが焦点となる。従って、このようなネットワークは、I/Oを中心とするプラットフォーム(
図5参照)に基づくものである。当該ネットワーク401では、モノ302がネットワークに接続されて、ネットワークに分布される。しかしながら、モノ302は、如何なるホストシステムにも制約されていない。各モノ302は、例えばエアコンといった単一のI/Oデバイスであってもよく、或いは、USB I/Oデバイス及びネットワークインタフェースモジュール301(
図4参照)の組み合わせであってもよい。制御端末402は、例えば、リモートコントローラー、スマートフォン又はスマートスピーカーの制御デバイスであってもよい。制御ゲートウェイ403は、接続されているI/Oデバイスのネットワークをインターネットに接続できるようにし、或いは、ローカルに接続されているモノ302のための中央管理手段として機能する。
【0017】
図6を参照して、W3C組織は、様々なIoTプラットフォーム及びアプリケーション分野間でのデータ通信を実行できるように、ウェブ・オブ・シングズ(WoT)アーキテクチャーを提出してきた。W3Cによるモノの記述(TD)は、モノのメタデータ及びモノのアクセスポイントのインタフェースを記述するためのデータモデルを提供している。
図6は、I/O及びネットワーク接続性を有するデバイスとしての「モノ」302の物理的表現を示している。その論理的表現は、モノ302の機能を記述するモノの記述(TD)モデル501により示される。モノ302は、WoTインタフェース502を介してインターネットにアクセスする。モノの記述(TD)ドキュメントは、「属性」(Property)、「動作」(Action)及び「イベント」(Event)といった既定のインタラクションパターンを持つ正式なTDインタラクションモデルに基づいて確立される。これらのインタラクションパターンは、大部分のIoTプラットフォームにより提供されているネットワーク向けのAPI(Application Program Interface)をカーバするのに十分である。「属性」というインタラクションパターンは、静的又は動的な、読み取り可能及び/又は書き込み可能データを提供する。「動作」というインタラクションパターンは、モノにおいてある程度の時間を掛けて完成する変化や過程(つまり、「属性」の書き込みのように、すぐに動作を適用できない)をトリガする。通常、実行中の動作は、モノが動作の呼び出しを受ける時に形成されるタスクリソースとしてモデリングされる。「イベント」というインタラクションパターンは、イベントのメカニズムが一定の条件でモノにより通知される。モノの記述データモデルは、例えば、音声入力モード、統一なユーザーインタフェースやUI拡張などの、他の類型のデータモード又はデータ構成をモデリングすることに利用可能である。
【0018】
特定のUSB I/Oデバイスの機能、特性、インタフェース、通信及びデータフォーマットを規定するためには、USB I/Oデバイスには、一定の階層とされる記述子が配置されている。
図7は、USBデバイスにおける典型的な層分け記述モデルを示す。「デバイス記述子」603は、階層の頂部に位置すると共に、例えば、サプライヤーID(識別子)又は「VID」、及び、製品ID(識別子)又は「PID」などの、USB I/Oデバイスに関する情報を含む。「配置記述子」604は、階層における1つ下の階級に位置すると共に、USB I/Oデバイスの付加的な特性を記述する。配置記述子は、例えばインタフェースの数量及び最大電力といった当該USB I/Oデバイスの配置情報を含む。次に、インタフェースの類別及び使用中のエンドポイントの数を記述する「インタフェース記述子」605が複数存在している。「エンドポイント」とは、通信ストリームの出入ポートである。
【0019】
「エンドポイント記述子」606は、例えば、方向(即、入力/出力)、転送類型、ポーリング間隔、同期、使用類型属性、及び、通信パケットの大きさなどの各エンドポイントの情報を含む。USBホストコントローラーは、当該情報を用いて、当該エンドポイントとの通信に必要な通信パイプを構築する。「類別特定記述子」も、階層の底部に位置する。「類別特定記述子」607は、当該特定類別のUSB I/Oデバイスが使用するデータ構造に関する付加的な類別特定情報を定義している。
【0020】
図8は、USB通信モデルを示す。現在にUSBデバイス記述子の情報を有するUSBホストコントローラー602は、既存のエンドポイントEP0、EP1、……EPNのそれぞれへの論理通信パイプ608を介して、USB I/Oデバイス101と通信するように配置される。既定の制御パイプ611は、USB I/Oデバイスのエンドポイントゼロ609にアクセスすることにより、USB配置情報を設置して取り出す。しかも、USBホストコントローラー602は、当該エンドポイント記述子606からの関連するエンドポイントの属性を用いて、異なるインタフェース(例えば、インタフェース1及びインタフェース2)における異なるエンドポイント610と、他のデータ通信パイプ608を確立する。USB通信ソケット612は、上位層のアプリケーションがUSB通信パイプを介してデータパケット613を駆動してUSBデバイスとの間で往復させることができるようにするソフトウェアインタフェースである。従って、
図9に示されるように、USB記述ドキュメント(UDD)702を用いて、USB I/Oデバイス101の、USBホストコントローラー602を介したインタフェーシングを十分に記述することができる。UDDを有するマイクロコントローラーユニット(MCU)601は、USBホストコントローラー602により、通信パイプを介して通信経路及びデータ構造を確立して、USB I/Oデバイス101を制御することができる。本発明は、オペレーティングシステム(OS)から独立しI/Oを中心とするプラットフォームを利用することにより、USBデバイスドライバープログラムを用いてOSを中心とする通常のプラットフォームと関連する問題を解決すると共に、USB記述ドキュメント(UDD)702を利用することにより、USB I/Oデバイスがインタフェースハードウェアとインタフェーシングしてその下で稼働できるようにするUSBアクセスメカニズムを構築する。
【0021】
図10は、USBデバイス記述モデルUDD 702の詳しいブロック図である。当該モデルは、モノの記述と類似する概念に基づくものであり、JSON-LDを使用してUSB I/Oデバイスの構築、インタフェース及びデータ構造を記述する。基本的には、UDD 702は、USB通信ソケット703、USB通信パイプ704、及び、USBデバイス設定ファイル705の三つの仮想的な層からなる。USBデバイス設定ファイル705は、USB列挙プロセスにおいてエンドポイントゼロを有する制御パイプにより取り出されたUSBデバイス記述子の内容と同等する基本USBデバイス情報を有する。USBデバイス設定ファイル705は、例えば、以下のようなUSB I/Oデバイスの情報を含む。
a)デバイス類別、サブ類別、プロトコル、
b)サプライヤーID、製品ID、リリース、
c)メーカーの名称、モデル、シリアル番号、及び、
d)最大定格電力。
【0022】
USBデバイス設定ファイル705は、エンドポイント番号、方向、パケットの大きさ、転送類型と同期類型と使用類型の転送属性、及び、USB-IFに定義されている他の情報を含む、エンドポイントの詳細をさらに含む。
【0023】
USB通信パイプ記述704は、特定のUSBデバイスのエンドポイントと通信するために、USBホストコントローラーの設置に関する抽象情報を定義している。インタフェースボードのMCU 601は、ホストコントローラーを初期化させ、特定の類型のデータ転送(データストリーム又は情報パイプ、stream or message pipes)において、ホストコントローラーと特定のUSBデバイスとの間にデータ転送を行うための対応するバッファエリアを確立する。また、USBデバイスのエンドポイント用のデータバッファには、特定情報と関連するデータが存在する。当該情報は、当該デバイスI/O機能に特有の類別特定データモードからのものである。例えば、多領域制御ユニットを有する照明コントローラーボックスは、16ビットとされるメタデータで定義でき、データの各ビットが一つの領域と対応する。従って、当該データのデータ類型は、JSONの定義における標準でない類型であり、例えば、ハードウェアによる実現によく見られる、ビット(bit)、バイト(byte)又はBCD(二進法エンコードによる十進法)類型のデータである。USB I/Oスキーマでは、UDDがサポートされるように、こられのデータ類型が全て定義されている。また、特定のUSBデバイスにより使用される特定のデータ構造も宣言されている。当該通信パイプ記述情報は、データの変換及び転送のために、上位層の通信ソケットに更に用いられる。
【0024】
USB通信ソケット612は、上位層アプリケーションと、USB通信パイプ608により表される下位層USBホストコントローラーデータ転送との間でインタフェーシングするためのものである。
図11に示すように、USB通信ソケットは、USB通信パイプ608を介してUSBデバイスとデータ転送するためのI/O要求パケット(IRP)613を生成する。通常、通信ソケットに「読み取り」、「書き込み」及び「監視」といった機能が存在しており、それらの機能は、入力パイプから、データを読み取って出力パイプに書き込むためのものである。読み取り/書き込みの機能により、さらに、入力/出力パイプの原始データとUSB記述ドキュメントに用いられる高級のデータ類型との間で、データの抽出・変換を実行する。監視機能は、USBアーキテクチャーがホストに基づいて制御されるI/Oバスであるため、USB操作に特有の特殊的な機能である。ホストコントローラーは、全てのI/Oアクティビティを担当すると共に、デバイスが要求だけに従ってデータをホストに送信する。全ての操作は、いずれも、USBホストコントローラーにより起動され、USBデバイスは、通信パイプだけを介して要求に従ってI/Oの更新状態を応答する。監視操作は、どの状態情報を検査するかのを規定するとともに、リフレッシュレートも宣言することにより、MCUが読み取り操作を開始し、通信パイプを経由してホストコントローラーにより定期的に更新データを検出できるようにする。変化があるたびに、それに応じて、監視操作により、フィードバックを提供する。監視機能は、起動すると、バックグラウンドで稼働される。
【0025】
図12及び
図13は、以上の明細書に記載されたUSB操作モデルのネットワークインタフェースモジュール(NIM)301による例示的なハードウェアを示すブロック図である。
図12に示すように、ネットワークインタフェースモジュール(NIM)301は、マイクロコントローラーユニット(MCU)601、及び、RAM及びROMを含む。NIM 301は、LAN又はインターネットへの接続を許可する、通常イーサネット又はWiFI接続とされるネットワークインタフェースコントローラー614を含む。USBホストコントローラー602は、NIM 301を外部のUSB I/Oデバイスに接続可能にする。
図13を参照して、NIM 301は、USB I/Oデバイス101を受け入れるためのUSBインタフェース(例えばUSB信号ポート)を含む。NIM 301は、WoTプロトコルバインディング及びスクリプトAPI 502として示されるWoTインタフェースアーキテクチャーを実現するロジック及びファームウェアを含む。NIM 301は、モノの記述(TD)ドキュメント701及び「モノの記述イントラクション」のロジック501により、USB I/Oデバイス101の機能をモデリングする。モノの記述(TD)ドキュメント701は、WoTアーキテクチャーモデルに基づくものである。WoTプロトコルバインディング及びスクリプトAPI 502は、モノ(即、USB I/Oデバイス101)を、WoT環境で稼働させ、他のIoTデバイスと通信させるインタフェースアーキテクチャーである。プロトコルバインディングは、プロトコル(例えば、HTTP、MQTT又はCoAP)に基づいて、モノの記述インタラクションモデル501におけるイントラクションと特定の操作との間のマッピングの実現である。スクリプトAPI 502は、W3C(ワールドワイドウェブコンソーシアム)ドキュメントに記述されるServientのように、アプリケーションに向けのプログラミングインタフェースを提供する。NIM 301は、対応するUSBデバイス記述拡張を通じて、USB I/Oデバイス101の機能及びインタフェースを理解すると共に、NIM 301がモノの記述イントラクション501の属性、動作及びイベントインタラクションパターンとマッチングした対応するUSB通信ソケット612を確立するように許可する。通信ソケット612は、読み取り/書き込み/監視指令を有することにより、TD属性/動作/イベントイントラクション要求が完全に満たされ得る。「監視」ソケットインタフェースは専ら、「イベント」イントラクションを処理するように設計される。
【0026】
図14は、本発明の例示的な実施例を示すブロック図である。セントラルリポジトリ801は、ネットワーク(例えば、インターネット)データ通信を行い、異なるUSB I/Oデバイスと対応するUSB拡張701を有する複数のモノの記述(TD)ドキュメントを記憶する。USBデバイス101は、NIM 301のUSB信号ポート(不図示)と電気的に接続される。NIM 301は、例えばインターネットといったネットワークとデータ通信を行う。当該例では、USB I/Oデバイスは、最初にネットワークと接続されていないので、IoTデバイスとしてネットワーク上で稼働することができない。しかしながら、USB I/OデバイスをIoTデバイスとして稼働させてWoTに加入させることができるように、USBデバイス101とネットワークとの間のデータ通信を実現することが望ましい。USB I/Oデバイス101をIoTデバイスとして機能させることを可能にするために、NIM 301は、ネットワークを介して、セントラルリポジトリ801から、USB拡張を有する適正なWoTモノの記述(TD)ドキュメントを取得する。取得したWoTモノの記述(TD)ドキュメントは、特定のUSB I/Oデバイスと対応しており、当該デバイスは、NIM 301のUSB信号ポートと電気的に接続される。NIM 301は、デジタル論理回路及びファームウェアを含み、モノの記述(TD)を解析してWoTデータモデルを構築することで、USB NIM 301を介してI/Oデバイス101とネットワークとの間の通信を実現する。USB I/Oデバイス101は、如何なる変更もされることがなく、IoTデバイスとしてネットワークにインタフェーシングしてWoTに加入できるようになる。
【0027】
図15は、ネットワークインタフェースモジュール(NIM)301により実現される処理ステップを示す図である。USB I/Oデバイス101は、WoT環境においてIoTデバイスとして稼働でき、NIM 301がネットワーク(例えば、インターネット)とデータ通信を行う。最初のステップ802では、USB I/Oデバイス101がNIM 301のUSB信号ポートに接続又は挿入される。続いて、ステップ803では、NIM 301は、USBデバイス列挙プロセスを実行して、デバイス記述子603(
図7参照)に記憶されているUSB I/Oデバイス101のユニークなサプライヤーID(VID)及び製品ID(PID)を取得する。次のステップ804では、NIM 301は、USB I/Oデバイス101のユニークなサプライヤーID及び製品IDをキーワードとして利用し、ウェブサービスを介して、セントラルリポジトリ801にアクセスし、適正なモノの記述(TD)ドキュメント701を照会及びサーチする。適正なモノの記述(TD)ドキュメントが特定されたら、NIM 301は、セントラルリポジトリ801から、識別子のモノの記述(TD)ドキュメントを取得する。ダウンロードしたモノの記述(TD)ドキュメントは、NIM 301のUSB信号ポートに挿入されたUSB I/OデバイスのI/Oと対応する特定のUSB拡張を含む。ステップ805では、NIM 301のMCU 601(
図12参照)がモノの記述(TD)ドキュメントを解析する。モノの記述(TD)ドキュメントは、特定のUSB I/Oデバイス記述拡張を含むように構築される。NIM 301は、解析済みのモノの記述(TD)ドキュメントにより、通信パイプ608及び通信ソケット612を構築することで、USB I/OデバイスのI/OとUSBホストコントローラー602(
図11参照)との間のデータ通信を実現し、USB I/OデバイスのI/Oが、以上の明細書に記載された「属性」、「動作」及び「イベント」のインタラクションパターンとマッチングするようにする。こうして、USBホストコントローラー602は、USB I/Oデバイス101からのデータを解析するとともに、このように解析されたデータをマイクロコントローラーユニット(MCU)601にルーティングすることができるようになる。続いて、MCU 601は、ネットワークインタフェースコントローラー614とインタフェーシングして、USB I/Oデバイス101がIoTデバイスとしてネットワークとインタフェーシングできるようにする。以上の明細書から明らかに分かるように、USB I/Oデバイス101がIoTデバイスとしてネットワークとインタフェーシングできるようにするには、デバイスドライバープログラムは必要ではない。NIM 301ハードウェア及びファームウェアは、TDドキュメント701を解析すると共に、対応するインタフェースの呼び出し機能を配置すれば、その旨のタスクが遂行される。
【0028】
図16は、本発明のもう一つの例示的な実施例を示す。当該実施例では、IoTネットワークゲートウェイ901は、複数の小型インタフェースモジュール902と組み合わせて使用され、
図4に示すネットワークインタフェースモジュール(NIM)301と同じ機能を実現する。従って、当該実施例では、ネットワークインタフェースモジュール(NIM)301がIoTネットワークゲートウェイ901及び小型インタフェースモジュール902により代えられる。小型インタフェースモジュール902のそれぞれは、ローカルの通信リンク903を介して、IoTネットワークゲートウェイ901とデータ通信を行い、よりコスト効果の高い分散式IoT環境を形成する。IoTネットワークゲートウェイ901は、デジタル論理回路と、ファームウェアが配置された少なくとも一つのデータ処理リソースとを含み、当該ファームウェアには、ローカル通信ネットワーク903と対応するUSBデータ転送の通信プロトコルが取り込まれている。当該USBデータ転送プロトコルは、高信頼性且つ分散式のUSB通信パイプに寄与しており、ローカルの通信ネットワーク903においてUSBデータをIoTネットワークゲートウェイ901に転送し、或いは、ローカル通信ネットワーク903において、IoTネットワークゲートウェイ901からUSBデータを受信するためのものである。小型インタフェースモジュール902のそれぞれは、デジタル論理回路を含み、当該デジタル論理回路は、マイクロコントローラーユニット(MCU)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、USBホストコントローラー、及び、NIMと類似するネットワークインタフェースコントローラーを含む。ネットワークインタフェースコントローラーは、ローカルの通信ネットワーク903により、IoTネットワークゲートウェイ901とのデータ信号通信を確立する。各小型インタフェースモジュール902のハードウェアリソースは、ローカル通信ネットワーク903とUSB I/Oデバイス101との間だけで最小限の通信機能を実行するという理由から、コスト削減のため、最低限の要求に従って配置される。従って、複数のUSB I/Oデバイス101、小型インタフェースモジュール902、ローカル通信ネットワーク903、及び、IoTネットワークゲートウェイ901の組み合わせにより、ローカル化したIoTネットワークを実現することができる。小型インタフェースモジュール902のそれぞれは、対応するUSB I/Oデバイス101とデータ信号通信を行い、列挙プロセスにより、対応する当該USB I/Oデバイス101のユニークなサプライヤーID及び製品IDを取得する。小型インタフェースモジュール902のそれぞれは、ユニークなサプライヤーID及び製品IDをIoTネットワークゲートウェイにルーティングする。サプライヤーID及び製品IDを照会用のキーワードとすることにより、セントラルリポジトリ801にアクセスして、操作中のUSB I/Oデバイスと対応するモノの記述(TD)ドキュメントをサーチする。適正なモノの記述(TD)ドキュメントがセントラルリポジトリ801にあったら、さらなる処理を行うために、それをIoTネットワークゲートウェイにダウンロードする。続いて、IoTネットワークゲートウェイ901は、モノの記述(TD)ドキュメントを解析し、ゲートウェイ上でWoTインタフェースアーキテクチャーを構築する。対応するUSB通信ソケットは、ゲートウェイに含まれ、それと同時に、USB通信パイプ情報が小型インタフェースモジュール902に転送されることで、USBホストコントローラーが設置され、小型インタフェースモジュール902と対応するUSB I/Oデバイス101との間で通信パイプが確立される。従って、各USB I/Oデバイス101は、いずれも、対応する小型インタフェースモジュール902及びIoTネットワークゲートウェイ901を介してネットワークに接続され、ネットワークインタフェースモジュール301におけるすべての同じ機能を遂行するように配置される。当該配置の利点として、小型インタフェースモジュール902は、USB I/Oデバイス101をインタフェーシングするために必要なハードウェアリソースが最小限となり、複数のIoTデバイスを具備した際のトータルコストが最適化されることができる。また、マシンツーマシン(M2M)操作といった、WoTアーキテクチャーにおける大部分の重要な役割の部分を、IoTネットワークゲートウェイ901に集中して担当させるように割り当て及び最適化することができる。当該配置によれば、コストの最適化、分散式のI/Oの特性及び集中管理効率が実現される。
【0029】
他の実施例では、各小型インタフェースモジュール902のネットワークインタフェースコントローラーは、様々な種類のローカル通信ネットワーク又はリンク903のいずれ(例えば、電気配線通信ネットワーク、又は、無線ネットワーク(例えば5G、Zigbee(登録商標)、Lora(登録商標)、ブルートゥース(登録商標)によるグリッドなど))ともインタフェーシングするように配置可能であると理解されるべきである。
【0030】
図17は、ローカル通信リンクが電気配線ネットワーク1003に基づくものであることを示す例示的な実施例である。当該実施例では、各小型インタフェースモジュールは、USB I/Oデバイス101にデータ及び電力の両方を供給するPLC(電気配線通信)USB電源アダプタ1002として示される。データの全ては、
図16に示すネットワークゲートウェイ901と同等するPLCネットワークゲートウェイ1001にルーティングされる。PLCネットワークゲートウェイについては、本願の出願人が所有する米国出願第62/564、234に詳しく記載されており、同出願に開示された内容が参照により本明細書に取り込まれる。
【0031】
図18は、本発明のもう一つの実施例であり、そのうち、ドキュメント購読者1101は、権限を付与されて、セントラルリポジトリ801に、USB拡張701を有するモノの記述(TD)ドキュメントに照会及びサーチし、そして、モノの記述(TD)ドキュメントを他の種類のフォーマットに変換する。当該フォーマットは、ドキュメント購読者1101にわざわざ要求され、例えば専有のネットワークインタフェースモジュールアプリケーションといった特定のアプリケーションに用いられる。一つの実施例では、ドキュメント購読者1101は、ネットワークとデータ信号通信するリモートドキュメント購読者インタフェースモジュールを含むと共に、少なくとも一つのUSB I/Oデバイスのサプライヤー及び製品識別子を受信して記憶するためのプロセッサー及びデジタル論理回路を含む。プロセッサーは、ファームウェアを含み、当該ファームウェアは、実行されると、サプライヤー及び製品識別子を用いて、セントラルリポジトリ801のデータベースに、サプライヤー及び製品識別子と対応する特定のUSB拡張を有するモノの記述(TD)ドキュメントを照会すると共に、サプライヤー及び製品識別子と対応するUSB拡張を有するモノの記述(TD)ドキュメントを取り出す。例示的な実施例では、ネットワークはインターネットとされ、リモートドキュメント購読者インタフェースモジュールが、ウェブサービスとイントラクションして、セントラルリポジトリ801とリモートドキュメント購読者インタフェースとの間で、インターネットを介してデータ通信できるように配置される。もう一つの例示的な実施例では、ネットワークがパーソナルエリアネットワークとされる。一つの実施例では、リモートドキュメント購読者インタフェースモジュールは、モノの記述(TD)ドキュメントを少なくとも一つの外部処理リソースにルーティングするためのデータ出力ロジックを含む。
【0032】
好ましい実施例では、セントラルリポジトリ801は、特定のUSB製品のそれぞれに対して単一のTDドキュメントを記憶することが好ましい。そうすると、USB I/Oデバイスのメーカーが一回だけTDドキュメントを作成すれば済むことを確保され、しかも、当該TDドキュメントは、如何なるIoTプラットフォームによる実現にも利用できる。IoTプラットフォームは、TDドキュメントを解析して、対応するWoTロジックを配置するだけで、USB I/OデバイスをIoTデバイスとしてネットワークを介して通信させることができる。
【0033】
以上より、明細書から明らかになるように、本発明が以下のような数多くの利点を有している。
a)ネットワークインタフェースモジュールによりI/Oの配置を処理することから、OSに依存する如何なるデバイスドライバープログラムの開発も必要としない。
b)あらゆるIoTプラットフォームにおける各特定のUSB I/Oデバイスに適合できるように、単一のモノの記述(TD)ドキュメントを構築する。
c)単一のモノの記述(TD)ドキュメントを一回だけ構築すればよく、そして、当該ドキュメントに永遠にアクセスできるセントラルリポジトリに記憶される。
d)特定のUSB I/Oデバイスと必要に応じて一緒に稼働すればよいことから、ネットワークインタフェースモジュールが最適化される。
e)ネットワークゲートウェイは、小型インタフェースモジュールと組み合わせて使用可能で、セントラルリポジトリからモノの記述(TD)ドキュメントを照会してアクセスすることから、分散式IoTの操作に必要なトータルコストがさらに最適化される。
f)USB I/Oデバイスを接続する際に、ネットワークインタフェースモジュール又はIoTネットワークゲートウェイにより、モノの記述(TD)ドキュメントをインターネットを介してダウンロードすることから、プラグアンドプレイの操作が実現される。
g)OSシステムにおけるデバイスドライバープログラム又は類別ドライバープログラムへの如何なる制限もないことから、新型のUSB I/O製品の開発及び製品の発売を大幅に拡大させることができる。
【0034】
図19乃至
図22は、機能定義、モノのインタラクションパターン、USBモデル及び対応するTDドキュメントにから始まるUSB I/Oデバイスの実現例を示す。当該例では、USB I/Oデバイスは、USBアクアテラリウム制御センターとされる。制御センター1201は、制御センター1201に電力及びデータを供給するUSBインタフェースを含む。制御センター1201は、以下の三つの機能を実行する。
a)空気ポンプ1202により、空気をアクアテラリウムに送り込むこと
b)熱制御手段及びヒータ1203により水温を制御すること
c)指令に従って食料配り手段1204により食料をアクアテラリウムに配ること。
【0035】
各機能ユニットは、
図19の右側の列に示されている特定機能モデルの定義を有する。機能モデルに基づいて、
図20に「属性」、「動作」及び「イベント」のインタラクションパターン付きの対応するモノモデルを示す。
図21は、USBにおける同等機能の実現を示す。
図21は、対応するUSB記述の階層、機能インタフェース、及び、エンドポイントを示す。USBのエンドポイント機能が中央の列に定義される一方、通信パイプが最も右側の列に示される。ソフトウェアの通信ソケット構造を定義することにより、USBデバイスのエンドポイントのパラメータの物理的な定義をモノインタラクションモデルと連携する。
図22に示されるように、モノの記述イントラクションの「属性」及び「動作」が、「通信ソケット」に対する読み取り/書き込み指令を経て、対応する「通信パイプ」を経由してUSBデバイスのデータにアクセスすることにより実現される。イントラクションの「イベント」は、「通信ソケット」の監視指令を起動して、対応するUSB I/O状態を定期的に検出し、状態が変化した場合に、イベント警報を返すためのものである。
【0036】
本発明の全ての実施例は、いずれも、セキュリティが確保されると共にネットワークへの攻撃が避けられるように、セキュリティ認証、通信プロトコル、及び、アプリケーション層と一緒に使われてもよい。
【0037】
説明という目的で、特定の実施例を参照しながら以上に明細書を説明した。しかしながら、以上の説明的な記載は、本願を、開示した形態に、網羅的又は制限的に限定するものではない。上記の教示に基づいて、数多くの変更や変形が可能である。実施例を選択して記載したのは、本発明の原理及びその実際の応用をより良く解釈し、当業者が、より良く本発明を利用でき、また、見込まれる特定の用途に適した様々な変更を伴う各種の実施例を取得できるようにするためである。