(57)【要約】【課題】マイクロサービスを利用したシステムの開発に適用し、利用するサービスの検証を実行できる仕様管理装置を提供することにある。【解決手段】本実施形態の仕様管理装置は、複数のサービスを利用して開発する開発対象の仕様情報を取得し、前記仕様情報に基づいて所定の動作確認手順が定義された動作確認情報を取得し、動作確認部を備えた構成である。前記動作確認部は、前記動作確認情報を使用して、前記所定の動作確認手順に基づいて動作確認対象のサービスの動作確認を実行する。【選択図】図１
2020052510.tif 000002
【特許請求の範囲】
【請求項１】
複数のサービスを利用して開発する開発対象の仕様情報を取得する手段と、
前記仕様情報に基づいて、所定の動作確認手順が定義された動作確認情報を取得する手段と、
前記動作確認情報を使用して、所定の動作確認手順に基づいて動作確認対象のサービスの動作確認を実行する動作確認手段と
を具備する、仕様管理装置。
【請求項２】
前記動作確認手段は、
前記動作確認手順に含まれる所定の呼び出し手順に従って、前記動作確認対象のサービスを呼び出し、
呼び出したサービスの実行結果に基づいて、前記動作確認対象のサービスの動作確認を実行する、請求項１に記載の仕様管理装置。
【請求項３】
前記動作確認手段は、
前記動作確認手順として、前記動作確認対象のサービスの実行により取得する第１の情報と、前記動作確認情報から取得する所定の第２の情報とを比較し、
前記第１及び第２の情報の比較結果に基づいて、前記動作確認対象のサービスが有効か否かを示す動作確認結果を出力する、請求項１または２に記載の仕様管理装置。
【請求項４】
前記動作確認手段は、
前記動作確認を実行して、前記動作確認対象のサービスが前記仕様情報に含まれる想定の機能を実現できないことを示す動作確認結果を出力する、請求項１から３のいずれか１項に記載の仕様管理装置。
【請求項５】
前記仕様情報は、想定の機能に対応する複数のサービスを指定する情報を含み、
前記動作確認情報は、前記仕様情報に基づいて、複数のサービスに対応する所定の動作確認手順が定義されており、
前記動作確認手段は、
動作確認対象のサービスとして、複数のサービスの動作確認を所定の動作確認手順に基づいて実行し、
いずれのサービスが有効か否かを示す動作確認結果を出力する、請求項１から４のいずれか１項に記載の仕様管理装置。
【請求項６】
複数のサービスを利用する開発に適用する仕様管理装置の方法であって、
開発対象の仕様情報を取得する処理と、
前記仕様情報に基づいて、所定の動作確認手順が定義された動作確認情報を取得する処理と、
前記動作確認情報を使用して、所定の動作確認手順に基づいて動作確認対象のサービスの動作確認を実行する処理と
を実行する、方法。
【請求項７】
前記動作確認を実行する処理は、
前記動作確認手順に含まれる所定の呼び出し手順に従って、前記動作確認対象のサービスを呼び出す処理と、
呼び出したサービスの実行結果に基づいて、前記動作確認対象のサービスの動作確認を実行する処理と
を含む、請求項６に記載の方法。
【請求項８】
前記動作確認を実行する処理は、
前記動作確認手順として、前記動作確認対象のサービスの実行により取得する第１の情報と、前記動作確認情報から取得する所定の第２の情報とを比較する処理と、
前記第１及び第２の情報の比較結果に基づいて、前記動作確認対象のサービスが有効か否かを示す動作確認結果を出力する処理と
を含む、請求項６または７に記載の方法。
【請求項９】
前記仕様情報は、想定の機能に対応する複数のサービスを指定する情報を含み、
前記動作確認情報は、前記仕様情報に基づいて、複数のサービスに対応する所定の動作確認手順が定義されており、
前記動作確認を実行する処理は、
動作確認対象のサービスとして、複数のサービスの動作確認を所定の動作確認手順に基づいて実行する処理と、
いずれのサービスが有効か否かを示す動作確認結果を出力する処理と
を含む、請求項６から８のいずれか１項に記載の方法。
【請求項１０】
請求項６乃至９のいずれか１項に記載の方法による各処理を、コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、複数のサービスを利用するシステムの開発に適用する、仕様管理装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、例えばWebサービスを提供するためのシステム（ソフトウェア）の開発において、複数の機能（サービスの機能）を、いわゆるモノリス（Monoliths）構成ではなく、マイクロサービス（Microservice）を利用したシステムを構築することが注目されている。マイクロサービスは、複数の独立性の高いサービス（単一機能）を組み合わせて連携させることにより、所定の機能を実現する仕組みである。
【０００３】
マイクロサービスを利用したシステムの開発では、システムは複数のサービスの集合体として構成されるため、開発主体の外部から提供されるサービスを利用することが可能となる。このため、システムの開発コストの削減や、仕様変更の容易化などの有用な効果が得られる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５３６６３５１号公報
【特許文献２】特開２０１１−７０５７３号公報
【特許文献３】特開２０１７−１０２８０７号公報
【非特許文献】
【０００５】
【非特許文献１】Testing Strategies in a Microservice architecture,18 November 2014,＜URL: http://martinfowler.com/articles/microservice-testing/＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
マイクロサービスを利用したシステムの開発では、システムは複数のサービスの集合体として構成されるため、システムの仕様情報を管理する仕様管理装置が重要である。特に、利用するサービスの変更（停止も含む）がある場合、想定している機能を実現できない事態となる。このため、利用するサービスに関して、想定している機能を実現できるか否かを検証できる仕様管理装置が要求される。
【０００７】
そこで、目的は、マイクロサービスを利用したシステムの開発に適用し、利用するサービスの検証を実行できる仕様管理装置を提供することにある。
【課題を解決するための手段】
【０００８】
本実施形態の仕様管理装置は、複数のサービスを利用して開発する開発対象の仕様情報を取得する手段と、前記仕様情報に基づいて所定の動作確認手順が定義された動作確認情報を取得する手段と、動作確認手段とを備えた構成である。前記動作確認手段は、前記動作確認情報を使用して、所定の動作確認手順に基づいて動作確認対象のサービスの動作確認を実行する。
【図面の簡単な説明】
【０００９】
【図１】実施形態に関する仕様管理装置の構成を示すブロック図。
【図２】実施形態に関する仕様情報の一例を示す図。
【図３】実施形態に関する動作確認情報の一例を示す図。
【図４】実施形態に関する仕様管理装置の基本的動作を説明するためのフローチャート。
【図５】実施形態に関する仕様管理装置の動作の具体例を説明するためのフローチャート。
【発明を実施するための形態】
【００１０】
以下図面を参照して、実施形態を説明する。
［仕様管理装置の構成］
図１は、本実施形態の仕様管理装置１０の構成を示すブロック図である。図１に示すように、本実施形態の仕様管理装置１０は、サーバ１のハードウェア及びソフトウェアにより構成される。サーバ１は、マイクロサービスを利用したシステムの開発環境を実現する、いわば開発支援装置に相当する。仕様管理装置１０は、後述するように、マイクロサービスを利用したシステムの開発において、利用するサービスの動作確認を実行して、当該サービスを検証する。
【００１１】
サーバ１は、端末装置２との間で、情報の入出力を制御するインターフェース１１を含む。端末装置２は、システムの開発を行う技術者や管理者（以下、ユーザと表記）が操作するパーソナルコンピュータ（ＰＣ）である。端末装置２は、後述する仕様情報や動作確認情報等を入力する入力装置や、仕様管理装置１０からの情報（動作確認結果等）を表示出力する表示画面、及びネットワークと接続する通信インターフェース等を有する。即ち、端末装置２は、例えば、ネットワークを介してサーバ１との間で情報を入出力する。
【００１２】
仕様管理装置１０は、仕様情報定義部１２と、動作確認部１３と、動作確認情報定義部１４と、仕様情報データベース（仕様情報ＤＢ）１５と、動作確認情報データベース（動作確認情報ＤＢ）１６とを有する。
【００１３】
仕様情報定義部１２は、端末装置２から入力される入力情報に基づいて、開発対象であるシステム（ソフトウェア）の仕様情報を定義（生成）して、仕様情報ＤＢ１５に格納（登録）する。端末装置２からの入力情報は、例えば、識別子、名称、設計内容、関連仕様、及び利用するサービスを識別する情報を含む。仕様情報定義部１２は、仕様情報ＤＢ１５に登録したことを示す情報（返り値）を出力する。サーバ１は、インターフェース１１を介して、当該情報を端末装置２に送信する。端末装置２は、受信した当該情報を画面に表示する。
【００１４】
図２は、仕様情報定義部１２により定義されて、仕様情報ＤＢ１５に登録される仕様情報２０の一例を示す図である。図２に示すように、仕様情報２０は、例えば、仕様ＩＤ、内容、各機能の実現に利用するサービス（以下、利用サービスと表記する場合がある）が定義されている。
【００１５】
仕様情報２０において、仕様ＩＤは、端末装置２からの入力情報に含まれる識別子に対応する。内容の欄には、入力情報に含まれる設計内容に対応し、実現すべき機能（Ａ、Ｂ、Ｃ等）の内容が定義されている。利用サービスの欄には、各機能（Ａ、Ｂ、Ｃ等）に対応する利用サービスを呼び出す（アクセスする）ための情報（XXX,YYY,ZZZ）が定義されている。なお、利用サービスの欄には、例えば、仕様ＩＤが「X03」の機能Ｃに対応する利用サービスとして、複数のサービス（XXX,ZZZ）が適用される場合には、当該各利用サービスを呼び出すための情報が定義される。
【００１６】
ここで、各利用サービスを呼び出すための情報（XXX,YYY,ZZZ）は、例えば、ＡＰＩ（Application Programming Interface）名である。ＡＰＩ（Web API）は、ネットワークにおいて、サーバから提供される所定の機能（サービス）を利用できる仕組みである。即ち、ＡＰＩ名は、当該ＡＰＩを介して利用できるサービスを特定する情報である。なお、利用サービスを呼び出すための情報は、ＡＰＩ名に限定されることなく、利用サービスを特定してアクセスできれば、他の形式の情報でもよい。
【００１７】
本実施形態では、開発対象であるシステム（ソフトウェア）は、複数のサービス（機能）の集合体として構成されるものである。サーバ１は、例えばＡＰＩゲートウエイを含むネットワーク１７を介して、各機能（Ａ、Ｂ、Ｃ等）を、外部のプロバイダが運用するサーバ３から提供される各利用サービスにより実現できる。
【００１８】
図１に戻って、動作確認部１３は本実施形態の主要部であり、後述するように、利用サービスの動作確認を実行する。具体的には、動作確認部１３は、仕様情報ＤＢ１５に登録される仕様情報２０及び動作確認情報ＤＢ１６に登録される動作確認情報３０を使用して、当該利用サービスの動作確認を実行して、当該動作確認結果を出力する。
【００１９】
動作確認情報定義部１４は、端末装置２から入力される入力情報に基づいて、動作確認情報３０を定義（生成）して、動作確認情報ＤＢ１６に格納（登録）する。動作確認情報定義部１４は、動作確認情報ＤＢ１６に登録したことを示す情報（返り値）を出力する。サーバ１は、インターフェース１１を介して、当該情報を端末装置２に送信する。端末装置２は、受信した当該情報を画面に表示することになる。
【００２０】
図３は、動作確認情報定義部１４により定義されて、動作確認情報ＤＢ１６に登録される動作確認情報３０の一例を示す図である。図３に示すように、動作確認情報３０は、例えば、動作確認の対象、呼び出し手順、入力値（パラメータ）、出力値が定義されている。
【００２１】
動作確認情報３０において、動作確認の対象は、仕様ＩＤに対応する利用サービス（API名）である。呼び出し手順は、ルールベースで記述されたものである。具体的には、呼び出し手順は、実行タイミング及び呼び出し情報が設定されている。なお、利用サービス（YYY,ZZZ）については、呼び出し手順は、利用サービス（XXX）と同様の形式であり、省略している。
【００２２】
入力値は、例えばＣＳＶ（Comma Separated Value）形式である。但し、入力値は、利用サービスを実行できる形式であれば、他の形式でもよい。出力値（返り値）は、２値(0,1)の形式で、ここでは「１」をaで示し、「０」をｂで示す。なお、出力値（返り値）は、利用サービスに対応する他の形式（例えば、自然文、自然数等）でもよい。
［仕様管理装置の動作］
以下、図４及び図５の各フローチャートを参照して、本実施形態の仕様管理装置１０の動作を説明する。図４は、仕様管理装置１０の基本的動作を説明するフローチャートである。
【００２３】
図４に示すように、まず、仕様管理装置１０の動作確認部１３は、仕様ＩＤを検索条件として、仕様情報ＤＢ１５から仕様情報を取得する（Ｓ１）。例えば、仕様ＩＤが「X01」で、機能Ａ及び当該機能Ａに対応する利用サービス（XXX）が定義されている仕様情報を取得する（図２を参照）。
【００２４】
次に、動作確認部１３は、仕様情報に定義されている利用サービスを検索条件として、動作確認情報ＤＢ１６から動作確認情報を取得する（Ｓ２）。例えば、動作確認対象である利用サービス（XXX）に対応する呼び出し手順、入力値（パラメータ）、出力値が定義されている動作確認情報を取得する（図３を参照）。
【００２５】
動作確認部１３は、動作確認情報に含まれる呼び出し手順に従って利用サービス（XXX）を呼び出し、入力値を使用して当該利用サービス（XXX）を実行する（Ｓ３）。動作確認部１３は、入力値を使用した実行により、当該利用サービス（XXX）から返信される返り値を取得する（Ｓ４）。
【００２６】
動作確認部１３は、動作確認情報に含まれる出力値（設定値a）と、当該利用サービス（XXX）からの返り値とを比較する（Ｓ５）。動作確認部１３は、当該比較結果が一致していない場合には（Ｓ６のＮＯ）、その旨を示す動作確認結果を端末装置２に出力する（Ｓ７）。即ち、サーバ１は、インターフェース１１を介して、動作確認部１３の動作確認結果として、問題があることを示す警告を端末装置２に提示する。
【００２７】
これにより、端末装置２の表示画面には、動作確認対象である利用サービス（XXX）の動作確認結果として、利用サービス（XXX）が想定している動作をしておらず、問題があることを示す警告が提示される。即ち、当該利用サービス（XXX）が、変更または停止されており、当該機能Ａを実現できないことが示唆される。従って、ユーザは、端末装置２の表示画面に表示された動作確認結果から、現在のサービス（XXX）が利用できないことを認識できる。
【００２８】
一方、動作確認部１３は、当該比較結果が一致している場合には（Ｓ６のＹＥＳ）、その旨を示す動作確認結果を出力する（Ｓ８）。即ち、端末装置２の表示画面には、動作確認対象である利用サービス（XXX）の動作確認結果として、利用サービス（XXX）には問題ないこと、即ち、正常に動作することが提示される。これにより、ユーザは、端末装置２の表示画面に表示された動作確認結果から、利用サービス（XXX）が仕様情報で定義されている当該機能Ａを提供できることを認識できる。
【００２９】
図５は、仕様管理装置１０の動作の具体例を説明するフローチャートである。具体例として、動作確認部１３は、１個の仕様情報に対して、複数の利用サービスが定義されている場合に、各利用サービスの動作確認を実行する。
【００３０】
図５に示すように、仕様管理装置１０の動作確認部１３は、仕様ＩＤを検索条件として、仕様情報ＤＢ１５から仕様情報を取得する（Ｓ１１）。例えば、仕様ＩＤが「X03」で、機能Ｃ及び当該機能Ｃを実現する複数の利用サービス（XXX,ZZZ）が定義されている仕様情報を取得する（図２を参照）。
【００３１】
次に、動作確認部１３は、仕様情報に定義されている利用サービスを検索条件として、動作確認情報ＤＢ１６から動作確認情報を取得する（Ｓ１２）。ここでは、仕様ＩＤが「X03」において、動作確認対象として複数の利用サービス（XXX,ZZZ）に対応する動作確認情報を取得する（図３を参照）。
【００３２】
動作確認部１３は、動作確認情報に含まれる呼び出し手順に従って利用サービス（XXX）を呼び出し、入力値を使用して当該利用サービス（XXX）を実行する（Ｓ１３）。動作確認部１３は、入力値を使用した実行により、当該利用サービス（XXX）から返信される返り値を取得する（Ｓ１４）。
【００３３】
動作確認部１３は、動作確認情報に含まれる出力値（設定値a）と、当該利用サービス（XXX）からの返り値とを比較する（Ｓ１５）。動作確認部１３は、当該比較結果が一致していない場合には（Ｓ１６のＮＯ）、その旨を示す動作確認結果を動作確認情報ＤＢ１６に格納して蓄積する（Ｓ１７）。
【００３４】
動作確認部１３は、当該比較結果が一致している場合（Ｓ１６のＹＥＳ）または動作確認結果を動作確認情報ＤＢ１６に格納した（Ｓ１７）後に、次の動作確認対象として利用サービス（ZZZ）を設定する（Ｓ１８のＮＯ）。動作確認部１３は、利用サービス（XXX）の場合と同様に、呼び出し手順に従って利用サービス（ZZZ）を呼び出し、入力値を使用して当該利用サービス（ZZZ）を実行する（Ｓ１３）。
【００３５】
動作確認部１３は、入力値を使用した実行により、当該利用サービス（ZZZ）から返信される返り値を取得する（Ｓ１４）。動作確認部１３は、動作確認情報に含まれる出力値（設定値b）と、当該利用サービス（ZZZ）からの返り値とを比較する（Ｓ１５）。動作確認部１３は、当該比較結果が一致していない場合には（Ｓ１６のＮＯ）、その旨を示す動作確認結果を動作確認情報ＤＢ１６に格納して蓄積する（Ｓ１７）。
【００３６】
動作確認部１３は、複数の利用サービス（XXX,ZZZ）に対する動作確認処理が終了すると（Ｓ１８のＹＥＳ）、動作確認情報ＤＢ１６に蓄積した動作確認結果を取得する。動作確認部１３は、取得した動作確認結果を端末装置２に提示する（Ｓ１９）。即ち、サーバ１は、インターフェース１１を介して、動作確認部１３の動作確認結果を端末装置２に出力する。
【００３７】
これにより、端末装置２の表示画面には、動作確認対象である、複数の利用サービス（XXX,ZZZ）において、問題のある利用サービス、即ち、想定している動作をしていない利用サービスを示す警告が提示される。また、複数の利用サービス（XXX,ZZZ）の中で、例えば利用サービス（XXX）が変更または停止されているため、結果的に当該機能Ｃを提供できないことを提示してもよい。従って、ユーザは、端末装置２の表示画面に表示された動作確認結果から、複数の利用サービス（XXX,ZZZ）の中で、問題のあるサービスが利用できないことを認識できる。
【００３８】
なお、動作確認部１３は、取得した動作確認結果として、問題のある利用サービスを端末装置２に提示しているが、問題のない正常な利用サービスも端末装置２に提示してもよい。
【００３９】
以上のように本実施形態によれば、マイクロサービスを利用したシステムの開発において、所定の機能を実現する各利用サービスの動作確認を実行して、動作確認結果として、動作に問題がある利用サービスを示す情報をユーザに提供できる。従って、ユーザは、動作確認対象の利用サービスが変更や停止により、想定している機能を実現できないことを認識できる。
【００４０】
即ち、マイクロサービスを利用し、複数のサービスの集合体として構成されるシステムの開発において、仕様情報に基づいた利用サービスに関し、想定している機能を実現できるか否か（有効か否か）を検証できる。これにより、ユーザは、想定している機能に対応する利用サービスに問題がある場合には、当該利用サービスを、別の利用サービスと交換するなどの対処を行うことが可能となる。
【００４１】
ここで、本実施形態によれば、動作確認対象の利用サービスを提供するプロバイダ側のテストを要することなく、また、当該利用サービスの内部情報を入手できない場合でも、当該利用サービスが有効か否かを検証できる。換言すれば、複数の利用サービスの中で、想定している機能を実現できない、問題のある利用サービスを特定することができる。
【００４２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４３】
１…サーバ、２…端末装置、１０…仕様管理装置、
１１…インターフェース、１２…仕様情報定義部、１３…動作確認部、
１４…動作確認情報定義部、１５…仕様情報データベース（仕様情報ＤＢ）、
１６…動作確認情報データベース（動作確認情報ＤＢ）、
２０…仕様情報、２１…動作確認情報。
【図１】
2020052510.tif 000003
【図２】
2020052510.tif 000004
【図３】
2020052510.tif 000005
【図４】
2020052510.tif 000006
【図５】
2020052510.tif 000007