(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】通信モジュール、通信システム及び通信方法
(51)【国際特許分類】
H04L 67/00 20220101AFI20240702BHJP
H04M 11/00 20060101ALI20240702BHJP
【FI】
H04L67/00
H04M11/00 302
(21)【出願番号】P 2022171755
(22)【出願日】2022-10-26
(62)【分割の表示】P 2020133292の分割
【原出願日】2019-12-13
【審査請求日】2022-10-26
(73)【特許権者】
【識別番号】502129933
【氏名又は名称】株式会社日立産機システム
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】小檜山 智久
(72)【発明者】
【氏名】藤岡 孝芳
(72)【発明者】
【氏名】飛澤 直哉
【審査官】小林 義晴
(56)【参考文献】
【文献】米国特許出願公開第2019/0137980(US,A1)
【文献】特開2005-223788(JP,A)
【文献】特開2003-242415(JP,A)
【文献】伊東 厚 ,他3名,情報処理機能を強化したIoT対応産業用コントローラ,日立評論 第99巻 第6号 ,日本,日立評論社,2017年12月20日,第99巻,第6号,pp.62-67
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/00
H04M 11/00
(57)【特許請求の範囲】
【請求項1】
異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースと、
OS(Operating System)を含む複数のプログラムが格納されるメモリと、
前記複数の通信インターフェースと前記メモリとに接続され前記複数のプログラムを実行するプロセッサとを備え、
前記複数のプログラムは前記OS上で実行される
第1アプリと、前記OS上で実行される複数のアプリ
第2アプリと、監視アプリとを含み、
前
記複数の
第2アプリの各々は、一つ以上の通信インターフェース規格上での一つ以上の通信プロトコルに従う通信を行うアプリであり、且つ、任意にインストールされ任意にアンインストール可能なアプリであ
り、
前記第1アプリは、前記OSと前記複数の第2アプリとの間のミドルウェアとしてのアプリであって前記複数の第2アプリを管理するフレームワークであり、
前記フレームワークは、第2アプリ間の連携を支援する機能を備え、
前記複数の第2アプリの各々は、前記OSによりプロセスとみなされて実行され、当該第2アプリの使用履歴を、前記メモリにおける、当該第2アプリについて設定された領域に書き込み、
前記監視アプリが、第2アプリ毎に、
当該第2アプリの使用履歴を前記フレームワークに問い合わせ、
当該問合せに応答して前記メモリにおける当該第2アプリに対応した領域から前記フレームワークにより取得され前記フレームワークから回答された使用履歴を表すデータを、当該第2アプリのアプリIDに関連付けて、いずれかの第2アプリ経由又は非経由で、サーバに送信する、
ことを特徴とする通信モジュール。
【請求項2】
前記
複数の第2アプリは、産業機器とローカル通信を行う通信インターフェース規格上で通信を行う
ローカル第2アプリと、グローバル通信を行う通信インターフェース規格上で通信を行う
グローバル第2アプリ
とを含
み、
前記いずれかの第2アプリは、前記グローバル第2アプリである、
ことを特徴とする、
請求項1に記載の通信モジュール。
【請求項3】
前記
複数の第2アプリは、産業機器とローカル通信のみの通信を行う
ローカル第2アプリと、グローバル通信のみの通信を行う
グローバル第2アプリ
とを含
み、
前記いずれかの第2アプリは、前記グローバル第2アプリである、
ことを特徴とする、
請求項1に記載の通信モジュール。
【請求項4】
前記OS上に前記
複数の第2アプリを
それぞれ独立に実行できる実行環境を有することを特徴とする
請求項1に記載の通信モジュール。
【請求項5】
前記フレームワークは
、前記
第2アプリの使用状況を確認し、未使用の時にインストール、アンインストール若しくはアップデートのいずれかを行うことを特徴とする
請求項1に記載の通信モジュール。
【請求項6】
異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースを有する通信モジュールと、
サーバと
を備え、
前記通信モジュールが、OS(Operating System)を含む複数のプログラムが格納されるメモリと、前記複数の通信インターフェースと前記メモリとに接続され前記複数のプログラムを実行するプロセッサとを備え、
前記
複数のプログラムが、OS(Operating System)と当該OS上で実行される
第1アプリと、前記OS上で実行される複数の
第2アプリ
と、監視アプリとを
含み、
前
記複数の
第2アプ
リの各々は、一つ以上の通信インターフェース規格上での一つ以上の通信プロトコルに従う通信を行うアプリであり、且つ、任意にインストールされ任意にアンインストール可能なアプリであり、
前記第1アプリは、前記OSと前記複数の第2アプリとの間のミドルウェアとしてのアプリであって前記複数の第2アプリを管理するフレームワークであり、
前記フレームワークは、第2アプリ間の連携を支援する機能を備え、
前記複数の第2アプリの各々は、前記OSによりプロセスとみなされて実行され、当該第2アプリの使用履歴を、前記メモリにおける、当該第2アプリについて設定された領域に書き込み、
前記監視アプリが、第2アプリ毎に、
当該第2アプリの使用履歴を前記フレームワークに問い合わせ、
当該問合せに応答して前記メモリにおける当該第2アプリに対応した領域から前記フレームワークにより取得され前記フレームワークから回答された使用履歴を表すデータを、当該第2アプリのアプリIDに関連付けて、いずれかの第2アプリ経由又は非経由で、サーバに送信し、
前
記複数の
第2アプ
リの各々は、対応した通信プロトコルに従う通信が行われる通信インターフェース規格に対応した通信インターフェース経由で、当該通信インターフェースに接続されている機器若しくは前記サーバと送受信する
ことを特徴とする通信システム。
【請求項7】
前記
複数の第2アプリは、産業機器とローカル通信のみの通信を行う
第2アプリと、グローバル通信のみの通信を行う
第2アプリ
とを含むことを特徴とする、
請求項6に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、データ通信に関する。
【背景技術】
【0002】
通信モジュールに関する技術として、例えば特許文献1に開示の技術がある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
IoT(Internet of things)のように様々な産業機器(例えば、コンプレッサ、モータ及び産業向けインクジェットプリンタ等)からデータを収集することが行われるようになってきている。このような様々な産業機器の各々には、データ通信(例えばデータ送信)のための通信モジュールが必要になる。
【0005】
通信モジュールに関わる要素として、通信に採用される通信インターフェース規格、及び、通信に採用される通信プロトコルといった要素があるが、いずれの要素も様々である。通信インターフェース規格としては、例えば、RS232C、RS485及びEthernet(登録商標)等がある。通信インターフェース規格は、典型的には、物理レイヤに関わる。通信プロトコルとしては、例えば、UDP(User Datagram Protocol)、MQTT(Message Queuing Telemetry Transport)及びModbusプロトコル等がある。通信プロトコルは、典型的には、通信インターフェース規格が属するレイヤよりも上位のレイヤに関わる。
【0006】
いずれの種類の通信インターフェース規格及び通信プロトコルが採用されるかは、通常、産業機器に依存する。産業機器の種類も、様々である。例えば、複数種類の産業機器を提供するメーカ、すなわち、モータ単体とその応用機器であるエアーコンプレッサを製造するメーカであっても、エアーコンプレッサとモータそれぞれで異なる通信インターフェース規格または通信プロトコルを採用する場合があり、これらエアーコンプレッサとモータをまとめて監視等を行う場合には、それぞれに対応する通信変換装置を設けた上でIoTゲートウェイを介して通信されるクラウド監視システムまたは通信変換装置を設けオンプレミスの監視システムを構築する必要があり、このような産業機器ごとの通信規格の対応事情によって工場等のIoT化が進めにくくなっていた。
【0007】
このため、産業機器の種類に依存しないデータ通信を可能にする汎用的な通信モジュールが実現されることが望ましい。
【0008】
このような課題は、産業機器以外の機器についてもあり得る。
【課題を解決するための手段】
【0009】
通信モジュールが、異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースを有する。通信モジュールで実行される複数のプログラムが、OS(Operating System)上で実行される第1アプリと、OS上で実行される一つ又は複数の第2アプリとを含む。一つ以上の第2アプリの各々は、一つ以上の通信インターフェース規格上での一つ以上の通信プロトコルに従う通信を行うアプリであり、且つ、任意にインストールされ任意にアンインストール可能なアプリである。第1アプリは、OSと一つ又は複数の第2アプリとの間のミドルウェアとしてのアプリである。
【発明の効果】
【0010】
機器の種類に依存しないデータ通信を可能にする汎用的な通信モジュールが実現される。
【図面の簡単な説明】
【0011】
【
図5】アプリのインストールとアプリに関する設定との概要を示す。
【発明を実施するための形態】
【0012】
以下の説明では、「通信インターフェース装置」は、一つ以上の通信インターフェースデバイスでよい。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0013】
また、以下の説明では、「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【0014】
また、以下の説明では、「永続記憶装置」は、一つ以上の記憶デバイスの一例である一つ以上の永続記憶デバイスでよい。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVMe(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。
【0015】
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
【0016】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア記述言語によりゲートアレイの集合体である回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
【0017】
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし(例えば、構造化データでもよいし非構造化データでもよいし)、入力に対する出力を発生するニューラルネットワーク、遺伝的アルゴリズムやランダムフォレストに代表されるような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
【0018】
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGA又はASIC)によって実現されてもよいし、それらの組合せによって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【0019】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置及び/又はインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
【0020】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別する場合は、参照符号を使用することがある。例えば、通信モジュールを区別しない場合には、「通信モジュール101」と言い、通信モジュールを区別する場合には、「通信モジュール101A」、「通信モジュール101B」のように言う。
【0021】
以下、一実施形態を説明する。なお、以下の実施形態では、エンティティとして、下記が存在するものとする。
・モジュール提供者:通信モジュールを提供するエンティティ(例えば、企業)。
・ユーザ:産業機器を提供するエンティティ(例えば、産業機器のメーカ)。例えば、ユーザは、通信モジュールを入手(例えば購入)し、入手した通信モジュールが接続された産業機器を提供(例えば販売)する。
・エンドユーザ:通信モジュールが接続された産業機器を使用するエンティティ(例えば、複数の産業機器からなる製造ラインを備えた工場を有する企業)。なお、製造ラインを備えた工場を有する企業はエンドユーザでありながら、通信モジュールを購入する場合はユーザにもなり得る。
・通信事業者:所定の通信網を管理するエンティティ(例えば、携帯電話キャリア)。
【0022】
本発明の実施形態について、産業機器の通信規格対応事情に起因するIoT化が進められにくい状況を説明したが、昨今のIoTに関する事情について説明する。IoT化が進めにくい背景として、産業機器の耐用年数は家庭用の電気機器に比べて長いため、専用の自社製品との通信することが考慮されている。このため、産業機器よりも上位のレイヤーを含むエッジやフォグレイヤーと通信することが考慮されていない製品が現在も利用されており、別途産業機器にセンサを取り付けしたり、産業機器専用の通信ポートに対して所定の通信コマンドを送信し返ってきたステータスを受信した後に変換する通信変換装置が必要となる場合がある。
【0023】
こうした事情から、産業分野は、労働人口減少に伴う労働の効率化や省人化等の社会的要請に対して、IoT化した産業機器が望まれている。このような課題を解決するために本発明の実施形態に係るシステム全体の構成を
図1を用いて説明する。
【0024】
通信モジュール101が、産業機器103(機器の一例)の通信インターフェース装置としての役割を担うことができる。産業機器103が取得するデータとして、例えば、産業機器103のステータスを表すデータや、産業機器103のセンサにより取得された計測値を表すデータがある。産業機器103が取得したデータが、通信モジュール101で送信される。
【0025】
産業機器103と通信モジュール101との関係は、1:1でもよいし、多:1でもよいし、1:多でもよいし、多:多でもよい。通信モジュール101は、後述するように、産業機器103の種類に依存しない汎用的なモジュールなので、典型的には、1:1又は多:1になると考えられる。1:1とは、通信モジュール101Bと産業機器103Bが通信する場合である。また、他:1とは、産業機器103A、103B、他の産業機器またはセンサ郡163と通信モジュール101Bが通信する場合である。
【0026】
通信モジュール101の提供形態は様々でよい。例えば、通信モジュール101Bは、センサ群163(一つ以上のセンサ)が設けられた産業機器103Bに外付けされてもよいし、産業機器103A(例えば、産業機器本体)と産業機器103Aに予め接続された(例えば内蔵された)通信モジュール101Aとを含んだ産業機器ユニット105が提供されてもよい。
【0027】
産業機器103A(産業機器103B)の通信インターフェース規格又は通信プロトコルは、通信網109A(通信網109B)を介した通信のための通信インターフェース規格又は通信プロトコルは異なる。産業機器103A(産業機器103B)に通信モジュール101A(通信モジュール101B)が接続されることで、産業機器103A(産業機器103B)が通信モジュール101A(通信モジュール101B)経由で通信網109A(通信網109B)を介したデータ通信を行うことができる。通信網109A及び109Bは、同一の通信網でもよいし異なる通信網でもよい。通信網109A及び109Bの各々は、本実施形態では無線通信網(例えば閉域網)であるが、有線通信網でもよいし、VPN(Virtual Private Network)でもよい。
【0028】
通信網109A及び109Bに通信網109Cが接続されている。通信網109Cは、典型的にはインターネットであるが、他種の通信網でもよい。通信網109A~109Cの二つ以上が同一の通信網でもよい。
【0029】
通信網109Cに、通信事業者サーバ107、配信サーバ117、管理サーバ115、ユーザシステム111(ユーザサーバでもよい)、及びエンドユーザクライアント113が接続されている。通信事業者サーバ107、配信サーバ117、管理サーバ115、ユーザシステム111、及びエンドユーザクライアント113のいずれも、物理的な計算機でもよいし、複数種類の計算リソース(例えば、クラウド基盤)上に実現された仮想的なシステムでもよい。
【0030】
通信事業者サーバ107は、通信事業者のサーバである。通信事業者は、例えば、通信網109A及び109Bを管理する。通信事業者サーバ107は、ユーザ別又はエンドユーザ別に、通信網109A及び109Bを介した通信の通信量に応じた料金を決定する。決定された料金が、ユーザ又はエンドユーザに請求される。
【0031】
配信サーバ117は、通信モジュール101にアプリをインストールするサーバである。配信サーバ117は、例えば、エンドユーザ以外のエンティティによって管理されるシステム(例えば、アプリストア)としてのサーバでよい。上記のようにアプリケーションを単にアプリと呼ぶ。
【0032】
管理サーバ115は、通信モジュール101を管理したり、通信モジュール101の使用料金を決定したり、通信モジュールに搭載されるアプリケーションの使用状況を特定や算定等をするサーバである。複数のリージョンに対応した複数の管理サーバ115A、115B、…があってもよい。「リージョン」は、地理的な範囲を意味し、国、州、県、市といった様々な単位で区切られてよい。リージョンごとに通信範囲や通信領域を区切ることで、設定した所定のリージョン内でデータ管理をすることができる。
【0033】
ユーザサーバ111は、ユーザのサーバである。例えば、ユーザサーバ111は、エンドユーザが使用する産業機器103の使用履歴を表し当該産業機器103に接続されている通信モジュール101から送信された一定期間分のデータを分析してよい。このとき、ユーザサーバ111は配信サーバ117から分析アプリケーションを取得し、取得した分析アプリケーションの使用回数、使用時間、使用状況をユーザシステム111もしくは管理サーバ115が計測し、分析アプリケーションの使用に対する対価を特定することができる。
【0034】
ユーザは、ユーザシステム111でユーザアプリケーション180を作成することができる。作成したユーザアプリケーション180は、配信サーバ107にアップロードされる。エンドユーザが望むユーザアプリケーション180を、配信サーバ107から通信モジュール101にダウンロードすることができる。
【0035】
ユーザアプリケーション180をダウンロードしたダウンロード情報を管理サーバ115が取得し管理することで、通信モジュール101のエンドユーザに対してユーザアプリケーション180のダウンロードに対する対価を特定する。ダウンロードのみならずユーザアプリケーション180の利用回数や利用状況に基づいた対価を特定することができる。特定された対価は通信利用量と共に回収することができる。また、回収した対価は通信事業者または通信事業者から配信サーバ117の管理者を介してユーザシステム111のユーザに支払われる。
【0036】
これにより、ユーザがユーザシステム111で作成したアプリケーションのうちエンドユーザが通信モジュール101で必要なアプリケーションをダウンロードすることができる。そのアプリケーションの利用状況やダウンロードに対応する対価を通信事業者を介して回収することができるため、エンドユーザは直接ユーザへ対価を支払うことなく通信事業者に通信量と併せて支払うことできる。また、エンドユーザが支払った対価は、エンドユーザが個別にユーザへ支払う必要がなく、通信事業者や配信サーバ117の管理者経由で支払われるため、エンドユーザの利便性が向上するシステムを提供することができる。
【0037】
通信モジュール101が携帯電話網の通信を利用できることから上記したユーザアプリケーション180に関する対価の特定と回収を実現できる。
【0038】
エンドユーザクライアント113は、エンドユーザが使用する計算機(例えば、パーソナルコンピュータ又はスマートフォン)でよく、ユーザサーバ111のクライアントである。
図1が示す例では、ユーザAのユーザサーバ111Aにとってのクライアントが、エンドユーザクライアント113Aa及び113Abであり、ユーザBのユーザサーバ111Bにとってのクライアントが、エンドユーザクライアント113Ba及び113Bbである。
【0039】
通信モジュール101の情報はエンドユーザクライアント113で表示することができる、また、通信モジュール101に表示手段を持たせた場合には通信モジュール101をエンドユーザクライアント113として利用することもできる。エンドユーザクライアント113の表示手段にはタッチパネル等の入力部または別途キーボード等の入力手段を設けることができ、入力部または入力手段を用いて配信サーバ117に登録されたユーザアプリケーション113を購入することができる。
【0040】
図2は、通信モジュール101の物理的な構成を示す。
【0041】
通信モジュール101は、異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースの一例として、複数の通信ポート205A、205B、…と、複数のアンテナ201A、201B、…とを備える。通信ポート205としては、例えば、Eathernet(登録商標)、EtherCAT(登録商標)用のRJ45ポート、RS232C用のポート、及び、RS485用のポートを採用することができる。その他、I2C(Inter-Integrated Circuit)やCAN(Controller Area Network)(登録商標)を用いることができるため、物理的に使用できる通信規格であれば実施形態が限定されるものではない。
【0042】
或る通信ポート205が、通信モジュール101のファームウェアのアップデートといった保守のための通信に使用されてもよい。また、そのような保守のための通信に使用されるポートは、通信ポート205とは異なる独立したポートであると通信を専有できるためより通信モジュール101のシステムの安全性が向上する。
【0043】
また、アンテナ201としては、LTE(Long Term Evolution)用のアンテナ、GPS(Global Positioning System)用のアンテナ、及び、Bluetooth(登録商標)用のアンテナを採用することができる。アンテナ201毎に、当該アンテナ201を介して送受信される信号の処理を行う信号処理ユニット207が通信モジュール101に設けられていてよい。例えば、図示の通り、アンテナ201A、201B、…にそれぞれ対応した信号処理ユニット207A、207B、…が設けられていてよい。
【0044】
通信モジュール101は、SIM(Subscriber Identity Module)カードスロット213を有する。当該スロット213に、加入者識別情報を格納しているSIMカード211が挿される。
【0045】
また、SIMカードスロット213は物理的なものに限られずe-SIM(Embedded SIM)を利用することができる。この場合は、エンドユーザは、通信モジュール101を利用するリージョンに適した通信事業者を選択することができる。併せて、配信サーバ117もリージョンや通信事業者に適したユーザアプリケーションをエンドユーザに対して表示または非表示を選択することができる。
【0046】
e-SIMを適用した本実施形態は、リージョンごとに適したサービスを提供することができ、ユーザアプリケーションの利用状況やダウンロードの対価の回収も通信事業者経由となるため、リージョンごとの法令や条例に対応するサービスによる利便性を提供することができる。以下、SIMカード211とSIMカードスロット213について代表して説明するが、e-SIMであっても上記したように実施できる。
【0047】
通信モジュール101は、制御ユニット209を有する。制御ユニット209が、通信インターフェース装置221、メモリ223及びそれらに接続されたプロセッサ225を有する。インターフェース装置221に、SIMカード211、各通信ポート205及び各信号処理ユニット207が接続される。
【0048】
メモリ223が、ファイルシステム情報251を格納する。ファイルシステム情報251は、ディレクトリとファイルを含む。ファイルシステム情報251において、ディレクトリとファイルは例えば木構造の関係を有する。ファイルシステム情報251が、複数のプログラムの各々について、プログラムの実行ファイルを含む構造体を含む。
【0049】
また、メモリ223は、セキュア領域281を有してよい。セキュア領域281は、通信モジュール101の秘密鍵A(公開鍵認証方式における公開鍵Aと秘密鍵Aからなる鍵ペアのうち、秘密鍵Aに相当するもの)を格納してよい。通信モジュール101のセキュア領域281に秘密鍵Aを格納した場合は、エンドユーザクライアント113が秘密鍵Aに対応する公開鍵Aを用いてデータを復号することで、通信モジュール101から送信されたことを担保することができる。また、公開鍵認証方式におけるエンドユーザクライアント113の公開鍵Bと秘密鍵Bからなる鍵ペアのうち、公開鍵Bに相当するものを通信モジュール101のセキュア領域281に格納した場合には、エンドユーザクライアント113のユーザが公開鍵Bに対応する秘密鍵Bを管理し用いることで通信モジュール101が産業機器103等から取得した情報を保護することができる。なお、メモリ223がセキュア領域281を有している場合は、プロセッサ225とメモリ223を同一のチップ内に実装するなどにより、両者を接続するバス信号線が容易にプロービングされない構造であることが望ましい。
【0050】
プロセッサ225は、メモリ223に格納されている複数のプログラム(例えば、複数のプログラムの実行ファイル)を実行する。
【0051】
図3は、通信モジュール101の論理的な構成を示す。
【0052】
プロセッサ225により実行される複数のプログラムは、ファームウェア305、OS(Operating System)301、及び、複数のアプリ303を含む。OS301は、例えば、オープンソースのOS、例えば、Linux(登録商標)でよい。また、メモリ223に、公開鍵管理テーブル351が格納される。公開鍵管理テーブル351は、管理サーバ115毎に、管理サーバIDと、当該管理サーバ115の公開鍵を表す情報とを格納する。なお、本実施例では代表して公開鍵管理テーブル351は公開鍵を管理する例として説明するが上記したように秘密鍵を管理することもできる。
【0053】
複数のアプリ303は、OS301上で実行される第1アプリ303Aと、OS301上で実行される一つ又は複数の第2アプリ303Cとを含む。エンドユーザまたはユーザは、通信モジュール101が
図1で説明したユーザアプリケーション180をダウンロードすることで、アプリ303として利用することができる。
【0054】
例えば、第2アプリ303Cは、通信モジュール101のシステムや通信に関するアプリケーションであることが多い。ユーザのみならず通信モジュール101の製造企業(ベンダ、供給者または提供者とも呼ぶ)が、管理サーバ170を経由して各通信モジュール101に対してOTA(On The Air)によるファームウェアアップデートまたはソフトウェアアップデートを実施することが可能である。この場合、ベンダはユーザとなる。第1アプリ303AをOTAを用いて更新できるため、セキュリティ対策やバグfixが容易となり、より安心した通信モジュール101とすることができる。
【0055】
一つ又は複数の第2アプリ303Cのうちの一つ以上の第2アプリ303Cの各々は、一つ以上の通信インターフェース規格上での一つ以上の通信プロトコルに従う通信を行うアプリであり、任意にインストールされ任意にアンインストール可能なアプリである。一つ又は複数の第2アプリ303Cの一例が、ルータアプリ303C1(IP(Internet Protocol)に従う通信を中継するルータとして通信モジュール101を機能させるためのアプリ)、Modbusアプリ303C2(Modbusプロトコルで通信するためのアプリ)、及び、MQTTアプリ303C3(MQTTプロトコルで通信するためのアプリ)である。
【0056】
第1アプリ303Aは、OS301と一つ又は複数の第2アプリとの間のミドルウェアとしてのアプリである。以下、第1アプリ303Aを、「フレームワーク」と呼ぶことがある。
【0057】
通信モジュール101は、異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースを備え、通信インターフェース規格や通信プロトコルの種類に応じた第2アプリがインストール(又はアクティベート)される。アクティベートとは、予め第2アプリの実行前に、配信サーバ117から第2アプリとしてOS301上にダウンロードとインストールをしておき、第2アプリの管理者からユーザまたはエンドユーザが第2アプリを利用することを許可されることをいう。
【0058】
その後、ユーザまたはエンドユーザは第2アプリを実行することができる。アクティベート処理の際に、管理サーバ115を介してユーザまたはエンドユーザがアクティベートを要求する処理とユーザが第2アプリをアクティベートする処理を管理するとアクティベートや第2アプリの利用状況を把握できるため、この把握された利用状況を基に第2アプリの利用料の計算が可能となる。なお、利用状況の把握は配信サーバ115が行ってもよく、また、第2アプリ側で利用時間や利用回数を計測し、配信サーバ117や管理サーバ115へ送信することもできる。
【0059】
個々のアプリ303は独立しているが、OS301と一つ又は複数の第2アプリ303Cとの間のミドルウェアとしてのフレームワーク303Aが存在する。このため、アプリ303間の連携が支援され、以って、通信モジュール101に接続される産業機器103が有するインターフェースの種類に依存しないデータ通信を可能にする汎用的な通信モジュール101が実現される。
【0060】
なお、アプリ303毎にコンテナのような独立した実行環境が構築され当該実行環境においてアプリ303が実行されてもよいが、
図3に例示の構成によれば、アプリ303はOS301によりプロセスとみなされて実行される。このため、コンテナのような実行環境が必要とされる構成と比べて、通信モジュール101の必要とされるリソース量は小さくすることができる。
【0061】
ユーザは、通信モジュール101が接続されエンドユーザに使用される産業機器103について通信モジュール101経由でデータを収集し、収集されたデータを分析することで、エンドユーザにとってより価値の高いサービスを提供することが期待できる。
【0062】
ユーザまたはエンドユーザは、通信モジュール101にユーザによって作られた第2アプリ303Cをインストールしたり、通信モジュール101から第2アプリ303Cをアンインストールしたりすることができる。
【0063】
第2アプリ303Cは、ユーザからの要求に応答して(又は、ユーザからの要求無しに)、通信モジュール101の提供者によってインストール(又はアンインストール)されてもよい。
【0064】
このインストール等の処理の際に、フレームワーク303がフレームワーク303上で動作する第2アプリ303や第2アプリが通信するインターフェースの使用状況を確認し、使用していない第2アプリであるか、あるいは第2アプリが使用中であれば、非使用のときにインストールやアンインストールあるいはアップデート処理をすることができる。
【0065】
これにより、インストール等のプロセスが各アプリの状況を1:多の関係ではなく、プロセスとフレームワーク303が1:1の関係で確認するだけでよくなり、インストール等が容易となる。また、通信モジュール101と接続された産業機器103の通信を阻害せずにインストール等を実現することができる。
【0066】
第2アプリ303Cは、ユーザ又はモジュール提供者等によって用意されたエンドユーザ向けの第2アプリ303Cでもよいし、分析用アプリのようにユーザ向けの第2アプリ303Cでもよい。第2アプリ303Cは、アプリストアのような配信サーバ117からユーザにより選択されたアプリがインストールされてもよい。
【0067】
具体的には、例えば、フレームワーク303Aが、配信サーバ117にアクセスし、通信モジュール101に接続された計算機(図示しない)で実行されるWebブラウザのWeb画面上に、選択可能な第2アプリ(例えば、第2アプリのアイコン)を表示し、ユーザによりWeb画面から選択された第2アプリを、通信モジュール101にインストールしてよい。いずれの第2アプリ303Cがどの程度使用されたかに応じて、エンドユーザ又はユーザに対する課金額が決定されてよい。課金額の決定方法については後に説明する。
【0068】
また、監視アプリ303B1は、第3アプリ303Bの一例である。フレームワーク303A及び監視アプリ303B1は、通信モジュール101の提供者によってインストール(例えば、プリインストール)されてよい。監視アプリ303B1については後述する。なお、フレームワーク303Aが、監視アプリ303B1のような第3アプリ303Bを兼ねてよい。すなわち、フレームワーク303Aが、監視アプリ303B1を兼ねてもよい。なお、「第3アプリ」とは、OS303上のアプリのうち第1アプリ及び第2アプリ以外のアプリでよい。
【0069】
【0070】
フレームワーク303Aが、各第2アプリ303を管理する。例えば、各第2アプリ303は、当該第2アプリ303についてメモリ223の設定された領域に、当該第2アプリ303の使用履歴(例えば、稼働情報)を格納する。フレームワーク303Aが、各第2アプリ303について、当該第2アプリ303に対応した領域に登録された使用履歴を参照してよい。
【0071】
通信モジュール101が異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースを有するため、個々の第2アプリ303が、任意の二種類以上の通信プロトコルや通信インターフェース規格に対応してもよい。
【0072】
しかし、通信プロトコルや、通信プロトコルが関わるレイヤの下位レイヤに属するや通信インターフェース規格は、様々である。このため、産業機器103とのデータ通信のための通信プロトコルや通信インターフェース規格と、産業機器103以外とのデータ通信のための通信プロトコルや通信インターフェース規格との組合せの数は膨大となり得る。
【0073】
例えば、産業機器103からデータを受信し受信したデータを管理サーバ115に送信するケースを考察する。産業機器103がModbusプロトコルをサポートしていれば、データ受信の通信プロトコルとしてModbusプロトコルを使用することが考えられる。
【0074】
一方、管理サーバ115へのデータ送信の通信プロトコルとしては、MQQTプロトコルやUDPといった通信プロトコルを使用することが考えられる。単一の第2アプリが、産業機器103とのデータ通信と産業機器103以外とのデータ通信とを行う必要があると、第2アプリの開発が煩雑である。
【0075】
そこで、本実施形態では、通信モジュール101に接続された産業機器103との通信を行うが産業機器103以外との通信を行わない(つまり、ローカル通信を行う)ローカルの第2アプリと、通信モジュール101に接続された産業機器103以外との通信を行い当該産業機器103との通信を行わない(つまり、グローバル通信を行う)グローバルの第2アプリとが用意される。
【0076】
ローカルの第2アプリとグローバルの第2アプリの各々の開発は、ローカル通信とグローバル通信の両方を行う第2アプリの開発に比べて容易であることが期待される。また、ローカル通信の通信プロトコルや通信インターフェース規格とグローバル通信の通信プロトコルや通信インターフェース規格との組合せ毎に第2アプリが必要とならないので、通信モジュール101のリソースを効率的に使用することも期待される。
【0077】
これらのローカル通信を行う第2アプリとグローバル通信を行う第2アプリそれぞれが自由に動作すると、OS上でメモリのアクセス等がぶつかる場合があるが、フレームワークがこれらの第2アプリを監視し、メモリへのアクセス等を制御することにより第2アプリそれぞれを動作させることができる。
【0078】
図4が示す例によれば、Modbusアプリ303C2が、ローカルの第2アプリの一例である。すわなち、ローカルの第2アプリであるModbusアプリ303C2が、第1の第2アプリとなる一例である。また、MQTTアプリ303C3が、グローバルの第2アプリの一例である。すなわち、グローバルの第2アプリであるMQTTアプリ303C2が、第2の第2アプリとなる一例である。
【0079】
例えば、Modbusアプリ303C2が、Modbusプロトコルに従う通信が行われる通信インターフェース規格(例えばRS485)に対応した通信インターフェース経由で、当該通信インターフェースに接続されている産業機器103Bからデータを受信する。MQTTアプリ303C3が、Modbusアプリ303C2が受信したデータ又は当該データの加工後のデータを、MQTTプロトコルに従う通信が行われる通信インターフェース規格に対応した通信インターフェース経由で、管理サーバ115等(所定のサーバの一例)に送信する。
【0080】
なお、通信モジュール101に接続される産業機器103によっては、MQTTアプリ303C3がローカルの第2アプリの一例となることもあり得る。本発明の一実施形態に係るフレームワークを用いることで、このようなローカルとグローバルの接続を切り替えることや別アプリとしてローカル向けMQTTアプリとグローバル向けMQTTアプリを併存させることができる。第2アプリ303C間の連携は、上述した直接の連携でも間接の連携でもよい。
【0081】
Modbusアプリ303C2とMQTTアプリ303C3を例に取ると、それらの第2アプリ303C間の連携は、例えば、次の通りでよい。Modbusアプリ303C2が、産業機器103Bから受信したデータを、メモリ223のうちの、Modbusアプリ303C2に対応した領域に書き込む。
【0082】
MQTTアプリ303C3が、Modbusアプリ303C2に対応した領域からデータを読み出し、読み出したデータを管理サーバ115に送信する。MQTTアプリ303C3は、Modbusアプリ303C2に対応した領域のアドレスを、フレームワーク303Aへの問合せに対する応答から、又は、MQTTアプリ303C3について設定された情報から、知ることができる。
【0083】
また、後述するように、ユーザは、Modbusアプリ303C2がデータを受信する通信タイミングや、Modbusアプリ303C2がデータを送信する通信タイミングを、フレームワーク303A経由で通信モジュール101に設定することが可能である。
【0084】
さて、個々の第2アプリ303Cは、OS301によりプロセスとみなされて実行される。個々の第2アプリ303Cは、実行ログのような使用履歴(例えば、リソース量)を、当該第2アプリ303について設定された領域に書き込む。フレームワーク303Aは、個々の第2アプリ303Cの実行によって何が発生するか(例えば、いずれの種類のリソースがどの程度使用されるか)かまではわからない。
【0085】
そこで、本実施形態では、監視アプリ303B1が通信モジュール101にインストールされる。監視アプリ303B1は、例えば、第2アプリ303C毎に、定期的に、フレームワーク303Aに対し、当該第2アプリ303Cに対応した領域にデータがあるか否かを問合せる。フレームワーク303Aは、データがあれば、当該データを領域から読み出して監視アプリ303B1に返し、データが無ければ、データが無いことを監視アプリ303B1に回答する。
【0086】
監視アプリ303B1が問合せに応答してフレームワーク303Aから受信するデータは、第2アプリ303Cの使用履歴を表す情報を含んでいる。監視アプリ303B1は、フレームワーク303Aから受信したデータを、監視アプリ303B1のアプリIDと、当該データに対応した第2アプリ303CのアプリIDとに関連付けて、グローバルの第2アプリの一例であるMQTTアプリ303C3に渡す(例えば、メモリ223における所定の領域に書き込む)。MQTTアプリ303C3が、渡されたデータを管理サーバ115に送信する。
【0087】
管理サーバ115は、監視アプリ303B1のアプリIDが関連付いたデータを格納する。当該データは、第2アプリ303Cの使用履歴を表す情報を含む。このように、通信モジュール101内の状況を監視する監視アプリ303B1が通信モジュール101において実行されることで、各第2アプリ303Cを、フレームワーク303Aを通じて追跡することができる。
【0088】
結果として、通信モジュール101の信頼性を維持することが期待される。例えば、複数の第2アプリ303Cを実行していた通信モジュール101がシステムダウンしたとする。この場合、管理サーバ115に格納された、各第2アプリ303Cの使用履歴を、モジュール提供者が分析することで、問題のあった第2アプリ303Cを特定することが期待できる。このようにして、モジュール提供者からユーザへ通信モジュール101の状況のフィードバックをすることが期待できる。
【0089】
また、問題があった第2アプリ303Cの修正データ(又は、当該アプリ303Cの新バージョン)を配布サーバ117経由又は非経由で通信モジュール101に提供することも期待できる。
【0090】
なお、第2アプリ303C毎に、メモリ223のどの領域に使用履歴を表す情報を書き込むかは、予め決められている。例えば、各第2アプリ303Cについて、書込み先領域のアドレスを表す設定値は、当該第2アプリ303Cに対応した後述の設定定義ファイルに基づきフレームワーク303Aによって生成された設定画面を通じて入力され設定ファイルに登録された値でよい。
【0091】
監視アプリ303B1は、各第2アプリ303Cについて、予め決められた領域を参照することで、当該第2アプリ303Cの使用履歴を表す情報を取得し、当該情報を含んだデータを、MQTTアプリ303C3のようなグローバルの第2アプリに渡すことができる。
【0092】
また、本実施形態では、MQTTアプリ303C3のようなグローバルの第2アプリ303Cが存在するため、監視アプリ303B1は、グローバルの第2アプリ303C経由でデータを管理サーバ115に送信するが、監視アプリ303B1が、グローバル通信の機能を有していて、監視アプリ303B1それ自体が、管理サーバ115にデータを送信してもよい。
【0093】
また、監視アプリ303B1に代えて又は加えて、他の第3アプリ303Bがインストールされてもよい。例えば、課金額を決定するアプリである課金アプリ303B2がインストールされてもよい。
【0094】
フレームワーク303Aが、第2アプリ303Cにより通信インターフェース経由で通信されたデータの量であるデータ通信量(別の言い方をすれば、第2アプリ303C以外のアプリ(例えば、監視アプリ303B1)による通信のデータ通信量を除くデータ通信量)を特定してよい。
【0095】
当該データ通信量は、例えば、アプリ303毎の使用履歴から特定されてよい。課金アプリ303B2が、当該特定されたデータ通信量に基づいて、課金額を決定してよい。決定された課金額は、通信モジュール101の使用課金額でもよいし、通信モジュール101が接続された産業機器103の使用課金額でもよい。
【0096】
課金額の決定は、本実施形態では、後述するように、管理サーバ115のようなコア装置によって行われるが、産業機器103に接続された通信モジュール101のようなエッジ装置によって行われてもよい。
【0097】
図5は、アプリ303のインストールとアプリ303に関する設定との概要を示す。
【0098】
ファイルシステム情報251によれば、木構造のディレクトリ511とファイル501とがある。具体的には、例えば、ルートディレクトリ511Tの下位に、アプリトップディレクトリ511Aがあり、アプリトップディレクトリ511Aの直下に、アプリ303毎にアプリディレクトリ511Rが作成される。
【0099】
アプリディレクトリ511Rに、当該アプリディレクトリ511Rに対応するアプリ303に関わるデータ一式が格納される。なお、ディレクトリ511及びファイル501の各々は、オブジェクトの一例でよい。
【0100】
一般に、アプリ(アプリケーションプログラム)に対する設定値は、設定画面経由でオペレータにより入力されるが、アプリの設定画面は、アプリのソースコードに記述された情報に基づくアプリ固有の画面である。アプリ毎に構成がアプリ固有であると、アプリ間の連携が煩雑であると考えられる。
【0101】
アプリごとに異なるインターフェースであると、通信モジュール101のエンドユーザまたはユーザはアプリごとにその利用方法を習得する必要が生じるためである。また、インターフェース情報をアプリごとに持たせると通信モジュールの101のメモリを消費やプロセッサのリソース使用量が増加するため、インターフェースを共通化することで汎用機に比べてリソースが小さい組み込み機器である通信モジュール101のリソース使用量を小さくすることができる。
【0102】
そこで、本実施形態では、少なくとも第2アプリ303Cについて、実行ファイル501E1、設定定義ファイル501F2及び設定ファイル501S3から構成されたアプリ構造体が採用される。
【0103】
実行ファイル501Eは、第2アプリ303Cの本体に相当するファイルである。第2アプリ303Cの実行は、当該第2アプリ303Cの実行ファイル501Eの実行である。設定定義ファイル501F2は、第2アプリ303Cについて一つ以上の設定項目を表すファイルである。
【0104】
設定ファイル501S3は、当該一つ以上の設定項目について一つ以上の設定値が入力された場合に当該入力された一つ以上の設定値が登録されるファイルである。フレームワーク303Aが、設定定義ファイル501F2を基に設定画面を構築して提供し、設定画面に入力された設定値を設定ファイル501S3に登録する。
【0105】
各第2アプリ303Cの実行は、当該第2アプリ303Cに対応した設定ファイル501S3に登録された設定値に従う。これにより、アプリ303間の連携がし易い。また、設定画面はフレームワーク303Aにより構築され提供されるので、第2アプリ303の開発もし易いと考えられる。
【0106】
フレームワーク303Aは、アプリ303のインストールのためのインターフェースの一例として、CUI(Character User Interface)を提供する。フレームワーク303Aが提供するCUI経由で、配信サーバ117が、アプリ構造体をアプリトップディレクトリ511A(所定のディレクトリの一例)に格納することが、アプリ303のインストールでよい。
【0107】
例えば、
図5が示す例によれば、アプリトップディレクトリ511Aに、Modbusディレクトリ511R2が作成され、Modbusディレクトリ511R2に、Modbusアプリ303C2のアプリ構造体(実行ファイル501E2、設定定義ファイル501D2及び設定ファイル501S2)が格納される。この格納処理は、Modbusアプリ303C2のインストールの際に行うとよい。
【0108】
また、通信モジュール101に対するアプリ303のインストールは、エンドユーザからの要求に応じて行われるいわゆるプル型のインストールでもよいが、本実施形態では、エンドユーザからの要求無しに配信サーバ117によって能動的に行われる(例えば、ユーザ又はモジュール提供者からの要求に従い行われる)いわゆるプッシュ型のインストールを行う。
【0109】
これにより、ユーザ又はモジュール提供者は、通信モジュール101の信頼性を維持することが期待できる。配信サーバ117は、エンドユーザ以外のエンティティにより管理されるシステムの一例である。ネットワークへの負荷を低減させるため、通信モジュール101の製造番号、SIMカード211が有するIMEI(International Mobile Equipment Identity)や接続される通信キャリアの情報を基に、プッシュ型のインストールやアプリの配信タイミングを変更するとよい。
【0110】
フレームワーク303Aは、アプリ303の設定画面としてのインターフェースの一例として、GUI(Graphical User Interface)を提供する。
図5が示す例によれば、Modbusアプリ303C2が例として採用されている。
【0111】
フレームワーク303Aが、指定されたModbusアプリ303C2の設定定義ファイル501D2を基に、当該設定定義ファイル501D2が表す一つ以上の設定項目について一つ以上の設定値を受け付ける設定画面を生成し、当該生成した設定画面を提供する。
【0112】
例えば、ネットワーク109経由又は非経由で、管理端末605が通信モジュール101に通信可能に接続される。管理端末605は、入出力装置を有する計算機の一例でよい。
【0113】
フレームワーク303Aにより生成された設定画面は、管理端末605に提供され表示される。当該設定画面が表す一つ以上の設定項目について、管理端末605のオペレータにより、一つ以上の設定値が入力される。当該設定画面に入力された一つ以上の設定値を、フレームワーク303Aが、Modbusアプリ303C2の設定ファイル501S2に登録する。
【0114】
Modbusアプリ303C2の実行(例えば、Modbusプロトコルに従い産業機器103からデータを収集する周期、及び、収集したデータの格納先領域)は、設定ファイル501S2に登録された設定値に従う。
【0115】
なお、フレームワーク303Aは、アプリ303のインストール管理情報(例えば、インストール済のアプリのリスト)を管理してもよいが、本実施形態では、フレームワーク303Aは、アプリトップディレクトリ511Aにアプリ構造体が格納されていることをアプリがインストールされていると管理し、インストール管理情報を管理しないように扱うことができる。
【0116】
フレームワーク303Aは、アプリトップディレクトリ511Aを参照することで、第2アプリ303Cのインストール済を特定する。インストール管理情報が管理されるケースにおいて、第2アプリ303のインストール中に通信モジュール101に供給される電源の遮断や切断が生じると、アプリトップディレクトリ511A下の構造とインストール管理情報が表す内容とに不整合が起こり得る。本実施形態では、アプリトップディレクトリ511Aの下位にアプリ構造体が存在することが、アプリ303のインストール済として管理されるので、上述のような不整合は生じにくくなりアプリのインストール情報の管理コストを低減させることができる。
【0117】
【0118】
フレームワーク303Aが、設定画面を提供する。具体的には、例えば、フレームワーク303Aが、アプリトップディレクトリ511Aを参照することでインストール済のアプリを特定し、特定されたアプリのリスト(例えば、特定されたアプリのアイコン603Rのリスト)を表示したメニュー画面601Tを提供する。
【0119】
いずれかのアプリのアイコン603Rがオペレータにより指定されると、フレームワーク303Aは、指定されたアイコン603Rに対応したアプリの設定定義ファイル501Dに基づいて、当該設定定義ファイル501Dが表す一つ以上の設定項目について一つ以上の設定値を受け付けるGUI(例えば、当該設定定義ファイル501Dが表す一つ以上の設定項目の各々について、設定値の入力用のUIを有するGUI)である設定画面を生成し、生成した設定画面を提供する。
【0120】
図6が示す例によれば、Modbusアプリ303C2に対応したアイコン603R2が指定されている。また、設定項目は、大項目と小項目のように階層化されている。この場合、フレームワーク303Aは、Modbusアプリ303C2の設定定義ファイル501D2を参照し、まず、当該設定定義ファイル501D2に記述されている一つ以上の設定大項目のリスト(例えば、一つ以上の設定大項目をそれぞれ表す一つ以上のアイコン)を表示したメニュー画面601Mを生成し、メニュー画面601Mを提供する。
【0121】
メニュー画面601Mからいずれかの設定大項目が指定された場合、フレームワーク303Aは、設定定義ファイル501D2から、指定された設定大項目に属する一つ以上の設定小項目を特定し、特定された設定小項目毎のUI(設定値の入力用のUI)605を有する設定画面601Aを生成し、生成した設定画面601Aを提供する。
【0122】
例えば、設定大項目“接続先デバイス設定”が指定された場合、設定小項目“デバイス名”、“ポート名”、…にそれぞれ対応する入力用UI605aa、605ab、…が表示された設定画面601A1が提供される。また、例えば、設定大項目“接続設定”が指定された場合、設定小項目“デバイス名”、“レジスタ#”、…にそれぞれ対応する入力用UI605ba、605bb、…が表示された設定画面601A2が提供される。
【0123】
画面遷移の例は、
図6が示す例に限られないでよい。例えば、アプリのアイコン603Rが指定された場合、画面601Mと601Aが一体となった設定画面、すなわち、設定大項目毎に、各設定小項目とその入力用UI605とが表示された設定画面が表示されてもよい。
【0124】
このように、フレームワーク303Aは、アプリの設定定義ファイル501Dを基に設定画面を生成し提供することができる。
【0125】
なお、設定画面の提供先は、
図5に例示した管理端末605(計算機の一例)でよい。また、設定画面は、管理端末605で実行されるWebブラウザにより表示可能な画面でよい。Webブラウザのような一般的なブラウザ経由で設定値を入力可能なので、利便性が高い。
【0126】
【0127】
管理サーバ115は、インターフェース装置721、記憶装置723及びそれらに接続されたプロセッサ725を備える計算機システムであってもよいし、当該計算機システムで一つ以上のプログラムが実行されることで実現される仮想的なシステムであってもよい。
【0128】
記憶装置723に格納されているプログラムのうちの少なくとも一つのプログラムが実行されることで、プロセッサ725に、管理部761及び課金部763といった機能が実現される。
【0129】
記憶装置723が、セキュア領域781を有してよい。セキュア領域781は、管理サーバ115の秘密鍵または公開鍵を格納してよい。
【0130】
記憶装置723が、公開鍵管理テーブル751、ユーザ管理テーブル753及び使用管理テーブル755を格納する。
【0131】
セキュア領域781に秘密鍵を持たせた場合の公開鍵管理テーブル751は、通信モジュール101毎に、通信モジュールIDと、当該通信モジュール101の公開鍵を表す情報とを格納する。
【0132】
ユーザ管理テーブル753は、ユーザ毎に、ユーザIDと、当該ユーザの情報(例えば、連絡先(例えば、電子メールアドレス)、使用される通信モジュール101のモジュールID、及び、当該通信モジュール101に接続されている産業機器103の情報)を格納する。
【0133】
使用管理テーブル755は、通信モジュール101毎に、モジュールIDと、当該通信モジュール101のアプリ使用履歴を表す情報を格納する。アプリ使用履歴は、通信モジュール101にインストールされているアプリ303毎に、下記のうちの少なくとも一つを含んでよい。
・アプリID:通信モジュール101におけるアプリ303のID。
・ユーザID:アプリ303を使用したユーザのID。
・エンドユーザID:アプリ303を使用したエンドユーザのID。
・インストール時刻:アプリがインストールされた時刻。
・アクティベート時刻:インストールされたアプリがアクティベートされた(例えば、使用開始が希望された)時刻。
・リージョンID:アプリ実行時の通信モジュール101が属するリージョンのID。
・リソース使用量:アプリの実行において使用されたリソースの量。
・アプリステータス:アプリのステータス(例えば、正常や異常)。
【0134】
アプリ実行時の通信モジュール101が配置されるリージョンの特定は、例えば、当該アプリを実行する通信モジュール101が受信したGPS信号を基に検出される。SIMカード211が接続される基地局や通信キャリアの情報、GNSS(Global Navigation Satellite System)信号を基にしてもよい。
【0135】
また、「リソース」は、通信モジュール101のリソース(典型的には、通信インターフェース、メモリ223及びプロセッサ225といった計算リソース)である。「リソース使用量」としては、データ通信量、プロセッサ使用率、プロセッサ使用時間及びメモリ使用量といった種々のリソース使用量を採用できる。
【0136】
通信モジュール101におけるアプリ303毎のアプリ使用履歴(例えば、リソース使用量)を表す情報を含んだデータは、当該通信モジュール101における監視アプリ303B1によって、例えば、OS301通じて、メモリ223から取得され、監視アプリ303B1から、例えばグローバルの第2アプリ303Cを通じて、管理サーバ115に送信される。管理部761が、当該データを、使用管理テーブル755のうち、当該データの送信元の通信モジュール101に対応した欄に登録する。課金部763が、使用管理テーブル755を基に、通信モジュール101の使用に関する課金額を決定する。
【0137】
監視アプリ303B1が通信モジュール101に接続された産業機器103のセンサやステータス以外を監視する変形例について説明する。監視アプリ303B1とは別に第2アプリとして実行してもよい。例えば、監視アプリ303B1は、通信モジュール101に接続された機器のファームウェアのアップデートを行うことができる。
【0138】
監視アプリ303B1は、産業機器103のファームウェアのリビジョン情報やファームウェアの内容と配信サーバ117に登録された産業機器103に対応するファームウェアのリビジョン情報やそのファームウェアの内容を監視する。
【0139】
配信サーバ117に記憶されるファームウェアが更新または登録された場合に、産業機器103のファームウェアと比較し、差分がある場合には、エンドユーザクライアント113に産業機器103の新しいファームウェアが存在することを表示する。
【0140】
表示され、ユーザまたはエンドユーザがファームウェアの更新を行うことに同意した場合には、通信モジュール101は接続された産業機器103のファームウェアを更新する。このファームウェアを更新した回数や通信を行った時間等を用いて課金額を決定または算出することができる。課金額は配信サーバ117または管理サーバ115で決定、算出、管理することができる。また、ユーザやエンドユーザがファームウェアの自動更新のサブスクリプション契約を行っている場合には、契約期間中は適宜ファームウェアを更新してもよく、この場合は契約情報を監視アプリ117に登録等するとよい。契約期間を満了した場合や満了前には契約を更新するかユーザまたはエンドユーザに確認するとよい。契約満了の場合は個別に課金することもでき、これによりユーザニーズに対応するファームウェアのアップデートを実現できる。
【0141】
図8は、アプリの使用状況や使用履歴を用いた課金額や課金方法の流れの概要を示す。
【0142】
管理サーバ115において、管理部761が、通信モジュール101A、101B、…からデータを受信する。各通信モジュール101について、受信したデータは、当該通信モジュール101におけるアプリ使用履歴を表す情報を含む。管理部761は、受信したデータを、当該データの送信元の通信モジュール101に対応した欄に登録する。
【0143】
課金部763が、使用管理テーブル755が表す通信モジュール101のうち所定期間についての課金額が未決定の通信モジュール101を選択し、当該通信モジュール101についてアプリ使用履歴を表す情報を使用管理テーブル755から取得する。アプリ使用履歴を表す情報は、使用管理テーブル755に登録されることに代えて、通信モジュール101からのデータから課金部763により特定されてもよい(すなわち、使用管理テーブル755は無くてもよい)。課金部763は、アプリ使用履歴を表す情報に基づいて、通信モジュール101の使用に関する課金額を決定する。
【0144】
例えば、課金部763は、アプリ使用履歴を表す情報から、各第2アプリ303Cの使用履歴を特定し、各第2アプリ303Cの使用履歴を基に、通信モジュール101の使用に関する課金額を決定してよい。
【0145】
通信モジュール101によれば、第2アプリ303Cをユーザの要求に応じてインストールすることができる。また、通信モジュール101におけるフレームワーク303Aが、インストール済の一つ以上の第2アプリ303Cのうちエンドユーザ所望の第2アプリ303Cの指定をユーザ(又はエンドユーザ)から受け付け、当該指定された第2アプリ303Cをアクティベートしてよい。
【0146】
このように任意に第2アプリ303Cをインストール又はアクティベートすることができるが、各第2アプリ303Cの使用履歴は監視され管理サーバ115に通知される。このようなアプリ使用履歴を基に、通信モジュール101の使用に関する課金額が決定される。
【0147】
この例では、課金額のベースは、任意にインストール(又はアクティベート)が可能なアプリである第2アプリ303Cの使用に起因したアプリ使用履歴(例えば、リソース使用量)に限られており、第2アプリ303Cの使用に起因しないアプリ使用履歴(例えば、監視アプリ303B1のデータ通信量)は含まれない。
【0148】
このため、ユーザにとって、課される金額が適切であることが期待され、以って、産業機器103の種類に依存しないデータ通信を可能にする汎用的な通信モジュール101の利用促進が期待される。
【0149】
なお、「通信モジュール101の使用に関する課金額」とは、ユーザ毎の課金額であってもよいし、各ユーザについて当該ユーザのエンドユーザ毎の課金額であってもよい。エンドユーザ毎の課金額を基に、ユーザが、エンドユーザに課する金額を決定してもよい。
【0150】
また、第2アプリ303Cの使用履歴は、当該第2アプリ303Cのアクティベート時刻を表す情報を含んでいる。インストール時刻からの使用時間でもよいが、アクティベート時刻からの使用時間をベースにすることで、より適切な課金額の決定が期待される。
【0151】
通信モジュール101が、所定の通信網(例えば、通信網109A又は109B)に対応し加入者識別情報を格納したSIMカード211(加入者識別情報を格納したカードの一例)を有している。第2アプリ303C(例えば、グローバルの第2アプリ)が、SIMカード211内の加入者識別情報を含むデータを、フレームワーク303Aが提供した設定画面経由で設定された設定値の一例としての通信タイミングで、管理サーバ115送信してよい。
【0152】
このように、加入者識別情報を含むデータの送信タイミングを、フレームワーク303A経由で設定した通信タイミングに制限することができる。なお、課金部763が、決定された課金額が反映された料金を所定の通信網(例えば、通信網109A又は109B)を管理する通信事業者が請求可能にするために、決定された課金額を表す情報を、当該通信事業者宛に(例えば、通信事業者サーバ107に)送信してよい。
【0153】
これにより、通信モジュール101の通信に使用された所定の通信網を管理する通信事業者からユーザ(又はエンドユーザ)に対して課される通信料金を、当該ユーザ(又はエンドユーザ)についての課金額が反映された料金とすることが期待できる。
【0154】
課金部763が、通信モジュール101A(第1の通信モジュールの一例)のアプリ利用履歴が表す或る第2アプリ303Cのアクティベート時刻と、通信モジュール101B(第2の通信モジュールの一例)のアプリ使用履歴が表す同一の第2アプリ303C(或る第2アプリ303Cと同一の第2アプリ303C)のアクティベート時刻とを基に、通信モジュール101Aに関する課金額Aと通信モジュール101Bに関する課金額Bとを決定してよい。
【0155】
このように、共通の第2アプリ303Cの使用に関する金額のベースを、当該第2プリ303Cのアクティベート時刻(例えば、アクティベート時刻からの使用時間)とすることができる。例えば、課金額Aのうち上記或る第2アプリ303Cの使用に関わる部分の料金と、課金額Bのうち同一の第2アプリの使用に関わる部分の料金とのうち、当該第2アプリ303Cのアクティベート時刻が早い方の料金が安くてよい。これにより、第2アプリ303Cの積極的な利用を促進できる。
【0156】
アクティベート時刻が早い方の料金が安いとは、アプリ303Cの月間または年間のサブスクリプション契約の単価を低くするということである。アプリ303Cのアクティベート数が所定数を超えるごとに、既にアクティベートされていた利用者の利用料または利用料の比率を下げることもできる。
【0157】
例えば、第2アプリ303Cの利用者が第一の利用者数の場合には、第一の時刻から利用する第一の利用者は月額A円、第一の時刻より遅い第二の時刻から利用する第二の利用者は月額B円である。その後、第二の共通アプリ303Cの利用者数が第一の利用者数より増加し第二の利用者数になった場合には、第一の利用者は月額A円より安価なC円、第二の利用者は月額B円より安価なD円とするとよい。
【0158】
さらに、B<Dの関係となると、より第一の利用者を優遇できるため、アプリの利用促進に繋がる。ひいては、ユーザによるアプリのデバッグやアップデートも進み、ベンダ、ユーザ、エンドユーザ全体で安心して利用できる通信モジュール101を作り上げるエコシステムを構築することができる。
【0159】
管理部761は、決定された課金額の支払期限までの支払が無ければ、当該課金額が決定された通信モジュール101の全部又は一部の使用を制限してよい。このように、通信モジュール101の使用制限を管理サーバ115からかけることができる。
【0160】
通信モジュール101におけるいずれかのアプリ303が、当該通信モジュール101が存在するリージョンを特定してよい(例えば、GPS信号により検出された位置を基に所定のサーバと通信することでリージョンを特定してよい)。当該特定されたリージョンが所定のリージョンの場合、通信モジュール101におけるいずれかのアプリが、当該所定のリージョンに属する通信網に対応した加入者識別情報を用いた通信を制限してよい。
【0161】
これにより、モジュール提供者が通信を制限したいリージョンで通信モジュール101が制限無しに通信することを避けることができる。なお、リージョンを特定するアプリ303と、通信を制限するアプリ303は、同一でもよいし異なってもよく、また、第1アプリ、第2アプリ及び第3アプリのいずれでもよい。これにより、地域や国ごとで取り扱うデータを制限することができ、ユーザまたはエンドユーザは安心して産業機器のデータ通信を行うことができる。
【0162】
例えば、複数の通信網109A及び109B(
図1参照)が属する複数のリージョンに属する複数の管理サーバ115A及び115Bがあってよい。通信モジュール101Aが存在するリージョンに属する管理サーバ115Aの管理部761が、当該通信モジュール101Aの通信が許可されているリージョンである許可リージョンを特定してよい。
【0163】
当該許可リージョンに、通信モジュール101Aが存在するリージョンが該当しない場合(例えば、通信モジュール101Aが、通信網109Aが属するリージョンではなく通信網109Bが属するリージョンに存在する場合)、管理サーバ115Aの管理部761が、当該リージョンに属する通信網109Bに対応した加入者識別情報を用いた通信を制限してよい。
【0164】
また、上述した処理の少なくとも一部に代えて又は加えて、下記のような処理が行われてもよい。
【0165】
通信モジュール101と管理サーバ115間で送受信されるデータは、公開鍵暗号方式に従う暗号化と復号が行われてよい。すなわち、通信モジュール101におけるアプリ303が管理サーバ115にデータを送信する場合、当該アプリ303が、管理サーバ115の公開鍵(公開鍵管理テーブル351から特定された公開鍵)を用いてデータを暗号化し、暗号化されたデータを管理サーバ115に送信してよい。
【0166】
管理サーバ115の管理部761が、管理サーバ115の秘密鍵を用いて当該データを復号してもよい。一方、管理サーバ115における管理部761が通信モジュール101にデータを送信する場合、管理部761が、通信モジュール101の公開鍵(公開鍵管理テーブル751から特定された公開鍵)を用いてデータを暗号化し、暗号化されたデータを通信モジュール101に送信してよい。通信モジュール101におけるいずれかのアプリ303が、通信モジュール101の秘密鍵を用いて当該データを復号してもよい。
【0167】
このような環境において、例えば、通信モジュール101におけるいずれかのアプリ303が、SIMカード211内の加入者識別情報を、管理サーバ115の公開鍵を用いて暗号化し、暗号化された加入者識別情報を管理サーバ115に送信してよい。
【0168】
通信モジュール101が接続される通信網経由の通信を行う場合に、通信モジュール101におけるいずれかのアプリ303が、加入者識別情報と送信対象データ(例えば、産業機器103から取得されたデータ)とを含んだデータを、管理サーバ115の公開鍵で暗号化した後、フレームワーク303Aを通じて設定された通信タイミングに基づいて、当該暗号化されたデータを管理サーバ115へ送信してよい。
【0169】
管理サーバ115の管理部761が、暗号化されたデータを受信し、当該データを管理サーバ115の秘密鍵で復号してよい。管理部761が、復号されたデータが有する加入者識別情報に基づいて、通信モジュール101を特定し、特定された通信モジュール101が通信を行うことを認証してよい。
【0170】
課金部763が、認証された通信モジュール101のデータ通信量(復号されたデータが有する送信対象データが表すアプリ使用履歴から特定されたデータ通信量)に基づいて、通信モジュール101に関する課金額を決定してよい。
【0171】
通信モジュール101からの送信対象データは、当該通信モジュール101にインストールされたアプリ303をアクティベートすること(例えば、ユーザまたはエンドユーザから管理サーバ115へ使用希望を受けたこと)を表すアクティベート情報を含んでよい。
【0172】
結果として、アクティベート情報も、管理サーバ115の公開鍵を用いて暗号化されてよい。管理サーバ115の課金部763が、復号されたデータが有するアクティベート情報を用いて、通信モジュール101に関する課金額を決定してよい。
【0173】
決定された課金額を表すデータは、暗号化されたデータが経由した通信網を管理する通信事業者(例えば、通信事業者サーバ107)に送信されてよい。通信事業者からユーザ(又はエンドユーザ)へ課される通信料金に、上記決定された課金額が反映されてよい。
【0174】
通信モジュール101Aがアプリをアクティベートした時刻と通信モジュール101Bが同一のアプリをアクティベートした時刻とを用いて、課金部763が、通信モジュール101Aに関する課金額と通信モジュール101Bに関する課金額とを決定してよい。例えば、通信モジュール101Aでのアクティベート時刻と通信モジュール101Bでのアクティベート時刻とのうち早い方の通信モジュールに関する課金額が安価となってよい。
【0175】
管理サーバ115の管理部761が、ユーザが通信事業者へ料金を支払ったことを表す情報を受信した場合に、当該ユーザが使用する通信モジュール101の通信を継続すること又は当該通信モジュール101におけるアプリ303の使用を継続することを許可してよい。
【0176】
管理サーバ115の管理部761が、ユーザが通信事業者へ料金を支払ったことを表す情報を受信しない場合に、通信モジュール101の通信又は通信モジュール101におけるアプリ303の使用を禁止してよい。
【0177】
管理サーバ115の管理部761が、ユーザが通信事業者へ料金を支払ったことを表す情報を受信しない場合に、通信モジュール101に対して所定期間の通信又は所定期間のアプリの使用を継続することを許可してよい。
【0178】
管理サーバ115は、所定のリージョン毎に設けられてよい。通信モジュール101のSIMカード211が、接続される複数の通信網に対応する複数の前記加入者識別情報を格納していてよい。管理サーバ115の管理部761が、又は、通信モジュール101におけるいずれかのアプリ303が、通信モジュール101が存在するリージョンを表す情報と当該リージョンに属する通信網を特定することによって、当該通信モジュール101が使用する加入者識別情報を特定してよい。
【0179】
例えば、通信モジュール101におけるいずれかのアプリ303は、当該通信モジュール101が存在するリージョンによって、所定のリージョンに属する管理サーバ115への通信を禁止するように設定されてよい。
【0180】
また、例えば、管理サーバ115の管理部761が、所定のリージョンに存在する通信モジュール101からデータを受信した場合、又は、複数の加入者識別情報のうち所定の加入者識別情報を用いた通信がなされた場合、当該通信モジュール101の通信を禁止してよい。「通信モジュール101の通信を禁止」とは、当該通信モジュール101が所定の加入者識別情報を用いた通信を行うことを禁止することでよい。
【0181】
ただし、この場合、通信モジュール101のグローバル側の通信は禁止するが、ローカル側の通信は許可するとよい。ローカル側の通信を許可することで、通信モジュール101に接続される産業機器103の動作を維持することができる。
【0182】
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。
【0183】
例えば、上述の説明は、下記のように表現されてよい。
[表現1]
異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースと、
OS(Operating System)を含む複数のプログラムが格納されるメモリと、
前記複数の通信インターフェースと前記メモリとに接続され前記複数のプログラムを実行するプロセッサと
を備え、
前記複数のプログラムは、前記OS上で実行される第1アプリと、前記OS上で実行される一つ又は複数の第2アプリとを含み、
前記一つ又は複数の第2アプリのうちの一つ以上の第2アプリの各々は、一つ以上の通信インターフェース規格上での一つ以上の通信プロトコルに従う通信を行うアプリであり、且つ、任意にインストールされ任意にアンインストール可能なアプリであり、
前記第1アプリは、前記OSと前記一つ又は複数の第2アプリとの間のミドルウェアとしてのアプリである、
通信モジュール。
[表現2]
前記一つ又は複数の第2アプリの各々について、
当該第2アプリの実行オブジェクトと、
当該第2アプリについて一つ以上の設定項目を表す設定定義オブジェクトと、
当該一つ以上の設定項目について一つ以上の設定値が入力された場合に当該入力された一つ以上の設定値が登録される設定オブジェクトと
を含んだアプリ構造体があり、
前記一つ又は複数の第2アプリの各々について、当該第2アプリの実行は、当該第2アプリの設定オブジェクトに基づいており、
前記第1アプリが、
指定された第2アプリの設定定義オブジェクトを基に、当該設定定義オブジェクトが表す一つ以上の設定項目について一つ以上の設定値を受け付けるUI(User Interface)である設定画面を生成し、
当該生成した設定画面を提供し、
当該設定画面が表す一つ以上の設定項目について当該設定画面に入力された一つ以上の設定値を、前記指定された第2アプリの設定オブジェクトに登録する、
表現1に記載の通信モジュール。
[表現3]
前記設定画面は、前記通信モジュールに通信可能に接続された計算機で実行されるWebブラウザにより表示可能な画面である、
表現2に記載の通信モジュール。
[表現4]
前記一つ又は複数の第2アプリにそれぞれ対応した一つ又は複数のアプリ構造体は、ファイルシステムにおける所定のディレクトリに格納され、
各アプリ構造体において、実行オブジェクト、設定定義オブジェクト及び設定オブジェクトとは、それぞれ、実行ファイル、設定定義ファイル及び設定ファイルであり、
前記第1アプリは、前記所定のディレクトリを参照することで、前記一つ又は複数の第2アプリのインストール済を特定する、
表現2に記載の通信モジュール。
[表現5]
前記通信モジュールのエンドユーザ以外のエンティティにより管理されるシステムから当該エンドユーザの要求無しに第2アプリのアプリ構造体が前記所定のディレクトリに格納される、
表現4に記載の通信モジュール。
[表現6]
第1の第2アプリが、当該第1の第2アプリに対応した通信プロトコルに従う通信が行われる通信インターフェース規格に対応した通信インターフェース経由で、当該通信インターフェースに接続されている機器からデータを受信し、
前記第1の第2アプリとは別の第2アプリである第2の第2アプリが、前記第1の第2アプリが受信したデータ又は当該データの加工後のデータを、当該第2の第2アプリに対応した通信プロトコルに従う通信が行われる通信インターフェース規格に対応した通信インターフェース経由で、所定のサーバに送信する、
表現1に記載の通信モジュール。
[表現7]
前記複数のプログラムが、第3アプリとして監視アプリを含み、
少なくとも一つの第2アプリのリソース使用量が前記OSにより前記メモリに格納されるようになっており、
前記監視アプリが、
前記少なくとも一つの第2アプリのリソース使用量を前記第1アプリに問い合わせ、
当該問合せに応答して前記第1アプリにより前記メモリから取得され前記第1アプリから回答されたリソース使用量を表すデータを、前記第2の第2アプリに渡し、
前記第2の第2アプリが、渡されたデータを前記所定のサーバに送信する、
表現6に記載の通信モジュール。
[表現8]
前記複数のプログラムが、第3アプリとして監視アプリを含み、
少なくとも一つの第2アプリのリソース使用量が前記OSにより前記メモリに格納されるようになっており、
前記監視アプリが、
前記少なくとも一つの第2アプリのリソース使用量を前記第1アプリに問い合わせ、
当該問合せに応答して前記第1アプリにより前記メモリから取得され前記第1アプリから回答されたリソース使用量を表すデータを、いずれかの第2アプリ経由又は非経由で、サーバに送信する、
表現1に記載の通信モジュール。
[表現9]
前記複数のプログラムが、第3アプリとして課金アプリを含み、
前記第1アプリが、第2アプリにより通信インターフェース経由で通信されたデータの量であるデータ通信量を特定し、
前記課金アプリが、前記特定されたデータ通信量に基づいて、通信モジュールの使用に関する課金額を決定する、
表現1に記載の通信モジュール。
[表現10]
異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースを有する通信モジュールと、
サーバと
を備え、
前記通信モジュールが、OS(Operating System)と、当該OS上で実行される第1アプリと、当該OS上で実行される一つ又は複数の第2アプリとを有し、
前記一つ又は複数の第2アプリのうちの一つ以上の第2アプリの各々は、一つ以上の通信インターフェース規格上での一つ以上の通信プロトコルに従う通信を行うアプリであり、且つ、任意にインストールされ任意にアンインストール可能なアプリであり、
前記第1アプリは、前記OSと前記一つ又は複数の第2アプリとの間のミドルウェアとしてのアプリであり、
第1の第2アプリが、当該第1の第2アプリに対応した通信プロトコルに従う通信が行われる通信インターフェース規格に対応した通信インターフェース経由で、当該通信インターフェースに接続されている機器からデータを受信し、
前記第1の第2アプリそれ自体又は別の第2アプリである第2の第2アプリが、当該第2の第2アプリに対応した通信プロトコルに従う通信が行われる通信インターフェース規格に対応した通信インターフェース経由で、前記サーバにデータを送信する、
通信システム。
[表現11]
前記第2の第2アプリから送信されるデータが、第2アプリにより通信インターフェース経由で通信されたデータの量であるデータ通信量を含み当該第2アプリの使用履歴であるアプリ使用履歴を表すデータを含み、
前記サーバが、前記第2の第2アプリからのデータから特定される前記アプリ使用履歴に基づいて、前記通信モジュールの使用に関する課金額を決定する、
表現10に記載の通信システム。
[表現12]
前記アプリ使用履歴は、第2アプリと当該第2アプリのアクティベート時刻とを表す情報を含む、
表現11に記載の通信システム。
[表現13]
前記通信モジュールが、所定の通信網に対応し加入者識別情報を格納したカードを有しており、
前記第2の第2アプリが、前記カード内の加入者識別情報を含むデータを、前記第1アプリ経由で設定された通信タイミングで、前記サーバに送信する、
表現11に記載の通信システム。
[表現14]
前記サーバが、前記決定された課金額が反映された料金を前記所定の通信網を管理する通信事業者が請求可能にするために、前記決定された課金額を表す情報を、当該通信事業者宛に送信する、
表現13に記載の通信システム。
[表現15]
前記通信モジュールとして、少なくとも第1の通信モジュールと第2の通信モジュールとがあり、
前記サーバが、前記第1の通信モジュールのアプリ利用履歴が表す或る第2アプリのアクティベート時刻と、前記第2の通信モジュールのアプリ使用履歴が表す同一の第2アプリのアクティベート時刻とを基に、前記第1の通信モジュールに関する第1の課金額と前記第2の通信モジュールに関する第2の課金額とを決定する、
表現11に記載の通信システム。
[表現16]
前記第1の課金額のうち前記或る第2アプリの使用に関わる部分の料金と、前記第2の課金額のうち前記同一の第2アプリの使用に関わる部分の料金とのうち、当該第2アプリのアクティベート時刻が早い方の料金が安い、
表現15に記載の通信システム。
[表現17]
前記サーバは、決定された課金額の支払期限までの支払が無ければ、当該課金額が決定された通信モジュールの全部又は一部の使用を制限する、
表現11に記載の通信システム。
[表現18]
前記通信モジュールが、複数のリージョンに属する複数の通信網の各々について当該通信網の加入者識別情報を格納したカードを有しており、
前記通信モジュールにおけるいずれかのアプリが、当該通信モジュールが存在するリージョンを特定し、
当該特定されたリージョンが所定のリージョンの場合、前記通信モジュールにおけるいずれかのアプリが、当該所定のリージョンに属する通信網に対応した加入者識別情報を用いた通信を制限する、
表現10に記載の通信システム。
[表現19]
前記サーバとして、複数の通信網が属する複数のリージョンに属する複数のサーバがあり、
前記通信モジュールが、前記複数の通信網の各々について当該通信網の加入者識別情報を格納したカードを有しており、
前記通信モジュールが存在するリージョンに属するサーバが、
当該通信モジュールの通信が許可されているリージョンである許可リージョンを特定し、
当該許可リージョンに、前記通信モジュールが存在するリージョンが該当しない場合、当該リージョンに属する通信網に対応した加入者識別情報を用いた通信を制限する、
表現10に記載の通信システム。
[表現20]
異なる複数種類の通信インターフェース規格に対応した複数の通信インターフェースと、OS(Operating System)と、当該OS上で実行される第1アプリとを有する通信モジュールに、通信に使用される通信インターフェース規格に対応し当該OS上で実行され任意にアンインストール可能な第2アプリをインストールし、
前記OSと前記第2アプリとの間のミドルウェアとしてのアプリである第1アプリ経由で前記第2アプリについて設定された通信タイミングで、当該第2アプリが、当該第2アプリに対応した通信インターフェース規格上での通信プロトコルに従う通信を行う、
通信方法。
【符号の説明】
【0184】
101:通信モジュール