JP2017016408A - Api提供システムおよびapi提供方法 - Google Patents
Api提供システムおよびapi提供方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
しかし、B2B2C(Business to Business to Consumer)モデルなどビジネスモデルの多様化に伴い、新たな提供形態、例えば自社利用する機能の空きリソースを利用した他社への機能提供などが想定される。このような場合、輻輳時における個々の要求に対する優先制御は行われていないため、内部利用と外部利用が一律で先着順に規制されてしまうケースが発生する。また、通常は公平に利用していた各アプリからのAPIリクエストに対し、輻輳時はサービスグレードに従って優先度を変更したいなどの要求が発生した際に、柔軟に対応することが出来ず、先着順に規制されてしまう。
本発明は、前記した問題を解決し、APIリクエストの輻輳制御において、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リクエストの認証を認可する。この認証の認可は、セキュリティやユーザ管理の観点から行われるものである。
API使用量測定部13は、このAPIリクエストの使用量を測定して、このAPIリクエストの使用量をアプリケーション毎使用量記憶部131に格納する。
処理実行部18は、APIリクエストを受信すると、このAPIリクエストに含まれる引数に従って処理を実行し、処理結果を応答する。これにより、API要求部2−1,2−2は、APIリクエストの処理結果を得ることができる。
最初、API要求部2は、APIリクエストを発行し、このAPIリクエストをAPIメッセージ受付部11に送信する(シーケンスQ40)。APIメッセージ受付部11は、このAPIリクエストの認証を認可すると、処理依頼部12に引き渡す(シーケンスQ41)。
API使用量測定部13は、処理依頼部12からAPIリクエストが引き渡されると、各アプリケーションがAPIリクエストを使用した量を測定し、測定した使用量をアプリケーション毎使用量記憶部131に格納する(シーケンスQ44)。これにより、API提供システム1は、このAPIリクエストを発行したアプリケーションの使用量を測定して、所定の閾値を超過したか否かを判断することができる。
使用量調整部17は、輻輳判定部14からAPIリクエストが引き渡されると(シーケンスQ47)、アプリケーション毎使用量記憶部131を参照して(シーケンスQ47)、このAPIリクエストを破棄するか否かを判断する。ここで使用量調整部17は、このAPIリクエストを破棄せずに処理依頼部12に戻している(シーケンスQ49)。処理依頼部12は、このAPIリクエストを処理実行部18に送信する(シーケンスQ50)。処理実行部18は、APIリクエストを受信すると、このAPIリクエストに含まれる引数に従って処理を実行する。
優先制御処理が開始すると、輻輳判定部14は、APIリクエストの使用量が閾値(保証値)に達したか否かを判定する(ステップS60)。使用量調整部17は、このAPIリクエストが輻輳していないならば(ステップS61→No)、このAPIリクエストを処理し(ステップS62)、ステップS60の閾値判定に戻る。これにより、複数のAPIリクエストを次々に受け付けて処理することができる。
比較例の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提供システム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リクエストを発行する。
本発明ではAPIを利用する際に、セキュリティやユーザ管理の観点から行われる認証認可の仕組みを利用し、要求者または要求元システムを示す固有の識別子と優先度との組合せをテーブルとして保持することで、輻輳時における要求単位の優先制御を実現している。
API提供システム1は、比較例のAPI提供システム1Aと同様な構成に加えて、APIリクエスト毎の優先度を判定する優先度判定部15、優先度判定部15が優先度を判定する為に必要な要求元別優先度を参照・登録可能とする要求元別優先度登録テーブル151(図2参照)、優先度の判定結果に基づく制御対象或いは制御順序を決定する制御対象決定部16、APIリクエストをバッファリングする要求格納部161、優先キュー162および非優先キュー163、これらの各部の判定結果に従った処理を実現する処理実行部18を備えている。
制御対象決定部16は、APIリクエストを時間tに亘ってバッファリングし、バッファリングされたAPIリクエストを優先度順かつ先着順にて優先キュー162または非優先キュー163に格納することで優先制御を実現する。更に制御対象決定部16は、輻輳発生時に、優先度に応じてAPIリクエストを破棄するか否かを決定する。
これにより、API提供システム1の内部利用と外部利用が混合するケースにおいて、物理的或いは論理的に分割して実現することを必須とせず、分割損のないリソースの最大活用を可能とし、かつ、輻輳制御によるAPI提供システム1の安定的な稼働を実現した。
要求元別優先度登録テーブル151は、要求元別優先度を参照および登録可能とするテーブルである。事業者テーブル1511および、アプリケーションテーブル1512、エンドユーザテーブル1513は、要求元別優先度登録テーブル151と相互に組み合わせて使用されるテーブルである。
要求元別優先度登録テーブル151は、項目としてpt欄151a、事業者欄151b、アプリケーション欄151c、エンドユーザ欄151d、優先度欄151eを含んで構成される。
事業者欄151bは、このAPIリクエストを発行したAPI要求部2を稼働している事業者の名称や住所などの属性を示す欄である。この事業者欄151bをキーとして事業者テーブル1511を参照することで、この事業者に係る優先度を特定可能である。
なお、事業者テーブル1511は、項目として事業者欄151fと優先度欄151gとを含み、事業者と優先度との対応関係を示している。ここで事業者“M”は、例えば内部利用であり優先される。事業者“N”は、例えば外部利用であり優先されない。
なおアプリケーションテーブル1512は、項目としてアプリケーション欄151hと優先度欄151iとを含み、アプリケーションと優先度との対応関係を示している。ここでアプリケーション“α”は優先され、アプリケーション“β”は非優先である。
優先度欄151eは、事業者欄151bからエンドユーザ欄151dまでの組み合わせパターンに対応するAPIリクエストの優先度を示している。
シーケンスQ10〜Q16までの処理は、比較例のシーケンスQ41〜Q46(図9参照)までの処理と同様である。
シーケンスQ16の後、輻輳判定部14は、優先度判定部15に対して輻輳発生を通知し、APIリクエストの優先度の判定を依頼する(シーケンスQ17)。優先度判定部15は、輻輳判定部14から輻輳発生の通知を受け取ることによって、その機能を活性化させ、これを契機に通常時は公平に先着順で行っていた処理順序(優先度)を動的に変更する。
制御対象決定部16は、非優先キュー163(図1参照)から取り出したAPIリクエストの処理依頼を、使用量調整部17に行う(シーケンスQ26)。以降、シーケンスQ27〜Q29の処理は、比較例のシーケンスQ48〜Q50(図9参照)の処理と同様である。これにより、非優先キュー163のAPIリクエストは規制される。
この概念図は、輻輳発生時のAPI提供システム1の動作を示している。なお、この図ではAPI提供システム1の内部構成の一部のみを示し、その他を省略している。
要求元であるAPI要求部2は、APIリクエストをAPI提供システム1に送信して、処理結果であるAPIリプライを受信する。API提供システム1は、APIメッセージ受付部11により、このAPIリクエストを受け付ける。
API提供システム1は、APIリクエストの輻輳を判断すると、制御対象決定部16によりAPIリクエストのバッファリングを開始する(ステップS10)。これ以降、時間tに亘り、APIリクエストは要求格納部161にバッファリングされる。
次の周期におけるステップS13〜S15の処理は、ステップS10〜S12の処理と同様である。API提供システム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提供システム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リクエストを発行する。
図7は、変形例の動作例を示す概念図である。
API提供システム1Bは、API要求部2−1〜2−3からのAPIリクエストをイネーブラに引き渡して処理する。API要求部2−1〜2−3には、それぞれアプリケーション#1〜#3が動作しており、APIリクエストを発行する。API提供システム1Bは、これらAPIリクエストの要求頻度を測定するリクエストカウンタ19を備えている。
リソースを最大活用するには、イネーブラ許容帯域Zから他のAPI要求部2−1,2−3の利用帯域R1とR3とを減算し、その残りを全てAPI要求部2−2の利用帯域に割り当てるとよい。これによりAPI提供システム1Bは、イネーブラ許容帯域Zを全て提供することができる。
また一方で輻輳を早期に沈静化させるには、API要求部2−2の利用帯域X2を、最低保証帯域Y2と一致させるとよい。これによりAPI提供システム1Bは、充分な余裕を持ってAPIリクエストを処理することができる。
本発明では、こうしたテナント分割による煩雑な運用を省き、輻輳時においても安定的かつリソースの最大活用が可能となる仕組みを、トラヒック制御機能と連動した要求元別の優先度を判定することで効率的に実現した。
本実施の形態に係る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)のいずれでもよく、またはそれ以外であってもよく、限定されない。
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)
- APIリクエストの要求元を判別して当該APIリクエストを認証するメッセージ受付部と、
各APIリクエストの要求元を示す固有の識別子と優先度との組合せを保持する要求元別優先度登録テーブルと、
前記メッセージ受付部が判別した当該APIリクエストの要求元に基づき、前記要求元別優先度登録テーブルを参照して当該APIリクエストの優先度を判定する優先度判定部と、
前記優先度判定部が判定した優先度に応じて当該APIリクエストを優先的に処理するか否かを決定する制御対象決定部と、
を備えることを特徴とするAPI提供システム。 - アプリケーション毎の使用量を記憶して輻輳を判定する輻輳判定部を備えており、
前記制御対象決定部は、前記輻輳判定部が輻輳発生を判定した際に、前記優先度判定部が判定した優先度に応じて前記APIリクエストを破棄するか否かを決定する、
ことを特徴とする請求項1に記載のAPI提供システム。 - 前記優先度判定部は、前記輻輳判定部より輻輳発生の通知を受け取ることによって、その機能を活性化させる、
ことを特徴とする請求項2に記載のAPI提供システム。 - 前記制御対象決定部は、輻輳発生時に各前記APIリクエストをバッファリングし、前記APIリクエストの優先度に応じて、当該APIリクエストを優先キューと非優先キューのいずれかに格納して処理順序を動的に変更する、
ことを特徴とする請求項2または請求項3に記載のAPI提供システム。 - 前記制御対象決定部は、輻輳発生時に、所定時間に亘って当該APIリクエストをバッファリングして前記優先キューと前記非優先キューのいずれかに格納した後、前記優先キューのリクエストを処理し、更に前記非優先キューのリクエストを処理する、
ことを特徴とする請求項4に記載のAPI提供システム。 - 前記要求元別優先度登録テーブルは、各APIリクエストの要求元のパラメータと優先度との組み合わせを保持する、
ことを特徴とする請求項1ないし請求項5のいずれか1項に記載のAPI提供システム。 - 前記要求元のパラメータは、要求元システムの事業者、当該事業者の住所、アプリケーション、エンドユーザ、当該エンドユーザの住所、リクエスト内容のうちいずれかを含む、
ことを特徴とする請求項6に記載のAPI提供システム。 - メッセージ受付部により、APIリクエストの要求元を判別すると共に前記APIリクエストを認証し、
優先度判定部により、前記APIリクエストの要求元に基づいて当該APIリクエストの優先度を判定し、
制御対象決定部により、前記APIリクエストの優先度に応じて当該APIリクエストを優先的に処理するか否かを決定する、
ことを特徴とするAPI提供方法。
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)
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)
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> | サービス連携装置、連携サービス競合制御方法、及びプログラム |
-
2015
- 2015-07-01 JP JP2015132759A patent/JP6339974B2/ja active Active
Patent Citations (3)
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)
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 |