(57)【要約】  本発明は、データ提供元から送信されるデータの中継を行う中継装置の負荷やメモリ使用量の削減に貢献する。中継装置は、データ要求元からのデータ取得要求に基づいて、所定のアプリケーションプログラミングインタフェースによるデータ提供に対応するデータ提供装置に対して、データを要求するデータ要求部と、前記データ要求元に対し、前記データ提供装置から送信されるデータの変換規則を送信し、前記データ要求元に前記データ提供装置から送信されるデータの変換を指示する変換指示部と、前記データ提供装置から送信されたデータを前記データ要求元に転送するデータ転送部と、を含む。
2018092734.tif 000002
【特許請求の範囲】
【請求項１】
データ要求元からのデータ取得要求に基づいて、所定のアプリケーションプログラミングインタフェースによるデータ提供に対応するデータ提供装置に対して、データを要求するデータ要求部と、
前記データ要求元に対し、前記データ提供装置から送信されるデータの変換規則を送信し、前記データ要求元に前記データ提供装置から送信されるデータの変換を指示する変換指示部と、
前記データ提供装置から送信されたデータを前記データ要求元に転送するデータ転送部と、
を含む中継装置。
【請求項２】
さらに、
前記データ要求元から受信するデータ取得要求を、前記データ提供装置に対するデータ取得要求に変換する要求変換規則を記憶する要求変換規則記憶部を備え、
前記データ要求部は、前記要求変換規則記憶部を参照して、前記データ要求元から受信するデータ取得要求を、前記データ提供装置に対するデータ取得要求に変換する請求項１の中継装置。
【請求項３】
さらに、
前記データの変換規則を記憶するデータ変換規則記憶部と、
データ提供装置から受信したデータを変換するデータ変換部と、を備え、
所定の前記データ要求元からのデータ取得要求について、前記データの変換の指示に代えて、前記データ提供装置から受信したデータの変換を実行する請求項１又は２の中継装置。
【請求項４】
前記データ要求元と自装置間のスループットを計測するスループット計測部と、
前記スループットに基づいて、前記データ提供装置から受信したデータの変換を実行するか否かを決定する請求項１から３いずれか一の中継装置。
【請求項５】
前記スループットが所定の閾値より低い場合、前記データ要求元に対し、前記データ提供装置から送信されるデータの変換規則を送信し、前記データ要求元に前記データ提供装置から送信されるデータの変換を実行させる請求項４の中継装置。
【請求項６】
前記データ要求元のデータ変換性能に関連する所定の性能指標を監視し、前記データ要求元のデータ変換性能に関連する所定の性能指標が所定の閾値より高い場合、前記データ要求元に前記データ提供装置から送信されるデータの変換を実行させる請求項１から５いずれか一の中継装置。
【請求項７】
前記アプリケーションプログラミングインタフェースは、ＷｅｂＡＰＩである請求項１から６いずれか一の中継装置。
【請求項８】
ユーザからの指示に基づいて、所定のアプリケーションプログラミングインタフェースによるデータ提供に対応するデータ提供装置に対して、所定の中継装置を介して、データ取得要求を送信するデータ取得要求部と、
前記データ取得要求を送信した所定の中継装置から、前記データ提供装置から送信されるデータの変換規則を受信した場合、前記データの変換規則に基づいて、前記データ提供装置から受信したデータの変換を実行する変換実行部と、
を備えるクライアント装置。
【請求項９】
データ要求元からのデータ取得要求に基づいて、所定のアプリケーションプログラミングインタフェースによるデータ提供に対応するデータ提供装置に対して、データを要求するステップと、
前記データ要求元に対し、前記データ提供装置から送信されるデータの変換規則を送信するステップと、
前記データ提供装置から送信されたデータを前記データ要求元に転送するステップと、
前記データ要求元に前記データ提供装置から送信されるデータの変換を実行させるステップと、
を含むデータ中継方法。
【請求項１０】
データ要求元からのデータ取得要求に基づいて、所定のアプリケーションプログラミングインタフェースによるデータ提供に対応するデータ提供装置に対して、データを要求する中継装置を構成するコンピュータに、
データ要求元からのデータ取得要求に基づいて、前記データ提供装置に対し、前記所定のアプリケーションプログラミングインタフェースを用いて、データを要求する処理と、
前記データ要求元に対し、前記データ提供装置から送信されるデータの変換規則を送信する処理と、
前記データ提供装置から送信されたデータを前記データ要求元に転送する処理と、
を実行させるプログラムをコンピュータ読み取り可能に記録したプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についての記載）
本発明は、日本国特許出願：特願２０１６−２２２５８５号（２０１６年１１月１５日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、中継装置、クライアント装置、データ中継方法及びプログラムに関し、特に、データ要求元の装置からの要求に基づいて、データ提供元に対し、前記データ要求元へのデータの送信を要求する中継装置、クライアント装置、データ中継方法及びプログラムをコンピュータ読み取り可能に記録したプログラム記録媒体に関する。
【背景技術】
【０００２】
特許文献１に、仕様の異なるシステムから共通のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を使用可能にするという制御装置が開示されている。具体的には、この制御装置は、処理装置（データ要求元）からの送信情報をＡＰＩ用入力形式に変換する第１変換の要否とＡＰＩ（データ提供元）からの出力情報を処理装置用入力形式に変換する第２変換の要否を表す要否情報を記憶する記憶手段を備える。その上で、この制御装置は、処理装置（データ要求元）から、当該処理装置又はその利用者の識別子を含む送信情報を受信すると、その識別子に基づいて送信情報及び出力情報の変換要否をそれぞれ判定して、変換を実施する。【０００３】
特許文献２には、複数の低価格のマルチメディア対応クライアント計算機が複数のサーバ計算機を共有する計算機システムにおいて、単一のプログラムを２つに分割して各々をクライアント計算機とサーバ計算機の上で実行するプログラムの分割実行とサーバ計算機の負荷分散を実現できるというプログラムの分割実行方法が開示されている。【０００４】
特許文献３には、信頼性の高い蓄積交換メッセージ伝達システム、有能なメッセージ仲介設備、および異なったエンタプライズアプリケーションを統合するための強力なエージェントアダプタアーキテクチャを提供するという分散エンタプライズアプリケーションインテグレーションシステムが開示されている。【０００５】
また近年、インターネット上で様々なサービスを提供する企業が、ネットワークを介して当該企業のサーバ等からデータを取得することのできるＷｅｂＡＰＩを公開している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−１４５４３６号公報
【特許文献２】特開平１０−２０７７２２号公報
【特許文献３】特表２００２−５３０７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、特許文献１に記載されているように、ＷｅｂＡＰＩは企業によって仕様が異なっており、共通のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を使用可能にする場合には中継装置（特許文献１では「制御装置」と呼んでいる）が必要となる。その際に問題となるのが、さまざまなデータ提供元から返されるデータの変換処理と、そのために必要なデータの一時保存先となるメモリ等のリソースの確保である。例えば、特許文献１の制御装置では、ＡＰＩ（データ提供元）からの出力情報を処理装置用入力形式に変換する第２変換を行うこととしている。また、特許文献１の制御装置を用いない場合においても、例えば、データ提供元から返された数値データを、人間が見やすい表示形式に変換するということもある。しかしながら、データ提供元から送信されたデータを一時保存するためのメモリが不足するような場合、データの変換処理自体が不可能となり、データ要求元へデータ返却できない事態が生じ得る。とりわけ、転送対象のデータが大量になると、メモリの不足は顕在化する。【０００８】
このようなデータの変換処理とそのために必要なメモリの不足に対する解決策は、同じくエンタプライズアプリケーションの統合環境を提供する特許文献３にも記載されていない。また、特許文献２では、サーバ計算機側からクライアント計算機側にＡＰＩ関数を送信し、クライアント計算機側でＡＰＩ関数を実行することが記載されているが、このような処理を行うためには、クライアント計算機側においても、マイクロソフト（登録商標）社のＷｉｎ３２サブシステムのようなライブラリが必要となる。【０００９】
本発明は、上記したＷｅｂＡＰＩに代表されるデータ提供方式を用いる構成における、データ提供元から送信されるデータの中継を行う中継装置の負荷やメモリ使用量の削減に貢献できる中継装置、クライアント装置、データ中継方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の視点によれば、データ要求元からのデータ取得要求に基づいて、所定のアプリケーションプログラミングインタフェースによるデータ提供に対応するデータ提供装置に対して、データを要求するデータ要求部を含む中継装置が提供される。この中継装置は、さらに、前記データ要求元に対し、前記データ提供装置から送信されるデータの変換規則を送信し、前記データ要求元に前記データ提供装置から送信されるデータの変換を指示する変換指示部を含む。この中継装置は、さらに、前記データ提供装置から送信されたデータを前記データ要求元に転送するデータ転送部と、を含む。【００１１】
第２の視点によれば、ユーザからの指示に基づいて、所定のアプリケーションプログラミングインタフェースによるデータ提供に対応するデータ提供装置に対して、所定の中継装置を介して、データ取得要求を送信するデータ取得要求部と、前記データ取得要求を送信した所定の中継装置から、前記データ提供装置から送信されるデータの変換規則を受信した場合、前記データの変換規則に基づいて、前記データ提供装置から受信したデータの変換を実行する変換実行部と、を備えるクライアント装置が提供される。【００１２】
第３の視点によれば、データ要求元からのデータ取得要求に基づいて、所定のアプリケーションプログラミングインタフェースによるデータ提供に対応するデータ提供装置に対して、データを要求するステップと、前記データ要求元に対し、前記データ提供装置から送信されるデータの変換規則を送信するステップと、前記データ提供装置から送信されたデータを前記データ要求元に転送するステップと、前記データ要求元に前記データ提供装置から送信されるデータの変換を実行させるステップと、を含むデータ中継方法が提供される。本方法は、データ要求元からのデータ取得要求に基づいて、所定のアプリケーションプログラミングインタフェースによるデータ提供に対応するデータ提供装置に対して、データを要求する中継装置という、特定の機械に結びつけられている。【００１３】
第４の視点によれば、データ要求元からのデータ取得要求に基づいて、所定のアプリケーションプログラミングインタフェースによるデータ提供に対応するデータ提供装置に対して、データを要求する中継装置を構成するコンピュータに、データ要求元からのデータ取得要求に基づいて、前記データ提供装置に対し、前記所定のアプリケーションプログラミングインタフェースを用いて、データを要求する処理と、前記データ要求元に対し、前記データ提供装置から送信されるデータの変換規則を送信する処理と、前記データ提供装置から送信されたデータを前記データ要求元に転送する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１４】
本発明によれば、データ提供元から送信されるデータの中継を行う中継装置の負荷やメモリ使用量の削減に貢献することが可能となる。即ち、本発明は、データ提供元から送信されるデータの中継を行う中継装置を、その負荷やメモリ使用量を削減しうる中継装置へと変換するものとなっている。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態の構成を示す図である。
【図２】本発明の一実施形態の動作を説明するための図である。
【図３】本発明の第１の実施形態のデータ提供システムの構成を示す図である。
【図４】本発明の第１の実施形態の中継装置の構成を示す図である。
【図５】本発明の第１の実施形態の中継装置に保持される要求変換規則の一例を示す図である。
【図６】本発明の第１の実施形態の中継装置に保持されるデータ変換規則の一例を示す図である。
【図７】本発明の第１の実施形態のクライアント装置の構成を示す図である。
【図８】本発明の第１の実施形態の動作を表したシーケンス図である。
【図９】本発明の第１の実施形態の動作を表したシーケンス図である。
【図１０】本発明の第２の実施形態の中継装置の構成を示す図である。
【図１１】本発明の第２の実施形態の動作を表したシーケンス図である。
【図１２】本発明の第２の実施形態の動作を表したシーケンス図である。
【図１３】本発明の第３の実施形態の中継装置の構成を示す図である。
【図１４】本発明の中継装置やクライアントに搭載されるコンピュータの構成を示す図である。
【発明を実施するための形態】
【００１６】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。また、以降の説明で参照する図面等のブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号（データ）の流れを模式的に示すものであり、双方向性を排除するものではない。また、以下の説明において、「Ａ及び／又はＢ」は、Ａ及びＢの少なくともいずれかという意味で用いる。
【００１７】
本発明は、その一実施形態において、図１に示すように、データ提供装置３０Ａと、データ要求元１０Ａとの間にて、両者のデータを中継する中継装置２０Ａにて実現できる。中継装置２０Ａは、データ要求部２１Ａと、変換指示部２２Ａと、データ転送部２３Ａと、を備える。
【００１８】
より具体的には、図２に示すように、データ要求部２１Ａは、データ要求元１０Ａからの（１）データ取得要求に基づいて、所定のアプリケーションプログラミングインタフェースによるデータ提供に対応するデータ提供装置３０Ａに対して、データを要求する（（２）データ取得要求）。変換指示部２２Ａは、前記データ要求元１０Ａに対し、前記データ提供装置３０Ａから送信されるデータを変換するための変換規則を送信することによって、前記データ要求元１０Ａに前記データ提供装置３０Ａから送信されるデータの変換を指示する（（３）データ変換規則送信）。データ転送部２３Ａは、データ提供装置３０Ａから送信されたデータを前記データ要求元１０Ａに転送する（（４）データ送信）。データ要求元１０Ａは、前記中継装置２０Ａから受信したデータの変換規則に基づいて、データ提供装置３０Ａから送信されたデータの変換を実施する。
【００１９】
上記動作からも明らかなように、本発明によれば、特許文献１等において中継装置側で行われているデータの変換処理をデータ要求元１０Ａに行わせることが可能となる。これにより、中継装置２０Ａの負荷やメモリ使用量の削減を実現することが可能となる。
【００２０】
データ要求元１０Ａからのデータ取得要求の内容によっては、データ提供装置３０Ａから送信されるデータが大量となる場合があるが、本発明によれば、中継装置２０Ａのリソースを大きく用いる変換処理を省略することが可能となるため、その効果は一層大きなものとなる。
【００２１】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図３は、本発明の第１の実施形態のデータ提供システムの構成を示す図である。図３を参照すると、データ要求元となるクライアント１０と、データ提供元となるサーバ３０との間に中継装置２０が配置された構成が示されている。
【００２２】
サーバ３０は、ＷｅｂＡＰＩを用いて外部のサイト等（これらを「クライアント１０」と総称する）へ自身の提供するデータを提供する。なお、サーバ３０は複数存在してもよく、かつ、それぞれが採用するＷｅｂＡＰＩの仕様が異なっていてもよい。
【００２３】
クライアント１０は、中継装置２０を介して、サーバ３０に対し、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）リクエストを送信する。クライアント１０は、中継装置２０を介して、サーバ３０からＨＴＴＰレスポンスの形態でデータを受け取り、利用する。
【００２４】
中継装置２０は、上記クライアント１０と、サーバ３０間のＷｅｂＡＰＩを用いたデータ授受を中継する装置である。
【００２５】
図４は、本発明の第１の実施形態の中継装置２０の詳細構成を示すブロック図である。図４を参照すると、中継装置２０は、クライアント通信部２０１と、要求変換規則管理部２０２と、要求変換規則記憶部２０３と、変換部２０４と、データ変換規則管理部２０５と、データ変換規則記憶部２０６と、応答転送部２０７と、サーバ通信部２０８と、を備えている。
【００２６】
クライアント通信部２０１は、クライアント１０からＨＴＴＰリクエストを受信すると、その内容を変換部２０４に転送する。また、クライアント通信部２０１は、変換部２０４から変換後のデータを受信すると、その内容をクライアント１０に転送する。
【００２７】
要求変換規則管理部２０２は、要求変換規則記憶部２０３に記憶されている要求変換規則の管理機能を提供する。ここで要求変換規則とはクライアント１０からＨＴＴＰリクエスト（データ取得要求）を、サーバ用のＨＴＴＰリクエストに変換するルールのことである。
【００２８】
図５は、要求変換規則記憶部２０３に記憶される要求変換規則の一例を示す図である。図５の１番上のエントリは、クライアント１０からのメソッド名＝“ＧＥＴ”、Ｐａｔｈ＝“/api/v1/data”というリクエストを、サーバ用ＵＲＩ“https://10.0.0.1/api/v3/data”に変換するというルールを示している。同様に、図５の上から２番目のエントリは、クライアント１０からのメソッド名＝“ＧＥＴ”、Ｐａｔｈ＝“/api/v1/data/{id}”というクエリ付きのリクエスト（｛｝内がクエリパラメータである）を、サーバ用ＵＲＩ“https://10.0.0.1/api/v3/data/{id}”に変換するというルールを示している。
【００２９】
従って、中継装置の管理者が、要求変換規則管理部２０２を通じて、要求変換規則記憶部２０３に新しい要求変換規則を登録することで、中継装置２０は、新規のサーバ３０のＷｅｂＡＰＩサービスに対応することが可能となる。もちろん、あるサーバ３０のＷｅｂＡＰＩの仕様が変わった場合にも、要求変換規則記憶部２０３の内容を更新することで、ＷｅｂＡＰＩの仕様変更に対応することが可能となる。なお、図５の例では、ＧＥＴメソッドの変換規則のみが示されているが、ＰＯＳＴメソッド等の変換規則を登録することで、中継装置２０にＰＯＳＴメソッド等の変換を行わせることも可能である。
【００３０】
データ変換規則管理部２０５は、データ変換規則記憶部２０６に記憶されているデータ変換規則の管理機能を提供する。ここでデータ変換規則とはサーバ３０からＨＴＴＰリクエストに対する応答に含まれるデータの変換ルールのことである。
【００３１】
図６は、データ変換規則記憶部２０６に記憶されるデータ変換規則の一例を示す図である。図６の１番上のエントリは、クライアント１０からのメソッド名＝“ＧＥＴ”、Ｐａｔｈ＝“/api/v1/data”というリクエストに対して返されたデータに適用する変換ルールを示している。この場合の変換ルール[.[] | .id]は、ＪＳＯＮ（JavaScript Object Notation）形式のデータの変換ツールとして知られているｊｑ（https://stedolan.github.io/jq/）のルール記述で記述したものである（JavaScriptは登録商標）。
【００３２】
図６の変換ルール[.[] | .id]は、配列に含まれる全ての要素(オブジェクト)を取り出し(.[])、各オブジェクトに含まれるキー"id"の値を抽出(|.id)した上で、抽出した値を配列として返す(外側の[])という処理（変換ルール）を示している。
例えば、サーバ３０から返されたデータ配列が以下のようなものである場合、
[
{
"id": 1,
"message": "hello"
},
{
"id": 2,
"message": "world"
}
]
上記配列からキーｉｄの値のみが抽出されるので、出力は、[ 1, 2 ]という配列になる。
【００３３】
図６の変換ルール[.[0:100][] | .message]は、配列に含まれる要素(オブジェクト)を先頭から最大100件取り出し(.[0:100][])、各オブジェクトに含まれるキー"message"の値を抽出(|.message)した上で、抽出した値を配列として返す(外側の[])という処理（変換ルール）を示している。
例えば、サーバ３０から返されたデータ配列が以下のようなものである場合、
[
{
"id": 1,
"message": "hello"
},
{
"id": 2,
"message": "world"
}
]
上記配列からキーmessageの値のみが抽出されるので、出力は、[ "hello", "world" ]となる。なお、この例では、入力の配列に含まれる要素が２つであるため、入力配列の要素数と出力配列の要素数とが一致しているが、入力の配列に含まれる要素数が１００を超える場合、出力配列の要素数は１００となる。
【００３４】
変換部２０４は、上記した要求変換規則を参照して、クライアント１０からの要求を変換してサーバ３０側に送信する処理と、データ変換規則を参照して、サーバ３０から返された応答を変換してクライアント側に送信する処理とを実施する。
【００３５】
さらに、本実施形態の変換部２０４は、クライアント１０からＨＴＴＰリクエストを受信した場合、所定の条件下で、データ変換規則記憶部２０６から該当するデータ変換規則を取り出し、クライアント１０に送信し、データ変換をクライアント１０に依頼する機能を有している。前記所定の条件としては、クライアントが受信したデータ変換規則によるデータ変換機能を有していることに加え、中継装置２０のリソース（ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリ）の不足等が挙げられる。
【００３６】
応答転送部２０７は、上記データ変換をクライアント１０に依頼する場合に、サーバ３０から受信したデータを変換せずに転送する処理を実施する（ストリーム転送）。
【００３７】
サーバ通信部２０８は、上記変換部２０４にて変換されたＵＲＩをサーバ３０に転送する。また、サーバ通信部２０８は、サーバ３０からデータを受信すると、その内容に応じて、変換部２０４又は応答転送部２０７に転送する。
【００３８】
続いて、上記データ変換の依頼に対応可能なクライアント１０の構成について説明する。図７は、本発明の第１の実施形態のクライアント１０の構成を示す図である。図７を参照すると、通信部１０１と、データ変換規則受信部１０２と、データ変換規則記憶部１０３と、変換部１０４と、を備えた構成が示されている。
【００３９】
通信部１０１は、中継装置２０に対するＨＴＴＰリクエストを送信し、応答を受信する。また、通信部１０１は、中継装置２０からデータ変換規則を受信した場合、データ変換規則受信部１０２に送る。
【００４０】
データ変換規則受信部１０２は、中継装置２０から受信したデータ変換規則をデータ変換規則記憶部１０３に格納する。データ変換規則記憶部１０３に保持されるデータ変換規則は、中継装置２０のデータ変換規則記憶部２０６と同様である（図６参照）。
【００４１】
変換部１０４は、データ変換規則記憶部１０３を参照して、中継装置２０から受信したデータのうち、条件が適合するデータについて変換処理を実施する。変換処理の内容は、中継装置２０におけるデータ変換処理と同一である。
【００４２】
なお、図１、図４、図７に示した中継装置やクライアントの各部（処理手段）は、これらの装置を構成するコンピュータ（図１４の９０００）に、そのハードウェア（プロセッサ、メモリ、補助記憶装置等）を用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。このようなコンピュータは、図１４のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０１０、通信インタフェース９０２０、メモリ９０３０、補助記憶装置９０４０を備える構成に例示される。例えば、図１４のＣＰＵ９０１０にて中継装置の機能を実現するプログラムを実行し、上記した各処理を実施させればよい。
【００４３】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図８は、本発明の第１の実施形態の動作を表したシーケンス図である。図８を参照すると、まず、クライアント１０が中継装置２０に対してデータ取得要求を送信する（ステップＳ００１）。
【００４４】
データ取得要求を受信した中継装置２０は、クライアント１０がデータ変換に対応しているか否かや自身のリソース状況等に基づいて、当該クライアント１０にデータ変換を依頼するか否かを判定する（ステップＳ００２）。図８の例では、クライアント１０にデータ変換を依頼すると判定したため、中継装置２０は、データ変換規則記憶部２０６からクライアント１０からのデータ取得要求に適合するデータ変換規則を取り出し（ステップＳ００３）、クライアント１０に送信する（ステップＳ００４）。
【００４５】
続いて、中継装置２０は、要求変換規則記憶部２０３からクライアント１０からのデータ取得要求に適合する要求変換規則を取り出し（ステップＳ００５）、クライアント１０から受信したデータ取得要求を変換する（ステップＳ００６）。さらに、中継装置２０は、サーバ３０に対し、変換したデータ取得要求を送信する（ステップＳ００７）。
【００４６】
データ取得要求を受信したサーバ３０は、データ取得要求にて指定されたデータの抽出、並び替え等の処理を行った後（ステップＳ００８）、応答データを送信する（ステップＳ００９）。図８の例の場合、中継装置２０がクライアント１０にデータ変換を依頼すると判定しているため、中継装置２０は、サーバ３０から返されたデータを変換することなく、そのままクライアント１０に送信する。クライアント１０は、ステップＳ００４で中継装置から受信したデータ変換規則を用いて、サーバ３０から返されたデータを変換する（ステップＳ０１０）。
【００４７】
以上説明したように、本実施形態によれば、中継装置２０におけるサーバから返されるデータの変換処理を省略することができる。特に、ＷｅｂＡＰＩの場合、クライアントからのクエリパラメータにより、大量のデータ転送が必要となることがあるが、その場合でも中継装置２０のメモリ等に不足が生じることはない。また、中継装置のメモリ不足等が生じないということは、クライアント１０に対するデータ返却ができない事態も少なくなることになる。
【００４８】
なお、図８のステップＳ００２で中継装置２０がクライアント１０にデータ変換を依頼しないと判定した場合の動作は図９に示すとおりとなる。図８との相違は、データ変換規則をクライアント１０に送信する処理が省略され、中継装置２０において、データ変換処理（ステップＳ０１０ａ）を行ってから、変換後のデータがクライアント１０に送信される点である。以上のように、本実施形態では、中継装置２０のリソースの使用状況や負荷に応じて、データ変換処理の主体を切り替えることが可能となっている。
【００４９】
また、上記した説明では、データ変換規則の記法としてｊｑをもちいた例を挙げて説明したが、データ変換規則の記法は、任意の記法を採用可能である。例えば、データ変換規則の記法として、正規表現やＪｓｏｎＬｏｇｉｃ（http://jsonlogic.com/）などを用いてもよい。
【００５０】
［第２の実施形態］
続いて、中継装置２０が、クライアント１０にデータ変換を依頼するか否かを判定する条件に変更を加えた第２の実施形態について図面を参照して説明する。図１０は、本発明の第２の実施形態の中継装置の構成を示す図である。図４に示した第１の実施形態の中継装置２０との相違点は、中継装置２０ｂのクライアント通信部２０１ａ内に、クライアント１０と中継装置２０ｂ間の通信路の実効スループットを計測するスループット計測部２１１と、計測したスループットを所定期間記憶するスループット記憶部２１２が備えられている点である。その他の構成は第１の実施形態と同様であるので、以下、その相違点を中心に説明する。
【００５１】
スループット計測部２１１は、所定の時間間隔で、クライアント１０と中継装置２０ｂ間の通信路の実効スループットを計測し、スループット記憶部２１２に記憶する。実効スループットの計測方法としては、クライアント１０側に計測パケットを送信してから応答が得られるまでの時間を計測する方法等の方法を採用することができる。
【００５２】
本実施形態の変換部２０４は、クライアント１０からデータ取得要求を受けた際に、スループット記憶部２１２に記憶された該当クライアント１０間のスループット情報を参照して、当該クライアント１０にデータ変換を依頼するか否かを決定する。
【００５３】
例えば、あるクライアント１０との間の通信路の実効スループットが所定の閾値より高い場合、変換部２０４は、当該クライアント１０にデータ変換を依頼せず、中継装置２０自身でデータ変換することを決定する。クライアント１０との間の通信路の実効スループットが高い場合、クライアント１０に対し、高速に変換済みのデータを送ることができるため、中継装置２０のメモリが占有される時間も少なくなるからである。
【００５４】
一方、あるクライアント１０との間の通信路の実効スループットが所定の閾値以下である場合、変換部２０４は、当該クライアント１０にデータ変換を依頼することを決定する。その理由は、クライアント１０との間の通信路の実効スループットが低い場合、当該クライアント１０へのデータ送信時間も長くなり、中継装置２０のメモリが占有される時間も長くなるからである。
【００５５】
図１１、図１２は、第２の実施形態の動作を表したシーケンス図である。基本的な動作は第１の実施形態と同一である。第１の実施形態と異なるのは、ステップＳ１０２におけるデータ変換主体の決定が、スループット情報に基づいて行われるか否かである。
【００５６】
以上のように、スループットの高低によりデータ変換主体を切り替える本実施形態によれば、中継装置２０ｂのメモリが占有される時間の長くなる可能性の高いデータ変換処理をクライアント１０に依頼することが可能となる。これにより、全体的なパフォーマンスを向上させることも可能となる。
【００５７】
なお、上記した説明では、実効スループットが高い場合、クライアント１０にデータ変換を依頼せず、実効スループットが低い場合、クライアント１０にデータ変換を依頼するものとして説明したが、中継装置２０ｂの処理能力やクライアント１０と中継装置２０ｂの通信路のデータ転送能力のバランスにより、逆の動作を行わせることもできる。例えば、極端に実効スループットが高い場合（実効スループットが、上述の閾値よりも高い第２の閾値よりも高い場合）、クライアント１０にデータ変換を依頼することで、高速にクライアント１０にデータを送信することが可能となる。
【００５８】
もちろん、本実施形態においても、スループットに加えて、中継装置２０ｂ自身のリソースの空き状況等を考慮に入れて、総合的に、クライアント１０にデータ変換を依頼するか否かを決定するようにしてもよい。
【００５９】
［第３の実施形態］
続いて、中継装置２０が、クライアント１０にデータ変換を依頼するか否かを判定する条件として、クライアントのデータ変換性能に関連する性能指標を用いるようにした第３の実施形態について図面を参照して説明する。図１３は、本発明の第３の実施形態の中継装置の構成を示す図である。図４に示した第２の実施形態の中継装置２０との相違点は、中継装置２０ｃのクライアント通信部２０１ｂ内に、クライアント１０の空きメモリ量やＣＰＵ性能等を取得するクライアント情報取得部３１１と、取得したクライアントの情報を記憶するクライアント情報記憶部３１２が備えられている点である。その他の構成は第１の実施形態と同様であるので、以下、その相違点を中心に説明する。
【００６０】
クライアント情報取得部３１１は、クライアント１０と通信し、データ変換性能に関連する性能指標として、ＣＰＵの性能や空きメモリ量等を取得し、クライアント情報記憶部３１２に記憶する。なお、空きメモリ量は、クライアント１０上で動作しているプログラムの数等により変動するので、所定間隔でクライアント１０と通信し、最新の空きメモリ量等を取得するようにすることが好ましい。
【００６１】
本実施形態の変換部２０４は、クライアント１０からデータ取得要求を受けた際に、クライアント情報記憶部３１２に記憶された該当クライアント１０のＣＰＵ性能や空きメモリ量を参照して、当該クライアント１０にデータ変換を依頼するか否かを決定する。
【００６２】
例えば、あるクライアント１０のＣＰＵ性能を表す指標値が所定の基準値よりも高く、かつ、空きメモリ量が所定の閾値よりも大きい場合、変換部２０４は、当該クライアント１０にデータ変換を依頼することを決定する。反対に、あるクライアント１０のＣＰＵ性能が低い場合や、空きメモリ量が少ない場合、変換部２０４は、当該クライアント１０にデータ変換を依頼しないと決定する。
【００６３】
クライアント１０のＣＰＵ性能が低い場合や空きメモリに余裕がない場合に、クライアント１０にデータ変換を依頼しない理由は、このようなクライアントにデータ変換を依頼すると、データ変換が完了するまでの時間も長くなり、ユーザに遅いという印象を持たれてしまうからである。
【００６４】
以上のように、クライアントの性能や空きメモリの量によりデータ変換主体を切り替える本実施形態によれば、データ変換が完了するまでの平均ＴＡＴ（ターンアラウンドタイム）を短縮させることが可能となる。これにより、全体的なパフォーマンスを向上させることも可能となる。
【００６５】
もちろん、本実施形態においても、クライアントの性能や空きメモリの量のほか、中継装置２０ｃ自身のリソースの空き状況、及び／又は、第２の実施形態で用いたスループット等を考慮に入れて、総合的に、クライアント１０にデータ変換を依頼するか否かを決定するようにしてもよい。
【００６６】
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成、各要素の構成、メッセージの表現形態は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【００６７】
例えば、上記した各実施形態では、クライアント１０、中継装置２０及びサーバ３０とがそれぞれ物理的に独立して配置されているものとして説明したが、中継装置２０及びサーバ３０が統合されている形態も採用可能である。また、クライアント１０、中継装置２０及びサーバ３０のいずれか、あるいは、すべてが、仮想化環境上で動作するＶＭ（仮想マシン）で構成されていてもよい。
【００６８】
また例えば、上記した各実施形態では、中継装置２０に、要求変換規則管理部２０２と、データ変換規則管理部２０５がそれぞれ独立して設けられているものとして説明したが、要求変換規則管理部２０２とデータ変換規則管理部２０５を統合してもよい。また、外部の端末等に、要求変換規則管理部２０２と、データ変換規則管理部２０５に相当する機能を担わせて、外部の端末から、直接、要求変換規則記憶部２０３や、データ変換規則記憶部２０６の内容を更新できるように構成してもよい。
【００６９】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による中継装置参照）
［第２の形態］
上記した中継装置は、さらに、前記データ要求元から受信するデータ取得要求を、前記データ提供装置に対するデータ取得要求に変換する要求変換規則を記憶する要求変換規則記憶部を備えていてもよい。前記データ要求部は、前記要求変換規則記憶部を参照して、前記データ要求元から受信するデータ取得要求を、前記データ提供装置に対するデータ取得要求に変換することができる。
［第３の形態］
上記した中継装置は、さらに、
前記データの変換規則を記憶するデータ変換規則記憶部と、
データ提供装置から受信したデータを変換するデータ変換部と、を備え、所定の前記データ要求元からのデータ取得要求について、前記データの変換の指示に代えて、前記データ提供装置から受信したデータの変換を実行する構成とすることができる。
［第４の形態］
上記した中継装置は、
前記データ要求元と自装置間のスループットを計測するスループット計測部と、
前記スループットに基づいて、前記データ提供装置から受信したデータの変換を実行するか否かを決定する構成とすることができる。
［第５の形態］
上記した中継装置は、
前記スループットが所定の閾値より低い場合、前記データ要求元に対し、前記データ提供装置から送信されるデータの変換規則を送信し、前記データ要求元に前記データ提供装置から送信されるデータの変換を実行させることができる。
［第６の形態］
上記した中継装置は、
前記データ要求元のデータ変換性能に関連する所定の性能指標を監視し、前記データ要求元のデータ変換性能に関連する所定の性能指標が所定の閾値より高い場合、前記データ要求元に前記データ提供装置から送信されるデータの変換を実行させることができる。
［第７の形態］
上記した中継装置は、
インターネットを介して、ＷｅｂＡＰＩによるサービスを提供するサーバとクライアント間のデータの授受を中継するものとしてもよい。
［第８の形態］
（上記第２の視点によるクライアント装置参照）
［第９の形態］
（上記第３の視点によるデータ中継方法参照）
［第１０の形態］
（上記第４の視点によるプログラム参照）
なお、上記第８〜第１０の形態は、第１の形態と同様に、第２〜第７の形態に展開することが可能である。
【００７０】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の開示の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００７１】
１０  クライアント
１０Ａ  データ要求元
２０、２０Ａ、２０ｂ、２０ｃ  中継装置
２１Ａ  データ要求部
２２Ａ  変換指示部
２３Ａ  データ転送部
３０  サーバ
３０Ａ  データ提供装置
１０１  通信部
１０２  データ変換規則受信部
１０３  データ変換規則記憶部
１０４  変換部
２０１、２０１ａ、２０１ｂ  クライアント通信部
２０２  要求変換規則管理部
２０３  要求変換規則記憶部
２０４  変換部
２０５  データ変換規則管理部
２０６  データ変換規則記憶部
２０７  応答転送部
２０８  サーバ通信部
２１１  スループット計測部
２１２  スループット記憶部
３１１  クライアント情報取得部
３１２  クライアント情報記憶部
【図１】
2018092734.tif 000003
【図２】
2018092734.tif 000004
【図３】
2018092734.tif 000005
【図４】
2018092734.tif 000006
【図５】
2018092734.tif 000007
【図６】
2018092734.tif 000008
【図７】
2018092734.tif 000009
【図８】
2018092734.tif 000010
【図９】
2018092734.tif 000011
【図１０】
2018092734.tif 000012
【図１１】
2018092734.tif 000013
【図１２】
2018092734.tif 000014
【図１３】
2018092734.tif 000015
【図１４】
2018092734.tif 000016
【手続補正書】
【提出日】令和1年5月14日(2019.5.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
データ要求元からのデータ取得要求に基づいて、所定のアプリケーションプログラミングインタフェースによるデータ提供に対応するデータ提供装置に対して、データを要求する中継装置を構成するコンピュータに、
データ要求元からのデータ取得要求に基づいて、前記データ提供装置に対し、前記所定のアプリケーションプログラミングインタフェースを用いて、データを要求する処理と、
前記データ要求元に対し、前記データ提供装置から送信されるデータの変換規則を送信する処理と、
前記データ提供装置から送信されたデータを前記データ要求元に転送する処理と、
を実行させるプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
［第３の実施形態］
続いて、中継装置２０が、クライアント１０にデータ変換を依頼するか否かを判定する条件として、クライアントのデータ変換性能に関連する性能指標を用いるようにした第３の実施形態について図面を参照して説明する。図１３は、本発明の第３の実施形態の中継装置の構成を示す図である。図４に示した第１の実施形態の中継装置２０との相違点は、中継装置２０ｃのクライアント通信部２０１ｂ内に、クライアント１０の空きメモリ量やＣＰＵ性能等を取得するクライアント情報取得部３１１と、取得したクライアントの情報を記憶するクライアント情報記憶部３１２が備えられている点である。その他の構成は第１の実施形態と同様であるので、以下、その相違点を中心に説明する。
【国際調査報告】
2018092734.tif 000017
2018092734.tif 000018