(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024019194
(43)【公開日】2024-02-08
(54)【発明の名称】サービス連携システム
(51)【国際特許分類】
H04L 69/08 20220101AFI20240201BHJP
【FI】
H04L69/08
【審査請求】有
【請求項の数】2
【出願形態】OL
(21)【出願番号】P 2023197202
(22)【出願日】2023-11-21
(62)【分割の表示】P 2021034401の分割
【原出願日】2021-03-04
(71)【出願人】
【識別番号】594146168
【氏名又は名称】JBアドバンスト・テクノロジー株式会社
(74)【代理人】
【識別番号】100092565
【弁理士】
【氏名又は名称】樺澤 聡
(74)【代理人】
【識別番号】100112449
【弁理士】
【氏名又は名称】山田 哲也
(74)【代理人】
【識別番号】100062764
【弁理士】
【氏名又は名称】樺澤 襄
(72)【発明者】
【氏名】浜口 昌也
(72)【発明者】
【氏名】清田 雅之
(72)【発明者】
【氏名】新居田 晃史
(57)【要約】
【課題】不正アクセス等のリスクを回避しつつ外部サービスとユーザのネットワーク上のリソースとを容易に連携させることが可能なサービス連携システムを提供する。
【解決手段】サービス連携システム10は、インターネット11上の連携用サービス16と、ネットワーク13上のソフトウェア21と、を備える。ソフトウェア21は、ファイアウォール15をネットワーク13からインターネット11に通過可能な汎用プロトコルに変換して、リクエストキュー18に保有された外部サービス12からの命令を取得し、かつ、ネットワーク11での命令の実行によりネットワーク11のリソース14から得たデータをレスポンスキュー19に送信する。連携用サービス16は、ソフトウェア21からレスポンスキュー19に送信されたデータを外部サービス12に送信する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
インターネット上のまたは前記インターネットに接続可能な外部サービスから送信された命令を保有するリクエストキューと、前記外部サービスに送信されるデータを保有するレスポンスキューと、を有する、前記インターネット上の連携用サービスと、
前記インターネットに対しファイアウォールにより保護されるユーザのネットワーク上にある複数種類のリソースに対しそれぞれ接続可能な、前記ネットワーク上のソフトウェアと、を備え、
前記ソフトウェアは、前記ファイアウォールを前記ネットワークから前記インターネットに通過可能な汎用プロトコルに変換して、前記リクエストキューに保有された前記外部サービスからの命令を取得し、かつ、前記ネットワークでの前記命令の実行により前記ネットワークのリソースから得たデータを前記レスポンスキューに送信し、
前記連携用サービスは、前記ソフトウェアから前記レスポンスキューに送信された前記データを前記外部サービスに送信する
ことを特徴とするサービス連携システム。
【請求項2】
ソフトウェアは、連携用サービスのリクエストキューに保有された命令のうち、予め前記ソフトウェアに登録された規定の命令のみをネットワークで実行する
ことを特徴とする請求項1記載のサービス連携システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部サービスとユーザのネットワーク上のリソースとを連携させるサービス連携システムに関する。
【背景技術】
【0002】
近年、インターネットが普及したことにより、企業内、企業間における情報のやりとり、あるいは企業外部で提供される様々なサービスを利用できるようになり、業務の生産性が飛躍的に向上している。
【0003】
また、昨今ではサービスを単に利用するだけでなく、使用者で使用している様々なシステムをインターネット上の外部サービスと連携したり、その外部サービスを複数組み合わせて連携したりして利用することで、従来よりも業務効率を向上させることが可能となっている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
使用者のシステムを、インターネット上の外部サービスと連携するために使用者の企業内ネットワークのシステムと外部サービスとを接続する必要がある。
【0006】
その場合、企業内ネットワークのセキュリティポリシーが各企業によって異なることから、外部サービスの仕様に応じて企業内ネットワークの仕様やファイアウォールの設定を変更する必要があるものの、安易な変更は情報漏洩、改ざん、不正アクセス等のリスクがある。
【0007】
また、これらのリスクを回避するために、VPN(Virtual Private Network)と呼ばれる機器の設置を行う方法もある。しかしながら、VPNの設定には専門性が要求されるため、VPNを用いる場合、専門知識を持つ人材がいない企業では専門のベンダに依頼する等の対応が必要となる。
【0008】
本発明は、このような点に鑑みなされたもので、不正アクセス等のリスクを回避しつつ外部サービスとユーザのネットワーク上のリソースとを容易に連携させることが可能なサービス連携システムを提供することを目的とする。
【課題を解決するための手段】
【0009】
請求項1記載のサービス連携システムは、インターネット上のまたは前記インターネットに接続可能な外部サービスから送信された命令を保有するリクエストキューと、前記外部サービスに送信されるデータを保有するレスポンスキューと、を有する、前記インターネット上の連携用サービスと、前記インターネットに対しファイアウォールにより保護されるユーザのネットワーク上にある複数種類のリソースに対しそれぞれ接続可能な、前記ネットワーク上のソフトウェアと、を備え、前記ソフトウェアは、前記ファイアウォールを前記ネットワークから前記インターネットに通過可能な汎用プロトコルに変換して、前記リクエストキューに保有された前記外部サービスからの命令を取得し、かつ、前記ネットワークでの前記命令の実行により前記ネットワークのリソースから得たデータを前記レスポンスキューに送信し、前記連携用サービスは、前記ソフトウェアから前記レスポンスキューに送信された前記データを前記外部サービスに送信するものである。
【0010】
請求項2記載のサービス連携システムは、請求項1記載のサービス連携システムにおいて、ソフトウェアは、連携用サービスのリクエストキューに保有された命令のうち、予め前記ソフトウェアに登録された規定の命令のみをネットワークで実行するものである。
【発明の効果】
【0011】
本発明によれば、不正アクセス等のリスクを回避しつつ外部サービスとユーザのネットワーク上のリソースとを容易に連携させることが可能になる。
【図面の簡単な説明】
【0012】
【
図1】本発明の一実施の形態のサービス連携システムを模式的に示すブロック図である。
【
図2】同上サービス連携システムの処理フローを示す説明図である。
【
図3】同上サービス連携システムのソフトウェアと連携用サービスとの接続を模式的に示す説明図である。
【発明を実施するための形態】
【0013】
以下、本発明の一実施の形態について、図面を参照して説明する。
【0014】
本実施の形態は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ等の各種コンピュータ、携帯端末等を含む、多数のタイプのコンピューティングシステム構成を有するネットワークコンピューティング環境において実施され得る。
【0015】
図1において、10はサービス連携システムである。サービス連携システム10は、インターネット(パブリッククラウド)11上またはインターネット11に接続可能な外部サービス12と、企業内ネットワーク等のユーザのネットワーク(オンプレミス)13上のリソース14と、を連携させるものである。ここで、ネットワークとは、コンピューティングシステム、モジュール、電子デバイス等の間の電子データの移送を可能にする1つまたは複数のデータリンクとして定義される。ネットワーク13とインターネット11との間には、ファイアウォール15が設置されている。ファイアウォール15は、インターネット11側からネットワーク13側、すなわち外側から内側への不正なアクセス等からネットワーク13を保護するものである。
【0016】
外部サービス12の例としては、各種アプリケーションあるいはバックエンド等のソフトウェア、情報分析や連携等の複数のサービスを統合したソリューションあるいはツール等が含まれる。
【0017】
リソース14の例としては、各種アプリケーション、データベース、サーバ、ストレージ、ファイル、ディレクトリ等が含まれる。
【0018】
また、サービス連携システム10は、外部サービス12と接続可能なインターネット11上の連携用サービス16を備える。連携用サービス16は、外部サービス12に対し、例えば外部サービス12に実装されるアプリケーション・プログラミング・インターフェース(API)を利用して接続可能となっている。当該APIは、任意のAPIとしてよいが、好ましくはREST APIが用いられる。
【0019】
連携用サービス16には、好ましくは、リクエストキュー18と、レスポンスキュー19と、が設定される。リクエストキュー18は、外部サービス12から送信された命令を保有するキューである。レスポンスキュー19は、外部サービス12へと返されるデータを保有するキューである。
【0020】
さらに、サービス連携システム10は、連携用サービス16と通信可能なソフトウェア21を備える。ソフトウェア21は、ネットワーク13に導入される。例えば、ソフトウェア21は、ネットワーク13において任意アクセス可能なサーバ等に導入される。ソフトウェア21は、連携用サービス16に対して、ユーザのネットワーク13からインターネット11に向けてファイアウォール15を通過可能に設定された、HTTP等の汎用プロトコルを用いて通信可能となっている。この通信には、連携用サービス16に設定された環境固有のURLが接続口として用いられる。
【0021】
ソフトウェア21には、第一のプログラム部であるコントローラ24と、第二のプログラム部であるリクエスタ25と、レスポンスキュー26と、が設定される。コントローラ24は、連携用サービス16と通信する通信部または制御部である。コントローラ24は、連携用サービス16のリクエストキュー18に保有された、ソフトウェア21に対する命令の確認と受信とを行う。コントローラ24には、実行可能な規定の命令(規定及び許可された命令)が予め記述されて設定されている。
【0022】
リクエスタ25は、コントローラ24から受け取った命令を実行し、リソース14からの結果を受け取る要求処理部である。リクエスタ25は、リソース14毎に予め備えられるドライバに対し、APIを利用して接続可能となっている。当該APIとしては、任意のAPIとしてよい。なお、リクエスタ25は、
図1中では1つにまとめて示しているが、リソース14の種類毎に設定される。
【0023】
レスポンスキュー26は、リクエスタ25によって命令を実行したリソース14から受け取った結果を保有するキューである。
【0024】
次に、本実施の形態の動作について、
図2および
図3も参照しながら説明する。
【0025】
概略として、外部サービス12が、情報を供するまたは要求を処理するために、ネットワーク13内に置かれたリソース14へのアクセスを必要とする場合、外部サービス12が、ネットワーク13上のリソース14にアクセスしようと決定する(ステップS1)と、外部サービス12からインターネット11上の連携用サービス16へと命令が送信される(ステップS2)。
【0026】
連携用サービス16では、外部サービス12から送信された命令をリクエストキュー18に保有する。
【0027】
ソフトウェア21のコントローラ24は、連携用サービス16のリクエストキュー18に対して環境固有のURLを指定することで接続し、リクエストキュー18に送信または保有される命令をネットワーク13側から取得しにいく。すなわち、ソフトウェア21は、連携用サービス16のリクエストキュー18に対し、ファイアウォール15の内側から外側へと定期的に通信し、命令の有無を確認する(ステップS3)。
【0028】
このとき、ソフトウェア21では、コントローラ24が、連携用サービス16のリクエストキュー18に対して所定の命令待機時間T1の間、命令を待つ。この命令待機時間T1としては、例えば30000ms等が設定され、コントローラ24と連携用サービス16のリクエストキュー18との接続が命令待機時間T1に亘り継続する(コネクションが長く張られる)ようにしている。
【0029】
命令待機時間T1が過ぎるまで命令がない場合、ソフトウェア21(コントローラ24)は、連携用サービス16(リクエストキュー18)との通信(コネクション)を一旦遮断し、所定の待機時間T2待機した後、連携用サービス16のリクエストキュー18に対して命令を再度確認する。待機時間T2は、命令待機時間T1よりも短く設定され、例えば200ms等が設定される。したがって、コントローラ24は、連携用サービス16との通信を遮断する毎に待機時間T2が経過した後に再度連携用サービス16と通信を接続する。すなわち、ソフトウェア21は、連携用サービス16に対して命令の有無を定期的に所定の命令待機時間T1に亘り確認する。
【0030】
接続時にリクエストキュー18に命令がすでに保有されている場合には、ソフトウェア21のコントローラ24は、命令を即時に受け取る。また、リクエストキュー18に対して命令を待つ間、すなわちコネクションを張っている間にリクエストキュー18に命令が送信された場合には、コントローラ24はその命令を即時に受け取る。
【0031】
そして、ソフトウェア21では、命令を実行する(ステップS4)。より詳細に、ソフトウェア21では、コントローラ24が、リクエストキュー18から受け取った命令をリクエスタ25に送信し、リクエスタ25がコントローラ24から送信された命令を実行する。命令は、例えばデータベースを制御する言語、アセンブリ言語などの中間フォーマット命令等、プロセッサによる直接実行の前に何らかの変換(コンパイル等)を受けるバイナリまたは命令、あるいはソースコード、スクリプト言語でもよい。
【0032】
ソフトウェア21のリクエスタ25が命令を実行し、リソース14が結果をソフトウェア21に送信すると(ステップS5)、ソフトウェア21は、その結果を汎用プロトコルによって連携用サービス16に送信し(ステップS6)、さらに連携用サービス16が結果を外部サービス12に送信する(ステップS7)。
【0033】
より詳細に、ソフトウェア21では、リクエスタ25が対応するリソース14からの結果を受け取ってレスポンスキュー26に追加する。次いで、レスポンスキュー26は、追加された結果を、環境固有のURLを指定することで接続した連携用サービス16のレスポンスキュー19に対し、汎用プロトコルによってデータとして即時追加する。
【0034】
レスポンスキュー19に追加されたデータは、連携用サービス16のレスポンスキュー19から外部サービス12へと即時返される。
【0035】
なお、
図2においては、ソフトウェア21が連携用サービス16に命令を確認する間にステップS5~S7の処理が完了するように示しているが、ソフトウェア21が連携用サービス16に命令を確認するタイミングに拘らず、ステップS5~S7の処理を実行してよい。
【0036】
この結果、インターネット11上でホストされた外部サービス12は、サービス連携システム10を介在させることにより、ネットワーク13でローカルに実行する場合と同様に、ネットワーク13上のリソース14と連携可能となる。
【0037】
このように、本実施の形態のサービス連携システム10においては、外部サービス12と接続可能なインターネット11上の連携用サービス16に設定された環境固有のURLを接続口として、ユーザのネットワーク13上のソフトウェア21により、汎用プロトコルを用いて接続し、連携用サービス16にある外部サービス12からの命令を取得するとともに取得した命令をユーザのネットワーク13で実行してリソース14から得た結果を連携用サービス16に送信する。そのため、基本的にファイアウォール15の内側のソフトウェア21から外側の連携用サービス16へのアクセスが汎用プロトコルのみによってなされ、ファイアウォール15の外側から内側への直接アクセスが生じない。したがって、一般的に内側から外側へのアクセスと比較して外側から内側へのアクセスが困難なファイアウォール15に対し、特別な設定を施すことなく、すなわちユーザのネットワーク13の仕様を変えることなく、あるいは、VPN等の特別な追加設備を導入することなく、ユーザのネットワーク13に対する不正アクセスを防止しながら、ネットワーク13のリソース14とインターネット11の外部サービス12とを容易に連携可能となる。
【0038】
また、ソフトウェア21が、連携用サービス16に対して命令の有無を所定の命令待機時間確認し、この確認中に命令がある場合には、命令を取得してユーザのネットワーク13で実行するので、都度連携用サービス16に対して接続をする場合と比較して、インターネット11およびネットワーク13への負荷を抑制しつつ、命令の即時実行が可能となる。
【0039】
命令を保有するリクエストキュー18を連携用サービス16に設定することで、仮に命令が伝送時に喪失した場合でも、リクエストキュー18から再取得が可能になる。そのため、経路の品質が保証されていないインターネット11を利用した通信であっても、命令を喪失しにくくなる。
【0040】
予めソフトウェア21に登録された規定の命令のみを実行することで、悪意のある命令からユーザのネットワーク13を保護でき、ネットワーク13のセキュリティを向上できる。
【符号の説明】
【0041】
10 サービス連携システム
11 インターネット
12 外部サービス
13 ネットワーク
14 リソース
15 ファイアウォール
16 連携用サービス
18 リクエストキュー
19 レスポンスキュー
21 ソフトウェア