(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-05
(45)【発行日】2024-03-13
(54)【発明の名称】データ連携システムおよびAPIプラットフォーム
(51)【国際特許分類】
G06F 9/50 20060101AFI20240306BHJP
【FI】
G06F9/50 120A
(21)【出願番号】P 2020055178
(22)【出願日】2020-03-25
【審査請求日】2023-02-24
(73)【特許権者】
【識別番号】000006150
【氏名又は名称】京セラドキュメントソリューションズ株式会社
(74)【代理人】
【識別番号】100140796
【氏名又は名称】原口 貴志
(72)【発明者】
【氏名】中島 孝記
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開2017-182596(JP,A)
【文献】米国特許出願公開第2019/0108068(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
情報システムが保持しているデータを収集するデータ収集システムと、
前記データ収集システムによって収集されたデータを蓄積するデータ蓄積システムと、
前記データ蓄積システムによって蓄積されているデータに基づいたデータを前記データ蓄積システムから取得するためのAPI(Application Program Interface)を提供するAPIプラットフォームと
を備え、
前記APIプラットフォームは、前記APIの利用の要求に応じて前記データ蓄積システムからデータを取得する処理の未実行分の数が、前記処理の能力を増加させる特定の条件を満たす場合に、前記能力を増加させ
、
前記APIプラットフォームは、前記処理にかかると予測される時間である予測処理時間の程度を示す予測処理時間レベルと、前記要求に対して応答することが予測されるデータの量である予測応答データ量の程度を示す予測応答データ量レベルとの少なくとも1つに基づいた前記処理の分類毎に前記能力を変更させることを特徴とするデータ連携システム。
【請求項2】
前記APIプラットフォームは、前記数が、前記能力を減少させる特定の条件を満たす場合に、前記能力を減少させることを特徴とする請求項1に記載のデータ連携システム。
【請求項3】
情報システムが保持しているデータを収集するデータ収集システムによって収集されたデータを蓄積するデータ蓄積システムによって蓄積されているデータに基づいたデータを前記データ蓄積システムから取得するためのAPI(Application Program Interface)を提供するAPIプラットフォームであって、
前記APIの利用の要求に応じて前記データ蓄積システムからデータを取得する処理の未実行分の数が、前記処理の能力を増加させる特定の条件を満たす場合に、前記能力を増加させ、
前記処理にかかると予測される時間である予測処理時間の程度を示す予測処理時間レベルと、前記要求に対して応答することが予測されるデータの量である予測応答データ量の程度を示す予測応答データ量レベルとの少なくとも1つに基づいた前記処理の分類毎に前記能力を変更させることを特徴とする
APIプラットフォーム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の情報システムが保持しているデータを収集して蓄積するデータ連携システムおよびAPIプラットフォームに関する。
【背景技術】
【0002】
従来、SaaS(Software as a Service)間でのデータ連携処理に対応した所定アルゴリズムの実行結果を取得するAPI(Application Program Interface)を提供するシステムが知られている(例えば、特許文献1参照。)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1には、APIの利用の要求に応じて実行する処理の負担に応じた振る舞いについては記載されていない。
【0005】
そこで、本発明は、APIの利用の要求に応じて実行する処理の負担に応じて振る舞うことができるデータ連携システムおよびAPIプラットフォームを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明のデータ連携システムは、情報システムが保持しているデータを収集するデータ収集システムと、前記データ収集システムによって収集されたデータを蓄積するデータ蓄積システムと、前記データ蓄積システムによって蓄積されているデータに基づいたデータを前記データ蓄積システムから取得するためのAPI(Application Program Interface)を提供するAPIプラットフォームとを備え、前記APIプラットフォームは、前記APIの利用の要求に応じて前記データ蓄積システムからデータを取得する処理の未実行分の数が、前記処理の能力を増加させる特定の条件を満たす場合に、前記能力を増加させることを特徴とする。
【0007】
この構成により、本発明のデータ連携システムは、APIの利用の要求に応じてデータ蓄積システムからデータを取得する処理の未実行分の数が、この処理の能力を増加させる特定の条件を満たす場合に、この処理の能力を増加させるので、APIの利用の要求に応じて実行する処理の負担に応じて振る舞うことができる。
【0008】
本発明のデータ連携システムにおいて、前記APIプラットフォームは、前記数が、前記能力を減少させる特定の条件を満たす場合に、前記能力を減少させても良い。
【0009】
この構成により、本発明のデータ連携システムは、APIの利用の要求に応じてデータ蓄積システムからデータを取得する処理の未実行分の数が、この処理の能力を減少させる特定の条件を満たす場合に、この処理の能力を減少させるので、APIの利用の要求に応じて実行する処理の負担に応じて振る舞うことができる。
【0010】
本発明のデータ連携システムにおいて、前記APIプラットフォームは、前記処理にかかると予測される時間である予測処理時間の程度を示す予測処理時間レベルと、前記要求に対して応答することが予測されるデータの量である予測応答データ量の程度を示す予測応答データ量レベルとの少なくとも1つに基づいた前記処理の分類毎に前記能力を変更させても良い。
【0011】
この構成により、本発明のデータ連携システムは、APIの利用の要求に応じてデータ蓄積システムからデータを取得する処理の、予測処理時間レベルおよび予測応答データ量レベルの少なくとも1つに基づいた分類毎に、この処理の能力を変更させるので、この処理を、この処理の予測処理時間レベルおよび予測応答データ量レベルの少なくとも1つに応じた適切なサーバーによって実行することができる。したがって、本発明のデータ連携システムは、APIの利用の要求に応じて実行する処理の負担に応じて振る舞うことができる。
【0012】
本発明のAPIプラットフォームは、情報システムが保持しているデータを収集するデータ収集システムによって収集されたデータを蓄積するデータ蓄積システムによって蓄積されているデータに基づいたデータを前記データ蓄積システムから取得するためのAPI(Application Program Interface)を提供するAPIプラットフォームであって、前記APIの利用の要求に応じて前記データ蓄積システムからデータを取得する処理の未実行分の数が、前記処理の能力を増加させる特定の条件を満たす場合に、前記能力を増加させることを特徴とする。
【0013】
この構成により、本発明のAPIプラットフォームは、APIの利用の要求に応じてデータ蓄積システムからデータを取得する処理の未実行分の数が、この処理の能力を増加させる特定の条件を満たす場合に、この処理の能力を増加させるので、APIの利用の要求に応じて実行する処理の負担に応じて振る舞うことができる。
【発明の効果】
【0014】
本発明のデータ連携システムおよびAPIプラットフォームは、APIの利用の要求に応じて実行する処理の負担に応じて振る舞うことができる。
【図面の簡単な説明】
【0015】
【
図1】本発明の一実施の形態に係るシステムのブロック図である。
【
図2】
図1に示すAPIプラットフォームのブロック図である。
【
図3】
図2に示すAPIコントローラーによって取得される予測処理時間レベルおよび予測応答データ量レベルの組み合わせのパターンの一例を示す図である。
【
図4】
図2に示すキューの識別情報であるキューIDと、予測処理時間レベルおよび予測応答データ量レベルの組み合わせのパターンとの対応関係の一例を示す図である。
【
図5】外部システムからのAPIの利用の要求に対して応答する場合の
図1に示すシステムの概略の動作のシーケンス図である。
【
図6】処理要求メッセージを格納するキューを特定する場合の
図1に示すシステムの動作のシーケンス図である。
【
図7】外部システムからAPIプラットフォームへのAPIの利用の要求の内容と、処理時間および応答データ量との相関関係を機械学習する場合の
図1に示すシステムの動作のシーケンス図である。
【
図8】バックエンドの数を増加させる場合の
図2に示すAPIコントローラーの動作のフローチャートである。
【
図9】バックエンドの数を減少させる場合の
図2に示すAPIコントローラーの動作のフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について、図面を用いて説明する。
【0017】
まず、本発明の一実施の形態に係るシステムの構成について説明する。
【0018】
図1は、本実施の形態に係るシステム10のブロック図である。
【0019】
図1に示すように、システム10は、データを生み出すデータソース部20と、データソース部20によって生み出されたデータを連携するデータ連携システム30とを備えている。
【0020】
データソース部20は、データを生み出す情報システム21を備えている。情報システム21は、情報システム21の構成や設定を保存する構成管理サーバー21aを備えている。データソース部20は、情報システム21以外にも、少なくとも1つの情報システムを備えていても良い。情報システムの例としては、MFP(Multifunction Peripheral)、プリンター専用機などの画像形成装置を遠隔で管理する遠隔管理システムなどのIoT(Internet of Things)システムと、ERP(Enterprise Resource Planning)、生産管理システムなどの社内システムとが存在する。情報システムのそれぞれは、1台のコンピューターによって構成されても良いし、複数台のコンピューターによって構成されても良い。情報システムのそれぞれは、パブリック・クラウド上に構築されても良い。情報システムは、構造化データのファイルを保持しても良い。情報システムは、非構造化データのファイルを保持しても良い。情報システムは、構造化データのデータベースを保持しても良い。
【0021】
データソース部20は、情報システムが保持している、構造化データまたは非構造化データのファイルを取得して、取得したファイルをデータ連携システム30の後述のパイプラインに送信するデータ収集システムとしてのPOSTコネクター22を備えている。データソース部20は、POSTコネクター22と同様の構成のPOSTコネクターをPOSTコネクター22以外に少なくとも1つ備えても良い。POSTコネクターは、POSTコネクター自身がファイルを取得する情報システムを構成するコンピューターによって構成されても良い。なお、POSTコネクターは、データ連携システム30の構成でもある。
【0022】
データソース部20は、情報システムが保持している構造化データのデータベースから構造化データを取得して、取得した構造化データをデータ連携システム30の後述のパイプラインに送信するデータ収集システムとしてのPOSTエージェント23を備えている。データソース部20は、POSTエージェント23と同様の構成のPOSTエージェントをPOSTエージェント23以外に少なくとも1つ備えても良い。POSTエージェントは、POSTエージェント自身が構造化データを取得する情報システムを構成するコンピューターによって構成されても良い。なお、POSTエージェントは、データ連携システム30の構成でもある。
【0023】
データソース部20は、情報システムが保持しているデータに基づいて連携用の構造化データを生成するデータ収集システムとしてのGET用エージェント24を備えている。データソース部20は、GET用エージェント24と同様の構成のGET用エージェントをGET用エージェント24以外に少なくとも1つ備えても良い。GET用エージェントは、連携用の構造化データの生成の元になったデータを保持している情報システムを構成するコンピューターによって構成されても良い。なお、GET用エージェントは、データ連携システム30の構成でもある。
【0024】
データ連携システム30は、データソース部20によって生み出されたデータを蓄積するデータ蓄積システム40と、データ蓄積システム40に蓄積されているデータを利用するアプリケーション部50と、データ蓄積システム40およびアプリケーション部50に対する各種の制御を実行する制御サービス部60とを備えている。
【0025】
データ蓄積システム40は、データソース部20によって生み出されたデータを蓄積するパイプライン41を備えている。データ蓄積システム40は、パイプライン41以外にも、少なくとも1つのパイプラインを備えていても良い。情報システムにおけるデータの構成が情報システム毎に異なる可能性があるので、データ蓄積システム40は、基本的に、情報システム毎にパイプラインを備えている。パイプラインのそれぞれは、1台のコンピューターによって構成されても良いし、複数台のコンピューターによって構成されても良い。
【0026】
データ蓄積システム40は、情報システムが保持している、構造化データまたは非構造化データのファイルを取得して、取得したファイルをパイプラインに連携するデータ収集システムとしてのGETコネクター42を備えている。データ蓄積システム40は、GETコネクター42と同様の構成のGETコネクターをGETコネクター42以外に少なくとも1つ備えても良い。GETコネクターは、GETコネクター自身がファイルを連携するパイプラインを構成するコンピューターによって構成されても良い。
【0027】
なお、システム10は、構造化データまたは非構造化データのファイルがデータ蓄積システム40側から取得されることに対応していない情報システムに対しては、データソース部20にPOSTコネクターを備える。一方、システム10は、構造化データまたは非構造化データのファイルがデータ蓄積システム40側から取得されることに対応している情報システムに対しては、データ蓄積システム40にGETコネクターを備える。
【0028】
データ蓄積システム40は、GET用エージェントによって生成された構造化データを取得して、取得した構造化データをパイプラインに連携するデータ収集システムとしてのGETエージェント43を備えている。データ蓄積システム40は、GETエージェント43と同様の構成のGETエージェントをGETエージェント43以外に少なくとも1つ備えても良い。GETエージェントは、GETエージェント自身が構造化データを連携するパイプラインを構成するコンピューターによって構成されても良い。
【0029】
なお、システム10は、構造化データがデータ蓄積システム40側から取得されることに対応していない情報システムに対しては、データソース部20にPOSTエージェントを備える。一方、システム10は、構造化データがデータ蓄積システム40側から取得されることに対応している情報システムに対しては、データソース部20にGET用エージェントを備えるとともに、データ蓄積システム40にGETエージェントを備える。
【0030】
データ蓄積システム40は、複数のパイプラインによって蓄積されたデータを、例えばSQLなどのデータベース言語などのクエリー言語で検索や集計が可能な形態に変換するデータ変換処理として最終変換処理を実行するデータ変換システムとしてのビッグデータ解析部44を備えている。ビッグデータ解析部44は、最終変換処理を実行したデータに対して、アプリケーション部50側からの検索要求や集計要求に応じて検索や集計を実行することも可能である。ビッグデータ解析部44は、1台のコンピューターによって構成されても良いし、複数台のコンピューターによって構成されても良い。
【0031】
最終変換処理は、複数の情報システムのデータを統合するデータ統合処理をデータ変換処理として含んでいても良い。アジアに配置されている多数の画像形成装置を遠隔で管理するためにアジアに配置されている遠隔管理システムと、ヨーロッパに配置されている多数の画像形成装置を遠隔で管理するためにヨーロッパに配置されている遠隔管理システムと、アメリカに配置されている多数の画像形成装置を遠隔で管理するためにアメリカに配置されている遠隔管理システムとをシステム10が情報システムとして備えている場合、これら3つの遠隔管理システムは、それぞれ、遠隔管理システム自身が管理している画像形成装置を管理するデバイス管理テーブルを備えている。デバイス管理テーブルは、画像形成装置毎に付与したIDに対応付けて、画像形成装置の各種の情報を示す情報である。ここで、3つの遠隔管理システムがそれぞれ独自にデバイス管理テーブルを備えているので、3つの遠隔管理システムのデバイス管理テーブル間においては、別々の画像形成装置に同一のIDが付与されている可能性がある。そこで、ビッグデータ解析部44は、3つの遠隔管理システムのデバイス管理テーブルを統合して1つのデバイス管理テーブルを生成する場合に、画像形成装置のIDを重複が生じないように付与し直す。
【0032】
アプリケーション部50は、ビッグデータ解析部44によって管理されているデータを利用して、例えばデータの表示や、データの分析など、利用者によって指示された特定の動作を実行するアプリケーションサービス51を備えている。アプリケーション部50は、アプリケーションサービス51以外にも、少なくとも1つのアプリケーションサービスを備えていても良い。アプリケーションサービスのそれぞれは、1台のコンピューターによって構成されても良いし、複数台のコンピューターによって構成されても良い。アプリケーションサービスは、例えば、BI(Business Intelligence)ツール、SaaS(Software as a Service)サーバーなどである。
【0033】
アプリケーション部50は、ビッグデータ解析部44によって管理されているデータを利用して特定の動作を実行するAPI(Application Program Interface)を提供するAPIプラットフォーム52を備えている。APIプラットフォーム52は、1台のコンピューターによって構成されても良いし、複数台のコンピューターによって構成されても良い。APIプラットフォーム52によって提供されるAPIは、システム10の外部の、例えば、BIツール、SaaSサーバーなどのシステムから呼び出されても良いし、アプリケーション部50のアプリケーションサービスから呼び出されても良い。APIプラットフォーム52によって提供されるAPIは、データ蓄積システム40によって蓄積されているデータに基づいたデータをデータ蓄積システム40から取得するためのAPIである。例えば、APIプラットフォーム52によって提供されるAPIとしては、画像形成装置のトナーなどの消耗品の残量が特定の量以下である場合に消耗品を発注する、システム10の外部の消耗品発注システムに、遠隔管理システムによって画像形成装置から収集された消耗品の残量のデータを送信するAPIと、画像形成装置の故障を予測する、システム10の外部の故障予測システムに、遠隔管理システムによって画像形成装置から収集された各種のデータを送信するAPIと、遠隔管理システムによって画像形成装置から収集された、印刷枚数を示すカウンター情報を、システム10の外部のシステムに送信するAPIと、システム10の利用者の利用状況を示すデータをシステム10の外部のシステムに送信するAPIと、システム10が管理しているデータに基づいた任意のデータを取得するための検索クエリーを受け付けるためのAPIとが存在する。
【0034】
以下、APIプラットフォーム52の外部のシステムを単に外部システムという。外部システムには、システム10の外部のシステムや、アプリケーション部50のアプリケーションサービスが含まれる。
【0035】
図2は、APIプラットフォーム52のブロック図である。
【0036】
図2に示すように、APIプラットフォーム52は、外部システムからのAPIの利用の要求を受け付けるフロントエンド部70と、フロントエンド部70が受け付けた要求に応じた応答データを作成するデータ作成部80とを備えている。
【0037】
フロントエンド部70は、外部システムに公開されるエンドポイントであるLB(Load Balancer)71と、外部システムとの接続を確立するフロントエンドProxy72とを備えている。フロントエンド部70は、フロントエンドProxy72以外にも、フロントエンドProxy72と同様の構成のフロントエンドProxyを少なくとも1つ備えていても良い。
【0038】
LB71は、外部システムからのAPIの利用の要求をラウンドロビン方式によっていずれかのフロントエンドProxyに通知する。
【0039】
フロントエンドProxy72は、LB71から通知された、APIの利用の要求をラウンドロビン方式によって、後述の、いずれかのAPIサーバーに通知する。
【0040】
データ作成部80は、データ作成部インスタンス81を備えている。データ作成部80は、データ作成部インスタンス81以外にも、データ作成部インスタンス81と同様の構成のデータ作成部インスタンスを少なくとも1つ備えていても良い。
【0041】
データ作成部インスタンス81は、ビッグデータ解析部44(
図1参照。)によって管理されているデータを利用して特定の動作を実行するAPIを提供するAPIサーバー82を備えている。データ作成部インスタンス81は、APIサーバー82以外にも、APIサーバー82と同様の構成のAPIサーバーを少なくとも1つ備えていても良い。
【0042】
データ作成部インスタンス81は、外部システムからのAPIの利用の要求に対して応答するデータの取得の処理にかかると予測される時間(以下「予測処理時間」という。)の程度を示す予測処理時間レベルと、外部システムからのAPIの利用の要求に対して応答することが予測されるデータの量(以下「予測応答データ量」という。)の程度を示す予測応答データ量レベルとを制御サービス部60(
図1参照。)から取得するAPIコントローラー83を備えている。
【0043】
図3は、APIコントローラー83によって取得される予測処理時間レベルおよび予測応答データ量レベルの組み合わせのパターンの一例を示す図である。
【0044】
図3に示す例において、予測処理時間レベルは、予測処理時間が特定の範囲内であることを示す「普通」と、予測処理時間が特定の範囲の上限より長いことを示す「長」と、予測処理時間が特定の範囲の下限より短いことを示す「短」とを含んでいる。予測応答データ量レベルは、予測応答データ量が特定の範囲内であることを示す「普通」と、予測応答データ量が特定の範囲の上限より多いことを示す「多」と、予測応答データ量が特定の範囲の下限より少ないことを示す「少」とを含んでいる。
図3に示す例において、予測処理時間レベルおよび予測応答データ量レベルの組み合わせのパターンは、パターンA~パターンIの9パターンである。
【0045】
図2に示すように、データ作成部インスタンス81は、外部システムから利用が要求されたAPIに応じた処理の要求を示す処理要求メッセージを格納するキュー84を備えている。データ作成部インスタンス81は、キュー84以外にも、キュー84と同様の構成のキューを少なくとも1つ備えていても良い。キューは、予測処理時間レベルおよび予測応答データ量レベルの組み合わせのパターンに基づいた分類毎に設けられている。
【0046】
図4は、キューの識別情報であるキューIDと、予測処理時間レベルおよび予測応答データ量レベルの組み合わせのパターンとの対応関係の一例を示す図である。
【0047】
図4に示すように、予測処理時間レベルおよび予測応答データ量レベルの組み合わせのパターンに基づいた分類は、例えば、パターンAおよびパターンDが同一の分類でも良いし、パターンHおよびパターンIが同一の分類でも良い。なお、
図4は、一部のキューについての情報が省略されて描かれている。
【0048】
図2に示すように、データ作成部インスタンス81は、キュー84に格納されている処理要求メッセージが示す、処理の要求をビッグデータ解析部44(
図1参照。)に送信するサーバーインスタンスであるバックエンド85を備えている。データ作成部インスタンス81は、バックエンド85以外にも、バックエンド85と同様の構成のバックエンドを少なくとも1つ備えていても良い。バックエンドは、キュー毎に設けられている。バックエンドは、1つのキューに対して複数備えても良い。キューに格納された処理要求メッセージは、このキューに対応付けられているバックエンドのうち、処理要求メッセージを処理可能な状態のバックエンドによって、このキューから順番に取り出される。
【0049】
図1に示すように、制御サービス部60は、データソース部20、データ蓄積システム40およびアプリケーション部50におけるデータに対する各段階の処理を監視する処理監視システムとしてのパイプライン・オーケストレーター61を備えている。パイプライン・オーケストレーター61は、1台のコンピューターによって構成されても良いし、複数台のコンピューターによって構成されても良い。
【0050】
パイプライン・オーケストレーター61は、外部システムからAPIプラットフォーム52へのAPIの利用の要求毎に、この要求に対して応答するデータの取得の処理にかかった時間(以下「処理時間」という。)と、この要求に対して応答したデータの量(以下「応答データ量」という。)とを履歴として記憶する。そして、パイプライン・オーケストレーター61は、外部システムからAPIプラットフォーム52へのAPIの利用の要求の内容と、処理時間および応答データ量との相関関係を機械学習することによって、外部システムからAPIプラットフォーム52へのAPIの利用の要求の内容に対して、予測処理時間レベルおよび予測応答データ量レベルを判定することが可能である。
【0051】
制御サービス部60は、データ蓄積システム40の構成や設定を保存し、必要に応じて自動的にデプロイを実行する構成管理サーバー62を備えている。構成管理サーバー62は、1台のコンピューターによって構成されても良いし、複数台のコンピューターによって構成されても良い。構成管理サーバー62は、データ連携システム30の構成を変更する構成変更システムを構成している。
【0052】
制御サービス部60は、情報システムの構成管理サーバーに接続し、情報システムにおけるデータベースや非構造化データに関する構成の変更、すなわち、情報システムにおけるデータの構成の変更を検出するための情報を収集する構成管理ゲートウェイ63を備えている。構成管理ゲートウェイ63は、1台のコンピューターによって構成されても良いし、複数台のコンピューターによって構成されても良い。
【0053】
制御サービス部60は、情報システムなどの各システム間を連携するために必要な鍵情報や接続文字列などのセキュリティー情報を暗号化して保管するKey管理サービス64を備えている。Key管理サービス64は、1台のコンピューターによって構成されても良いし、複数台のコンピューターによって構成されても良い。
【0054】
制御サービス部60は、データ蓄積システム40やアプリケーション部50からの要求を受け付ける管理API65を備えている。管理API65は、1台のコンピューターによって構成されても良いし、複数台のコンピューターによって構成されても良い。
【0055】
制御サービス部60は、アプリケーション部50のアプリケーションサービスの認証認可を実行する認証認可サービス66を備えている。認証認可サービス66は、1台のコンピューターによって構成されても良いし、複数台のコンピューターによって構成されても良い。認証認可サービス66は、例えば、データ蓄積システム40に蓄積されている情報システムのデータの最新化を要求することをアプリケーションサービスが許可されているか否かを確認することができる。
【0056】
次に、外部システムからのAPIの利用の要求に対して応答する場合のシステム10の動作について説明する。
【0057】
図5は、外部システム90からのAPIの利用の要求に対して応答する場合のシステム10の概略の動作のシーケンス図である。
【0058】
図5に示すように、外部システム90は、特定のAPIの利用の要求を実行する場合、TCP(Transmission Control Protocol)/IP(Internet Protocol)接続の確立をフロントエンド部70のLB71に要求する(S101)。ここで、特定のAPIの利用の要求は、例えば、HTTPS(Hypertext Transfer Protocol Secure)で実行される。LB71は、S101における要求を受けると、S101における要求を通知するフロントエンドProxyをラウンドロビン方式によって特定し、特定したフロントエンドProxyにS101における要求を通知する。以下においては、説明を簡略化するために、S101における要求がLB71から通知されたフロントエンドProxyがフロントエンドProxy72であるものとする。
【0059】
フロントエンドProxy72は、S101における要求がLB71から通知されると、外部システム90との間でTCP/IP接続を確立する(S102)。
【0060】
外部システム90は、システム10とのTCP/IP接続が確立されると、確立されたTCP/IP接続を介して特定のAPIの利用の要求をフロントエンドProxy72に通知する(S103)。
【0061】
フロントエンドProxy72は、S103においてLB71を介して外部システム90から通知された、APIの利用の要求をラウンドロビン方式によって、いずれかのAPIサーバーに通知する(S104)。以下においては、説明を簡略化するために、S104において要求がフロントエンドProxy72から通知されたAPIサーバーがAPIサーバー82であるものとする。
【0062】
APIサーバー82は、S104における通知を受けると、S104において通知された要求を解釈する(S105)。
【0063】
図6は、処理要求メッセージを格納するキューを特定する場合のシステム10の動作のシーケンス図である。
【0064】
APIサーバー82は、S105における解釈を実行すると、
図6に示すように、S105において解釈した要求の予測処理時間レベルおよび予測応答データ量レベルをAPIコントローラー83に問い合わせる(S121)。
【0065】
APIコントローラー83は、S121における問い合わせを受けると、S121における問い合わせを制御サービス部60の管理API65に通知する(S122)。
【0066】
管理API65は、S122における通知を受けると、S122において通知された問い合わせをパイプライン・オーケストレーター61に通知する(S123)。
【0067】
パイプライン・オーケストレーター61は、S123における通知を受けると、S123において通知された問い合わせの対象の要求、すなわち、S105においてAPIサーバー82によって解釈された要求の内容に対して、予測処理時間レベルおよび予測応答データ量レベルを判定する(S124)。
【0068】
次いで、パイプライン・オーケストレーター61は、S124における判定の結果、すなわち、S124において判定した予測処理時間レベルおよび予測応答データ量レベルを管理API65に通知する(S125)。
【0069】
次いで、管理API65は、S125においてパイプライン・オーケストレーター61から通知された、判定の結果をAPIコントローラー83に通知する(S126)。
【0070】
次いで、APIコントローラー83は、S126において管理API65から通知された、判定の結果、すなわち、予測処理時間レベルおよび予測応答データ量レベルをAPIサーバー82に返答する(S127)。
【0071】
APIサーバー82は、S127における返答を受けると、S127において返答された予測処理時間レベルおよび予測応答データ量レベルの組み合わせのパターンに対応付けられているキューを特定する(S128)。
【0072】
以下、説明を簡略化するために、S128において特定されたキューがキュー84であるものとする。
【0073】
図5に示すように、APIサーバー82は、S105における解釈を実行した後、S105において解釈した要求を示す処理要求メッセージを、
図6に示す動作によって特定したキュー84に格納する(S106)。ここで、APIサーバー82は、キュー84に格納する処理要求メッセージをキュー84に格納したAPIサーバーとして、APIサーバー82自身の識別情報を、キュー84に格納する処理要求メッセージに含める。
【0074】
S106においてキュー84に格納された処理要求メッセージは、キュー84に対応付けられている、いずれかのバックエンドによって、キュー84から取り出される(S107)。以下、説明を簡略化するために、S107においてキュー84から処理要求メッセージを取り出したバックエンドがバックエンド85であるものとする。
【0075】
バックエンド85は、S107においてキュー84から処理要求メッセージを取り出すと、この処理要求メッセージが示す、処理の要求をビッグデータ解析部44に送信する(S108)。
【0076】
ビッグデータ解析部44は、処理の要求がS108において送信されてくると、S108において送信されてきた要求に応じた処理を実行することによって、この処理に応じたデータを取得する(S109)。
【0077】
次いで、ビッグデータ解析部44は、S109において取得したデータをバックエンド85に通知する(S110)。
【0078】
バックエンド85は、S110においてデータが通知されると、S107においてキュー84から取り出した処理要求メッセージをキュー84に格納したAPIサーバー82に、S110において通知されたデータを通知する(S111)。なお、S107においてキュー84から取り出された処理要求メッセージには、この処理要求メッセージをキュー84に格納したAPIサーバー82の識別情報が含まれている。
【0079】
APIサーバー82は、S111においてデータが通知されると、このデータをフロントエンドProxy72に通知する(S112)。
【0080】
したがって、フロントエンドProxy72は、S112において通知されたデータを、LB71経由で外部システム90に応答する(S113)。なお、フロントエンドProxy72は、S102において確立したTCP/IP接続を、S113における応答の終了後に終了する。
【0081】
次に、外部システムからAPIプラットフォーム52へのAPIの利用の要求の内容と、処理時間および応答データ量との相関関係を機械学習する場合のシステム10の動作について説明する。
【0082】
図7は、外部システムからAPIプラットフォーム52へのAPIの利用の要求の内容と、処理時間および応答データ量との相関関係を機械学習する場合のシステム10の動作のシーケンス図である。
【0083】
バックエンド85は、S108においてビッグデータ解析部44への処理の要求の送信を開始すると、
図7に示すように、外部システムからのAPIの利用の要求に対して応答するデータの取得の処理の開始をAPIコントローラー83に通知する(S141)。
【0084】
次いで、バックエンド85は、S110においてビッグデータ解析部44からのデータの通知が終了すると、外部システムからのAPIの利用の要求に対して応答するデータの取得の処理の終了と、S110においてビッグデータ解析部44から通知されたデータの量とをAPIコントローラー83に通知する(S142)。
【0085】
APIコントローラー83は、S142の通知を受けると、外部システムからAPIプラットフォーム52へのAPIの利用の要求の内容と、この要求に対する処理時間および応答データ量とをパイプライン・オーケストレーター61に通知する(S143)。ここで、APIコントローラー83は、S141において処理の開始が通知された時間から、S142において処理の終了が通知された時間までの時間を処理時間として算出する。また、APIコントローラー83は、S142において通知された、データの量を、応答データ量とする。
【0086】
パイプライン・オーケストレーター61は、S143の通知を受けると、APIコントローラー83からこれまでに通知された、外部システムからAPIプラットフォーム52へのAPIの利用の要求の内容と、処理時間および応答データ量との相関関係を機械学習する(S144)。したがって、パイプライン・オーケストレーター61は、外部システムからAPIプラットフォーム52へのAPIの利用の要求の内容に対して、予測処理時間レベルおよび予測応答データ量レベルを判定することが可能になる。
【0087】
次に、バックエンドの数を増加させる場合のAPIコントローラー83の動作について説明する。
【0088】
図8は、バックエンドの数を増加させる場合のAPIコントローラー83の動作のフローチャートである。
【0089】
APIコントローラー83は、データ作成部インスタンス81に所属するキュー毎に
図8に示す動作を実行する。以下、キュー84について代表して説明する。
【0090】
図8に示すように、APIコントローラー83は、キュー84に格納されている処理要求メッセージの数が、キュー84に対して備えられているバックエンドの数を増加させる処理における処理要求メッセージの数用の閾値である増加処理用数閾値超であると判断するまで、キュー84に格納されている処理要求メッセージの数が増加処理用数閾値超であるか否かを判断する(S161)。ここで、増加処理用数閾値は、例えば300個である。
【0091】
APIコントローラー83は、キュー84に格納されている処理要求メッセージの数が増加処理用数閾値超であるとS161において判断すると、キュー84に対して備えられているバックエンドの数を増加させる処理において計測した時間を示す増加処理用時間を0にして(S162)、増加処理用時間の計測を開始する(S163)。
【0092】
APIコントローラー83は、S163の処理の後、増加処理用時間が、キュー84に対して備えられているバックエンドの数を増加させる処理における増加処理用時間用の閾値である増加処理用時間閾値以上であるか否かを判断する(S164)。ここで、増加処理用時間閾値は、例えば5分である。
【0093】
APIコントローラー83は、増加処理用時間が増加処理用時間閾値以上ではないとS164において判断すると、キュー84に格納されている処理要求メッセージの数が増加処理用数閾値超であるか否かを判断する(S165)。
【0094】
APIコントローラー83は、キュー84に格納されている処理要求メッセージの数が増加処理用数閾値超であるとS165において判断すると、S164の処理を実行する。
【0095】
APIコントローラー83は、キュー84に格納されている処理要求メッセージの数が増加処理用数閾値超ではないとS165において判断すると、S161の処理を実行する。
【0096】
APIコントローラー83は、増加処理用時間が増加処理用時間閾値以上であるとS164において判断すると、キュー84に対して備えられるバックエンドの数を特定の数だけ増加させて(S166)、S161の処理を実行する。
【0097】
APIコントローラー83は、
図8に示す動作によって、キュー84に格納されている処理要求メッセージの数が増加処理用数閾値超である状態(S161でYESおよびS165でYES)が増加処理用時間閾値以上の時間継続した場合(S164でYES)に、キュー84に対して備えられるバックエンドの数を特定の数だけ増加させる(S166)。例えば、APIコントローラー83は、キュー84に格納されている処理要求メッセージの数が300個超である状態が5分以上の時間継続した場合に、キュー84に対して備えられるバックエンドの数を特定の数だけ増加させる。
【0098】
次に、バックエンドの数を減少させる場合のAPIコントローラー83の動作について説明する。
【0099】
図9は、バックエンドの数を減少させる場合のAPIコントローラー83の動作のフローチャートである。
【0100】
APIコントローラー83は、データ作成部インスタンス81に所属するキュー毎に
図9に示す動作を実行する。以下、キュー84について代表して説明する。
【0101】
図9に示すように、APIコントローラー83は、キュー84に格納されている処理要求メッセージの数が、キュー84に対して備えられているバックエンドの数を減少させる処理における処理要求メッセージの数用の閾値である減少処理用数閾値以下であると判断するまで、キュー84に格納されている処理要求メッセージの数が減少処理用数閾値以下であるか否かを判断する(S181)。ここで、減少処理用数閾値は、例えば200個である。
【0102】
APIコントローラー83は、キュー84に格納されている処理要求メッセージの数が減少処理用数閾値以下であるとS181において判断すると、キュー84に対して備えられているバックエンドの数を減少させる処理において計測した時間を示す減少処理用時間を0にして(S182)、減少処理用時間の計測を開始する(S183)。
【0103】
APIコントローラー83は、S183の処理の後、減少処理用時間が、キュー84に対して備えられているバックエンドの数を減少させる処理における減少処理用時間用の閾値である減少処理用時間閾値以上であるか否かを判断する(S184)。ここで、減少処理用時間閾値は、例えば30分である。
【0104】
APIコントローラー83は、減少処理用時間が減少処理用時間閾値以上ではないとS184において判断すると、キュー84に格納されている処理要求メッセージの数が減少処理用数閾値以下であるか否かを判断する(S185)。
【0105】
APIコントローラー83は、キュー84に格納されている処理要求メッセージの数が減少処理用数閾値以下であるとS185において判断すると、S184の処理を実行する。
【0106】
APIコントローラー83は、キュー84に格納されている処理要求メッセージの数が減少処理用数閾値以下ではないとS185において判断すると、S181の処理を実行する。
【0107】
APIコントローラー83は、減少処理用時間が減少処理用時間閾値以上であるとS184において判断すると、キュー84に対して備えられるバックエンドの数を特定の数だけ減少させて(S186)、S181の処理を実行する。
【0108】
APIコントローラー83は、
図9に示す動作によって、キュー84に格納されている処理要求メッセージの数が減少処理用数閾値以下である状態(S181でYESおよびS185でYES)が減少処理用時間閾値以上の時間継続した場合(S184でYES)に、キュー84に対して備えられるバックエンドの数を特定の数だけ減少させる(S186)。例えば、APIコントローラー83は、キュー84に格納されている処理要求メッセージの数が200個以下である状態が30分以上の時間継続した場合に、キュー84に対して備えられるバックエンドの数を特定の数だけ減少させる。
【0109】
以上に説明したように、データ連携システム30は、APIの利用の要求に応じてデータ蓄積システム40からデータを取得する処理(S108およびS110)の未実行分の数が、この処理の能力を増加させる特定の条件を満たす場合に(S161でYES、S164でYESおよびS165でYES)、この処理の能力を増加させる(S166)ので、APIの利用の要求に応じて実行する処理の負担に応じて振る舞うことができる。
【0110】
データ連携システム30は、APIの利用の要求に応じてデータ蓄積システム40からデータを取得する処理の未実行分の数が、この処理の能力を減少させる特定の条件を満たす場合に(S181でYES、S184でYESおよびS185でYES)、この処理の能力を減少させる(S186)ので、APIの利用の要求に応じて実行する処理の負担に応じて振る舞うことができる。
【0111】
データ連携システム30は、APIの利用の要求に応じてデータ蓄積システム40からデータを取得する処理の、予測処理時間レベルおよび予測応答データ量レベルの組み合わせのパターンに基づいた分類毎に、この処理の能力を変更させるので、この処理を、この処理の予測処理時間レベルおよび予測応答データ量レベルの組み合わせのパターンに応じた適切なバックエンドによって実行することができる。したがって、データ連携システム30は、APIの利用の要求に応じて実行する処理の負担に応じて振る舞うことができる。
【0112】
特定の予測処理時間レベルに基づいた分類のバックエンドとしての特定処理時間バックエンドと、特定の予測処理時間レベルより予測処理時間が長い予測処理時間レベルに基づいた分類のバックエンドとしての処理時間長バックエンドとをAPIプラットフォーム52が備える場合に、処理時間長バックエンドは、メモリーの容量と、ネットワークの帯域との少なくとも1つが特定処理時間バックエンドより多くても良い。この構成により、データ連携システム30は、データ蓄積システムからデータを取得する処理を、この処理の予測処理時間が長い場合に、この処理の予測処理時間が短い場合よりも、メモリーの容量と、ネットワークの帯域との少なくとも1つが多いバックエンドによって実行することができるので、APIの利用の要求に応じて実行する処理の負担に応じて振る舞うことができる。
【0113】
特定の予測応答データ量レベルに基づいた分類のバックエンドとしての特定応答データ量バックエンドと、特定の予測応答データ量レベルより予測応答データ量が多い予測応答データ量レベルに基づいた分類のバックエンドとしての応答データ量多バックエンドとをAPIプラットフォーム52が備える場合に、応答データ量多バックエンドは、メモリーの容量と、ネットワークの帯域との少なくとも1つが特定応答データ量バックエンドより多くても良い。この構成により、データ連携システム30は、データ蓄積システムからデータを取得する処理を、この処理の予測応答データ量が多い場合に、この処理の予測応答データ量が少ない場合よりも、メモリーの容量と、ネットワークの帯域との少なくとも1つが多いバックエンドによって実行することができるので、APIの利用の要求に応じて実行する処理の負担に応じて振る舞うことができる。
【0114】
データ連携システム30は、予測処理時間レベルおよび予測応答データ量レベルの組み合わせのパターンに基づいた分類毎にキューおよびバックエンドを備えている。しかしながら、データ連携システム30は、予測処理時間レベルおよび予測応答データ量レベルのいずれか1つに基づいた分類毎にキューおよびバックエンドを備えても良い。
【符号の説明】
【0115】
21 情報システム
22 POSTコネクター(データ収集システム)
23 POSTエージェント(データ収集システム)
24 GET用エージェント(データ収集システム)
30 データ連携システム
40 データ蓄積システム
42 GETコネクター(データ収集システム)
43 GETエージェント(データ収集システム)
52 APIプラットフォーム