JP2016151881A - Api集約装置及びapi互換方法 - Google Patents

Api集約装置及びapi互換方法 Download PDF

Info

Publication number
JP2016151881A
JP2016151881A JP2015028802A JP2015028802A JP2016151881A JP 2016151881 A JP2016151881 A JP 2016151881A JP 2015028802 A JP2015028802 A JP 2015028802A JP 2015028802 A JP2015028802 A JP 2015028802A JP 2016151881 A JP2016151881 A JP 2016151881A
Authority
JP
Japan
Prior art keywords
api
enabler
information
application
request information
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.)
Granted
Application number
JP2015028802A
Other languages
English (en)
Other versions
JP6475037B2 (ja
Inventor
亮介 松浦
Ryosuke Matsuura
亮介 松浦
崇 歌原
Takashi Utahara
崇 歌原
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015028802A priority Critical patent/JP6475037B2/ja
Publication of JP2016151881A publication Critical patent/JP2016151881A/ja
Application granted granted Critical
Publication of JP6475037B2 publication Critical patent/JP6475037B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】複数組み合わせたAPIの1つが機能不全となった場合でも、その機能不全のAPIに係る機能の情報をアプリケーションに提供する。
【解決手段】API集約装置24は、通信システムのアプリケーション25aとイネーブラ27a〜27dとの間にAPI26a,28a〜28dを介して接続される。API集約装置24は、アプリケーション25aから所望のイネーブラ27bへAPI26b,28bを介してリクエスト情報を送信した際に、当該リクエスト情報の内容に適合したレスポンス情報が返信されない機能不全の場合、当該機能不全のイネーブラ27bに予め対応付けられた対応イネーブラ27cからのレスポンス情報を、当該対応イネーブラ27cに繋がる対応API28cを介して当該アプリケーション25aへ返信するAPI互換処理を行う。
【選択図】図2

Description

本発明は、複数のAPI(Application Programming Interface)を集約したアプリケーションから、リクエストを受け付けたAPI又はイネーブラが機能不全の場合でも所望の情報をユーザに提供することが可能なAPI集約装置及びAPI互換方法に関する。
近年、プログラムであるスクラッチで開発していたような機能、地図描画や認証等の共通機能が、情報インターフェイスであるAPIという形で提供されてきている。APIを活用したアプリケーション(以下、アプリと略すこともある)の開発では、複数のAPIを組み合わせる(マッシュアップする)ことで、早く、安く、多様な機能のアプリを開発することができ、様々な企業が自社機能を実現するAPIに注目している。つまり、ソフトウェア開発において、APIを活用したソフトウェア開発により、幾つかのAPIを組み合わせて検証を含む開発期間の短縮、開発コストを削減することが実施されている。
提供されるAPIについては、利用状況をAPI提供者にフィードバックする等の代償として、無償で提供されることが多い。APIはグーグル、アマゾン等のユーザへ製品を提供しているベンダが、無償で公開、提供している場合が多い。
例えば、図14に示すように、位置情報取得機能10に繋がるAPI10aと、グルメ検索機能11に繋がるAPI11aと、レコメンド機能12に繋がるAPI12aとが集約されているとする。この際に、ユーザが飲食店を検索する場合、スマートフォン(スマホと略すこともある)にアプリケーション13をインストールし、そのアプリ13からインターネットを介して各API10a〜12aにアクセスして所望のグルメ情報を取得することができる。
この場合、アプリ13からリクエスト情報14qがAPI10aを介して位置情報取得機能10に送信され、位置情報取得機能10がAPI10aを介して位置情報であるレスポンス情報14pをアプリ13へ返す。これにより、スマホに飲食店の位置が表示される。次に、ユーザが、アプリ13でその位置の周辺にどの様な飲食店があるか検索する。この検索によるリクエスト情報15qがAPI11aを介してグルメ検索機能11に送信され、グルメ検索機能11がAPI11aを介して「店」の情報であるレスポンス情報15pをアプリ13へ返す。これにより、スマホに飲食店の情報が表示される。
次に、ユーザが、アプリ13で飲食店の中から嗜好する飲食物を検索する。この検索によるリクエスト情報16qがAPI12aを介してレコメンド機能12に送信され、レコメンド機能12がAPI12aを介してユーザが嗜好する飲食物の情報を含むレスポンス情報16pをアプリ13へ返す。これにより、スマホにユーザが嗜好する飲食物が表示される。
この種の技術として非特許文献1に記載のものがある。
「セキュアプログラミング講座−Webアプリケーション編−第8章マッシュアップ」、[online]、Copyright 2013、IPA独立行政法人、情報処理推進機構、[平成27年1月26日検索]、インターネット〈URL:https://www.ipa.go.jp/security/awareness/vendor/programmingv2/web.html〉
しかし、APIを複数組み合わせてアプリを作成した場合、組み合わせた内の1つのAPIでも機能しなくなると、組合されたAPI全体が機能しなくなり、アプリを提供するサービスが停止してしまうという問題がある。
図14の例では、グルメ検索機能11が×印で示すように機能しなくなった場合、このグルメ検索機能11を含む位置情報取得機能10及びレコメンド機能12の全体が機能しなくなり、アプリ13を提供するサービスが停止してしまう。
本発明は、このような背景に鑑みてなされたものであり、複数組み合わせたAPIの1つが機能不全となった場合でも、その機能不全のAPIに係る機能の情報をアプリケーションに提供することができるAPI集約装置及びAPI互換方法を提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、所定の目的を少なくとも通信を行って実現するイネーブラに繋がるAPIを複数組み合わせたアプリケーションが、所望の情報を取得するためのリクエスト情報を前記APIを介して前記イネーブラへ送信し、前記送信されたリクエスト情報を受信した前記イネーブラが前記リクエスト情報に応じたレスポンス情報を、前記APIを介して前記アプリケーションへ返信する通信システムにおいて、前記アプリケーションと前記イネーブラとの間に少なくとも前記APIを介して接続されたAPI集約装置であって、前記アプリケーションから所望のイネーブラへ前記APIを介して前記リクエスト情報を送信した際に、当該リクエスト情報の内容に適合したレスポンス情報が返信されない機能不全の場合、当該機能不全のイネーブラに予め対応付けられた対応イネーブラからのレスポンス情報を、当該対応イネーブラに繋がる対応APIを介して当該アプリケーションへ返信するAPI処理機能部を備えることを特徴とするAPI集約装置である。
この構成によれば、複数組み合わせたAPIの何れかが機能不全となった場合でも、その機能不全のAPIに係る機能の情報を、そのAPIに係る対応APIを介してアプリケーションに提供することができる。少なくとも前記APIを介してというのは、アプリケーションからAPI集約装置に繋がるAPIとイネーブラに繋がるAPIとは、API集約装置を介する際にAPIのパラメータ等の形式が置き換えられている場合がある。形式を置き換える場合は、置き換える形式の対応関係をAPI集約装置で保持する。
請求項2に係る発明は、前記API処理機能部は、前記API毎に繋がる機能に互換性が有る場合に、その互換性の有るAPIの対応関係を示すAPI互換情報を記憶するデータベースと、前記アプリケーションから送信されるリクエスト情報を受信したイネーブラが返信するレスポンス情報を受信した際に、当該レスポンス情報が予め定められた規定の内容に不適合の場合、当該不適合のレスポンス情報を返信したイネーブラに繋がるAPIに係る前記対応APIが、前記データベースのAPI互換情報に存在すれば、互換動作可能と判断する判断部と、前記互換動作可能と判断された際に、前記不適合のレスポンス情報を返信したイネーブラへのリクエスト情報を、前記対応APIに繋がる対応イネーブラへのリクエスト情報に変換し、この変換されたリクエスト情報を対応イネーブラへ送信する変換部と、前記変換されたリクエスト情報を受信した対応イネーブラから返信されるレスポンス情報を、前記アプリケーションへ返信する送信部と、を備えることを特徴とする請求項1に記載のAPI集約装置である。
この構成によれば、APIやイネーブラ等が機能不全となった場合でも、それを判定し、API処理機能部が機能不全となったAPIに係る対応API及び対応イネーブラへ切り替える互換切替動作を行って、対応イネーブラに適合するリクエスト情報を対応APIを介して対応イネーブラへ送信する。これにより、API処理機能部が対応イネーブラから返信されるレスポンス情報をアプリケーションへ返信する。このため、アプリケーションを有するスマートフォン等の端末機において、所望のレスポンス情報を得ることができる。API集約装置に接続するイネーブラに繋がるAPIが、接続される前からAPI集約装置へ繋がるAPIのAPIポリシーと合致しない場合には、API集約装置でAPIのパラメータ等の形式を置き換えている場合がある。そこで、その形式を置き換える場合は、置き換える形式の対応関係をAPI集約装置で保持する。
請求項3に係る発明は、前記API処理機能部は、前記アプリケーションから送信されたリクエスト情報を蓄積する蓄積部を更に備え、前記判断部は、前記アプリケーションから送信されるリクエスト情報を受信したイネーブラから返信されたレスポンス情報を受信した際に、当該受信したレスポンス情報が、前記蓄積されたリクエスト情報の内容に不適合の場合に、前記イネーブラ及び前記APIを含む通信経路の双方の機能不全と判断し、この機能不全と判断した通信経路上の当該イネーブラに繋がるAPIに係る前記対応APIが、前記データベースのAPI互換情報に存在すれば、互換動作可能と判断することを特徴とする請求項2に記載のAPI集約装置である。
この構成によれば、次のような作用効果を得ることができる。アプリケーションへ送信されたリクエスト情報を一旦蓄積しておき、その後、アプリケーションからのリクエスト情報を受信したイネーブラからの返信レスポンス情報を受信する。判断部は、その受信したレスポンス情報が、蓄積されたリクエスト情報の内容に不適合の場合に機能不全と判断することができるので、正確に機能不全と判断することができる。
請求項4に係る発明は、前記判断部は、前記リクエスト情報を受信した前記イネーブラからの返信レスポンス情報が、所定時間内に受信できなかった場合に、イネーブラ及びAPIを含む通信経路の双方の機能不全と判断し、この機能不全と判断した通信経路の当該イネーブラに繋がるAPIに係る前記対応APIが、前記データベースのAPI互換情報に存在する際に、互換動作可能と判断することを特徴とする請求項2に記載のAPI集約装置である。
この構成によれば、アプリケーションへ送信されたリクエスト情報を受信したイネーブラからの返信レスポンス情報が、所定時間内に受信できなかった際に機能不全と判断するので、タイマを設けるだけ等の簡単な構成で正確に、機能不全を判断することができる。
請求項5に係る発明は、前記判断部は、前記リクエスト情報を受信した前記イネーブラからの返信レスポンス情報がエラー情報である場合に、イネーブラ及びAPIを含む通信経路の双方の機能不全と判断し、この機能不全と判断した通信経路の当該イネーブラに繋がるAPIに係る前記対応APIが、前記データベースのAPI互換情報に存在する際に、互換動作可能と判断することを特徴とする請求項2に記載のAPI集約装置である。
この構成によれば、アプリケーションへ送信されたリクエスト情報を受信したイネーブラからの返信レスポンス情報がエラー情報であることを検出するだけで機能不全と判断するので、簡単な構成で正確に、機能不全を判断することができる。
請求項6に係る発明は、前記変換部は、前記判断部で前記互換動作可能と判断された際に、前記対応APIに繋がる対応イネーブラへのリクエスト情報の送信後に当該対応イネーブラから返信されたレスポンス情報を、前記不適合のレスポンス情報を返信したイネーブラから本来適正に出力されるレスポンス情報に整合するように変換し、前記送信部は、前記整合されたレスポンス情報を前記アプリケーションへ返信することを特徴とする請求項2〜5の何れか1項に記載のAPI集約装置である。
この構成によれば、APIやイネーブラ等が機能不全となった場合でも、API処理機能部が機能不全となったAPIに係る対応API及び対応イネーブラへ切り替える互換切替動作を行う。この際、変換部は、対応イネーブラから返信されたレスポンス情報を、機能不全のイネーブラから本来適正に出力されるレスポンス情報としてアプリケーションへ返信する。このため、アプリケーションを有するスマートフォン等の端末機では、イネーブラ等の機能不全による互換切替動作を意識することなく、所望の情報を見ることができる。つまり、アプリケーションの可用性向上によりユーザはサービスを継続して受けることができるようになる。
請求項7に係る発明は、所定の目的を少なくとも通信を行って実現するイネーブラに繋がるAPIを複数組み合わせたアプリケーションが、所望の情報を取得するためのリクエスト情報を前記APIを介して前記イネーブラへ送信し、前記送信されたリクエスト情報を受信した前記イネーブラが前記リクエスト情報に応じたレスポンス情報を、前記APIを介して前記アプリケーションへ返信する通信システムにおいて、前記アプリケーションと前記イネーブラとの間に少なくとも前記APIを介して接続されたAPI集約装置によるAPI集約方法であって、前記API集約装置は、前記アプリケーションから所望のイネーブラへ前記APIを介して前記リクエスト情報を送信した際に、当該リクエスト情報の内容に適合したレスポンス情報が返信されない機能不全の場合、当該機能不全のイネーブラに予め対応付けられた対応イネーブラからのレスポンス情報を、当該対応イネーブラに繋がる対応APIを介して当該アプリケーションへ返信するステップを実行することを特徴とするAPI互換方法である。
この方法によれば、複数組み合わせたAPIの何れかが機能不全となった場合でも、その機能不全のAPIに係る機能の情報を、そのAPIに係る対応APIを介してアプリケーションに提供することができる。
本発明によれば、複数組み合わせたAPIの1つが機能不全となった場合でも、その機能不全のAPIに係る機能の情報をアプリケーションに提供することができるAPI集約装置及びAPI互換方法を提供することができる。
本発明の実施形態に係るAPI集約装置を含む通信システムの構成を示すブロック図である。 本実施形態のAPI集約装置によるAPI互換処理の動作を説明するためのブロック図である。 本実施形態のAPI集約装置の特徴構成を示すブロック図である。 (a)リクエスト情報の構成を示す図、(b)レスポンス情報の構成を示す図である。 (a)リクエスト情報の具体例を示す図、(b)レスポンス情報の具体例を示す図である。 (a)API互換動作の第1パターンの説明図、(b)API互換動作の第2パターンの説明である。 (a)API互換動作の第3パターンの説明図、(b)API互換動作の第4パターンの説明である。 本実施形態のAPI集約装置による第2パターンの互換動作を説明するためのブロック図である。 第2パターンの互換動作において送受信されるリクエスト情報の具体例を示す図である。 第2パターンの互換動作において送受信されるレスポンス情報の具体例を示す図である。 (a)リクエスト情報のパラメータ(リクエストパラメータ)の具体例を示す図、(b)レスポンス情報のパラメータ(レスポンスパラメータ)の具体例を示す図である。 本実施形態のAPI集約装置による第2パターンの互換動作を説明するための第1のフローチャートである。 本実施形態のAPI集約装置による第2パターンの互換動作を説明するための第2のフローチャートである。 従来のアプリケーションからAPIを介した各機能へのアクセスにより、所望情報を取得する際の動作を説明するためのブロック図である。
以下、本発明の実施形態を、図面を参照して説明する。
<実施形態の構成>
図1は、本発明の実施形態に係るAPI集約装置を含む通信システムの構成を示すブロック図である。
図1に示す通信システム20は、API集約装置24と、m個のアプリケーション25a〜25mと、j個のAPI26a〜26jと、n個イネーブラ27a,27b,27c,27d,〜27nと、n個のAPI28a,28b,28c,28d,〜28nとを備えて構成されている。
j個のAPI26a〜26jは、API集約装置24とm個のアプリケーション25a〜25mとの間に接続ており、m個のアプリケーション25a〜25mとは個数が異なる。また、n個のAPI28a〜28nは、API集約装置24とn個のイネーブラ27a〜27nとの間に接続ており、n個のイネーブラ27a〜27nと同数である。
各々のアプリケーション(アプリ)25a〜25mは、クラウド等に存在し、言い換えれば、インターネットのWEB(World Wide Web)上に存在し、インターネットに接続されている。例えば、スマートフォン(スマホ)やパーソナルコンピュータ等の端末機に、アプリ(例えば25a)をインストールし、このクライアントのアプリ25aからインターネット上のアプリサーバ(図示せず)にアクセスする。アプリサーバにはプログラミングコードが書かれており、このコードの中にAPI集約装置24のAPI26a〜26jを実行するというソースコードが書かれている。このソースコードを実行すると、インターネットを介してAPI集約装置24まで信号が伝わり、API28a〜28nにアクセスする。このアクセスが行われると、API集約装置24に繋がっている例えば位置情報取得機能としてのイネーブラ27aのAPI28aから、「位置情報」を取得し、これをアプリサーバを介してスマートフォンに返すといった仕組みになっている。
イネーブラ27a〜27nは、通信処理機能を備え、位置検索や必要情報等のユーザが所望する情報を提供する等、何らかの目的を果たすための機能を有する装置である。本実施形態では、例えば1つのイネーブラ27が1つの機能を持つものとする。1つの機能とは、例えば位置情報取得機能、グルメ検索機能及びレコメンド機能等の何れか1つの機能である。但し、1つのイネーブラ27は、位置情報取得機能、グルメ検索機能、レコメンド機能の3つの機能を併せ持ったり、2つの機能を併せ持ったりできる。当然のことながら、3つを超える機能を持つ場合もある。
API集約装置24は、利用したいAPIの機能が不全(機能不全)となった際に、その不全となった機能に互換性のある予め対応付けられた機能のAPIを利用する処理を行う。このAPI集約装置24は、API処理機能部21、開発者ポータル機能部22及び保守運用機能部23を備える。
但し、機能不全とは、アプリケーションからのリクエスト情報の内容に適合したレスポンス情報が、APIを介したイネーブラからアプリケーションへ返信されて来ない場合をいう。具体的には、機能不全とは、API単独の機能不全、APIが繋がるイネーブラ単独の機能不全、API及びイネーブラ双方の機能不全、APIが繋がる通信回線の断線や通信設備の不具合等の機能不全を含むものとする。後述には、適宜その何れかの表現を用いる。
更に具体的には、機能不全は、例えばイネーブラとしてのグルメ検索機能等の機能であれば、ハード的又はソフト的に壊れているか、メンテナンス中で動作不能となっている等の理由で、本来行うべき正常な動作を行わない状態をいう。
また、機能不全は、後述するように、レスポンス情報がリクエスト情報の内容に適合していない場合(不適合の場合)や、エラー情報が含まれる場合、全てのレスポンス情報が受信できない場合に、機能不全とすることができる。
開発者ポータル機能部(ポータル機能部ともいう)22は、開発者がAPI集約装置24に、事前に利用する複数のAPIに対応関係を持たせる登録処理を行う。例えば、API28bとAPI28cとに何らかの共通要素がある(互換関係がある)場合に、それらAPI28bとAPI28cとが対応関係を持つように登録する。
APIの対応関係は、自APIが望むレスポンス情報が、他APIから得られる関係となっていることが必要条件である。言い換えれば、2つのAPIの全体のレスポンス情報中に、少なくとも共通のレスポンス情報があることが互換性があることであり、この互換性がある場合に、対応付けを行う。この対応付けは、一方のAPIから他方のAPIへ、又は他方のAPIから一方のAPIに対応付ける一方通行の対応付けでもよい。また、一方のAPIと他方のAPIとが双方向に対応付けられていてもよい。
なお、一方のAPIに対応付けられたAPIを、対応APIという。図1では、API28bにAPI28cが対応付けられているので、対応API28cという。また、イネーブラ27bにイネーブラ27cが対応付けられているので、対応イネーブラ27cという。つまり、対応APIといった場合、この対応APIに繋がるイネーブラも同様に対応イネーブラという。
API処理機能部21は、イネーブラ27a〜27n側の所定のAPI(例えば28bと28c)に互換性がある場合に対応付けを行い、利用中の例えばAPI28bのイネーブラ27bが機能不全である場合に、このAPI28bに係る対応API28cに切替え、この切替えたAPI28cに接続されたイネーブラ27cを利用して、その不全となった機能を維持するAPI互換処理(単に、互換処理ともいう)を行う。
この互換処理を、図2を参照して具体的に説明する。但し、本実施形態では、図2に示すように、イネーブラ27aは位置情報取得機能27aであり、イネーブラ27bはAグルメ検索機能27b、イネーブラ27cはBグルメ検索機能27c、イネーブラ27dはレコメンド機能27dであるとする。また、Aグルメ検索機能27bとBグルメ検索機能27cとは、異なる企業が提供する飲食店情報を特定する検索機能である。位置情報取得機能27aにAPI28aが繋がり、Aグルメ検索機能27bにAPI28bが繋がり、Bグルメ検索機能27cにAPI28cが繋がり、レコメンド機能27dにAPI28dが繋がっている。また、各API28a〜28dを組み合わせてアプリ25aが作成されているとする。なお、位置情報取得機能27a、Aグルメ検索機能27b、Bグルメ検索機能27c、レコメンド機能27dを、単に、機能27a、機能27b、機能27c、機能27dと称す場合もある。
この構成において、アプリケーション25aがAPI28aを介して位置情報取得機能27aから位置情報を取得した後に、API28bを介してAグルメ検索機能27bにレスポンス情報でアクセスしたとする。この際、Aグルメ検索機能27bが×印で示すように機能不全の場合、このレスポンス情報は返ってこない。この際、API集約装置24が、Aグルメ検索機能27bと互換性があるBグルメ検索機能27cに切替え、Bグルメ検索機能27cからAPI28cを介して、その不全となったAグルメ検索機能27bと同等なレスポンスを返すことになる。これによって、Bグルメ検索機能27cからのレスポンス情報が、Aグルメ検索機能27bのレスポンス情報としてアプリ25aに返信される。
また、API処理機能部21は、認証機能、トラフィック制御機能及びIF変換機能を有する。
認証機能は、APIがインターネットに公開され、様々なユーザに使用されるため、誰に使用されているかをユーザID等で認証する機能である。
トラフィック制御機能は、検索等のための通信が使用され過ぎるとAPI集約装置24等が破損するので、破損しないようにトラフィック制御を行う機能である。
IF機能は、アプリ25a〜25mからのリクエスト情報又はレスポンス情報の変換を行う機能である。この機能によれば、例えば、軽量なデータ記述言語の1つであるJSON(JavaScript(登録商標) Object Notation)形式を、構造化されたデータを交換するための言語であるXML(Extensible Markup Language)形式に変換することができる。
図1に戻って、保守運用機能部23は、API集約装置24を保守する処理、実際にAPIをAPI集約装置24に接続する処理、実際にAPI互換処理が実行されているか否かを判定する処理等を行う。更に、保守運用機能部23は、検索等のための通信のトラフィック量を分析するトラフィック分析機能や、API集約装置24からグルメ検索機能等のAPIにリクエスト情報を送れるようにするエンジニアリング機能を有する。
次に、図3にAPI集約装置24の特徴構成を示す。このAPI集約装置24は、信号受信部21aと、信号情報蓄積部(蓄積部ともいう)21bと、信号送信部21cと、互換動作実行判断部(判断部ともいう)21dと、互換動作実行部(実行部ともいう)21eと、API互換情報DB(DBともいう)21fと、信号変換部21gと、開発者ポータル機能部22とを備えて構成されている。
但し、破線枠21で囲む次の要素がAPI処理機能部21(図1参照)の機能を分割した構成要素である。即ち、信号受信部21a、信号情報蓄積部21b、信号送信部21c、互換動作実行判断部21d、互換動作実行部21e、API互換情報DB21f及び信号変換部21gが、API処理機能部21の構成要素である。
なお、API互換情報DB21fは請求項記載のデータベースを構成し、信号情報蓄積部21bは請求項記載の蓄積部、互換動作実行判断部21dは請求項記載の判断部、信号変換部21gは請求項記載の変換部、信号送信部21cは請求項記載の送信部を構成する。
ここで、図3のAPI集約装置24で用いられるリクエスト情報とレスポンス情報の構成を、図4を参照して説明する。
図4(a)に示すように、リクエスト情報qは、メソッド及びURI(Uniform Resource Identifier)を有するリクエスト部qrと、ヘッダ情報及び認証情報を有するヘッダ部qhと、データ形式及びパラメータを有するボディ部qbとから構成されている。
図4(b)に示すように、レスポンス情報pは、ステータスコードを有するレスポンス部prと、ヘッダ情報を有するヘッダ部phと、データ形式及びパラメータを有するボディ部pbとから構成されている。
次に、図5(a)及び(b)に、リクエスト情報qとレスポンス情報pの構成例を示し、その説明を行う。
図5(a)に示すリクエスト情報qにおいて、リクエスト部qrの情報は、例えば、「POST/apiName/v1/calls」である。「POST」がメソッドであり、「apiName/v1/calls」がURIである。
ヘッダ部qhの情報は、例えば、「Authorization API−KEY:h47tq384」である。「Authorization」がヘッダ情報であり、「API−KEY:h47tq384」が認証情報である。
ボディ部qbの情報は、例えば、「{“name”:“Alice” “from”:”0422−59−1111” “to”:“0422−59−2222”}」である。{}内の全ての文字列がパラメータである。データ形式は、例えばJSON形式である。
次に、図5(b)に示すレスポンス情報pにおいて、レスポンス部prの情報は、例えば、「200 OK」であり、これがステータスコードである。
ヘッダ部phの情報は、例えば、「Location http://xxx/aaa/v1/bb」であり、これがヘッダ情報である。
ボディ部pbの情報は、例えば、「{“id”:“001”}」であり、これがパラメータである。データ形式は、例えばJSON形式である。
図3に戻って、DB21fは、API互換情報を記憶するものである。API互換情報は、前述したように、複数のAPIに繋がる機能に何らかの互換性がある場合に、その互換性を有するAPIの対応関係を示す情報である。API互換情報には、差分パラメータ、類似率等が有る。
差分パラメータについて説明する。例えば、一方のAPI28bに係るリクエスト情報に、パラメータとして送信元の電話番号と送信先の電話番号が保持されており、他方のAPI28cに係るリクエスト情報に、パラメータとして送信元の電話番号と送信先のURL(Uniform Resource Locator)が保持されているとする。この場合、パラメータは共通であるが、電話番号とURLとに差分があるので、これを差分パラメータという。
類似率は、2つのAPI28b,28cに係る各全体情報における類似した情報の比率である。例えば、類似率は、全体情報(例えば100)から差分パラメータ等の差分(例えば20)を減算した結果(80)が、全体情報(100)に占める割合である。
ポータル機能部22は、DB21fから、矢印Y0で示す信号により、API処理機能部21により公開されているAPIに互換性のあるAPI互換情報を取得し、このAPI互換情報に応じて各APIを対応付けて登録する。
ここで、アプリ開発者30は、図示せぬ通信端末機により、矢印Y1で示す信号により、API利用時に利用するAPIと、これに対応付けられているAPIとを、ポータル機能部22から選択し、これらの選択したAPIを、破線矢印Y2で示す信号によりアプリ25aに関連付ける。
アプリ25aは、矢印Y3で示す信号により、API集約装置24を介して、当該アプリ25aに関連付けられたAPI(例えば図1の28b)に向けてリクエスト情報を送信する。この送信されたリクエスト情報は、API集約装置24の信号受信部21aで受信される。
信号受信部21aは、矢印Y4で示す信号により、受信したリクエスト情報を蓄積部21bに記憶して蓄積する。また、信号受信部21aは、矢印Y5で示す信号により、同リクエスト情報を信号送信部21cへ出力する。
信号送信部21cは、矢印Y6で示す信号により、そのリクエスト情報をAPI28b(図1参照)を介してイネーブラ27bへ送信する。
イネーブラ27bは、受信したリクエスト情報に応じたレスポンス情報を、矢印Y7で示す信号により、API28b(図1参照)を介して信号受信部21aへ送信する。
信号受信部21aは、イネーブラ27bから受信したレスポンス情報を、矢印Y8で示す信号により、判断部21dへ出力する。
判断部21dは、信号受信部21aからレスポンス情報を受信すると、蓄積部21bから矢印Y9で示す信号により、受信したレスポンス情報に対応するリクエスト情報を取得する。更に、判断部21dは、DB21fから矢印Y10で示す信号により、ポータル機能部22で先に取得され、矢印Y3で示したリクエスト情報の送信契機となったAPI互換情報を取得する。
更に、判断部21dは、上記の取得したリクエスト情報へのレスポンス情報の対応関係から、当該レスポンス情報の送信元のイネーブラ27bが正常か、機能不全かを判断する。この機能不全とは、(1)レスポンス情報を受信せず、タイムアウトとなった場合、(2)レスポンス情報としてエラー情報が返ってきた場合、(3)所望以外のレスポンス情報が返ってきた場合等である。
判断部21dの判断において、レスポンス情報の内容がリクエスト情報の内容に適合していれば、正常なので、この場合、レスポンス情報は、実行部21e及び信号変換部21gを通過して信号送信部21cから、API26b(図1参照)を介してアプリ25aへ返信される。
一方、レスポンス情報の内容がリクエスト情報の内容と全く対応していなかったり、レスポンス情報の内容が、この送信元のイネーブラ27bの機能不全を示す情報である場合、判断部21dは、イネーブラ27bが機能不全と判断する。
この機能不全と判断した判断部21dは、先に取得したAPI互換情報によりAPI互換動作(互換動作ともいう)が可能か否かを判断する。つまり、レスポンス情報の送信元のイネーブラ27bに、他のイネーブラが対応付けられているか否かを判断する。対応付けられていない場合、判断部21dは互換動作が不可能と判断する。この場合、判断部21dは、矢印Y11で示す信号により、実行部21eへ互換動作不可能の情報を出力する。この情報を受けた実行部21eは、エラー情報を、矢印Y12,Y13,Y14で示す信号により、実行部21e及び信号変換部21gを介して信号送信部21cから、API26b(図1参照)を更に介してアプリ25aへ返信する。これにより、アプリ25aに係る例えばスマートフォンのユーザは、所望の検索内容が検索不能であることを認識できる。
一方、レスポンス情報の送信元のイネーブラ27bに、他のイネーブラ(例えば27c)が対応付けられている場合、判断部21dは互換動作が可能と判断する。この場合、判断部21dは、矢印Y11で示す信号により、実行部21eへ互換動作可能の情報を出力する。互換動作可能を受けた実行部21eは、矢印Y12で示す信号により、機能不全のイネーブラ27b及びこれに対応付けられたイネーブラ27cのAPI互換情報を信号変換部21gへ出力する。
信号変換部21gは、機能不全のイネーブラ27bへAPI28bを介して送信されたリクエスト情報を、対応イネーブラ27cに繋がる対応API28cへのリクエスト情報に変換し、これを、矢印Y13で示す信号により、信号送信部21cへ出力する。信号送信部21cは、その対応API28cへのリクエスト情報を、矢印Y15で示す信号により、API28c(図1参照)を介して対応イネーブラ27cへ送信する。
対応イネーブラ27cは、受信したリクエスト情報に応じたレスポンス情報を、矢印Y16で示す信号により信号受信部21aへ送信する。この信号受信部21aは、受信したレスポンス情報を、矢印Y17で示す信号により信号変換部21gへ出力する。
信号変換部21gは、対応イネーブラ27cから受信したレスポンス情報を、機能不全のイネーブラ27bから本来適性に出力されるレスポンス情報に整合するように変換し、この変換されたレスポンス情報を、矢印Y18で示す信号により、信号送信部21cへ入力する。信号送信部21cは、その入力されたレスポンス情報を、矢印Y14で示す信号により、API26bを介してアプリ25aへ送信する。
この際、アプリ25aへのレスポンス情報が、対応イネーブラ27c(又は対応API28c)からの情報である内容を付してもよい。また、対応イネーブラ27c(又は対応API28c)からの応答であるレスポンス情報が、アプリ25aの所望の応答になるようにレスポンス情報を変更して、アプリ25aへ返信してもよい。この場合、図4(b)に示したレスポンス情報pのレスポンス部pr、ヘッダ部ph及びボディ部pbの何れかの情報を変更することになる。例えば、図5(b)に示すボディ部pbでは、データ形式がJSON形式であるが、これをXML形式に変換することができる。
なお、信号変換部21gは、上述したように、対応イネーブラ27cから受信したレスポンス情報を、本来適性に出力されるレスポンス情報に整合するように変換するが、この変換を行わず、その受信したレスポンス情報をアプリ25aへ送信するようにしてもよい。
このような構成の図3に示すAPI集約装置24は、各機能部を、リクエスト情報に対する処理部と、レスポンス情報に対する処理部とを分けて構成してもよい。
次に、前述した互換動作のパターンについて説明する。互換動作のパターンは、図6及び図7に示すように、第1〜第4の4つのパターンがある。図6(a)に第1パターン、(b)に第2パターン、図7(a)に第3パターン、(b)に第4パターンを示す。但し、全てのパターンにおいて、イネーブラ27bにイネーブラ27cが対応付けられているとする。これにより、各イネーブラ27b,27cに繋がるAPI28bにAPI28cが対応付けられ、また、アプリ25a側のAPI26bにAPI26cが対応付けられている。
図6(a)及び(b)に示す第1及び第2パターンは、互換動作として、×印で示す機能不全となったイネーブラ27bに繋がるAPI28bに代わりに、矢印q3で示すように、アプリ25a側の対応API26cにリクエストする場合のパターンである。
図6(a)に示す第1パターンは、アプリ25aから矢印q1,q2で示すように、API26b、API集約装置24、API28bを介してイネーブラ27bへリクエスト情報を送信したが、イネーブラ27bが×印で示すように機能不全であり、この不全内容のレスポンス情報が、矢印p1で示すようにAPI集約装置24に返ってきた場合である。この場合、API集約装置24は、互換動作が可能か否かを判断し、可能な場合に、矢印q3で示すように、アプリ25a側のAPI26cにリクエスト情報を送信する。
このリクエスト情報は、矢印q4で示すように対応API28cを介して対応イネーブラ27cへ送信される。これにより、対応イネーブラ27cがそのリクエスト情報に応じたレスポンス情報を、矢印p2で示すようにAPI集約装置24へ送信する。API集約装置24は、対応イネーブラ27cから受信したレスポンス情報を、機能不全のイネーブラ27bから本来適性に出力されるレスポンス情報に整合するように変換し、この変換されたレスポンス情報を、矢印p3,p4で示すように、API26bを介してアプリ25aへ返信する。
図6(b)に示す第2パターンにおいて、矢印q1,q2,p1,q3,q4,p2の順序で示す動作は、第1パターンと同様である。この後、矢印p2で示す対応イネーブラ27cからのレスポンス情報を受信したAPI集約装置24は、対応イネーブラ27cから受信したレスポンス情報を、機能不全のイネーブラ27bから本来適性に出力されるレスポンス情報に整合するように変換し、この変換されたレスポンス情報を、矢印p5で示すように、API26cを介してアプリ25aへ返信する。
図7(a)及び(b)に示す第3及び第4パターンは、互換動作として、×印で示す機能不全となったイネーブラ27bに繋がるAPI28bに代わりに、矢印q5で示すように、対応イネーブラ27c側の対応API28cにリクエストする場合のパターンである。
図7(a)に示す第3パターンにおいて、矢印q1,q2,p1の順序で示す動作は、第1パターンと同様である。この後、矢印q4で示すように、機能不全のイネーブラ27bからの不全内容のレスポンス情報を受信したAPI集約装置24は、互換動作が可能か否かを判断し、可能な場合に、矢印q5で示すように、対応API28cを介して対応イネーブラ27cへリクエスト情報を送信する。
このリクエスト情報は、矢印q4で示すように対応API28cを介して対応イネーブラ27cへ送信される。これにより、対応イネーブラ27cがそのリクエスト情報に応じたレスポンス情報を、矢印p2で示すようにAPI集約装置24へ送信する。API集約装置24は、対応イネーブラ27cから受信したレスポンス情報を、機能不全のイネーブラ27bから本来適性に出力されるレスポンス情報に整合するように変換し、この変換されたレスポンス情報を、矢印p3,p4で示すように、API26bを介してアプリ25aへ返信する。これにより、アプリ25aに係る例えばスマートフォンのユーザは、所望の検索内容を確認することができる。
図7(b)に示す第4パターンにおいて、矢印q1,q2,p1,q5,q4,p2の順序で示す動作は、第3パターンと同様である。この後、矢印p2で示す対応イネーブラ27cからのレスポンス情報を受信したAPI集約装置24は、対応イネーブラ27cから受信したレスポンス情報を、機能不全のイネーブラ27bから本来適性に出力されるレスポンス情報に整合するように変換し、この変換されたレスポンス情報を、矢印p5で示すように、API26cを介してアプリ25aへ返信する。
このような第1〜第4パターンの互換動作は、図3に示したAPI集約装置24の判断部21dが互換動作可能と判断した際に、実行部21eを介して信号送信部21cが行うようになっている。実質的には、信号送信部21cに第1〜第4パターンの何れか1つの互換動作を行うためのプログラムや回路が予め形成されている。
<実施形態の動作>
次に、本実施形態に係るAPI集約装置24による互換動作を説明する。但し、互換動作として上述した第2パターンの場合を代表して説明する。図8に第2パターンの構成図を示す。
また、図9に第2パターンの互換動作において送受信されるリクエスト情報qの具体例を示し、図10にレスポンス情報pの具体例を示し、図11(a)にリクエスト情報のパラメータ(リクエストパラメータ)の具体例を示し、図11(b)にレスポンス情報のパラメータ(レスポンスパラメータ)の具体例を示す。これらの図9〜図11に示すリクエスト情報q及びレスポンス情報pの具体例は、図4(a)及び(b)に示したリクエスト情報q及びレスポンス情報pの基本構成に対応している。
図9に示すリクエスト情報qは、当該リクエスト情報qのリクエスト項目(リクエスト形式)として、メソッド種別、URI形式、ヘッダ情報、認証情報、データ形式を記載している。図10に示すレスポンス情報pは、当該レスポンス情報pのレスポンス項目(レスポンス形式)として、ステータスコード、ヘッダ情報、データ形式を記載している。
本互換動作を行うための互換性の例では、パラメータの互換性について説明する。但し、パラメータ以外にも互換性を保つことが可能である。APIを集約する本実施形態のAPI集約装置24(図8参照)では、受信したリクエスト情報q及び、送信するレスポンス情報p、送受信する信号の全てについて互換のための変換を可能とする機能を持つ。例えば、認証情報(具体例は図5参照)が異なる場合に、当該認証情報を統一すること、図10に示すデータ形式を異なる形式に変換、例えばJSON形式をXML形式に変換(又はXML形式をJSON形式に変換)することが可能である。つまり、データ形式が異なっていても互換性を保つことができる。
図8に示すAグルメ検索機能27bとBグルメ検索機能27cとは、前述したように、異なる企業が提供する飲食店情報を特定する検索機能である。アプリ25aから各検索機能27b,27cに、図11(a)に示すリクエストパラメータとしての店舗名と、緯度及び経度とをリクエスト情報で与えると、図11(b)に示すレスポンスパラメータとしての住所、カテゴリ及びURLがレスポンス情報として返信されるようになっている。
図9のURI形式に示すように、Aグルメ検索機能27bの送信先は、「http://api.sample.com/gourmetA/」となっている。これは、APIを集約するAPI集約装置24で該当のAPIを公開するときに、「http://api.sample.com/」というようにドメイン名を共通化してAPIをリストとして公開しているためである。
図11(a)及び(b)に示すAグルメ検索機能27b及びBグルメ検索機能27cの各々は、リクエスト情報q及びレスポンス情報pの各々に含むパラメータの意味は全く同じで、名称が異なる場合を示している。例えば、店舗名を表すAグルメ検索機能27bでは「name」が、Bグルメ検索機能27cでは「ShopName」となっているが、全く同じ内容を表している。このため、その単語の比較対象リストを、API互換情報DB21f(図3参照)に保持することで互換性を表すことができる。また、API26b,26cでは、異なるAPIであっても同じ意味のパラメータは同じパラメータ名で設計している。
このような内容のリクエスト情報q及びレスポンス情報pが用いられる場合において、本実施形態のAPI集約装置24による第2パターンの場合の互換動作を、図12及び図13に示すフローチャートを参照して説明する。
但し、ユーザが図示せぬスマホで飲食店情報を検索するものとする。この際に、スマホに図8に示すアプリケーション25aをインストールし、そのアプリ25aからインターネットを介して各API28a〜28dにアクセスして、各機能27a〜27dから所望の飲食店情報を取得するものとする。
図12に示すステップS1において、アプリケーション25aが飲食店の位置情報取得のためのリクエスト情報qを、矢印q11で示す信号により、API26a、API集約装置24、API28aを介して位置情報取得機能27aへ送信する。このリクエスト情報qを受信した位置情報取得機能27aは、リクエスト情報qに応じた位置情報のレスポンス情報pを、矢印p11で示す信号により、API28a、API集約装置24、API26aを介してアプリ25aへ返信する。これにより、アプリ25aで飲食店の位置情報が取得される。
これにより、スマホに飲食店の位置が表示され、ユーザは、その位置の周辺にどの様な飲食店があるかを検索可能となる。ここでユーザが、スマホにおいて、その飲食店検索のための操作を行ったとすると、次のような動作が実行される。
ステップS2において、アプリ25aはAPI集約装置24に対して、Aグルメ検索機能27bのAPI26b「例えば図9に示すhttp://api.sample.com/gourmetA」に、次の文字列のリクエスト情報q(矢印q12)を送信する。
このリクエスト情報qは、例えば「GET http://api.sample.com/gourmetA?name=xxx&latitude=36.124&longitude=136.224」である。
このリクエスト情報qは、API集約装置24の蓄積部21b(図3)に一旦記憶(蓄積)される。
次に、ステップS3において、API集約装置24は、上記ステップS2で受信したリクエスト情報qを、矢印q13で示す信号により、API28b「例えば図9に示すhttp://shopA.xsample.com/searchGourmetA」を介してAグルメ検索機能27bへ送信する。
この送信されるリクエスト情報qは、例えば「GET http://shopA.xsample.com/searchGourmetA?name=xxx&latitude=36.124&longitude=136.224」である。
ステップS4において、Aグルメ検索機能27bは、受信したリクエスト情報qに応じたレスポンス情報pを、矢印p13で示す信号により、API28bを介してAPI集約装置24へ返信する。
ここで、ステップS5において、API集約装置24は、上記ステップS4で受信されたレスポンス情報pが、タイムアウトとならず適正に受信されたか否かを判断する。この結果、適正に受信された場合(Yes)、ステップS6において、API集約装置24は、レスポンス情報pにエラー情報が無いか否かを判断する。この結果、エラー情報が無ければ(Yes)、ステップS7において、API集約装置24は、上記ステップS3で記憶したリクエスト情報を蓄積部21bから取得する。
ステップS8において、API集約装置24は、上記ステップS5で受信されたレスポンス情報pが、上記ステップS7で取得されたリクエスト情報qの内容に適合しており、所望のレスポンス情報pか否かを判断する。この結果、所望のレスポンス情報pであれば(Yes)、ステップS9に進む。
ステップS9において、API集約装置24は、所望のレスポンス情報pがAPI28bに係る対応API(又は対応機能)28cからのレスポンス情報が否かを判断する。この結果が、対応API(又は対応機能)からのレスポンス情報で無ければ(No)、ステップS10において、API集約装置24は、レスポンス情報をAPI26bを介してアプリ25aへ返信(図8には矢印で示さず)する。これにより、アプリ25aに係るスマートフォンのユーザは、所望の検索内容を確認することができる。
一方、上記ステップS5において、タイムアウトとなりレスポンス情報pが受信されなかったと判断(No)された場合、上記ステップS6において、レスポンス情報pにエラー情報があると判断(No)された場合、上記ステップS8において、レスポンス情報pが所望のレスポンス情報でないと判断(No)された場合の、何れかの場合は、図13に示すステップS11へ進む。但し、それらステップS5,S6,S8の何れかの判断が(No)の場合は、Aグルメ検索機能27bが機能不全の場合である。
ステップS11において、API集約装置24は、レスポンス情報pを受信したAグルメ検索機能27bに繋がるAPI28bのAPI互換情報を、DB21fから検索して取得する。
ステップS12において、API集約装置24は、その取得したAPI互換情報により、Aグルメ検索機能27bの互換動作が可能か否かを判断する。この結果、不可能(No)と判断された場合、ステップS13において、API集約装置24は、レスポンス情報pとしてエラー情報をアプリ25aへ返信(図8には矢印で示さず)する。これにより、アプリ25aに係るスマートフォンのユーザは、所望の検索内容が検索不能であることを認識できる。
一方、上記ステップS12において、互換動作が可能(Yes)と判断された場合、ステップS14において、API集約装置24は、図8に示すAグルメ検索機能27bへAPI26b,28bを介して送信されたリクエスト情報q12を、Aグルメ検索機能27bに対応付けられたBグルメ検索機能27cに繋がる対応API26cへのリクエスト情報qcに変換する。
この変換されたリクエスト情報qcは、ステップS15において、図8に矢印q14で示す信号により対応API26cへ送信され、更に、API集約装置24から矢印q15で示す信号により、API28cを介してBグルメ検索機能27cへ送信される。
但し、上記の矢印q14で示すリクエスト情報qcは、例えば図9に示すBグルメ検索機能27cのAPI26cのURI形式の「GET http://api.sample.com/gourmetB?shop=xxx&lat=36.124&long=136.224」である。
また、矢印q15で示すリクエスト情報qcは、例えば図9に示すBグルメ検索機能27cのAPI28cのURI形式の「GET http://shopB.ysample.com/shopSearchB?ShopName=xxx&Lattitude=36.124&Longitude=136.224」である。
Bグルメ検索機能27cは、図12に示すステップS4において、受信したリクエスト情報qcに応じたレスポンス情報pcを、矢印p14で示す信号により、API28cを介してAPI集約装置24へ返信する。
上記の矢印p14で示すレスポンス情報pcは、例えば「ShopAddress:住所、GenreName:お店ジャンル、ShopUrl:店舗URL」である。
次に、上述したステップS5,S6,S8の判断結果がNoであれば、ステップS11へ進み、以降上述した処理が同様に行われる。この際、図13のステップS11,S12と進み、ステップS12においてBグルメ検索機能27cの次のグルメ検索機能が無いので、Noと判定され、ステップS13においてエラー情報がアプリ25aへ送信されて処理が終了する。
一方、ステップS5,S6,S8の判断結果がYesであれば、ステップS9において、API集約装置24は、受信したレスポンス情報pcが対応API(又は対応機能)からのレスポンス情報が否かを判断する。この結果が、対応API(又は対応機能)としてのAPI28cを介したBグルメ検索機能27cからのレスポンス情報pcで有れば(Yes)、ステップS16に進む。
ステップS16において、API集約装置24は、レスポンス情報pcを、機能不全のAグルメ検索機能27bから本来適性に出力されるレスポンス情報pb1に整合するように変換する。
この変換されたレスポンス情報pb1は、例えば「address:住所、category:お店ジャンル、url:店舗URL」となる。
そして、ステップS10において、API集約装置24は、その変換したレスポンス情報pb1を、図8の矢印p15で示す信号により、API26cを介してアプリ25aへ送信する。これにより、アプリ25aに係るスマートフォンのユーザは、所望の検索内容を確認することができる。
なお、ユーザが、スマホのアプリ13で検索した飲食店から、更に、嗜好する飲食物を検索したとする。この場合、その検索によるリクエスト情報qdが、矢印q16で示す信号により、API26d、API集約装置24、API28dを介してレコメンド機能27dへ送信される。レコメンド機能27dは、ユーザが嗜好する飲食物の情報であるレスポンス情報pdを、矢印p16で示す信号により、API28d、API集約装置24、API26dを介してアプリ25aへ返信する。これにより、アプリ25aでユーザが嗜好する飲食物の情報が取得されて表示される。
<実施形態の効果>
以上説明した本実施形態のAPI集約装置24は、図2に示す通信システムのアプリケーション25aとイネーブラ27a〜27dとの間に少なくともAPI26a,28a〜28dを介して接続されている。通信システムは、所定の目的を少なくとも通信を行って実現するイネーブラ27a〜27dに繋がるAPI28a〜28dを複数組み合わせたアプリケーション25aを有する。このアプリケーション25aが、所望の情報を取得するためのリクエスト情報を、情報インターフェイスであるAPI26a,28a〜28dを介してイネーブラ27へ送信する。この送信したリクエスト情報を受信したイネーブラ27a〜27dが当該リクエスト情報に応じたレスポンス情報を、API28a〜28d,26aを介してアプリケーション25aへ返信するようになっている。但し、「少なくともAPIAPI26a,28a〜28dを介して」というのは、アプリケーション25aからAPI集約装置24に繋がるAPI26aとイネーブラ27a〜27dに繋がるAPI28a〜28dとは、API集約装置24を介する際にAPI28a〜28dのパラメータ等の形式が置き換えられている場合がある。形式を置き換える場合は、置き換える形式の対応関係をAPI集約装置24で保持する。
本実施形態の特徴は、アプリケーション25aから所望のイネーブラ27bへAPI26b,28bを介してリクエスト情報を送信した際に、当該リクエスト情報の内容に適合したレスポンス情報が返信されない機能不全の場合、当該機能不全のイネーブラ27bに予め対応付けられた対応イネーブラ27cからのレスポンス情報を、当該対応イネーブラ27cに繋がる対応API28cを介して当該アプリケーション25aへ返信するAPI処理機能部21を備えることにある。
これによって、複数組み合わせたAPI28a〜28dの何れかが機能不全となった場合でも、その機能不全の例えばAPI28bに係る機能の情報を、そのAPI28bに係る対応API28cを介してアプリケーション25aに提供することができる。
API処理機能部21は、DB21fと、判断部21d、変換部としての信号変換部21gと、送信部としての信号送信部21cとを備える構成とした。
DB21fは、API毎に繋がる機能に何らかの互換性が有る場合に、その互換性の有るAPI28b,28cの対応関係を示すAPI互換情報を記憶する。
判断部21dは、アプリケーション25aから送信されるリクエスト情報を受信したイネーブラ27bからの返信レスポンス情報を受信した際に、当該受信レスポンス情報が予め定められた規定の内容に不適合の場合、又は、当該受信レスポンス情報が当該リクエスト情報の内容に不適合の場合、当該不適合のレスポンス情報を返信したイネーブラ27bに繋がるAPI28bに係る対応API28cが、DB21fのAPI互換情報に存在すれば、互換動作可能と判断する。
信号変換部21gは、判断部21dで互換動作可能と判断された際に、不適合のレスポンス情報を返信したイネーブラ27bへの送信リクエスト情報を、対応API28cに繋がる対応イネーブラ27cへのリクエスト情報に変換し、この変換されたリクエスト情報を対応イネーブラ27cへ送信する。
信号送信部21cは、変換されたリクエスト情報を受信した対応イネーブラ27から返信されるレスポンス情報を、アプリケーション25aへ返信する。
この構成によれば、API28bやイネーブラ27b等が機能不全となった場合でも、API処理機能部21が機能不全となったAPI28bに係る対応API28c及び対応イネーブラ27cへ切り替える互換切替動作を行って、対応イネーブラ27cへの適合リクエスト情報を対応API28cを介して対応イネーブラ27cへ送信し、これにより対応イネーブラ27cから返信されるレスポンス情報をアプリケーション25aへ返信する。このため、アプリケーション25aを有するスマートフォン等の端末機において、所望のレスポンス情報を得ることができる。但し、API集約装置24に接続するイネーブラ27cに繋がるAPI28cが、接続される前からAPI集約装置24へ繋がるAPI28bのAPIポリシーと合致しない場合には、API集約装置24でAPI28cのパラメータ等の形式を置き換えている場合がある。そこで、その形式を置き換える場合は、置き換える形式の対応関係をAPI集約装置24で保持する。
また、この構成の場合、後述するような、対応API28cのレスポンス情報を、元のAPI28bのレスポンス情報に合った形への変換処理を行わない。このため、実行速度のオーバーヘッドがかからないというメリットがある。レスポンス情報は、API集約装置24で提供しているAPI28cからレスポンスが返るため、互換性を考慮したAPI設計をAPI集約装置24で行うことで、レスポンス時の変換処理や互換動作を意識したアプリ開発を考慮せず互換動作を行うことができる。
更に、この構成の場合、対応API28cを実行する際は、API集約装置24からAPI28cにリクエストを送る。このため、API集約装置24から提供するAPIの設計ポリシーを、リクエスト情報(メソッド・パラメータ等)に対する互換性を考慮した設計にしておく。この設計により、互換動作を行う際にリクエスト情報の複雑な変換処理をしなくても軽微の変更(リクエスト情報の宛先の変更等)で再送すればよいため、互換動作による実行速度のオーバーヘッドの削減を行うことが可能となる。また、互換動作のための変換処理をAPI集約装置24にて新規に実装する際に開発コストを削減することができる。
次に、API処理機能部21は、アプリケーション25aから送信されたリクエスト情報を蓄積する蓄積部21bを更に備える。この際に、判断部21dは、蓄積されたと同じリクエスト情報を受信したイネーブラ27bからの返信レスポンス情報が、所定時間内に受信できなかった場合にイネーブラ27b及びAPI28bを含む通信経路の機能不全と判断し、この機能不全と判断した通信経路に介在するAPI28bに係る対応API28cが、DB21fのAPI互換情報に存在する際に、互換動作可能と判断するようにした。
この構成によれば、次のような作用効果を得ることができる。アプリケーション25aへ送信されたリクエスト情報を蓄積部21bに一旦蓄積しておき、その後、アプリケーション25aからのリクエスト情報を受信したイネーブラ27bからの返信レスポンス情報を受信する。判断部21dが、その受信したレスポンス情報が、蓄積されたリクエスト情報の内容に不適合の場合に機能不全と判断することができるので、正確に機能不全と判断することができる。
次に、判断部21dは、リクエスト情報を受信したイネーブラ27bからの返信レスポンス情報が、所定時間内に受信できなかった場合にイネーブラ27b及びAPI28bを含む通信経路の機能不全と判断し、この機能不全と判断した通信経路に介在するAPI28bに係る対応API28cが、DB21fのAPI互換情報に存在する際に、互換動作可能と判断するようにした。
この構成によれば、アプリケーション25aへ送信されたリクエスト情報を受信したイネーブラ27bからの返信レスポンス情報が、所定時間内に受信できなかった際に機能不全と判断するので、タイマを設けるだけ等の簡単な構成で正確に、機能不全を判断することができる。
次に、判断部21dは、リクエスト情報を受信したイネーブラ27bからの返信レスポンス情報がエラー情報である場合にイネーブラ27b及びAPI28bを含む通信経路の機能不全と判断し、この機能不全と判断した通信経路上のAPI28bに係る対応API28cが、DB21fのAPI互換情報に存在する際に、互換動作可能と判断するようにした。
この構成によれば、アプリケーション25aへ送信されたリクエスト情報を受信したイネーブラ27bからの返信レスポンス情報がエラー情報であることを検出するだけで機能不全と判断するので、簡単な構成で正確に、機能不全を判断することができる。
次に、信号変換部21gは、判断部21dで互換動作可能と判断された際に、対応API28cに繋がる対応イネーブラ27cへのリクエスト情報の送信後に当該対応イネーブラ27cから返信されたレスポンス情報を、不適合のレスポンス情報を返信したイネーブラ27bから本来適正に出力されるレスポンス情報に整合するように変換する。更に、信号送信部21cは、その整合されたレスポンス情報をアプリケーション25aへ返信するようにした。
この構成によれば、API28bやイネーブラ27b等が機能不全となった場合でも、API処理機能部21が機能不全となったAPI28bに係る対応API28c及び対応イネーブラ27cへ切り替える互換切替動作を行う。この際、信号変換部21gは、対応イネーブラ27cから返信されたレスポンス情報を、機能不全のイネーブラ27bから本来適正に出力されるレスポンス情報としてアプリケーション25aへ返信する。このため、アプリケーション25aを有するスマートフォン等の端末機では、イネーブラ27等の機能不全による互換切替動作を意識することなく、所望の情報を見ることができる。つまり、アプリケーション25aの可用性向上によりユーザはサービスを継続して受けることができるようになる。
また、この構成の場合、イネーブラ27cからのレスポンス情報によるレスポンスが、元のAPI28bの動作として動くため、アプリ25aは互換動作を意識せずアプリ開発を行うことができる。
次に、API集約装置24は、次のAPI互換方法を実行する。即ち、API集約装置24は、アプリケーション25aから所望のイネーブラ27へAPIを介してリクエスト情報を送信した際に、当該リクエスト情報の内容に適合したレスポンス情報が返信されない機能不全の場合に、当該機能不全のイネーブラ27に予め対応付けられた対応イネーブラ27からのレスポンス情報を、当該対応イネーブラ27に繋がる対応APIを介して当該アプリケーション25aへ返信するステップを実行する。
このAPI互換方法によれば、複数組み合わせたAPI28a〜28dの何れかが機能不全となった場合でも、その機能不全のAPI28bに係る機能の情報を、そのAPI28bに係る対応API28cを介してアプリケーション25aに提供することができる。
その他、具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
20 通信システム
21 API処理機能部
21a 信号受信部
21b 信号情報蓄積部(蓄積部)
21c 信号送信部
21d 互換動作実行判断部(判断部)
21e 互換動作実行部(実行部)
21f API互換情報DB(データベース)
21g 信号変換部
22 開発者ポータル機能部
23 保守運用機能部
24 API集約装置
25a〜25m アプリケーション
26a〜26j,28a〜28n API
27a〜27n イネーブラ
27a 位置情報取得機能(イネーブラ)
27b Aグルメ検索機能(イネーブラ)
27c Bグルメ検索機能(イネーブラ)
27d レコメンド機能(イネーブラ)

Claims (7)

  1. 所定の目的を少なくとも通信を行って実現するイネーブラに繋がるAPIを複数組み合わせたアプリケーションが、所望の情報を取得するためのリクエスト情報を前記APIを介して前記イネーブラへ送信し、前記送信されたリクエスト情報を受信した前記イネーブラが前記リクエスト情報に応じたレスポンス情報を、前記APIを介して前記アプリケーションへ返信する通信システムにおいて、前記アプリケーションと前記イネーブラとの間に少なくとも前記APIを介して接続されたAPI集約装置であって、
    前記アプリケーションから所望のイネーブラへ前記APIを介して前記リクエスト情報を送信した際に、当該リクエスト情報の内容に適合したレスポンス情報が返信されない機能不全の場合、当該機能不全のイネーブラに予め対応付けられた対応イネーブラからのレスポンス情報を、当該対応イネーブラに繋がる対応APIを介して当該アプリケーションへ返信するAPI処理機能部
    を備えることを特徴とするAPI集約装置。
  2. 前記API処理機能部は、
    前記API毎に繋がる機能に互換性が有る場合に、その互換性の有るAPIの対応関係を示すAPI互換情報を記憶するデータベースと、
    前記アプリケーションから送信されるリクエスト情報を受信したイネーブラが返信するレスポンス情報を受信した際に、当該レスポンス情報が予め定められた規定の内容に不適合の場合、当該不適合のレスポンス情報を返信したイネーブラに繋がるAPIに係る前記対応APIが、前記データベースのAPI互換情報に存在すれば、互換動作可能と判断する判断部と、
    前記互換動作可能と判断された際に、前記不適合のレスポンス情報を返信したイネーブラへのリクエスト情報を、前記対応APIに繋がる対応イネーブラへのリクエスト情報に変換し、この変換されたリクエスト情報を対応イネーブラへ送信する変換部と、
    前記変換されたリクエスト情報を受信した対応イネーブラから返信されるレスポンス情報を、前記アプリケーションへ返信する送信部と、
    を備えることを特徴とする請求項1に記載のAPI集約装置。
  3. 前記API処理機能部は、
    前記アプリケーションから送信されたリクエスト情報を蓄積する蓄積部を更に備え、
    前記判断部は、前記アプリケーションから送信されるリクエスト情報を受信したイネーブラから返信されたレスポンス情報を受信した際に、当該受信したレスポンス情報が、前記蓄積されたリクエスト情報の内容に不適合の場合に、前記イネーブラ及び前記APIを含む通信経路の双方の機能不全と判断し、この機能不全と判断した通信経路上の当該イネーブラに繋がるAPIに係る前記対応APIが、前記データベースのAPI互換情報に存在すれば、互換動作可能と判断する
    ことを特徴とする請求項2に記載のAPI集約装置。
  4. 前記判断部は、前記リクエスト情報を受信した前記イネーブラからの返信レスポンス情報が、所定時間内に受信できなかった場合に、イネーブラ及びAPIを含む通信経路の双方の機能不全と判断し、この機能不全と判断した通信経路の当該イネーブラに繋がるAPIに係る前記対応APIが、前記データベースのAPI互換情報に存在する際に、互換動作可能と判断する
    ことを特徴とする請求項2に記載のAPI集約装置。
  5. 前記判断部は、前記リクエスト情報を受信した前記イネーブラからの返信レスポンス情報がエラー情報である場合に、イネーブラ及びAPIを含む通信経路の双方の機能不全と判断し、この機能不全と判断した通信経路の当該イネーブラに繋がるAPIに係る前記対応APIが、前記データベースのAPI互換情報に存在する際に、互換動作可能と判断する
    ことを特徴とする請求項2に記載のAPI集約装置。
  6. 前記変換部は、前記判断部で前記互換動作可能と判断された際に、前記対応APIに繋がる対応イネーブラへのリクエスト情報の送信後に当該対応イネーブラから返信されたレスポンス情報を、前記不適合のレスポンス情報を返信したイネーブラから本来適正に出力されるレスポンス情報に整合するように変換し、
    前記送信部は、前記整合されたレスポンス情報を前記アプリケーションへ返信する
    ことを特徴とする請求項2〜5の何れか1項に記載のAPI集約装置。
  7. 所定の目的を少なくとも通信を行って実現するイネーブラに繋がるAPIを複数組み合わせたアプリケーションが、所望の情報を取得するためのリクエスト情報を前記APIを介して前記イネーブラへ送信し、前記送信されたリクエスト情報を受信した前記イネーブラが前記リクエスト情報に応じたレスポンス情報を、前記APIを介して前記アプリケーションへ返信する通信システムにおいて、前記アプリケーションと前記イネーブラとの間に少なくとも前記APIを介して接続されたAPI集約装置によるAPI集約方法であって、
    前記API集約装置は、
    前記アプリケーションから所望のイネーブラへ前記APIを介して前記リクエスト情報を送信した際に、当該リクエスト情報の内容に適合したレスポンス情報が返信されない機能不全の場合、当該機能不全のイネーブラに予め対応付けられた対応イネーブラからのレスポンス情報を、当該対応イネーブラに繋がる対応APIを介して当該アプリケーションへ返信するステップ
    を実行することを特徴とするAPI互換方法。
JP2015028802A 2015-02-17 2015-02-17 Api集約装置及びapi互換方法 Active JP6475037B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015028802A JP6475037B2 (ja) 2015-02-17 2015-02-17 Api集約装置及びapi互換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015028802A JP6475037B2 (ja) 2015-02-17 2015-02-17 Api集約装置及びapi互換方法

Publications (2)

Publication Number Publication Date
JP2016151881A true JP2016151881A (ja) 2016-08-22
JP6475037B2 JP6475037B2 (ja) 2019-02-27

Family

ID=56695392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015028802A Active JP6475037B2 (ja) 2015-02-17 2015-02-17 Api集約装置及びapi互換方法

Country Status (1)

Country Link
JP (1) JP6475037B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133622A (ja) * 2018-02-02 2019-08-08 富士通株式会社 Apiパラメータのマッピング
WO2022130708A1 (ja) * 2020-12-16 2022-06-23 株式会社日立製作所 演算装置、共通リソース生成方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195709A (ja) * 2005-01-13 2006-07-27 Hitachi Ltd Webサービスシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195709A (ja) * 2005-01-13 2006-07-27 Hitachi Ltd Webサービスシステム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吉川貴,外3名: "柔軟なインタフェース適応のためのWebサービスグループ管理機構", マルチメディア,分散,協調とモバイル(DICOMO 2003)シンポジウム論文集, vol. 第2003巻,第9号, JPN6018000702, 4 June 2003 (2003-06-04), JP, pages 637 - 640 *
吉川貴,外3名: "耐障害性・応答性向上のためのモバイルWebサービスプラットフォーム", 情報処理学会研究報告 2003−MBL−24, vol. 第2003巻,第21号, JPN6018000701, 7 March 2003 (2003-03-07), JP, pages 37 - 44 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133622A (ja) * 2018-02-02 2019-08-08 富士通株式会社 Apiパラメータのマッピング
JP7206687B2 (ja) 2018-02-02 2023-01-18 富士通株式会社 Apiパラメータのマッピング
WO2022130708A1 (ja) * 2020-12-16 2022-06-23 株式会社日立製作所 演算装置、共通リソース生成方法

Also Published As

Publication number Publication date
JP6475037B2 (ja) 2019-02-27

Similar Documents

Publication Publication Date Title
JP6811263B2 (ja) M2m−iotサービスのパブリケーションおよび発見
CN105122931B (zh) 电子设备及在其用户门户服务器中注册个人云装置的方法
US7925735B2 (en) Network-based application late binding
CN104247333B (zh) 用于基于网络的服务的管理的***和方法
US8775671B2 (en) Managing information exchange between business entities
US8527584B2 (en) Method and apparatus for providing service mobility across service deployment boundaries
US20130304666A1 (en) Managing Information Exchange Between Business Entities
CN101997903A (zh) 用于处理超文本传输协议请求的方法和***
US9232340B2 (en) Application store system and application development method using the application store system
CN103095479A (zh) 业务配置的方法及装置
US9826051B2 (en) Content integration framework
US20110137980A1 (en) Method and apparatus for using service of plurality of internet service providers
US10397356B2 (en) Systems and methods for determining a destination location for transmission of packetized data in a network system based on an application server attribute
US20160072901A1 (en) System and Method To Provide A Network-Based Service
JP2016151881A (ja) Api集約装置及びapi互換方法
US20140156786A1 (en) Hybrid objects
EP2897344B1 (en) Content integration framework
CN102075506A (zh) 用于远程设备管理的方法和***
CN111901412B (zh) 一种数据处理方法及计算机可读存储介质
US11521250B2 (en) Method and apparatus for providing digital product using user account synchronization
Dave et al. Ponte message broker bridge configuration using MQTT and CoAP protocol for interoperability of IoT
Passini et al. Developing self-adaptive service-oriented mobile applications: a framework based on dynamic deployment
US11663117B2 (en) Customizable decision service
US20110320527A1 (en) Method and system for managing a web-domain request
Trifa et al. Leveraging the web for a distributed location-aware infrastructure for the real world

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180822

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190131

R150 Certificate of patent or registration of utility model

Ref document number: 6475037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150