JP2017016408A - Api提供システムおよびapi提供方法 - Google Patents

Api提供システムおよびapi提供方法 Download PDF

Info

Publication number
JP2017016408A
JP2017016408A JP2015132759A JP2015132759A JP2017016408A JP 2017016408 A JP2017016408 A JP 2017016408A JP 2015132759 A JP2015132759 A JP 2015132759A JP 2015132759 A JP2015132759 A JP 2015132759A JP 2017016408 A JP2017016408 A JP 2017016408A
Authority
JP
Japan
Prior art keywords
api
request
priority
api request
congestion
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
JP2015132759A
Other languages
English (en)
Other versions
JP6339974B2 (ja
Inventor
大己 遠藤
Daiki Endo
大己 遠藤
嵩士 白井
Takashi Shirai
嵩士 白井
裕司 副島
Yuji Soejima
裕司 副島
浩行 大西
Hiroyuki Onishi
浩行 大西
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 JP2015132759A priority Critical patent/JP6339974B2/ja
Publication of JP2017016408A publication Critical patent/JP2017016408A/ja
Application granted granted Critical
Publication of JP6339974B2 publication Critical patent/JP6339974B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】APIリクエストの輻輳制御において、APIリクエスト要求元の優先順位を反映させる。【解決手段】API提供システム1は、APIリクエストの要求者または/および要求元システムを判別して当該APIリクエストを認証するAPIメッセージ受付部11と、各APIリクエストの要求者または/および要求元システムを示す固有の識別子と優先度との組合せを保持する要求元別優先度登録テーブル151と、このAPIリクエストの要求者または/および要求元システムに基づき、前記要求元別優先度登録テーブル151を参照してAPIリクエストの優先度を判定する優先度判定部15と、判定した優先度に応じてAPIリクエストを優先的に処理するか否かを決定する制御対象決定部16とを備える。【選択図】図1

Description

本発明は、API(Application Program Interface)リクエストの輻輳に対して利用制限を行うAPI提供システムおよびAPI提供方法に関する。
近年のネットワークの高速化とウェブブラウザの普及により、インターネットを経由して所定の処理を提供するAPIが広く普及している。このAPIは、インターネット経由で或るサーバ上にあるプログラムや管理データなどを、他のサーバや端末などから呼び出して利用するための手順やデータ形式などを定めた規約であり、コンピュータプログラムの機能を呼び出して利用するための規約であるAPI(Application Program Interface)に擬えて呼ばれている。
開発者は、APIを活用することによって、容易にエンドユーザ向けアプリケーションを開発することができる。またAPIの提供者は、このAPIを活用したアプリケーションにより、自社のサービスやコンテンツをエンドユーザ等に訴求することができる。例えば通信キャリアは、ネットワーク機能やオペレーション機能をAPIとしてエンドユーザ向けアプリケーションの開発を促し、自社の通信サービスをエンドユーザ等に訴求することができる。
このAPIの呼び出しにより、ネットワーク機能やオペレーション機能に輻輳が発生するおそれがある。例えば、ネットワークの障害情報を通知するようなサービスをAPIで利用可能としたとき、大規模災害の発生時に障害情報を問い合わせるAPIリクエストが一時的に大量に発生し、このAPIに係るネットワーク機能やオペレーション機能に輻輳が発生する場合である。このような輻輳に対処するには、例えば非特許文献1に記載の技術がある。非特許文献1には、無線LAN(Local Area Network)アドミッション制御技術と併用して、受付を許可したトラヒック等の監視を行い、規定値を超えたトラヒックに対して流量制御を実施する技術が記載されている。これにより、通信中のVoIP(Voice over Internet Protocol)やVideo等のトラヒックに対する通信品質劣化を防止し、安定した通信を提供することが可能となる。
NTTアクセスサービスシステム研究所、「トラヒック流量制御技術」、[online]、[平成27年6月19日検索]、インターネット<URL:http://www.ansl.ntt.co.jp/j/times/051/01/06.html>
非特許文献1の方式は、WebRTC(Web Real-Time Communication)などの一般的なサービス機能の公開を前提としており、一時的な要求の急増に伴う輻輳時においては、予めAPIのゲートウェイに設定された閾値または外部から随時設定された閾値にて、当該処理を行う機能に割り当てるリソース制御や新規要求に対する一律なトラヒック制御が行われる。
しかし、B2B2C(Business to Business to Consumer)モデルなどビジネスモデルの多様化に伴い、新たな提供形態、例えば自社利用する機能の空きリソースを利用した他社への機能提供などが想定される。このような場合、輻輳時における個々の要求に対する優先制御は行われていないため、内部利用と外部利用が一律で先着順に規制されてしまうケースが発生する。また、通常は公平に利用していた各アプリからのAPIリクエストに対し、輻輳時はサービスグレードに従って優先度を変更したいなどの要求が発生した際に、柔軟に対応することが出来ず、先着順に規制されてしまう。
本発明は、前記した問題を解決し、APIリクエストの輻輳制御において、APIリクエストの要求元の優先順位を反映させることを課題とする。
前記課題を解決するため、請求項1に記載の発明では、APIリクエストの要求元を判別して当該APIリクエストを認証するメッセージ受付部と、各APIリクエストの要求元を示す固有の識別子と優先度との組合せを保持する要求元別優先度登録テーブルと、前記メッセージ受付部が判別した当該APIリクエストの要求元に基づき、前記要求元別優先度登録テーブルを参照して当該APIリクエストの優先度を判定する優先度判定部と、前記優先度判定部が判定した優先度に応じて当該APIリクエストを優先的に処理するか否かを決定する制御対象決定部と、を備えることを特徴とするAPI提供システムとした。
このようにすることで、APIリクエストの輻輳制御において、APIリクエストの要求元の優先順位を反映させることができる。
請求項2に記載の発明では、アプリケーション毎の使用量を記憶して輻輳を判定する輻輳判定部を備えており、前記制御対象決定部は、前記輻輳判定部が輻輳発生を判定した際に、前記優先度判定部が判定した優先度に応じて前記APIリクエストを破棄するか否かを決定する、ことを特徴とする請求項1に記載のAPI提供システムとした。
このようにすることで、APIリクエストの要求元であるアプリケーション毎に輻輳を判定し、輻輳発生時にAPIリクエストの要求元の優先順位を反映させることができる。
請求項3に記載の発明では、前記優先度判定部は、前記輻輳判定部より輻輳発生の通知を受け取ることによって、その機能を活性化させる、ことを特徴とする請求項2に記載のAPI提供システムとした。
このようにすることで、非輻輳時のオーバヘッドなしに輻輳時の優先制御を実現できる。
請求項4に記載の発明では、前記制御対象決定部は、輻輳発生時に各前記APIリクエストをバッファリングし、前記APIリクエストの優先度に応じて、当該APIリクエストを優先キューと非優先キューのいずれかに格納して処理順序を動的に変更する、ことを特徴とする請求項2または請求項3に記載のAPI提供システムとした。
このようにすることで、所定期間ごとのAPIリクエストの処理順序に、このAPIリクエストの要求元の優先順位を反映させることができる。
請求項5に記載の発明では、前記制御対象決定部は、輻輳発生時に、所定時間に亘って当該APIリクエストをバッファリングして前記優先キューと前記非優先キューのいずれかに格納した後、前記優先キューのリクエストを処理し、更に前記非優先キューのリクエストを処理する、ことを特徴とする請求項4に記載のAPI提供システムとした。
このようにすることで、優先されるAPIリクエストを規制なしに実行したのちに、非優先のAPIリクエストをソート順に実行することができる。
請求項6に記載の発明では、前記要求元別優先度登録テーブルは、各APIリクエストの要求元のパラメータと優先度との組み合わせを保持する、ことを特徴とする請求項1ないし請求項5のいずれか1項に記載のAPI提供システムとした。
このようにすることで、各APIリクエストの優先度を判定することができる。
請求項7に記載の発明では、前記要求元のパラメータは、要求元システムの事業者、当該事業者の住所、アプリケーション、エンドユーザ、当該エンドユーザの住所、リクエスト内容のうちいずれかを含む、ことを特徴とする請求項6に記載のAPI提供システムとした。
このようにすることで、列挙したパラメータによる要求元の優先度付けをすることができる。
請求項8に記載の発明では、メッセージ受付部により、APIリクエストの要求元を判別すると共に前記APIリクエストを認証し、優先度判定部により、前記APIリクエストの要求元に基づいて当該APIリクエストの優先度を判定し、制御対象決定部により、前記APIリクエストの優先度に応じて当該APIリクエストを優先的に処理するか否かを決定する、ことを特徴とするAPI提供方法とした。
このようにすることで、APIリクエストの輻輳制御において、APIリクエストの要求元の優先順位を反映させることができる。
本発明によれば、APIリクエストの輻輳制御において、APIリクエストの要求元の優先順位を反映させることが可能となる。
本実施形態におけるAPI提供システムの構成図である。 本実施形態における要求元別優先度登録テーブルを示す図である。 本実施形態における輻輳時の制御を示すシーケンス図である。 本実施形態における輻輳時の制御を示す概念図である。 本実施形態の第1動作例を示す概念図である。 本実施形態の第2動作例を示す概念図である。 変形例の動作例を示す概念図である。 比較例のAPI提供システムの構成図である。 比較例の輻輳時の制御を示すシーケンス図である。 比較例の優先制御処理を示すフローチャートである。 比較例の第1動作例を示す概念図である。 比較例の第2動作例を示す概念図である。
次に、比較例と本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。
《比較例のAPI提供システム》
図8は、比較例のAPI提供システム1Aの構成図である。
API提供システム1Aは、APIメッセージ受付部11、処理依頼部12、API使用量測定部13とアプリケーション毎使用量記憶部131、輻輳判定部14とアプリケーション毎保証値記憶部141、使用量調整部17、処理実行部18を含んで構成される。API提供システム1Aは、API要求部2−1,2−2で動作するアプリケーションからのAPIリクエストを受け付けて処理すると共に、アプリケーション毎に使用量を記憶することで輻輳を検知し、制御を行うものである。以下、API要求部2−1,2−2などを特に区別しない場合、単にAPI要求部2と記載する場合がある。
APIメッセージ受付部11は、APIリクエストの要求元を判別して、このAPIリクエストの認証を認可する。この認証の認可は、セキュリティやユーザ管理の観点から行われるものである。
処理依頼部12は、APIリクエストについて、いずれのアプリケーションが発行したものであるかを判別し、アプリケーション毎使用量記憶部131を参照して輻輳を判断する。更に処理依頼部12は、APIリクエストを処理実行部18に送信して、処理を実行させる。
API使用量測定部13は、このAPIリクエストの使用量を測定して、このAPIリクエストの使用量をアプリケーション毎使用量記憶部131に格納する。
輻輳判定部14は、アプリケーション毎使用量記憶部131を介してAPIリクエストが引き渡されると、このAPIリクエストの輻輳を判定する。輻輳判定部14は、輻輳の判定にあたり、このAPIリクエストに係るアプリケーションの保証値をアプリケーション毎保証値記憶部141から取得し、この保証値に基づいて輻輳を判定するための閾値を算出する。
使用量調整部17は、APIリクエストの輻輳時に、これらAPIリクエストの一部を破棄して使用量を調整する。これにより、API提供システム1は、APIリクエストの処理動作を継続することができる。
処理実行部18は、APIリクエストを受信すると、このAPIリクエストに含まれる引数に従って処理を実行し、処理結果を応答する。これにより、API要求部2−1,2−2は、APIリクエストの処理結果を得ることができる。
図9は、比較例の輻輳時の制御を示すシーケンス図である。
最初、API要求部2は、APIリクエストを発行し、このAPIリクエストをAPIメッセージ受付部11に送信する(シーケンスQ40)。APIメッセージ受付部11は、このAPIリクエストの認証を認可すると、処理依頼部12に引き渡す(シーケンスQ41)。
処理依頼部12は、引き渡されたAPIリクエストを発行したアプリケーションを判別し、このAPIリクエストをAPI使用量測定部13に引き渡す(シーケンスQ42)と共にアプリケーション毎使用量記憶部131に格納する(シーケンスQ43)。
API使用量測定部13は、処理依頼部12からAPIリクエストが引き渡されると、各アプリケーションがAPIリクエストを使用した量を測定し、測定した使用量をアプリケーション毎使用量記憶部131に格納する(シーケンスQ44)。これにより、API提供システム1は、このAPIリクエストを発行したアプリケーションの使用量を測定して、所定の閾値を超過したか否かを判断することができる。
輻輳判定部14は、アプリケーション毎使用量記憶部131を介してAPIリクエストが引き渡されると(シーケンスQ45)、このAPIリクエストを発行したアプリケーションの使用量が閾値を超えているか否かにより、このAPIリクエストの輻輳を判定する(シーケンスQ46)。
使用量調整部17は、輻輳判定部14からAPIリクエストが引き渡されると(シーケンスQ47)、アプリケーション毎使用量記憶部131を参照して(シーケンスQ47)、このAPIリクエストを破棄するか否かを判断する。ここで使用量調整部17は、このAPIリクエストを破棄せずに処理依頼部12に戻している(シーケンスQ49)。処理依頼部12は、このAPIリクエストを処理実行部18に送信する(シーケンスQ50)。処理実行部18は、APIリクエストを受信すると、このAPIリクエストに含まれる引数に従って処理を実行する。
図10は、比較例の優先制御処理を示すフローチャートである。
優先制御処理が開始すると、輻輳判定部14は、APIリクエストの使用量が閾値(保証値)に達したか否かを判定する(ステップS60)。使用量調整部17は、このAPIリクエストが輻輳していないならば(ステップS61→No)、このAPIリクエストを処理し(ステップS62)、ステップS60の閾値判定に戻る。これにより、複数のAPIリクエストを次々に受け付けて処理することができる。
使用量調整部17は、このAPIリクエストが輻輳したならば(ステップS61→Yes)、APIリクエストの使用量を取得し(ステップS63)、所定値を超過しているか否かを判断する(ステップS64)。使用量調整部17は、このAPIリクエストの使用量が所定値を超過していないと判定したならば(ステップS64→No)、このAPIリクエストを処理して(ステップS66)、ステップS60の処理に戻る。使用量調整部17は、このAPIリクエストの使用量が所定値を超過していると判定したならば(ステップS64→Yes)、このAPIリクエストを破棄して(ステップS65)、ステップS60の処理に戻る。
図11は、比較例の第1動作例を示す概念図である。
比較例のAPI提供システム1Aは、API要求部2−1〜2−6からのAPIリクエストをイネーブラに引き渡して処理する。ここでイネーブラとは、例えば図8の処理実行部18に対応するものである。API要求部2−5,2−6は、このイネーブラの稼働者と同一の者が稼働しているため、「内部」と記載している。API要求部2−1〜2−4は、このイネーブラの稼働者とは異なる者が稼働させているため、「外部」と記載している。API要求部2−1〜2−6には、それぞれアプリケーション#1〜#6が動作しており、APIリクエストを発行する。なお図面ではアプリケーションのことを単に「アプリ」と記載している。
比較例では、輻輳時における個々の要求に対する優先制御は行われていない。そのため内部であるAPI要求部2−5,2−6のAPIリクエストと外部であるAPI要求部2−1〜2−4のAPIリクエストが一律で先着順に規制される。よって内部であるAPI要求部2−5,2−6のAPIリクエストが外部に先立って破棄されるおそれがある。図11では、内部であるAPI要求部2−6のAPIリクエストが外部に先立って破棄されている。
図12は、比較例の第2動作例を示す概念図である。
比較例のAPI提供システム1Aは、API要求部2−1〜2−4からのAPIリクエストをイネーブラに引き渡してベストエフォートで処理する。API要求部2−1〜2−4は、図11と同様に、いずれも「外部」の利用者である。API要求部2−1〜2−3は、非プレミアム(通常)のサービスグレード(優先度)が付与され、API要求部2−4は、通常より高いプレミアムのサービスグレードが付与されている。API要求部2−1〜2−4には、それぞれアプリケーション#1〜#4が動作しており、APIリクエストを発行する。
各アプリケーション#1〜#4からのAPIリクエストは、通常時(非輻輳時)には公平に利用され、輻輳時には各アプリケーション#1〜#4のサービスグレードに従ってAPIリクエストの優先度が設定されることが望ましい。しかし、図12で示したように、比較例のAPIリクエストは先着順に規制されるので、プレミアムのサービスグレードを有するAPI要求部2−4のAPIリクエストが規制される場合がある。
《本実施形態のAPI提供システム》
本発明ではAPIを利用する際に、セキュリティやユーザ管理の観点から行われる認証認可の仕組みを利用し、要求者または要求元システムを示す固有の識別子と優先度との組合せをテーブルとして保持することで、輻輳時における要求単位の優先制御を実現している。
本実施形態では、比較例のAPI提供システム1Aに本発明を組み込む場合を説明している。本実施形態では、輻輳発生の判定に従って、以降発生したAPIリクエストに対する要求元の優先度を識別し、このAPIリクエストを破棄するか否かと規制順序とを任意に指定可能とすることを達成している。
図1は、API提供システム1の構成図である。
API提供システム1は、比較例のAPI提供システム1Aと同様な構成に加えて、APIリクエスト毎の優先度を判定する優先度判定部15、優先度判定部15が優先度を判定する為に必要な要求元別優先度を参照・登録可能とする要求元別優先度登録テーブル151(図2参照)、優先度の判定結果に基づく制御対象或いは制御順序を決定する制御対象決定部16、APIリクエストをバッファリングする要求格納部161、優先キュー162および非優先キュー163、これらの各部の判定結果に従った処理を実現する処理実行部18を備えている。
優先度判定部15は、APIリクエストの認証・認可で用いられた固有の識別子を参照し、要求元の事業者やアプリケーションやエンドユーザの各識別子と優先度の組み合わせが格納された要求元別優先度登録テーブル151を参照して、APIリクエストの優先度を決定している。オペレータは、要求元別優先度登録テーブル151を動的に変更することで、APIリクエストの優先度の動的な変更が可能である。
制御対象決定部16は、APIリクエストを時間tに亘ってバッファリングし、バッファリングされたAPIリクエストを優先度順かつ先着順にて優先キュー162または非優先キュー163に格納することで優先制御を実現する。更に制御対象決定部16は、輻輳発生時に、優先度に応じてAPIリクエストを破棄するか否かを決定する。
これにより、API提供システム1の内部利用と外部利用が混合するケースにおいて、物理的或いは論理的に分割して実現することを必須とせず、分割損のないリソースの最大活用を可能とし、かつ、輻輳制御によるAPI提供システム1の安定的な稼働を実現した。
図2は、本実施形態における要求元別優先度登録テーブル151を示す図である。
要求元別優先度登録テーブル151は、要求元別優先度を参照および登録可能とするテーブルである。事業者テーブル1511および、アプリケーションテーブル1512、エンドユーザテーブル1513は、要求元別優先度登録テーブル151と相互に組み合わせて使用されるテーブルである。
要求元別優先度登録テーブル151は、項目としてpt欄151a、事業者欄151b、アプリケーション欄151c、エンドユーザ欄151d、優先度欄151eを含んで構成される。
pt欄151aは、事業者欄151bからエンドユーザ欄151dまでの組み合わせパターンを示す欄である。
事業者欄151bは、このAPIリクエストを発行したAPI要求部2を稼働している事業者の名称や住所などの属性を示す欄である。この事業者欄151bをキーとして事業者テーブル1511を参照することで、この事業者に係る優先度を特定可能である。
なお、事業者テーブル1511は、項目として事業者欄151fと優先度欄151gとを含み、事業者と優先度との対応関係を示している。ここで事業者“M”は、例えば内部利用であり優先される。事業者“N”は、例えば外部利用であり優先されない。
アプリケーション欄151cは、このAPIリクエストを発行したAPI要求部2を稼働しているエンドユーザ向けアプリケーションの名称や属性を示す欄である。アプリケーション欄151cをキーとしてアプリケーションテーブル1512を参照することでこのエンドユーザ向けアプリケーションに係る優先度を特定可能である。
なおアプリケーションテーブル1512は、項目としてアプリケーション欄151hと優先度欄151iとを含み、アプリケーションと優先度との対応関係を示している。ここでアプリケーション“α”は優先され、アプリケーション“β”は非優先である。
エンドユーザ欄151dは、このAPIリクエストを発行したAPI要求部2を操作しているエンドユーザの名称や住所などの属性を示す欄である。優先度判定部15は、エンドユーザ欄151dをキーとしてエンドユーザテーブル1513を参照することで、このエンドユーザに係る優先度を特定可能である。
なお、エンドユーザテーブル1513は、項目としてエンドユーザ欄151jと優先度欄151kとを含み、エンドユーザと優先度との対応関係を示している。ここでエンドユーザ“A”は、例えばプレミアムユーザであり優先される。エンドユーザ“B”は、例えば非プレミアムユーザであり優先されない。
優先度欄151eは、事業者欄151bからエンドユーザ欄151dまでの組み合わせパターンに対応するAPIリクエストの優先度を示している。
図3は、本実施形態における輻輳時の制御を示すシーケンス図である。
シーケンスQ10〜Q16までの処理は、比較例のシーケンスQ41〜Q46(図9参照)までの処理と同様である。
シーケンスQ16の後、輻輳判定部14は、優先度判定部15に対して輻輳発生を通知し、APIリクエストの優先度の判定を依頼する(シーケンスQ17)。優先度判定部15は、輻輳判定部14から輻輳発生の通知を受け取ることによって、その機能を活性化させ、これを契機に通常時は公平に先着順で行っていた処理順序(優先度)を動的に変更する。
優先度判定部15は、APIメッセージ受付部11に依頼して(シーケンスQ18)、APIリクエストに係る認証情報を取得する(シーケンスQ19)。優先度判定部15は、この認証情報に基づき要求元別優先度登録テーブル151の優先度を確認して(シーケンスQ20)、APIリクエストに係る優先度の応答を受けて(シーケンスQ21)、このAPIリクエストの優先度を決定している。優先度判定部15は更に、制御対象決定部16にAPIリクエストを引き渡して制御対象の決定を依頼する(シーケンスQ22)。
制御対象決定部16は、時間tに亘ってAPIリクエストを要求格納部161にバッファリングする(シーケンスQ23)。その後制御対象決定部16は、要求格納部161にバッファリングされた各APIリクエストを取り出し(シーケンスQ24)、判定された優先度に従って、優先キュー162または非優先キュー163(図1参照)に格納する。所定期間内に発生したAPIリクエストを横並びで比較して優先制御を行う為に、輻輳発生以降のAPIリクエストは、要求格納部161にバッファリングされて処理を保留される。この保留動作は、バッファリング可能な容量設計にも依存するが、API提供システム1にて計測される時間tを基準として繰返し行われる。時間tの間のAPIリクエスト全体を対象に優先度が判定され、優先キュー162または非優先キュー163へ格納される。要求格納部161に格納されたAPIリクエストのうち、優先度が低い一部のAPIリクエストは破棄される。
制御対象決定部16は、優先キュー162(図1参照)から取り出したAPIリクエストを規制なしに処理実行部18に処理依頼する(シーケンスQ25)。これにより、API提供システム1は、APIリクエストの輻輳制御において、各APIリクエストの要求元の優先順位を反映させることができる。
制御対象決定部16は、非優先キュー163(図1参照)から取り出したAPIリクエストの処理依頼を、使用量調整部17に行う(シーケンスQ26)。以降、シーケンスQ27〜Q29の処理は、比較例のシーケンスQ48〜Q50(図9参照)の処理と同様である。これにより、非優先キュー163のAPIリクエストは規制される。
図4は、本実施形態における輻輳時の制御を示す概念図である。
この概念図は、輻輳発生時のAPI提供システム1の動作を示している。なお、この図ではAPI提供システム1の内部構成の一部のみを示し、その他を省略している。
要求元であるAPI要求部2は、APIリクエストをAPI提供システム1に送信して、処理結果であるAPIリプライを受信する。API提供システム1は、APIメッセージ受付部11により、このAPIリクエストを受け付ける。
API提供システム1は、APIリクエストの輻輳を判断すると、制御対象決定部16によりAPIリクエストのバッファリングを開始する(ステップS10)。これ以降、時間tに亘り、APIリクエストは要求格納部161にバッファリングされる。
時間tが終了する頃に、制御対象決定部16は、バッファリングしたAPIリクエストを優先順位付けソートし(ステップS11)、優先キュー162と非優先キュー163とに格納する。これによりAPIリクエストは、処理実行部18に引き渡されて処理され、処理結果を含んだAPIリプライがAPI要求部2に送信される。制御対象決定部16は、これ以外のAPIリクエストを破棄し(ステップS12)、次の周期の制御を開始する。
次の周期におけるステップS13〜S15の処理は、ステップS10〜S12の処理と同様である。API提供システム1は、輻輳が終了するまで、これらの処理を繰り返す。
図5は、本実施形態の第1動作例を示す概念図である。
API提供システム1は、API要求部2−1〜2−6からのAPIリクエストをイネーブラに引き渡して処理する。API要求部2−5,2−6は、このイネーブラの稼働者と同一の者が稼働させているため、「内部」と記載している。API要求部2−1〜2−4は、このイネーブラの稼働者とは異なる者が稼働させているため、「外部」と記載している。API要求部2−1〜2−6には、それぞれアプリケーション#1〜#6が動作しており、APIリクエストを発行する。
輻輳時における個々の要求に対する優先制御により、内部のAPI要求部2−5,2−6が発行したAPIリクエストは、外部のAPI要求部2−1〜2−4が発行したAPIリクエストよりも優先して処理される。この図5では、制御対象決定部16が、外部のAPI要求部2−4が発行したAPIリクエストを破棄し,内部のAPI要求部2−5,2−6が発行したAPIリクエストを優先してイネーブラに引き渡すことを示している。
図6は、本実施形態の第2動作例を示す概念図である。
API提供システム1は、API要求部2−1〜2−6からのAPIリクエストをイネーブラに引き渡して処理する。API要求部2−1〜2−4は、図5と同様に、いずれも「外部」の要求元であり、API要求部2−5,2−6は「内部」の要求元である。API要求部2−1〜2−3は、非プレミアム(通常)のサービスグレード(優先度)が付与され、API要求部2−4は、通常より高いプレミアムのサービスグレードが付与されている。API要求部2−1〜2−6には、それぞれアプリケーション#1〜#6が動作しており、APIリクエストを発行する。
各アプリケーション#1〜#6からのAPIリクエストは、通常(非輻輳時)には公平に利用される。アプリケーション#1〜#6のサービスグレードに従ってAPIリクエストの優先度が設定される。プレミアムのサービスグレードを有するAPI要求部2−4が発行したAPIリクエストは、API要求部2−1〜2−3が発行したAPIリクエストよりも優先して処理される。この図6では、制御対象決定部16がプレミアムのサービスグレードを有するAPI要求部2−4が発行したAPIリクエストを優先してイネーブラに引き渡し、代わりにAPI要求部2−3が発行したAPIリクエストを破棄することを示している。
本実施形態によれば、APIリクエスト毎の帯域利用状況を見て、輻輳要因と思われる利用帯域が大きいAPIリクエストや、短時間での利用頻度が高いAPIリクエストなどを任意に指定して規制を実行し、エンドユーザのランク、例えばプレミアムや非プレミアムなどに連動して規制対象を変更することが可能となる。よってAPI提供システム1は、自身のリソースを最大に活用して、安定的な運用を行うことができる。
《変形例のAPI提供システム》
図7は、変形例の動作例を示す概念図である。
API提供システム1Bは、API要求部2−1〜2−3からのAPIリクエストをイネーブラに引き渡して処理する。API要求部2−1〜2−3には、それぞれアプリケーション#1〜#3が動作しており、APIリクエストを発行する。API提供システム1Bは、これらAPIリクエストの要求頻度を測定するリクエストカウンタ19を備えている。
図7に示すように、API要求部2−1の最低保証帯域はY1、要求帯域はR1、利用帯域はX1である。API要求部2−2の最低保証帯域はY2、要求帯域はR2、利用帯域はX2であり、API要求部2−3の最低保証帯域はY3、要求帯域はR3、利用帯域はX3である。このうちAPI要求部2−2の要求帯域R2が、著しく最低保証帯域Y2を超えて輻輳しているので、API提供システム1Bは、API要求部2−2のAPIリクエストの輻輳が解消されるまで利用帯域X2を規制する。つまり、API提供システム1Bは、要求帯域を最低保証帯域で除算した値が最も高いアプリケーションから規制を実行する。API要求部2−1〜2−3の要求帯域は、リクエストカウンタ19が測定したAPIリクエストの要求頻度に基づいて算出される。
規制量については、イネーブラ許容帯域をZとしたとき、このリソースを最大活用する方法と、輻輳を早期に沈静化させる方法とがある。
リソースを最大活用するには、イネーブラ許容帯域Zから他のAPI要求部2−1,2−3の利用帯域R1とR3とを減算し、その残りを全てAPI要求部2−2の利用帯域に割り当てるとよい。これによりAPI提供システム1Bは、イネーブラ許容帯域Zを全て提供することができる。
また一方で輻輳を早期に沈静化させるには、API要求部2−2の利用帯域X2を、最低保証帯域Y2と一致させるとよい。これによりAPI提供システム1Bは、充分な余裕を持ってAPIリクエストを処理することができる。
API提供システム1においてテナントを設定し、テナント毎に輻輳制御を行うことで、内部利用と外部利用を分けた運用を行うことは可能である。しかしながら、テナント分割を行うと、リソースの分割損や輻輳などの準正常系状態の発生に応じてリソースの割当を柔軟に変えるには、調整や設定に所定の作業を要する。
本発明では、こうしたテナント分割による煩雑な運用を省き、輻輳時においても安定的かつリソースの最大活用が可能となる仕組みを、トラヒック制御機能と連動した要求元別の優先度を判定することで効率的に実現した。
(変形例)
本実施の形態に係るAPI提供システム1は、前記したような処理を実行させるプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記録媒体(CD−ROM等)に記憶して提供することが可能である。また、そのプログラムを、インターネット等のネットワークを通して提供することも可能である。
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の(a)〜(d)のようなものがある。
(a) 要求元のパラメータは、要求元システムの事業者、アプリケーション、エンドユーザに限られず、事業者の住所、エンドユーザの住所、リクエスト内容などを含んでもよい。
(b) 例えば、ネットワーク回線の申込を受け付ける機能をAPIにて提供し、かつリクエスト内容として新規申込と申込変更が可能な時、ネットワーク回線提供日時が確定している申込の変更を優先して受け付けるように構成してもよい。
(c) 輻輳判定部14は、輻輳を検知しなかったならば、優先度判定部15を活性化せずに、APIリクエストを使用量調整部17に直接に送信してもよい。これにより非輻輳時には、優先度判定によるオーバヘッドを防ぐことができる。
(d) APIリクエストの種類は、SOAP(Simple Object Access Protocol)、REST(REpresentational State Transfer)のいずれでもよく、またはそれ以外であってもよく、限定されない。
1,1A,1B API提供システム
11 APIメッセージ受付部 (メッセージ受付部の一例)
12 処理依頼部
13 API使用量測定部
131 アプリケーション毎使用量記憶部
14 輻輳判定部
141 アプリケーション毎保証値記憶部
15 優先度判定部
151 要求元別優先度登録テーブル
16 制御対象決定部
161 要求格納部
162 優先キュー
163 非優先キュー
17 使用量調整部
18 処理実行部
19 リクエストカウンタ
2,2−1〜2−6 API要求部

Claims (8)

  1. APIリクエストの要求元を判別して当該APIリクエストを認証するメッセージ受付部と、
    各APIリクエストの要求元を示す固有の識別子と優先度との組合せを保持する要求元別優先度登録テーブルと、
    前記メッセージ受付部が判別した当該APIリクエストの要求元に基づき、前記要求元別優先度登録テーブルを参照して当該APIリクエストの優先度を判定する優先度判定部と、
    前記優先度判定部が判定した優先度に応じて当該APIリクエストを優先的に処理するか否かを決定する制御対象決定部と、
    を備えることを特徴とするAPI提供システム。
  2. アプリケーション毎の使用量を記憶して輻輳を判定する輻輳判定部を備えており、
    前記制御対象決定部は、前記輻輳判定部が輻輳発生を判定した際に、前記優先度判定部が判定した優先度に応じて前記APIリクエストを破棄するか否かを決定する、
    ことを特徴とする請求項1に記載のAPI提供システム。
  3. 前記優先度判定部は、前記輻輳判定部より輻輳発生の通知を受け取ることによって、その機能を活性化させる、
    ことを特徴とする請求項2に記載のAPI提供システム。
  4. 前記制御対象決定部は、輻輳発生時に各前記APIリクエストをバッファリングし、前記APIリクエストの優先度に応じて、当該APIリクエストを優先キューと非優先キューのいずれかに格納して処理順序を動的に変更する、
    ことを特徴とする請求項2または請求項3に記載のAPI提供システム。
  5. 前記制御対象決定部は、輻輳発生時に、所定時間に亘って当該APIリクエストをバッファリングして前記優先キューと前記非優先キューのいずれかに格納した後、前記優先キューのリクエストを処理し、更に前記非優先キューのリクエストを処理する、
    ことを特徴とする請求項4に記載のAPI提供システム。
  6. 前記要求元別優先度登録テーブルは、各APIリクエストの要求元のパラメータと優先度との組み合わせを保持する、
    ことを特徴とする請求項1ないし請求項5のいずれか1項に記載のAPI提供システム。
  7. 前記要求元のパラメータは、要求元システムの事業者、当該事業者の住所、アプリケーション、エンドユーザ、当該エンドユーザの住所、リクエスト内容のうちいずれかを含む、
    ことを特徴とする請求項6に記載のAPI提供システム。
  8. メッセージ受付部により、APIリクエストの要求元を判別すると共に前記APIリクエストを認証し、
    優先度判定部により、前記APIリクエストの要求元に基づいて当該APIリクエストの優先度を判定し、
    制御対象決定部により、前記APIリクエストの優先度に応じて当該APIリクエストを優先的に処理するか否かを決定する、
    ことを特徴とするAPI提供方法。
JP2015132759A 2015-07-01 2015-07-01 Api提供システムおよびapi提供方法 Active JP6339974B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015132759A JP6339974B2 (ja) 2015-07-01 2015-07-01 Api提供システムおよびapi提供方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015132759A JP6339974B2 (ja) 2015-07-01 2015-07-01 Api提供システムおよびapi提供方法

Publications (2)

Publication Number Publication Date
JP2017016408A true JP2017016408A (ja) 2017-01-19
JP6339974B2 JP6339974B2 (ja) 2018-06-06

Family

ID=57828157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015132759A Active JP6339974B2 (ja) 2015-07-01 2015-07-01 Api提供システムおよびapi提供方法

Country Status (1)

Country Link
JP (1) JP6339974B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019009559A (ja) * 2017-06-22 2019-01-17 株式会社デンソー サーバ
WO2022190246A1 (ja) * 2021-03-10 2022-09-15 日本電信電話株式会社 マイクロサービス管理装置、マイクロサービス管理方法、及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216583A (ja) * 2002-01-25 2003-07-31 Nippon Telegr & Teleph Corp <Ntt> wwwサーバ装置
JP2004139291A (ja) * 2002-10-17 2004-05-13 Hitachi Ltd データ通信中継装置
JP2009244976A (ja) * 2008-03-28 2009-10-22 Nippon Telegr & Teleph Corp <Ntt> サービス連携装置、連携サービス競合制御方法、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216583A (ja) * 2002-01-25 2003-07-31 Nippon Telegr & Teleph Corp <Ntt> wwwサーバ装置
JP2004139291A (ja) * 2002-10-17 2004-05-13 Hitachi Ltd データ通信中継装置
JP2009244976A (ja) * 2008-03-28 2009-10-22 Nippon Telegr & Teleph Corp <Ntt> サービス連携装置、連携サービス競合制御方法、及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019009559A (ja) * 2017-06-22 2019-01-17 株式会社デンソー サーバ
WO2022190246A1 (ja) * 2021-03-10 2022-09-15 日本電信電話株式会社 マイクロサービス管理装置、マイクロサービス管理方法、及びプログラム

Also Published As

Publication number Publication date
JP6339974B2 (ja) 2018-06-06

Similar Documents

Publication Publication Date Title
CN109561141B (zh) 一种cdn节点的选择方法及设备
US20190190808A1 (en) Bidirectional data traffic control
US7089294B1 (en) Methods, systems and computer program products for server based type of service classification of a communication request
CN109951347B (zh) 业务识别方法、装置及网络设备
US7660321B2 (en) System and method for prioritizing session initiation protocol messages
US9112809B2 (en) Method and apparatus for controlling utilization in a horizontally scaled software application
US20230142539A1 (en) Methods and apparatus to schedule service requests in a network computing system using hardware queue managers
US20180288141A1 (en) Http scheduling system and method of content delivery network
CN109639811B (zh) 数据传输方法、数据存储方法、装置、服务器及存储介质
WO2017101366A1 (zh) Cdn服务节点的调度方法及服务器
US7290028B2 (en) Methods, systems and computer program products for providing transactional quality of service
CN106375471B (zh) 一种边缘节点确定方法及装置
RU2005131960A (ru) Управление разрешением на доступ и распределение ресурсов в системе связи с поддержкой потоков приложений с наличием требований к качеству обслуживания
JP2002245017A (ja) トランザクションのための要求されるサービスレベルを特定するための装置および方法
JP7270036B2 (ja) ネットワークノードでのロックなし通信処理のための方法、システム、およびコンピュータ読取可能媒体
US20140143427A1 (en) Providing Resources in a Cloud
Montazerolghaem et al. A load scheduler for SIP proxy servers: design, implementation and evaluation of a history weighted window approach
CN105554125B (zh) 一种利用cdn实现网页适配的方法及其系统
CN105635124B (zh) 流量控制方法和装置
JP6339974B2 (ja) Api提供システムおよびapi提供方法
US10146584B2 (en) Weight adjusted dynamic task propagation
JP2009159024A (ja) 通信システム、通信規制方法、信号処理サーバ装置、およびプログラム
US8396057B2 (en) Method and apparatus for traffic regulation in a communication network
CN108696455A (zh) 用于处理业务流的方法及装置
JP6065114B2 (ja) プッシュ型情報送信装置、プッシュ型情報送信方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170629

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180511

R150 Certificate of patent or registration of utility model

Ref document number: 6339974

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150