JP7440177B1 - サービス提供システム、ゲートウェイ装置、サービス提供システム構築方法およびプログラム - Google Patents

サービス提供システム、ゲートウェイ装置、サービス提供システム構築方法およびプログラム Download PDF

Info

Publication number
JP7440177B1
JP7440177B1 JP2023015871A JP2023015871A JP7440177B1 JP 7440177 B1 JP7440177 B1 JP 7440177B1 JP 2023015871 A JP2023015871 A JP 2023015871A JP 2023015871 A JP2023015871 A JP 2023015871A JP 7440177 B1 JP7440177 B1 JP 7440177B1
Authority
JP
Japan
Prior art keywords
service
server
program
gateway device
adapter program
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
JP2023015871A
Other languages
English (en)
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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms Ltd
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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2023015871A priority Critical patent/JP7440177B1/ja
Application granted granted Critical
Publication of JP7440177B1 publication Critical patent/JP7440177B1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】クラウド連携ソリューションにおいて、従来技術よりもさらにセキュリティを高めつつ、オンプレミス環境とクラウド環境との間の接続を容易に構築可能な技術を提供する。【解決手段】オンプレミス環境に設置されたネットワーク機器およびゲートウェイ装置と、クラウド上のサーバ装置と、を備え、前記ゲートウェイ装置は、前記ネットワーク機器と前記サーバ装置との通信を中継する暗号化された双方向通信路を生成し、前記暗号化された双方向通信路は、WebSocketプロトコルに応じた通信路であり、前記サーバ装置からの要求応答型通信および前記ゲートウェイ装置からのイベント通知型通信を行う通信路である、サービス提供システム。【選択図】図1

Description

本発明は、サービス提供システム、ゲートウェイ装置、サービス提供システム構築方法およびプログラムに関する。
オンプレミス環境におけるサービスと、クラウド上のサービスとを連携し、新たなソリューションを提供するクラウド連携ソリューションがある。クラウド連携ソリューションでは、オンプレミス環境側のサービスに対し、クラウド側からアクセス可能なように両者の接続を構築する必要がある。セキュリティを確保しつつ、オンプレミス環境とクラウド環境との間の接続を容易に構築可能なシステムがある。
例えば、オンプレミス環境にゲートウェイ装置およびデータを保存する保存サーバを備え、クラウド上に設定情報を管理する管理サーバおよびサービスを提供するサービスサーバを備えるネットワークシステムにおいて、ゲートウェイ装置が、管理サーバから設定情報を取得し、その設定情報に基づいてサービスサーバとの接続を確立し、接続を確立したサービスサーバからの要求に応じて、保存サーバに保存されるデータをサービスサーバに対して送信する技術がある(例えば、特許文献1参照)。
特開2022-147233号公報
以下の分析は、本発明によって与えられたものである。
特許文献1に開示の技術によれば、クラウド上のサービスサーバとオンプレミス環境のゲートウェイ装置との間を、HTTPリクエストベースのVPN(Virtual Private Network)で接続する。ここでは、VPN over Websocketを利用しているため、接続を確立する際、ゲートウェイ装置は、オンプレミス環境のルータやファイアウォール等の変更が不要である。
しかしながら、VPNを使用している限り、クラウド上のサービスサーバを介して、VPNトンネル内部へのアクセスが全て可能である。したがって、不正侵入への対策が十分とは言えない。
本発明は、上記事情に鑑みてなされたもので、クラウド連携ソリューションにおいて、従来技術よりもさらにセキュリティを高めつつ、オンプレミス環境とクラウド環境との間の接続を容易に構築可能な技術を提供することを目的とする。
本発明の第一の視点によれば、
オンプレミス環境に設置されたネットワーク機器およびゲートウェイ装置と、
クラウド上のサーバ装置と、を備え、
前記ゲートウェイ装置は、前記ネットワーク機器と前記サーバ装置との通信を中継する暗号化された双方向通信路を生成し、
前記暗号化された双方向通信路は、WebSocketプロトコルに応じた通信路であり、前記サーバ装置からの要求応答型通信および前記ゲートウェイ装置からのイベント通知型通信を行う通信路であり、
前記ゲートウェイ装置は、
サービスを提供するサービスサーバに対応するアダプタプログラムを備え、
起動すべき前記サービスと設定値とを含むサービステンプレートを、前記サーバ装置から受信し、前記アダプタプログラムおよび前記サービスのデプロイを行い、
前記暗号化された双方向通信を、当該アダプタプログラムを経由して行なうとともに、前記サーバ装置に、前記アダプタプログラムのインタフェースのみ公開し、当該アダプタプログラムへの指示以外はルーティングしない、サービス提供システムが提供される。
本発明の第二の視点によれば、
オンプレミス環境に設置されたゲートウェイ装置であって、
サービスを提供するサービスサーバに対応するアダプタプログラムを備え、
前記オンプレミス環境に設置されたネットワーク機器とクラウド上のサーバ装置との通信を中継する暗号化された双方向通信路を生成し、
起動すべき前記サービスと設定値とを含むサービステンプレートを、前記サーバ装置から受信し、前記アダプタプログラムおよび前記サービスのデプロイを行い、
前記暗号化された双方向通信を、当該アダプタプログラムを経由して行なうとともに、前記サーバ装置に、前記アダプタプログラムのインタフェースのみ公開し、当該アダプタプログラムへの指示以外はルーティングせず
前記暗号化された双方向通信路は、WebSocketプロトコルに応じた通信路であり、前記サーバ装置からの要求応答型通信および当該ゲートウェイ装置からのイベント通知型通信を行う通信路である、ゲートウェイ装置が提供される。
本発明の第三の視点によれば、
オンプレミス環境に設置されたネットワーク機器およびゲートウェイ装置と、クラウド上のサーバ装置と、を備えたサービス提供システム構築方法であって、
前記ゲートウェイ装置は、サービスを提供するサービスサーバに対応するアダプタプログラムを備え、
前記ゲートウェイ装置が、前記ネットワーク機器と前記サーバ装置との通信を中継する、WebSocketプロトコルに応じた暗号化された双方向通信路を生成し、
前記ゲートウェイ装置が、前記暗号化された双方向通信路を介して前記サーバ装置から起動すべき前記サービスと設定値とを含むサービステンプレートを受信し、前記アダプタプログラムおよび前記サービスのデプロイを行い、
前記ゲートウェイ装置は、前記暗号化された双方向通信を、当該アダプタプログラムを経由して行なうとともに、前記サーバ装置に、前記アダプタプログラムのインタフェースのみ公開し、当該アダプタプログラムへの指示以外はルーティングしない、サービス提供システム構築方法が提供される。
本発明の第四の視点によれば、
オンプレミス環境に設置されたゲートウェイ装置であって、サービスを提供するサービスサーバに対応するアダプタプログラムを備えるゲートウェイ装置に搭載されるコンピュータに
前記オンプレミス環境に設置されたネットワーク機器とクラウド上のサーバ装置との通信を中継する、WebSocketプロトコルに応じた暗号化された双方向通信路であって、前記サーバ装置からの要求応答型通信および前記ゲートウェイ装置からのイベント通知型通信を行う双方向通信路を生成する機能と、
起動すべき前記サービスと設定値とを含むサービステンプレートを、前記サーバ装置から受信し、前記アダプタプログラムおよび前記サービスのデプロイを行い、前記暗号化された双方向通信を、当該アダプタプログラムを経由して行なうとともに、前記サーバ装置に、前記アダプタプログラムのインタフェースのみ公開し、当該アダプタプログラムへの指示以外はルーティングしない機能と、
を実現せるためのプログラムが提供される。
なお、これらのプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明によれば、クラウド連携ソリューションにおいて、従来技術よりもさらにセキュリティを高めつつ、オンプレミス環境とクラウド環境との間の接続を容易に構築できる。
本発明の一実施形態のサービス提供システムの全体構成図である。 (a)および(b)は、本発明の一実施形態のゲートウェイ装置の、それぞれ、機能構成図、ダウンロード済サービス一覧テーブルとイメージファイルの一例を説明するための説明図である。 本発明の一実施形態の連携ソリューション構築処理のフローチャートである (a)および(b)は、本発明の一実施形態の、それぞれ、接続用設定ファイルおよび認証テーブルの一例を説明するための説明図である。 本発明の一実施形態の接続用設定ファイル受信手順のフローチャートである。 本発明の一実施形態のセキュアな双方向通信路設定処理のフローチャートである。 (a)および(b)は、本発明の一実施形態の、それぞれ、接続管理テーブルおよびGW管理テーブルの一例を説明するための説明図である。 本発明の一実施形態の双方向通信路上で中継される通信の形態を説明するための説明図である。 (a)は、本発明の一実施形態のサービステンプレートの一例を説明するための説明図であり、(b)および(c)は、本発明の一実施形態の、それぞれ、設定画面およびデプロイ操作画面の一例を説明するための説明図である。 (a)および(b)は、それぞれ、本発明の一実施形態のサービステンプレート配信処理のフローチャートである。 本発明の一実施形態の連携ソリューション構築処理のフローチャートである。 (a)および(b)は、それぞれ、本発明の一実施形態のGW装置におけるアダプタプログラムの起動およびサービスプログラムの構築を説明するための説明図である。 (a)および(b)は、本発明の一実施形態の、サービス起動パラメータを環境変数として渡す場合の処理を説明するための説明図である。 (a)および(b)は、本発明の一実施形態の、サービス起動パラメータをファイルとして渡す場合の処理を説明するための説明図である。 本発明の一実施形態のGW装置のハードウェア構成図である。 本発明の一実施形態の具体的な適用例の全体構成図である。 本発明の一実施形態の具体的な適用例における処理の流れを説明するための説明図である。 本発明の変形例のGW装置の構成図である。
以下、本発明の一実施形態(以下、本実施形態と呼ぶ。)の概要について図面を参照して説明する。なお、図面の参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。また、以降の説明で参照する図面等のブロック間の接続線は、双方向および単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。
また、図中の各ブロックの入出力の接続点には、ポートやインタフェースがあるが図示を省略する。また、以下の説明において、「Aおよび/またはB」は、AまたはB、もしくは、AおよびBという意味で用いる。
まず、本実施形態のクラウド連携ソリューション(連携ソリューション;サービス提供システム)の概要を説明する。まず、サービス提供システム100の全体構成について説明する。図1は、本実施形態のサービス提供システム100の全体構成図である。
本図に示すように、サービス提供システム100は、オンプレミス環境200に配置されたゲートウェイ(GW)装置210、ネットワーク(N/W)機器220、およびセキュリティ装置230と、クラウド300上に配置されるクラウドサーバ(サービスサーバ)310と、管理サーバ420と、ファイルサーバ430と、を備える。GW装置210とクラウドサーバ310と管理サーバ420とファイルサーバ430とは、インターネット等のネットワーク900で接続される。ネットワーク900は、有線、無線を問わない。
クラウド300は、ネットワーク900を介して、オンプレミス環境200のユーザにサーバ、ストレージ等のリソースやプログラム等を提供する。本実施形態では、クラウドサーバ(サーバ装置)310で代表する。図1では、各クラウドサーバ310は、同一のクラウド300内に記載されているが、それぞれ、異なるクラウド上のサーバであってもよい。
クラウドサーバ310は、オンプレミス環境200に対し、サービスを提供する。クラウドサーバ310の個数も問わない。提供するサービス毎に用意されていてもよいし、1つのサーバが複数のサービスを提供してもよい。また、本実施形態では、オンプレミス環境200に対し、リモートで操作を行う作業者510がインタフェースとして使用する装置も含む。
管理サーバ420は、各クラウドサーバ310のサービスを実現するプログラム等を管理する。
ファイルサーバ430は、クラウドサーバ310とGW装置210との接続のための設定情報(接続用設定ファイル431)を管理する。接続用設定ファイル431の詳細および両者間の接続の詳細については、後述する。なお、本実施形態では、接続用設定ファイル431は、作業者510が、予めファイルサーバ430にアップロードする。
オンプレミス環境200は、オフィス、工場、ホテル等、ローカルネットワークで接続された環境である。N/W機器220は、クラウド連携可能な機器であり、オンプレミス環境200内の内部ネットワーク201を介してGW装置210に接続される。なお、N/W機器220の個数は問わない。また、オンプレミス環境200の数も問わない。各オンプレミス環境200に少なくとも1つのGW装置210を備える。なお、オンプレミス環境200の担当者520は、GW装置210にアクセス可能である。
[GW装置]
本実施形態のGW装置210は、上記サービス提供システム100において、クラウドサーバ310からオンプレミス環境200へのアクセスを制御する。また、オンプレミス環境200の外部からの指示により、クラウド300上のサービスとの連携(連携ソリューション)を実現する。
本実施形態のGW装置210は、N/W機器220とクラウドサーバ310との通信を中継する暗号化された(セキュアな)双方向通信路を生成する。また、GW装置210は、オンプレミス環境200外の装置から、クラウド300上の各種のサービスと連携するための情報を取得する。さらに、GW装置210は、オンプレミス環境200外部の装置から、ソリューションの提供に必要な各種のサービスをオンプレミス環境200に構築する。
これらの機能を実現するため、本実施形態のGW装置210は、通常のゲートウェイとしての機能に加え、図2(a)に示すように、通信路生成部211と、連携準備部212と、連携構築部213と、を備える。また、これらの各部が処理を行うために必要な情報を記憶する記憶部215を備える。
通信路生成部211は、N/W機器220とクラウドサーバ310との通信を中継する暗号化された(セキュアな)双方向通信路を生成する。通信路生成部211は、クラウド300上のiPaaS(Integration Platform as a Service)ソフトウェアと、オンプレミス環境200の内部ネットワーク201に接続された機器およびサービスとの通信を中継し、Web技術(TCP(Transmission Control Protocol)/IP(Internet Protocol)/TLS(Transport Layer Security)/HTTP(Hypertext Transfer Protocol)/WebSocketプロトコル)を用いて、オンプレミス環境200に設置されたファイアウォールやTCPプロキシに対応した、ネットワーク900上のセキュアな双方向通信を提供する。
連携準備部212は、オンプレミス環境200外の装置から、クラウド300上の各種のサービスと連携するための情報(接続用設定ファイル431)を取得する。接続用設定ファイル431については、後述する。
連携構築部213は、ソリューションの提供に必要な各種のサービスをオンプレミス環境200に構築する。本実施形態では、連携構築部213は、起動すべきサービスと設定値とを含むサービステンプレートをクラウドサーバ310から受信し、起動すべきアダプタプログラムを管理サーバ420から取得し、これらをデプロイすることにより、連携ソリューションを構築する。
また、連携構築部213は、連携後、クラウド300側からオンプレミス環境200の各N/W機器220に対し、アダプタプログラムを介したアクセスのみ可能となるよう制御する。具体的には、GW装置210は、クラウドサーバ310に、アダプタプログラムのI/Fのみ公開する。そして、クラウド300側からの通信に対し、GW装置210は、アダプタプログラムへの指示以外はルーティングしない。したがって、クラウド300側の装置は、直接、オンプレミス環境200内のN/W機器220に侵入することはできない。アダプタプログラムおよびサービステンプレートについては、後述する。
なお、本実施形態では、連携構築部213におけるサービステンプレートの受信は、後述するように、作業者510が、接続用設定ファイル431へのアクセスパスを、オンプレミス環境200の担当者520に通知し、担当者520がそれをGW装置210に設定することにより、開始される。
また、連携構築部213は、サービステンプレートの受信には通信路生成部211が生成した、セキュアな双方向通信路を用いる。作業者510は、この通信路を用いて、外部の装置から、各種サービスの状態を確認できる。
本実施形態では、GW装置210は、例えば、汎用のLinux(登録商標)サーバ上に構築される。汎用Linuxサーバは、一般に、その不揮発性メモリ上に、Linuxカーネル、および、各種プロトコルスタックなどのOS(Operation system)の実行上必要なソフトウェアがプリインストールされる。本実施形態では、TCP/TLSスタック、HTTPクライアントソフトウェア、スクリプトインタプリタ等がプリインストールされる。
[連携ソリューション構築処理]
まず、本実施形態のサービス提供システム100による連携ソリューション構築時の、GW装置210を中心とした処理の流れの概略を説明する。図3は、本実施形態の連携ソリューション構築の処理フローである。本処理は、作業者510により、連携するサービスの設定投入を契機に開始される。以下、作業者510は、提供するサービスのサーバ(クラウドサーバ310)を用いてクラウド300にて作業を行うものとして記載する。
作業者510は、クラウドサーバ310上で、連携するサービスのサービステンプレート設定を投入する。クラウドサーバ310は、サービステンプレートの設定を受け付ける(ステップS1101)。サービステンプレートの詳細は、後述する。
その後、作業者510は、ファイルサーバ430に接続用設定ファイル431をアップロードし、アクセスパスを、GW装置210の担当者520に連絡する(ステップS1102)。担当者520は、オンプレミス環境200のGW装置210に指示入力可能である。担当者520は、連絡を受けたアクセスパスをGW装置210に入力する。
GW装置210の連携準備部212は、アクセスパスの入力を受け付けると、当該アクセスパスを参照し、ファイルサーバ430から、接続用設定ファイル431を受信(ダウンロード)する(ステップS1103)。受信した接続用設定ファイル431は、記憶部215に格納する。接続用設定ファイル431の詳細は、後述する。
次に、GW装置210の通信路生成部211は、接続用設定ファイル431を用いて、クラウドサーバ310との間のセキュアな双方向通信路を生成する(ステップS1104)。双方向通信路の生成手順は、後述する。
クラウドサーバ310は、サービステンプレートをGW装置210に送信する。GW装置210の連携構築部213は、クラウドサーバ310からサービステンプレートを受信する(ステップS1105)。
連携構築部213は、受信したサービステンプレートを解析し、必要なアダプタプログラム等を管理サーバ420に要求する(ステップS1106)。要求に応じ、管理サーバ420は、GW装置210にプログラムを提供する(ステップS1107)。GW装置210の連携構築部213は、受信したプログラムとサービステンプレートに含まれる情報に基づき、連携するサービスをデプロイする(ステップS1108)。
GW装置210は、デプロイしたサービスを起動する(ステップS1109)。
[接続用設定ファイル]
次に、S1103の、接続用設定ファイル受信手順について説明する。本手順の説明に先立ち、接続用設定ファイル431について説明する。接続用設定ファイル431は、接続先のクラウドサーバ310にアクセスするための情報と、GW装置210が当該クラウドサーバ310にアクセスした際、識別され、認証を受けるために必要な情報と、が格納される。具体的には、図4(a)に示すように、接続先URL431aと、トークン(識別子)431bと、シークレット(鍵)431cと、が含まれる。
接続先URL431aは、クラウドサーバ310のアクセス先である。DNS(Domain Name System)による名前検索が可能な環境であれば、一般に、FQDN(Fully Qualified Domain Name)が記述される。FQDNは、クラウドサーバ310のアドレスを識別する文字列と、アクセスするプロトコルと、クラウドサーバ310のアクセス先リソースと、を連結したURI(Uniform Resource Identifier)と呼ばれる文字列である。
トークン(識別子)431bは、クラウドサーバ310から見て接続元のGW装置210を識別するための文字列である。トークン431bには、他のGW装置210と重複しない、ユニークな文字列が記述される。例えば、GW装置210毎にUUID(Universally Unique Identifier)と呼ばれる128ビットの文字列を払い出(割り振る;assign)してもよい。
シークレット(鍵)431cは、クラウドサーバ310から見たとき、接続元のGW装置210の真正性を確認するための情報である。トークン431bとペアで払い出しを行い、受け取ったクラウドサーバ310側で、両方のデータが完全一致した場合に、真正なGW装置210と判断する。
なお、接続用設定ファイル431は、作業者510によって、設置予定のGW装置210毎に1つずつ用意される。接続先URL431aに登録されるクラウドサーバ310は、接続を要求するGW装置210の真正性の確認のため、図4(b)に示すように、トークン431bとシークレット431cとを対応づけた認証テーブル311を備える。
[接続用設定ファイル受信手順]
S1103の、連携準備部212による接続用設定ファイル受信手順について説明する。本実施形態では、接続用設定ファイル431は、予め、作業者510が用意し、ファイルサーバ430にアップロードする。
図5は、本実施形態の接続用設定ファイル受信手順の流れを説明するための図である。
まず、作業者510は、GW装置210毎の、接続用設定ファイル431をファイルサーバ430にアップロードする(ステップS1201)。ファイルサーバ430では、接続用設定ファイル431は、アクセスパス(ファイルパス)をもとにダウンロード可能な形で保持される。ファイルパスは、例えば、URL(Uniform Resource Locator)等で示される。ここでは、GW装置210として、装置A~Dの4台分、アップロードされた場合を例示する。
作業者510は、ここでは、上述のように、オンプレミス環境200の装置D(GW装置210)の近傍にいる、担当者520にファイルパスを連絡する(ステップS1202)。そして、担当者520がファイルパスを装置D(GW装置210)に設定する。装置D(GW装置210)は、ファイルパスに従ってファイルサーバ430にアクセスし、接続用設定ファイル431のダウンロード要求を行う(ステップS1203)。
ファイルサーバ430は、要求に応じて接続用設定ファイル431を装置D(GW装置210)に送信する(ステップS1204)。
装置D(GW装置210)は、送信された接続用設定ファイル431を受信し(ステップS1205)、記憶部215に格納する。
[セキュアな双方向通信路設定]
次に、S1104の、接続用設定ファイル431を受け取ったGW装置210の通信路生成部211による、セキュアな双方向通信路の設定手順について説明する。図6は、本実施形態のセキュアな双方向通信路設定手順を説明するための図である。
まず、通信路生成部211は、接続用設定ファイル431を受信すると、接続先URL431aに向けて、接続要求を送信する(ステップS1301)。この接続要求は、トークン431bとシークレット431cとを含む。
クラウドサーバ310は、送信された接続要求を解析し、認証する(ステップS1302)。具体的には、クラウドサーバ310は、トークン431bとシークレット431cとを抽出し、トークン431bとシークレット431cとの組み合わせで、そのGW装置210の正当性を検証する。ここでは、図4(b)に示す認証テーブル311に合致する組み合わせがある場合、正当と認証する。正当と検証した場合(認証成功)、クラウドサーバ310は、接続元のGW装置210に、認証成功を意味する応答を送信する(ステップS1303)。これによりTCPによる接続が開始される(ステップS1304)。
以降は、GW装置210の通信路生成部211とクラウドサーバ310との間で、例えば、RFC5246に規定されたTLS handshake、および、RFC6455に規定されるWebSocket opening handshakeに従ってhandshakeを行い(ステップS1305)、WebSocketプロトコルによる双方向通信路を生成する(ステップS1306)。
GW装置210およびクラウドサーバ310は、ここで生成された(開設された)セキュアな双方向通信路(WebSocketコネクション)上で、以降の要求、応答、イベント等の送受信を行う。
なお、クラウドサーバ310は、複数のGW装置210とそれぞれWebSocketコネクションを開設する。これらは、クラウドサーバ310上の接続管理テーブル313で管理される。接続管理テーブル313の一例を、図7(a)に示す。本図に示すように、クラウドサーバ310は、GW装置210を、トークン431bで識別する。接続管理テーブル313では、トークン431bごとに、対応するWebSocketコネクション313bを対応づけて記録する。接続管理テーブル313は、ハンドラやポインタと呼ばれる方法でクラウドサーバ310のメモリ上に格納される。
なお、生成した双方向通信路上で中継される通信の形態には、図8に示すように、要求応答型(要求応答型通信)とイベント型(イベント通知型通信)との2通りがある。要求応答型は、一方の端点からの要求に応じて応答としてサービスを提供する。イベント型は、一方の端点で発生したイベントを契機にサービスが提供される。クラウドサーバ310側から通信を行う際は、要求応答型の通信を行い、オンプレミス環境200内の装置(N/W機器220)側から通信を行う際は、イベント型の通信を行う。
[連携ソリューション構築]
次に、S1106~S1108の詳細を説明する。すなわち、クラウドサーバ310から取得したサービステンプレートを用いて、GW装置210上に連携ソリューションを構築する手順について説明する。
まず、アダプタプログラムおよびサービステンプレートについて説明する。
[アダプタプログラム]
アダプタプログラムは、サービス毎のインタフェースおよび制御方法を実装したプログラムであり、サービス毎に提供される。アダプタプログラムは、クラウドサーバ310の指示によりサービスごとに異なる機能を実行する実行機能(コマンドと呼ぶ。例:メール送信など)と、サービスごとに異なる情報をクラウドサーバ310へ通知する情報通知機能(イベントと呼ぶ。例:メール受信など)と、アダプタプログラム自身の稼働状態をクラウドサーバ310へ通知する状態通知機能と、を実現する。
サービスとアダプタプログラムの稼働状態とは連動する。したがって、サービスが稼働状態を通知するインタフェース(ヘルスチェック機能など)を提供する場合、クラウドサーバ310は、アダプタプログラムの稼働状態を確認することにより、サービスの稼働状態を把握できる。
なお、アダプタプログラムは、後述する図16に示すようにクラウドサーバ310上で動作させることもできる。
[サービステンプレート]
次に、サービステンプレート314について説明する。サービステンプレートは、起動すべきサービスと設定値とを含む。図9(a)は、サービステンプレート314の一例を示す図である。サービステンプレート314は、サービステンプレート名314aと、起動するサービス一覧314bと、サービス起動パラメータ314cと、サービス起動環境変数314dと、サービス起動ファイル314eとを備える。
起動するサービス一覧314bには、起動するサービス一覧が記載される。例えば、起動するサービスそれぞれについて、{リポジトリ名}/{イメージ名}:{バージョンタグ}が記載される。サービス起動パラメータ314cには、サービスの起動時のプロパティが設定される。例えば、Dockerプラットフォームを用いる場合、当該プラットフォーム上のOSに設定するパラメータなどが設定される。サービス起動環境変数314dには、サービスの動作設定のためにサービスに渡す環境変数が設定される。また、サービス起動ファイル314eには、サービスの動作設定のためにサービスに渡すファイルのパスが設定される。
サービステンプレート314は、上述のように、作業者510により、クラウドサーバ310上で設定される。作業者510が設定時にクラウドサーバ310のディスプレイに表示される設定画面315の一例を図9(b)に示す。
設定画面315は、サービステンプレート名入力領域315aと、サービステンプレート設定領域315bと、投入先GW装置名入力領域315cと、を備える。サービステンプレート名入力領域315aは、作業者510によるサービステンプレート名の入力を受け付ける。サービステンプレート名は、サービステンプレート314を一意に識別する名称である。投入先GW装置名入力領域315cは、このサービステンプレートを投入するGW装置210を特定する情報であるGW装置名を受け付ける領域である。また、サービステンプレート設定領域315bは、作業者510による、起動するサービス(Container)一覧314bと、サービス起動パラメータ314cと、サービス起動環境変数314dと、サービス起動ファイル314eと、の設定を受け付ける。
サービス起動パラメータ314cは、例えば、サービスが待ち受けするポート番号、証明書の鍵、Webサーバが読み込むhtmlファイルのパス、オプションのフラグON/OFFなどを含む。
なお、クラウドサーバ310は、上述のように複数のGW装置210に接続され、それぞれを管理する。クラウドサーバ310は、各GW装置210を管理するために、GW管理テーブル312を備える。GW管理テーブル312の一例を、図7(b)に示す。
GW管理テーブル312は、各GW装置210について、トークン431bごとに、GW装置名312bと、接続状態312cと、サービステンプレート名312dと、サービスの稼働状態312eとを備える。
トークン431bは、クラウドサーバ310が管理するGW装置210を特定する情報である。GW装置名312bは、各GW装置210に予め設定される名称である。なお、GW装置名312bは、必須ではない。接続状態312cは、クラウドサーバ310と当該GW装置210との接続状態を示す。例えば、セキュアな双方向通信路が生成されている場合、「接続中」と登録される。サービステンプレート名312dは、作業者510が、当該GW装置210に向けて設定(投入)した、サービステンプレート314のサービステンプレート名314aが登録される。サービスの稼働状態312eは、サービステンプレート314で特定されるサービスの稼働状態が登録される。
[サービステンプレートの配信]
作業者510は、クラウドサーバ310において、サービステンプレート314の設定を投入後、サービステンプレート314をGW装置210に配信する指示を行う。配信指示は、クラウドサーバ310上のデプロイ操作画面316を介して行う。なお、作業者510は、1つのクラウドサーバ310から、複数のGW装置210に対し、サービステンプレート314の配信指示を含むサービス連携処理を行うことができる。
図9(c)に、デプロイ操作画面316の一例を示す。デプロイ操作画面316は、GW装置名312b毎に、設定されたサービステンプレート名314aと、そのデプロイ状態316cと、指示316dとが表示される。指示316dは、作業者510によるデプロイ指示を受け付ける。作業者510は、指示316dを介してデプロイ指示を入力することにより、デプロイ指示を行う。
クラウドサーバ310は、作業者510からデプロイ指示を受け付けると、GW装置名312bで特定されるGW装置210に対し、サービステンプレート名314aで特定されるサービステンプレート314を、プッシュ配信する。
例えば、クラウドサーバ310が管理するGW装置210が、装置Aと装置Bとの2種である場合の例を、図10(a)に示す。クラウドサーバ310は、作業者510から、装置Aに対するデプロイ操作を受け付けた場合(ステップS1401)、装置Aに対応づけて登録されるサービステンプレート314を、装置Aに向けて配信する(ステップS1402)。また、装置Bへのデプロイ操作を受け付けた場合(ステップS1403)、クラウドサーバ310は、装置Bに対応づけて登録されるサービステンプレート314を、装置Bに向けて配信する(ステップS1404)。
この時のクラウドサーバ310内での処理の流れを、図10(b)に示す。クラウドサーバ310は、図7(b)に示すGW管理テーブル312を参照し、デプロイ指示を受けたGW装置210のGW装置名312bのトークン431bを特定する(ステップS1501)。
クラウドサーバ310は、図7(a)に示す接続管理テーブル313を参照し、トークン431bに対応付けられたWebSocketコネクションを特定する(ステップS1502)。
クラウドサーバ310は、特定したWebSocketコネクションを用いて、起動すべきアダプタプログラムとサービステンプレート314とを配信する(ステップS1503)。クラウドサーバ310は、GW管理テーブル312を参照し、接続元のGW装置210のGW装置名312bに対応付けられたサービステンプレート名312dを特定し、当該サービステンプレート名312dを有するサービステンプレート314を配信する。
なお、起動すべきアダプタプログラムは、GW装置210上で動作し、オンプレミス環境200内の内部ネットワーク201に既に設置されている装置と通信し、サービスの連携を行う。
[サービスのダウンロード]
GW装置210の連携構築部213は、サービステンプレート314を受信すると、起動するサービス一覧314bを参照し、未ダウンロードのサービスを特定し、そのサービス(プログラム)を、ネットワーク900を介して管理サーバ420から取得する。
GW装置210は、各サービスについて、既にダウンロード済みである場合、キャッシュしておく。具体的には、記憶部215に、ダウンロード済みサービスのプログラムのイメージファイル217と、ダウンロード済サービス一覧テーブル216と、を記憶する。
ダウンロード済サービス一覧テーブル216の一例を、図2(b)に示す。ダウンロード済サービス一覧テーブル216は、リポジトリ名216aと、イメージ名216bと、バージョン216cと、を備える。なお、リポジトリ名216aは、そのサービスのプログラムの取得元である。イメージ名216bは、イメージファイル217に付与された名称である。
サービステンプレート314を受信した、GW装置210の連携構築部213による、連携ソリューション構築処理の流れを、図11に沿って説明する。連携構築部213は、クラウドサーバ310から取得したサービステンプレート314をもとに、初期設定済みのサービスを起動する。
連携構築部213は、サービステンプレート314を受信すると、起動するサービス一覧314b内のサービス一覧を抽出する(ステップS1601)。サービス一覧にリストアップされているサービスに対し、予め定めた順に、以下の処理を繰り返す。ここでは、サービス一覧にリストアップされているサービスの数をN(Nは1以上の整数)とする。なお、nは、カウンタである。
まず、連携構築部213は、nを初期化する(n=1に設定する)(ステップS1602)。
連携構築部213は、n番目の処理対象のサービスが、ダウンロード済みであるかを判別する(ステップS1603)。ダウンロード済サービス一覧テーブル216に登録されている場合、ダウンロード済みと判別する。
ダウンロード済でない場合(S1603;No)、連携構築部213は、当該サービスを、リボジトリ名で特定される格納場所(レジストリ)から取得(ダウンロード)する(ステップS1604)。そして、連携構築部213は、当該サービスを、ダウンロード済サービス一覧テーブル216に登録する(ステップS1605)。そして、当該サービスを起動する(ステップS1606)。起動には、サービステンプレート314に含まれるサービス起動パラメータ314cと、サービス起動環境変数314dと、サービス起動ファイル314eと、を用いる。
一方、ステップS1603において、ダウンロード済みと判別された場合(S1603;Yes)、連携構築部213は、ステップS1606へ移行し、当該サービスを起動する。
連携構築部213は、以上の処理を、サービステンプレート314の起動するサービス一覧314bに登録されている全てのサービスについて、繰り返し(ステップS1607、S1608)、処理を終了する。
ステップS1606のサービスの起動は、アダプタプログラムを指定することにより行われる。クラウドサーバ310上で、作業者510が、GW装置210上で実行するプログラムを選択する。クラウドサーバ310は、作業者510の選択を受け付け、GW装置210に指示を行う。アダプタプログラムの実行機能によりGW装置210上のアダプタプログラムが起動し、機能を実行する。
なお、アダプタプログラムは、サービスを提供するサービスサーバと1対1の関係である。図12(a)に示すように、クラウドサーバ310は、接続先のサービスサーバの数だけ、GW装置210上にアダプタプログラムのインスタンスを起動する。クラウドサーバ310上では、ワークフローエンジンにサービスサーバ呼び出しに関する設定ファイルが格納されている。作業者510は、その設定ファイルを利用して、ワークフローエンジンが呼び指すサービスに対応するアダプタプログラムを選択して、起動指示を行う。
なお、クラウドサーバ310からサービスへのサービス実行要求時は、ワークフローエンジンが起動したいサービスに対応するアダプタプログラムを識別し、実行する。サービスにおいてイベント発生時は、トリガの起動によりワークフローエンジンがイベントのハンドリングを行い、ソリューションを提供する。なお、アダプタプログラムとクラウドサーバ310のトリガとは、1対1で設けられる。
なお、各サービスは、図12(b)に示すように、GW装置210のOS上に構築された仮想化プラットフォーム上に構築される。すなわち、各サービスは、OSがプラットフォーム管理プログラムを実行することにより実現される仮想化プラットフォーム上で実行される。図12(b)には、OSとしてLinuxを用いる場合を例示する。各サービスの起動は、プラットフォーム管理プログラムを通じて行われる。
ここで、ゲートウェイプログラムは、プロトコルの異なるネットワークを中継する機能、いわゆる、ゲートウェイ機能を実現する。通信路生成プログラム、連携準備プログラム、および連携構築プログラムは、それぞれ、通信路生成部211、連携準備部212および連携構築部213の機能を実現する。NIC(netowork interface card)は、通信機能を実現する。
[サービスの初期設定]
次に、サービステンプレート314のサービス起動パラメータ314cを、起動時の環境変数としてサービスに渡す方法と、サービスから参照可能なファイルに書き込んで渡す方法とを説明する。
環境変数として渡す場合、図13(a)に示すように、サービステンプレート314をもとに、Dockerプラットフォームに環境変数を事前設定する。設定された環境変数をもとに、Dockerコンテナのデプロイ時に、サービスは、環境変数が設定された状態のOSの上で起動する。サービスは、初期化時に環境変数を読み取り、サービスを開始する。
図13(b)に示すように、環境変数は、プラットフォーム管理アプリ(プラットフォーム管理プログラム)がプロセスを作成し、プロセス上の環境変数を上書きすることで設定される。プラットフォーム管理アプリ(プラットフォーム管理プログラム)は、プロセスを作成し、環境変数を上書きし、プロセス上でサービスの実体となるプログラムを起動する。
参照可能なファイルとして渡す場合、図14(a)に示すように、GW装置210は任意のディレクトリに起動ファイルを配置し、例えば、Dockerコンテナを起動する際の起動パラメータに設定する。Dockerコンテナを起動する際、起動パラメータ(引数)として、起動ファイルのファイルパスがサービスへと渡される。サービスは起動ファイルの中身を読み取り、記述されているパラメータをもとに起動する。
図14(b)に示すように、不揮発性メモリ上に配置されたファイルへは、マウントポイントを介してコンテナ内のファイルシステムからアクセスする。プログラムは、初期設定に必要な「コンフィグファイル」「サーバ証明書」を読み取り、サービスを起動する。
[ハードウェア構成]
なお、本実施形態のGW装置210は、それぞれ、いわゆる、汎用の情報処理装置(コンピュータ)により実現可能である。
本実施形態のGW装置210は、図15に示すように、例えば、内部バスにより相互に接続される、CPU(Central Processing Unit)291と、記憶装置292と、通信I/F293と、を備える。
CPU291は、例えば、記憶装置292の不揮発部に記憶されたプログラムを記憶装置292の揮発部にロードして実行することにより、上記各機能を実現するとともにGW装置210全体を統括的に制御する。なお、CPU291の代わりにMPU(Micro Processing Unit)等の1以上のプロセッサを用いてもよい。
記憶装置292は、RAM(Random Access Memory)等の揮発部(揮発メモリ)と、例えば、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の不揮発部(不揮発メモリ)とを備える。揮発部は、GW装置210が実行するプログラム等を、CPU291が処理する際のワーク領域である。不揮発部は、GW装置210が実行する各種プログラムを記憶する。なお、不揮発部は、フレキシブルディスク、ハードディスク、光ディスク、CD-ROM、CD-R、磁気テープ、不揮発性メモリカード、DVD等の記憶媒体を備えてもよい。
なお、不揮発部に記憶されたプログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。不揮発部は、非一時的なコンピュータ可読記録媒体に記録された各種プログラムを中長期的に記憶することに利用することが可能である。
通信I/F293は、有線または無線による信号、データの送受信を行う。また、通信I/F293として、例えば、上述のように、NIC(Network Interface Card)等を備えてもよい。
ダウンロード済サービス一覧テーブル216およびサービスのプログラムのイメージファイル217は、それぞれ、不揮発部に記憶される。
クラウドサーバ310も同様の構成を備える。クラウドサーバ310は、さらに、拡張I/F294を備える。拡張I/F294は、表示装置、入力装置等を接続するインタフェースである。表示装置は、例えば、液晶モニタ等である。入力装置は、例えば、キーボードやマウス等のユーザ操作を受け付ける装置である。
GW管理テーブル312、接続管理テーブル313、サービステンプレート314、設定画面315およびデプロイ操作画面316のデータは、不揮発部に記憶される。また、クラウドサーバ310の各種の処理を実現するワークフローエンジンは、不揮発部に記憶されたプログラムを、CPU291が揮発部にロードして実行することにより実現される。
管理サーバ420およびファイルサーバ430も同様のハードウェア構成を有する。各種のデータは、不揮発部に記憶される。
なお、各装置のハードウェア構成は、これに限定されない。図示しないハードウェアを含んでもよい。
また、本実施形態のGW装置210およびクラウドサーバ310の上記各機能を実現するプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
[具体的な適用例]
以下、上記サービス提供システム100の具体的な適用例(サービス提供システム101)について説明する。図16は、サービス提供システム101を、ホテルの無人受付(チェックイン)システム構築時に適用する実施形態の全体構成図である。
オンプレミス環境200は、ホテル等である。このホテルでは、既に、客室管理サーバ(Property Management System)234が稼働しているものとする。
オンプレミス環境200は、ゲートウェイ(GW)231と、無人受付システムサーバ233と、客室管理サーバ234と、データベースサーバ235と、セキュリティ装置230と、を備える。
また、クラウド300側は、上述のクラウドサーバ310と同様のiPaaS提供サーバ321と、メール送信サーバ322と、管理サーバ420と、を備える。
GW231は、上述のGW装置210同様、例えば、汎用サーバに上で動作するアプリケーションで構成される。汎用サーバは、ネットワーク接続用のインタフェース、連携サービスを起動するためのストレージ領域およびメモリ、計算部を備える。
管理サーバ420は、クラウド300上で動作するサーバおよび各種サービスのプログラムを格納したレジストリを備える。レジストリは、Dockerという公知の技術を用いるが、これに限定されない。Dockerレジストリは、コンテンツの安全な保管と配送とを提供する。
図16のオンプレミス環境に設置された各サーバは、ネットワークで接続される。ネットワークは、有線でも無線でもよい。一つのハードウェアに複数のサーバをインストールし、OSの提供する仮想的なネットワークインタフェースによって接続されていてもよい(ループバック接続)。また、仮想化技術などを用いて一つのハードウェア上に構築してもよい。
セキュリティ装置230は、インターネット等のネットワーク900からオンプレミス環境200側への装置への接続の確立を拒否し、オンプレミス環境200側からインターネット側への承認された手順(例えば、TLSを用いた通信)を許可する。
各サーバおよびゲートウェイは、各種サービスに対応するアダプタプログラムを介して各種サービスと通信する。アダプタプログラムは、上述のように、サービスによって異なるインタフェースおよび制御方法を実装したプログラムである。サーバ上で動作させることもゲートウェイ上で動作させることもできる。ここでは、客室管理サーバ(PMS)234用のアダプタプログラムとメール送信サーバ322用のアダプタプログラムを利用する。
次に、無人受付システム構築時の処理の流れを、図17を用いて説明する。
まず、作業者510は、iPaaS提供サーバ321に、無人受付システムの実施に必要なサービスの設定(サービステンプレート314)を投入する(ステップS2101)。作業者510は、上述の設定画面315を介して必要な情報を入力する。ここで入力される情報は、上述のように、サービステンプレート名314aと、起動するサービス一覧314bと、サービス起動パラメータ314cと、サービス起動環境変数314dと、サービス起動ファイル314eとを備える。
具体的には、以下の情報を含む。連携するサービスの名称、およびレジストリから取得する際のキー(DockerImage名識別情報)、アダプタプログラム、連携するサービスの初期設定に必要な情報(クラウドサーバ名、起動ポート、環境変数、起動時の読み込みファイル、接続元に要求するユーザ名、パスワード、証明書など)、連携するサービスへの接続に必要な情報(クラウドサーバ名、ユーザ名、URL、ポート番号、パスワード、証明書など)。
作業者510は、提供された接続用設定ファイル431へのアクセスパスを、ホテルの担当者520に連絡する(ステップS2103)。アクセスパスは、メール本文に直接書いて送信する、メールの添付ファイル内に暗号化して記述する、直接口頭や電子デバイス、紙等に書いて渡す、機密情報共有サービスを用いる、等により、ホテルの担当者520に連絡する。
なお、接続用設定ファイル431は、上述のように、予め、作業者510により、GW装置210(ここでは、GW231)毎に用意され、クラウド300上の、例えば、ファイルサーバ等にアップロードされる。接続用設定ファイル431には、上述のように、接続先URL431aと、トークン431bと、シークレット431cと、が含まれる。
担当者520は、GW231に接続用設定ファイル431のアクセスパスを入力する(ステップS2104)。GW231は、入力されたアクセスパスに従ってファイルサーバ430にアクセスし、接続用設定ファイル431をダウンロードする。
GW231は、接続用設定ファイル431をもとにiPaaS提供サーバ321に対して、上述のように、セキュアな双方向通信路を形成する(ステップS2105)。以下、GW装置210(GW231)と、iPaaS提供サーバ321とは、この通信路を介してデータの送受信を行う。
iPaaS提供サーバ321は、GW231に、無人受付システムの連携サービスを設定するためのデータを送信する(ステップS2106)。ここで、送信されるデータは、ステップS2101で作業者510が投入したサービステンプレート314である。
GW231は、取得すべきプログラムを管理サーバ420に要求する(ステップS2107)。ここでは、GW231は、上述のように、サービステンプレート314を解析し、連携するサービスのプログラムのうち、未取得のプログラムを取得すべきプログラムと判断する。本実施形態の場合、アダプタプログラムと、無人受付システムプログラムと、データベースプログラムと、を要求する。
管理サーバ420は、要求されたプログラムを、レジストリからGW231に送信する(ステップS2108)。本実施形態の場合、上述のように、アダプタプログラムと、無人受付システムプログラムと、データベースプログラムと、を送信する。
GW231は、無人受付システムプログラムをデプロイする(ステップS2109)。デプロイが完了すると(ステップS2110)、GW231は、無人受付システムサーバ233に接続する(ステップS2111)。無人受付システムサーバ233は、GW231の接続に応答する(ステップS2112)。
同様に、GW231は、データベースプログラムをデータベースサーバ235にデプロイする(ステップS2113)。デプロイが完了すると(ステップS2114)、GW231は、データベースサーバ235に接続する(ステップS2115)。データベースサーバ235は、GW231の接続に応答する(ステップS2116)。
GW231は、客室管理サーバ(PMS)234に接続し(ステップS2117)、客室管理サーバ(PMS)234は、GW231の接続に応答する(ステップS2118)。
GW231は、起動状況および各種サービスとの接続状況をiPaaS提供サーバ321に通知する(ステップS2119)。ここで通知される接続状況は、ステップS2112、S2116およびS2118の応答結果である。
作業者510は、iPaaS提供サーバ321にステップS2119で通知された情報を要求する(ステップS2120)。ここでは、例えば、iPaaS提供サーバ321が提供するWebUI(Webユーザインタフェース)にて要求する。
iPaaS提供サーバ321は、作業者510からの要求に応答し、WebUIにて情報を提示する(ステップS2121)。これにより、作業者510は、オンプレミス環境200側の内部ネットワーク201に、連携ソリューション提供のために必要な準備が整ったことを確認できる。
以上説明したように、本実施形態のGW装置210は、以下の機能を有する。
・GW装置210内部で動作させるアダプタプログラムにより、多様なサービスとの通信を中継する。
・WebAPI(Web Application Programming Interface)を用いる。
・ファイルサーバ430から接続用設定ファイル431を取得し、それを適用することにより、様々な構成を構築する。
・インターネット等のネットワーク900を介して双方向通信を行う。
・アプリケーション層でトンネリングと変換とを行う。
・既存のセキュリティ装置(TLS)230に対応し、アプリケーションプロトコルを動かす。
・汎用サーバ(例えば、OSはLinux)上に、Linuxの提供するツールを用いてインターネットからインストールスクリプトを取得し、ゲートウェイを構築する。
・外部サービスへの認証情報をクラウド300から取得する。
このように、本実施形態のGW装置210は、ファイルサーバ430から接続用設定ファイル431を取得できるため、作業者510は、リモートでソリューション(連携サービス)の構築を行うことができる。すなわち、作業者510は、設定のためにオンプレミス環境200にアクセス可能なロケーションに移動する必要はない。また、認証情報をクラウド300から取得するため、自装置(GW装置210)で保持する必要がない。
本実施形態のGW装置210は、クラウド300上のiPaaSソフトウェアとオンプレミス環境200の内部ネットワーク201に接続された機器およびサービスとの通信を中継する。このとき、Web技術(TCP/IP/TLS/HTTP/WebSocket)を用いて、オンプレミス環境200に設置されたファイアウォールやTCPプロキシに対応した、ネットワーク上の、セキュアな双方向通信路を提供する。
本実施形態のGW装置210により、クラウドサーバ310と通信するための設定(ファイアウォールやルータの設定、ネットワーク機器、または、SBC(Session Border Controller)等のゲートウェイ装置の設定)が不要になり、容易に連携ソリューションを構築できる。
また、本実施形態のGW装置210は、クラウド300上のサービスと連携する際、接続用設定ファイル431やサービステンプレート314等を用いる。例えば、本実施形態によれば、ファイルサーバ430等に保管された接続用設定ファイル431を示すURLをもとに、クライアント(GW装置210)はファイルサーバ430に接続し、接続用設定ファイル431を取得する。このため、識別IDを用いる必要がない。また、ファイルは、Webサーバであるファイルサーバ430から提供される。Webサーバは、URLをユニークに生成できるという特徴があり、このため、GW装置210の接続に必要な接続用設定ファイル431を、一つのURLで識別することができる。これらにより、本実施形態によれば、連携の設定作業を簡略化することができる。
さらに、本実施形態のGW装置210は、連携ソリューションの提供に必要な各種サービスを、オンプレミス環境200に構築する。先に生成した、セキュアな双方向通信路を用いて、クラウドサーバ310上で、各種サービスの状態を作業者510に提示できる。したがって、本実施形態のサービス提供システム100によれば、連携ソリューション提供までのオンプレミス環境200における準備作業を一元化できる。すなわち、GW装置210の配下で動作するアダプタプログラムやサービスのデプロイにより、連携ソリューションを自動的に構築できる。
また、本実施形態のサービス提供システム100によれば、クラウド300側からオンプレミス環境200内の内部ネットワーク201へのアクセスは、アダプタプログラムを経由して行う。このため、VPN等を利用する場合に比べ、クラウド300から不正侵入された際のアクセスが限定的である。また、オンプレミス環境200内の内部ネットワーク201に接続されたサーバの変更を、アダプタプログラムが検知してクラウドサーバ310にイベント通知ができる。
本実施形態によれば、オンプレミス環境200内のセキュリティを担保しつつ、オンプレミス環境200内の装置(N/W機器220)とインターネット上のサーバ(クラウドサーバ310)との通信を実現できる。また、本実施形態によれば、GW装置210の設置や運用がオンライン上で完結する。このため、作業者510は、現場(オンプレミス環境200)に行かなくても、GW装置210を設定でき、連携ソリューションを構築できる。したがって、保守運用に関するコストを削減できる。
<変形例1>
上記実施形態では、作業者510は、サービスを提供するサーバ(クラウドサーバ310)上で作業を行っているが、これに限定されない。ネットワーク900に接続された、他の端末上で作業を行ってもよい。
<変形例2>
上記実施形態では、サービスを、GW装置210上の、仮想化プラットフォーム上に起動している。しかし、これに限定されない。例えば、図18に示すように、仮想化プラットフォームを介さず、ゲートウェイプログラムが動作するOS上に直接サービスプログラムを起動してもよい。
この場合、環境変数およびファイルシステム上に格納された設定情報(サーバ証明書、コンフィグファイルなど)は、OSの機能を介して直接参照できる。すなわち、これらを参照する際、仮想化プラットフォームを介する必要がない。
<変形例3>
また、上記実施形態では、GW装置210は、汎用のLinuxサーバ上に構築される場合を例にあげて説明した。しかしながら、これに限定されない。例えば、GW装置210は、専用のハードウェア装置にプリインストールされてもよい。
専用ハードウェア装置を利用する場合、出荷時に、不揮発性メモリに、ゲートウェイプログラム、Dockerプログラム、ハードウェア制御用のプログラムを書き込む。専用ハードウェア装置を受け取った利用者は、マニュアルに従い、ソリューション提供に必要なプログラムをダウンロードする。
専用のハードウェア装置を使用する場合、ゲートウェイプログラムをプリインストールおよびセットアップした状態で調達することができ、本発明の効果が大きくなる。
<変形例4>
また、上記実施形態は、例えば、電話自動取次サービスにも適用できる。この場合、GW装置210は、電話自動取次サービスのGW(アダプターハブ)として機能する。
また、例えば、オフィス内のイントラネットに接続されて運用される複数のサーバやIoT機器に適用できる。これにより、これらの機器の監視や、プログラム/ファームウェアのアップロード、バッチ適用、再起動等の管理業務を、リモートで行うことができる。
なお、上述の説明で用いたフローチャートでは、複数の工程(処理)が順番に記載されているが、各工程の実行順序は、その記載の順番に制限されない。例えば、各処理を並行して実行する等、図示される工程の順番を内容的に支障のない範囲で変更することができる。
また、記憶装置292に記憶されたプログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。これらは、非一時的なコンピュータ可読記録媒体に記録された各種プログラムを中長期的に記憶することに利用することが可能である。
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成、各要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
最後に、本発明の好ましい形態を要約する。
(付記1)
オンプレミス環境に設置されたネットワーク機器およびゲートウェイ装置と、
クラウド上のサーバ装置と、を備え、
前記ゲートウェイ装置は、前記ネットワーク機器と前記サーバ装置との通信を中継する暗号化された双方向通信路を生成し、
前記暗号化された双方向通信路は、WebSocketプロトコルに応じた通信路であり、前記サーバ装置からの要求応答型通信および前記ゲートウェイ装置からのイベント通知型通信を行う通信路である、サービス提供システム。
(付記2)
付記1記載のサービス提供システムにおいて、
前記ゲートウェイ装置は、アダプタプログラムを備え、
前記暗号化された双方向通信路を、当該アダプタプログラムを経由して行なうことが望ましい。
(付記3)
付記1または2記載のサービス提供システムにおいて、
前記ゲートウェイ装置は、前記サーバ装置のURL、トークン、シークレットを含む設定ファイルを記憶部に格納することで、前記暗号化された双方向通信路を生成することが望ましい。
(付記4)
付記2記載のサービス提供システムにおいて、
前記ゲートウェイ装置は、起動すべきサービスと設定値とを含むサービステンプレートを、前記サーバ装置から受信し、前記アダプタプログラムおよび前記サービスのデプロイを行うことが望ましい。
(付記5)
オンプレミス環境に設置されたゲートウェイ装置であって、
前記オンプレミス環境に設置されたネットワーク機器とクラウド上のサーバ装置との通信を中継する暗号化された双方向通信路を生成し、
前記暗号化された双方向通信路は、WebSocketプロトコルに応じた通信路であり、前記サーバ装置からの要求応答型通信および当該ゲートウェイ装置からのイベント通知型通信を行う通信路である、ゲートウェイ装置。
(付記6)
オンプレミス環境に設置されたネットワーク機器およびゲートウェイ装置と、クラウド上のサーバ装置と、を備えたサービス提供システム構築方法であって、
前記ゲートウェイ装置が、前記ネットワーク機器と前記サーバ装置との通信を中継する、WebSocketプロトコルに応じた暗号化された双方向通信路を生成し、
前記ゲートウェイ装置が、前記暗号化された双方向通信路を介して前記サーバ装置から起動すべきアダプタプログラムと起動すべきサービスと設定値とを含むサービステンプレートを受信し、前記アダプタプログラムおよび前記サービスのデプロイを行なう、サービス提供システム構築方法。
(付記7)
オンプレミス環境に設置されたゲートウェイ装置に搭載されるコンピュータに
前記オンプレミス環境に設置されたネットワーク機器とクラウド上のサーバ装置との通信を中継する、WebSocketプロトコルに応じた暗号化された双方向通信路であって、前記サーバ装置からの要求応答型通信および前記ゲートウェイ装置からのイベント通知型通信を行う双方向通信路を生成する機能を実現せるためのプログラム。
なお、付記5-7の各形態は、付記2-4の形態に展開することが可能である。
なお、上記の特許文献等の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
100:サービス提供システム、101:サービス提供システム、
200:オンプレミス環境、201:内部ネットワーク、210:ゲートウェイ(GW)装置、211:通信路生成部、212:連携準備部、213:連携構築部、215:記憶部、216:ダウンロード済サービス一覧テーブル、216a:リポジトリ名、216b:イメージ名、216c:バージョン、217:イメージファイル、220:ネットワーク(N/W)機器、230:セキュリティ装置、231:GW、232:アダプタプログラム、233:無人受付システムサーバ、234:客室管理サーバ、235:データベースサーバ、291:CPU、292:記憶装置、293:通信I/F、294:拡張I/F、
300:クラウド、310:クラウドサーバ、311:認証テーブル、312:GW管理テーブル、312b:GW装置名、312c:接続状態、312d:サービステンプレート名、312e:サービスの稼働状態、313:接続管理テーブル、313b:WebSocketコネクション、314:サービステンプレート、314a:サービステンプレート名、314b:起動するサービス一覧、314c:サービス起動パラメータ、314d:サービス起動環境変数、314e:サービス起動ファイル、315:設定画面、315a:サービステンプレート名入力領域、315b:サービステンプレート設定領域、315c:投入先GW装置名入力領域、316:デプロイ操作画面、316c:デプロイ状態、316d:指示、321:iPaaS提供サーバ、322:メール送信サーバ、
420:管理サーバ、430:ファイルサーバ、431:接続用設定ファイル、431a:接続先URL、431b:トークン、431c:シークレット、
510:作業者、520:担当者、
900:ネットワーク

Claims (7)

  1. オンプレミス環境に設置されたネットワーク機器およびゲートウェイ装置と、
    クラウド上のサーバ装置と、を備え、
    前記ゲートウェイ装置は、前記ネットワーク機器と前記サーバ装置との通信を中継する暗号化された双方向通信路を生成し、
    前記暗号化された双方向通信路は、WebSocketプロトコルに応じた通信路であり、前記サーバ装置からの要求応答型通信および前記ゲートウェイ装置からのイベント通知型通信を行う通信路であり、
    前記ゲートウェイ装置は、
    サービスを提供するサービスサーバに対応するアダプタプログラムを備え、
    起動すべき前記サービスと設定値とを含むサービステンプレートを、前記サーバ装置から受信し、前記アダプタプログラムおよび前記サービスのデプロイを行い、
    前記暗号化された双方向通信を、当該アダプタプログラムを経由して行なうとともに、前記サーバ装置に、前記アダプタプログラムのインタフェースのみ公開し、当該アダプタプログラムへの指示以外はルーティングしない、サービス提供システム。
  2. 請求項1記載のサービス提供システムであって、
    前記ゲートウェイ装置は、外部のWebサーバからダウンロードした設定ファイルを用いて、前記双方向通信路を生成し、
    前記設定ファイルは、前記サーバ装置のURL、トークン、シークレットを含み、前記ゲートウェイ装置毎に予め設定され、アクセスパスをもとにダウンロード可能な形式で前記外部のWebサーバに保持され、
    当該アクセスパスは、予め前記ゲートウェイ装置に設定される、サービス提供システム。
  3. 請求項記載のサービス提供システムであって、
    前記ゲートウェイ装置は、前記設定ファイルを記憶部に格納する、サービス提供システム。
  4. オンプレミス環境に設置されたゲートウェイ装置であって、
    サービスを提供するサービスサーバに対応するアダプタプログラムを備え、
    前記オンプレミス環境に設置されたネットワーク機器とクラウド上のサーバ装置との通信を中継する暗号化された双方向通信路を生成し、
    起動すべき前記サービスと設定値とを含むサービステンプレートを、前記サーバ装置から受信し、前記アダプタプログラムおよび前記サービスのデプロイを行い、
    前記暗号化された双方向通信を、当該アダプタプログラムを経由して行なうとともに、前記サーバ装置に、前記アダプタプログラムのインタフェースのみ公開し、当該アダプタプログラムへの指示以外はルーティングせず
    前記暗号化された双方向通信路は、WebSocketプロトコルに応じた通信路であり、前記サーバ装置からの要求応答型通信および当該ゲートウェイ装置からのイベント通知型通信を行う通信路である、ゲートウェイ装置。
  5. 請求項4記載のゲートウェイ装置であって、
    外部のWebサーバからダウンロードした設定ファイルを用いて、前記双方向通信路を生成し、
    前記設定ファイルは、前記サーバ装置のURL、トークン、シークレットを含み、前記ゲートウェイ装置毎に予め設定され、アクセスパスをもとにダウンロード可能な形式で前記外部のWebサーバに保持され、
    当該アクセスパスは、予め当該ゲートウェイ装置に設定される、ゲートウェイ装置。
  6. オンプレミス環境に設置されたネットワーク機器およびゲートウェイ装置と、クラウド上のサーバ装置と、を備えたサービス提供システム構築方法であって、
    前記ゲートウェイ装置は、サービスを提供するサービスサーバに対応するアダプタプログラムを備え、
    前記ゲートウェイ装置が、前記ネットワーク機器と前記サーバ装置との通信を中継する、WebSocketプロトコルに応じた暗号化された双方向通信路を生成し、
    前記ゲートウェイ装置が、前記暗号化された双方向通信路を介して前記サーバ装置から起動すべき前記サービスと設定値とを含むサービステンプレートを受信し、前記アダプタプログラムおよび前記サービスのデプロイを行い、
    前記ゲートウェイ装置は、前記暗号化された双方向通信を、当該アダプタプログラムを経由して行なうとともに、前記サーバ装置に、前記アダプタプログラムのインタフェースのみ公開し、当該アダプタプログラムへの指示以外はルーティングしない、サービス提供システム構築方法。
  7. オンプレミス環境に設置されたゲートウェイ装置であって、サービスを提供するサービスサーバに対応するアダプタプログラムを備えるゲートウェイ装置に搭載されるコンピュータに
    前記オンプレミス環境に設置されたネットワーク機器とクラウド上のサーバ装置との通信を中継する、WebSocketプロトコルに応じた暗号化された双方向通信路であって、前記サーバ装置からの要求応答型通信および前記ゲートウェイ装置からのイベント通知型通信を行う双方向通信路を生成する機能と、
    起動すべき前記サービスと設定値とを含むサービステンプレートを、前記サーバ装置から受信し、前記アダプタプログラムおよび前記サービスのデプロイを行い、前記暗号化された双方向通信を、当該アダプタプログラムを経由して行なうとともに、前記サーバ装置に、前記アダプタプログラムのインタフェースのみ公開し、当該アダプタプログラムへの指示以外はルーティングしない機能と、
    を実現せるためのプログラム。
JP2023015871A 2023-02-06 2023-02-06 サービス提供システム、ゲートウェイ装置、サービス提供システム構築方法およびプログラム Active JP7440177B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023015871A JP7440177B1 (ja) 2023-02-06 2023-02-06 サービス提供システム、ゲートウェイ装置、サービス提供システム構築方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2023015871A JP7440177B1 (ja) 2023-02-06 2023-02-06 サービス提供システム、ゲートウェイ装置、サービス提供システム構築方法およびプログラム

Publications (1)

Publication Number Publication Date
JP7440177B1 true JP7440177B1 (ja) 2024-02-28

Family

ID=90011286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023015871A Active JP7440177B1 (ja) 2023-02-06 2023-02-06 サービス提供システム、ゲートウェイ装置、サービス提供システム構築方法およびプログラム

Country Status (1)

Country Link
JP (1) JP7440177B1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010134512A (ja) 2008-12-02 2010-06-17 Hitachi Omron Terminal Solutions Corp アダプタ装置及びそれによるカスタマイズ方法
JP2017506387A (ja) 2014-02-07 2017-03-02 オラクル・インターナショナル・コーポレイション モバイルクラウドサービスのためのオンプレミス・エージェント
JP2017135658A (ja) 2016-01-29 2017-08-03 コニカミノルタ株式会社 通信システム、通信中継装置およびプログラム
JP2018534884A (ja) 2015-09-17 2018-11-22 セクテュリオン システムズ インコーポレイテッドSecturion Systems, Inc. クライアント−クラウドまたはリモートサーバーの安全なデータまたはファイル・オブジェクト暗号化ゲートウェイ
JP2020096229A (ja) 2018-12-10 2020-06-18 株式会社東芝 ネットワーク制御装置、ネットワーク制御方法およびネットワーク制御システム
JP2022147233A (ja) 2021-03-23 2022-10-06 株式会社リコー ネットワークシステム、接続方法およびプログラム
JP2022175989A (ja) 2021-05-14 2022-11-25 株式会社日立製作所 ジョブ実行システム及びジョブ実行方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010134512A (ja) 2008-12-02 2010-06-17 Hitachi Omron Terminal Solutions Corp アダプタ装置及びそれによるカスタマイズ方法
JP2017506387A (ja) 2014-02-07 2017-03-02 オラクル・インターナショナル・コーポレイション モバイルクラウドサービスのためのオンプレミス・エージェント
JP2018534884A (ja) 2015-09-17 2018-11-22 セクテュリオン システムズ インコーポレイテッドSecturion Systems, Inc. クライアント−クラウドまたはリモートサーバーの安全なデータまたはファイル・オブジェクト暗号化ゲートウェイ
JP2017135658A (ja) 2016-01-29 2017-08-03 コニカミノルタ株式会社 通信システム、通信中継装置およびプログラム
JP2020096229A (ja) 2018-12-10 2020-06-18 株式会社東芝 ネットワーク制御装置、ネットワーク制御方法およびネットワーク制御システム
JP2022147233A (ja) 2021-03-23 2022-10-06 株式会社リコー ネットワークシステム、接続方法およびプログラム
JP2022175989A (ja) 2021-05-14 2022-11-25 株式会社日立製作所 ジョブ実行システム及びジョブ実行方法

Similar Documents

Publication Publication Date Title
JP3888452B2 (ja) ネットワークを介した印刷方法
US9438662B2 (en) Enabling secure remote assistance using a terminal services gateway
US9985930B2 (en) Reverse proxy for accessing local network over the internet
US11700262B2 (en) System and method to securely execute datacenter management operations remotely
US20080189781A1 (en) Remote management of electronic devices
US20150150114A1 (en) Method and System for Providing Secure Remote External Client Access to Device or Service on a Remote Network
KR20060111358A (ko) 원격 애플리케이션 탐색을 위한 웹 서비스
JP2009290861A (ja) プロキシ・ベースの双方向ウェブサービス・ルータ・ゲートウェイ
US20080244705A1 (en) Method and apparatus for extending remote network visibility of the push functionality
US11824942B2 (en) Communication system, information processing apparatus, and information processing method
US7904536B2 (en) Method and system for remote management of customer servers
JP5478546B2 (ja) アクセス制御システム、およびアクセス制御方法
JP7440177B1 (ja) サービス提供システム、ゲートウェイ装置、サービス提供システム構築方法およびプログラム
JP2007128331A (ja) ネットワーク接続機器の自動生成機構
US11729334B2 (en) Communication system, device, and recording medium for remote access to electronic device through relaying device and converter
TWI511596B (zh) 提供遠端存取的通訊系統及其通訊方法
JP2022147233A (ja) ネットワークシステム、接続方法およびプログラム
TWI829487B (zh) 一種用於私有通訊架構的私有物質閘道器連結機制
JP5095529B2 (ja) 異種スマート環境制御方法
JP4873743B2 (ja) 通信管理システム及びソケット管理サーバ及び通信管理方法
JP2023009346A (ja) システム、情報処理装置、仲介方法およびプログラム
JP5758461B2 (ja) 通信方法、外部情報処理装置、内部情報処理装置及びプログラム
JP6100376B2 (ja) 中継処理装置、中継処理方法、およびプログラム
JP2022133817A (ja) 通信システム、通信管理方法、及びプログラム
JP5444951B2 (ja) 電子機器の動作設定方法、および電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231102

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240208

R151 Written notification of patent or utility model registration

Ref document number: 7440177

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151