4.3.1 データモデルの設計

データモデルの設計では、サービスカタログの作成とデータモデルの定義を行います。

(表)データモデル設計項目と概要

項目 定義手段 設計のポイント
・Catalog
・Datamodel
YAMLファイル 必要となるカタログアイテムを洗い出した上で、申請やデータレコード呼び出しなどのパターンで分類します。また、カタログアイテムの表示・非表示と、表示順を整理します。
申請などワークフローにひもづく作業で、管理しておくデータレコードを整理し、テーブル、カラムなどのデータモデルを設計します。

(1)サービスカタログ

サービスカタログは複数のカタログアイテムで構成されます。またカタログアイテムは、カテゴリーで分類されます。
ユーザーはカタログアイテムから、ワークフローを実行することができます。またワークフローからUIのYAMLファイルで定義した画面を表示し、データレコードなどの作成や編集が行えます。
このようにサービスカタログによって、ユーザーは任意のタスクを管理することができます。
カテゴリーやカタログアイテムはCatalogのYAMLファイルで定義します。詳細は「Catalog」を参照してください。

(図)サービスカタログの概要

(図)サービスカタログの概要 (図)サービスカタログの概要


【カテゴリーとカタログアイテムの表示設定】

CatalogのYAMLファイルには、ファイルごとに複数のカテゴリーを設定できます。また、カテゴリーごとに複数のカタログアイテムを設定できます。

カテゴリーやカタログアイテムは、CatalogのYAMLファイルに記載された順に表示されます。
サービスカタログを複数のCatalogのYAMLファイルで設定している場合、YAMLファイルをGitに登録した順に表示されます。登録済のYAMLファイルを更新しても表示順に影響しません。
YAMLファイルを登録した順番以外で表示する場合は、表示の優先順位を設定します。詳細は「カテゴリーの表示順(YAMLファイル単位)の優先順位」を参照してください。
また、カタログの表示・非表示を顧客やグループごとに制限できます。詳細は「アクセス制御」を参照してください。

【カテゴリーの表示順(YAMLファイル単位)の優先順位】

カテゴリエリアでは、カテゴリーの表示順を以下の方法で指定することができます。
カテゴリーを複数のCatalogのYAMLファイルに分けて記載している場合、CatalogのYAMLファイルのラベル「order」で表示の優先順位を設定できます。同じ優先順位の場合は、YAMLファイルをGitに登録した順番に表示されます。登録後の更新は表示順に影響しません。優先順位を設定していないCatalogのYAMLファイルは表示の優先順位が一番低くなります。同一のYAMLファイルに記載されているカテゴリーの表示順は、YAMLファイルの記載順に従います。

(図)カテゴリーとカタログアイテムの表示

(図)サービスカタログの概要 (図)サービスカタログの概要

【アクセス制御】

アクセス制御により、カタログアイテムを参照できるユーザーをCatalogのYAMLファイル単位で指定することができます。指定しない場合はすべてのユーザーが参照できます。
アクセス制御は、顧客別とグループ別の2種類の方法があります。顧客別アクセス制御とグループ別アクセス制御を同時に使用する場合は、両方の条件を満たしたユーザーが参照できます。

注意事項注意事項

カタログアイテムを参照できるユーザーの設定は本機能で行うため、CatalogのYAMLファイルで指定しますが、カタログアイテムにひもづくワークフローの申請、承認、およびタスク実行などの各アクティビティを実行できるユーザーの設定は、WorkflowのYAMLファイルで指定します。

  1. 顧客別のアクセス制御
    顧客ユーザーに対して有効な制御です。顧客ユーザーの詳細については「ユーザー」を参照してください。
    設定はCatalogのYAMLファイルのcustomersラベルで行います。customerラベルを設定すると、顧客ユーザー以外と、指定した顧客ユーザーに対して表示されます。設定しない場合は、すべてのユーザーに表示されます。詳細は「Catalog」を参照してください。

    (表)顧客によるアクセス制御
    ユーザー customersラベル
    設定なし 顧客Aを指定
    顧客ユーザー以外 表示 表示
    顧客Aに所属する顧客ユーザー 表示 表示
    顧客Bに所属する顧客ユーザー 表示 非表示

  2. グループ別のアクセス制御
    すべてのユーザーに対して有効な制御です。
    設定はCatalogのYAMLファイルのgroupsラベルで行います。
    groupsラベルを設定すると、指定したグループに対して表示されます。設定しない場合は、すべてのグループに表示されます。詳細は「Catalog」を参照してください。

    (表)グループによるアクセス制御
    ユーザー groupsラベル
    設定なし グループAを指定
    グループAに所属するユーザー 表示 表示
    グループBに所属するユーザー 表示 非表示

    登録したカタログアイテムをすべて参照できるのは、各YAMLファイルのgroupsラベルに指定したグループすべてに所属しているユーザーです。


【サービスカタログ情報の取得】

サービスカタログの情報を取得する場合、API「GET /api/v1/service-catalogs」を使用します。APIおよび実行するためのロールについての詳細は「JP1 Cloud Service 運用統合 APIリファレンス」の「APIリファレンス詳細>標準提供API」および「APIとOps I上ロールの対応関係」を参照してください。


(2)データモデル

データモデルでは、1つのデータモデルの枠組みの中で複数のテーブルをまとめて管理することができます。そのためには複数の申請で共有するデータ項目をYAMLファイルで定義する必要があります。申請対応に必要な情報を各カラムで定義し、それをテーブルとして管理します。
データモデルのYAML定義の詳細は「Datamodel」を参照してください。

(図)データモデルの概念図

(図)データモデルの概念図 (図)データモデルの概念図


VM貸出申請業務でVM貸出台帳をデータモデル設計する場合、VM貸出申請のカタログアイテムを作成し、申請に必要な情報を洗い出し、VM貸出台帳としてデータモデルのYAML定義をします。申請に必要な情報としては、申請の通し番号やVMを利用するシステム名、また、貸出したVM名などがあります。
以下に情報とカラムの一覧を例として示します。

(表)VM貸出台帳記載カラム一覧の例

テーブル カラム 説明 データ形式 デフォルト値 NULL入力 enumリスト
VM貸出台帳 申請番号 申請の通し番号 文字列
varchar(32)
- -
システム名 VMを利用するシステム名 リスト
enum
- 受注管理システム
顧客管理システム
生産管理システム
VM名 貸出したVM名 文字列
varchar(32)
- -
OS種別 WindowsまたはLinuxを選択 リスト
enum
- Windows
Linux
CPU VMで利用するvCPUコア数 数値
integer
- -
メモリ VMで利用するメモリ容量 数値
integer
- -
ストレージ VMで利用するストレージ容量 数値
integer
- -
利用申請者 VM貸出の申請者名 文字列
varchar(256)
- -
利用開始日 VMの利用開始日 日付
date
- -
申し送り事項 申し送り事項 文字列
text
- -
チェックリスト(ファイル) 記入済みのチェックリスト ファイル
document
- -
チェックリスト(URL) 記入済みのチェックリストのURL 文字列
text
- -

上記一覧で定義された内容が画面上どのように表現されるかについては、「UI設計」のVM貸出の申請を例に説明している個所を参照してください。