JP7201087B2 - Api変換装置、api変換方法、およびプログラム - Google Patents
Api変換装置、api変換方法、およびプログラム Download PDFInfo
- Publication number
- JP7201087B2 JP7201087B2 JP2021528608A JP2021528608A JP7201087B2 JP 7201087 B2 JP7201087 B2 JP 7201087B2 JP 2021528608 A JP2021528608 A JP 2021528608A JP 2021528608 A JP2021528608 A JP 2021528608A JP 7201087 B2 JP7201087 B2 JP 7201087B2
- Authority
- JP
- Japan
- Prior art keywords
- api
- conversion
- version number
- definition
- api conversion
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Description
本発明は、API変換装置、API変換方法、およびプログラムに関する。
各事業者がサービスを管理するためのAPI(Application Program Interface)をウェブ上にて提供しており、APIを利用するサーバはAPIを呼び出すソフトウェアを通じてサービスを構築・運用している。APIの仕様(APIの名称、URL(Uniform Resource Locator)、パラメータ等)は、各事業者が規定しており、サーバは当該規定に従ってAPIを使用する。
プライベートクラウドや実験環境では、OpenStack(登録商標)のように半年毎に新版がリリースされる。このようなサーバ基盤ソフトウェアを施策毎に構築する場合、複数の版数が混在しやすく、版数毎にAPIのバージョンが異なる可能性がある。
図12は、同種APIに複数の版数が混在するネットワークシステムの概略図である。図12は、アクセストークン取得APIの場合を例に採る。
図12に示すように、ネットワークシステムは、VNFM(VNF Manager)やOSS(Operation Support System)を用いて、APIサービスを提供するサービス提供システム10サービス提供システム10と、サービス提供システム10により提供されたAPIサービスを利用するサーバ31~33と、が含まれる。サーバ31~33は、OpenStack APIと、その認証手段(OpenStack Identity)であるkeystoneを用いて、認証、ポリシー管理、およびカタログ・サービス関連の機能を実行する。サーバ31~33は、同種APIの複数の版数を持ち、順に、OpenStack Liberty版、OpenStack Newton版、OpenStack Rocky版であるとする。
図12に示すように、ネットワークシステムは、VNFM(VNF Manager)やOSS(Operation Support System)を用いて、APIサービスを提供するサービス提供システム10サービス提供システム10と、サービス提供システム10により提供されたAPIサービスを利用するサーバ31~33と、が含まれる。サーバ31~33は、OpenStack APIと、その認証手段(OpenStack Identity)であるkeystoneを用いて、認証、ポリシー管理、およびカタログ・サービス関連の機能を実行する。サーバ31~33は、同種APIの複数の版数を持ち、順に、OpenStack Liberty版、OpenStack Newton版、OpenStack Rocky版であるとする。
サービス提供システム10は、VNFM(VNF Manager)やOSS(Operation Support System)を用いて、プライベートクラウドや実験環境を管理する。保守運用者10aは、APIバージョンの違いを管理するためクライアントライブラリ(ここでは、APIv2ライブラリ11、APIv3ライブラリ12、APIv4ライブラリ13)を有する。
図12に示すように、サービス提供システム10は、APIv2ライブラリ11を用いて、OpenStack Liberty版を有するサーバ31に対しIdentity API v2 アクセストークン取得を発行し(S1a参照)、サーバ31はそのアクセストークンを送信する(S2a参照)。同様に、サービス提供システム10は、APIv3ライブラリ12を用いて、OpenStack Newton版を有するサーバ32に対しIdentity API v3 アクセストークン取得を発行し(S1b参照)、サーバ32はそのアクセストークンを送信する(S2b参照)。また、サービス提供システム10は、APIv4ライブラリ13を用いて、OpenStack Rocky版を有するサーバ33に対しIdentity API v4 アクセストークン取得を発行し(S1c参照)、サーバ33はそのアクセストークンを送信する(S2c参照)。
「クロスクラウドAPI管理プラットフォーム」,2018 Gartner Magic Quadrant,コネクテッドエクスペリエンス,[online],[令和1年6月1日検索],インターネット 〈URL: https://cloud.google.com/apigee/〉
「CA API Gatewayバックエンド・アプリケーション、ネットワーク・システム、インフラストラクチャのAPIを介した公開、保護、管理」,[online],[令和1年6月1日検索],インターネット 〈URL: https://www.ca.com/jp/products/ca-api-gateway.html〉
上述したように、プライベートクラウドや実験環境では、OpenStackのように約半年毎に新版がリリースされる。サーバ基盤ソフトウェアを施策毎に構築する場合、複数の版数が混在しやすく、版数毎にAPIのバージョンが異なる可能性がある。
上記環境をVNFMやOSSを用いて統合的に管理する場合、APIバージョンの違いをクライアントライブラリ(図12のAPIv2ライブラリ11、APIv3ライブラリ12、APIv4ライブラリ13参照)等を用いて吸収しなければならず、管理コストの増大につながる。
上記環境をVNFMやOSSを用いて統合的に管理する場合、APIバージョンの違いをクライアントライブラリ(図12のAPIv2ライブラリ11、APIv3ライブラリ12、APIv4ライブラリ13参照)等を用いて吸収しなければならず、管理コストの増大につながる。
また、API-GW(API Gateway)には、API変換機能を備えるものがある(非特許文献1,非特許文献2参照)。このAPI-GWは、API変換機能として、API変換プログラムを実装することで、上記クライアントライブラリによる対応は不要となる。しかしながら、API変換プログラムの開発が必要であり、管理コストは低減されない。
このような背景に鑑みて本発明がなされたのであり、本発明は、管理対象システムのAPIの版数の違いを低コストに隠蔽し、サービス提供システムの管理コストを低減することができるAPI変換装置、API変換方法、およびプログラムを提供することを課題とする。
前記した課題を解決するため、本発明は、サービス提供システムが提供するAPIを記述する定義書であるAPI定義、およびAPI変換機能のためのAPI変換プログラムを格納する記憶部にアクセスするアクセス部と、APIを用いて制御可能な複数の制御対象サーバからなる管理対象システムのAPIの版数保持していない場合、前記管理対象システムからAPIの版数を取得するとともに、前記サービス提供システムのAPIの版数と前記管理対象システムのAPIの版数とが異なる場合、API変換を指示するAPI版数管理部と、前記API版数管理部からのAPI変換指示を受けて、前記アクセス部により前記API定義、および前記API変換プログラムを取得して、受信したAPIを新版数に変換し、前記API変換プログラムが取得できなかった場合、取得した新旧の版数の前記API定義の差分を抽出し、新版数の前記API定義に新規パラメータが存在する場合、前記サービス提供システムに不足情報を要求するとともに、前記サービス提供システムから取得した前記不足情報と、前記記憶部から取得した新旧の版数の前記API定義とに基づいて、新版数の前記API変換プログラムを生成し、前記API定義、および前記API変換プログラムに基づいて、受信したAPIを新版数に変換するAPI変換部と、を備えることを特徴とするAPI変換装置とした。
本発明によれば、管理対象システムのAPIの版数の違いを低コストに隠蔽し、サービス提供システムの管理コストを低減することができるAPI変換装置、API変換方法、およびプログラムを提供することができる。
以下、図面を参照して本発明を実施するための形態(以下、「本実施形態」という)におけるAPI変換装置およびAPI変換方法について説明する。
(実施形態)
図1は、本発明の実施形態に係るAPI変換装置100が適用されるネットワークシステムの全体構成図である。
図1に示すように、ネットワークシステムは、VNFMやOSSを用いて、APIサービスを提供するサービス提供システム10と、APIを用いて制御可能な複数のサーバ31~33(制御対象サーバ)と、が含まれる。サービス提供システム10は、APIの管理主体であり、保守運用者10aによって運用される。
(実施形態)
図1は、本発明の実施形態に係るAPI変換装置100が適用されるネットワークシステムの全体構成図である。
図1に示すように、ネットワークシステムは、VNFMやOSSを用いて、APIサービスを提供するサービス提供システム10と、APIを用いて制御可能な複数のサーバ31~33(制御対象サーバ)と、が含まれる。サービス提供システム10は、APIの管理主体であり、保守運用者10aによって運用される。
サーバ31~33は、OpenStack APIと、その認証手段(OpenStack Identity)であるkeystoneを用いて、認証、ポリシー管理、およびカタログ・サービス関連の機能を実行する。サーバ31~33は、同種APIの複数の版数を有し、ここでは、サーバ31~33は、OpenStack Liberty版サーバ、OpenStack Newton版サーバ、OpenStack Rocky版サーバであるとする。
API変換装置100は、上記サービス提供システム10と、管理対象システム30と、の間に設けられる。一例として、API変換装置100は、サーバ31~33のAPI-GWに設置される。この場合、API変換装置100は、このAPI-GWのAPI変換機能部として導入されるものであってもよい。
API変換装置100は、API変換DB(database)20(記憶部)を参照して管理対象システム30のAPIの版数に応じたAPI変換を行う(後記)。API変換DB20は、APIを記述する定義書であるAPI定義21~23、およびAPI変換機能のためのAPI変換プログラム24を保持する(後記)。
[API変換装置100]
図1に示すように、API変換装置100は、外部システムIF(interface)部110、API版数管理部120、管理対象システムIF部130、API変換部140、API変換DBアクセス部150(アクセス部)を備えて構成される。
図1に示すように、API変換装置100は、外部システムIF(interface)部110、API版数管理部120、管理対象システムIF部130、API変換部140、API変換DBアクセス部150(アクセス部)を備えて構成される。
<外部システムIF部110>
外部システムIF部110は、APIを受信するとAPI版数管理部120に通知する。また、外部システムIF部110は、取得した不足情報(該当パラメータの値)をAPI変換部140に通知する。
外部システムIF部110は、APIを受信するとAPI版数管理部120に通知する。また、外部システムIF部110は、取得した不足情報(該当パラメータの値)をAPI変換部140に通知する。
<API版数管理部120>
API版数管理部120は、同種APIの複数の版数を管理する。API版数管理部120は、管理対象システム30のAPIの版数を保持しているか確認し、保持していない場合、管理対象システム30からAPIの版数を取得するとともに、サービス提供システム10から受信したAPIの版数(v2)と管理対象システム30のAPIの版数(v3)とを比較し、APIの版数が異なる場合、API変換部140にAPI変換を指示する。
具体的には、API版数管理部120は、下記(1)~(3)のAPI版数管理を行う。
API版数管理部120は、同種APIの複数の版数を管理する。API版数管理部120は、管理対象システム30のAPIの版数を保持しているか確認し、保持していない場合、管理対象システム30からAPIの版数を取得するとともに、サービス提供システム10から受信したAPIの版数(v2)と管理対象システム30のAPIの版数(v3)とを比較し、APIの版数が異なる場合、API変換部140にAPI変換を指示する。
具体的には、API版数管理部120は、下記(1)~(3)のAPI版数管理を行う。
(1) API版数管理部120は、APIの管理対象システム30のAPIの版数を保持しているか確認する。APIの版数を保持していない場合、管理対象システムIF部130にAPIの版数の取得を指示する。ここでは、API版数管理部120は、管理対象システムIF部130にアクセストークン取得API(v3)送信を指示する。
(2) API版数管理部120は、受信したAPI版数(v2)と対象システムのAPIの版数(v3)を比較し、APIの版数が異なる場合、API変換部140にAPI変換を指示する。
また、API版数管理部120は、APIの管理対象システム30のAPIの版数を保持しているか確認する。APIの版数を保持している場合、受信したAPIの版数(v2)と管理対象システム30のAPIの版数(v3)とを比較し、両者のAPIの版数が異なる場合、API変換部140にAPI変換を指示する。
また、API版数管理部120は、APIの管理対象システム30のAPIの版数を保持しているか確認する。APIの版数を保持している場合、受信したAPIの版数(v2)と管理対象システム30のAPIの版数(v3)とを比較し、両者のAPIの版数が異なる場合、API変換部140にAPI変換を指示する。
(3) API版数管理部120は、外部システムIF部110を介して、サービス提供システム10からのアクセストークン取得に対するアクセストークンの返送を指示する。
<管理対象システムIF部130>
管理対象システムIF部130は、APIの版数(v3)をAPI版数管理部120に回答する。また、管理対象システムIF部130は、取得したアクセストークンをAPI版数管理部120に通知する。
管理対象システムIF部130は、APIの版数(v3)をAPI版数管理部120に回答する。また、管理対象システムIF部130は、取得したアクセストークンをAPI版数管理部120に通知する。
<API変換部140>
API変換部140は、各部への指示動作を実行した上で、所定のAPI変換プログラムを用いてAPI変換を行うとともに、所定のAPI変換プログラムがない場合は、該当API変換プログラムを生成する。以下、(4)~(6)の項目に分けて述べる。
(4)各部への指示動作
API変換部140は、API変換DBアクセス部150にAPI変換プログラム(v2→v3)取得を指示する。
API変換部140は、API変換DBアクセス部150へAPI定義(Identity API v2とv3)取得を指示する。
API変換部140は、API定義(v2)とAPI定義(v3)の差分(diff)を抽出する。
API変換部140は、新版数(v3)に新規パラメータが存在する場合、外部システムIF部110に不足情報要求を指示する。
API変換部140は、各部への指示動作を実行した上で、所定のAPI変換プログラムを用いてAPI変換を行うとともに、所定のAPI変換プログラムがない場合は、該当API変換プログラムを生成する。以下、(4)~(6)の項目に分けて述べる。
(4)各部への指示動作
API変換部140は、API変換DBアクセス部150にAPI変換プログラム(v2→v3)取得を指示する。
API変換部140は、API変換DBアクセス部150へAPI定義(Identity API v2とv3)取得を指示する。
API変換部140は、API定義(v2)とAPI定義(v3)の差分(diff)を抽出する。
API変換部140は、新版数(v3)に新規パラメータが存在する場合、外部システムIF部110に不足情報要求を指示する。
API変換部140は、API定義(v2)、API定義(v3)、不足情報を用いてAPI変換プログラム(v2→v3)を生成する。
API変換部140は、API変換DBアクセス部150へAPI変換プログラム(v2→v3)のAPI変換DB20への登録を指示する。
API変換部140は、API変換DBアクセス部150にAPI変換プログラム(v2→v3)取得を指示する。
API変換部140は、API変換プログラム(v2→v3)25を用いて、受信したアクセストークン取得APIをv2からv3へ変換する。
API変換部140は、API版数管理部120にAPI変換結果を通知する。
API変換部140は、API変換DBアクセス部150へAPI変換プログラム(v2→v3)のAPI変換DB20への登録を指示する。
API変換部140は、API変換DBアクセス部150にAPI変換プログラム(v2→v3)取得を指示する。
API変換部140は、API変換プログラム(v2→v3)25を用いて、受信したアクセストークン取得APIをv2からv3へ変換する。
API変換部140は、API版数管理部120にAPI変換結果を通知する。
(5)所定のAPI変換プログラムが取得できる場合
API変換部140は、API変換指示を受けて、API変換DB20からAPI定義(IdentityAPI v2とv3)、およびAPI変換プログラム(IdentityAPI v2→v3)を取得するとともに、取得したAPI定義(Identity API v2とv3)、およびAPI変換プログラム(IdentityAPI v2→v3)25に基づいて、受信したAPIをv2からv3へ変換する。
API変換部140は、API変換指示を受けて、API変換DB20からAPI定義(IdentityAPI v2とv3)、およびAPI変換プログラム(IdentityAPI v2→v3)を取得するとともに、取得したAPI定義(Identity API v2とv3)、およびAPI変換プログラム(IdentityAPI v2→v3)25に基づいて、受信したAPIをv2からv3へ変換する。
(6)所定のAPI変換プログラムがなく、当該API変換プログラムを生成する場合
API変換部140は、API変換プログラム(IdentityAPI v2→v3)25を取得できなかった場合、API定義(IdentityAPI v2)とAPI定義(IdentityAPI v3)の差分(diff)を抽出し、新版数(v3)に新規パラメータが存在する場合、サービス提供システム10に不足情報を要求し、サービス提供システム10から取得した不足情報と、API変換DB20から取得したAPI定義(IdentityAPIv2)22およびAPI定義(IdentityAPIv3)23とに基づいて、API変換プログラム(IdentityAPI v2→v3)25を生成する。
API変換部140は、API変換プログラム(IdentityAPI v2→v3)25を取得できなかった場合、API定義(IdentityAPI v2)とAPI定義(IdentityAPI v3)の差分(diff)を抽出し、新版数(v3)に新規パラメータが存在する場合、サービス提供システム10に不足情報を要求し、サービス提供システム10から取得した不足情報と、API変換DB20から取得したAPI定義(IdentityAPIv2)22およびAPI定義(IdentityAPIv3)23とに基づいて、API変換プログラム(IdentityAPI v2→v3)25を生成する。
<API変換DBアクセス部150>
API変換DBアクセス部150は、API定義(IdentityAPI v1)21~24、およびAPI変換プログラム(IdentityAPI)24を格納するAPI変換DB20にアクセスする。
API変換DBアクセス部150は、API定義(IdentityAPI v1)21~24、およびAPI変換プログラム(IdentityAPI)24を格納するAPI変換DB20にアクセスする。
API変換DBアクセス部150は、API変換部140に該当のAPI定義、および所定のAPI変換プログラムの取得結果をAPI変換部140へ通知する。API変換プログラムが取得できなかった場合、「なし」を通知する。
[API変換DB20]
図1に示すように、API変換DB20は、APIを記述する定義書であるAPI定義(IdentityAPI v1)21、API定義(IdentityAPI v2)22およびAPI定義(IdentityAPI v3)23と、API変換機能のためのAPI変換プログラム(Identity API)24と、を格納する。
図1に示すように、API変換DB20は、APIを記述する定義書であるAPI定義(IdentityAPI v1)21、API定義(IdentityAPI v2)22およびAPI定義(IdentityAPI v3)23と、API変換機能のためのAPI変換プログラム(Identity API)24と、を格納する。
以下、上述のように構成されたAPI変換装置100の動作について説明する。
[動作概要]
まず、図2~図3を参照してAPI変換装置100の動作概要を述べる。
<事前準備>
図2は、API変換装置100の事前準備の動作例を示す図である。図2は、後記図3の本番に先立って行われるAPI実行テストを示している。 “アクセストークン取得API”を動作例に採る。
図2に示すように、管理対象システム30は、アクセストークン取得APIの版数の異なるサーバ31~33である。例えば、OpenStack Liberty版サーバ31は、アクセストークン取得APIがIdentityAPI v2のサーバ、OpenStack Newton版サーバ32は、アクセストークン取得APIがIdentityAPI v3のサーバ、OpenStack Rocky版サーバ33は、アクセストークン取得APIがIdentityAPI v4のサーバである。
[動作概要]
まず、図2~図3を参照してAPI変換装置100の動作概要を述べる。
<事前準備>
図2は、API変換装置100の事前準備の動作例を示す図である。図2は、後記図3の本番に先立って行われるAPI実行テストを示している。 “アクセストークン取得API”を動作例に採る。
図2に示すように、管理対象システム30は、アクセストークン取得APIの版数の異なるサーバ31~33である。例えば、OpenStack Liberty版サーバ31は、アクセストークン取得APIがIdentityAPI v2のサーバ、OpenStack Newton版サーバ32は、アクセストークン取得APIがIdentityAPI v3のサーバ、OpenStack Rocky版サーバ33は、アクセストークン取得APIがIdentityAPI v4のサーバである。
サービス提供システム10の保守運用者10aが、管理対象システム30に対してIdentityAPI v2のアクセストークン取得を発行する(ステップS11)。API変換装置100は、このIdentityAPI v2のアクセストークン取得を受けて、アクセストークン取得API(v2)からAPI版数取得APIに変換し(API変換(Identity API v2→API版数変換API))、管理対象システム30(ここではOpenStack Newton版サーバ32)にAPIの版数取得を送信する(ステップS12)。なお、まだOpenStack Newton版サーバ32のAPI版数が分かっていないので、後記API変換(同種APIの異なる版数間の変換)ではなく、アクセストークン取得API(v2)からAPI版数取得APIへの変換である。
OpenStack Newton版サーバ32は、API変換装置100にAPI版数(v3)を送信する(ステップS13)。
API変換装置100は、API変換DB20に対してAPI変換DB20からAPI変換プログラム(v2→v3)25(後記図6および図7参照。以下同様。)取得しようとする(ステップS14)。図2の例では、図1に示すAPI変換DB20は、API変換プログラム(Identity API v1→v2)24を有するものの、API変換プログラム(Identity API v2→v3)25を有しない。このため、API変換DB20は、API変換装置100にAPI変換プログラム(Identity API v2→v3)25「なし」を返す(ステップS15)。
API変換装置100は、API変換DB20に対してAPI変換DB20からAPI変換プログラム(v2→v3)25(後記図6および図7参照。以下同様。)取得しようとする(ステップS14)。図2の例では、図1に示すAPI変換DB20は、API変換プログラム(Identity API v1→v2)24を有するものの、API変換プログラム(Identity API v2→v3)25を有しない。このため、API変換DB20は、API変換装置100にAPI変換プログラム(Identity API v2→v3)25「なし」を返す(ステップS15)。
API変換装置100は、API変換DB20からAPI変換プログラム(Identity API v2→v3)25「なし」を受けて、API変換プログラム(Identity API v2→v3)25を生成するために下記の動作を行う。
API変換装置100は、API変換DB20からAPI定義(IdentityAPI v2)22およびAPI定義(IdentityAPI v3)23(図1参照)を取得するための要求を出す(ステップS16)。API変換DB20は、API変換装置100にAPI定義(IdentityAPI v2)22およびAPI定義(IdentityAPI v3)23を返す(ステップS17)。
API変換装置100は、このAPI定義(IdentityAPI v2)22およびAPI定義(IdentityAPI v3)23をもとに、API定義(IdentityAPI v2)22とAPI定義(IdentityAPI v3)23との差分(diff v2⇔v3)を抽出する(ステップS18)。
API変換装置100は、API変換プログラム(Identity API v2→v3)を生成の際に不足する不足情報を、保守運用者10aに要求する(ステップS19)。この場合、保守運用者10aに対して、不足するパラメータについて必須か任意かの属性を通知することで、保守運用者10aが不足情報を検討する際の稼動削減を図ることができる。保守運用者10aは、API変換装置100に不足情報を回答する(ステップS20)。ここで、保守運用者10aにGUI(Graphical User Interface)画面を表示して、保守運用者10aがGUI画面入力する態様でもよい。
API変換装置100は、取得したAPI変換プログラム(Identity API v2→v3)25を生成の際に不足する不足情報と、API定義(IdentityAPI v2)22およびAPI定義(IdentityAPI v3)23と、に基づいてAPI変換プログラム(IdentityAPI v2→v3)25を生成する(ステップS21)。
API変換装置100は、生成したAPI変換プログラム(Identity API v2→v3)25をAPI変換DB20に登録する(ステップS22)。なお、後記図6および図7に示すように、API変換装置100によって生成されたAPI変換プログラム(IdentityAPI v2→v3)25がAPI変換DB20に登録されている。このように、一旦、API変換DB20に登録されたAPI変換プログラムは、他の利用者がAPI変換プログラムを参照することで再利用することが可能である。
API変換装置100は、生成したAPI変換プログラム(Identity API v2→v3)25をAPI変換DB20に登録する(ステップS22)。なお、後記図6および図7に示すように、API変換装置100によって生成されたAPI変換プログラム(IdentityAPI v2→v3)25がAPI変換DB20に登録されている。このように、一旦、API変換DB20に登録されたAPI変換プログラムは、他の利用者がAPI変換プログラムを参照することで再利用することが可能である。
<本番動作例>
図3は、API変換装置100の本番の動作例を示す図である。前記図2に示すAPI変換装置100の事前準備の実行により、API変換DB20には、API変換プログラム(Identity API v2→v3)25が登録されている。
図3に示すように、サービス提供システム10の保守運用者10aが、管理対象システム30に対してIdentityAPI v2のアクセストークン取得を発行する(ステップS31)。API変換装置100は、このIdentityAPI v2のアクセストークン取得発行を受けて、API変換DB20に対しAPI変換プログラム(Identity API v2→v3)の取得を要求する(ステップS32)。API変換DB20は、API変換装置100にAPI変換プログラム(Identity API v2→v3)を送信する(ステップS33)。
図3は、API変換装置100の本番の動作例を示す図である。前記図2に示すAPI変換装置100の事前準備の実行により、API変換DB20には、API変換プログラム(Identity API v2→v3)25が登録されている。
図3に示すように、サービス提供システム10の保守運用者10aが、管理対象システム30に対してIdentityAPI v2のアクセストークン取得を発行する(ステップS31)。API変換装置100は、このIdentityAPI v2のアクセストークン取得発行を受けて、API変換DB20に対しAPI変換プログラム(Identity API v2→v3)の取得を要求する(ステップS32)。API変換DB20は、API変換装置100にAPI変換プログラム(Identity API v2→v3)を送信する(ステップS33)。
API変換装置100は、API変換DB20からAPI変換プログラム(Identity API v2→v3)25を取得して、Identity APIの版数をv2→v3に変換するAPI変換(Identity API v2→v3)を行う(ステップS34)。
API変換装置100は、上記API変換によりIdentityAPI v2をIdentityAPI v3に変換したIdentityAPI v3をもとに、管理対象システム30(ここではOpenStack Newton版サーバ32)に対してIdentityAPI v3のアクセストークン取得を行う(ステップS35)。OpenStack Newton版サーバ32は、API変換装置100にIdentityAPI v3のアクセストークンを送信する(ステップS36)。
API変換装置100は、保守運用者10aにOpenStack Newton版サーバ32からの、IdentityAPI v3のアクセストークンを送信する(ステップS37)。
<API変換ルール生成手順>
図4は、API変換装置100のAPI変換ルール生成手順を示す図である。
APIのバージョンアップによりパラメータの追加や削除が発生する。しかし、パラメータの追加や削除は、リアルタイムで実行されるとは限らない。このため、完全自動化は困難である。本実施形態では、必要最低限の手動処理(図4のStep2参照)と自動処理(図4のStep1,Step3参照)を組合せることで処理稼動を最適化する。
図4は、API変換装置100のAPI変換ルール生成手順を示す図である。
APIのバージョンアップによりパラメータの追加や削除が発生する。しかし、パラメータの追加や削除は、リアルタイムで実行されるとは限らない。このため、完全自動化は困難である。本実施形態では、必要最低限の手動処理(図4のStep2参照)と自動処理(図4のStep1,Step3参照)を組合せることで処理稼動を最適化する。
Step1の自動処理は、新旧API定義の差分抽出(diff)を行う。具体的には、図2のS18のAPI定義(IdentityAPI v2)22とAPI定義(IdentityAPI v3)23との差分(diff v2⇔v3)を抽出処理である。
Step2の手動処理は、一方にのみ存在するパラメータを入力する。具体的には、図2のS19のAPI変換プログラムを生成の際に不足する不足情報の要求と、図2のS20のその不足情報の回答である。
Step3の自動処理は、API変換プログラムの生成および登録である。具体的には、図2のS21のAPI変換プログラムの生成と、図2のS22の生成されたAPI変換プログラムのAPI変換DB20への登録である。
[動作詳細]
次に、図5~図8を参照してAPI変換装置100の動作詳細を述べる。
<事前準備>
図5および図6は、API変換装置100の事前準備の詳細な動作例を示す図であり、図2のAPI変換装置100の事前準備の動作の詳細を示している。図5は、図2と同様に“アクセストークン取得API”を動作例に採る。図2と同一処理を実行するステップには同一符号を付している。
図5に示すように、サービス提供システム10の保守運用者10aが、管理対象システム30に対してIdentityAPI v2のアクセストークン取得を発行する(ステップS11)。API変換装置100は、このIdentityAPI v2のアクセストークン取得を受けて、アクセストークン取得API(v2)からAPI版数取得APIに変換し(API変換(Identity API v2→API版数変換API))、管理対象システム30(ここではOpenStack Newton版サーバ32)にAPIの版数取得を送信する(ステップS12)。
次に、図5~図8を参照してAPI変換装置100の動作詳細を述べる。
<事前準備>
図5および図6は、API変換装置100の事前準備の詳細な動作例を示す図であり、図2のAPI変換装置100の事前準備の動作の詳細を示している。図5は、図2と同様に“アクセストークン取得API”を動作例に採る。図2と同一処理を実行するステップには同一符号を付している。
図5に示すように、サービス提供システム10の保守運用者10aが、管理対象システム30に対してIdentityAPI v2のアクセストークン取得を発行する(ステップS11)。API変換装置100は、このIdentityAPI v2のアクセストークン取得を受けて、アクセストークン取得API(v2)からAPI版数取得APIに変換し(API変換(Identity API v2→API版数変換API))、管理対象システム30(ここではOpenStack Newton版サーバ32)にAPIの版数取得を送信する(ステップS12)。
API変換装置100のAPI変換機能は、下記の通りである。
外部システムIF部110は、サービス提供システム10の保守運用者10aからAPI(ここではIdentityAPI v2のアクセストークン取得)を受信すると(ステップS11)、API版数管理部120に通知する。
外部システムIF部110は、サービス提供システム10の保守運用者10aからAPI(ここではIdentityAPI v2のアクセストークン取得)を受信すると(ステップS11)、API版数管理部120に通知する。
API版数管理部120は、API(IdentityAPI v2のアクセストークン取得)の宛先システムのAPIの版数を保持しているか確認する(ステップS111)。API(IdentityAPI v2のアクセストークン取得)の宛先システムのAPIの版数を保持していない場合、管理対象システムIF部130にAPIの版数の取得を指示する(ステップS112)。いま、API版数管理部120は、API(IdentityAPI v2のアクセストークン取得)の宛先システムのAPIの版数を保持していないので、管理対象システムIF部130にAPIの版数の取得を指示する。
管理対象システムIF部130は、API版数管理部120にAPI版数(Identity API v3)を回答する(ステップS113)。
API版数管理部120は、外部システムIF部110が受信したAPI版数(IdentityAPI v2)と管理対象システム30(ここではOpenStack Newton版サーバ32)のAPI版数(IdentityAPI v3)を比較する。そして、API版数管理部120は、API版数が異なる場合、API変換部140にAPI変換を指示する(ステップS114)。
API版数管理部120は、外部システムIF部110が受信したAPI版数(IdentityAPI v2)と管理対象システム30(ここではOpenStack Newton版サーバ32)のAPI版数(IdentityAPI v3)を比較する。そして、API版数管理部120は、API版数が異なる場合、API変換部140にAPI変換を指示する(ステップS114)。
API変換部140は、API変換DBアクセス部150にAPI変換プログラム(Identity API v2→v3)取得を指示する(ステップS115)。API変換DBアクセス部150は、API変換DB20に対してAPI変換DB20からAPI変換プログラム(Identity API v2→v3)取得しようとする(ステップS14)。図5の例では、API変換DB20は、API変換プログラム(Identity API v2→v3)を有しない。このため、API変換DB20は、API変換装置100にAPI変換プログラム(Identity API v2→v3)25「なし」を返す(ステップS15)。
API変換DBアクセス部150は、API変換DB20からの結果(この場合、取得できなかったため「なし」)をAPI変換部140に通知する(ステップS116)。
ここまでの動作で、API変換装置100は、API変換DB20にAPI変換プログラム(IdentityAPI v2→v3)25がないことを確認したので、下記のAPI変換プログラム(IdentityAPI v2→v3)25の生成を行う。
図6に示すように、API変換部140は、API変換DBアクセス部150にAPI定義(Identity API v2とv3)取得を指示する(ステップS117)。API変換DBアクセス部150は、API変換部140に該当のAPI定義を通知する(ステップS118)。
API変換部140は、API定義(IdentityAPI v2)22とAPI定義(IdentityAPI v3)23との差分(diffv2⇔v3)を抽出する(ステップS119)。
API変換部140は、新バージョン(v3)に新規パラメータが存在するか否か判断し(ステップS120)、新バージョン(v3)に新規パラメータが存在する場合、外部システムIF部110に不足情報要求を指示する(ステップS120)。
API変換部140は、新バージョン(v3)に新規パラメータが存在するか否か判断し(ステップS120)、新バージョン(v3)に新規パラメータが存在する場合、外部システムIF部110に不足情報要求を指示する(ステップS120)。
外部システムIF部110は、保守運用者10aから取得(ステップS19,S20)した不足情報(該当パラメータの値)をAPI変換部140に通知する(ステップS121)。
API変換部140は、取得したAPI変換プログラム(IdentityAPI v2→v3)を生成の際に不足する不足情報と、API定義(IdentityAPI v2)22およびAPI定義(IdentityAPI v3)23と、に基づいてAPI変換プログラム(Identity API v2→v3)を生成する(ステップS122)。
API変換部140は、取得したAPI変換プログラム(IdentityAPI v2→v3)を生成の際に不足する不足情報と、API定義(IdentityAPI v2)22およびAPI定義(IdentityAPI v3)23と、に基づいてAPI変換プログラム(Identity API v2→v3)を生成する(ステップS122)。
API変換部140は、API変換DBアクセス部150にAPI変換プログラム(Identityv2→v3)のAPI変換DB20への登録を指示する(ステップS123)。
API変換DBアクセス部150は、生成したAPI変換プログラム(IdentityAPI v2→v3)をAPI変換DB20に登録する(ステップS22)。これにより、API変換装置100によって生成されたAPI変換プログラム(IdentityAPI v2→v3)25がAPI変換DB20に登録される。
API変換DBアクセス部150は、生成したAPI変換プログラム(IdentityAPI v2→v3)をAPI変換DB20に登録する(ステップS22)。これにより、API変換装置100によって生成されたAPI変換プログラム(IdentityAPI v2→v3)25がAPI変換DB20に登録される。
<本番動作例>
図7は、API変換装置100の本番の詳細な動作例を示す図であり、図3のAPI変換装置100の本番の動作の詳細を示している。図3と同一処理を実行するステップには同一符号を付している。
前記図5および図6に示すAPI変換装置100の事前準備の実行により、API変換DB20には、API変換プログラム(Identity API v2→v3)25が登録されている。
図7に示すように、サービス提供システム10の保守運用者10aが、管理対象システム30に対してIdentityAPI v2のアクセストークン取得を発行する(ステップS31)。
外部システムIF部110は、APIを受信するとAPI版数管理部120に通知する(ステップS311)。
図7は、API変換装置100の本番の詳細な動作例を示す図であり、図3のAPI変換装置100の本番の動作の詳細を示している。図3と同一処理を実行するステップには同一符号を付している。
前記図5および図6に示すAPI変換装置100の事前準備の実行により、API変換DB20には、API変換プログラム(Identity API v2→v3)25が登録されている。
図7に示すように、サービス提供システム10の保守運用者10aが、管理対象システム30に対してIdentityAPI v2のアクセストークン取得を発行する(ステップS31)。
外部システムIF部110は、APIを受信するとAPI版数管理部120に通知する(ステップS311)。
API版数管理部120は、APIの宛先システムである管理対象システム30(ここではOpenStack Newton版サーバ32)のAPIの版数を保持しているか確認する。APIの版数を保持している場合、保守運用者10aから受信したAPIの版数(v2)と管理対象システム30(OpenStack Newton版サーバ32)のAPIの版数(v3)を比較し、APIの版数が異なる場合、API変換部140にAPI変換を指示する(ステップS312)。
API変換部140は、API変換DBアクセス部150にAPI変換プログラム(IdentityAPI v2→v3)取得を指示する(ステップS313)。
API変換DBアクセス部150は、結果をAPI変換部140に通知する(ステップS314)。この場合、取得できたため、API変換DBアクセス部150は、「API変換プログラム(IdentityAPI v2→v3)」をAPI変換部140に送信する。
API変換DBアクセス部150は、結果をAPI変換部140に通知する(ステップS314)。この場合、取得できたため、API変換DBアクセス部150は、「API変換プログラム(IdentityAPI v2→v3)」をAPI変換部140に送信する。
API変換部140は、取得したAPI変換プログラム(IdentityAPI v2→v3)を用いて、外部システムIF部110が受信したアクセストークン取得APIをv2からv3へ変換する。
API変換部140は、API版数管理部120にAPI変換結果を通知する(ステップS315)。
API変換部140は、API版数管理部120にAPI変換結果を通知する(ステップS315)。
API版数管理部120は、管理対象システムIF部130にアクセストークン取得API(v3)送信を指示する(ステップS316)。管理対象システムIF部130は、取得したアクセストークンをAPI版数管理部120に通知する(ステップS317)。
API版数管理部120は、外部システムIF部110へアクセストークンの返送を指示する(ステップS318)。外部システムIF部110は、保守運用者10aにOpenStack Newton版サーバ32からの、IdentityAPI v3のアクセストークンを送信する(ステップS37)。
API版数管理部120は、外部システムIF部110へアクセストークンの返送を指示する(ステップS318)。外部システムIF部110は、保守運用者10aにOpenStack Newton版サーバ32からの、IdentityAPI v3のアクセストークンを送信する(ステップS37)。
<動作フロー>
図8Aおよび図8Bは、API変換装置100のAPI変換方法の主要動作を示すフローチャートである。
ステップS501でAPI版数管理部120(図1参照)は、管理対象システム30(図1参照)のAPIの版数を保持しているか否かを確認する。
管理対象システム30のAPIの版数を保持していない場合(ステップS501:No)、ステップS502でAPI版数管理部120は、管理対象システム30からAPIの版数を取得する。管理対象システム30のAPIの版数を保持している場合(ステップS501:Yes)、ステップS503に進む。
図8Aおよび図8Bは、API変換装置100のAPI変換方法の主要動作を示すフローチャートである。
ステップS501でAPI版数管理部120(図1参照)は、管理対象システム30(図1参照)のAPIの版数を保持しているか否かを確認する。
管理対象システム30のAPIの版数を保持していない場合(ステップS501:No)、ステップS502でAPI版数管理部120は、管理対象システム30からAPIの版数を取得する。管理対象システム30のAPIの版数を保持している場合(ステップS501:Yes)、ステップS503に進む。
ステップS503でAPI版数管理部120は、サービス提供システム10から受信したAPIの版数(v2)と管理対象システム30のAPIの版数(v3)が異なるか否かを判別する。
APIの版数が異なる場合(ステップS503:Yes)、ステップS504に進み、APIの版数が異ならない場合(版数が同一の場合)(ステップS503:No)、本フローの処理を終了する。
APIの版数が異なる場合(ステップS503:Yes)、ステップS504に進み、APIの版数が異ならない場合(版数が同一の場合)(ステップS503:No)、本フローの処理を終了する。
ステップS504でAPI変換DBアクセス部150は、API定義(IdentityAPI v1)21~23、およびAPI変換プログラム(Identity API)24を格納するAPI変換DB20にアクセスする。
ステップS505でAPI変換DBアクセス部150は、API変換部140にAPI変換を指示する。
ステップS505でAPI変換DBアクセス部150は、API変換部140にAPI変換を指示する。
ステップS506でAPI変換部140は、前記API変換指示を受けて、API変換DB20からAPI定義(Identity API v2とv3)22,23、およびAPI変換プログラム(IdentityAPI v2→v3)25を取得する。
ステップS507でAPI変換部140は、API変換プログラム(IdentityAPI v2→v3)25を取得できたか否かを判別する。
API変換プログラム(IdentityAPI v2→v3)25を取得できた場合(ステップS507:Yes)、ステップS508でAPI変換部140は、取得したAPI定義(IdentityAPI v2とv3)、およびAPI変換プログラム(IdentityAPI v2→v3)25に基づいて、受信したAPIをv2からv3へ変換して本フローを終了する。
API変換プログラム(IdentityAPI v2→v3)25を取得できた場合(ステップS507:Yes)、ステップS508でAPI変換部140は、取得したAPI定義(IdentityAPI v2とv3)、およびAPI変換プログラム(IdentityAPI v2→v3)25に基づいて、受信したAPIをv2からv3へ変換して本フローを終了する。
一方、ステップS507でAPI変換部140は、API変換プログラム(IdentityAPI v2→v3)25を取得できなかった場合(ステップS507:No)、下記のステップS509以下の処理を実行する。この場合、API変換DB20は、API変換プログラム(IdentityAPI v2→v3)25を保持しておらず、API変換部140は、API変換プログラム(IdentityAPI v2→v3)25を取得できないとする。
ステップS509でAPI変換部140は、API定義(Identity APIv2)22とAPI定義(Identity APIv3)23の差分(diff)を抽出し、新版数(v3)に新規パラメータが存在する場合、サービス提供システム10に不足情報を要求する。
ステップS510でAPI変換部140は、サービス提供システム10から取得した不足情報と、API変換DB20から取得したAPI定義(Identity APIv2)22およびAPI定義(Identity APIv3)23とに基づいて、API変換プログラム(IdentityAPI v2→v3)25を生成する。
ステップS511でAPI変換部140は、生成したAPI変換プログラム(IdentityAPI v2→v3)25に基づいて、受信したAPIをv2からv3へ変換する。
ステップS512でAPI変換DBアクセス部150は、生成したAPI変換プログラム(IdentityAPI v2→v3)25をAPI変換DB20に登録して本フローの処理を終える。
ステップS512でAPI変換DBアクセス部150は、生成したAPI変換プログラム(IdentityAPI v2→v3)25をAPI変換DB20に登録して本フローの処理を終える。
[API変換ルール生成手順]
API変換ルール生成の具体例について説明する。
<新旧API定義の差分抽出>
まず、API変換装置100(図1参照)は、新旧API定義の差分抽出(diff)を行う。この新旧API定義の差分抽出(diff)は、前記図4のAPI変換ルール生成手順のStep1の自動処理に対応する。より詳細には、図6のAPI変換部140の差分抽出(diff)(ステップS119)である。
API変換ルール生成の具体例について説明する。
<新旧API定義の差分抽出>
まず、API変換装置100(図1参照)は、新旧API定義の差分抽出(diff)を行う。この新旧API定義の差分抽出(diff)は、前記図4のAPI変換ルール生成手順のStep1の自動処理に対応する。より詳細には、図6のAPI変換部140の差分抽出(diff)(ステップS119)である。
図9は、API変換装置100の新旧API定義の差分抽出の一例を示す図である。図9は、前記図4のStep1の自動処理新旧API定義の差分抽出(diff)の具体例である。
前記図1に示すように、API変換DB20には、API定義(IdentityAPI v1)21、API定義(IdentityAPI v2)22、API定義(IdentityAPI v3)23、API変換プログラム(Identity API)24が格納されている。
API定義(IdentityAPI v2)22とAPI定義(IdentityAPI v3)23との差分(diff v2⇔v3)抽出を例に採る。
前記図1に示すように、API変換DB20には、API定義(IdentityAPI v1)21、API定義(IdentityAPI v2)22、API定義(IdentityAPI v3)23、API変換プログラム(Identity API)24が格納されている。
API定義(IdentityAPI v2)22とAPI定義(IdentityAPI v3)23との差分(diff v2⇔v3)抽出を例に採る。
図9に示すように、API定義(IdentityAPI v2)22は、
API版数 version: “2.0”
API名 title: “Identity API ”
URL /v2.0/tokens:
HTTPメソッド post:
以下パラメータ定義 parameters:
を記述し、
以下パラメータ定義 parameters:は、さらに、
パラメータ名 - name: “methods”
パラメータの場所 in: “body”
必須パラメータか否か required: true
パラメータの型 type: array
を記述し、
以下レスポンス定義 responses:
を記述する。
API版数 version: “2.0”
API名 title: “Identity API ”
URL /v2.0/tokens:
HTTPメソッド post:
以下パラメータ定義 parameters:
を記述し、
以下パラメータ定義 parameters:は、さらに、
パラメータ名 - name: “methods”
パラメータの場所 in: “body”
必須パラメータか否か required: true
パラメータの型 type: array
を記述し、
以下レスポンス定義 responses:
を記述する。
一方、API定義(IdentityAPI v2)23は、API定義(IdentityAPI v3)22と比較して、図9の符号aの[差分1]に示すように、
URL /v3.0/tokens:
というURL変更がある。
また、図9の符号bの[差分2]に示すように、
“domain”パラメータが追加されており、差分となる。
URL /v3.0/tokens:
というURL変更がある。
また、図9の符号bの[差分2]に示すように、
“domain”パラメータが追加されており、差分となる。
<パラメータ追加>
次に、API変換装置100は、一方にのみ存在するパラメータを入力する。具体的には、API定義(IdentityAPI v3)では“domain”というパラメータが追加されているため、その値を保守運用者10aに入力してもらう。
このパラメータ追加は、前記図4のAPI変換ルール生成手順のStep2の手動処理に対応する。より詳細には、図6のAPI変換部140が、外部システムIF部110を介して行う不足情報要求(ステップS19)と不足情報回答(ステップS20)である。
次に、API変換装置100は、一方にのみ存在するパラメータを入力する。具体的には、API定義(IdentityAPI v3)では“domain”というパラメータが追加されているため、その値を保守運用者10aに入力してもらう。
このパラメータ追加は、前記図4のAPI変換ルール生成手順のStep2の手動処理に対応する。より詳細には、図6のAPI変換部140が、外部システムIF部110を介して行う不足情報要求(ステップS19)と不足情報回答(ステップS20)である。
<API変換プログラム生成・登録>
次に、API変換装置100は、API変換プログラム生成・登録する。具体的には、[差分1](URL変更:”/v2.0/tokens”→”/v3.0/tokens”)、および、[差分2](”domain”パラメータ追加)に対して文字列変換プログラムを生成し、API変換DB20に登録する。このAPI変換プログラム生成・登録は、前記図4のAPI変換ルール生成手順のStep3の自動処理に対応する。より詳細には、図6のAPI変換部140が、取得したAPI変換プログラム(IdentityAPI v2→v3)を生成の際に不足する不足情報と、API定義(IdentityAPI v2)22およびAPI定義(IdentityAPI v3)23と、に基づいてAPI変換プログラム(Identity API v2→v3)を生成する処理(ステップS122)と、API変換DBアクセス部150が、生成したAPI変換プログラム(IdentityAPI v2→v3)をAPI変換DB20に登録する処理(ステップS22)である。
次に、API変換装置100は、API変換プログラム生成・登録する。具体的には、[差分1](URL変更:”/v2.0/tokens”→”/v3.0/tokens”)、および、[差分2](”domain”パラメータ追加)に対して文字列変換プログラムを生成し、API変換DB20に登録する。このAPI変換プログラム生成・登録は、前記図4のAPI変換ルール生成手順のStep3の自動処理に対応する。より詳細には、図6のAPI変換部140が、取得したAPI変換プログラム(IdentityAPI v2→v3)を生成の際に不足する不足情報と、API定義(IdentityAPI v2)22およびAPI定義(IdentityAPI v3)23と、に基づいてAPI変換プログラム(Identity API v2→v3)を生成する処理(ステップS122)と、API変換DBアクセス部150が、生成したAPI変換プログラム(IdentityAPI v2→v3)をAPI変換DB20に登録する処理(ステップS22)である。
[API変換例]
API変換例についてさらに詳細に説明する。
図10は、API変換装置100のAPI変換例を示す図である。図10左は、前記図7の外部システムIF部110が、受信したIdentityAPI v2のアクセストークンである(ステップS31)。また、図10右は、前記図7の管理対象システムIF部130が管理対象システム30(OpenStack Newton版サーバ32)に送信するIdentityAPI v3のアクセストークンである(ステップS35)。
API変換例についてさらに詳細に説明する。
図10は、API変換装置100のAPI変換例を示す図である。図10左は、前記図7の外部システムIF部110が、受信したIdentityAPI v2のアクセストークンである(ステップS31)。また、図10右は、前記図7の管理対象システムIF部130が管理対象システム30(OpenStack Newton版サーバ32)に送信するIdentityAPI v3のアクセストークンである(ステップS35)。
図10の符号cの[変換1]に示すように、IdentityAPI v2のアクセストークンの「GET /v2.0/tokens HTTP/1.1」が、IdentityAPI v3のアクセストークンの「GET /v3.0/tokens HTTP/1.1」に変換されている。
また、図10の符号dの[変換2]に示すように、IdentityAPI v3のアクセストークンには、新規パラメータ
"domain": {
"name": "Default"
},
が追加されている。
また、図10の符号dの[変換2]に示すように、IdentityAPI v3のアクセストークンには、新規パラメータ
"domain": {
"name": "Default"
},
が追加されている。
[ハードウェア構成]
本実施形態に係るAPI変換装置100は、例えば図11に示すような構成のコンピュータ1000によって実現される。以下、API変換装置100を例に挙げて説明する。図11は、API変換装置100の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。
コンピュータ900は、CPU910、RAM920、ROM930、HDD940、通信インターフェイス(I/F:Interface)950、入出力インターフェイス(I/F)960、およびメディアインターフェイス(I/F)970を有する。
本実施形態に係るAPI変換装置100は、例えば図11に示すような構成のコンピュータ1000によって実現される。以下、API変換装置100を例に挙げて説明する。図11は、API変換装置100の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。
コンピュータ900は、CPU910、RAM920、ROM930、HDD940、通信インターフェイス(I/F:Interface)950、入出力インターフェイス(I/F)960、およびメディアインターフェイス(I/F)970を有する。
CPU900は、ROM930またはHDD940に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM930は、コンピュータ900の起動時にCPU910によって実行されるブートプログラムや、コンピュータ900のハードウェアに依存するプログラム等を格納する。
HDD940は、CPU910によって実行されるプログラム、および、かかるプログラムによって使用されるデータ等を格納する。HDD940は、例えばAPI変換DB20(図1参照)であってもよい。通信インターフェイス950は、通信網50を介して他の機器からデータを受信してCPU910へ送り、CPU910が生成したデータを通信網50を介して他の機器へ送信する。
CPU910は、入出力インターフェイス960を介して、ディスプレイやプリンタ等の出力装置、および、キーボードやマウス等の入力装置を制御する。CPU910は、入出力インターフェイス960を介して、入力装置からデータを取得する。また、CPU910は、生成したデータを入出力インターフェイス960を介して出力装置へ出力する。
メディアインターフェイス970は、記録媒体980に格納されたプログラムまたはデータを読み取り、RAM920を介してCPU910に提供する。CPU910は、かかるプログラムを、メディアインターフェイス970を介して記録媒体980からRAM920上にロードし、ロードしたプログラムを実行する。記録媒体980は、例えばDVD(Digital Versatile Disc)、PD(Phasechangerewritable Disk)等の光学記録媒体、MO(Magneto Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ900が本実施形態に係るAPI変換装置100として機能する場合、コンピュータ900のCPU910は、RAM920上にロードされたプログラムを実行することにより、API変換装置100の各部の機能を実現する。また、HDD940には、API変換装置100の各部内のデータが格納される。コンピュータ900のCPU910は、これらのプログラムを記録媒体980から読み取って実行するが、他の例として、他の装置から通信網50を介してこれらのプログラムを取得してもよい。
[効果]
以上説明したように、API変換装置100は、サービス提供システム10が提供するAPIを記述する定義書であるAPI定義21~23、およびAPI変換機能のためのAPI変換プログラム24を格納するAPI変換DB20にアクセスするAPI変換DBアクセス部150と、APIを用いて制御可能な複数の制御対象サーバ31~33からなる管理対象システム30のAPIの版数保持していない場合、管理対象システム30からAPIの版数を取得するとともに、サービス提供システム10のAPIの版数と管理対象システム30のAPIの版数とが異なる場合、API変換を指示するAPI版数管理部120と、API版数管理部120からのAPI変換指示を受けて、API変換DBアクセス部150によりAPI定義21~23、およびAPI変換プログラム24を取得して、受信したAPIを新版数に変換し、API変換プログラムが取得できなかった場合、取得した新旧の版数のAPI定義の差分を抽出し、新版数のAPI定義に新規パラメータが存在する場合、サービス提供システム10に不足情報を要求するとともに、サービス提供システム10から取得した不足情報と、API変換DB20から取得した新旧の版数のAPI定義21~23とに基づいて、新版数のAPI変換プログラム25を生成し、API定義21~23、およびAPI変換プログラム25に基づいて、受信したAPIを新版数に変換するAPI変換部140と、を備える。
以上説明したように、API変換装置100は、サービス提供システム10が提供するAPIを記述する定義書であるAPI定義21~23、およびAPI変換機能のためのAPI変換プログラム24を格納するAPI変換DB20にアクセスするAPI変換DBアクセス部150と、APIを用いて制御可能な複数の制御対象サーバ31~33からなる管理対象システム30のAPIの版数保持していない場合、管理対象システム30からAPIの版数を取得するとともに、サービス提供システム10のAPIの版数と管理対象システム30のAPIの版数とが異なる場合、API変換を指示するAPI版数管理部120と、API版数管理部120からのAPI変換指示を受けて、API変換DBアクセス部150によりAPI定義21~23、およびAPI変換プログラム24を取得して、受信したAPIを新版数に変換し、API変換プログラムが取得できなかった場合、取得した新旧の版数のAPI定義の差分を抽出し、新版数のAPI定義に新規パラメータが存在する場合、サービス提供システム10に不足情報を要求するとともに、サービス提供システム10から取得した不足情報と、API変換DB20から取得した新旧の版数のAPI定義21~23とに基づいて、新版数のAPI変換プログラム25を生成し、API定義21~23、およびAPI変換プログラム25に基づいて、受信したAPIを新版数に変換するAPI変換部140と、を備える。
このようにすることにより、API変換装置100は、管理対象システムのAPIの版数の違いを低コストに隠蔽し、サービス提供システムの管理コストを低減することができる。
より詳細には、API変換装置100は、API定義(IdentityAPI v1)21~23、およびAPI変換プログラム(IdentityAPI)24を格納するAPI変換DB20にアクセスするAPI変換DBアクセス部150と、管理対象システムのAPIの版数を保持しているか確認し、保持していない場合、管理対象システムからAPIの版数を取得するとともに、サービス提供システムから受信したAPIの版数(v2)と管理対象システムのAPIの版数(v3)とを比較し、両者のAPIの版数が異なる場合、API変換部140にAPI変換を指示するAPI版数管理部120と、API変換指示を受けて、API変換DB20からAPI定義(IdentityAPI v2とv3)、およびAPI変換プログラム(IdentityAPI v2→v3)を取得するとともに、取得したAPI定義(Identity API v2とv3)、およびAPI変換プログラム(IdentityAPI v2→v3)に基づいて、受信したAPIをv2からv3へ新版数に変換するAPI変換部140と、を備える。API変換部140は、API変換プログラム(IdentityAPI v2→v3)25を取得できなかった場合、API定義(IdentityAPI v2)とAPI定義(IdentityAPI v3)の差分(diff)を抽出し、新版数(v3)に新規パラメータが存在する場合、サービス提供システムに不足情報を要求し、サービス提供システム10から取得した不足情報と、API変換DB20から取得したAPI定義(IdentityAPIv2)22およびAPI定義(IdentityAPIv3)23とに基づいて、API変換プログラム(IdentityAPI v2→v3)25を生成する。
このように、API変換装置100は、API変換プロセスを自動化可能な処理と人手を介在させるべき処理とに分類している。すなわち、API変換部140において、API変換のプロセスが、変換ルール生成・登録手順と、API実行手順とに分けられている(図4参照)。このため、新版数(v3)に新規パラメータが存在する場合、サービス提供システム10から取得した不足情報を用いて、API変換プログラム(IdentityAPI v2→v3)25を生成することができる。これにより、効率的かつ柔軟なAPI変換が可能になる効果がある。例えば、複数の版数が混在し、版数毎にAPIのバージョンが異なる場合であっても、APIのバージョン違いを隠蔽することができ、VNNF、OSS等を用いるサービス提供システム10の管理コストを低減することができる。
また、API変換装置100において、API変換DBアクセス部150が、生成したAPI変換プログラム(IdentityAPI v2→v3)25(新版数のAPI変換プログラム)をAPI変換DB20に登録する。
これにより、他者が生成・登録したAPI変換プログラムを再利用可能になり、サービス提供システム10の管理コストをより一層低減することができる。
[その他]
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SD(Secure Digital)カード、光ディスク等の記録媒体に保持することができる。また、本明細書において、時系列的な処理を記述する処理ステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)をも含むものである。
10 サービス提供システム
10a 保守運用者
20 API変換DB(記憶部,記憶手段)
21~23 API定義
24,25 API変換プログラム
30 管理対象システム
31~33 サーバ(制御対象サーバ)
110 外部システムIF部
120 API版数管理部
130 管理対象システムIF部
140 API変換部
150 API変換DBアクセス部(アクセス部)
10a 保守運用者
20 API変換DB(記憶部,記憶手段)
21~23 API定義
24,25 API変換プログラム
30 管理対象システム
31~33 サーバ(制御対象サーバ)
110 外部システムIF部
120 API版数管理部
130 管理対象システムIF部
140 API変換部
150 API変換DBアクセス部(アクセス部)
Claims (4)
- サービス提供システムが提供するAPI(Application Program Interface)を記述する定義書であるAPI定義、およびAPI変換機能のためのAPI変換プログラムを格納する記憶部にアクセスするアクセス部と、
APIを用いて制御可能な複数の制御対象サーバからなる管理対象システムのAPIの版数保持していない場合、前記管理対象システムからAPIの版数を取得するとともに、前記サービス提供システムのAPIの版数と前記管理対象システムのAPIの版数とが異なる場合、API変換を指示するAPI版数管理部と、
前記API版数管理部からのAPI変換指示を受けて、前記アクセス部により前記API定義、および前記API変換プログラムを取得して、受信したAPIを新版数に変換し、前記API変換プログラムが取得できなかった場合、取得した新旧の版数の前記API定義の差分を抽出し、新版数の前記API定義に新規パラメータが存在する場合、前記サービス提供システムに不足情報を要求するとともに、前記サービス提供システムから取得した前記不足情報と、前記記憶部から取得した新旧の版数の前記API定義とに基づいて、新版数の前記API変換プログラムを生成し、前記API定義、および前記API変換プログラムに基づいて、受信したAPIを新版数に変換するAPI変換部と、を備える
ことを特徴とするAPI変換装置。 - 前記アクセス部は、
生成した新版数の前記API変換プログラムを前記記憶部に登録する
ことを特徴とする請求項1に記載のAPI変換装置。 - API変換装置が実行するAPI変換方法であって、
アクセス部が、サービス提供システムが提供するAPI(Application Program Interface)を記述する定義書であるAPI定義、およびAPI変換機能のためのAPI変換プログラムを格納する記憶部にアクセスする工程と、
API版数管理部が、APIを用いて制御可能な複数の制御対象サーバからなる管理対象システムのAPIの版数保持していない場合、前記管理対象システムからAPIの版数を取得するとともに、前記サービス提供システムのAPIの版数と前記管理対象システムのAPIの版数とが異なる場合、API変換を指示する工程と、
API変換部が、前記API版数管理部からのAPI変換指示を受けて、前記アクセス部により前記API定義、および前記API変換プログラムを取得して、受信したAPIを新版数に変換し、前記API変換プログラムが取得できなかった場合、取得した新旧の版数の前記API定義の差分を抽出し、新版数の前記API定義に新規パラメータが存在する場合、前記サービス提供システムに不足情報を要求するとともに、前記サービス提供システムから取得した前記不足情報と、前記記憶部から取得した新旧の版数の前記API定義とに基づいて、新版数の前記API変換プログラムを生成し、前記API定義、および前記API変換プログラムに基づいて、受信したAPIを新版数に変換する工程と、有する
ことを特徴とするAPI変換方法。 - API(Application Program Interface)サービスを提供するサービス提供システムと、APIを用いて制御可能な複数の制御対象サーバからなる管理対象システムと、の間に設けられるAPI変換装置としてのコンピュータを、
サービス提供システムが提供するAPIを記述する定義書であるAPI定義、およびAPI変換機能のためのAPI変換プログラムを格納する記憶手段にアクセスするアクセス手順、
APIを用いて制御可能な複数の制御対象サーバからなる管理対象システムのAPIの版数保持していない場合、前記管理対象システムからAPIの版数を取得するとともに、前記サービス提供システムのAPIの版数と前記管理対象システムのAPIの版数とが異なる場合、API変換を指示するAPI版数管理手順、
前記API版数管理手順によるAPI変換指示を受けて、前記アクセス手順により前記API定義、および前記API変換プログラムを取得して、受信したAPIを新版数に変換し、前記API変換プログラムが取得できなかった場合、取得した新旧の版数の前記API定義の差分を抽出し、新版数の前記API定義に新規パラメータが存在する場合、前記サービス提供システムに不足情報を要求するとともに、前記サービス提供システムから取得した前記不足情報と、前記記憶手段から取得した新旧の版数の前記API定義とに基づいて、新版数の前記API変換プログラムを生成し、前記API定義、および前記API変換プログラムに基づいて、受信したAPIを新版数に変換するAPI変換手順、
を実行させるためのプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/024771 WO2020255389A1 (ja) | 2019-06-21 | 2019-06-21 | Api変換装置、api変換方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2020255389A1 JPWO2020255389A1 (ja) | 2020-12-24 |
JP7201087B2 true JP7201087B2 (ja) | 2023-01-10 |
Family
ID=74040408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021528608A Active JP7201087B2 (ja) | 2019-06-21 | 2019-06-21 | Api変換装置、api変換方法、およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11822982B2 (ja) |
JP (1) | JP7201087B2 (ja) |
WO (1) | WO2020255389A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10761908B2 (en) * | 2018-10-30 | 2020-09-01 | Stoplight, Inc. | Distillation of various application interface data structures distributed over distinctive repositories to form a data source of consolidated application interface data components |
US10970136B1 (en) * | 2019-10-03 | 2021-04-06 | Caret Holdings, Inc. | Adaptive application version integration support |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008293152A (ja) | 2007-05-23 | 2008-12-04 | Hitachi Ltd | Webシステムの連携方法および装置 |
JP2015228086A (ja) | 2014-05-30 | 2015-12-17 | 株式会社リコー | 情報処理システム、情報処理装置、情報処理方法およびプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006164191A (ja) * | 2004-12-10 | 2006-06-22 | Matsushita Electric Ind Co Ltd | プログラム取得実行装置、プログラム取得実行方法、プログラム取得実行プログラム記録媒体、およびプログラム取得実行プログラム |
GB0619147D0 (en) * | 2006-09-28 | 2006-11-08 | Ibm | A method, apparatus or software for managing software component version identifications in a componentised software system |
US9910881B1 (en) * | 2013-12-12 | 2018-03-06 | Amazon Technologies, Inc. | Maintaining versions of control plane data for a network-based service control plane |
-
2019
- 2019-06-21 US US17/619,113 patent/US11822982B2/en active Active
- 2019-06-21 WO PCT/JP2019/024771 patent/WO2020255389A1/ja active Application Filing
- 2019-06-21 JP JP2021528608A patent/JP7201087B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008293152A (ja) | 2007-05-23 | 2008-12-04 | Hitachi Ltd | Webシステムの連携方法および装置 |
JP2015228086A (ja) | 2014-05-30 | 2015-12-17 | 株式会社リコー | 情報処理システム、情報処理装置、情報処理方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
US11822982B2 (en) | 2023-11-21 |
WO2020255389A1 (ja) | 2020-12-24 |
US20220276916A1 (en) | 2022-09-01 |
JPWO2020255389A1 (ja) | 2020-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3531306B1 (en) | System for building and modeling web pages | |
US8943496B2 (en) | Providing a hosted appliance and migrating the appliance to an on-premise environment | |
US10158701B2 (en) | Method and system for providing a state model of an application program | |
US9146755B2 (en) | System and method for transporting platform independent power configuration parameters | |
US9851986B2 (en) | Application configuration in a virtual environment | |
US10417027B1 (en) | Virtual machine proxy server for hyper-V image backup and recovery | |
WO2022015855A1 (en) | Cloud data fake platform and saas orchestration | |
US9032367B2 (en) | Providing a demo appliance and migrating the demo appliance to a production appliance | |
US20130198637A1 (en) | Cloud service dashboard | |
JP7097958B2 (ja) | 自動ユニバーサルコネクタパッケージを使用してクラウドアプリケーションをクラウドサービスブローカプラットフォームに統合するためのシステムおよび方法 | |
JP7201087B2 (ja) | Api変換装置、api変換方法、およびプログラム | |
Von Suchodoletz et al. | Towards emulation-as-a-service: cloud services for versatile digital object access | |
US10834201B2 (en) | Device identification and reconfiguration in a network | |
Hashizume et al. | Cloud service model patterns | |
CN114416169A (zh) | 基于微前端的数据处理方法、介质、装置和计算设备 | |
KR100693346B1 (ko) | 사용자별 맞춤형 가상 컴퓨팅 환경 제공 시스템 및 그 방법 | |
Liebetraut et al. | Emulation-as-a-service-the past in the cloud | |
US20200099749A1 (en) | Providing device specific security measures in the internet of things | |
US20140189643A1 (en) | Methods for creating and providing a virtual environment and devices thereof | |
JP5951702B2 (ja) | ファイルシステム、秘密分散サーバ、ファイル管理方法及びプログラム | |
JP7332950B2 (ja) | サービス連携支援装置、サービス連携支援方法、および、サービス連携支援プログラム | |
JP6852424B2 (ja) | アプリケーションサーバ、その方法及びプログラム | |
Ludwig et al. | Implications of security mechanisms and Service Level Agreements (SLAs) of Platform as a Service (PaaS) clouds for geoprocessing services | |
JP7284696B2 (ja) | 仮想デスクトップ提供システム | |
KR100988111B1 (ko) | 터미널 환경의 서버 기반 컴퓨팅 시스템에서 많은 사용자가하나의 리소스 공유로 어플리케이션 실행이 불가능한 경우리소스 가상화를 통해 이를 실행하는 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211109 |
|
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: 20221122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221205 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7201087 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |