(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024122205
(43)【公開日】2024-09-09
(54)【発明の名称】計算機システム及びデータ提供方法
(51)【国際特許分類】
G06F 8/00 20180101AFI20240902BHJP
G06F 16/907 20190101ALI20240902BHJP
G06F 16/9035 20190101ALI20240902BHJP
【FI】
G06F8/00
G06F16/907
G06F16/9035
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023029630
(22)【出願日】2023-02-28
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】谷川 桂子
(72)【発明者】
【氏名】石井 陽介
【テーマコード(参考)】
5B175
5B376
【Fターム(参考)】
5B175FB03
5B175HA02
5B376BC32
5B376BC34
5B376FA21
(57)【要約】
【課題】アプリケーションのライフサイクルのフェーズに応じたデータをユーザに提供する。
【解決手段】計算機システムは、データベースと接続し、データベースに格納されるデータを検索するための項目を管理するデータカタログにアクセス可能であって、アプリケーションのライフサイクルのフェーズ及びデータ要件を関連付けた要件データを管理するためのデータ要件管理情報を保持する。計算機システムは、検索条件を含む検索要求を受信した場合、データカタログを参照して、検索条件に合致するデータを検索し、ユーザが選択したデータの情報及びフェーズを含む出力要求を受信した場合、データ要件管理情報を参照して、フェーズに対応する要件データを特定し、選択されたデータ及び特定された要件データに基づいて、フェーズにおいて使用するデータを出力する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
複数の種類のデータを格納するデータベースと接続する計算機システムであって、
前記データベースに格納される前記データを検索するための項目を管理するデータカタログにアクセス可能であって、
アプリケーションのライフサイクルのフェーズ及びデータ要件を関連付けた要件データを管理するためのデータ要件管理情報を保持し、
検索条件を含む検索要求を受信した場合、前記データカタログを参照して、前記データベースに格納される前記データの中から前記検索条件に合致するデータを検索し、ユーザに提示し、
前記ユーザが選択したデータの情報及び前記フェーズを含む出力要求を受信した場合、前記データ要件管理情報を参照して、前記出力要求に含まれる前記フェーズに対応する前記要件データを特定し、
選択された前記データ及び特定された前記要件データに基づいて、前記出力要求に含まれる前記フェーズにおいて使用する使用データを出力することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
スキルレベルが高いユーザによる前記アプリケーションの開発又は運用に関する操作ログを取得し、
前記操作ログを分析することによって前記要件データを生成し、前記データ要件管理情報に登録することを特徴とする計算機システム。
【請求項3】
請求項1に記載の計算機システムであって、
特定された前記要件データに基づいて、前記データベースから、選択された前記データを取得し、前記使用データとして出力することを特徴とする計算機システム。
【請求項4】
請求項1に記載の計算機システムであって、
特定された前記要件データに基づいて、前記データベースから、選択された前記データを取得し、加工することによって前記使用データを生成することを特徴とする計算機システム。
【請求項5】
請求項1に記載の計算機システムであって、
前記データカタログには、前記データを登録したユーザの情報が含まれ、
前記計算機システムは、
ユーザのスキルレベルを管理するためのユーザ管理情報を保持し、
前記ユーザ管理情報を用いて、スキルレベルが高いユーザが登録した前記データの中から、前記検索条件を満たす前記データを検索することを特徴とする計算機システム。
【請求項6】
請求項1に記載の計算機システムであって、
前記データカタログに登録されたデータに関する処理において生成又は使用され、かつ、前記データカタログに登録されていない中間データを管理するための中間データ管理情報を保持し、
前記中間データ管理情報を参照して、前記検索条件に合致するデータに関連する前記中間データを特定し、
前記検索条件に合致するデータ及び特定された前記中間データを前記ユーザに提示することを特徴とする計算機システム。
【請求項7】
計算機システムが実行するデータ提供方法であって、
前記計算機システムは、
複数の種類のデータを格納するデータベースと接続し、
前記データベースに格納される前記データを検索するための項目を管理するデータカタログにアクセス可能であって、
アプリケーションのライフサイクルのフェーズ及びデータ要件を関連付けた要件データを管理するためのデータ要件管理情報を保持し、
前記データ提供方法は、
前記計算機システムが、検索条件を含む検索要求を受信した場合、前記データカタログを参照して、前記データベースに格納される前記データの中から前記検索条件に合致するデータを検索し、ユーザに提示するステップと、
前記計算機システムが、前記ユーザが選択したデータの情報及び前記フェーズを含む出力要求を受信した場合、前記データ要件管理情報を参照して、前記出力要求に含まれる前記フェーズに対応する前記要件データを特定するステップと、
前記計算機システムが、選択された前記データ及び特定された前記要件データに基づいて、前記出力要求に含まれる前記フェーズにおいて使用する使用データを出力するステップと、を含むことを特徴とするデータ提供方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションの開発及び運用に使用するデータの提供技術に関する。
【背景技術】
【0002】
近年、DX人材が不足しているため、組織の従業員がサービス開発を行うケースが多くなっている。データカタログ及びアプリケーションカタログを用いることによって、サービスの開発及び運用を効率的に行うことができる。以下、サービスの開発及び運用を行う者をユーザと記載する。
【0003】
ユーザは、データカタログを参照することによってデータを検索できる。しかし、アプリケーションのライフサイクルのフェーズ毎に、必要なデータの要件が異なる。ユーザのスキルレベルが低い場合、フェーズ毎のデータ要件の知見を持たないため、効率的なアプリケーションの開発及び運用が難しい。
【0004】
これに対して、特許文献1に記載の技術が知られている。特許文献1には、「文書管理装置は、ユーザが入力した検索キーワードと、当該ユーザのユーザ属性を受信し、受信した検索キーワードに基づき文書情報を検索する。そして、受信したユーザ属性に基づきユーザの所属するプロジェクトを検出し、検出されたプロジェクトのフェーズをプロジェクト管理装置から取得し、取得したプロジェクトのフェーズにおいて、前記検索された文書情報の中で、操作された回数が閾値以上である文書情報を抽出する。最終的に前記検索された文書情報と、前記抽出された文書情報とを前記ユーザに提供するために出力する」ことが記載されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載の技術は、文書を検索する技術であり、フェーズにおける文書の要件を考慮した処理は行われていない。そのため、特許文献1に記載の技術を用いてもフェーズ毎のデータ要件に応じたデータを取得することができない。
【0007】
本発明は、アプリケーションのライフサイクルのフェーズに応じたデータをユーザに提供するシステムを実現する。
【課題を解決するための手段】
【0008】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数の種類のデータを格納するデータベースと接続する計算機システムであって、前記データベースに格納される前記データを検索するための項目を管理するデータカタログにアクセス可能であって、アプリケーションのライフサイクルのフェーズ及びデータ要件を関連付けた要件データを管理するためのデータ要件管理情報を保持し、検索条件を含む検索要求を受信した場合、前記データカタログを参照して、前記データベースに格納される前記データの中から前記検索条件に合致するデータを検索し、ユーザに提示し、前記ユーザが選択したデータの情報及び前記フェーズを含む出力要求を受信した場合、前記データ要件管理情報を参照して、前記出力要求に含まれる前記フェーズに対応する前記要件データを特定し、選択された前記データ及び特定された前記要件データに基づいて、前記出力要求に含まれる前記フェーズにおいて使用する使用データを出力する。
【発明の効果】
【0009】
本発明によれば、アプリケーションのライフサイクルのフェーズに応じたデータをユーザに提供できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】実施例1のシステムの構成の一例を示す図である。
【
図2】実施例1の計算機の構成の一例を示す図である。
【
図3】実施例1のサービス開発支援システムのソフトウェア構成の一例を示す図である。
【
図4】実施例1のデータカタログの一例を示す図である。
【
図5】実施例1のアプリケーションカタログの一例を示す図である。
【
図6】実施例1のユーザ管理情報の一例を示す図である。
【
図7】実施例1の操作ログ管理情報の一例を示す図である。
【
図8】実施例1のデータ要件管理情報の一例を示す図である。
【
図9】実施例1の中間データ管理情報の一例を示す図である。
【
図10A】実施例1のエラー対処情報の一例を示す図である。
【
図10B】実施例1のエラー対処情報の一例を示す図である。
【
図11】実施例1のシステムにおける処理の概要を説明するシーケンス図である。
【
図12】実施例1のサービス開発支援システムがアプリケーション登録通知を受信した場合に実行する処理の一例を説明するフローチャートである。
【
図13】実施例1のサービス開発支援システムが実行するデータ要件解析処理の一例を説明するフローチャートである。
【
図14】実施例1のサービス開発支援システムが実行する操作ログ管理情報の更新処理の一例を説明するフローチャートである。
【
図15】実施例1のサービス開発支援システムが実行するデータ要件管理情報の更新処理の一例を説明するフローチャートである。
【
図16】実施例1のサービス開発支援システムがデータ登録通知を受信した場合に実行する処理の一例を説明するフローチャートである。
【
図17】実施例1のサービス開発支援システムが実行する中間データ解析処理の一例を説明するフローチャートである。
【
図18】実施例1のサービス開発支援システムがデータの検索要求を受信した場合に実行する処理の一例を説明するフローチャートである。
【
図19】実施例1のサービス開発支援システムが提示する画面の一例を示す図である。
【
図20】実施例1のサービス開発支援システムが提示する画面の一例を示す図である。
【
図21】実施例1のサービス開発支援システムが実行するデータ検索処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0012】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0013】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0014】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例0015】
図1は、実施例1のシステムの構成の一例を示す図である。
図2は、実施例1の計算機の構成の一例を示す図である。
【0016】
実施例1のシステムは、サービス開発支援システム100、データカタログ管理システム101、アプリケーションカタログ管理システム102、アプリケーションリポジトリ103、クライアント端末104、実行基盤105、API-GW107、及びDBMS108から構成される。なお、
図1に示すシステムの構成は一例であって、構成要素の接続関係及び構成要素の数は任意に変更できる。
【0017】
クライアント端末104は、アプリケーションの開発及び運用を行うユーザが操作する端末である。クライアント端末104は、アプリケーションの開発及び運用を行うための開発環境ツール120を有する。実行基盤105は、アプリケーションを実行する環境を提供する。実行基盤105では、仮想マシン又はコンテナ等が稼働する。API-GW107は、アプリケーションを使用するためのAPIの呼び出し等を行う。
【0018】
DBMS106は、データベースを管理する。実施例1のDBMS106は、アプリケーションが扱う生データを格納するデータベース110、複製データを格納するデータベース111、及び生データ又は複製データが整形又は加工されたデータを格納するデータベース112を管理する。
【0019】
データカタログ管理システム101はデータカタログ400(
図4参照)を管理する。アプリケーションカタログ管理システム102はアプリケーションカタログ500(
図5参照)を管理する。アプリケーションリポジトリ103はアプリケーションのソースコードを格納する。
【0020】
データカタログ管理システム101、アプリケーションカタログ管理システム102、アプリケーションリポジトリ103、及びDBMS106は、操作ログを保持する。クライアント端末104は、開発環境ツール120の操作ログを保持する。また、実行基盤105は、稼働ログを保持する。
【0021】
サービス開発支援システム100は、任意のサービスを実現するアプリケーションの開発及び運用を支援する。実施例1のサービス開発支援システム100は、アプリケーションのライフサイクルのフェーズに応じたデータを提供する。ユーザは、アプリケーションのライフサイクルのフェーズに応じたデータを、サービス開発支援システム100から取得できる。
【0022】
サービス開発支援システム100、データカタログ管理システム101、及びアプリケーションカタログ管理システム102、及び実行基盤105の各々は、例えば、
図2に示すような計算機200から構成される。
【0023】
計算機200は、プロセッサ201、主記憶装置202、副記憶装置203、ネットワークインタフェース204、入力装置205、及び出力装置206を有する。各ハードウェア要素はバス207を介して互いに接続される。なお、計算機200は、入力装置205及び出力装置206を有していなくてもよい。
【0024】
プロセッサ201は、主記憶装置202に格納されるプログラムを実行する。プロセッサ201は、プログラムにしたがって処理を実行することによって機能部(モジュール)として機能する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ201が機能部を実現するプログラムを実行していることを示す。
【0025】
主記憶装置202は、メモリ等であり、プロセッサ201が実行するプログラム及びプログラムが使用する情報を格納する。また、主記憶装置202は、プログラムが一時的に使用するワークエリアを含む。
【0026】
副記憶装置203は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等であり、永続的に大量のデータを格納する。主記憶装置202に格納されるプログラム及び情報は、副記憶装置203に格納されてもよい。この場合、プロセッサ201が副記憶装置203からプログラム及び情報を読み出し、主記憶装置202にロードする。
【0027】
ネットワークインタフェース204は、ネットワークを介して外部の装置と通信する。入力装置205は、キーボード、マウス、及びタッチパネル等である。出力装置206は、ディスプレイ等である。
【0028】
図3は、実施例1のサービス開発支援システム100のソフトウェア構成の一例を示す図である。
【0029】
サービス開発支援システム100は、データカタログ連携部300、アプリケーションカタログ連携部301、データ要件管理部302、及び検索部303を有する。また、サービス開発支援システム100は、ユーザ管理情報310、操作ログ管理情報311、データ要件管理情報312、中間データ管理情報313、及びエラー対処情報314を保持する。
【0030】
ユーザ管理情報310は、ユーザを管理するための情報である。ユーザ管理情報310の詳細は
図6を用いて説明する。
【0031】
操作ログ管理情報311は、アプリケーションの開発及び運用に関する操作ログを管理するための情報である。操作ログ管理情報311の詳細は
図7を用いて説明する。
【0032】
データ要件管理情報312は、アプリケーションのライフサイクルのフェーズ毎のデータ要件を管理するための情報である。データ要件管理情報312の詳細は
図8を用いて説明する。
【0033】
中間データ管理情報313は、アプリケーションの開発及び運用において生成又は使用された中間データを管理するための情報である。中間データ管理情報313の詳細は
図9を用いて説明する。
【0034】
エラー対処情報314は、エラー対処情報314は、アプリケーションの開発及び運用に用いるデータの検索のエラーの対処方法を管理するための情報である。エラー対処情報314の詳細は
図10A及び
図10Bを用いて説明する。
【0035】
データカタログ連携部300は、データカタログ管理システム101と連携し、データカタログ400の参照、レコードの更新、レコードの取得等を行う。アプリケーションカタログ連携部301は、アプリケーションカタログ管理システム102と連携し、アプリケーションカタログ500の参照、レコードの更新、レコードの取得等を行う。
【0036】
データ要件管理部302は、データ要件管理情報312を管理する。検索部303は、アプリケーションのライフサイクルのフェーズに応じたデータを提供する。
【0037】
なお、サービス開発支援システム100が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を複数の機能部に分けてもよい。
【0038】
図4は、実施例1のデータカタログ400の一例を示す図である。
【0039】
データカタログ400は、データID401、メタデータ402、及びリネージ403を含むレコードを格納する。一つのデータに対して一つのレコードが存在する。なお、レコードに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。例えば、データの名称、及びデータの品質を格納するフィールドを含んでもよい。
【0040】
データID401は、データを識別するIDを格納するフィールドである。
【0041】
メタデータ402は、データのメタデータを格納するフィールド群である。メタデータ402には、例えば、スキーマ、データを用いるアプリケーションによって実現されるサービスの分野及び目的、アクセス権、タグ、格納場所、所有者、登録日、更新日、及び利用回数等が含まれる。本実施例では、メタデータ402には、少なくとも、分野及び目的が含まれるものとする。
【0042】
リネージ403は、データのリネージを格納するフィールドである。なお、リネージ403は、メタデータ402に含まれてもよい。
【0043】
図5は、実施例1のアプリケーションカタログ500の一例を示す図である。
【0044】
アプリケーションカタログ500は、APP ID501、メタデータ502、及びパラメータ503を含むレコードを格納する。一つのアプリケーションに対して一つのレコードが存在する。なお、レコードに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。例えば、アプリケーションの名称、及びアプリケーション開発に用いたツールの情報を格納するフィールドを含んでもよい。
【0045】
APP ID501は、アプリケーションを識別するIDを格納するフィールドである。
【0046】
メタデータ502は、アプリケーションのメタデータを格納するフィールド群である。メタデータ502には、例えば、登録者、登録日、目的、及びタグが含まれる。本実施例では、メタデータ502には、目的が含まれるものとする。
【0047】
パラメータ503は、アプリケーションのパラメータに関する情報を格納するフィールド群である。パラメータ503には、例えば、メソッド、入力、説明、出力、利用回数等が含まれる。
【0048】
図6は、実施例1のユーザ管理情報310の一例を示す図である。
【0049】
ユーザ管理情報310は、ユーザID601、ユーザ名602、所属603、属性604、及び環境605を含むレコードを格納する。一人のユーザに対して一つレコードが存在する。なお、レコードに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
【0050】
ユーザID601は、ユーザを識別するIDを格納するフィールドである。ユーザ名602は、ユーザの氏名を格納するフィールドである。所属603は、ユーザの所属を格納するフィールドである。属性604は、ユーザのスキルレベルを格納するフィールドである。環境605は、ユーザの開発環境に関する情報を格納するフィールド群である。
【0051】
ユーザのスキルレベルは、ユーザの自己申告に基づいて決定してもよい。また、データ若しくはアプリケーションの登録数、又は、登録したデータ若しくはアプリケーションの利用回数等に基づいて決定してもよい。また、ユーザの経歴に基づいて決定してもよい。
【0052】
図7は、実施例1の操作ログ管理情報311の一例を示す図である。
【0053】
操作ログ管理情報311は、APP ID701、分野702、目的703、フェーズ704、開始時刻705、終了時刻706、DB名707、及びクエリ708を含むレコードを格納する。アプリケーション及びフェーズの組合せに対して一つのエントリが存在する。なお、レコードに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
【0054】
APP ID701はAPP ID501と同一のフィールドである。分野702及び目的703は、アプリケーションによって実現されるサービスの分野及び目的を格納するフィールドである。
【0055】
フェーズ704は、アプリケーションのライフサイクルのフェーズを格納するフィールドである。開始時刻705及び終了時刻706は、フェーズに対応する期間の開始時刻及び終了時刻を格納するフィールドである。
【0056】
DB名707は、使用されたデータベースの名称を格納するフィールドである。クエリ708は、開発及び運用時に使用されたクエリの内容を格納するフィールド群である。クエリ708には、クエリ文、アクセス情報、及び条件等が含まれる。
【0057】
図8は、実施例1のデータ要件管理情報312の一例を示す図である。
【0058】
データ要件管理情報312は、ID801、分野802、目的803、フェーズ804、データ要件805、及び利用数806を含むレコードを格納する。なお、レコードに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
【0059】
ID801は、レコードを識別するIDを格納するフィールドである。
【0060】
分野802及び目的803は、アプリケーションによって実現されるサービスの分野及び目的を格納するフィールドである。フェーズ804は、アプリケーションのライフサイクルのフェーズを格納するフィールドである。
【0061】
データ要件805は、分野、目的、及びフェーズの組合せに対応するアプリケーションの開発/運用に用いるデータのデータ要件を格納するフィールド群である。データ要件805には、例えば、データ量、参照データ、及び例データ等が含まれる。利用数806は、データ要件の利用回数を格納するフィールドである。
【0062】
図9は、実施例1の中間データ管理情報313の一例を示す図である。
【0063】
中間データ管理情報313は、ID901、入力データ902、処理903、出力データ904、利用数905、登録者906、及びカタログ登録907を含むレコードを格納する。データのリネージを用いてレコードが生成される。なお、レコードに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
【0064】
ID901は、レコードを識別するIDを格納するフィールドである。
【0065】
入力データ902、処理903、及び出力データ904は、データを用いて新たなデータを生成する処理における、入力データ、処理、及び出力データを格納するフィールドである。利用数905は、処理の利用回数を格納するフィールドである。入力データ902及び出力データ904において、データカタログ400に登録されていない中間データには、仮のデータIDが付与される。
【0066】
登録者906は、リネージを利用したデータの登録者を格納するフィールドである。カタログ登録907は、中間データのデータカタログ400への登録情報を格納するフィールドである。中間デーがデータカタログ400に登録された場合、カタログ登録907には、中間データの仮データID及びデータIDが格納される。
【0067】
【0068】
エラー対処情報314は、テーブル1000及びテーブル1010を含む。テーブル1000は、エラー要因を管理するためのテーブルである。テーブル1010は、エラー要因に応じた対象方法を管理するためのテーブルである。
【0069】
テーブル1000は、要因ID1001及びエラー要因1002を含むレコードを格納する。一つのエラー要因に対して一つのレコードが存在する。なお、レコードに含まれるフィールドは前述したものに限定されない。
【0070】
要因ID1001は、エラー要因を識別するIDを格納するフィールドである。エラー要因1002は、エラー要因を格納するフィールドである。
【0071】
テーブル1010は、回避ID1011、要因ID1012、回避可否1013、及び手段1014を含むレコードを格納する。一つの回避手段に対して一つのレコードが存在する。なお、レコードに含まれるフィールドは前述したものに限定されない。
【0072】
回避ID1011は、回避手段を識別するIDを格納するフィールドである。要因ID1012は、回避手段を適用するエラー要因のIDを格納するフィールドである。回避可否1013は、エラーが回避可能か否かを示すフラグを格納するフィールドである。手段1014は、回避手段を格納するフィールドである。回避可否1013が「不可」のレコードの手段1014は空欄となる。
【0073】
図11は、実施例1のシステムにおける処理の概要を説明するシーケンス図である。実施例1のシステムでは三つの処理が実行される。なお、三つの処理は独立した処理である。
【0074】
(処理1)サービス開発支援システム100は、アプリケーションカタログ管理システム102からアプリケーション登録通知を受信した場合(ステップS101)、データ要件解析処理を実行する(ステップS102)。これは、スキルレベルが高いユーザが登録したアプリケーションの開発/運用に用いられたデータのデータ要件を解析し、蓄積するために行われる。
【0075】
(処理2)サービス開発支援システム100は、データカタログ管理システム101からデータ登録通知を受信した場合(ステップS111)、中間データ解析処理を実行する(ステップS112)。これは、スキルレベルが高いユーザが登録したデータに関連する中間データを特定するために行われる。利用回数が多い中間データをデータカタログ400に登録することによって、データ取得を容易にする目的がある。
【0076】
(処理3)サービス開発支援システム100は、ユーザ1100から、データの検索要求を受信した場合(ステップS121)、データ検索処理を実行する(ステップS122)。これは、アプリケーションの開発/運用に用いるデータを提供するために行われる。
【0077】
以下、三つの処理の詳細について説明する。
【0078】
まず、処理1について説明する。
図12は、実施例1のサービス開発支援システム100がアプリケーション登録通知を受信した場合に実行する処理の一例を説明するフローチャートである。
【0079】
サービス開発支援システム100は、アプリケーションを登録したユーザに関する情報を取得する(ステップS201)。以下では、登録されたアプリケーションをターゲットアプリケーションと記載し、アプリケーションを登録したユーザをターゲットユーザと記載する。
【0080】
具体的には、サービス開発支援システム100は、アプリケーションカタログ500を参照し、ターゲットアプリケーションのレコードのメタデータ502から、ターゲットユーザのユーザID又は氏名等を取得する。
【0081】
サービス開発支援システム100は、ターゲットユーザのスキルレベルが高いか否かを判定する(ステップS202)。
【0082】
具体的には、サービス開発支援システム100は、ユーザ管理情報310を参照し、ターゲットユーザのレコードの属性604からスキルレベルの値を取得する。アプリケーションカタログ連携部301は、当該値に基づいて、ターゲットユーザのスキルレベルが高いか否かを判定する。スキルレベルの高低の判定はルールベースで行われるものとする。
【0083】
ターゲットユーザのスキルレベルが低い場合、サービス開発支援システム100は処理を終了する。
【0084】
ターゲットユーザのスキルレベルが高い場合、サービス開発支援システム100は、データ要件解析処理を実行し(ステップS203)、その後、処理を終了する。
【0085】
図13は、実施例1のサービス開発支援システム100が実行するデータ要件解析処理の一例を説明するフローチャートである。
【0086】
サービス開発支援システム100は、ターゲットユーザが使用する開発環境ツール120の操作ログを取得できるか否かを判定する(ステップS301)。例えば、サービス開発支援システム100は、クライアント端末104に取得要求を送信し、取得が許可されているか否かを判定する。
【0087】
開発環境ツール120の操作ログを取得できる場合、サービス開発支援システム100は、当該操作ログを取得し(ステップS302)、取得した操作ログを用いてフェーズを特定する(ステップS303)。
【0088】
例えば、サービス開発支援システム100は、デプロイに関する操作ログからフェーズ「運用」の開始時刻を特定し、当該時刻より前の操作ログに基づいて、フェーズ「統合テスト」の期間を特定する。サービス開発支援システム100は、フェーズ「統合テスト」の開始時刻より前の操作ログに基づいて、フェーズ「単体テスト」の期間を特定する。
【0089】
サービス開発支援システム100は、データカタログ管理システム101から、ターゲットユーザに関する各フェーズの操作ログを取得する(ステップS304)。その後、サービス開発支援システム100はステップS308に進む。
【0090】
具体的には、サービス開発支援システム100は、データカタログ管理システム101から、特定された各フェーズの操作ログ、及びフェーズ「単体テスト」の期間より前の操作ログを取得する。
【0091】
ステップS301において、開発環境ツール120の操作ログを取得できないと判定された場合、サービス開発支援システム100は、アプリケーションリポジトリ103からターゲットアプリケーションのソースコードの登録日時を取得する(ステップS305)。
【0092】
サービス開発支援システム100は、データカタログ管理システム101から、ターゲットユーザに関するターゲットアプリケーションのソースコードの登録日時以前の操作ログ、及び、ターゲットユーザに関するターゲットアプリケーションの登録日時以前の操作ログを取得する(ステップS306)。
【0093】
サービス開発支援システム100は、取得した操作ログ、及び実行基盤105から取得可能なターゲットアプリケーションの稼働ログに基づいて、フェーズを特定する(ステップS307)。その後、サービス開発支援システム100はステップS308に進む。
【0094】
サービス開発支援システム100は、データカタログ管理システム101から取得した操作ログの中からデータベース110、111、112へのアクセスの操作ログを抽出し、フェーズ毎に当該操作ログを分類する(ステップS308)。
【0095】
サービス開発支援システム100は、操作ログ管理情報311の更新処理を実行する(ステップS309)。
【0096】
サービス開発支援システム100は、データ要件管理情報312の更新処理を実行し(ステップS310)、その後、データ要件解析処理を終了する。
【0097】
図14は、実施例1のサービス開発支援システム100が実行する操作ログ管理情報311の更新処理の一例を説明するフローチャートである。
【0098】
サービス開発支援システム100は、操作ログのループ処理を開始する(ステップS401)。
【0099】
サービス開発支援システム100は、操作ログに含まれるクエリを解析し(ステップS402)、クエリに条件が含まれるか否かを判定する(ステップS403)。例えば、WHERE句を含む場合、条件が含まれると判定される。
【0100】
クエリに条件が含まれる場合、サービス開発支援システム100はステップS407に進む。
【0101】
クエリに条件が含まれない場合、サービス開発支援システム100は、データカタログ400に参照元データの生成に関する情報が含まれるか否かを判定する(ステップS404)。
【0102】
データカタログ400に参照元データの生成に関する情報が含まれる場合、サービス開発支援システム100は、当該情報を解析し、解析結果を条件に設定する(ステップS405)。その後、サービス開発支援システム100はステップS407に進む。
【0103】
データカタログ400に参照元データの生成に関する情報が含まれない場合、サービス開発支援システム100は、条件なしを設定する(ステップS406)。その後、サービス開発支援システム100はステップS407に進む。
【0104】
ステップS407では、サービス開発支援システム100は、操作ログ管理情報311にレコードを追加する(ステップS407)。
【0105】
具体的には、サービス開発支援システム100は、操作ログ管理情報311にレコードを追加し、レコードのAPP ID701にターゲットアプリケーションのIDを設定し、分野702及び目的703にターゲットアプリケーションの分野及び目的を設定する。サービス開発支援システム100は、追加されたレコードのフェーズ704、開始時刻705、終了時刻706に、操作ログに対応するフェーズの情報を設定する。サービス開発支援システム100は、追加されたレコードのDB名707にアクセスしたデータベースの名称を設定し、また、クエリ708にクエリの情報を設定する。クエリ708に含まれる条件のフィールドには、クエリに含まれる条件、解析結果、及び条件なしのいずれかが設定される。
【0106】
サービス開発支援システム100は、全ての操作ログについて処理が完了したか否かを判定する(ステップS408)。
【0107】
全ての操作ログについて処理が完了していない場合、サービス開発支援システム100はステップS401に戻り、同様の処理を実行する。
【0108】
全ての操作ログについて処理が完了した場合、サービス開発支援システム100は操作ログ管理情報311の更新処理を終了する。
【0109】
図15は、実施例1のサービス開発支援システム100が実行するデータ要件管理情報312の更新処理の一例を説明するフローチャートである。
【0110】
サービス開発支援システム100は、分野及び目的の組合せを生成する(ステップS501)。
【0111】
サービス開発支援システム100は、分野及び目的の組合せのループ処理を開始する(ステップS502)。
【0112】
サービス開発支援システム100は、データ要件管理情報312に、分野及び目的の組合せが同一であるレコードが存在するか否かを判定する(ステップS503)。
【0113】
分野及び目的の組合せが同一であるレコードが存在しない場合、サービス開発支援システム100はステップS506に進む。
【0114】
分野及び目的の組合せが同一であるレコードが存在する場合、サービス開発支援システム100は、分野及び目的の組合せに対応する操作ログから抽出されるデータ要件と、当該レコードのデータ要件との間に相関があるか否かを判定する(ステップS504)。
【0115】
例えば、操作ログのフェーズ及び操作ログに含まれる参照データが、レコードに含まれる値と同一である場合、データ要件に相関があると判定される。
【0116】
データ要件は、例えば、以下のようにして抽出される。サービス開発支援システム100は、操作ログからデータの行数を取得し、生成データ行数をデータ要件として抽出する。サービス開発支援システム100は、操作ログからデータコピーを取得した場合、スナップショットをデータ要件として抽出する。サービス開発支援システム100は、操作ログからデータ参照範囲を取得した場合、データ参照範囲をデータ要件として抽出する。なお、前述の抽出方法は一例であってこれに限定されない。
【0117】
相関がある場合、サービス開発支援システム100は、当該レコードの利用数806の値をインクリメントし(ステップS505)、ステップS507に進む。
【0118】
相関がない場合、サービス開発支援システム100はステップS506に進む。
【0119】
ステップS506では、サービス開発支援システム100は、分野及び目的の組合せに対応する操作ログから抽出されるデータ要件に基づいて、データ要件管理情報312にレコードを追加する(ステップS506)。その後、サービス開発支援システム100はステップS507に進む。
【0120】
ステップS507では、サービス開発支援システム100は、分野及び目的の全ての組合せについて処理が完了したか否かを判定する(ステップS507)。
【0121】
分野及び目的の全ての組合せについて処理が完了していない場合、サービス開発支援システム100はステップS502に戻る。
【0122】
分野及び目的の全ての組合せについて処理が完了した場合、サービス開発支援システム100はデータ要件管理情報312の更新処理を終了する。
【0123】
次に、処理2について説明する。
図16は、実施例1のサービス開発支援システム100がデータ登録通知を受信した場合に実行する処理の一例を説明するフローチャートである。
【0124】
サービス開発支援システム100は、データを登録したユーザに関する情報を取得する(ステップS601)。以下では、登録されたデータをターゲットデータと記載し、データを登録したユーザをターゲットユーザと記載する。
【0125】
具体的には、サービス開発支援システム100は、データカタログ400を参照し、ターゲットデータのレコードのメタデータ402から、ターゲットユーザのユーザID又は氏名等を取得する。
【0126】
サービス開発支援システム100は、ターゲットユーザのスキルレベルが高いか否かを判定する(ステップS602)。ステップS602の処理はステップS202の処理と同一である。
【0127】
ターゲットユーザのスキルレベルが低い場合、サービス開発支援システム100は処理を終了する。
【0128】
ターゲットユーザのスキルレベルが高い場合、サービス開発支援システム100は、中間データ解析処理を実行する(ステップS603)。
【0129】
サービス開発支援システム100は、データカタログ管理システム101に、ターゲットデータに対して、スキルレベルが高いことを示すタグの付与を依頼する(ステップS604)。
【0130】
サービス開発支援システム100は、アプリケーションカタログ管理システム102に、ターゲットデータの処理を実行するアプリケーションの登録を依頼し(ステップS605)、その後、処理を終了する。
【0131】
図17は、実施例1のサービス開発支援システム100が実行する中間データ解析処理の一例を説明するフローチャートである。
【0132】
サービス開発支援システム100は、データカタログ400から、ターゲットデータのリネージを取得し、データ変換を実行することによって変換データを生成する(ステップS701)。
【0133】
具体的には、サービス開発支援システム100は、入力データ、処理、及び出力データを項目として有する変換データを生成する。
【0134】
サービス開発支援システム100は、変換データを解析し、解析結果に基づいて、データカタログ400を参照し、データカタログ400に登録されていない中間データを特定する(ステップS702)。このとき、サービス開発支援システム100は、特定された中間データに仮データIDを付与する。
【0135】
なお、変換データが処理の情報のみが含まれる場合、処理結果として出力されるデータは中間データとなる。
【0136】
サービス開発支援システム100は、中間データ管理情報313を参照し、変換データと同一内容のレコードが存在するか否かを判定する(ステップS703)。
【0137】
具体的には、入力データ902、処理903、及び出力データ904の値の組合せが、変換データに含まれる値の組合せと同一であるレコードが存在するか否かが判定される。
【0138】
変換データと同一内容のレコードが存在しない場合、サービス開発支援システム100は、中間データ管理情報313にレコードを追加し(ステップS704)、その後、中間データ解析処理を終了する。
【0139】
具体的には、サービス開発支援システム100は、中間データ管理情報313にレコードを追加し、当該レコードのID901にIDを設定する。また、サービス開発支援システム100は、変換データに基づいて、追加されたレコードの入力データ902、処理903、及び出力データ904に値を設定する。サービス開発支援システム100は、追加されたレコードの利用数905に1を設定する。
【0140】
変換データと同一内容のレコードが存在する場合、サービス開発支援システム100は、当該レコードの利用数905をインクリメントする(ステップS705)。
【0141】
サービス開発支援システム100は、中間データをデータカタログ400に登録するか否かを判定する(ステップS706)。
【0142】
具体的には、サービス開発支援システム100は、レコードの利用数905の値が閾値より大きいか否かを判定する。レコードの利用数905の値が閾値より大きい場合、サービス開発支援システム100は、当該レコードに対応する中間データを登録すると判定する。
【0143】
中間データをデータカタログ400に登録しない場合、サービス開発支援システム100は中間データ解析処理を終了する。
【0144】
中間データをデータカタログ400に登録する場合、サービス開発支援システム100は、データカタログ管理システム101に中間データの登録を依頼し(ステップS707)、その後、中間データ解析処理を終了する。サービス開発支援システム100は、データカタログ管理システム101から中間データに付与されたデータIDを取得し、レコードのカタログ登録907に仮データID及びデータIDの組みを設定する。
【0145】
次に、処理3について説明する。
図18は、実施例1のサービス開発支援システム100がデータの検索要求を受信した場合に実行する処理の一例を説明するフローチャートである。
図19及び
図20は、実施例1のサービス開発支援システム100が提示する画面の一例を示す図である。
【0146】
データの検索要求を受信した場合、サービス開発支援システム100は、
図19に示す画面1900を提示する。画面1900は、入力領域1901、表示領域1902、及び選択領域1903を含む。
【0147】
入力領域1901は、データの検索条件を入力するための領域であり、入力欄1910、1911、1912、1913、及び検索ボタン1914を含む。入力欄1910は、サービスの分野を入力する欄である。入力欄1911は、サービスの目的を入力する欄である。入力欄1912は、サービスの要件を入力する欄である。サービスの要件は、メタデータ402に含まれる要件である。入力欄1913は、データのフィールド名又はデータに含まれる値等、データの検索に用いるキーワードを入力する欄である。検索ボタン1914は、検索実行を指示する操作ボタンである。
【0148】
ユーザが検索ボタン1914を操作した場合、入力欄1910、1911、1912、1913に入力した値を含む検索実行要求がサービス開発支援システム100に送信される。
【0149】
表示領域1902は、検索結果を表示する領域である。表示領域1902には、入力領域1901を介して入力された検索条件を満たすデータを表示するテーブル1920が表示される。テーブル1920は、選択1921、データID1922、メタデータ1923、及びリネージ1924を含むレコードを格納する。データID1922、メタデータ1923、及びリネージ1924は、データID401、メタデータ402、及びリネージ403と同一のフィールドである。選択1921は、アプリケーションの開発/運用に使用するデータを生成するためのデータを選択するラジオボタンを表示する領域である。
【0150】
選択領域1903は、アプリケーションのライフサイクルのフェーズを選択するための領域であり、フェーズボタン1930、1931、1932、1933を含む。なお、選択領域1903に表示されるボタンの数及び内容は一例であってこれに限定されない。
【0151】
ユーザが、テーブル1920から一つのデータを選択し、フェーズボタン1930、1931、1932、1933のいずれかを操作した場合、選択したデータのID、分野、目的、及びフェーズを含む出力要求がサービス開発支援システム100に送信される。
【0152】
図18の説明に戻る。サービス開発支援システム100は、検索実行要求に含まれる検索条件を取得し(ステップS801)、データ検索処理を実行する(ステップS802)。サービス開発支援システム100は、テーブル1920にデータ検索処理の結果を表示する。
【0153】
サービス開発支援システム100は、ユーザから受け付けた要求が出力要求であるか否かを判定する(ステップS803)。
【0154】
ユーザから受け付けた要求が検索実行要求である場合、サービス開発支援システム100はステップS801に戻る。
【0155】
ユーザから受け付けた要求が出力要求である場合、サービス開発支援システム100は、データ要件管理情報312を参照してデータ要件を特定する(ステップS804)。
【0156】
具体的には、サービス開発支援システム100は、分野、目的、及びフェーズの組合せが、検索条件に含まれる分野、目的、及びフェーズの組合せと一致するレコードを検索する。サービス開発支援システム100は、
図20に示すような画面2000を表示する。画面2000は、特定されたデータ要件を表示するテーブル2010、取得ボタン2020、及びキャンセルボタン2021を含む。
【0157】
ユーザが取得ボタン2020を操作した場合、データ提供要求がサービス開発支援システム100に送信される。ユーザがキャンセルボタン2021を操作した場合、終了要求がサービス開発支援システム100に送信される。
【0158】
サービス開発支援システム100は、ユーザから受け付けた要求がデータ提供要求であるか否かを判定する(ステップS805)。
【0159】
ユーザから受け付けた要求が終了要求である場合、サービス開発支援システム100は処理を終了する。
【0160】
ユーザから受け付けた要求がデータ提供要求である場合、サービス開発支援システム100は、選択されたデータ及び特定されたデータ要件に基づいて使用データを生成し、ユーザに提供する(ステップS806)。その後、サービス開発支援システム100は処理を終了する。
【0161】
具体的には、サービス開発支援システム100は、データ要件に基づいて、データベース110、111、112のいずれかからデータを取得し、使用データを生成する。取得したデータがそのまま使用データとして生成されてもよいし、取得したデータに対して任意の加工処理を実行することによって使用データが生成されてもよい。
【0162】
なお、サービス開発支援システム100は、必要に応じて、使用データをデータカタログ400に登録してもよい。
【0163】
図21は、実施例1のサービス開発支援システム100が実行するデータ検索処理の一例を説明するフローチャートである。
【0164】
サービス開発支援システム100は、検索要求に含まれる検索条件(分野、目的、要件、キーワード)に基づいて、データカタログ400からデータを検索する(ステップS901)。
【0165】
なお、スキルレベルが高いことを示すタグが付与されたデータのみを検索対象としてもよい。これによって、サービスの開発/運用の効率化するデータを優先的に検索できる。
【0166】
サービス開発支援システム100は、検索条件を満たすデータが存在するか否かを判定する(ステップS902)。
【0167】
検索条件を満たすデータが存在する場合、サービス開発支援システム100は、検索を要求したユーザのスキルレベルが低いか否かを判定する(ステップS903)。ユーザのスキルレベルの判定方法はステップS202と同様であるため説明を省略する。
【0168】
検索を要求したユーザのスキルレベルが高い場合、サービス開発支援システム100は、表示領域1902のテーブル1920に、検索されたデータを提示し(ステップS905)、データ検索処理を終了する。
【0169】
検索を要求したユーザのスキルレベルが低い場合、サービス開発支援システム100は、中間データ管理情報313から、検索されたデータに関連する中間データであって、スキルレベルが高いことを示すタグが付与された中間データを検索する(ステップS904)。サービス開発支援システム100は、表示領域1902のテーブル1920に、検索されたデータ及び検索された中間データを提示し(ステップS905)、データ検索処理を終了する。
【0170】
ステップS902において、検索条件を満たすデータが存在しないと判定された場合、サービス開発支援システム100は、該当するデータが見つからなかったエラー要因を特定する(ステップS906)。
【0171】
サービス開発支援システム100は、エラー対処情報314を参照して、特定されたエラー要因を回避できるか否かを判定する(ステップS907)。
【0172】
具体的には、サービス開発支援システム100は、エラー対処情報314のテーブル1000を参照して、特定されたエラー要因のIDを取得する。サービス開発支援システム100は、エラー対処情報314のテーブル1010を参照して、要因ID1012に取得したIDが設定されるレコードを検索し、当該レコードの回避可否1013が「可」であるか否かを判定する。レコードの回避可否1013が「可」である場合、サービス開発支援システム100は特定されたエラー要因を回避できると判定する。
【0173】
特定されたエラー要因を回避できない場合、サービス開発支援システム100はデータ検索処理を終了する。
【0174】
特定されたエラー要因を回避できる場合、サービス開発支援システム100は、回避処理を実行し(ステップS908)、その後、データ検索処理を終了する。
【0175】
例えば、アクセス権がないことがエラー要因である場合、サービス開発支援システム100は、生データ又は複製データへのアクセス権を付与し、再度検索を行う回避処理が考えられる。
【0176】
以上で説明したように、サービス開発支援システム100は、アプリケーションのライフサイクルのフェーズに応じたデータをユーザに提供できる。
【0177】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0178】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0179】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0180】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0181】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。