JP2019046015A - アプリケーション稼働監視装置および監視方法 - Google Patents

アプリケーション稼働監視装置および監視方法 Download PDF

Info

Publication number
JP2019046015A
JP2019046015A JP2017166485A JP2017166485A JP2019046015A JP 2019046015 A JP2019046015 A JP 2019046015A JP 2017166485 A JP2017166485 A JP 2017166485A JP 2017166485 A JP2017166485 A JP 2017166485A JP 2019046015 A JP2019046015 A JP 2019046015A
Authority
JP
Japan
Prior art keywords
monitoring
application programming
programming interface
api
application
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
JP2017166485A
Other languages
English (en)
Other versions
JP6730235B2 (ja
Inventor
小林 恵美子
Emiko Kobayashi
恵美子 小林
水野 潤
Jun Mizuno
潤 水野
貴志 爲重
Takashi Tameshige
貴志 爲重
晋広 牧
Kunihiro Maki
晋広 牧
順史 木下
Yorifumi Kinoshita
順史 木下
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2017166485A priority Critical patent/JP6730235B2/ja
Priority to US15/905,235 priority patent/US10977146B2/en
Publication of JP2019046015A publication Critical patent/JP2019046015A/ja
Application granted granted Critical
Publication of JP6730235B2 publication Critical patent/JP6730235B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】アプリケーションプログラムの稼働状態の監視に適したアプリケーションプログラミングインタフェースを選択する。
【解決手段】監視対象となるAP102が呼び出すAPIの中から、リクエストの実行に情報の変更を伴わないAPIを監視用APIとして選択し、監視用APIに対して擬似的なリクエストを送信して該リクエストに対する応答を受信することで、当該監視用APIが正常に稼働しているか否か判断する監視ノード106を作成してAP106に包含させる。
【選択図】図1

Description

本発明は、アプリケーションプログラムの稼働状態を監視するアプリケーション稼動監視装置および監視方法に関する。
あるソフトウェアが、機能やデータを提供するためのインタフェースを持ち、他のソフトウェアが、そのソフトウェアのインタフェースを利用して所望の機能やデータの提供を受けることで、必要な機能やデータを組み込んだソフトウェアを容易に開発できる仕組みが知られている。このように、インタフェースを持ち、機能やデータを提供するソフトウェアをサービスと呼ぶ。
また、ソフトウェア開発環境として、視覚的な機能オブジェクトの組み合わせによるプログラミングを可能とするビジュアルプログラミング言語が知られている。開発者は、所定の機能を提供する機能オブジェクトを作成、編集、登録、利用することができ、所望の機能オブジェクト同士を結び付けることでビジュアル的にデータ入出力を定義して、アプリケーションプログラムを開発することができる。機能オブジェクトは、上述したサービスのインタフェースを呼び出す処理を行うものであってもよい。
ここで、開発されたアプリケーションプログラム(以下、APと称する)が稼動する際、正常稼動を継続できるよう、その稼働状態を監視することが望まれる。APの稼動状態を監視する方法として、監視サーバが、アプリケーションで順番に実施される各Webサービスに対して擬似リクエストを発行し、その擬似リクエストに対する応答を確認することでWebサービスの稼動を監視する方法が知られており、特許文献1に開示されている。
特開2005−208749号公報
APが、1つ以上の機能オブジェクトを順番(例えばオブジェクト1、オブジェクト2、オブジェクト3の順)に使用し、各機能オブジェクトでは、サービスが提供するインタフェースを呼び出して複数のサービスを使用する構成になることが想定される。そのような構成においては、APは、途中の機能オブジェクト2にて呼び出し先のサービスから正常な応答が返されない場合、最初の機能オブジェクト1からリトライする必要があり、機能オブジェクト1についての処理時間や課金等の無駄が発生する。
そのため、APが使用するサービスの中に正常に稼動しないものが存在する場合は、全てのサービスが正常に稼動するまで待つことが望ましい。そのためには、APの稼動開始時に、APが使用しているサービスに対して、APが使用する条件でサービスが使用可能かどうかを確認することが望まれる。
ここで、機能オブジェクトとサービスとの対応付けは1対1とは限らない。1つの機能オブジェクトが呼び出す複数のアプリケーションプログラミングインタフェース(Application Programming Interface、以下、APIと称する)が、互いに異なるサービスから提供されるものである可能性がある。また、互いに異なる機能オブジェクトが同一のサービスのAPIを呼び出す可能性もある。そのため、多数の機能オブジェクトを使用してAPを作成する場合、APが使用するサービスの状況を把握するのが難しい。また、サービスから提供されるAPIは様々であり、情報を参照するだけのものと、情報の変更を伴うものとが混在する。
ところで、上述したように、サービスに対して擬似リクエストを発行し、その擬似リクエストに対する応答を確認することでサービスの稼動を監視する方法が特許文献1に開示されている。しかしながら、APの稼働状態を監視するために、サービス内で処理が行われてデータ等サービスの情報を変更するようなAPIに対して、擬似リクエストのような擬似的な呼び出しを行った場合、擬似リクエストによってサービス側の情報が変更されてしまう可能性があり、好ましくない。特許文献1に開示されたものにおいては、入手したワークフローに従って処理を実行するものであるため、情報の変更を伴うリクエストかどうかは考慮されていない。そのため、APが使用する各サービスに対して提供される複数のAPIの中から、APの稼働状態の監視に適したAPIを判断することは難しい。
本発明は、アプリケーションプログラムの稼働状態の監視に際し、アプリケーションプログラムが使用するサービスに対して提供される複数のアプリケーションプログラミングインタフェースの中から、アプリケーションプログラムの稼働状態の監視に適したアプリケーションプログラミングインタフェースを選択することを目的とする。
上記目的を達成するために本発明の一態様によるアプリケーション稼働監視装置は、サービスから提供されたアプリケーションプログラミングインタフェースを呼び出して稼働するアプリケーションプログラムの稼働状況を監視するアプリケーション稼働監視装置であって、監視対象となるアプリケーションプログラムのソースコードに含まれているアプリケーションプログラミングインタフェースを抽出する抽出部と、公開されたアプリケーションプログラミングインタフェースが前記サービス単位のグループ毎に登録されたグループ情報に基づいて、前記抽出されたアプリケーションプログラミングインタフェースが属するグループを特定するグループ特定処理部と、前記特定されたグループに属するアプリケーションプログラミングインタフェースの中から、リクエストの実行に情報の変更を伴わないアプリケーションプログラミングインタフェースを監視用アプリケーションプログラミングインタフェースとして選択する選択部と、前記監視用アプリケーションプログラミングインタフェースに対して擬似的なリクエストを送信して該リクエストに対する応答を受信することで、当該監視用アプリケーションプログラミングインタフェースが正常に稼働しているか否か判断する監視ノードを作成する監視ノード作成部と、前記監視ノードを前記アプリケーションプログラムに包含させるノード登録部と、を有する。
本発明によれば、アプリケーションプログラムの稼働状態の監視に際し、アプリケーションプログラムが使用するサービスに対して提供される複数のアプリケーションプログラミングインタフェースの中から、アプリケーションプログラムの稼働状態の監視に適したアプリケーションプログラミングインタフェースを選択することができる。
第1の実施形態によるアプリケーション稼働監視装置を採用したコンピュータシステムの一例を示す概念図である。 図1に示した稼動監視設定プログラムを実行するサーバのハードウェア構成の一例を示す図である。 図1に示した稼動監視設定プログラムの機能モジュール構成の一例を示す図である。 図1〜図3に示した稼動監視設定プログラムの全体の処理を説明するためのフローチャートである。 図1〜図3に示した稼動監視設定プログラムにおける監視ノード作成処理を説明するためのフローチャートである。 図3に示したノード管理テーブルの構成例を示す図である。 図1〜図3に示した稼動監視設定プログラムにおけるAPIのサービス特定処理を説明するためのフローチャートである。 図1〜図3に示した稼動監視設定プログラムにおけるAPIを選択する処理を説明するためのフローチャートである。 図3に示したAPIグループ管理テーブルの構成例を示す図である。 図1〜図3に示した稼動監視設定プログラムによって表示出力される画面例を示す図である。 図1に示した稼動監視設定プログラムの機能モジュール構成の他の例を示す図である。 図11に示した稼動監視設定プログラムにおける監視実行処理を説明するためのフローチャートである。 図12に示したノード管理テーブルの構成例を示す図である。
以下に、本発明の実施の形態について図面を参照して説明する。
(第1の実施の形態)
図1は、第1の実施形態のアプリケーション稼働監視装置を採用したコンピュータシステムの一例を示す概念図である。
本例におけるコンピュータシステムは図1に示すように、稼動監視設定プログラム101と、アプリケーションプログラム(AP)102と、サービス104と、APIゲートウェイ105とを有している。
AP102は、AP開発に使用される入出力が既定されたモジュールである機能オブジェクトとなる複数のノード103と、監視用の機能オブジェクトである監視ノード106とを含んでいる。AP102は、後述するAPIを利用してサービス104に要求を送信し、応答を受信する。各ソフトウェアが実行されるサーバやネットワークは図示しないが、AP102とサービス104とは同一のサーバ上で実行されてもよい。AP102とサービス104とが、別々のサーバで実行される場合はネットワーク経由で要求および応答を送受信する。
サービス104は、APの実行環境の外部で稼動して、機能やデータを提供するソフトウェアである。サービス104が他のソフトウェアに機能やデータを提供するインタフェースが上述したAPIである。サービス104はクラウドプラットフォーム107上で稼動し、AP−1,AP−2といった複数のAP102から利用される形態となっている。
APIゲートウェイ105は、APIを管理する管理装置として、機能やデータの提供側であるサービス104と利用側であるAP102との間に介在し、サービス104の提供するAPIを管理するソフトウェアあるいはそのソフトウェアを実行する計算機である。具体的には、公開されたAPIについて、サービス104単位でグループを構成し、そのグループ毎のグループ情報として、サービス104から提供されるAPIが、リクエストの実行に情報の変更を伴うものであるか否かを示す属性情報を登録、管理している。また、APIゲートウェイ105は、APIを使用するための認証機能や、サービスが利用者側に公開するAPIを内部用APIとは別に提供したい場合に、その管理を行って変換する機能などを持つ。
なお、図1では、AP102に含まれるノード103間の矢印はAP102内におけるデータフローを示し、ノード103からサービス104に対する矢印は、APIゲートウェイ105を介して、ノード103がサービス104の提供するAPIを呼び出すことを示している。
図2は、図1に示した稼動監視設定プログラム101を実行するサーバのハードウェア構成の一例を示す図である。
本例におけるハードウェアは、図2に示すように、1つ以上の中央処理装置(CPU)201と、メモリ202と、ハードディスク等の二次記憶装置203と、キーボードやマウスからの入力とディスプレイへの出力情報を制御する入出力インタフェース204と、ネットワークに接続するネットワークインタフェース205とから構成される。
上記のように構成されたハードウェアにおいては、サーバのメモリ202上に稼動監視設定プログラム101がロードされ、CPU201により実行される。また、二次記憶装置203には、稼動監視設定プログラム101が使用するテーブル206のデータが保存される。
なお、AP102やサービス104、APIゲートウェイ105を実行するサーバのハードウェア構成も同様である。なお、各サーバは物理マシンでなく仮想マシンとして実装されてもよい。
図3は、図1に示した稼動監視設定プログラム101の機能モジュール構成の一例を示す図である。
本例における稼動監視設定プログラム101の機能モジュールとして、図3に示すように、コード取得部301と、API抽出部302と、API登録確認部303と、APIゲートウェイ通信部304と、グループ特定処理部305と、API属性確認部306と、API選択部307と、監視ノード作成部308と、ノード登録部309とがある。稼働監視設定プログラム101は、アプリケーション稼働監視装置の第1の実施の形態を構成する。また、図1に示した稼動監視設定プログラム101の機能モジュール構成は、各処理が使用するテーブルとして、ノード管理テーブル310と、APIグループ管理テーブル311とを有している。
コード取得部301は、監視対象となるAPのソースコードをAP開発環境312から取得する。
API抽出部302は、コード取得部301が取得したソースコードを解析し、ソースコードに含まれているAPIを抽出する。
API登録確認部303は、API抽出部302が抽出したAPIがAPIゲートウェイ105に登録されているかを、APIゲートウェイ通信部304を介して確認する。APIゲートウェイ105には、AP102がサービス104を利用することができるようにするために、APIが、そのサービス104単位でグループを構成して登録、公開されている。
APIゲートウェイ通信部304は、APIゲートウェイ105から情報を取得するためのものである。
グループ特定処理部305は、APIとサービス毎のグループとをマッピングすることで、API抽出部302が抽出したAPIが属するグループを特定する。この際、グループ特定処理部305は、API抽出部302が抽出したAPIがAPI登録確認部303にてグループ情報に登録されていることが確認された場合に、上記処理を行う構成とすることが考えられる。
API属性確認部306は、APIゲートウェイ105に登録されたAPIの属性情報を確認する。APIゲートウェイ105には、上述したように、公開されたAPIについて、サービス104単位で構成されたグループ毎のグループ情報として、サービス104から提供されるAPIが、リクエストの実行に情報の変更を伴うものであるか否かを示す属性情報が登録されているため、API属性確認部306は、この属性情報を確認することになる。
API選択部307は、グループ特定処理部305が特定したグループに属するAPIの中から、リクエストの実行に情報の変更を伴わないAPIを、APの稼働状態の監視に適した監視用APIとして選択する。
監視ノード作成部308は、API選択部307が選択した監視用APIに対して擬似的なリクエストを送信して該リクエストに対する応答を受信することで監視用APIが正常に稼働しているか否か判断する監視用の機能モジュールである監視ノードを作成する。
ノード登録部309は、監視ノード作成部308が作成した監視ノードを、AP開発環境312に登録することで、APに包含させる。
以下に、上記のように構成されたコンピュータシステムにおけるAPの稼働監視方法について説明する。
図4は、図1〜図3に示した稼動監視設定プログラム101の全体の処理を説明するためのフローチャートである。
まず、AP開発者が、AP開発環境312を使用してAPのフローを作成し、登録を実行した際に、そのフロー登録を検知する(ステップ401)。検知方法としては、AP開発環境312上に稼動監視設定プログラム101を呼び出すためのボタンを表示して、AP開発者がボタンを押す操作を検知する方法や、AP開発環境312での処理をフックする方法等がある。
次に、登録されたフローについて、コード取得部301が、AP開発環境312からソースコードのエクスポートを実行することにより、ソースコードを取得する(ステップ402)。
次に、稼動監視設定プログラム101では、コード取得部312が取得したソースコードに基づいて、後述する監視ノード作成処理を行う(ステップ403)。
次に、稼動監視設定プログラム101では、作成された監視ノードのソースコードを、取得したフローのソースコードに追加し(ステップ404)、該フローをAP開発環境312にインポートすることで、監視ノードをAPに包含させる(ステップ405)。AP開発者は、監視ノードが追加された当該フローをAP開発環境312のGUIで確認することができる。
なお、ステップ403における監視ノード作成処理によって作成されたAP用の監視ノードをAP開発環境312にインポートしてもよい。その場合は、インポートされたノードをAP開発者がAPのフローに追加する処理を行うことになる。
図5は、図1〜図3に示した稼動監視設定プログラム101における監視ノード作成処理を説明するためのフローチャートであり、図4に示したステップ403における監視ノード作成処理の詳細を説明するためのものである。
稼動監視設定プログラム101における監視ノード作成処理においては、まず、API抽出部302が、コード取得部301が取得したAPのソースコードを解析することで、AP内で呼び出しているAPIを抽出し(ステップ501)、APのノード毎にノード管理テーブル310に登録する。
図6は、図3に示したノード管理テーブル310の構成例を示す図である。
図3に示したノード管理テーブル310は、例えば図6に示すように、AP102を識別するAPIDフィールド801と、ノード103を識別するノードIDフィールド802と、ノード103が呼び出しているAPIを示すAPIフィールド803とから構成され、ノードと、API抽出部302が抽出したAPIとが、AP102単位で管理されている。
次に、稼動監視設定プログラム101では、API抽出部302が抽出したAPIがどのサービスのものかを特定するサービス特定処理を行い(ステップ502)、サービスグループ毎に監視のためのAPIを選択するAPI選択処理を行う(ステップ503)。
次に、監視ノード作成部308が、API選択処理にて選択されたAPIに対して擬似的なリクエストを送信して該リクエストに対する応答を受信して選択されたAPIを呼び出すことでそのAPIが正常に稼働しているか否か判断するソースコードを作成し(ステップ504)、監視ノードとして出力する(ステップ505)。
図7は、図1〜図3に示した稼動監視設定プログラム101におけるAPIのサービス特定処理を説明するためのフローチャートであり、図5に示したステップ502における処理の詳細を説明するためのものである。
稼動監視設定プログラム101におけるサービス特定処理においては、まず、APゲートウェイ通信部304がAPゲートウェイ105と通信して、APIゲートウェイ105の管理する公開APIの一覧を取得するとともに(ステップ601)、APIゲートウェイ105にて管理されるAPIグループ情報をAPIゲートウェイ105から取得する(ステップ602)。APIゲートウェイ105には、上述したように、AP102がサービス104を利用することができるようにするために、APIが、そのサービス104単位でグループを構成して登録、公開されており、また、公開されたAPIについて、サービス104単位で構成されたグループ毎のグループ情報が登録されているため、APゲートウェイ通信部304は、これらの情報をAPIゲートウェイ105から取得することができる。
次に、稼動監視設定プログラム101においては、APゲートウェイ通信部304が取得した情報を使用して、ノード管理テーブル310に登録されているAPIについて、ノード管理テーブル310から順に読み出し(ステップ603)、以下の処理を行う。
まず、API登録確認部303が、ノード管理テーブル310から読み出したAPIについて、APゲートウェイ通信部304がAPゲートウェイ105から取得した公開API一覧に該当するものがあるかを確認する(ステップ604)。この際、ノード管理テーブル310から読み出したAPIについては、パラメータの設定値部分を除いた形式で該当するものがあるかを確認する。該当するものがない場合は、ステップ603に戻り、次のAPIについて同様に確認を行う。
ノード管理テーブル310から読み出したAPIが公開APIに該当する場合、サービスを呼び出すAPIであるとして、次に、ステップ602にて取得したAPIグループ情報に基づいて、APIがどのサービスに属するAPIかを確認する(ステップ605)。
そして、ノード管理テーブル310から読み出したAPIが属するグループがあれば、APIグループ管理テーブル311に登録する(ステップ606)。
AP102が呼び出しているノード管理テーブル310に登録された全てのAPIを確認した時点(ステップ607のYes)で本処理を終了する。
図8は、図1〜図3に示した稼動監視設定プログラム101におけるAPIを選択する処理を説明するためのフローチャートであり、図5に示したステップ503におけるAPI選択処理の詳細を説明するためのものである。
稼動監視設定プログラム101におけるAPI選択処理においては、まず、APゲートウェイ通信部304がAPゲートウェイ105と通信して、APIゲートウェイ105からAPIの属性情報を取得し、APIグループ管理テーブル311に登録された各APIについて、リクエストの実行に対してサービスの情報の変更を伴わずに情報を参照する参照系のAPIであるか、リクエストの実行に対して情報の変更を伴う更新系のAPIかをAPI管理テーブルの属性フィールドに登録する(ステップ701)。
図9は、図3に示したAPIグループ管理テーブル311の構成例を示す図である。
図3に示したAPIグループ管理テーブル311は、例えば図8に示すように、グループを識別するグループIDフィールド901と、グループに対応したサービスを識別するサービスIDフィールド902と、サービスが提供するAPIからなるAPIフィールド903と、APIが、リクエストの実行に対してサービスの情報の変更を伴わずに情報を参照する処理を行う参照系のAPIであるか、リクエストの実行に対して情報の変更を伴う更新系のAPIであるかを示す属性フィールド904とから構成され、サービス単位でのAPIを管理する。このように、稼動監視設定プログラム101においては、各APIの属性として、APIが、サービスの情報を参照する処理を行う参照系のものか、更新処理を行う更新系のものかを識別する情報を、APIゲートウェイ105から取得して設定する。
次に、API選択部307が、APIグループ管理テーブル311に登録されたサービスを順番に選択し(ステップ702)、監視に使用するAPIを選択する。
API選択部307においてはまず、APIグループ管理テーブル311にてサービスに含まれるAPIのうち、属性が参照系であるAPIを抽出する(ステップ703)。
抽出した参照系のAPIが複数ある場合は(ステップ704のYes)、いずれかのAPIを選択する。ここでは、APにおいて、フローに従ってノードをフローの上流からソートする(ステップ705)。最も上流のノードが呼び出すAPIを特定し(ステップ706)、監視用APIとして決定する(ステップ707)。ノード内に複数のAPIがある場合は、例えば、取得したソースコードの解析で最初に抽出したものを選択する。APIを選択する方法としては、ランダムに1つ選択する方法でもよいし、1つに限らず、条件に一致するAPIであれば複数選択してもよい。
このように、参照系のAPIが複数存在する場合に、監視対象となるAPに含まれるノードのうち上流側のノードが呼び出すAPIを監視用APIとして選択することにより、APの実行時に効率的にAPIの稼働状態を確認することができる。
ステップ703で抽出したAPIが1つであった場合は、そのAPIを監視用APIとして決定する(ステップ707)。
その後、全てのサービスについてAPIを選択できた場合(ステップ708)、処理を終了する。
このように、APIゲートウェイ105が有するグループ情報から、監視対象となるAPIの属するグループを特定し、そのグループから監視用APIを選択するので、監視対象となるAPIと同じグループの監視用APIを確実に選択することができる。なお、ステップ703にて属性が参照系であるAPIが1つもない場合は、そのAPを監視対象としないことが考えられる。
図10は、図1〜図3に示した稼動監視設定プログラム101によって表示出力される画面例を示す図である。
図1〜図3に示した稼動監視設定プログラム101においては、図10に示すような画面を入出力インタフェース204を介して表示出力する。上段1001には、稼動監視設定プログラム101の出力結果をインポートした監視ノードが追加されたフローが表示される。監視ノードを追加する前の変更前フローも出力すれば比較が可能である。
下段1002には、サービスの稼動状態が表示出力される。例えばサービスとAPIの状態、最終確認時刻が表形式(1003)で表示出力される。なお、稼動監視はAP実行時だけでなく、定期的に実行してもよい。その場合、監視が実行された最終確認時刻が表示出力される。
上述した実施の形態では、稼動監視設定プログラム101において、APIゲートウェイ105からAPIが参照系か更新系かの属性を取得し、その属性に基づいて監視用APIを選択しているが、監視用APIを選択するためにAPIを参照系であると判別する他の方法としては、種別が情報取得を示すGETのURLであり、かつ、URL以外にパラメータを含まない、または、種別が情報取得を示すGETのURLであり、かつ、URLに「img」が含まれ画像読み込み用である場合に、参照系であると判別する判別方法が考えられる。これらの判別方法は、APIゲートウェイ105から取得したグループ情報に、リクエストの実行に情報の変更を伴うか否かを示す属性情報が含まれていない場合に用いることができる。このように、APIゲートウェイ105にて管理されているグループ情報から属性情報が得られればその属性情報を用いて監視用APIを選択し、グループ情報から属性情報が得られなければ、APIの内容に基づいて監視用APIを選択することで、グループ情報に基づいて参照系のAPIを監視用APIとして確実に選択可能であるとともに、グループ情報から属性情報が得られない場合にも監視用APIを選択することができる。
さらに、監視用APIの選択手段として、課金情報を使用する方法がある。APIによっては、呼び出すサービスで課金されるものと課金されないものがある場合がある。こうしたAPIの課金情報をAPIゲートウェイまたは、APIゲートウェイとは別の課金サーバがシステムに存在する場合、本プログラムではAPIの課金属性をAPIゲートウェイまたは課金サーバから取得する。複数のAPIから選択する手段において、複数のAPIの中から課金されないAPIを選択する方法もある。
また、ソースコードから抽出されたAPIが更新系の場合に、同じグループに属する参照系のAPIを監視用APIとする構成とすることも考えられる。その場合、抽出されたAPIが参照系でも更新系でも適切に監視用APIを設定することができる。
上述したように本形態においては、APのソースコードから抽出したAPIと同じグループに属するAPIのうち、リクエストの実行に情報の変更を伴わない参照用のAPIを監視用APIとして選択し、この監視用APIの正常な稼働を確認することにより対象APIの正常な稼働を推定するので、情報が変化してサービスの状態に影響を与えることなくAPの稼働を確認することができる。
なお、本実施形態では、稼動監視設定プログラム101をAP開発環境312とは別のプログラムとして実行する場合を示したが、稼動監視設定プログラム101をAP開発環境312の一部のモジュールとして実装してもよい。
また、本実施形態は、開発環境におけるフロー作成のタイミングで実行されるものであるが、フロー登録は、新規作成時のみでなく、フローの更新のタイミングも同様である。
(第2の実施の形態)
図11は、図1に示した稼動監視設定プログラム101の機能モジュール構成の他の例を示す図である。
本例における稼動監視設定プログラム101の機能モジュール構成は、図11に示すように、図3に示したものに対して、監視実行部1201を有する点が異なるものである。
監視実行部1201は、上記のようにしてAP102に包含された監視ノード106が実行されると、APに含まれるノード103のそれぞれについて、ノード103が呼び出す全てのAPIに対応する監視用APIが正常に稼働していればそのノード103が正常状態であると判断し、そのノードが呼び出す1つ以上のAPIに対応する監視用APIが正常に稼働していなければそのノードが異常状態であると判断する。そして、APに含まれる全てのノードが正常状態であればそのAPを実行可能とし、APに含まれる1つ以上のノードが異常状態であればそのAPを実行待ちとする。
図12は、図11に示した稼動監視設定プログラム101における監視実行処理を説明するためのフローチャートである。図11に示した稼動監視設定プログラム101は、図3に示したものと同様にAPに包含された監視ノードを実行して、APのノードの状態を判断する処理と、APの実行待ちを判断する処理とを行うプログラムである。
図11に示した稼動監視設定プログラム101においては、図3に示したものと同様のAPIを呼び出す処理だけでなく、フローに追加した監視ノードを実行する(ステップ1101)。そして、各サービスの稼動状態をノード管理テーブル310の状態フィールドに登録する。
図13は、図12に示したノード管理テーブル310の構成例を示す図である。
図12に示したノード管理テーブル310は、図13に示すように、AP102を識別するAPIDフィールド1301と、ノード103を識別するノードIDフィールド1302と、ノード103が呼び出しているAPIを示すAPIフィールド1303の他に、APIの状態を示す状態フィールド1304を有している。
監視実行部1201は、監視ノード106によって監視用APIを実行した結果を受信し(ステップ1102)、各ノードの状態を判断する(ステップ1101)。ここで、監視実行部1201の判断方法としては、ノードが呼び出している全サービスが正常稼動状態であればノード状態を正常とし、1つ以上のサービスが正常でなければノード状態を異常とする。これにより、各サービスが提供するAPIの稼働状態を自動的に監視することができ、APに含まれる機能オブジェクト毎にその稼働状態が正常か異常かを知ることができる。
次に、監視実行部1201は、AP102のフローに含まれる全てのノードが正常状態かを判断する(ステップ1104)。そして、全てのノードが正常であれば、本APを実行可能と判断し(ステップ1105)、APに含まれる1つ以上のノードが異常状態であればそのAPを実行待ちとする(ステップ1106)。これにより、各ノードの状態からAPが正常に実行可能か否かを知ることができる。
そして、上述した監視実行プログラムの結果をAPデプロイ制御処理に通知して、実行待ち判断の場合は、デプロイを実施しないようにするか、デプロイ済みのAPに対しては、ユーザからのAPへのリクエストを送信しないように制御する。
その後、定期的に監視実行プログラムを実行し、全てのノードが正常状態と判断された場合に、APデプロイ制御部に通知して、APのデプロイを行い、APが実行可能になるように制御する。
なお、本形態にて判断された状態を、図10に示した上段のノードの出力において、各ノードについて色付けや網掛けなどで可視化することが考えられる。
以上により、APが使用するサービスについて、適切なAPIを用いて稼動状態を確認し、正常でないサービスがある場合にはAPの実行を制御することで、APの無駄なリトライ処理を防ぐことが可能となる。
以上、本発明の実施形態について説明したが、本発明の実施形態は例示したものに限るものではなく、発明の主旨を逸脱しない範囲で種々の変更が可能である。
101…稼働監視設定プログラム、102…アプリケーションプログラム、103…ノード、104…サービス、105…APIゲートウェイ、106…監視ノード、107…クラウドプラットフォーム、201…中央処理装置、202…メモリ、203…二次記憶装置、204…入出力インタフェース、205…ネットワークインタフェース、206…テーブル、301…コード取得部、302…API抽出部、303…API登録確認部、304…APIゲートウェイ通信部、305…グループ特定処理部、306…API属性確認部、307…API選択部、308…監視ノード作成部、309…ノード登録部、310…ノード管理テーブル、311…APIグループ管理テーブル、312…AP開発環境、1201…監視実行部

Claims (8)

  1. サービスから提供されたアプリケーションプログラミングインタフェースを呼び出して稼働するアプリケーションプログラムの稼働状況を監視するアプリケーション稼働監視装置であって、
    監視対象となるアプリケーションプログラムのソースコードに含まれているアプリケーションプログラミングインタフェースを抽出する抽出部と、
    公開されたアプリケーションプログラミングインタフェースが前記サービス単位のグループ毎に登録されたグループ情報に基づいて、前記抽出されたアプリケーションプログラミングインタフェースが属するグループを特定するグループ特定処理部と、
    前記特定されたグループに属するアプリケーションプログラミングインタフェースの中から、リクエストの実行に情報の変更を伴わないアプリケーションプログラミングインタフェースを監視用アプリケーションプログラミングインタフェースとして選択する選択部と、
    前記監視用アプリケーションプログラミングインタフェースに対して擬似的なリクエストを送信して該リクエストに対する応答を受信することで、当該監視用アプリケーションプログラミングインタフェースが正常に稼働しているか否か判断する監視ノードを作成する監視ノード作成部と、
    前記監視ノードを前記アプリケーションプログラムに包含させるノード登録部と、
    を有するアプリケーション稼働監視装置。
  2. 公開されたアプリケーションプログラミングインタフェースを管理する管理装置から前記グループ情報を取得し、前記抽出されたアプリケーションプログラミングインタフェースが前記グループ情報に登録されていることを確認する登録確認部を更に有し、
    前記グループ特定処理部は、前記抽出されたアプリケーションプログラミングインタフェースが前記登録確認部にて前記グループ情報に登録されていることが確認された場合に、該抽出されたアプリケーションプログラミングインタフェースについて処理を行う、
    請求項1に記載のアプリケーション稼働監視装置。
  3. 前記選択部は、
    前記特定されたグループに属するアプリケーションプログラミングインタフェースについて、リクエストの実行に情報の変更を伴うか否かを示す属性情報が前記グループ情報から得られた場合は、前記特定されたグループに属するアプリケーションプログラミングインタフェースの中から、前記属性情報に基づいて前記監視用アプリケーションプログラミングインタフェースを選択し、
    前記特定されたグループに属するアプリケーションプログラミングインタフェースについて、リクエストの実行に情報の変更を伴うか否かを示す属性情報が前記グループ情報から得られない場合は、前記特定されたグループに属するアプリケーションプログラミングインタフェースの中から、種別が情報取得でありかつアドレス以外にパラメータを含まないアプリケーションプログラミングインタフェース、または、種別が情報取得でありかつ画像読み込み用のアプリケーションプログラミングインタフェースを、前記監視用アプリケーションプログラミングインタフェースとして選択する、
    請求項1に記載のアプリケーション稼働監視装置。
  4. 前記選択部は、
    前記抽出されたアプリケーションプログラミングインタフェースが、リクエストの実行に情報の変更を伴わない場合は、該抽出されたアプリケーションプログラミングインタフェースを前記監視用アプリケーションプログラミングインタフェースとし、
    前記抽出されたアプリケーションプログラミングインタフェースが、リクエストの実行に情報の変更を伴う場合は、前記特定されたグループに属するアプリケーションプログラミングインタフェースの中から、リクエストの実行に情報の変更を伴わないアプリケーションプログラミングインタフェースを監視用アプリケーションプログラミングインタフェースとして選択する、
    請求項1に記載のアプリケーション稼働監視装置。
  5. 前記選択部は、リクエストの実行に情報の変更を伴わないアプリケーションプログラミングインタフェースが複数存在する場合、監視対象となるアプリケーションプログラムに含まれる機能オブジェクトであるノードのうち上流側のノードが呼び出すアプリケーションプログラミングインタフェースを、監視用アプリケーションプログラミングインタフェースとして選択する、
    請求項1に記載のアプリケーション稼働監視装置。
  6. 前記監視ノードが実行されると、前記アプリケーションプログラムに含まれる機能オブジェクトであるノードのそれぞれについて、当該ノードが呼び出す全てのアプリケーションプログラミングインタフェースに対応する監視用アプリケーションプログラミングインタフェースが正常に稼働していれば当該ノードが正常状態であると判断し、当該ノードが呼び出す1つ以上のアプリケーションプログラミングインタフェースに対応する監視用アプリケーションプログラミングインタフェースが正常に稼働していなければ当該ノードが異常状態であると判断する、監視実行部を更に有する、
    請求項1に記載のアプリケーション稼働監視装置。
  7. 前記監視実行部は、前記アプリケーションプログラムに含まれる全てのノードが正常状態であれば当該アプリケーションプログラムを実行可能とし、前記アプリケーションプログラムに含まれる1つ以上のノードが異常状態であれば当該アプリケーションプログラムを実行待ちとする、請求項5に記載のアプリケーション稼働監視装置。
  8. サービスから提供されたアプリケーションプログラミングインタフェースを呼び出して稼働するアプリケーションプログラムの稼働状況を監視するアプリケーション稼働監視方法であって、
    抽出手段が、監視対象となるアプリケーションプログラムのソースコードに含まれているアプリケーションプログラミングインタフェースを抽出し、
    グループ特定処理手段が、公開されたアプリケーションプログラミングインタフェースが前記サービス単位のグループ毎に登録されたグループ情報に基づいて、前記抽出されたアプリケーションプログラミングインタフェースが属するグループを特定し、
    選択手段が、前記特定されたグループに属するアプリケーションプログラミングインタフェースの中から、リクエストの実行に情報の変更を伴わないアプリケーションプログラミングインタフェースを監視用アプリケーションプログラミングインタフェースとして選択し、
    監視ノード作成手段が、前記監視用アプリケーションプログラミングインタフェースに対して擬似的なリクエストを送信して該リクエストに対する応答を受信することで、当該監視用アプリケーションプログラミングインタフェースが正常に稼働しているか否か判断する監視ノードを作成し、
    ノード登録手段が、前記監視ノードを前記アプリケーションプログラムに包含させる、
    アプリケーション稼働監視方法。
JP2017166485A 2017-08-31 2017-08-31 アプリケーション稼働監視装置および監視方法 Active JP6730235B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017166485A JP6730235B2 (ja) 2017-08-31 2017-08-31 アプリケーション稼働監視装置および監視方法
US15/905,235 US10977146B2 (en) 2017-08-31 2018-02-26 Application operation monitoring apparatus and application operation monitoring method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017166485A JP6730235B2 (ja) 2017-08-31 2017-08-31 アプリケーション稼働監視装置および監視方法

Publications (2)

Publication Number Publication Date
JP2019046015A true JP2019046015A (ja) 2019-03-22
JP6730235B2 JP6730235B2 (ja) 2020-07-29

Family

ID=65436193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017166485A Active JP6730235B2 (ja) 2017-08-31 2017-08-31 アプリケーション稼働監視装置および監視方法

Country Status (2)

Country Link
US (1) US10977146B2 (ja)
JP (1) JP6730235B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021064414A (ja) * 2021-01-19 2021-04-22 ソフトバンク株式会社 システム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008003709A (ja) * 2006-06-20 2008-01-10 Mitsubishi Electric Corp 管理装置及びタスク管理方法及びプログラム
US20120278478A1 (en) * 2011-04-28 2012-11-01 International Business Machines Corporation Method and system for monitoring a monitoring-target process
JP2013218449A (ja) * 2012-04-06 2013-10-24 Hitachi Ltd クラウドコンピューティングシステム
JP2015149026A (ja) * 2014-02-07 2015-08-20 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208749A (ja) * 2004-01-20 2005-08-04 Hitachi Electronics Service Co Ltd Webサービスシステム稼動監視方法及び稼動監視システム
US7457870B1 (en) * 2004-02-27 2008-11-25 Packeteer, Inc. Methods, apparatuses and systems facilitating classification of web services network traffic
JP4727278B2 (ja) * 2005-04-05 2011-07-20 株式会社エヌ・ティ・ティ・ドコモ アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム
KR100951852B1 (ko) * 2008-06-17 2010-04-12 한국전자통신연구원 응용 프로그램 비정상행위 차단 장치 및 방법
WO2012150602A1 (en) * 2011-05-03 2012-11-08 Yogesh Chunilal Rathod A system and method for dynamically monitoring, recording, processing, attaching dynamic, contextual & accessible active links & presenting of physical or digital activities, actions, locations, logs, life stream, behavior & status
US20160080229A1 (en) * 2014-03-11 2016-03-17 Hitachi, Ltd. Application performance monitoring method and device
US9729506B2 (en) * 2014-08-22 2017-08-08 Shape Security, Inc. Application programming interface wall
US10101981B2 (en) * 2015-05-08 2018-10-16 Citrix Systems, Inc. Auto discovery and configuration of services in a load balancing appliance
US10044630B2 (en) * 2015-12-15 2018-08-07 Software Ag Systems and/or methods for remote application introspection in cloud-based integration scenarios
JP6895803B2 (ja) * 2017-05-24 2021-06-30 三菱電機株式会社 プラント監視制御システムの保守計算機及び保守プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008003709A (ja) * 2006-06-20 2008-01-10 Mitsubishi Electric Corp 管理装置及びタスク管理方法及びプログラム
US20120278478A1 (en) * 2011-04-28 2012-11-01 International Business Machines Corporation Method and system for monitoring a monitoring-target process
JP2013218449A (ja) * 2012-04-06 2013-10-24 Hitachi Ltd クラウドコンピューティングシステム
JP2015149026A (ja) * 2014-02-07 2015-08-20 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021064414A (ja) * 2021-01-19 2021-04-22 ソフトバンク株式会社 システム
JP7285864B2 (ja) 2021-01-19 2023-06-02 ソフトバンク株式会社 システム

Also Published As

Publication number Publication date
US10977146B2 (en) 2021-04-13
US20190065334A1 (en) 2019-02-28
JP6730235B2 (ja) 2020-07-29

Similar Documents

Publication Publication Date Title
US10909028B1 (en) Multi-version regression tester for source code
CN107368405B (zh) 测试系统、测试方法、mock平台、拦截器和客户端
US20190052551A1 (en) Cloud verification and test automation
CN105706469B (zh) 管理机器对机器设备
JP6336606B2 (ja) 可視化されたネットワーク運用及び保守のための方法及び装置
US20160350105A1 (en) Automatic communications graphing for a source application
CN106130749B (zh) 用于基础设施的网络部署的方法、系统以及计算机可读介质
CN110138577B (zh) 集群创建方法、第一服务器以及可读存储介质
EP2994828A1 (en) Apps store with integrated test support
US20220103555A1 (en) Service deployment method, device, system, and computer-readable storage medium
CN110582750A (zh) 用于任务调度和设备管理的系统和方法
CN110515679A (zh) 数据采集方法、装置、设备及存储介质
CN113419818B (zh) 基础组件部署方法、装置、服务器及存储介质
CN112799970B (zh) 测试数据处理方法、装置、电子设备及介质
CN112703485A (zh) 使用机器学习方法支持对分布式系统内的计算环境的修改的实验评估
EP3754489A1 (en) Method for evaluating application deployment, apparatus, computer program product, and readable medium
JP6730235B2 (ja) アプリケーション稼働監視装置および監視方法
KR101794016B1 (ko) 분산 컴퓨팅 기반의 어플리케이션 객체 분석 방법, 이를 수행하는 어플리케이션 객체 분석 서버 및 이를 저장하는 기록매체
CN105573905A (zh) 软件兼容性测试方法和系统
CN110971478A (zh) 云平台服务性能的压测方法、装置及计算设备
CN114385318A (zh) 基于kubernetes的并行测试方法、装置及设备
JP6705979B2 (ja) 機器設定装置、機器設定方法、及びプログラム
CN110727601B (zh) 多平台程序的测试方法及相关装置
JP2014164724A (ja) 自動運用プロセス生成方法、プログラム、および装置
WO2014209362A1 (en) Simulating sensors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200226

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200702

R150 Certificate of patent or registration of utility model

Ref document number: 6730235

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150