JP5276625B2 - 更新api検出システム、更新api検出装置、更新api検出方法、および更新api検出プログラム - Google Patents

更新api検出システム、更新api検出装置、更新api検出方法、および更新api検出プログラム Download PDF

Info

Publication number
JP5276625B2
JP5276625B2 JP2010132029A JP2010132029A JP5276625B2 JP 5276625 B2 JP5276625 B2 JP 5276625B2 JP 2010132029 A JP2010132029 A JP 2010132029A JP 2010132029 A JP2010132029 A JP 2010132029A JP 5276625 B2 JP5276625 B2 JP 5276625B2
Authority
JP
Japan
Prior art keywords
api
unit
update
node
external
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.)
Active
Application number
JP2010132029A
Other languages
English (en)
Other versions
JP2011257994A (ja
Inventor
泰文 小川
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 JP2010132029A priority Critical patent/JP5276625B2/ja
Publication of JP2011257994A publication Critical patent/JP2011257994A/ja
Application granted granted Critical
Publication of JP5276625B2 publication Critical patent/JP5276625B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、更新されたアプリケーションプログラムインタフェース(以下「API:Application Programming Interface」と呼ぶ)を検出する、更新API検出システム、更新API検出装置、更新API検出方法、および更新API検出プログラムに関する。
ネットワーク上で動作する分散アプリケーションシステムにおいて、アプリケーションを連携させて動作するためには、APIを適合させる必要がある。
一般的な分散アプリケーションシステムでは、事前に定義したAPIを公開することによりAPIを適合させ、これに基づいてアプリケーション同士が連携動作を行う。それぞれのアプリケーションは独立して動作しており、一部のアプリケーションのみをアップデートすることができ、また、新たな機能を柔軟に追加することもできる(非特許文献1参照)。
従来では、自己のアプリケーション以外のアプリケーションである外部プログラムを多用しない分散アプリケーションシステムが主流であったので、外部プログラムを利用するアプリケーションの把握が可能で、外部APIを更新した場合の通知も容易であった。そのため、アプリケーションの開発者は、外部APIを更新したことによる通知を受けた後で、それぞれのモジュールを検査するためのユニットテストやモジュールの組み合わせ動作を検査するための結合テスト(非特許文献2参照)を実施することが可能であった。したがって、外部APIの変更によるシステムトラブルが問題となることは少なかった。
本俊也著、「図解標準 最新Webサービス マスタリングハンドブック」、秀和システム、2004年2月27日、p.29-54,p.72-p.164 鶴保征城、駒谷昇一著、「ずっと受けたかったソフトウェアエンジニアリングの授業2」、翔泳社、2006年10月13日、p.24-36,p.38-59
しかしながら、今後想定される、インターネットなどのような大規模かつ広域な環境における分散アプリケーションのように、多数のプログラムにタスクが分割される分散アプリケーションシステムが主流となってきた場合には、モジュール数が多数となり、自己のアプリケーション以外のアプリケーションである外部プログラムを多用することになる。その場合、外部プログラムを利用するアプリケーションの把握が不可能になり、外部APIを更新した場合に通知ができない。そのため、外部APIを利用するアプリケーションの開発者は、外部APIが更新された際に、外部APIが更新されたことを知るすべがないので、整合性をとることが難しく、外部APIの変更によるシステムトラブルが問題となる。
本発明は前記問題に鑑みてなされたものであり、分散アプリケーションシステムにおいて、更新された外部APIを検出することができる、更新API検出システム、更新API検出装置、更新API検出方法、および更新API検出プログラムを提供することを課題とする。
前記課題を解決するために、本発明に係る更新API検出システムは、アプリケーション処理部およびAPI(アプリケーションプログラムインタフェース)部を各々備える複数のノードがインターネットを介して接続される分散アプリケーションシステムにおいて、API登録DB装置と更新API検出装置とが設けられ、前記更新API検出装置が前記複数のノードのうち少なくとも1つを監視対象のノードとし、当該監視対象のノード以外の他のノードが備えるAPI部である外部API部の更新を検出する更新API検出システムであって、前記API登録DB装置は、前記複数のノード毎に設けられた開発端末により、当該ノードのAPI部が更新されたことを示すAPI履歴情報を、前記複数のノードのAPI部ごとに格納する記憶部を備え、前記更新API検出装置は、前記監視対象のノード以外の他のノードが備える前記外部API部の更新履歴を示す外部API履歴情報が格納される記憶部と、前記API登録DB装置の記憶部に格納される前記API履歴情報と、当該更新API検出装置の記憶部に格納される前記外部API履歴情報と比較し、前記監視対象のノードのAPI部が分散アプリケーション処理に利用する前記他のノードが備える外部API部に関する前記API履歴情報が更新されているか否かを判定するAPI情報確認部と、前記API情報確認部が、当該API履歴情報が更新されていると判定した場合に、その判定結果を出力するイベント出力部と、を備えることを特徴とする。
また、本発明に係る更新API検出装置は、アプリケーション処理部およびAPI(アプリケーションプログラムインタフェース)部を各々備える複数のノードがインターネットを介して接続される分散アプリケーションシステムにおいて、前記複数のノード毎に設けられた開発端末により、当該ノードのAPI部が更新されたことを示すAPI履歴情報を、前記複数のノードのAPI部ごとに格納する記憶部を備えるAPI登録DB装置と共に前記インターネットに接続され、前記複数のノードのうち少なくとも1つを監視対象のノードとし、当該監視対象のノード以外の他のノードが備えるAPI部である外部API部の更新を検出する更新API検出装置であって、前記監視対象のノード以外の他のノードが備える前記外部API部の更新履歴を示す外部API履歴情報が格納される記憶部と、前記API登録DB装置の記憶部に格納される前記API履歴情報と、当該更新API検出装置の記憶部に格納される前記外部API履歴情報と比較し、前記監視対象のノードのAPI部が分散アプリケーション処理に利用する前記他のノードが備える外部API部に関する前記API履歴情報が更新されているか否かを判定するAPI情報確認部と、前記API情報確認部が、当該API履歴情報が更新されていると判定した場合に、その判定結果を出力するイベント出力部と、を備えることを特徴とする。
また、本発明に係る更新API検出方法は、アプリケーション処理部およびAPI(アプリケーションプログラムインタフェース)部を各々備える複数のノードがインターネットを介して接続される分散アプリケーションシステムにおいて、前記複数のノード毎に設けられた開発端末により、当該ノードのAPI部が更新されたことを示すAPI履歴情報を、前記複数のノードのAPI部ごとに格納する記憶部を備えるAPI登録DB装置と共に前記インターネットに接続され、前記複数のノードのうち少なくとも1つを監視対象のノードとし、当該監視対象のノード以外の他のノードが備えるAPI部である外部API部の更新を検出する更新API検出装置に用いられる更新API検出方法であって、前記更新API検出装置は、前記監視対象のノード以外の他のノードが備える前記外部API部の更新履歴を示す外部API履歴情報が格納される記憶部を備え、前記API登録DB装置の記憶部に格納される前記API履歴情報と、当該更新API検出装置の記憶部に格納される前記外部API履歴情報と比較し、前記監視対象のノードのAPI部が分散アプリケーション処理に利用する前記他のノードが備える外部API部に関する前記API履歴情報が更新されているか否かを判定し、当該API履歴情報が更新されていると判定した場合に、その判定結果を出力することを特徴とする。
また、本発明に更新API検出プログラムは、前記更新API検出方法を、前記更新API検出装置に実行させることを特徴とする。
このようにすることで、更新API検出装置は、接続されるAPI登録DB装置に格納されるAPI履歴情報を参照することで外部API部が更新されているか否かを確認することができる。よって、本発明に係る更新API検出システム、更新API検出装置、更新API検出方法、および更新API検出プログラムによれば、外部APIの更新を検出することができる。
また、本発明に係る更新API検出システムは、前記API登録DB装置の記憶部には、前記API部を備える前記ノードのアドレスを示すAPIアドレス情報がさらに格納されており、前記更新API検出装置が、前記API登録DB装置の前記APIアドレス情報を参照し、前記外部API部を備える前記他のノードの前記アドレスを取得して、前記外部API部が有するデータと前記外部API部が行う動作とのうち少なくとも1つを確認するAPIテスト関数を、当該外部API部を備える他のノードに送信し、返信として、前記APIテスト関数のテスト結果を受信することにより、当該外部API部が所定のデータを有するか否か、または所定の動作を行うか否かを判定するAPI動作確認テスト部、をさらに備え、前記イベント出力部は、前記API動作確認テスト部が、当該外部API部が所定のデータを有していない、または所定の動作を行わないと判定した場合に、その判定結果を出力する、ことを特徴とする。
このようにすることで、更新API検出装置は、外部API部を備えるノードに、外部API部が有するデータと外部API部の動作とのうち少なくとも1つを確認するAPIテスト関数を送信し、当該外部API部を備えるノードからAPIテスト関数の結果を受信することができる。よって、本発明に係る更新API検出システムによれば、外部APIの更新に伴う監視対象のノードが備えるアプリケーションへの影響を知ることができる。
また、本発明に係る更新API検出システムは、前記API動作確認テスト部が、前記外部API部が所定の動作を行うか否かを判定する場合に、前記外部API部が処理を行い、その結果を確認することで当該外部API部が所定の動作を行うか否かを確認するテスト関数、および当該処理のレスポンス時間が所定時間内であるか否かで当該外部API部が所定の動作を行うか否かを確認するテスト関数のうち少なくとも1つを、前記外部API部を備えるノードに送信することにより動作結果を確認する、ことを特徴とする。
このようにすることで、更新API検出装置は、外部API部にて処理を行い、その結果を確認し、または、当該処理のレスポンス時間を確認することができる。よって、本発明に係る更新API検出システムによれば、処理結果およびレスポンス時間を用いて外部APIの更新に伴う監視対象のノードが備えるアプリケーションへの影響を知ることができる。
また、本発明に係る更新API検出システムは、前記API履歴情報および前記外部API履歴情報は、バージョン情報であり、前記API情報確認部が、前記API登録DB装置の記憶部に前記API履歴情報として格納される前記API部に関するバージョン情報と、前記更新API検出装置の記憶部に前記外部API履歴情報として格納される前記外部API部のバージョン情報とを比較し、前記API部に関するバージョン情報が更新されているか否かを判定する、ことを特徴とする。
このようにすることで、更新API検出装置は、バージョン情報を用いて外部API部が更新されているか否かを確認することができる。よって、本発明に係る更新API検出システムによれば、外部APIがどのバージョンに更新されたのかを知ることができる。
本発明に係る更新API検出システム、更新API検出装置、更新API検出方法、および更新API検出プログラムによれば、外部APIの更新を検出することができる。
本発明の実施形態に係る更新API検出システムの構成図である。 本発明の実施形態に係る更新API検出システムの構成図である。 本発明の実施形態に係るAPI登録DB装置に格納されるAPI情報のデータ構成図である。 本発明の実施形態に係るAPI動作確認テスト部が実装するAPIテスト関数の例を示した図である。 本発明の実施形態に係るAPI登録DB装置へのAPI情報の登録処理を示すフローチャートである。 本発明の実施形態に係るAPI登録DB装置に登録されているAPI情報を更新したときの通知処理を示すフローチャートである。 本発明の実施形態に係るAPI動作確認テスト部がAPI部の動作確認をしたときの通知処理を示すフローチャートである。
≪更新API検出システムの構成≫
<概要>
図1は、本発明の実施形態に係る更新API検出システム1の構成図である。更新API検出システム1は、クライアントノード2A、サーバノード2B,2C、ノード開発者端末3A,3B,3C、ルータ4A,4B,4C、API登録DB装置5、および更新API検出サーバ6を備えて構成されており、各装置を備えるネットワーク7A,7B,7Cはインターネット8を介して接続されている。以下、更新API検出システム1を構成する各装置について説明する。
<クライアントノード、サーバノード>
本実施形態では、分散アプリケーションシステムにおけるノードのうち、外部プログラムを利用する側をクライアントノードと記載し、外部プログラムを提供する側をサーバノードと記載する。クライアントノード2Aは、自己のアプリケーションにおいて、サーバノード2Bまたはサーバノード2Cのアプリケーションが備える機能モジュール(オブジェクト)を呼び出して処理を実行する。なお、本実施形態では、ネットワーク7Aに備わるノード(クライアントノード2A)が、クライアントノードとして動作し、ネットワーク7B,7Cにそれぞれ備わるノード(サーバノード2B,2C)が、サーバノードとして動作する場合を説明しているが、ネットワーク7B,7Cにそれぞれ備わるノード(サーバノード2B,2C)が、クライアントノードとして動作し、ネットワーク7Aに備わるノード(クライアントノード2A)がサーバノードとして動作してもよい。すなわち、各ノードは、クライアントノードとして動作してもよいし、サーバノードとして動作してもよい。
図1に示すように、クライアントノード2A,サーバノード2B,2C(以下、まとめて「ノード2」と呼ぶときがある)は、それぞれの制御部20A,20B,20C(以下、まとめて「制御部20」と呼ぶときがある)を備えて構成されている。制御部20は、CPU(Central Processing Unit)、メモリ、及びこれらの周辺回路等(いずれも図示せず)から構成される。制御部20は、図示しない記憶部に格納されるプログラムをメモリに展開して実行することで機能を実現する。制御部20は、アプリケーション処理部21A,21B,21C(以下、まとめて「アプリケーション処理部21」と呼ぶときがある)およびAPI部22A,22B,22C(以下、まとめて「API部22」と呼ぶときがある)を備えて構成される。
アプリケーション処理部21は、複数の機能モジュール(オブジェクト)から構成されており、モジュール毎に対応するAPIを持っている。そのため、API部22の追加・更新・削除はモジュール毎に行われる。
また、アプリケーション処理部21A,21B,21Cは連携動作し、1つのアプリケーションを実現する。具体的には、アプリケーション処理部21Aは、アプリケーション処理部21B,21Cが備える機能モジュール(オブジェクト)の呼び出しを実行する際に、API部22Aを用いて呼び出し先のアプリケーション処理部21B,21Cに機能モジュール(オブジェクト)の呼び出しを依頼するメッセージを送信する。次に、呼び出し先のアプリケーション処理部21B,21Cは、API部22B,22Cを用いて呼び出し依頼のメッセージを受信し、呼び出し先の機能モジュール(オブジェクト)を用いて必要な処理を実行した後に、呼び出し元のアプリケーション処理部21AにAPI部22B,22Cを用いて実行結果を含んだメッセージを送信する。次に、呼び出し元のアプリケーション処理部21Aは、API部22Aを用いて実行結果を含んだメッセージを受信し、実行結果を戻り値として以降のアプリケーション処理を実行する。
API部22は、アプリケーション処理部21を構成する機能モジュール(オブジェクト)同士を連携させるものであり、例えば、SOAP(Simple Object Access Protocol)、REST(Representational State Transfer)等に準拠している。SOAPに準拠しているAPIを例に挙げて処理を説明すると、API部22Aは、アプリケーション処理部21Aがサーバノード2B,2Cのアプリケーション処理部21B,21Cが備える機能モジュール(オブジェクト)の呼び出しを実行する際に、呼び出し依頼のSOAPメッセージを生成する。そして、API部22Aは、生成したSOAPメッセージをHTTP(HyperText Transfer Protcol)等を介して呼び出し先のアプリケーション処理部21B,21Cに送信する。また、API部22B,22Cは、呼び出し依頼のSOAPメッセージを受信し、機能モジュール(オブジェクト)の処理に必要な情報を、呼び出し先のアプリケーション処理部21B,21Cに渡し、機能モジュール(オブジェクト)の処理後に、実行結果を含んだメッセージを生成する。そして、API部22B,22Cは、生成したSOAPメッセージをHTTP(HyperText Transfer Protcol)等を介して呼び出し元のアプリケーション処理部21Aに送信する。
<ノード開発者端末>
ノード開発者端末(開発端末)3A,3B,3C(以下、まとめて「ノード開発者端末3」と呼ぶときがある)は、ノード2の図示しない記憶部に格納されるアプリケーションプログラムおよびAPI(いずれも図示せず)の設計や更新等の開発を行う端末である。ノード開発者端末3は、計算処理機能を備える一般的な情報処理装置(例えばPC(Personal Computer))で構成される。それぞれのノード開発者端末3A,3B,3Cは、それぞれの記憶部31A,31B,31CにそれぞれのAPI登録ファイル32A,32B,32C(以下、まとめて「API登録ファイル32」と呼ぶときがある)を備える。
API登録ファイル32には、各端末で開発したそれぞれの図示しないAPIの情報、すなわちAPI部22が更新された場合には、更新後のAPI情報が格納されている。API登録ファイル32のデータ構成は、後記するAPI登録DB装置5の内容を更新できる情報が含まれていればよい。例えば、API登録DB装置5が格納するAPI情報51のデータ構成と同様にしてもよい。本実施形態では、API登録ファイル32のデータ構成は、API登録DB装置5が格納するAPI情報51と同様のデータ構成であるとする。
<ルータ>
ルータ4A,4B,4Cは、2つ以上の異なるネットワーク間を相互接続する通信機器である。
<API登録DB装置>
API登録DB装置5は、ノード2が実行する分散アプリケーションシステムで用いられるAPI部22の情報がAPI情報51として格納されている。API情報51の内容は、API部22が更新されるたびに、ノード開発者端末3に格納されるAPI登録ファイル32を受信することで更新される。そのため、API情報51は、常にAPI部22の更新後の情報が格納されている。図3は、API登録DB装置5に格納されているAPI情報51のデータ構成図である。以下、API情報51を構成する項目の内容を説明する。
外部プログラムアドレス(APIアドレス情報)511には、アプリケーション処理部21A,21B,21CおよびAPI部22A,22B,22Cを備えるノード2A,2B,2Cのアドレスが設定される。本実施形態では、アドレスをURL(Uniform Resource Locator)で記述した場合を例示している。API形式512には、APIのインタフェース形式が設定される。インタフェース形式は、例えば、SOAP、REST等が該当する。
API名513には、APIの関数名が設定される。関数名は、例えば、APIの開発者が任意に決定した文字列であってよい。引数514には、APIの関数に受け渡す引数が設定される。引数514は、例えば、「data」、「time」等が用いられる。バージョン(API履歴情報)515には、API部22の最新のバージョン情報が設定される。バージョン515には、バージョン情報のほかに、API履歴情報として更新日時等のAPI部22が更新されたことを表す情報を用いることができる。
<更新API検出サーバ>
図2は、本発明の実施形態に係る更新API検出システム1の構成図である。図1と図2との違いは、図1は、更新API検出システム1を構成する装置のうち、ノード2およびノード開発者端末3の機能を示したものであり、図2は、更新API検出サーバ6の機能を具体的に示したものである。
図2に示す、更新API検出サーバ(更新API検出装置)6は、分散アプリケーションシステムを構成するノード2のうち、ある特定のノードを監視対象とし、監視対象のノードが備えるアプリケーション処理部21が自己のノード以外で利用する他のノードが備えるAPI部22の更新を検出し、監視対象のノード2のノード開発者端末3に通知する。
以下、「監視対象のノードが備えるアプリケーション処理部が自己のノード以外で利用する他のノード」のことを「外部のノード」と呼ぶときがあり、また、外部のノードが備える「アプリケーション処理部」および「API部」を、「外部のアプリケーション処理部」および「外部のAPI部(外部API部)」と呼ぶときがある。本実施形態では、ネットワーク7A内のクライアントノード2Aを監視対象とする場合を例に、更新API検出サーバ6の機能を説明する。
なお、本実施形態では、更新API検出サーバ6がネットワーク7A内に配設され、クライアントノード2Aを監視対象とする場合を例に挙げて説明するが、システム構成はこれに限定されない。例えば、更新API検出サーバ6をネットワーク7Bまたは7C内に配設し、ネットワーク7B,7Cそれぞれのサーバノード2B,2Cを監視対象とすることも可能である。また、更新API検出サーバ6をインターネット8上に配設し、クライアントノード2A、およびサーバノード2B,2Cを監視対象とすることも可能である。この場合、更新API検出サーバ6は、インターネット8と接続されたすべてのノード2、または、予め設定したノード2について監視対象として、更新されたAPI部22の検出処理を行う。また、更新API検出サーバ6が備える更新されたAPI部22を検出する機能を、クライアントノード2Aに備えるようにしてもよい。
図2に示す、更新API検出サーバ6は、記憶部61および制御部63を備えて構成される。記憶部61は、HDD(Hard Disk Drive)等で構成され、API登録DB装置5に格納されるAPI情報51のうち、監視対象であるクライアントノード2Aが備えるアプリケーション処理部21Aが利用する外部のAPI部22B,22Cの情報が、外部API情報62として格納されている。外部API情報62のデータ構成は、API登録DB装置5に格納されるAPI情報51が備える項目のうち、バージョン515についての情報を少なくとも備える構成とすればよく、API情報51と同様のデータ構成であってもかまわない。ここで、記憶部61に格納されるバージョン515に対応する情報を、外部API履歴情報と呼ぶ。本実施形態では、外部API情報62のデータ構成は、API登録DB装置5と同様のデータ構成であるとする。
制御部63は、CPU、メモリ、およびこれらの周辺回路等(いずれも図示せず)から構成される。制御部63は、記憶部61に格納される図示しないプログラムをメモリに展開して実行することで機能を実現する。制御部63は、更新API検出部64、およびAPI部68を備える。更新API検出部64は、更新されたAPI部を検出する処理の全体を制御する。API部68は、更新されたAPI部22を検出する処理において、外部のノード2B,2Cとの通信に利用される。更新API検出部64は、さらに、API動作確認テスト部65、API情報確認部66、およびイベント通知部67を備えて構成される。
(API動作確認テスト部)
API動作確認テスト部65は、APIテスト関数(後記する図4参照)を用いて、監視対象であるクライアントノード2Aが備えるアプリケーション処理部21Aが利用する外部のアプリケーション処理部21B,21Cおよび外部のAPI部22B,22Cが、期待通り(正常に)に動作することを確認する。API動作確認テスト部65による動作確認は、所定の間隔で行うようにするのがよい。具体的には、API動作確認テスト部65は、API部68を用いて図4に記載されるAPIテスト関数を外部のサーバノード2B,2Cに送信する。
図4は、API動作確認テスト部65が用いるAPIテスト関数の例を示した図である。図4に示すAPIテスト関数は、スクリプト言語である「Ruby」を利用して作成している。
図4(a)に示す「test_func_a」関数は、サーバノード2B,2CのAPI部22B,22CからAPI部22B,22Cが有するデータを取得し、取得したデータが期待するデータであるかどうかを確認するテスト関数である。本例では「get_from_api_a」関数で、サーバノード2B,2Cからデータを取得している。
図4(b)に示す「test_func_b」関数は、サーバノード2B,2Cにて処理を行い、その結果を確認するテスト関数である。本例では「do_api_b」関数で、サーバノード2B,2Cの処理を実行し、その返り値である「result」変数を確認している。
図4(c)に示す「test_func_c」関数は、サーバノード2B,2Cの処理のレスポンス時間を確認するテスト関数である。本例では、レスポンス時間を検査する「assert_response」関数に対して、「condition_func_c」関数を定義して確認条件を与える。本例では、期待するレスポンス時間1(sec)、試行回数10(回)として確認条件を作成している。
(API情報確認部)
図2に戻り、API情報確認部66は、API登録DB装置5に格納されるAPI情報51のうち、監視対象であるクライアントノード2Aが備えるアプリケーション処理部21Aが利用する外部のAPI部22B,22Cに関する情報が更新されていないかどうかを確認する。具体的には、API情報確認部66は、API登録DB装置5に格納される外部のAPI部22B,22Cについてのバージョン(API履歴情報)515が、記憶部61に格納される外部API履歴情報と比べて更新されているか否かを比較することで、更新されていないかどうかを判定する。API情報確認部66による更新確認は、所定の間隔で行う。
(イベント通知部)
イベント通知部(イベント出力部)67は、API動作確認テスト部65が外部のAPI部22B,22Cの変更、および処理性能の変更などの通知すべき情報を検出した場合に、外部のAPI部22B,22Cが変更されたこと等を監視対象のクライアントノード2Aの開発者が使用するノード開発者端末3Aに通知する。また、イベント通知部67は、API情報確認部66が、API登録DB装置5が格納するAPI情報51のうち、外部のAPI部22B,22Cに関する情報が更新された等の通知すべき情報を検出した場合に、外部のAPI部22B,22Cの情報が更新されたことを監視対象のクライアントノード2Aの開発者が使用するノード開発者端末3Aに通知する。
以上で、実施形態に係る更新API検出システム1の構成の説明を終了する。
≪更新API検出システムの動作≫
<概要>
図5ないし図7を参照して、実施形態に係る更新API検出システム1の動作について説明する。
図1では、サーバノード2Bの制御部20Bに、API部22Bが記載されているようにアプリケーション処理部21BにAPI部22Bが設定されている。
ここでは、アプリケーション処理部21BにAPI部22Bが設定されていないものと仮定して、アプリケーション処理部21BにAPI部22Bを追加することによるAPI登録DB装置5へのAPI部22Bの情報の登録動作を図5において説明する。次に、追加されたAPI部22Bが変更された場合の動作について図6において説明する。さらに、API動作確認テスト部65がAPI部22の動作確認をしたときの通知処理を図7において説明する。
<API登録DB装置におけるAPI情報の登録>
図5は、API登録DB装置5におけるAPI情報51の登録処理を示すフローチャートである。最初に、ノード2Bの開発者(以下、開発者Bと呼ぶときがある)により、ノード開発者端末3Bを用いてアプリケーション処理部21Bに対して新たにAPI部22Bが追加される(ステップS101)。
次に、ノード開発者端末3BによりAPI登録ファイル32Bが作成され(ステップS102)、図示しない形式CHKプログラムを用いてAPI登録ファイル32Bの形式を検査する(ステップS103)。
次に、ノード開発者端末3Bは、形式判定プログラムが検査したAPI登録ファイル32Bの形式が正しいか否かを判定する(ステップS104)。正しい形式であると判定された場合(ステップS104“Yes”)に、処理はステップS105に進む。一方、正しい形式でないと判定された場合(ステップS104“No”)に、処理はステップS102に戻って、新たにAPI登録ファイル32Bが作成される。
前記ステップS104“Yes”の場合に、ノード開発者端末3Bは、作成したAPI登録ファイル32Bを、API登録DB装置5に送信することで、API登録DB装置5に格納されるAPI情報51に作成されたAPI登録ファイル32Bの情報を登録する(ステップS105)。
以上で、API登録DB装置5に対するAPI情報の登録処理の説明を終了する。
<API登録DB装置に登録されているAPI情報を更新したときの通知処理>
図6は、API登録DB装置5に登録されているAPI情報51を更新したときの通知処理を示すフローチャートである。最初に、ノード開発者端末3BがAPI部22Bを更新する(ステップS201)。
次に、ノード開発者端末3Bは、API登録ファイル32Bを更新し(ステップS202)、図示しない形式CHKプログラムが更新されたAPI登録ファイル32Bの形式を検査する(ステップS203)。
次に、ノード開発者端末3Bは、形式判定プログラムが検査したAPI登録ファイル32Bの形式が正しいか否かを判定する(ステップS204)。正しい形式であると判定された場合(ステップS204“Yes”)に、処理はステップS205に進む。一方、正しい形式でないと判定された場合(ステップS204“No”)に、処理はステップS202に戻って、再度、API登録ファイル32Bが更新される。
前記ステップS204“Yes”の場合に、更新されたAPI登録ファイル32Bを、ノード開発者端末3BがAPI登録DB装置5に送信することで、API登録DB装置5に格納されるAPI情報51に更新されたAPI登録ファイル32Bの情報を登録する(ステップS205)。
次に、更新API検出サーバ6のAPI情報確認部66は、所定の間隔で、API登録DB装置5に格納されるAPI情報51のうち、監視対象であるクライアントノード2Aが備えるアプリケーション処理部21Aが利用する外部のAPI部22B,22Cに関する情報が更新されていないかを検出する(ステップS206)。
次に、更新API検出サーバ6のAPI情報確認部66が、API登録DB装置5に格納されるAPI情報51のうち、監視対象であるクライアントノード2Aが備えるアプリケーション処理部21Aが利用する外部のAPI部22B,22Cに関する情報が更新された情報を検出した場合に、イベント通知部67は、API登録DB装置5の情報が更新されたことを、監視対象のクライアントノード2Aを開発する端末であるノード開発者端末3Aに送信(通知)する(ステップS207)。
次に、ノード開発者端末3Aによりアプリケーション処理部21Aが更新(修正)される(ステップS208)。
以上で、API登録DB装置5に登録されているAPI情報を更新したときの通知処理の説明を終了する。
<外部のAPI部の動作確認をしたときの通知処理>
図7は、API動作確認テスト部65が外部のAPI部22B,22Cの動作確認をしたときの通知処理を示すフローチャートである。最初に、更新API検出サーバ6のAPI動作確認テスト部65は、APIテスト関数(図4参照)を用いて動作確認処理を実行する(ステップS301)。具体的には、API動作確認テスト部65は、API部68を用いて図4に記載されるAPIテスト関数を外部のサーバノード2B,2Cに送信する。
次に、更新API検出サーバ6のAPI動作確認テスト部65は、APIテスト関数(図4参照)が期待通りに動作したか(テストをパスしたか)否かを判定する(ステップS302)。API動作確認テスト部65は、テストをパスしたと判定した場合(ステップS302“Yes”)に、外部のAPI部22B,22Cの動作確認処理を終了する。一方、テストをパスしないと判定された場合(ステップS302“No”)に、処理はステップS303に進む。
次に、ステップS303において、更新API検出サーバ6のイベント通知部67は、API動作確認テスト部65は、テストをパスしなかったことを、監視対象のクライアントノード2Aを開発する端末であるノード開発者端末3Aに送信(通知)する。
次に、ノード開発者端末3Aによりアプリケーション処理部21Aが更新(修正)される(ステップS304)。
以上で、外部のAPI部22B,22Cの動作確認をしたときの通知処理の説明を終了する。
以上のように、本実施形態に係る更新API検出サーバ6は、接続されるAPI登録DB装置5に格納されるAPI情報51を参照することで外部のAPI部22B,22Cが更新されているか否かを確認することができる。よって、本実施形態に係る更新API検出システム1によれば、外部のサーバノード2B,2Cが備えるAPI部22B,22Cの更新を検出することができる。
また、本実施形態に係る更新API検出サーバ6は、外部のAPI部22B,22Cが備えられるサーバノード2B,2Cに、API部22B,22Cが有するデータおよび動作のうち少なくともどちらか1つを確認するAPIテスト関数を送信し、外部のAPI部22B,22Cが備えられるサーバノード2B,2CからAPIテスト関数の結果を受信することができる。よって、本実施形態に係る更新API検出システム1によれば、外部のAPI部22B,22Cの更新に伴う監視対象のクライアントノード2Aが備えるアプリケーション処理部21Aへの影響を知ることができる。
1 更新API検出システム
2A クライアントノード
2B,2C サーバノード
20 制御部
21 アプリケーション処理部
22 API部
3 ノード開発者端末(開発端末)
31 記憶部
32 API登録ファイル
4 ルータ
5 API登録DB装置
51 API情報
6 更新API検出サーバ(更新API検出装置)
61 記憶部
62 外部API情報
63 制御部
64 更新API検出部
65 API動作確認テスト部
66 API情報確認部
67 イベント通知部(イベント出力部)
68 API部
7 ネットワーク
8 インターネット

Claims (7)

  1. アプリケーション処理部およびAPI(アプリケーションプログラムインタフェース)部を各々備える複数のノードがインターネットを介して接続される分散アプリケーションシステムにおいて、API登録DB装置と更新API検出装置とが設けられ、前記更新API検出装置が前記複数のノードのうち少なくとも1つを監視対象のノードとし、当該監視対象のノード以外の他のノードが備えるAPI部である外部API部の更新を検出する更新API検出システムであって、
    前記API登録DB装置は、
    前記複数のノード毎に設けられた開発端末により、当該ノードのAPI部が更新されたことを示すAPI履歴情報を、前記複数のノードのAPI部ごとに格納する記憶部を備え、
    前記更新API検出装置は、
    前記監視対象のノード以外の他のノードが備える前記外部API部の更新履歴を示す外部API履歴情報が格納される記憶部と、
    前記API登録DB装置の記憶部に格納される前記API履歴情報と、当該更新API検出装置の記憶部に格納される前記外部API履歴情報と比較し、前記監視対象のノードのAPI部が分散アプリケーション処理に利用する前記他のノードが備える外部API部に関する前記API履歴情報が更新されているか否かを判定するAPI情報確認部と、
    前記API情報確認部が、当該API履歴情報が更新されていると判定した場合に、その判定結果を出力するイベント出力部と、を備えること、
    を特徴とする更新API検出システム。
  2. 前記API登録DB装置の記憶部には、前記API部を備える前記ノードのアドレスを示すAPIアドレス情報がさらに格納されており、
    前記更新API検出装置は、
    前記API登録DB装置の前記APIアドレス情報を参照し、前記外部API部を備える前記他のノードの前記アドレスを取得して、前記外部API部が有するデータと前記外部API部が行う動作とのうち少なくとも1つを確認するAPIテスト関数を、当該外部API部を備える他のノードに送信し、返信として、前記APIテスト関数のテスト結果を受信することにより、当該外部API部が所定のデータを有するか否か、または所定の動作を行うか否かを判定するAPI動作確認テスト部、をさらに備え、
    前記イベント出力部は、前記API動作確認テスト部が、当該外部API部が所定のデータを有していない、または所定の動作を行わないと判定した場合に、その判定結果を出力する、
    ことを特徴とする請求項1に記載の更新API検出システム。
  3. 前記API動作確認テスト部は、
    前記外部API部が所定の動作を行うか否かを判定する場合に、前記外部API部が処理を行い、その結果を確認することで当該外部API部が所定の動作を行うか否かを確認するテスト関数、および当該処理のレスポンス時間が所定時間内であるか否かで当該外部API部が所定の動作を行うか否かを確認するテスト関数のうち少なくとも1つを、前記外部API部を備えるノードに送信することにより動作結果を確認する、
    ことを特徴とする請求項2に記載の更新API検出システム。
  4. 前記API履歴情報および前記外部API履歴情報は、バージョン情報であり、
    前記API情報確認部は、前記API登録DB装置の記憶部に前記API履歴情報として格納される前記API部に関するバージョン情報と、前記更新API検出装置の記憶部に前記外部API履歴情報として格納される前記外部API部のバージョン情報とを比較し、前記API部に関するバージョン情報が更新されているか否かを判定する、
    ことを特徴とする請求項1ないし請求項3の何れか一項に記載の更新API検出システム。
  5. アプリケーション処理部およびAPI(アプリケーションプログラムインタフェース)部を各々備える複数のノードがインターネットを介して接続される分散アプリケーションシステムにおいて、前記複数のノード毎に設けられた開発端末により、当該ノードのAPI部が更新されたことを示すAPI履歴情報を、前記複数のノードのAPI部ごとに格納する記憶部を備えるAPI登録DB装置と共に前記インターネットに接続され、前記複数のノードのうち少なくとも1つを監視対象のノードとし、当該監視対象のノード以外の他のノードが備えるAPI部である外部API部の更新を検出する更新API検出装置であって、
    前記監視対象のノード以外の他のノードが備える前記外部API部の更新履歴を示す外部API履歴情報が格納される記憶部と、
    前記API登録DB装置の記憶部に格納される前記API履歴情報と、当該更新API検出装置の記憶部に格納される前記外部API履歴情報と比較し、前記監視対象のノードのAPI部が分散アプリケーション処理に利用する前記他のノードが備える外部API部に関する前記API履歴情報が更新されているか否かを判定するAPI情報確認部と、
    前記API情報確認部が、当該API履歴情報が更新されていると判定した場合に、その判定結果を出力するイベント出力部と、を備えること、
    を特徴とする更新API検出装置。
  6. アプリケーション処理部およびAPI(アプリケーションプログラムインタフェース)部を各々備える複数のノードがインターネットを介して接続される分散アプリケーションシステムにおいて、前記複数のノード毎に設けられた開発端末により、当該ノードのAPI部が更新されたことを示すAPI履歴情報を、前記複数のノードのAPI部ごとに格納する記憶部を備えるAPI登録DB装置と共に前記インターネットに接続され、前記複数のノードのうち少なくとも1つを監視対象のノードとし、当該監視対象のノード以外の他のノードが備えるAPI部である外部API部の更新を検出する更新API検出装置に用いられる更新API検出方法であって、
    前記更新API検出装置は、
    前記監視対象のノード以外の他のノードが備える前記外部API部の更新履歴を示す外部API履歴情報が格納される記憶部を備え、
    前記API登録DB装置の記憶部に格納される前記API履歴情報と、当該更新API検出装置の記憶部に格納される前記外部API履歴情報と比較し、前記監視対象のノードのAPI部が分散アプリケーション処理に利用する前記他のノードが備える外部API部に関する前記API履歴情報が更新されているか否かを判定し、
    当該API履歴情報が更新されていると判定した場合に、その判定結果を出力する、
    ことを特徴とする更新API検出方法。
  7. 請求項6に記載の更新API検出方法を、更新API検出装置に実行させるための更新API検出プログラム。
JP2010132029A 2010-06-09 2010-06-09 更新api検出システム、更新api検出装置、更新api検出方法、および更新api検出プログラム Active JP5276625B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010132029A JP5276625B2 (ja) 2010-06-09 2010-06-09 更新api検出システム、更新api検出装置、更新api検出方法、および更新api検出プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010132029A JP5276625B2 (ja) 2010-06-09 2010-06-09 更新api検出システム、更新api検出装置、更新api検出方法、および更新api検出プログラム

Publications (2)

Publication Number Publication Date
JP2011257994A JP2011257994A (ja) 2011-12-22
JP5276625B2 true JP5276625B2 (ja) 2013-08-28

Family

ID=45474106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010132029A Active JP5276625B2 (ja) 2010-06-09 2010-06-09 更新api検出システム、更新api検出装置、更新api検出方法、および更新api検出プログラム

Country Status (1)

Country Link
JP (1) JP5276625B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5636394B2 (ja) 2012-05-30 2014-12-03 株式会社日立製作所 情報処理装置、情報処理方法、およびプログラム
JP7316240B2 (ja) * 2020-03-06 2023-07-27 株式会社日立製作所 プログラム更新管理システム、プログラム更新管理方法、及びプログラム更新管理プログラム
US20240168826A1 (en) 2022-11-18 2024-05-23 Astron Security Inc. Method of analyzing change in api in cloud

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962494A (ja) * 1995-08-29 1997-03-07 Nec Corp 開発プログラムにおけるリビジョン管理装置
JP2004362183A (ja) * 2003-06-04 2004-12-24 Hitachi Ltd プログラム管理方法及び実施装置並びに処理プログラム
JP2009053767A (ja) * 2007-08-23 2009-03-12 Hitachi Ltd プログラム解析装置、および、プログラム解析方法
JP4963110B2 (ja) * 2008-01-25 2012-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション サービス検索システム、方法及びプログラム
JP2009199369A (ja) * 2008-02-21 2009-09-03 Nec Corp ウェブサービス検索システム、ウェブサービス検索方法、ウェブサービス検索プログラム
JP5004857B2 (ja) * 2008-04-18 2012-08-22 日本電信電話株式会社 アプリケーション更新情報提供システム、及びアプリケーション更新情報提供方法

Also Published As

Publication number Publication date
JP2011257994A (ja) 2011-12-22

Similar Documents

Publication Publication Date Title
CN108769124B (zh) PaaS平台的应用部署方法、装置、服务器及存储介质
US11232405B2 (en) Computer readable storage media for dynamic service deployment and methods and systems for utilizing same
CN116018788A (zh) 为动态发现的对等体或网络功能配置服务网格联网资源
CN111857733A (zh) 一种业务环境的构建方法、装置、系统以及可读存储介质
JP2009294837A (ja) 障害監視システム及びデバイスと監視装置並びに障害監視方法
JP5276625B2 (ja) 更新api検出システム、更新api検出装置、更新api検出方法、および更新api検出プログラム
CN111770174A (zh) 一种云平台部署方法、装置、设备及可读存储介质
JP2010072951A (ja) サービス処理装置、システム、プログラム及び記録媒体
US9733999B1 (en) Dynamic optimization of application workflows
US9935867B2 (en) Diagnostic service for devices that employ a device agent
CN114328097A (zh) 一种文件监控方法、装置、电子设备和存储介质
US10637950B1 (en) Forwarding content on a client based on a request
JP2020038506A (ja) 情報処理システム、情報処理方法、及び、プログラム
KR101399800B1 (ko) 인스턴스 호스팅을 위한 서비스 제공 방법 및 서비스 제공 시스템
JP7056289B2 (ja) 管理システム、端末装置、管理装置、管理方法、およびプログラム
JP6973063B2 (ja) 画像処理システムおよび情報処理機器
Soubra Towards universal IoT metrics automation
Zheng et al. Qos evaluation of web services
JP2015114991A (ja) データ処理装置、データ処理装置監視方法およびデータ処理システム
JP5158153B2 (ja) モジュール更新プログラム
CN104040513A (zh) 显示器管理系统及其服务器装置、可编程显示器、工作控制方法
JP2007272717A (ja) 情報管理装置およびその方法
CN116708176A (zh) 消息处理方法、装置、服务器及存储介质
JP2006011510A (ja) 脆弱性検査システム
CN111966619A (zh) 一种信息交互方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121001

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130201

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130501

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130517

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5276625

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350