図1は、一実施形態に係るネットワークシステムの構成例を示す図である。図1には、院内ネットワーク2と、サーバ装置11とを含むネットワークシステム1を示している。
院内ネットワーク2は、病院内に設置された複数の端末装置3(3A,3B)、外部情報受配信装置4、及び複数のIoTデバイス7を収容するプライベートネットワークである。院内ネットワーク2における複数の端末装置3、外部情報受配信装置4、及び複数のIoTデバイス7には、それぞれ、院内ネットワーク2の外部に存在するインターネット等の通信ネットワーク10とは異なるアドレス体系(プライベートアドレス)によるアドレスが割り当てられている。
複数の端末装置3(3A,3B)は、それぞれ、医師等の医療従事者が使用するコンピュータ等の情報処理装置である。端末装置3は、例えば、患者の診察記録(カルテ)の入力、保管、及び閲覧等に利用される。また、複数の端末装置3(3A,3B)のいずれか(例えば端末装置3A)は、患者の診察記録を含む各種データを蓄積するサーバ装置であってもよい。
外部情報受配信装置4は、院内ネットワーク2と、該院内ネットワーク2の外部に存在する通信ネットワーク10とを接続するゲートウェイ装置である。本実施形態に係るネットワークシステム1における外部情報受配信装置4は、プライベート側(院内ネットワーク2側)の無線通信機器と無線通信が可能な装置とする。
複数のIoTデバイス7(7A,7B)は、それぞれ、所望のデータを収集するセンサと通信ユニットとを含む通信装置である。例えば、IoTデバイス7Aは、病院内の温度を計測する温度センサと、BLE(Bluetooth Low Energy。Bluetoothは登録商標)規格に準拠した無線通信が可能な無線通信ユニットとを含む。また、例えば、IoTデバイス7Bは、医療機器の動作状態をモニターするセンサと、I2C(Inter-Integrated Circuit)バス規格に準拠した通信が可能な通信ユニットとを含む。
本実施形態に係るネットワークシステム1におけるサーバ装置11は、端末装置3に入力された各種データ及びIoTデバイス7が収集した各種データを集約する装置である。サーバ装置11に集約した各種データは、バックアップとして保管するだけでなく、例えば、他の病院の院内ネットワークの利用者(医療従事者等)との患者の診察記録の共有、病院内の環境改善等に利用される。
この種のネットワークシステム1では、例えば、院内ネットワーク2の外部から、端末装置12が通信ネットワーク10を介して院内ネットワーク2に不正にアクセスし、端末装置3内の各種データやプログラム、IoTデバイス7が収集した各種データを改変又は改ざんする恐れがある。例えば、複数のIoTデバイス7のそれぞれが収集するデータは、個別にみると価値の低いデータもあるが、改変又は改ざんされたデータが混入すると、サーバ装置11に集約したデータを有効利用することが困難となる。
図2は、一実施形態に係る外部情報受配信装置の機能的構成を示す図である。
図2に示すように、本実施形態に係る外部情報受配信装置4は、第1の情報処理装置5と、第2の情報処理装置6とを含む。第1の情報処理装置5は、院内ネットワーク2側の装置であり、院内ネットワーク2に収容される複数の端末装置3及び複数のIoTデバイス7と接続される(図1を参照)。第2の情報処理装置6は、外部ネットワーク側の装置であり、通信ネットワーク10と接続される(図1を参照)。
第1の情報処理装置5は、ソフトウェア構成部51と、通信デバイス59とを含む。
ソフトウェア構成部51は、OS(Operating System)58を含む各種ソフトウェアにより実現される機能である。第1の情報処理装置5のソフトウェア構成部51は、ビジネスロジック(モバイルサーバプログラム)52、デバイス制御53、通信管理54、ホワイトリスト管理55、性能監視56、及びOS 58の各機能を備える。
ビジネスロジック52は、OS 58のもとで動作するものであり、デバイス制御管理52a、通信管理52b、データエッジング52c、及び共通処理52dの各機能を含む。デバイス制御管理52aは、デバイス制御53によるデバイスの制御を管理する。通信管理52は、第2の情報処理装置6との間での電文の送受信等の各種通信を管理する。データエッジング52cは、IoTデバイス7から受信したデータに対するデータエッジング処理(言い換えると、データにおける削除しても問題のない部分を削除してサーバ装置11に送信するデータのデータ量を削減する処理)を行う。共通処理52dは、電文の受信及び生成、各種データの管理等を行う。なお、第1の情報処理装置5におけるビジネスロジック(モバイルサーバプログラム)52は、例えば、図示していない、患者データ管理、表示データ管理、患者データ、受け付け情報取得プロセス等の機能を含んでもよい。患者データ管理は、患者に関するデータを管理する。表示データ管理は、例えば、病院内に設置された患者案内表示盤等に表示するデータを管理する。患者データは、患者に関するデータを格納する。
デバイス制御53は、第1の情報処理装置5に含まれるデバイス、及び第1の情報処理装置5と接続されるデバイスを制御する。デバイス制御53は、制御モジュール53aを含む複数の制御モジュールを備える。デバイス制御53が備える複数の制御モジュールの1つは、第1の情報処理装置5に含まれる通信デバイス59を制御する。通信デバイス59は、第2の情報処理装置6に含まれる通信デバイス69との間で、専用プロトコルに従ったシリアル通信を行う。ここで、通信デバイス59,69間の通信に用いる専用プロトコルは、第1の情報処理装置5と院内ネットワーク2との通信プロトコル(例えばTCP/IP及びBLE等)及び第2の情報処理装置6と通信ネットワーク10との通信プロトコル(例えばTCP/IP等)とは異なるプロトコルである。また、デバイス制御53が備える制御モジュールには、第1の情報処理装置5と接続される複数のIoTデバイス7(7A,7B)のそれぞれを制御する制御モジュールが含まれる。
通信管理54は、送受信管理54a及びLAN 54bの一般的な機能を制御し、院内システム2との通信、及び第2の情報処理装置6との通信を管理する。
ホワイトリスト管理55は、第1の情報処理装置5への接続を許可するデバイス、及び第1の情報処理装置5において実行されることを許可するサービスを、ホワイトリスト方式で管理する。ホワイトリスト管理55は、ホワイトリスト型のデバイス情報DB 55a、及びサービス情報DB 55bを含む。デバイス情報DB 55aには、第1の情報処理装置5への接続を許可するデバイスを示す情報が格納されている。サービス情報DB 55bには、第1の情報処理装置5が実行することを許可するサービス(実行ファイル)を示す情報が格納されている。また、ホワイトリスト管理55は、第1の情報処理装置5において実行しているサービス(実行ファイル)についての情報と、サービス情報DB 55bに登録された情報とに差異がある場合に、当該サービス(実行ファイル)を差異のない状態に復旧する。
性能監視56は、トラフィック、再起動後の状態、及びアップデート後の状態等、第1の情報処理装置5の性能に関する監視をする。性能監視56は、例えば、第1の情報処理装置5にインストール済みのファイルについての現在の情報とインストール時の情報とに齟齬がある場合に、インストール済みのファイルの情報がインストール時の情報となるよう復旧する。
また、第2の情報処理装置6は、第1の情報処理装置5と同様、ソフトウェア構成部61と、通信デバイス69とを含む。
ソフトウェア構成部61は、OS(Operating System)68を含む各種ソフトウェアにより実現される機能である。第2の情報処理装置6のソフトウェア構成部61は、ビジネスロジック(外部配信サーバプログラム)62、デバイス制御63、通信管理64、ホワイトリスト管理65、性能監視66、及びOS 68の各機能を備える。
ビジネスロジック62は、OS 68のもとで動作するものであり、デバイス制御管理62a、通信管理62b、及び共通処理62dを含む。デバイス制御管理62aは、デバイス制御63によるデバイスの制御を管理する。通信管理62bは、第1の情報処理装置5との間での電文の送受信等の各種通信を管理する。共通処理62dは、電文の受信及び生成、各種データの管理等を行う。なお、第2の情報処理装置6におけるビジネスロジック(外部配信サーバプログラム)62は、例えば、図示していない、メール定型文、及び外部情報連携プロセス等の機能を含んでもよい。メール定型文は、サーバ装置11等へ送信するメールの定形文を管理する。外部情報連携プロセスは、例えば、第1の情報処理装置5からの依頼に基づいてサーバ装置11へメール依頼電文を送信する機能、及びサーバ装置11からアクセス情報を受信して第1の情報処理装置5に通知する機能を含む。
デバイス制御63は、第2の情報処理装置6に含まれるデバイス、及び第2の情報処理装置6と接続されるデバイスを制御する。デバイス制御63は、制御モジュール63aを含む複数の制御モジュールを備える。デバイス制御63が備える複数の制御モジュールの1つは、第2の情報処理装置6に含まれる通信デバイス69を制御する。通信デバイス69は、第1の情報処理装置5に含まれる通信デバイス59との間で、専用プロトコルに従ったシリアル通信を行う。
通信管理64は、送受信管理64a、グローバルIP 64b,及びWAN(Wide Area Network)64cの各機能を制御し、通信ネットワーク10との通信、及び第1の情報処理装置5との通信を管理する。ここで、グローバルIP 64bは、例えば、通信ネットワーク10のアドレス体系に従って外部情報受配信装置4に割り当てられるグローバルIPアドレスである。
ホワイトリスト管理65は、第2の情報処理装置6への接続を許可するデバイス、及び第2の情報処理装置6において実行されることを許可するサービスを、ホワイトリスト方式で管理する。ホワイトリスト管理65は、ホワイトリスト型のデバイス情報DB 65a、及びサービス情報DB 65bを含む。デバイス情報DB 65aには、第2の情報処理装置6への接続を許可するデバイスを示す情報が格納されている。サービス情報DB 65bには、第2の情報処理装置6が実行することを許可するサービス(実行ファイル)を示す情報が格納されている。また、ホワイトリスト管理65は、第2の情報処理装置6において実行しているサービス(実行ファイル)についての情報と、サービス情報DB 65bに登録された情報とに差異がある場合に、当該サービス(実行ファイル)を差異のない状態に復旧する。
性能監視66は、トラフィック、再起動後の状態、及びアップデート後の状態等、第2の情報処理装置6の性能に関する監視をする。性能監視56は、例えば、第2の情報処理装置6にインストール済みのファイルについての現在の情報とインストール時の情報とに齟齬がある場合に、インストール済みのファイルの情報がインストール時の情報となるよう復旧する。
このように、本実施形態に係る外部情報受配信装置4は、院内ネットワーク2側の第1の情報処理装置5と、外部ネットワーク側の第2の情報処理装置6との間で、専用プロトコルに従ったシリアル通信を行う。このため、例えば、院内ネットワーク2の外部から、端末装置12(図1を参照)が院内ネットワーク2内への不正なアクセスを試みた場合、第1の情報処理装置5への侵入を遮断することが可能となる。
また、第1の情報処理装置5及び第2の情報処理装置6は、それぞれ、ホワイトリスト型のデバイス情報DB 55a及び65aに基づいてデバイスの接続を許可するとともに、ホワイトリスト型のサービス情報DB 55b及び65bに基づいてサービスの実行を許可する。このため、本実施形態に係る外部情報受配信装置4は、院内ネットワーク2への不正なアクセスをより確実に防止することが可能となる。
図3は、デバイス情報DB及びサービス情報DBの例を示す図である。図3には、第1の情報処理装置5におけるホワイトリスト管理55のデバイス情報DB 55a及びサービス情報DB 55bの例を示している。
第1の情報処理装置5は、上記のように、外部情報受配信装置4における院内ネットワーク2側の情報処理装置であり、院内ネットワーク2に収容される(属する)複数の端末装置3及び複数のIoTデバイス7と接続される。このため、第1の情報処理装置5におけるホワイトリスト管理56のデバイス情報DB 55aには、院内ネットワーク2に収容される複数の端末装置3及び複数のIoTデバイス7を示す情報が格納される(登録される)。デバイス情報DB 55aに格納するデバイスの情報(以下「デバイス情報」ともいう)は、図3のように、デバイス名、アドレス、登録日時、及び有効性を含む。図3のデバイス情報DB 55aにおけるIDは、格納したデバイス情報を識別するためにデバイス情報毎に割り当てた番号である。
デバイス情報DB 55aにおけるデバイス名は、例えば、院内ネットワーク2に収容される複数のデバイスのそれぞれを識別するために各デバイスに設定されたデバイスの名称(識別情報)である。デバイス情報DB 55aにおけるアドレスは、例えば、院内ネットワーク2に収容される各デバイスに割り当てられる、院内ネットワーク2内のみで有効なプライベートアドレス(ローカルアドレス)である。デバイス情報DB 55aにおける登録日時は、デバイス情報をデバイス情報DB 55aに登録した日時である。デバイス情報DB 55aにおける有効性は、デバイス情報DB 55aに基づく第1の情報処理装置5へのデバイスの接続の管理において該デバイス情報を有効とするか否かを示す情報である。すなわち、第1の情報処理装置5は、デバイス情報がデバイス情報DB 55aに登録されており、かつ有効性が「有効」であるデバイスの接続のみを許可する。
一方、第1の情報処理装置5におけるホワイトリスト管理55のサービス情報DB 55bには、第1の情報処理装置5が実行することを許可するサービスを示す情報が格納される(登録される)。サービス情報DB 55bに格納するサービスの情報(以下「サービス情報」ともいう)は、図3のように、サービス名、実行ファイル名、インストールした日時、及び有効性を含む。図3のサービス情報DB 55bにおけるIDは、格納したサービス情報を識別するためにサービス情報毎に割り当てた番号である。
サービス情報DB 55bにおけるサービス名は、第1の情報処理装置5で実行することが許可されているか否かによらず、各種サービスのそれぞれに設定されているサービスの名称(識別情報)である。サービス情報DB 55bにおける実行ファイル名は、例えば、サービスを提供する際に第1の情報処理装置5が実行するプログラムのファイル名である。サービス情報DB 55bにおけるインストールした日時は、プログラムを第1の情報処理装置5にインストールした日時である。サービス情報DB 55bにおける有効性は、サービス情報DB 55bに基づくサービスの実行可否の管理においてサービス情報を有効とするか否かを示す情報である。すなわち、第1の情報処理装置5は、サービス情報がサービス情報DB 55bに登録されており、かつ有効性が「有効」であるサービスのみを実行する。
このように、第1の情報処理装置5は、デバイス情報DB 55aにデバイス情報が登録されているデバイスであっても、有効性が「有効」ではない場合には、該デバイスの接続を許可しない。同様に、第1の情報処理装置5は、サービス情報DB 55bにサービス情報が登録されているサービスであっても、有効性が「有効」ではない場合には、該サービスを実行しない。
また、図を参照した説明は省略するが、第2の情報処理装置6におけるホワイトリスト管理65のデバイス情報DB 65a及びサービス情報DB 65bには、それぞれ、図3のデバイス情報DB 55a及びサービス情報DB 65bと同様の情報を格納する(登録する)。
次に、図4を参照し、第1の情報処理装置5のデバイス情報DB 55aへのデバイス情報の登録方法を説明する。
図4は、デバイス情報の登録方法を説明するフローチャートである。
第1の情報処理装置5のデバイス情報DB 55aにデバイス情報を登録する場合、図4のように、まず、第1の情報処理装置5は、管理者の認証処理を行う(ステップS11)。ここで、管理者は、院内ネットワーク2(外部情報受配信装置4)の管理者である。
ステップS11において管理者の認証に成功すると、第1の情報処理装置5は、次に、第1の情報処理装置5のデバイス情報DB 55aへの書込権を有効に変更する(ステップS12)。ステップS12の処理は、例えば、第1の情報処理装置5のホワイトリスト管理55が行う。
次に、第1の情報処理装置5は、デバイス情報の登録依頼を受け付ける(ステップS13)。
次に、第1の情報処理装置5は、デバイス情報DB 55aへの書込権についての認証処理を行い(ステップS14)、認証に成功すると、デバイス情報DB 55aにデバイス情報を登録する(ステップS15)。ステップS14及びS15の処理は、ホワイトリスト管理55が行う。
デバイス情報DB 55aへのデバイス情報の登録が完了すると、第1の情報処理装置5は、デバイス情報DB 55aへの書込権を無効に変更し(ステップS16)、デバイス情報を登録する処理を終了する。
このように、本実施形態に係る第1の情報処理装置5では、管理者の認証(ステップS11)及び書込権の認証(ステップS14)の2つの認証に成功した場合にのみ、デバイス情報DB 55aにデバイス情報を登録することが可能となる。このため、例えば、管理者権限のない利用者等により、意図しない(接続を許可していない)デバイス情報がデバイス情報DB 55aに登録される事態を防止することが可能となる。
なお、図を参照した説明は省略するが、第1の情報処理装置5のサービス情報DB 55bへのサービス情報の追加(登録)も、上記の手順と同様の手順で行う。また、第2の情報処理装置6のデバイス情報DB 65aへのデバイス情報の追加(登録)、及びサービス情報DB 65bへのサービス情報の追加(登録)も、上記の手順と同様の手順で行う。このため、管理者権限のない利用者等により、意図しない情報がサービス情報DB 55b、デバイス情報DB 65a、及びサービス情報DB 65bのそれぞれに登録される事態を防止することが可能となる。
なお、図4のステップS11〜S16の処理は、デバイス情報DB 55a及び65aのそれぞれにデバイス情報を登録する処理の一例に過ぎない。デバイス情報を登録する処理は、図4のフローチャートに沿った処理に限らず、適宜変更可能である。同様に、サービス情報DB 55b及び65bのそれぞれにサービス情報を登録する処理は、適宜変更可能である。
第1の情報処理装置5のデバイス情報DB 55a及びサービス情報55b、並びに第2の情報処理装置6のデバイス情報DB 65a及びサービス情報65bのそれぞれに情報を登録すると、外部情報受配信装置4をゲートウェイ装置として動作させることが可能となる。ゲートウェイ装置として動作する外部情報受発振装置4は、上記のように、院内ネットワーク2に収容される複数のIoTデバイス7のそれぞれが収集した各種データを院内ネットワーク2の外部に設置されたサーバ装置11等に送信する。以下、図5及び図6を参照し、本実施形態のネットワークシステム1における外部情報受配信装置4及びIoTデバイス7の動作について説明する。
図5は、一実施形態に係る外部情報受配信装置及びIoTデバイスの動作を説明するシーケンス図である。図6は、IoTデバイスのデータアップロード処理及び第1の情報処理装置のデータ転送処理の内容を説明するシーケンス図である。
本実施形態に係るネットワークシステム1では、例えば、図5のように、予め定めた第1の時刻T1が到来すると、外部情報受配信装置4における第1の情報処理装置5が各種プログラムを起動する(ステップS51)とともに、第2の情報処理装置6が各種プログラムを起動する(ステップS61)。ステップS51では、第1の情報処理装置5は、OS 58を起動した後、ソフトウェア構成部51が行う各種の処理を含むプログラムを起動する。また、ステップS61では、第2の情報処理装置6は、OS 68を起動した後、ソフトウェア構成部62が行う各種の処理を含むプログラムを起動する。
その後、第1の情報処理装置5及び第2の情報処理装置6は、それぞれ、通信ポートをオープンし(ステップS52及びS62)、互いに生死確認(通信可能な状態であるか否かの確認)を行う(ステップS53及びS63)。このとき、第1の情報処理装置5及び第2の情報処理装置6は、専用プロトコルに従ったシリアル通信により生死確認を行う。
ステップS53及びS63により互いに通信可能な状態であることを確認すると、第1の情報処理装置5は、接続開始電文を生成して第2の情報処理装置6に送信する(ステップS54)。接続開始電文は、第1の情報処理装置5におけるビジネスロジック(モバイルサーバプログラム)52の共通処理52dが生成する。接続開始電文は、シリアル通信により第1の情報処理装置5の通信デバイス59から第2の情報処理装置6の通信デバイス69に送信される。
接続開始電文を受信した第2の情報処理装置6は、所定の応答処理を行い、応答電文を生成して第1の情報処理装置5に返信する(ステップS64)。応答電文は、第2の情報処理装置6におけるビジネスロジック(外部配信サーバプログラム)62の共通処理62dが生成する。応答電文は、シリアル通信により第2の情報処理装置6の通信デバイス69から第1の情報処理装置5の通信デバイス59に送信される。
応答電文を受信すると、第1の情報処理装置5は、第2の情報処理装置6とのコネクションを確立する(ステップS55)。以上の処理を終えると、外部情報受配信装置4は、ゲートウェイ装置としての動作を開始する。以降、外部情報受配信装置4は、例えば、院内ネットワーク2に収容される端末装置3及びIoTデバイス7から外部のサーバ装置11へのデータの送信すること、及び端末装置3がサーバ装置11のデータを取得すること等が可能となる。
第1の情報処理装置5と第2の情報処理装置6とのコネクションが確立した後、例えば、予め定めた第2の時刻T2が到来すると、IoTデバイス7は、自身が備えるセンサにより所定のデータを収集しサーバ装置11に送信するデータアップロード処理(ステップS7)を行う。このとき、IoTデバイス7が収集したデータは、まず、第1の情報処理装置5に送信される。このため、IoTデバイス7がデータアップロード処理を実行すると、第1の情報処理装置5は、IoTデバイス7が送信したデータを第2の情報処理装置6に転送するデータ転送処理(ステップS56)を行う。
なお、IoTデバイス7がデータアップロード処理を開始すると、第1の情報処理装置5は、IoTデバイス7のデバイス情報と、デバイス情報DB 55aに登録されたデバイス情報とを照合し、IoTデバイス7が接続を許可されたデバイスであるか否かを判定する。そして、IoTデバイス7が接続を許可されたデバイスであると判定した場合にのみ、第1の情報処理装置5は、IoTデバイス7が送信したデータを第2の情報処理装置6に転送する。IoTデバイス7のデータアップロード処理(ステップS7)及び第1の情報処理装置5のデータ転送処理(ステップS56)の具体例については、後述する。
IoTデバイス7が送信したデータが第1の情報処理装置5から第2の情報処理装置6に転送されると、第2の情報処理装置6は、転送されたデータをサーバ装置11に向けて送信する(ステップS66)。ステップS66の処理では、第2の情報処理装置6は、例えば、グローバルIP 64bを送信元のアドレスとして第1の情報処理装置5から受信したデータをパケット化し、サーバ装置11に向けて送信する。サーバ装置11は、第2の情報処理装置6が送信したデータを受信すると、該データを記憶装置に格納する(S110)。
IoTデバイス7からサーバ装置11へのデータのアップロードが終了した後、予め定めた第3の時刻T3が到来すると、第1の情報処理装置5及び第2の情報処理装置6は、互いに所定の電文を送受信してコネクションを切断する(ステップS57及びS67)。
コネクションが切断されると、第1の情報処理装置5は、実行している各種プログラムを終了し(ステップS58)、各種プログラムを再起動する(ステップS59)。同様に、コネクションが切断されると、第2の情報処理装置6は、実行している各種プログラムを終了し(ステップS68)、各種プログラムを再起動する(ステップS69)。各種プログラムを再起動した後、第1の情報処理装置5はステップS52以降の処理を行い、第2の情報処理装置6はステップS62以降の処理を行う。その後、外部情報受配信装置4は、予め定めた時刻が到来する毎に、第1の情報処理装置5及び第2の情報処理装置6の各種プログラムを再起動する。第1の情報処理装置5及び第2の情報処理装置6の各種プログラムを再起動する時刻は、適宜設定すればよい。例えば、1日1回、所定の時刻が到来したときに、第1の情報処理装置5及び第2の情報処理装置6の各種プログラムを再起動するよう設定する。
なお、第1の情報処理装置5と第2の情報処理装置6とのコネクションが確立してから各種プログラムを再起動する時刻T3が到来するまでの期間、1個のIoTデバイス7は、複数回、データアップロード処理(ステップS7)を行うことがある。また、院内ネットワーク2に複数のIoTデバイス7が収容される場合、当該複数のIoTデバイス7は、それぞれ、所定のタイミングでデータアップロード処理(ステップS7)を行う。このため、複数のIoTデバイス7のそれぞれがデータアップロード処理を実行する毎に、第1の情報処理装置5及び第2の情報処理装置6はデータを転送する処理(ステップS56及びS66)を行う。
このように、本実施形態に係るネットワークシステム1では、外部情報受配信装置4が動作している期間、院内ネットワーク2に収容されるIoTデバイス7は、所定の時刻が到来する毎に、所定のデータを収集して第1の情報処理装置5にアップロードする。このときIoTデバイス7が行うデータアップロード処理(ステップS7)及び第1の情報処理装置5が行うデータ転送処理(ステップS56)の一例を、図6を参照して説明する。図6は、IoTデバイスのデータアップロード処理及び第1の情報処理装置のデータ転送処理の内容を説明するシーケンス図である。なお、図6に示したIoTデバイス7は、院内ネットワーク2に収容される通信装置の1つであり、上記のように、デバイス情報がデバイス情報DB 55aに登録されているとする。
IoTデバイス7は、所定の時刻が到来すると、データアップロード処理(ステップS7)として、例えば、図6のステップS71〜S75のような処理を行う。データアップロード処理を開始したIoTデバイス7は、まず、デバイス名及び割り当てられているアドレスを含む自身のデバイス情報を第1の情報処理装置5に送信する(ステップS71)。
第1の情報処理装置5は、IoTデバイス7のデバイス情報を受信すると、データ転送処理(ステップS56)として、例えば、図6のステップS561〜S564の処理を行う。データ転送処理を開始した第1の情報処理装置5は、まず、IoTデバイス7から受信したデバイス情報と、デバイス情報DB 55aに登録されたデバイス情報とを照合し、照合結果に基づいて接続を許可するか否かの通知をIoTデバイス7に送信する(ステップS561)。IoTデバイス7から受信したデバイス情報がデバイス情報DB 55aに登録されている場合、第1の情報処理装置5は、接続を許可する通知をIoTデバイス7に送信する。一方、IoTデバイス7から受信したデバイス情報がデバイス情報DB 55aに登録されていない場合、第1の情報処理装置5は、接続を許可しない通知をIoTデバイス7に送信する。なお、図6のシーケンスにおけるIoTデバイス7は、院内ネットワーク2に収容される通信装置の1つであり、上記のように、デバイス情報がデバイス情報DB 55aに登録されている。このため、第1の情報処理装置5は、IoTデバイス7に接続を許可する通知を送信する。
第1の情報処理装置5からの通知を受信すると、IoTデバイス7は、自身が備えるセンサにより収集したデータを第1の情報処理装置5に送信するデータ送信処理(ステップS72〜S75)を行う。図6には、IoTデバイス7が行うデータ送信処理の一例として、1回のデータアップロード処理においてデータを60回送信するループ処理を示している。
データ送信処理(ループ処理)における始端(ステップS72)では、IoTデバイス7は、例えば、現在行っているデータ送信処理において次にデータを第1の情報処理装置5に送信する処理が何回目となるかを計数する。この場合、IoTデバイス7は、例えば、1回目のループ処理におけるステップS72の処理でデータの送信回数を示す変数tの初期値を1とし、以後、処理がステップS72に戻る毎に変数tに1を加算する。
次に、IoTデバイス7は、自身が備えるセンサが出力するデータを1秒間分読み取り(ステップS73)、読み取ったデータを第1の情報処理装置5に送信する(ステップS74)。
その後、IoTデバイス7は、データ送信処理(ループ処理)における終端(ステップS75)で、現在行っているデータ送信処理におけるデータの送信回数が60回以上(すなわちt≧60)となったか否かを判定する。データの送信回数が59回以下(t<60)である場合、IoTデバイス7はステップS72以降の処理を繰り返す。一方、データの送信回数が60回以上となった場合、IoTデバイス7はステップS72〜S75のデータ送信処理を終了し、データアップロード処理(ステップS7)を終了する。
ここで、第1の情報処理装置5が行うデータ転送処理(ステップS56)の説明に戻る。第1の情報処理装置5は、ステップS561の処理において接続を許可する通知をIoTデバイス7に送信した場合には、IoTデバイス7からのデータを受信可能な状態で待機する。そして、IoTデバイス7がデータ送信処理(ステップS72〜S75)を行っている間、第1の情報処理装置5は、IoTデバイス7からデータを受信する毎に、受信したデータをメモリに展開する(ステップS562)。第1の情報処理装置5は、IoTデバイス7からデータを60回受信すると、ステップS562の処理を終了し、次に、データエッジング処理(ステップS563)を行う。
ステップS563のデータエッジング処理は、例えば、第1の情報処理装置5のデータエッジング52cが行う。データエッジング52cは、IoTデバイス7から受信してメモリへ展開したデータのうち削除しても問題のない部分を削除し、サーバ装置11に転送するデータのデータ量を削減する。例えば、データエッジング52cは、IoTデバイス7から受信したデータのうち日時以外にデータ変化がないデータは最後の1レコードを残してメモリから削除する。
データエッジング処理を終えると、第1の情報処理装置5は、メモリのデータを第2の情報処理装置6に転送し(ステップS564)、データ転送処理(ステップS56)を終了する。このとき、第1の情報処理装置5から第2の情報処理装置6へのデータの転送は、上記のように、専用プロトコルに従ったシリアル通信により行われる。第2の情報処理装置6は、IoTデバイスからのデータを受信すると、受信したデータを、通信ネットワーク7を介してサーバ装置に転送する。
このように、本実施形態の外部情報受配信装置4では、IoTデバイス7からのデータを受信した第1の情報処理装置5が、受信したデータから削除しても問題のない部分を削除するデータエッジング処理を行う。このため、本実施形態の外部情報受配信装置4では、第1の情報処理装置5から第2の情報処理装置6を介してサーバ装置11等に送信するデータのデータ量を少なくすることが可能となり、トラフィックの増大等による遅延を防ぐことが可能となる。
また、本実施形態の外部情報受配信装置4では、第1の情報処理装置5と第2の情報処理装置6との間の通信を、専用プロトコルに従ったシリアル通信で行う。このため、本実施形態の外部情報受配信装置4では、例えば、院内ネットワーク2の外部(第2の情報処理装置6側)からの院内ネットワーク2内への不正なアクセスを防ぐことが可能となる。したがって、IoTデバイス7に対する攻撃等によるIoTデバイス7の誤動作を防ぎ、IoTデバイス7により収集した各種データを有効利用することが可能となる。
また、上記のように、デバイス情報DB 55aに登録されていない通信機器が第1の情報処理装置5への接続を試みると、第1の情報処理装置5は、該通信機器に対し接続を許可しない通知を送信する。このため、本実施形態の外部情報受配信装置4は、例えば、第1の情報処理装置5に対する、接続を許可していない通信機器からのDoS攻撃(Denial of Service attack)等を防ぐことが可能となる。
なお、図6のシーケンスにおけるステップS71〜S75の処理は、IoTデバイス7が行うデータアップロード処理(ステップS7)の一例に過ぎない。データアップロード処理の内容は、IoTデバイス7が収集するデータの内容に応じて適宜変更可能である。例えば、IoTデバイス7から第1の情報処理装置5にデータを送信する回数は、60回に限らず、1回であってもよいし60回以外の複数回でもよい。また、IoTデバイス7から第1の情報処理装置5に送信する1個のデータは、1秒分のデータに限らず、1秒未満の瞬間的なデータであってもよいし、1秒よりも更に長い期間のデータであってもよい。更に、IoTデバイス7は、例えば、データアップロード処理(ステップS7)を終了する際に、該処理の終了を第1の情報処理装置5に通知してもよい。
また、図6のシーケンスにおけるステップS561〜S564の処理は、第1の情報処理装置5が行うデータ転送処理(ステップS56)の一例に過ぎない。データ転送処理の内容は、IoTデバイス7から受信するデータの内容等に応じて、適宜変更可能である。例えば、データ転送処理は、IoTデバイス7から受信したデータのデータ量(容量)等に応じて、データエッジング処理(ステップS563)を行うか否かを判定する処理を含み、データ量が閾値以下の場合はデータエッジング処理を省略するようにしてもよい。また、データ転送処理は、例えば、IoTデバイス7毎にデータエッジング処理(ステップS563)を行うか否かが定められていてもよい。
ここで、図5のシーケンスの説明に戻る。図5のシーケンスでは、第1の情報処理装置5及び第2の情報処理装置6は、それぞれ、プログラムを終了した後、プログラムを再起動する(ステップS59及びS69)。第1の情報処理装置5は、プログラムを再起動する際に、性能監視56により、改変又は改ざんされた可能性のあるファイルをセキュアであることが保証されたファイルに復旧する処理を行う。同様に、第2の情報処理装置6は、プログラムを再起動する際に、性能監視66により、改変又は改ざんされた可能性のあるファイルをセキュアであることが保証されたファイルに復旧する処理を行う。以下、図7を参照し、第1の情報処理装置5が再起動時に行う上記のファイルを復旧する処理を説明する。
図7は、第1の情報処理装置が再起動時に行う処理を説明するフローチャートである。
第1の情報処理装置5の性能監視56は、OS 58を含む各種プログラムを再起動する際に、監視の対象としているファイルに対し図7のステップS21〜S23の処理を行う。ここで、ステップS21〜S23の処理は、プログラムを再起動するタイミングで行えばよい。すなわち、ステップS21〜S23の処理は、プログラムを終了する処理(図5のステップS58)で行ってもよいし、プログラムを再起動する処理(図5のステップS59)で行ってもよい。
第1の情報処理装置5は、プログラムを再起動する際に、図7のように、自装置(第1の情報処理装置5)内の現在有効なファイルの情報を、インストール時のファイルの情報と比較する(ステップS21)。ここで、インストール時のファイルは、インストール時に作成された不具合のないファイルとする。ステップS21において、第1の情報処理装置5の性能監視56は、例えば、ファイルのバージョン、更新日時、及び容量等の、同一ファイルであれば同一の値となる情報を比較する。
次に、性能監視56は、ファイルの情報の比較結果に基づいて、現在のファイルとインストール時ファイルとに齟齬があるか否かを判定する(ステップS22)。齟齬がある場合(ステップS22;YES)、性能監視56は、現在のファイルを、セキュアであることが保証されておりかつ最新のファイルに置換する復旧プロセスを実施する(ステップS23)。ステップS23では、性能監視56は、例えば、第1の情報処理装置5が備えるフラッシュメモリ等の記憶装置に書き込み不可の状態で記憶させているバックアップデータから最新のファイルを読み出し、現在のファイルを読み出したファイルで上書きする。一方、齟齬がない場合(ステップS22;NO)、性能監視56は、ステップS23を省略し、ファイルを復旧する処理を終了する。
なお、性能監視56が監視の対象としているファイルが複数である場合、性能監視56は、該複数のファイルのそれぞれに対し、ステップS21〜S23の処理を行う。
また、繰り返しの説明は省略するが、第2の情報処理装置6における性能監視66も、プログラムを再起動する際に上記のステップS21〜S23の処理を行う。
このように、本実施形態の外部情報受配信装置4は、定期的にプログラムを再起動し、再起動するタイミングで、改変又は改ざんされた可能性のあるファイルをセキュアであることが保証されているファイルに復旧させる。このため、例えば、院内ネットワーク2の外部の通信機器からの攻撃等によりファイルが改変又は改ざんされた場合にも、早期にセキュアであることが保証されているファイルに復旧することが可能となる。したがって、本実施形態の外部情報受配信装置4では、ファイルの改変又は改ざんによりセキュリティレベルの低下した状態が長時間継続することを防ぐことが可能となる。
なお、ステップS21で現在有効なファイルの情報と比較するファイルの情報は、インストール時のファイルの情報に限らず、セキュアであることが保証されている最新のファイル(例えば、アップデート時に作成されたファイル等)の情報であってもよい。
また、プログラムを再起動する処理(図5のステップS59)においてステップS21〜S23の処理を行う場合、例えば、ステップS23の処理を行ったときには、処理終了後にプログラムを再起動してもよい。
更に、ネットワークシステム1の運用中(稼働中)、本実施形態に係る外部情報受配信装置4における第1の情報処理装置5及び第2の情報処理装置6は、それぞれ、サービス情報DB 55b及び65bに基づいて、実行しているサービスに対する監視を行う。以下、図8を参照し、第1の情報処理装置5が行う、実行しているサービスに対する監視処理を説明する。
図8は、第1の情報処理装置が行うサービスに対する監視処理を説明するフローチャートである。
第1の情報処理装置5が実行することを許可するサービスは、上記のように、サービス情報DB 55bに登録されたサービスのみである。しかしながら、ネットワークシステム1の運用中、第1の情報処理装置5は、接続を許可していない通信機器からアクセスされることがある。このため、第1の情報処理装置5では、動作中に、サービス情報DB 55bに登録されているサービスの実行プログラムが改変又は改ざんされてしまうことや、意図しないサービス(例えばサービス情報DB 55bに登録されていないサービス)を実行してしまうことがある。したがって、第1の情報処理装置5は、所定のタイミングで、図8のステップS31〜S35の監視処理を行い、実行することが許可されたサービスのみがセキュアに実行される環境を維持する。ステップS31〜S35の監視処理を行うタイミングは適宜設定すればよい。例えば、ステップS31〜S35の監視処理は、サービスの実行を開始したときに行ってもよいし、予め定めた時刻が到来したときに行ってもよい。
実行しているサービスに対する監視処理を開始すると、第1の情報処理装置5は、図8のように、まず、実行中のサービスについての情報を、サービス情報DB 55bに登録された情報と照合する(ステップS31)。
次に、第1の情報処理装置5は、サービス情報DB 55bに登録されていないサービスを実行しているか否かを判定する(ステップS32)。ステップS32の判定処理では、サービス名及び実行ファイル名がサービス情報DB 55bに登録されていても有効性が「有効」ではないサービスも、サービス情報DB 55bに登録されていないサービスと判定する。
サービス情報DB 55bに登録されていないサービスを実行している場合(ステップS32;YES)、第1の情報処理装置5は、サービス情報DB 55bに登録されていないサービスを終了する(ステップS33)。その後、第1の情報処理装置5は、サービス情報DB 55bに登録された情報との間に差異のあるサービスを実行しているか否かを判定する(ステップS34)。また、実行中のサービスが全てサービス情報DB 55bに登録されている場合(ステップS32;YES)、第1の情報処理装置5は、ステップS33の処理を省略し、ステップS34の判定を行う。
ステップS34では、例えば、サービス名、実行ファイル名、及びインストールした日時の情報のいずれか1つの情報が一致しており、かつ他の2つの情報のうち1つ又は2つの情報が一致していない場合に、差異があると判定する。
差異がある場合(ステップS34;YES)、第1の情報処理装置5は、当該サービスの実行ファイルを差異のない状態に復旧する復旧プロセスを実施する(ステップS35)。ステップS35では、第1の情報処理装置5は、例えば、該当するサービスを終了させた後、記憶装置に書き込み不可の状態で記憶させているバックアップデータからセキュアであることが保証された実行プログラムを読み出し、現在の実行ファイルを読み出した実行ファイルで上書きする。一方、差異がない場合(ステップS34;NO)、第1の情報処理装置5は、ステップS35の処理を省略し、実行中のサービスに対する監視処理を終了する。
また、繰り返しの説明は省略するが、第2の情報処理装置6も、所定のタイミングで上記のステップS31〜S35の処理を行う。
このように、本実施形態の外部情報受配信装置4は、実行中のサービスを監視し、改変又は改ざんされた可能性のある実行ファイルをセキュアであることが保証されている実行ファイルに復旧させる。このため、例えば、院内ネットワーク2の外部の通信機器からの攻撃等により実行ファイルが改変又は改ざんされた場合にも、早期にセキュアであることが保証されている実行ファイルに復旧することが可能となる。したがって、本実施形態の外部情報受配信装置4では、実行ファイルの改変又は改ざんによりセキュリティレベルの低下した状態が長時間継続することを防ぐことが可能となる。
以上説明したように、本実施形態に係る外部情報受配信装置4は、第1のネットワーク(院内ネットワーク2)と接続される第1の情報処理装置5と、第2のネットワーク(通信ネットワーク10)と接続される第2の情報処理装置6とを含み、第1の情報処理装置5と第2の情報処理装置6との間の通信を専用プロトコルに従ったシリアル通信で行う。このため、第2のネットワーク側からの第1のネットワーク内への侵入を遮断することが可能となる。特に、本実施形態に係る外部情報受配信装置4では、第1の情報処理装置5は、第1のネットワークに収容されるIoTデバイス7が収集したデータを受信すると、該受信したデータをシリアル通信により第2の情報処理装置に転送し、第2の情報処理装置6は、第1の情報処理装置5から転送されたデータを、第2のネットワーク6に接続された外部装置(例えばサーバ装置11)に転送する。このため、本実施形態に係る外部情報受配信装置4は、第2のネットワーク側からのIoTデバイス7に対する攻撃等によるIoTデバイス7の誤動作を防ぎ、IoTデバイス7により収集した各種データを有効利用することが可能となる。
更に、第1の情報処理装置5は、IoTデバイス7が収集したデータを受信した際に、該受信したデータのうち削除しても問題のない部分を削除するデータエッジング処理を行う。このため、本実施形態に係る外部情報受配信装置4は、IoTデバイス7が収集したデータを外部装置(例えばサーバ装置11)に送信する際のデータ量を低減することが可能となり、トラフィックの増大等による遅延を防ぐことが可能となる。
また、本実施形態に係る第1の情報処理装置5及び第2の情報処理装置6は、それぞれ、ホワイトリスト型のデバイス情報DB 55a及び65aに基づいて自装置への接続を許可するデバイスを制限する。このため、デバイス情報DB 55a及び65aに登録されていない通信機器による第1のネットワーク(院内ネットワーク2)内への侵入、及び外部情報受配信装置4を介して送受信される各種データの改変又は改ざんを防ぐことが可能となる。
また、本実施形態に係る第1の情報処理装置5及び第2の情報処理装置6は、それぞれ、ホワイトリスト型のサービス情報DB 55b及び65bに基づいて自装置での実行を許可するサービスを制限する。このため、サービス情報DB 55b及び65bに登録されていないサービスを誤って実行してしまうことによるセキュリティレベルの低下を防ぐことが可能となる。更に、第1の情報処理装置5及び第2の情報処理装置6は、実行中のサービスを監視し、問題のあるサービスが実行されている場合には、該サービスの実行プログラムをセキュアであることが保証されている実行プログラムに復旧する。よって、デバイス情報DB 55a及び65aに登録されていない通信機器等によりサービスの実行プログラムが改変又は改ざんされた場合にも、早期に実行プログラムを復旧することが可能となる。
しかも、本実施形態に係る第1の情報処理装置5及び第2の情報処理装置6は、それぞれ、定期的にプログラムを再起動し、再起動時に、現在有効なファイルに問題があるか否かを判定する。そして、ファイルに問題がある場合には、その場で、セキュアであることが保証されているファイルに復旧する。よって、デバイス情報DB 55a及び65aに登録されていない通信機器等によりファイルが改変又は改ざんされた場合にも、早期にファイルを復旧することが可能となる。
以上のことから、本実施形態に係る外部情報受配信装置4をゲートウェイ装置として使用することにより、院内ネットワーク2等のプライベートネットワークへの不正なアクセスや各種のネットワーク攻撃を防止することが可能となる。
なお、本実施形態の外部情報受配信装置4における第1の情報処理装置5と接続されるプライベートネットワークは、上記の院内ネットワーク2に限らず、他のプライベートネットワーク(例えば、企業の社内LAN等)であってもよい。
また、本実施形態に係る外部情報受配信装置4における第1の情報処理装置5及び第2の情報処理装置6は、それぞれ、コンピュータと、該コンピュータに実行させるプログラムとにより実現可能である。以下、コンピュータとプログラムとにより実現される第2の情報処理装置5について、図9を参照して説明する。
図9は、コンピュータのハードウェア構成を示す図である。
図9のように、コンピュータ15は、CPU(Central Processing Unit)1501と、メモリ1502と、補助記憶装置1503と、入力インタフェース1504と、表示制御装置1505と、通信制御装置1506と、媒体駆動装置1507とを備える。コンピュータ15におけるこれらの要素1501〜1508は、バス1510により相互に接続されており、要素間でのデータの受け渡しが可能になっている。
CPU 1501は、オペレーティングシステムを含む各種のプログラムを実行することによりコンピュータ15の全体の動作を制御するプロセッサの一例である。例えば、CPU 1501は、図5のステップS51〜S58の各ステップの処理を含むプログラムを実行する。また、CPU 1501は、例えば、図7のステップS21〜S23の各ステップの処理を含むプログラム、及び図8のステップS31〜S35の各ステップの処理を含むプログラムを実行する。
メモリ1502は、図示しないROM(Read Only Memory)及びRAM(Random Access Memory)を含む。メモリ1502のROMには、例えば、コンピュータ15の起動時にCPU 1501が読み出す所定の基本制御プログラム等が予め記録されている。また、メモリ1502のRAMは、CPU 1501が、各種のプログラムを実行する際に必要に応じて作業用記憶領域として使用する。メモリ1502のRAMは、例えば、デバイス情報DB 55a及びサービス情報DB 55b、IoTデバイス7から受信した各種データ等の記憶に利用可能である。
補助記憶装置1503は、例えば、HDD(Hard Disk Drive)等の磁気ディスク、及びフラッシュメモリ等の不揮発性メモリである。補助記憶装置1503には、CPU 1501によって実行される各種のプログラムや各種のデータ等を記憶させることができる。補助記憶装置1503は、例えば、図5のステップS51〜S58の各ステップの処理を含むプログラム、図7のステップS21〜S23の各ステップの処理を含むプログラム、及び図8のステップS31〜S35の各ステップの処理を含むプログラム等の記憶に利用可能である。また、補助記憶装置2003は、例えば、デバイス情報DB 55a及びサービス情報DB 55b、IoTデバイス7から受信した各種データ、及びセキュアであることが保証されたファイルや実行プログラムを含むバックアップデータ等の記憶に利用可能である。
入力インタフェース1504は、例えば、キーボード装置16、マウス装置17、及び図示しないタッチパネル装置の入力装置からの入力情報を受け付けるハードウェアインタフェースである。
表示制御装置1505は、例えば、液晶表示装置等の表示装置18の表示を制御する。表示制御装置1505は、例えば、コンピュータ15の動作状態等を示す情報を含む画面データを作成して表示装置18に表示させる。
通信制御装置1506は、コンピュータ15と、他の通信機器との通信を制御する。通信制御装置1506は、ハードウェアインタフェースとしてのシリアル通信インタフェース1506a、有線LANインタフェース1506b、及び無線LANインタフェース1506cを含む。シリアル通信インタフェース1506aは、専用プロトコルに従った第2の情報処理装置6との通信に使用される。有線LANインタフェース1506bは、例えば、院内ネットワーク2等のプライベートネットワークに収容される端末装置3との通信に使用される。無線LANインタフェース1506cは、例えば、院内ネットワーク2等のプライベートネットワークに収容されるIoTデバイス7との通信に使用される。
媒体駆動装置1507は、可搬型記録媒体19に記録されているプログラムやデータの読み出し、補助記憶装置1503に記憶されたデータ等の可搬型記録媒体19への書き込みを行う。可搬型記録媒体19としては、例えば、Secure Digital(SD)規格のメモリカード(フラッシュメモリ)がある。可搬型記録媒体19は、例えば、図5のステップS51〜S58の各ステップの処理を含むプログラム、図7のステップS21〜S23の各ステップの処理を含むプログラム、及び図8のステップS31〜S35の各ステップの処理を含むプログラム等の記憶に利用可能である。また、可搬型記録媒体19は、例えば、デバイス情報DB 55a及びサービス情報DB 55b、IoTデバイス7から受信した各種データ、及びセキュアであることが保証されたファイルや実行プログラムを含むバックアップデータ等の記憶に利用可能である。また、コンピュータ15が媒体駆動装置1507として利用可能な光ディスクドライブを搭載している場合、当該光ディスクドライブで認識可能な各種の光ディスクを可搬型記録媒体19として利用可能である。可搬型記録媒体19として利用可能な光ディスクには、例えば、Compact Disc(CD)、Digital Versatile Disc(DVD)、Blu-ray Disc(Blu-rayは登録商標)等がある。
コンピュータ15は、電源投入後、CPU 1501が補助記憶装置1503等から図5のステップS51〜S58の各ステップの処理を含むプログラム、図7のステップS21〜S23の各ステップの処理を含むプログラム、及び図8のステップS31〜S35の各ステップの処理を含むプログラム等を読み出して実行する。これらのプログラムを実行している間、CPU 1501は、図2に示した第1の情報処理装置5におけるソフトウェア構成部51として機能(動作)する。また、上記のプログラムを実行している間、シリアル通信インタフェース1506aは、図2に示した第1の情報処理装置5における通信デバイス59として機能(動作)する。また、上記のプログラムを実行している間、メモリ1502、補助記憶装置2003、及び可搬型記録媒体19は、それぞれ、デバイス情報DB 55a及びサービス情報55bを記憶する記憶部として機能する。
また、詳細な説明は省略するが、コンピュータ15は、第1の情報処理装置5に限らず、第2の情報処理装置6としても利用可能であることはもちろんである。
なお、第1の情報処理装置5及び第2の情報処理装置6として動作させるコンピュータ15は、図9に示した要素1501〜1508の全てを含む必要はなく、用途や条件に応じて一部の要素を省略することも可能である。例えば、コンピュータ15は、媒体駆動装置1507が省略されたものであってもよい。