JP2018133044A - WebAPI実行フロー生成装置およびWebAPI実行フロー生成方法 - Google Patents

WebAPI実行フロー生成装置およびWebAPI実行フロー生成方法 Download PDF

Info

Publication number
JP2018133044A
JP2018133044A JP2017028190A JP2017028190A JP2018133044A JP 2018133044 A JP2018133044 A JP 2018133044A JP 2017028190 A JP2017028190 A JP 2017028190A JP 2017028190 A JP2017028190 A JP 2017028190A JP 2018133044 A JP2018133044 A JP 2018133044A
Authority
JP
Japan
Prior art keywords
parameter
webapi
web api
web
api
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017028190A
Other languages
English (en)
Inventor
一貴 平石
Kazutaka Hiraishi
一貴 平石
直樹 武
Naoki Take
直樹 武
裕司 副島
Yuji Soejima
裕司 副島
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 JP2017028190A priority Critical patent/JP2018133044A/ja
Publication of JP2018133044A publication Critical patent/JP2018133044A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】WebAPIの実行順序やパラメータ間の関係を可視化したWebAPI実行フローを生成する。【解決手段】WebAPI実行フロー生成装置は、WebAPI抽出部20とWebAPI実行フロー生成部30とWebAPI実行フロー補正部40とを有する。WebAPI抽出部20は、Webアプリ概要書16からキーワードを抽出して関連するWebAPIを抽出する。WebAPI実行フロー生成部30は、抽出されたWebAPIのパラメータが一致するWebAPIを抽出し、WebAPI実行フロー補正部40は、WebAPIのパラメータに類似するパラメータをもつWebAPIを抽出し、WebAPI実行フロー生成部30がWebAPIの実行順序を判定してWebAPI実行フローを生成する。【選択図】図1

Description

本発明は、WebAPI(Web Application Programming Interface)の実行フローを生成するWebAPI実行フロー生成装置およびWebAPI実行フロー生成方法に関する。
多数の事業者が、自社が提供しているサービスの機能を他社がインターネット経由で利用できるようにWebAPI(API)を公開している。WebAPIの例として、通信販売事業者が提供する商品検索や在庫状況取得のWebAPI、SNS(Social Networking Service)サイトが提供するメッセージ投稿やキーワードのトレンドランキング取得のWebAPIなどがある。他にも、クラウドサービス事業者のVM(Virtual Machine)の生成・起動のWebAPIやデータベースにアクセスするWebAPIなどがある。
Webアプリ開発者は、公開されたWebAPIを利用することで、短期間・低コストで、多種多様なWebアプリを開発できるようになる。1つのWebAPIを呼出して利用可能なサービスが存在する一方、複数のWebAPIを順次呼出して利用可能となるサービスも存在する。後者の場合、Webアプリ開発者は、WebAPIの仕様書を読んで理解し、WebAPIの実行フローを把握する必要がある。WebAPIの実行フローとは、サービス利用に必要なWebAPIを呼出す順序であり、呼出すWebAPIのリクエストパラメータとレスポンスパラメータとの関係を含んだWebAPIとその順序関係である。
図11は、Webアプリ開発者がWebAPIの実行フローを把握するために参照するWebAPI仕様書921を例示する図である。WebAPI仕様書921はRunInstancesという1つのWebAPIを説明する文書であり、APIの概要説明902と、リクエストパラメータの説明903と、レスポンスパラメータの説明904とが記載されている。リクエストパラメータの説明903とレスポンスパラメータの説明904とには、各パラメータの名称や型を含めた説明が記載されている。
図12は、Webアプリ開発者がWebAPIの実行フローを把握するために行っている作業を説明するための図である。Webアプリ開発者は、利用したいサービスを決めて、各サービスごとにWebAPI仕様書921を参考に、当該サービスを利用するのに必要なAPI922を抽出する作業911を行う。次に、Webアプリ開発者は、抽出したAPI922の概要説明902やリクエストパラメータの説明903、レスポンスパラメータの説明904を参考にして、抽出したAPI922の実行順序923を導出する作業912を行う。
続いて、Webアプリ開発者は、リクエストパラメータを生成するAPIやレスポンスパラメータを利用するためのAPIなど、不足するAPI924を抽出する作業913を行う。さらに実行順序923をAPI924を含めた実行順序925に補正する作業914を行う。Webアプリ開発者は、不足するAPIを抽出する作業913と実行順序を補正する作業914を繰り返して行う場合もある。
代表的なクラウドサービスであるAmazon EC2(Elastic Compute Cloud)(「Amazon」は登録商標)は199のAPIを提供しており、その全てを把握することは容易ではない。また、異なる事業者が提供するWebAPIを利用するとなると、さらにWebアプリ開発者の負担が大きくなる。Webアプリ開発者が行うWebAPI実行フローの作成作業を自動化または作業負担を軽減化することが求められている。
APIまたは広く作業手順を自動導出する既存の技術として、特許文献1と非特許文献1とに記載の技術がある。非特許文献1には、ネットワーク運用者が記録した障害対応のログ情報から、ネットワーク機器の操作などの作業手順を自動生成する技術が記載されている。特許文献1には、複数のワークフローシステムがWebサービスを介して利用可能である場合に、複数のWebサービスに共通のインタフェース定義とWebサービスアプリケーションを生成する技術が記載されている。
特開2005−346408号公報
石橋圭介、林孝典、塩本公平、"機械学習・データ分析によるネットワーク設計・運用高度化"、NTT技術ジャーナル、2015.12、pp.29-33.
しかしながら、非特許文献1に記載の自動生成技術には、ログ情報が必要であり、その生成には一定数のシナリオが必要であるが、シナリオを導出する手段は開示されていない。特許文献1に記載の生成技術では、当該ワークフローシステムの連携情報を入力する必要があるが、連携情報を導出する手段は開示されていない。よって、既存の技術では、WebAPI実行フローの作成作業を自動化することやWebアプリ開発者の作業負担を軽減することはできなかった。
本発明は、上記の問題を解決するものであり、WebAPIの実行順序やパラメータ間の関係を含んだWebAPI実行フローを生成することができるWebAPI実行フロー生成装置およびWebAPI実行フロー生成方法を提供することを課題とする。
上記課題を解決するための手段として、請求項1に係る発明は、Webサービスの利用に必要なWebAPIを抽出するWebAPI実行フロー生成装置であって、前記Webサービスに関するキーワードと前記WebAPIとを関連付けたWebAPI概要データベースを備え、入力された前記キーワードに関連するWebAPIを関連WebAPIとして前記WebAPI概要データベースから抽出するWebAPI抽出部と、各WebAPIに対応づけて、リクエストパラメータかレスポンスパラメータかの種別と、パラメータ名称と、パラメータ型とを記憶したWebAPIパラメータデータベースを備え、前記関連WebAPIに含まれるWebAPIのリクエストパラメータのパラメータ名称とパラメータ型とそれぞれ同一であるパラメータ名称とパラメータ型のレスポンスパラメータをもつWebAPIと、前記関連WebAPIに含まれるWebAPIのレスポンスパラメータのパラメータ名称とパラメータ型とそれぞれ同一であるパラメータ名称とパラメータ型のリクエストパラメータをもつWebAPIとを前記WebAPIパラメータデータベースから抽出し、当該WebAPIと前記関連WebAPIとの和である抽出WebAPIの中で1つのWebAPIのレスポンスパラメータと別のWebAPIのリクエストパラメータのパラメータ名称とパラメータ型とがそれぞれ同一であることで当該2つのWebAPIに前後関係があると判断し、前記抽出WebAPIの実行順序を決定するWebAPI実行フロー生成部とを有することを特徴とするWebAPI実行フロー生成装置である。
上記課題を解決するための手段として、請求項5に係る発明は、Webサービスの利用に必要なWebAPIを抽出するWebAPI実行フロー生成装置のWebAPI実行フロー生成方法であって、前記WebAPI実行フロー生成装置は、前記Webサービスに関するキーワードと前記WebAPIとを関連付けたWebAPI概要データベース、および、各WebAPIに対応づけて、リクエストパラメータかレスポンスパラメータかの種別と、パラメータ名称と、パラメータ型とを記憶したWebAPIパラメータデータベースを備えており、入力された前記キーワードに関連するWebAPIを関連WebAPIとして前記WebAPI概要データベースから抽出するWebAPI抽出ステップと、前記抽出された関連WebAPIに含まれるWebAPIのリクエストパラメータのパラメータ名称とパラメータ型とそれぞれ同一であるパラメータ名称とパラメータ型のレスポンスパラメータをもつWebAPIと、前記抽出された関連WebAPIに含まれるWebAPIのレスポンスパラメータのパラメータ名称とパラメータ型とそれぞれ同一であるパラメータ名称とパラメータ型のリクエストパラメータをもつWebAPIとを前記WebAPIパラメータデータベースから抽出し、当該WebAPIと前記抽出された関連WebAPIとの和である抽出WebAPIの中で1つのWebAPIのレスポンスパラメータと別のWebAPIのリクエストパラメータのパラメータ名称とパラメータ型とがそれぞれ同一であることで当該2つのWebAPIに前後関係があると判断し、前記抽出WebAPIの実行順序を決定するWebAPI実行フロー生成ステップとを実行することを特徴とするWebAPI実行フロー生成方法である。
かかる構成によれば、Webサービスを利用するWebアプリがWebサービスを呼出すのに用いるWebAPIと、一致するレスポンスパラメータとリクエストパラメータから実行順序とを抽出することができる。これによりWebアプリ開発者がWebAPIの仕様書を読み解く時間を減らすことができ、Webアプリの開発期間を短縮して開発コストを削減できる。また、Webサービスに精通していないWebアプリ開発者であっても、必要なWebAPIを把握することができる。
上記課題を解決するための手段として、請求項2に係る発明は、前記WebAPIのパラメータと当該パラメータに類似するパラメータをもつWebAPIとを関連付けた類似リクエスト/レスポンスパラメータデータベースを備え、前記抽出WebAPIの中でパラメータ名称とパラメータ型が同一でありかつ種別が異なるパラメータをもつWebAPIが存在しないパラメータをもつWebAPIである不一致WebAPIが存在した場合に、前記不一致WebAPIのパラメータに類似するパラメータをもつWebAPIを類似パラメータ保有WebAPIとして前記類似リクエスト/レスポンスパラメータデータベースから抽出し、1つのWebAPIのレスポンスパラメータと別のWebAPIのリクエストパラメータとが類似することで当該2つのWebAPIに前後関係があると判断するWebAPI実行フロー補正部をさらに有し、前記WebAPI実行フロー生成部は、前記抽出WebAPIにさらに前記類似パラメータ保有WebAPIを加えて新規抽出WebAPIとし、前記WebAPI実行フロー補正部が判断した前後関係と合わせて前記新規抽出WebAPIの実行順序を決定することを特徴とする請求項1に記載のWebAPI実行フロー生成装置である。
かかる構成によれば、類似するパラメータを考慮したより多くのWebAPIを抽出することができ、必要なWebAPIの抽出漏れを減らすことができる。
上記課題を解決するための手段として、請求項3に係る発明は、前記WebAPI実行フロー補正部は、前記レスポンスパラメータと前記リクエストパラメータとの類似度を、前記レスポンスパラメータまたは前記リクエストパラメータの名称の類似度、前記Webサービスの仕様書に記載してある前記レスポンスパラメータまたは前記リクエストパラメータの記述の類似度、前記レスポンスパラメータまたは前記リクエストパラメータの型の類似度の1つまたはその組合せにより算出することを特徴とする請求項2に記載のWebAPI実行フロー生成装置である。
かかる構成によれば、パラメータの類似度を所定の項目を用いて算出することができる。Webアプリ開発者の要求に応じた類似度を用いてWebAPIを抽出することができる。
上記課題を解決するための手段として、請求項4に係る発明は、前記WebAPI抽出部は、前記Webサービスに関連する用語と当該用語の類義語とを関連付けた類義語データベースをさらに備え、前記Webサービスを利用するWebアプリの設計概要書から前記用語を抽出し、前記用語の類義語を前記類義語データベースから抽出し、前記類義語を前記キーワードとして前記WebAPI概要データベースから前記関連WebAPIを抽出することを特徴とする請求項1〜3のいずれか1項に記載のWebAPI実行フロー生成装置である。
かかる構成によれば、Webアプリの設計概要書からWebAPIを抽出することができる。Webアプリ開発者は、Webアプリが利用するWebサービスのキーワードを検討することがなくなるので、さらに開発期間を減らすことができる。
本発明によれば、WebAPIの実行順序やパラメータ間の関係を含んだWebAPI実行フローを生成することができるWebAPI実行フロー生成装置およびWebAPI実行フロー生成方法を提供することができる。
本実施形態に係るWebAPI実行フロー生成装置の全体構成を例示する図である。 本実施形態に係る類義語DBのデータ構成を例示する図である。 本実施形態に係るWebAPI概要DBのデータ構成を例示する図である。 本実施形態に係るWebAPIパラメータDBのデータ構成を例示する図である。 本実施形態に係る類似リクエスト/レスポンスパラメータDBのデータ構成を例示する図である。 本実施形態に係るパラメータの類似度の算出方法を説明するための図である。 本実施形態に係るWebAPI実行フローの生成処理を例示するフローチャートである。 リクエスト/レスポンスパラメータ関係性判定部のパラメータペアの検出処理を説明するための図である。 WebAPI実行順序判定部のAPI実行順決定処理を説明するための図である。 WebAPI実行順序判定部が生成するWebAPI実行フローを例示する図である。 Webアプリ開発者がWebAPIの実行フローを把握するために参照するWebAPI仕様書を例示する図である。 Webアプリ開発者がWebAPIの実行フローを把握するために行っている作業を説明するための図である。
以下、本発明の実施形態であるWebAPI実行フロー生成装置を、図面を参照しつつ説明する。
≪WebAPI実行フロー生成装置の全体構成≫
図1は、本実施形態に係るWebAPI実行フロー生成装置10の全体構成を例示する図である。WebAPI実行フロー生成装置10は、CPU(Central Processing Unit)から構成される制御部11、ハードディスクやRAM(Random Access Memory)等で構成される記憶部12、不図示のディスプレイ、キーボードなどから構成される。WebAPI実行フロー生成装置10は、記憶部12に記憶され、以下に説明する各機能部を実現するプログラムを制御部11が実行することにより、WebAPI実行フロー17を生成する。WebAPI実行フロー生成装置10は、WebAPI抽出部20と、WebAPI実行フロー生成部30と、WebAPI実行フロー補正部40とを備える。
≪WebAPI抽出部の構成≫
WebAPI抽出部20は、Webアプリ概要書(Webアプリの設計概要書)16を解析し、Webアプリが利用するサービスの呼出しに必要なWebAPIを抽出する。WebAPI抽出部20は、キーワード検索部21と、類義語検索部22と、WebAPI判定部23と、類義語DB(Database)24とWebAPI概要DB25とを備える。キーワード検索部21と類義語検索部22とWebAPI判定部23とは制御部11の一部として機能し、類義語DB24とWebAPI概要DB25とは記憶部12に格納される。
キーワード検索部21は、Webアプリ概要書16を解析し、Webアプリが呼出すサービスを抽出し、そのサービスに関連するキーワードを抽出する。
類義語検索部22は、類義語DB24(後述する図2参照)を用いて、キーワード検索部21が抽出したキーワードに類似する類似キーワードを抽出する。
図2は、本実施形態に係る類義語DB24のデータ構成を例示する図である。類義語DB24は、例えばテーブル形式のデータであって、キーワード241の列と類義語242の列とからなる。1つの行(レコード)は、1つのキーワード241と、当該キーワードに対する1つまたは複数の類義語242とを示す。
図1の説明に戻り、WebAPI判定部23は、WebAPI概要DB25(後述する図3参照)を用いて、類義語検索部22が抽出した類似キーワードから関連するWebAPIを抽出する。
図3は、本実施形態に係るWebAPI概要DB25のデータ構成を例示する図である。WebAPI概要DB25は、例えばテーブル形式のデータであって、キーワード251の列とWebAPI252の列とからなる。1つのレコードは、1つのキーワード251に関連する1つまたは複数のWebAPI252を示す。WebAPI概要DB25は、WebAPI仕様書921(図11参照)の概要説明902からキーワードとなる技術用語(プログラミング関連用語)を取り出して、これをキーワード251とすることで作成できる。
≪WebAPI実行フロー生成部の構成≫
WebAPI実行フロー生成部30は、WebAPI抽出部20が抽出したWebAPIからWebAPI実行フロー17を生成する。WebAPI実行フロー生成部30は、リクエスト/レスポンスパラメータ関係性判定部31と、WebAPI実行順序判定部32と、WebAPIパラメータDB33とを備える。リクエスト/レスポンスパラメータ関係性判定部31とWebAPI実行順序判定部32とは制御部11の一部として機能し、WebAPIパラメータDB33は記憶部12に格納される。
リクエスト/レスポンスパラメータ関係性判定部31は、WebAPI抽出部20が抽出したAPIの中で、レスポンスパラメータとリクエストパラメータとが一致するパラメータの組合せ(パラメータペア、後述する図8(b)参照)を検出する。リクエスト/レスポンスパラメータ関係性判定部31は、WebAPIパラメータDB33(後述する図4参照)を用いてパラメータペアを検出する。また、リクエスト/レスポンスパラメータ関係性判定部31は、パラメータペアを検出できなかった(一致するパラメータがなかった)パラメータ(不一致パラメータ)をWebAPI実行フロー補正部40に送信する。
図4は、本実施形態に係るWebAPIパラメータDB33のデータ構成を例示する図である。WebAPIパラメータDB33は、例えばテーブル形式のデータであって、WebAPI331の列、種別332の列、パラメータ333の列、型334の列、記述335の列からなる。1つのレコードは、1つのパラメータに関連する情報を含む。
WebAPI331は、当該パラメータをもつWebAPIの名称である。
種別332は、当該パラメータがWebAPI331のリクエストパラメータであるかレスポンスパラメータであるかを示し、「入」ならばリクエストパラメータ、「出」ならばレスポンスパラメータである。
パラメータ333は、当該パラメータの名称(パラメータ名称)である。
型334は、当該パラメータの型(パラメータ型)である。
記述335は、当該パラメータの説明である。
WebAPIパラメータDB33は、WebAPI仕様書921(図11参照)のリクエストパラメータの説明903と、レスポンスパラメータの説明904から作成することができる。
図1の説明に戻り、WebAPI実行順序判定部32は、リクエスト/レスポンスパラメータ関係性判定部31が検出したパラメータペアに基づいて、WebAPIの実行順序(呼出し順序)を判定し、WebAPI実行フロー17を生成する。また、不一致パラメータがあった場合には、WebAPI実行フロー補正部40が生成する類似パラメータペア(後述する図9(d)参照)も取り入れて、WebAPI実行フロー17を生成する。
≪WebAPI実行フロー補正部の構成≫
WebAPI実行フロー補正部40は、WebAPI実行フロー生成部30が検出した不一致パラメータについて、類似度の高いパラメータをもつWebAPIを抽出し、類似パラメータペアを生成する。WebAPI実行フロー補正部40は、リクエスト/レスポンスパラメータ類似度判定部41と、WebAPI実行順序補正部42と、類似リクエスト/レスポンスパラメータDB43とを備える。リクエスト/レスポンスパラメータ類似度判定部41とWebAPI実行順序補正部42とは制御部11の一部として機能し、類似リクエスト/レスポンスパラメータDB43は記憶部12に格納される。
リクエスト/レスポンスパラメータ類似度判定部41は、WebAPI実行フロー生成部30が検出した不一致パラメータについて、類似するパラメータをもつAPIとそのパラメータを検索する。リクエスト/レスポンスパラメータ類似度判定部41は、類似リクエスト/レスポンスパラメータDB43(後述する図5参照)を用いて類似パラメータを検索する。
図5は、本実施形態に係る類似リクエスト/レスポンスパラメータDB43のデータ構成を例示する図である。類似リクエスト/レスポンスパラメータDB43は、例えばテーブル形式のデータであって、パラメータ431の列と、類似パラメータ432の列とからなる。1つのレコードは、1つのパラメータに類似するパラメータの情報を含む。
パラメータ431は、当該パラメータを示す情報であり、当該パラメータをもつAPIの名称、リクエストパラメータかレスポンスパラメータかの種別、パラメータの名称を含んでいる。
類似パラメータ432は、当該パラメータに類似するパラメータの情報であり、類似するパラメータをもつAPIの名称、リクエストパラメータかレスポンスパラメータかの種別、類似度、名称を含んでいる。類似パラメータ432は、複数の類似したパラメータの情報を含む場合もある。
類似リクエスト/レスポンスパラメータDB43を生成するには、パラメータ間の類似度を算出して、所定の値より高い類似度のパラメータのペアを類似リクエスト/レスポンスパラメータDB43に格納することで生成できる。パラメータのペアは、リクエストパラメータとレスポンスパラメータの組み合わせである。2つのパラメータの類似度は、パラメータの名称、パラメータの型、パラメータの記述から算出する。
図6は、本実施形態に係るパラメータの類似度の算出方法を説明するための図である。図6(a)は、APIの1つであるCreateSecurityGroupのWebAPI仕様書611の一部であり、図6(b)は、APIの1つであるRunInstancesのWebAPI仕様書613の一部である。CreateSecurityGroupのレスポンスパラメータであるgroupId612とRunInstancesのリクエストパラメータであるSecurityGroupId614との類似度の算出方法を説明する。
パラメータ名称の類似度については、名称を単語に分解して算出する。groupIdはgroupとidとに分解でき、SecurityGroupIdはsecurityとgroupとidとに分解でき、この単語のグループ間の類似度をパラメータ名称の類似度とする。単語のグループ間の類似度算出方法としては、コサイン類似度が代表的であるが、単語の重複度などの指標を用いてもよいし、さらに単語の順序を考慮して算出してもよい。
パラメータ型の類似度は、型が一致する、上下関係(4バイト整数と2バイト整数など)、一方が他方の一部である関係(整数と整数配列など)などの関係から算出する。パラメータ記述の類似度は、パラメータ記述にある技術用語のグループ間の類似度としてもよいし、さらに技術用語の出現順序を考慮して類似度を算出してもよい。例えば、groupId612の記述では、(id, security, group)を技術用語のグループとする。パラメータ名称、パラメータ型、パラメータ記述のそれぞれの類似度から所定の方法でパラメータの類似度が算出できる。
≪全体処理≫
図7は、本実施形態に係るWebAPI実行フローの生成処理を例示するフローチャートである。図7を参照しながら、WebAPI実行フロー生成装置10が実行するWebAPI実行フローの生成処理を説明する。
ステップS71において、キーワード検索部21が入力されたWebアプリ概要書16を解析し、利用するサービスごとにキーワードを抽出して、類義語検索部22に送信する。Webアプリ概要書16は、所定の形式でサービス利用の記載を含んでおり、キーワード検索部21は、この記載から技術用語を抽出してキーワードとする。
以下では、Webアプリ概要書16に記載されたサービスが1つだと仮定して、WebAPI実行フロー17を生成するまでの処理を説明する。複数のサービスが含まれていた場合には、以降の処理を繰り返し実行して、各々のサービスごとにWebAPI実行フロー17を生成する。
ステップS72において、類義語検索部22がキーワードを受信し、類似キーワードを抽出して、WebAPI判定部23に送信する。類義語検索部22は、類義語DB24(図2参照)を用いて類似キーワードを抽出する。類義語検索部22は、受信した各々のキーワードについて、キーワード241と一致する類義語242を検索し、検索結果の類義語の和をとって類似キーワードとする。
ステップS73において、WebAPI判定部23が、受信した類似キーワードから関連するAPIを抽出して、リクエスト/レスポンスパラメータ関係性判定部31に送信する。WebAPI判定部23は、WebAPI概要DB25(図3参照)を用いてAPIを抽出する。WebAPI判定部23は、受信した各々の類似キーワードについて、キーワード251と一致するWebAPI252を検索し、検索結果のWebAPIの和をとって関連するWebAPI(API)を抽出する。
ステップS74において、リクエスト/レスポンスパラメータ関係性判定部31が受信したAPIのリクエストパラメータとレスポンスパラメータの中で一致するパラメータペアを検出して、WebAPI実行順序判定部32に送信する。リクエスト/レスポンスパラメータ関係性判定部31は、パラメータが一致するか否かをWebAPIパラメータDB33を用いて判断する。さらに、受信したAPIのリクエストパラメータとレスポンスパラメータに一致するパラメータをWebAPIパラメータDB33を用いて検索して、パラメータペアとしてWebAPI実行順序判定部32に送信する。図8は、リクエスト/レスポンスパラメータ関係性判定部31のパラメータペアの検出処理を説明するための図である。以下、図8を参照してリクエスト/レスポンスパラメータ関係性判定部31の処理を説明する。
図8(a)は、リクエスト/レスポンスパラメータ関係性判定部31が受信した3つのAPIを模式的に示した図である。1番目のAPIの記述601は、リクエストパラメータが左の矩形に示され、レスポンスパラメータが右の矩形に示され、これら矩形の間の矩形にAPI名称が示されている。2番目のAPIの記述602と3番目のAPIの記述603についても同様である。
図8(b)は、図8(a)に示された3つのAPIから検出された3つのパラメータペアを示した図である。パラメータペア604は、API−FのレスポンスパラメータParam−8と、API−BのリクエストパラメータParam−8とが一致していることを示している。パラメータペア605とパラメータペア606についても同様である。
図8(c)は、受信したAPIではなく、リクエスト/レスポンスパラメータ関係性判定部31がWebAPIパラメータDB33を用いて検索して新たに得たAPIであるAPI−L607を示した図である。リクエスト/レスポンスパラメータ関係性判定部31は、例えば、API−F603のリクエストパラメータParam−25に一致するパラメータを検索することで、API−L607のレスポンスパラメータのParam−25を得る。
図8(d)は、API−L607が検索されたことによる新たに検出されたパラメータペアを示した図である。パラメータペア608は、API−F603のリクエストパラメータParam−25とAPI−L607のレスポンスパラメータのParam−25とが一致していることを示している。さらに、パラメータペア609、パラメータペア600が検出される。
リクエスト/レスポンスパラメータ関係性判定部31は、WebAPIパラメータDB33(図4参照)を用いて、一致するパラメータを検索する。詳しくは、種別332が「出」と「入」の組み合わせとなり、パラメータ333と型334とが一致するレコードを検索して、パラメータペアを抽出する。パラメータペアにより、2つのAPIの前後関係が判明する。つまり、一致するパラメータがレスポンスパラメータであるAPIが前で、一致するパラメータがリクエストパラメータであるAPIが後となる前後関係が判明する。
図7に戻り、ステップS75において、リクエスト/レスポンスパラメータ関係性判定部31は、不一致パラメータが存在するか否かを判定し、存在すればステップS76に進み、存在しなければステップS79に進む。不一致パラメータは、リクエスト/レスポンスパラメータ関係性判定部31が受信したAPIとWebAPIパラメータDB33を検索して得たAPIのパラメータから検出する。
ステップS76において、リクエスト/レスポンスパラメータ関係性判定部31は、不一致パラメータをそれをもつAPIとともにリクエスト/レスポンスパラメータ類似度判定部41に送信する。
ステップS77において、リクエスト/レスポンスパラメータ類似度判定部41は、受信した不一致パラメータに類似するパラメータを検索し、結果をWebAPI実行順序補正部42にそれをもつAPIとともに送信する。詳しくは、リクエスト/レスポンスパラメータ類似度判定部41は、類似リクエスト/レスポンスパラメータDB43(図5参照)の中で不一致パラメータに一致するパラメータ431のレコードを検索し、類似パラメータ432を得る。
ステップS78において、WebAPI実行順序補正部42は、受信した類似パラメータとそれをもつAPIとをパラメータペア(図8(b)参照)と同じ形式にして、類似パラメータペアとしてWebAPI実行順序判定部32に送信する。パラメータペアと同じ形式とは、(API名,そのレスポンスパラメータ,API名,そのリクエストパラメータ)であって、APIの実行順序(呼出し順序)の関係を含んでいる。類似パラメータペアもパラメータペアと同様に、前後関係を含んでいる。
ステップS79において、パラメータペアと類似パラメータに基づいてWebAPI実行順序判定部32がWebAPI実行フロー17を生成する。図9はWebAPI実行順序判定部32のAPI実行順決定処理を説明するための図である。図9(a)は、図8(b)と図8(d)とを合わせた図であり、リクエスト/レスポンスパラメータ関係性判定部31が検出したパラメータペアである。
図9(b)は、図9(a)の6つのパラメータペア(604〜606、608、609、600)から得られるAPIの実行順序を示す図である。パラメータペア604から、API−FのレスポンスパラメータがAPI−Bのリクエストパラメータに一致していることが分かり、API−FがAPI−Bより前であるという実行順序651が得られる。同様に、パラメータペア605から再び実行順序651が得られ、パラメータペア606から実行順序652が得られる。さらに、パラメータペア608から実行順序653が得られ、パラメータペア609とパラメータペア600から実行順序654が得られる。
図9(c)は、4つの実行順序(651〜654)から得られる全体の実行順序655を示す図である。4つの実行順序(651〜654)を組み合わせることで、WebAPI実行順序判定部32は、API−Bの前にAPI−Fがあり、その前にAPI−Lがあり、さらにその前にAPI−Cがあるという実行順序が得られる。
図9(d)は、WebAPI実行順序補正部42が送信した類似パラメータペア656を示した図であり、API−GのリクエストパラメータParam−13’が API−BのレスポンスパラメータParam−13に類似していることを示す。図9(e)は、類似パラメータペア656から得られるAPIの実行順序を示す図である。パラメータペアのときと同様に、類似パラメータペア656からAPI−BがAPI−Gより前であるという実行順序657が得られる。
図9(f)は、実行順序655と実行順序657から得られる全体の実行順序658を示す図である。以上のようにして、WebAPI実行順序判定部32は、類似パラメータを考慮したAPIの実行順序を生成する。
続いて、WebAPI実行順序判定部32は、実行順序に含まれるAPIとパラメータペアと類似パラメータペアの関係を図にしたWebAPI実行フロー17を生成する。図10は、WebAPI実行順序判定部32が生成するWebAPI実行フロー17を例示する図である。図10に記載のWebAPI実行フロー17は、Amazon EC2で提供されるWebAPIを例として、APIの実行順序、パラメータペアと類似パラメータペアによるパラメータ間の対応関係を示している。APIは図8(a)と同様に3つの矩形で示される。但し、リクエストパラメータまたはレスポンスパラメータがないAPIは、左ないしは右の矩形が欠けて図示される。パラメータペアと類似パラメータペアとは、レスポンスパラメータからリクエストパラメータへ矢印を引くことで図示されており、パラメータ間の対応関係が示される。
点線641で囲われた領域において太線の矢印を除いたものは、リクエスト/レスポンスパラメータ関係性判定部31が受信したAPIとそのパラメータ間の対応関係である。リクエスト/レスポンスパラメータ関係性判定部31が受信した4つのAPIであるCreateSecurityGroup633、AuthorizeSecurityGroupIngress634、AuthorizeSecurityGroupEgress635、RunInstances636とこの4つのAPIのパラメータの中でのパラメータペアから得られる対応関係が示されている。
点線641の外側の領域にある4つのAPIのCreateVPC631、CreateSubnet632、CreateKeyPair637、DescribeImages638は、リクエスト/レスポンスパラメータ関係性判定部31が受信したAPIではなく、自身が追加したAPIである。また、点線641の内側にあるCreateSecurityGroup633のレスポンスパラメータGroupIdとRunInstances636のリクエストパラメータSecurityGroupId.Nとは一致せず、類似したパラメータであり、WebAPI実行順序補正部42が送信した類似パラメータペアから得られた対応関係である。
≪変形例≫
WebAPI判定部23のAPI抽出(図7のステップS73参照)は、類似キーワードに関連する全てのAPIを抽出している。また、リクエスト/レスポンスパラメータ類似度判定部41は類似する全てのパラメータを検索している(図7のステップS77参照)。この結果、WebAPI実行フローに含まれるAPIやパラメータの対応関係が多過ぎて、WebAPI実行フローが見づらかったり、全体が把握しにくかったりする可能性がある。ステップS73のAPI抽出でのキーワードとAPIの関連度やステップS77の類似度を、利用者であるWebアプリ開発者がWebAPI実行フローを見ながら調整可能にするようにしてもよい。適切な量のAPIや対応関係が図示されることで、Webアプリ開発者がWebAPI実行フローを理解しやすくなる。なお、キーワードとAPIの関連度は、キーワードがWebAPIの名称に含まれるか否か、概要説明902(図11参照)に表れる割合などから算出できる。
また、Webアプリ概要書を入力とするのではなく、Webアプリ開発者が指定した特定のAPIをリクエスト/レスポンスパラメータ関係性判定部31の入力とすることで、当該APIを起点としたWebAPI実行フローを生成することができる。こうすることで、Webアプリ開発者は当該APIと実行順序の前後関係があるAPIを知ることができる。
上記の実施形態では、Webアプリ概要書の中に所定の形式でサービス利用が記載されており、この記載からキーワード検索部21はキーワードを抽出している(図7のステップS71参照)。WebAPI仕様書からキーワードとなる技術用語を予め抽出しておき、Webアプリ概要書の中でキーワードを検索するようにしてもよい。また、文や段落、節などの文書の論理的単位を1つのサービス利用の記載と捉えて、キーワード検索部21がキーワードを抽出するようにしてもよい。
WebAPI実行フロー17(図10参照)には、API名称、パラメータ名称、レスポンスパラメータとリクエストパラメータの対応関係が図示されている。APIの説明やパラメータの記述を加えてもよい。これらの説明は、画面上で常時表示されるのではなく、指示があったときにポップアップ表示されるようにしてもよい。
上記の実施形態では、インターネットを経由して利用するWebAPIを対象に説明したが、これに限る必要はない。組織内ネットワークを経由して利用するWebAPIでも構わないし、ネットワークを介さない1台の装置内ローカルのアプリケーションやライブラリのAPIでも構わない。
≪WebAPI実行フロー生成装置の効果≫
Webアプリ概要書からサービス単位でWebAPI実行フローを生成することができる。WebAPIには、サービス利用に関連するWebAPIやそのパラメータ間の関係が図示されており、APIの実行順序(呼出し順序)を含めてサービスの呼出し方をWebアプリ開発者が容易に理解できるようになる。このために、開発コストを下げることができる。また、当該Webサービスに精通していないWebアプリ開発者であっても、容易に開発できるようになる。
10 WebAPI実行フロー生成装置
11 制御部
12 記憶部
16 Webアプリ概要書(Webアプリの設計概要書)
17 WebAPI実行フロー
20 WebAPI抽出部
21 キーワード検索部
22 類義語検索部
23 WebAPI判定部
24 類義語DB
25 WebAPI概要DB
30 WebAPI実行フロー生成部
31 リクエスト/レスポンスパラメータ関係性判定部
32 WebAPI実行順序判定部
33 WebAPIパラメータDB
40 WebAPI実行フロー補正部
41 リクエスト/レスポンスパラメータ類似度判定部
42 WebAPI実行順序補正部
43 類似リクエスト/レスポンスパラメータDB
600、604、605、606、608、609 パラメータペア
611、613、921 WebAPI仕様書
656 類似パラメータペア

Claims (5)

  1. Webサービスの利用に必要なWebAPIを抽出するWebAPI実行フロー生成装置であって、
    前記Webサービスに関するキーワードと前記WebAPIとを関連付けたWebAPI概要データベースを備え、入力された前記キーワードに関連するWebAPIを関連WebAPIとして前記WebAPI概要データベースから抽出するWebAPI抽出部と、
    各WebAPIに対応づけて、リクエストパラメータかレスポンスパラメータかの種別と、パラメータ名称と、パラメータ型とを記憶したWebAPIパラメータデータベースを備え、前記関連WebAPIに含まれるWebAPIのリクエストパラメータのパラメータ名称とパラメータ型とそれぞれ同一であるパラメータ名称とパラメータ型のレスポンスパラメータをもつWebAPIと、前記関連WebAPIに含まれるWebAPIのレスポンスパラメータのパラメータ名称とパラメータ型とそれぞれ同一であるパラメータ名称とパラメータ型のリクエストパラメータをもつWebAPIとを前記WebAPIパラメータデータベースから抽出し、当該WebAPIと前記関連WebAPIとの和である抽出WebAPIの中で1つのWebAPIのレスポンスパラメータと別のWebAPIのリクエストパラメータのパラメータ名称とパラメータ型とがそれぞれ同一であることで当該2つのWebAPIに前後関係があると判断し、前記抽出WebAPIの実行順序を決定するWebAPI実行フロー生成部と
    を有することを特徴とするWebAPI実行フロー生成装置。
  2. 前記WebAPIのパラメータと当該パラメータに類似するパラメータをもつWebAPIとを関連付けた類似リクエスト/レスポンスパラメータデータベースを備え、前記抽出WebAPIの中でパラメータ名称とパラメータ型が同一でありかつ種別が異なるパラメータをもつWebAPIが存在しないパラメータをもつWebAPIである不一致WebAPIが存在した場合に、前記不一致WebAPIのパラメータに類似するパラメータをもつWebAPIを類似パラメータ保有WebAPIとして前記類似リクエスト/レスポンスパラメータデータベースから抽出し、1つのWebAPIのレスポンスパラメータと別のWebAPIのリクエストパラメータとが類似することで当該2つのWebAPIに前後関係があると判断するWebAPI実行フロー補正部をさらに有し、
    前記WebAPI実行フロー生成部は、前記抽出WebAPIにさらに前記類似パラメータ保有WebAPIを加えて新規抽出WebAPIとし、前記WebAPI実行フロー補正部が判断した前後関係と合わせて前記新規抽出WebAPIの実行順序を決定する
    ことを特徴とする請求項1に記載のWebAPI実行フロー生成装置。
  3. 前記WebAPI実行フロー補正部は、前記レスポンスパラメータと前記リクエストパラメータとの類似度を、前記レスポンスパラメータまたは前記リクエストパラメータの名称の類似度、前記Webサービスの仕様書に記載してある前記レスポンスパラメータまたは前記リクエストパラメータの記述の類似度、前記レスポンスパラメータまたは前記リクエストパラメータの型の類似度の1つまたはその組合せにより算出する
    ことを特徴とする請求項2に記載のWebAPI実行フロー生成装置。
  4. 前記WebAPI抽出部は、前記Webサービスに関連する用語と当該用語の類義語とを関連付けた類義語データベースをさらに備え、前記Webサービスを利用するWebアプリの設計概要書から前記用語を抽出し、前記用語の類義語を前記類義語データベースから抽出し、前記類義語を前記キーワードとして前記WebAPI概要データベースから前記関連WebAPIを抽出する
    ことを特徴とする請求項1〜3のいずれか1項に記載のWebAPI実行フロー生成装置。
  5. Webサービスの利用に必要なWebAPIを抽出するWebAPI実行フロー生成装置のWebAPI実行フロー生成方法であって、
    前記WebAPI実行フロー生成装置は、
    前記Webサービスに関するキーワードと前記WebAPIとを関連付けたWebAPI概要データベース、および、各WebAPIに対応づけて、リクエストパラメータかレスポンスパラメータかの種別と、パラメータ名称と、パラメータ型とを記憶したWebAPIパラメータデータベースを備えており、
    入力された前記キーワードに関連するWebAPIを関連WebAPIとして前記WebAPI概要データベースから抽出するWebAPI抽出ステップと、
    前記抽出された関連WebAPIに含まれるWebAPIのリクエストパラメータのパラメータ名称とパラメータ型とそれぞれ同一であるパラメータ名称とパラメータ型のレスポンスパラメータをもつWebAPIと、前記抽出された関連WebAPIに含まれるWebAPIのレスポンスパラメータのパラメータ名称とパラメータ型とそれぞれ同一であるパラメータ名称とパラメータ型のリクエストパラメータをもつWebAPIとを前記WebAPIパラメータデータベースから抽出し、当該WebAPIと前記抽出された関連WebAPIとの和である抽出WebAPIの中で1つのWebAPIのレスポンスパラメータと別のWebAPIのリクエストパラメータのパラメータ名称とパラメータ型とがそれぞれ同一であることで当該2つのWebAPIに前後関係があると判断し、前記抽出WebAPIの実行順序を決定するWebAPI実行フロー生成ステップと
    を実行することを特徴とするWebAPI実行フロー生成方法。
JP2017028190A 2017-02-17 2017-02-17 WebAPI実行フロー生成装置およびWebAPI実行フロー生成方法 Pending JP2018133044A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017028190A JP2018133044A (ja) 2017-02-17 2017-02-17 WebAPI実行フロー生成装置およびWebAPI実行フロー生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017028190A JP2018133044A (ja) 2017-02-17 2017-02-17 WebAPI実行フロー生成装置およびWebAPI実行フロー生成方法

Publications (1)

Publication Number Publication Date
JP2018133044A true JP2018133044A (ja) 2018-08-23

Family

ID=63248480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017028190A Pending JP2018133044A (ja) 2017-02-17 2017-02-17 WebAPI実行フロー生成装置およびWebAPI実行フロー生成方法

Country Status (1)

Country Link
JP (1) JP2018133044A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111160403A (zh) * 2019-12-09 2020-05-15 青岛聚好联科技有限公司 一种api接口复用发现的方法及装置
JP2021152711A (ja) * 2020-03-24 2021-09-30 株式会社日立製作所 オペレータ管理装置、オペレータ管理方法及びオペレータ管理コンピュータープログラム
EP4099160A4 (en) * 2020-01-30 2023-02-08 Fujitsu Limited SERVICE DESIGN DEVICE, SERVICE DESIGN METHOD AND SERVICE DESIGN PROGRAM

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111160403A (zh) * 2019-12-09 2020-05-15 青岛聚好联科技有限公司 一种api接口复用发现的方法及装置
CN111160403B (zh) * 2019-12-09 2023-09-26 青岛聚好联科技有限公司 一种api接口复用发现的方法及装置
EP4099160A4 (en) * 2020-01-30 2023-02-08 Fujitsu Limited SERVICE DESIGN DEVICE, SERVICE DESIGN METHOD AND SERVICE DESIGN PROGRAM
JP2021152711A (ja) * 2020-03-24 2021-09-30 株式会社日立製作所 オペレータ管理装置、オペレータ管理方法及びオペレータ管理コンピュータープログラム
JP7241713B2 (ja) 2020-03-24 2023-03-17 株式会社日立製作所 オペレータ管理装置、オペレータ管理方法及びオペレータ管理コンピュータープログラム

Similar Documents

Publication Publication Date Title
CN110928772B (zh) 一种测试方法及装置
CN110472068B (zh) 基于异构分布式知识图谱的大数据处理方法、设备及介质
US9626623B2 (en) Method of automated discovery of new topics
US8856157B2 (en) Automatic detection of columns to be obfuscated in database schemas
JP5756386B2 (ja) 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム
CN109997126A (zh) 事件驱动提取、变换、加载(etl)处理
US11847040B2 (en) Systems and methods for detecting data alteration from source to target
US8515986B2 (en) Query pattern generation for answers coverage expansion
CN105550206B (zh) 结构化查询语句的版本控制方法及装置
US10552781B2 (en) Task transformation responsive to confidentiality assessments
Merten et al. Do information retrieval algorithms for automated traceability perform effectively on issue tracking system data?
US10305845B1 (en) Accurate user alignment across online social media platforms
US9882949B1 (en) Dynamic detection of data correlations based on realtime data
CN108319661A (zh) 一种备件信息的结构化存储方法及装置
CN112860777B (zh) 数据处理方法、装置及设备
US10534700B2 (en) Separating test verifications from test executions
US20150379112A1 (en) Creating an on-line job function ontology
JP2018133044A (ja) WebAPI実行フロー生成装置およびWebAPI実行フロー生成方法
WO2023134134A1 (zh) 一种关联查看模型的生成方法、装置、计算机设备及存储介质
CN111435367A (zh) 知识图谱的构建方法、系统、设备及存储介质
CN111666101A (zh) 软件同源分析方法及装置
WO2023272862A1 (zh) 基于网络行为数据的风控识别方法、装置、电子设备及介质
US20180137036A1 (en) Determining potential test actions
JP2016184330A (ja) アプローチ支援システム、アプローチ支援方法及びアプローチ支援プログラム
JP6733366B2 (ja) 課題推定装置、課題推定方法および課題推定プログラム