JP2018081431A - プログラム部品管理装置および管理方法 - Google Patents
プログラム部品管理装置および管理方法 Download PDFInfo
- Publication number
- JP2018081431A JP2018081431A JP2016222355A JP2016222355A JP2018081431A JP 2018081431 A JP2018081431 A JP 2018081431A JP 2016222355 A JP2016222355 A JP 2016222355A JP 2016222355 A JP2016222355 A JP 2016222355A JP 2018081431 A JP2018081431 A JP 2018081431A
- Authority
- JP
- Japan
- Prior art keywords
- api
- processing
- request
- time
- program
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
【課題】所定の機能を実現するプログラム部品の実行に要する処理時間を実績値として管理し、プログラム部品の処理時間の推定に役立てることができるようにすること。【解決手段】プログラム部品管理装置としてのAPI管理システム1は、APIを使用するために必要な情報を蓄積するデータ蓄積部14と、クライアント3からの処理要求を受け付け、受け付けた処理要求がAPIについての処理要求である場合は、データ蓄積部に蓄積された情報に基づいてAPI提供サーバ2へ処理要求を送信し、APIの実行結果をサーバから受信すると、実行結果をクライアント3へ送信する要求処理部13と、処理要求に係るAPIの実行に要した処理時間を実績値として管理する実績値管理部16を備える。【選択図】図1
Description
本発明は、プログラム部品管理装置および管理方法に関する。
あるソフトウェアの機能やデータを、他のソフトウェアから呼び出して利用するための規約をAPI(Application Programming Interface)と呼ぶ。コンピュータプログラムの開発者は、APIを利用するための簡易なプログラムを記述するだけで、所望の機能およびデータを利用したソフトウェアを開発することができる。
近年では、自社の情報サービスが持つ機能、または管理しているデータを、通信ネットワークを通じて呼び出すことができるAPI(WebAPIとも呼ばれる)を公開する企業が増えている。自社の持つ機能やデータをAPIを介して他社に提供することで、自社サービスの価値を向上させるビジネスモデルが広まりつつある。
ところで、APIを通じて実行するジョブの中には、処理時間が長いものもある。さらに、API提供サーバの混雑度合いによって、処理時間の変化が大きいものもある。このようにAPIを利用した場合に要する処理時間の長さは様々であり、予測しにくい。そこで、API利用者には、APIを利用した場合の処理時間を正確に見積もりたいという要求がある。APIを利用した場合の処理時間を正確に見積もることができれば、例えば、APIを利用した大量の処理を含む作業計画を作成したり、同様の機能をもつ複数のAPIのうち処理時間が短いAPIを選択して効率を上げたりすることができる。
APIの処理時間を予測する技術ではないが、ジョブの処理時間を推定する技術としては、特許文献1に記載の技術が知られている。特許文献1には、あらかじめ実行速度を測定するための通信を行い、その通信の応答時間と転送対象のデータ容量とを元に、データ転送完了に要する時間を算出する技術が開示されている。
単純なデータ処理の場合は、処理時間とデータ容量とが強い相関を持つ単純なデータ処理であれば、特許文献1の技術も有効である。しかし、複雑なAPIを用いるデータ処理や、複数のAPIを使用する処理等では、処理時間は状況に応じて種々異なる。例えばデータ分析を行うAPIの場合は、データの性質や分析アルゴリズムによって、処理時間は様々である。
また、例えばVM(Virtual Machine)のような仮想環境を構築するAPIの場合は、一般的に処理時間が長いため、API提供側の混雑の度合いによる影響も受けやすい。つまり、処理時間の長いAPIの場合、そのAPIを提供するサーバの負荷などに起因して処理時間が増減する傾向にある。
このように、API利用者から見ると、APIの内部処理を考慮して処理時間を推定するのは難しい。さらに、APIを利用する新しい情報サービスを開発する場合、複数のAPIを組み合わせることで1つのジョブを実現することも多い。この場合、ジョブを構成する全てのAPIの処理時間を推定する必要がある。
一部のAPIは、処理状態を外部から確認する機能を提供している場合がある。しかし、複数の企業が公開するAPIを連携させて利用する場合、それら全てのAPIが処理状態を確認するための機能をそれぞれ提供している可能性は低く、現実的ではない。
本発明は上述の課題に鑑みてなされたもので、その目的は、所定の機能を実現するプログラム部品の実行に要する処理時間を実績値として管理することで、プログラム部品の処理時間の推定に役立てることができるようにしたプログラム部品管理装置および管理方法を提供することにある。本発明の他の目的は、プログラム部品の処理時間の実績値を適宜更新することで、処理時間を比較的正確に推定できるようにしたプログラム部品管理装置および管理方法を提供することにある。
上記課題を解決すべく、本発明の一つの観点に従うプログラム部品管理装置は、所定の機能を実現するプログラム部品を少なくとも一つ管理するプログラム部品管理装置であって、プログラム部品を使用するために必要な情報を蓄積するデータ蓄積部と、クライアントコンピュータからの処理要求を受け付け、受け付けた処理要求がプログラム部品についての処理要求である場合は、データ蓄積部に蓄積された情報に基づいてプログラム部品を提供するサーバコンピュータへ処理要求を送信し、プログラム部品の実行結果をサーバコンピュータから受信すると、実行結果をクライアントコンピュータへ送信する要求処理部と、処理要求に係るプログラム部品の実行に要した処理時間を実績値として管理する実績値管理部と、を備える。
本発明によれば、プログラム部品の実行に要した処理時間を実績値として管理するため、その実績値を利用することで、これから実行させようとするプログラム部品の処理時間の推定に役立てることができる。
以下、図面に基づいて本発明の実施の形態を説明する。本実施形態では、所定の機能を実現するプログラム部品としてAPIを用いる場合を説明する。以下、HTTP(Hypertext Transfer Protocol)の規約に従うWebAPIを、APIの例として述べる。
本実施形態では、APIの処理時間の実績値を一つまたは複数の方法で管理することで、将来そのAPIを使用する場合の処理時間の推定に役立てる。さらに本実施形態では、内部状態がブラックボックスである複数のサーバコンピュータがそれぞれ提供する複数のAPIを使用する場合でも、処理時間の合計を推定することができる。さらに、本実施例では、API利用者が使用を希望するAPIの処理時間が、API利用者の希望する時刻に間に合うか否かを判定し、その判定結果を通知する。さらに、本実施形態では、希望時刻に間に合うか否かの判定結果に応じて、APIの実行を制御する。APIの実行の制御には、API実行のキャンセル、APIの実行時期の調整などがある。
図1〜図7を用いて、API管理システム1が、その管理下のAPI群の処理時間を推定する方式について説明する。
図1に示す情報処理システムは、「プログラム部品管理装置」としてのAPI管理システム1と、「サーバコンピュータ」としてのAPI提供サーバ2A,2Bと、「クライアントコンピュータ」としてのクライアント3とを含む。
クライアント3は、例えばインターネットなどの適宜な通信網CN1を通じて、API管理システム1と接続する。API提供サーバ2Aも、インターネット等の通信網CN2を通じて、API管理システム1と接続している。同様に、API提供サーバ2Bも、通信網CN3を通じて、API管理システム1と接続している。特に区別しない場合、API提供サーバ2A,2BをAPI提供サーバ2と呼ぶ。さらに、API提供サーバをサーバと略記する場合もある。クライアント3は複数でも構わないが、簡単のために1つのクライアント3を示す。
先にクライアント3の構成を説明した後、サーバ2の構成を説明する。その後にAPI管理システム1の構成を説明する。
クライアント3は、コンピュータ装置として構成されている。クライアント3は、例えば、通信部31と、APIリクエスト生成部32とを含む。通信部31は、APIを利用するためのリクエストを送信し、そのレスポンスを受信する。APIリクエスト生成部32は、APIを利用するリクエストを生成する。以下、APIを使用するためのリクエストを、APIリクエストまたはリクエストと呼ぶ。
クライアント3は、例えばスマートフォン等のような、通信部を備えたデバイスと、そのデバイスにインストールされたネイティブアプリケーション等とを含んで構成することができる。あるいは、インターネットに接続されたパーソナルコンピュータに、Webブラウザで動作するクライアントサイドアプリケーションをインストールすることで、クライアント3を構成してもよい。さらには、インターネットに接続されたサーバに、サーバサイドアプリケーションを実装することでクライアント3を構成してもよい。
API提供サーバ2の構成を説明する。API提供サーバ2Aは、複数のAPI(API−A1,API−A2)を公開する。
API提供サーバ2Aは、例えば、通信部21と、API処理部22とを含む。通信部21は、各APIへのリクエストを受信したり、そのリクエストに対するレスポンスをリクエスト送信元へ返信したりする。API処理部22は、各APIへのリクエストを処理する。
通信部21は、例えば、受信したリクエストを対応するAPI処理部22へ転送するプログラムと、通信モジュールとを含んで構成される。API処理部22は、例えば、リクエストに応じた処理を実行し、その処理結果を通信部21へ送信するコンピュータプログラムから構成することができる。
API提供サーバ2Bは、API提供サーバ2Aとは別の独立したサーバとして構成されており、1つのAPI(API−B1)を公開する。API提供サーバ2Bは、API提供サーバ2Aと同様に、通信部21とAPI処理部22を備えている。
API管理システム1の構成を説明する。API管理システム1は、コンピュータ装置として構成されており、例えば、クライアント通信部11、サーバ通信部12、APIリクエスト処理部13、データ蓄積部14、API登録部15、実績値管理部16および推定API処理部17を備える。
クライアント通信部11は、クライアント3と通信網CN1を介して双方向通信を行う機能である。クライアント通信部11は、クライアント3からリクエスト(APIリクエスト)を受信したり、リクエストに対するレスポンス(APIレスポンス)をクライアント3へ送信したりする。クライアント通信部11は、クライアント3からAPIリクエストを受信したらAPIリクエスト処理部13に転送し、APIリクエスト処理部13からAPIレスポンスを受信したらクライアント3に転送する、コンピュータプログラムと、通信モジュール(図示せず)とを備える。
サーバ通信部12は、API提供サーバ2A,2Bと通信網CN2,CN3を介して双方向通信する機能である。サーバ通信部12は、API提供サーバ2A,2BにAPIリクエストを送信したり、API提供サーバ2A,2BからのAPIレスポンスを受信したりする。サーバ通信部12は、所定のコンピュータプログラムと、通信モジュール(図示せず)とを含む。所定のコンピュータプログラムは、APIリクエスト処理部13からAPIリクエストを受信した場合はその宛先に応じてAPI提供サーバ2へ転送し、API提供サーバ2からAPIレスポンスを受信した場合はAPIリクエスト処理部13へ転送する。クライアント通信部11とサーバ通信部12とを合わせて、クライアント3やサーバ2と通信する通信部と呼ぶこともできる。
APIリクエスト処理部は、「要求処理部」の例である。APIリクエスト処理部13は、例えば、受信したAPIリクエストを適切な送信先へ振り分ける機能と、受信したAPIレスポンスをクライアント通信部11へ転送する機能と、APIリクエストの処理に要する時間を実績値管理部16へ送信する機能とを含む。
APIリクエストの振り分け機能は、受信したAPIリクエストの内容を解析し、そのAPIリクエストに適した送信先に振り分ける。APIレスポンスをクライアント通信部11へ転送する機能は、API管理システム1の内外で発生したAPIレスポンスをクライアント通信部11へ転送する。API管理システム1の内部で発生するAPIレスポンスとは、後述する推定API処理部17の出力するレスポンスである。API管理システム1の外部で発生するAPIレスポンスとは、API提供サーバ2が送信するレスポンスである。
APIリクエストの処理に要する時間を実績値管理部16へ送信する機能は、例えば、APIリクエストを送信先に振り分けた時刻(リクエスト送信時刻)と、そのAPIリクエストに対応するAPIレスポンスを受信した時刻(レスポンス受信時刻)とを、実績値管理部16へ送る。
APIリクエスト処理部13は、上述の機能を実現するためのAPIリクエスト処理用のコンピュータプログラムから構成される。APIリクエスト処理用のコンピュータプログラムは、APIリクエストを受信したら、その受信時刻を記録すると共に、データ蓄積部14に蓄積されたAPI定義データT2を参照して、そのリクエストを適切な送信先へ振り分ける。さらに、APIリクエスト処理用のコンピュータプログラムは、APIレスポンスを受信したら、その受信時刻を記録すると共に、そのレスポンスをクライアント通信部11に転送する。さらに、APIリクエスト処理用のコンピュータプログラムは、APIリクエスト受信の時刻とそれに対するレスポンス受信の時刻とを実績値管理部16に送信する。上述したAPIリクエスト処理用のコンピュータプログラムは、一つのコンピュータプログラムとして構成してもよいし、複数のコンピュータプログラムから構成してもよい。
上述の通り、本実施例におけるAPIリクエストの振り分けには、API管理システム1の外部への振り分けと、API管理システム1の内部への振り分けとに分けることができる。APIリクエスト処理部13は、APIリクエストが、API提供サーバ2の提供するAPI(API−A1、API−A2、API−B1)に対するものであれば、サーバ通信部12へ転送する。APIリクエスト処理部13は、APIリクエストが、API管理システム1自身が提供するAPI(推定API)に対するものであれば、推定API処理部17へ転送する。APIリクエスト処理部13は、APIリクエストが、サーバ2の提供するAPIまたはAPI管理システム1の提供する推定APIのいずれでもない場合、クライアント通信部11へエラーを送信する。
クライアント3からは、一連の処理として複数のAPIを列挙したリクエストが送信される場合がある。その場合、APIリクエスト処理部13は、API定義データT2を参照し、リクエスト内の記載順序に従って、各APIリクエストを個別に処理する。
データ蓄積部14は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶装置として構成することができる。データ蓄積部14は、例えば、APIの実行に要した処理時間であるAPI処理実績値T1と、APIを使用するために必要な情報であるAPI定義データT2とを蓄積する。API処理実績値T1およびAPI定義データT2の詳細は、図2,図3で後述する。API処理実績値T1およびAPI定義データT2は、電子ファイルの形態で管理してもよいし、あるいは、データベースシステムで管理してもよい。
API登録部15は、API管理システム1の管理するAPIをAPI管理システム1へ登録する機能である。API登録部15は、APIが登録されたことを実績値管理部16に通知する機能も持つ。
API登録部15は、API登録用のコンピュータプログラムから構成される。API登録用のコンピュータプログラムは、API提供者(例えばサーバ2を通じて提供される情報サービスの管理者)またはAPI管理システム1の管理者による操作を受けて、クライアント3に提供するAPIの仕様などの情報を、データ蓄積部14にAPI定義データT2として登録する。さらに、所定のコンピュータプログラムは、APIが登録されたことを実績値管理部16に通知する。
なお、API管理システム1へのAPIの登録は、例えば、API登録部15が提供する管理画面を用いてもよいし、設定用のファイルに記述してもよい。
実績値管理部16は、API管理システム1に登録された各APIについて、それぞれのAPI処理実績値T1を生成したり更新したりする機能である。通常、API管理システム1は、複数のAPIを管理下におくため、以下、API群と呼ぶことがある。
実績値管理部16は、API登録部15からAPIが登録された旨の通知を受けると、通知されたAPIの仕様をデータ蓄積部14に蓄積されたAPI定義データT2から取得する。実績値管理部16は、通知されたAPIのAPI処理実績値T1を、APIリクエスト処理部13と連携して生成する。さらに、実績値管理部16は、各APIへのリクエストを定期的に送信し、その応答時間を元にAPI処理実績値T1を更新する。さらに、実績値管理部16は、クライアント3が通常利用において送信するAPIリクエストの応答時間を元に、API処理実績値T1を更新する。API処理実績値T1の生成と更新の処理フローは後述する。
推定API処理部17は、「処理時間推定部」の例である。推定API処理部17は、指定されたAPIの処理時間を推定し、その推定結果を出力する機能である。API管理システム1は、APIの処理時間を推定するための機能を推定APIとして持つ。API管理システム1は、その推定APIをクライアント3に公開している。クライアント3が処理時間の推定を所望するAPIを指定して、推定APIへリクエストを送ると、推定API処理部17は推定APIを用いて、指定されたAPIの処理時間を推定する。推定APIは、指定されたAPIについてAPI処理実績値T1を参照することで、指定されたAPIの処理に要する時間を推定する。推定API処理部17は、推定結果をレスポンスとして、クライアント通信部11からクライアント3へ送信する。推定API処理部17は、上述した機能を実現するための推定API処理用のコンピュータプログラムから構成されている。処理時間を推定する処理フローは後述する。
図2は、API処理実績値T1のデータ構造例を示す。API処理実績値T1は、例えば、API毎(C11)、時間帯毎に(C12)、そのAPIの応答時間(C13)を対応付けたリストである。図2では、1時間毎に平均応答時間を管理する。これに限らず、1時間未満または1時間を超えた時間単位で平均応答時間を管理することもできる。
APIの応答時間とは、APIリクエスト処理部13がリクエストを受信した時刻から、そのリクエストに対するレスポンスを受信した時刻までの時間とする。図2の例では、API−A1は、1日の中でも昼から夕方にかけて平均応答時間が遅くなっている。これは、API−A1が企業の業務に関わるものである場合に特徴的な傾向である。
図2中のAPI−A2の平均応答時間は約30分である。このように時間のかかるAPIの場合は、通常、非同期処理が行われている。つまり、API−A2のリクエストをAPI提供サーバ2Aが受信すると、そのリクエストに対応する処理が完了する前に、そのリクエストを正常に受け付けたことだけを先にレスポンスとしてリクエスト元へ送信する、という処理が行われる。リクエストの受け付けを示すレスポンスをリクエスト元に送信した後、APIが実行されて処理結果がリクエスト元へ送信される。
このような非同期処理を行うAPIの場合、その処理が実際に完了したか否かを確認する必要がある。API管理システム1は、処理状態(処理中、完了、エラー等)を取得するAPIを適宜実行することで、非同期処理を行うAPIの処理状態を取得することができる。処理状態を取得するAPIは、非同期処理に対応したAPIが同時に提供していることが多い。あるいは、APIの処理完了をプッシュ通知または電子メールで通知する機能をAPI提供サーバ2が備えている場合、API管理システム1は、サーバ2の持つ通知機能を利用してもよい。本実施例のAPIリクエスト処理部13は、処理状態を取得するためのAPI、またはサーバ2の持つ通知機能などを用いることで、APIの処理完了に対応する時刻を取得できるものとする。
図3は、API定義データT2の例を示す。API定義データT2は、例えば、API毎に(C21)、API利用者への公開仕様(C22)と、それに対応したAPI提供者の内部仕様(C23)と、ヘッダやペイロードのパラメタ(C24)とをまとめたリストである。
本実施例では、API提供者の提供するAPIとしてAPI−A1、API−A2、API−B1が、API管理システム1が提供するAPIとして推定APIが、API定義データT2にそれぞれ定義されている。
API定義データT2によれば、API提供者の提供するAPIに対するAPIリクエストは、API管理システム1からAPI提供サーバ2へ転送される。同様にAPI定義データT2によれば、API管理システム1の提供する推定APIに対するAPIリクエストは、API管理システム1の内部の推定API処理部17へ転送される。
上述の通り、一連の処理として、複数のAPIを列挙したリクエストが送信される場合もある。その場合のリクエスト方法や内部での処理方法は、API定義データT2の下側に示すように、「複数API」の項目として定義されている。APIリクエスト処理部13は、複数APIのリクエストを受信すると、まず「複数API」の定義を参照し、その定義に従って当該リクエストから個別APIリクエストをそれぞれ抽出し、それぞれの個別APIの定義を参照する。
図4は、実績値管理部16によるAPI処理実績値の生成および更新の処理を示すフローチャートである。ここでは、API提供サーバ2Aの提供するAPI−A1,API−A2がAPI管理システム1に登録されている状況下で、API提供サーバ2Bの提供するAPI−B1を新規APIとして登録する際の、API処理実績値T1の生成と更新を説明する。
API−B1を提供する情報サービス(API提供サーバ2B)の管理者、またはAPI管理システム1の管理者は、API−B1の仕様を、API登録部15を通じてデータ蓄積部14へ登録する。API−B1の仕様を定義するデータは、API定義データT2に追記される(S10)。
API登録部15は、新規APIであるAPI−B1が登録されたことを、実績値管理部16へ通知する。その通知を受けた実績値管理部16は、データ蓄積部14内のAPI定義データT2を参照し、API−B1の定義を取得する。
実績値管理部16は、API定義データT2から取得したAPI−B1の定義を元に、API−B1に対するAPIリクエストを生成し、APIリクエスト処理部13に送信する(S11)。実績値管理部16がAPIリクエストを生成して、APIリクエスト処理部13から送信させる処理を、ここではテスト実行と呼ぶ。
APIリクエスト処理部13は、実績値管理部16からAPIリクエストを受け取ると、そのAPIリクエストをAPI提供サーバ2Bへ転送する。APIリクエスト処理部13は、送信したAPIリクエストに対応するAPIレスポンスを受信すると、そのAPIレスポンスをリクエスト送信元である実績値管理部16へ転送する。
このとき、APIリクエスト処理部13は、実績値管理部16からAPIリクエストを受信した時刻と、対応するレスポンスをAPI提供サーバ2Bから受信した時刻とを、実績値管理部16へ送信する。
実績値管理部16は、APIリクエスト処理部13から受け取った、APIリクエスト受信時刻およびAPIレスポンス受信時刻を元に、テスト実行の応答時間を算出し、図6に示すようなAPI処理実績値T1(1)を記録する。
実績値管理部16は、テスト実行を、レスポンス受信後の一定時間経過後(図6の例では10分経過後)に再実行することを、例えば1日間繰り返す。これにより、実績値管理部16は、新規登録されたAPI−B1の応答時間の、1日間の時間帯毎の変動を記録することができる。
ところで、API提供サーバ2Bでは、実績値管理部16によるテスト実行以外にも、図外の他の経路から同じAPI−B1が利用されていたり、あるいは、API提供サーバ2Bが図外の他のWebブラウザから利用されていたりする可能性がある。API提供サーバ2は、API管理システム1の専用のサーバであるとは限らず、図1に示すクライアント3以外のクライアントからも適宜利用される。このため、API−B1の応答時間は、時間毎に変化する可能性が高い(S11)。
実績値管理部16は、指定期間(例えば1日間)のテスト実行後、API処理実績値T1(1)について時間帯毎の平均応答時間を算出し、算出した平均応答時間をAPI−B1の処理実績値の初期値として、API処理実績値T1に登録する(S12)。
なお、リクエスト受信時刻とレスポンス受信時刻とが2つ以上の時間帯にまたがっているサンプルについては、リクエスト受信時刻が含まれる時間帯のサンプルとしてもよいし、レスポンス受信時刻が含まれる時間帯のサンプルとしてもよいし、あるいは処理時間が含まれる割合が多い時間帯のサンプルとしてもよい。ただし、扱い方は全体として統一するものとする。
新規APIに対するAPI処理実績値の生成および登録が完了するまでは(S10〜S12)、新規APIの公開準備期間として非公開とする方が運用面で好適である。
ステップS10〜S12の新規APIについてのAPI処理実績値の初期値登録の次に、APIの通常運用S13へ移行する。
APIの通常運用では、以下に述べるステップS14〜S16を実行する。ステップS14〜S16では、API通常運用時における、API処理実績値T1の更新方法について説明する。
実績値管理部16は、ステップS11と同様に、まずAPI処理実績値(実測)を記録し、それを用いて定期的に、API処理実績値T1を更新する。APIの通常運用時とは、API管理システム1に登録されたAPI群(API−A1、API−A2、API−B1)を、クライアント3が任意のタイミングで利用する状態のことを指す。
API通常運用時には、クライアント3から任意のタイミングでAPIリクエストが発行される(S14)。この他に、必須ではないが、実績値管理部16からも定期的に各APIへのリクエストを送信してもよい(S15)。通常運用において、実績値管理部16が各APIをテスト実行することを、ここではシステム同定処理と呼ぶ。
ステップS15でのAPIリクエストの送信は、ステップS11のテスト実行と同様であるが、APIリクエストを送信する際の時間間隔は、ステップS11での時間間隔よりも長くしてもよい。ステップS15では、例えば、レスポンス受信後から30分経過後等の周期で、APIリクエストを発行することができる。ステップS14およびステップS15は並行して行われるステップである。これにより、例えば図7に示すような、API処理実績値T1(2)が記録される。
実績値管理部16は、各APIの処理実績値を更新する(S16)。実績値管理部16は、例えば1日毎に、各APIの応答時間がそれぞれ1日分ずつ記録されたAPI処理実績値T1(2)に対して、API毎、時間帯毎の平均値を算出する。そして、実績値管理部16は、API処理実績値T1(2)で求めた各々の値と、API処理実績値T1の対応するAPI、対応する時間帯の値との平均値を算出して、API処理実績値T1を新しい平均値で更新する。
実績値管理部16がステップS14〜S16を繰り返すことによって、API処理実績値T1の時間帯毎の傾向は、APIの利用状況をより反映した形で更新される。しかし、APIの種類、すなわち情報サービスの種類によっては、APIリクエストの応答時間は、時間帯だけでなく、曜日によっても傾向が異なる可能性が高い。例えば、業務サービスのAPIでは、最初の平日である月曜日は利用者が少ないため、応答時間は短い。これに対し、最後の平日である金曜日は利用者が多いため、応答時間が長くなる。さらに、週末の土曜日と日曜日は利用者が殆どいないため、応答時間が月曜日よりも短い、ということも考えられる。
APIの利用状況が曜日によって異なる傾向を示す場合、API処理実績値T1を曜日を問わずに更新してしまうと、そのような傾向は表現することができない。従って、曜日の影響を受ける可能性があるAPIの場合には、曜日毎のAPI処理実績値(すなわち合計7個)を蓄積しておき、次の週には、前の週の同じ曜日のAPI処理実績値を更新するようにするとよい。つまり、曜日毎にAPI処理実績値を計算して更新すればよい。
曜日毎の傾向があるかどうかが事前に判別しにくい場合は、毎日更新するAPI処理実績値T1とは別に、曜日毎のAPI処理実績値を作成しておき、1週間後に、7個のAPI処理実績値の、同じ時間帯の値の曜日毎の変動を確認するとよい。なお、月単位、四半期単位、期単位で傾向が出るAPIもあり得るが、週単位(曜日毎)の場合と考え方は同じである。
図5は、推定APIリクエスト処理のフローチャートである。ここでは、一連の処理としてAPI−A1、API−A2、API−B1を順に実行する場合の、全体の処理時間の推定方法を説明する。
クライアント3は、API管理システム1が提供する推定APIを利用するためのAPIリクエストを生成し、API管理システム1へ送信する(S20)。推定APIのリクエストの記述方法は、図3に示すAPI定義データT2の「推定API」に従う。
API管理システム1のクライアント通信部11は、推定APIのリクエストを受信すると、APIリクエスト処理部13へ転送する。APIリクエスト処理部13は、クライアント通信部11からリクエストを受信すると、データ蓄積部14のAPI定義データT2を参照し、そのリクエストに対応するAPIを特定する。APIリクエスト処理部13は、推定APIへのリクエストであることを知ると、そのリクエストを推定API処理部17へ転送する(S21)。
推定API処理部17は、APIリクエスト処理部13からリクエストを受信すると、推定対象のAPI群とその実行順序(API−A1→API−A2→API−B1)とを抽出する。
推定API処理部17は、データ蓄積部14のAPI処理実績値T1を参照し、1番目のAPIであるAPI−A1の、推定APIリクエスト受信時刻に対応する時間帯での、平均応答時間(時間A1とする)を取得する。推定API処理部17は、2番目のAPIであるAPI−A2に対して、推定APIリクエスト受信時刻に、時間A1を足した時刻に対応する時間帯での、平均応答時間(時間A2とする)を取得する。推定API処理部17、3番目のAPIであるAPI−B1に対して、推定APIリクエスト受信時刻に、時間A1と時間A2とを足した時刻に対応する時間帯での、平均応答時間(時間B1とする)を取得する。推定API処理部17は、これら3つの時間の合計(=時間A1+時間A2+時間B1)を、推定対象API群の合計処理時間として推定する(S22)。
なお、推定APIへのリクエストは、API通常運用時に実行されるため、図7に示すAPI処理実績値T1(2)を同時に参照し、その日の傾向を更に反映することも可能である。
例えば、推定対象であるAPIの、推定APIリクエスト受信時刻の少し前の時間帯での応答時間をAPI処理実績値T1(2)から取得し、API処理実績値T1の同時間帯の平均応答時間と比較する。比較の結果、その日は全般的に1.1倍程度遅い傾向が見られるのであれば、推定API処理部17は、API処理実績値T1の平均応答時間を1.1倍した値を、推定時間として算出する(S22)。
推定API処理部17は、推定結果をレスポンスに設定してAPIリクエスト処理部13へ送信する。APIリクエスト処理部13は、推定API処理部17から受け取ったレスポンスを、クライアント通信部11からクライアント3へ送信する(S23)。
推定API処理部17の出力する推定結果には、ステップS22で算出した処理時間と、その処理時間を推定APIリクエスト受信時刻に足した時刻(すなわち処理完了時刻)とが含まれる。
このように構成される本実施例によれば、APIの実行に要した処理時間を実績値として管理するため、その実績値を利用することで、これから実行させようとするAPIの処理時間を推定することができる。
本実施例によれば、一つ以上のAPIの処理に要する時間を推定できるため、API利用者は、APIリクエストを発行する前にAPI処理に要する時間を把握することができ、処理完了時刻などを知ることができ、使い勝手が向上する。
本実施例によれば、API処理実績値T1を管理するため、API提供サーバ2の仕様や性能が不明な場合でも、そのサーバ2で提供されているAPIの処理に要する時間を、容易かつ正確に推定することができる。
本実施例では、APIの処理時間を推定するプログラム部品を推定APIとしてクライアント3に公開するため、クライアント3は、通常のAPIを利用する場合と同様にして、APIの処理に要する時間を知ることができ、使い勝手がよい。
本実施例では、APIの通常運用時における処理時間の実績値を用いて、API処理実績値T1を更新するため、最新の値をAPI処理実績値T1に保持することができ、推定精度を維持することができる。
本実施例では、APIの通常運用時において、各APIの全部または一部に対してテスト実行を行うことができるため、利用頻度の少ないAPIについてもその処理時間の実測値を得ることができ、推定精度を維持することができる。
図8を用いて第2実施例を説明する。本実施例を含む以下の各実施例は、第1実施例の変形例に相当するため、第1実施例との相違を中心に述べる。本実施例では、API管理システム1Aが管理しているAPI群の利用状況をAPI管理システム1Aから発信する方式について説明する。
図8は、API管理システム1Aを含む情報処理システムの構成図である。本実施例のAPI管理システム1Aは、図1に示すAPI管理システム1に比べて、利用状況生成部18を備えている。
利用状況生成部18は「利用状況出力部」の例である。利用状況生成部18は、利用状況生成用のコンピュータプログラムから構成される。利用状況生成用のコンピュータプログラムは、API管理システム1Aの管理する各APIに対する推定APIリクエストを生成して、APIリクエスト処理部13へ送信する。そして、利用状況生成用のコンピュータプログラムは、各APIに対する推定API処理部17からのレスポンスをAPIリクエスト処理部13を介して受信すると、API毎に、その時点における推定処理時間および推定完了時刻を列挙したリストデータまたは画面を生成する。
APIの利用状況を示す画面の例としては、例えば、API管理システム1Aの管理しているAPI群を一覧で表示するマーケットプレイス、API管理システム1が管理しているAPI群の利用者や提供者のためのポータル等を挙げることができる。さらに、その画面では、各APIに関する情報の一部として、上記の推定処理時間や推定完了時刻を付記するとよい。
各APIに対する推定APIリクエストの生成処理と、その結果を受けた画面更新処理とは、API管理システム1Aが定期的に行ってもよいし、あるいは、上述した画面の閲覧者による利用状況取得操作に応じて行ってもよい。利用状況取得操作は、画面に対する操作ではなく、推定APIと同様に、API管理システム1Aが提供する利用状況取得APIへのリクエストによって行えるようにしてもよい。
このように構成される本実施例も第1実施例と同様の作用効果を奏する。さらに本実施例では、管理対象のAPI群の利用状況を算出して提示することができるため、より一層APIの使い勝手が向上する。
図9〜図11を用いて第3実施例を説明する。本実施例では、APIを使用する際に希望納期を設定できるようにしている。希望納期は「希望時刻」に該当する。
図9は、API管理システム1Bを含む情報処理システムの構成図である。本実施例のAPI管理システム1Bは、図1に示すAPI管理システム1に比べて、APIリクエストキュー19を追加した点と、API定義データT2Bおよび処理フローが一部異なる点で相違する。
図10は、API定義データT2Bの構造を示す。本実施例のAPI定義データT2Bは、図3で示したAPI定義データT2と比較して、各APIのパラメタC24Bに希望納期を追加した点で異なる。このAPI定義データT2Bもデータ蓄積部14に蓄積されている。
希望納期は、一例として「timelimit=yyyymmddhhmm」という形式で、URLパラメタに指定している。例えば、希望納期が2016年6月29日の17時30分であれば、「timelimit=201606291730」となる。希望納期を指定する目的はAPIによって異なる。推定APIへのリクエストに希望納期を指定する場合は、第1実施例に示した処理時間の推定結果に加えて、希望納期に間に合うか否かの判定結果と、間に合うと判定した場合はいつまでにそのリクエストを送信する必要があるかという情報とが、そのリクエストに対するレスポンスに含まれる。
これに対し、通常API(API−A1、API−A2、API−B1、および複数API)へのリクエストに希望納期を指定する場合は、その通常APIに対する処理時間を推定し、推定結果が希望納期に間に合わなければ、その通常APIへのリクエストを自動的にキャンセルする。クライアント3からのAPIリクエストには、通常は費用が発生するため、納期に間に合わないAPIリクエストは自動的にキャンセルすることで、API利用者の費用負担を軽減する。
図11は、希望納期を指定したAPIリクエスト処理のフローチャートである。本処理は、希望納期を推定APIに指定する場合と、通常APIに指定する場合の、両方を含んでいる。
APIリクエスト処理部13は、クライアント3からのAPIリクエストをクライアント通信部11経由で受信する(S30)。APIリクエスト処理部13は、受信したAPIリクエストが、推定APIに対するリクエストであるか判定する(S31)。
APIリクエスト処理部13は、ステップS30で受信したAPIリクエストが推定APIに対するリクエストであると判定すると(S31:YES)、そのAPIリクエストを推定API処理部17へ転送する(S32)。
推定API処理部17は、APIリクエスト処理部13から受領したAPIリクエストを処理する(S33)。詳しくは、推定API処理部17は、APIリクエストのパラメタに希望納期が指定されているかどうか判別し、指定されていない場合は、第1実施例で述べた処理時間の推定を行う。すなわち、推定API処理部17は、APIリクエストを受信した時刻を起点として、処理時間を推定する。
APIリクエストのパラメタに希望納期が指定されている場合、処理の起点をいつに設定するかによって推定方式が異なる。単純にリクエスト受信時の時刻を処理の起点とする場合は、第1実施例で示した方式で、処理完了時刻を推定し、希望納期との前後関係を判定すればよい。
但し、処理時間推定に用いるAPI処理実績値T1は、APIによっては、時間帯毎に応答時間が大きく異なる可能性がある。例えば、リクエスト受信時の時刻を処理の起点とすると希望納期に間に合わないが、少し後の時刻を処理の起点とすると希望納期に間に合う可能性がある。
そのように極端な応答時間の変化が発生することは少ないと考えられるが、複数のAPIを一連の処理とする場合など、汎用的な利用を考えるならば、処理の起点を一定間隔で後ろ倒ししながら、処理時間推定を行うとよい。
そのような方式とすることで、希望納期に間に合うためにはどの時刻から処理を開始するか、すなわちAPIリクエストをいつ送信する必要があるか、という「リクエスト推奨時刻」もレスポンスに含むことができる。推定API処理部17は、以上のような推定処理を行う。推定API処理部17は、希望納期に間に合わない場合、希望納期に間に合わない旨と、現時点を処理の起点とした場合の推定処理時間と、推定完了時刻とをAPIレスポンスに設定して、APIリクエスト処理部13へ送信する。
推定API処理部17は、希望納期に間に合うと判定した場合、希望納期に間に合う旨と、現時点を処理の起点とした場合の推定処理時間と、推定完了時刻(現時点を処理の起点とすると間に合わない場合は、そのことも記載)と、リクエスト推奨時刻と、推奨時刻でリクエストを発行した場合の推定処理時間とをAPIレスポンスに設定し、APIリクエスト処理部13へ送信する。
リクエスト推奨時刻が複数ある場合は、例えば推定処理時間が短い順に上位3件を設定するなど、限定してもよい(S33)。
APIリクエスト処理部13は、ステップS31において、受信したAPIリクエストが推定APIへのものではない、すなわち通常APIに対するリクエストであると判定すると(S31:NO)、そのAPIリクエストに希望納期が指定されているかどうか判定する(S34)。
APIリクエスト処理部13は、通常APIに対するリクエストに希望納期が指定されていないと判定すると(S34:NO)、通常APIの通常利用であるため、そのリクエストをサーバ通信部12へ転送する(S35)。サーバ通信部12は、受領したAPIリクエストを、対応するAPIを有するサーバ2へ送信する。
これに対し、APIリクエスト処理部13は、通常APIに対するリクエストに希望納期が指定されている場合(S34:YES)、そのAPIリクエストの処理時間を推定させるべく、推定APIに対するリクエストを生成して、推定API処理部17へ転送する(S36)。推定APIに対するリクエストは、指定された希望納期を含む。
推定API処理部17は、ステップS33と同様の推定処理を行う(S37)。APIリクエスト処理部13は、推定API処理部17から受信したレスポンスを元に、通常APIへのリクエストが希望納期に間に合うかどうかを確認する(S38)。
APIリクエスト処理部13は、通常APIへのリクエストが希望納期に間に合うと判定すると(S38:YES)、そのAPIリクエストをサーバ通信部12へ転送する。但し、現時点を処理の起点とすると間に合わない場合には、APIリクエスト処理部13は、リクエスト推奨時刻になるまでAPIリクエストキュー19に蓄積し、リクエスト推奨時刻になってからサーバ通信部12へ転送する(S39)。ステップS39では、リクエスト推奨時刻になるのを待ってAPIリクエストをサーバ通信部12へ転送することを、適切なタイミングでリクエストをサーバ通信部へ転送する、と表現している。
APIリクエスト処理部13は、通常APIへのリクエストが希望納期に間に合わないと判定すると(S38:NO)、通常APIへのリクエストをキャンセルし、所定の情報をクライアント3へ通知させる(S40)。すなわち、APIリクエスト処理部13は、キャンセルした旨と、推定APIからのレスポンス内容(希望納期に間に合わない旨、推定処理時間、推定完了時刻)とを、通常APIへのリクエストに対するレスポンスに設定し、クライアント通信部11へ転送する(S40)。
このように構成される本実施例も第1実施例と同様の作用効果を奏する。さらに本実施例では、APIリクエストのパラメタに希望納期を設定することができるため、より一層APIの使い勝手を向上することができる。
本実施例では、推定APIに対するリクエストに希望納期が含まれている場合、リクエスト推奨時刻と、リクエスト推奨時刻にAPIリクエストを発行した場合の推定処理時間などをレスポンスに含めることができる。これにより、API利用者は、いつまでにリクエストを発行すればよいか等を事前に知ることができ、使い勝手がよい。
本実施例では、通常APIに対するリクエストに希望納期が含まれている場合、推定処理時間が希望納期に間に合わないときは、リクエストを自動的にキャンセルする。このため、本実施例によれば、API利用者が無駄なリクエストを発行するのを抑制でき、API利用時のコストを低減できる。
図12を用いて第4実施例を説明する。本実施例では、複数のAPI提供サーバ2がそれぞれ提供するAPIを連携させて、一つのまとまった処理を行う様子を説明する。
図12では、API管理システム1の持つ各機能11〜17のうちいくつかの機能13,16,17を示している。なお、図12では、API提供サーバをAPIサーバと略記している。
図12に示す例では、クライアント3は、サーバ2Aの提供するデータ取得用APIと、サーバ2Bの提供する前処理用APIと、サーバ2Cの提供する分析用APIと、サーバ2Dの提供するデータ保存用APIとを順番に使用する。これにより、クライアント3は、所望のデータを取得し、取得したデータを前処理し、前処理の完了したデータを分析し、その分析結果を保存することができる。
図13を用いて第5実施例を説明する。本実施例では、APIリクエストに設定するパラメタとして、分析手法を指定できるようにした。
API処理実績値T1Cに示すように、例えばAPI−B1が分析用のAPIである場合、分析処理に使用する手法(アルゴリズム)をパラメタとして指定できる。分析手法は、API登録時などで手動で指定してもよいし、自動的に判定してもよい。
図14を用いて第6実施例を説明する。図14のAPI処理実績値T1Dに示すように、本実施例では、APIに処理させるデータの単位サイズごとに、平均応答時間の実績値を管理する。データの単位サイズはAPI登録時などで手動で指定してもよいし、自動的に判定してもよい。
なお、本発明は上述の実施形態に限定されず、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることもできる。また、ある実施形態の構成に他の実施形態の構成を加えることもできる。また、各実施形態の構成の一部について、他の構成を追加・削除・置換することもできる。
上記各構成、機能、処理部、処理手段等は、それらの一部や全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、上述した実施形態に含まれる技術的特徴は、特許請求の範囲に明示された組み合わせに限らず、適宜組み合わせることができる。
1,1A,1B:API管理システム、2A,2B,2C,2D:API提供サーバ、3:クライアント、11:クライアント通信部、12:サーバ通信部、13:APIリクエスト処理部、14:データ蓄積部、15:API登録部、16:実績値管理部、17:推定API処理部、18:利用状況生成部、19:APIリクエストキュー
Claims (14)
- 所定の機能を実現するプログラム部品を少なくとも一つ管理するプログラム部品管理装置であって、
プログラム部品を使用するために必要な情報を蓄積するデータ蓄積部と、
クライアントコンピュータからの処理要求を受け付け、前記受け付けた処理要求が前記プログラム部品についての処理要求である場合は、前記データ蓄積部に蓄積された情報に基づいて、前記プログラム部品を提供するサーバコンピュータへ前記処理要求を送信し、前記プログラム部品の実行結果を前記サーバコンピュータから受信すると、前記実行結果を前記クライアントコンピュータへ送信する要求処理部と、
前記処理要求に係るプログラム部品の実行に要した処理時間を実績値として管理する実績値管理部と、
を備えるプログラム部品管理装置。 - さらに、前記実績値管理部により管理される前記実績値に基づいて、前記クライアントコンピュータが前記プログラム部品を使用する場合の処理時間を推定し、その推定結果を前記クライアントコンピュータへ送信する処理時間推定部を備える、
請求項1に記載のプログラム部品管理装置。 - 前記処理時間推定部は、前記クライアントコンピュータからの推定要求に応じて、前記クライアントコンピュータから指定されたプログラム部品の実行に要する処理時間を推定し、推定結果を前記クライアントコンピュータへ送信する、
請求項2に記載のプログラム部品管理装置。 - 前記推定要求は、複数のプログラム部品を指定することができる、
請求項3に記載のプログラム部品管理装置。 - 前記推定要求は、複数のプログラム部品と実行順序とを指定することができる、
請求項4に記載のプログラム部品管理装置。 - 前記実績値管理部は、プログラム部品を使用するために必要な情報が前記データ蓄積部に登録された場合に、前記登録されたプログラム部品を提供するサーバコンピュータに対して、前記登録されたプログラム部品のテスト実行を前記要求処理部を介して要求し、前記登録されたプログラム部品のテスト実行に要した処理時間を実績値の初期値として保存する、
請求項1に記載のプログラム部品管理装置。 - 前記実績値管理部は、前記クライアントコンピュータが前記サーバコンピュータの提供するプログラム部品を使用した場合の処理時間に基づいて前記実績値を更新する、
請求項6に記載のプログラム部品管理装置。 - 前記実績値管理部は、前記サーバコンピュータに対し、前記プログラム部品のテスト実行を所定の契機で前記要求処理部を介して要求し、前記テスト実行に要した処理時間に基づいて前記実績値を更新する、
請求項7に記載のプログラム部品管理装置。 - さらに、前記処理時間推定部による前記プログラム部品の処理時間の推定結果を前記プログラム部品の利用状況として出力する利用状況出力部を備える、
請求項2に記載のプログラム部品管理装置。 - 前記要求には、前記プログラム部品の処理が完了する時刻の希望時刻が設定されており、
前記要求処理部は、前記希望時刻の設定されたプログラム部品の処理時間を前記処理時間推定部に推定させ、前記処理時間推定部の推定結果に基づいて、前記希望時刻の設定されたプログラム部品の実行完了予定時刻が前記希望時刻に間に合うか否かを判断し、間に合わないと判断した場合は、前記希望時刻の設定されたプログラム部品について前記クライアントコンピュータから発行された処理要求をキャンセルする、
請求項2に記載のプログラム部品管理装置。 - 前記要求には、推定対象であるプログラム部品の処理が完了する時刻の希望時刻が設定されており、
前記処理時間推定部は、前記クライアントコンピュータから指定されたプログラム部品の実行に要する処理時間の推定結果と、前記処理時間の推定結果が前記希望時刻に間に合うか否かを示す判定結果と、前記処理時間の推定結果が前記希望時刻に間に合うために前記プログラム部品についての処理要求を発行すべき推奨時刻とを、前記クライアントコンピュータへ送信する、
請求項2に記載のプログラム部品管理装置。 - 前記要求には、推定対象であるプログラム部品の処理が完了する時刻の希望時刻が設定されており、
前記処理時間推定部は、前記プログラムの実行に要する処理時間の推定結果が前記希望時刻に間に合うように、前記プログラム部品を実行する時間帯を変更し、前記要求処理部へ指示する、
請求項2に記載のプログラム部品管理装置。 - 前記データ蓄積部は、前記プログラム部品を使用するために必要な情報のみを記憶しており、それ以外の前記サーバコンピュータに関する情報は記憶していない、
請求項1に記載のプログラム部品管理装置。 - 所定の機能を実現する少なくとも一つのプログラム部品を計算機を用いて管理する方法であって、
サーバコンピュータの提供するプログラム部品を使用するために必要な情報をデータ蓄積部に蓄積するステップと、
クライアントコンピュータからの処理要求を受け付け、前記受け付けた処理要求が前記プログラム部品についての処理要求である場合は、前記データ蓄積部に蓄積された情報に基づいて前記サーバコンピュータへ前記処理要求を送信し、前記プログラム部品の実行結果を前記サーバコンピュータから受信すると、前記実行結果を前記クライアントコンピュータへ送信するステップと、
前記処理要求に係るプログラム部品の実行に要した処理時間を実績値として管理するステップと、
前記実績値に基づいて、前記クライアントコンピュータが前記プログラム部品を使用する場合の処理時間を推定し、その推定結果を前記クライアントコンピュータへ送信するステップと、
を実行するプログラム部品の管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016222355A JP2018081431A (ja) | 2016-11-15 | 2016-11-15 | プログラム部品管理装置および管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016222355A JP2018081431A (ja) | 2016-11-15 | 2016-11-15 | プログラム部品管理装置および管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018081431A true JP2018081431A (ja) | 2018-05-24 |
Family
ID=62197153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016222355A Pending JP2018081431A (ja) | 2016-11-15 | 2016-11-15 | プログラム部品管理装置および管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018081431A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750269A (zh) * | 2019-10-25 | 2020-02-04 | 浪潮云信息技术有限公司 | 一种基于步骤驱动的软件实现方法 |
-
2016
- 2016-11-15 JP JP2016222355A patent/JP2018081431A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750269A (zh) * | 2019-10-25 | 2020-02-04 | 浪潮云信息技术有限公司 | 一种基于步骤驱动的软件实现方法 |
CN110750269B (zh) * | 2019-10-25 | 2023-04-21 | 浪潮云信息技术股份公司 | 一种基于步骤驱动的软件实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10805213B2 (en) | Controlling data communication between microservices | |
US10484464B2 (en) | Connection control device, connection control system, and non-transitory computer readable medium | |
US10033832B2 (en) | Systems and methods for providing a client agent for delivery of remote services | |
JP6126099B2 (ja) | タイムリーイベントデータ分配用マーケットプレイス | |
US10756911B2 (en) | Cost estimation on a cloud-computing platform | |
JP5627187B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN106302445B (zh) | 用于处理请求的方法和装置 | |
US11064041B2 (en) | Apparatus for providing cloud service using cloud service brokerage based on multiple clouds and method thereof | |
US11157318B2 (en) | Optimizing timeouts and polling intervals | |
Ludwig et al. | rSLA: Monitoring SLAs in dynamic service environments | |
WO2013157042A1 (ja) | 分散アプリケーション及びデータホスティングシステム | |
EP1569110A2 (en) | A method for managing execution of a process based on available services | |
JP2018081431A (ja) | プログラム部品管理装置および管理方法 | |
JP6815975B2 (ja) | Api管理システムおよびapi管理方法 | |
US20120054751A1 (en) | Disposition determination technique | |
TW202225995A (zh) | 用於使用分散式訊息系統處理資料之系統及其資料處理方法 | |
JP2011013711A (ja) | サービスシステム、クラウドコンピューティングシステム及びサービスプログラム | |
US11876689B1 (en) | Method and system for SLA/QoS adherence-based flex on demand in a multi-API virtual desktop infrastructure (VDI) environment | |
JP2018170715A (ja) | クラウド管理装置、クラウド管理方法、及びプログラム | |
CN112887349B (zh) | 分发文件的方法和装置 | |
JP2017158014A (ja) | 自動設置システム、管理装置、情報処理装置、管理装置の制御方法、情報処理装置の制御方法、及びプログラム | |
JP2014229281A (ja) | 配信制御装置、配信制御方法、並びにプログラム | |
JP2020048050A (ja) | 管理システム及び管理方法 | |
US20040267898A1 (en) | Status information for software used to perform a service | |
US9667530B2 (en) | Privacy preserving query method and system for use in federated coalition networks |