メタデータ管理

1. メタデータとは

iPLAss上で管理するデータは「エンティティ」と呼称します。エンティティはRDB上でのテーブルと同義のものです。エンティティは「プロパティ(属性)」を持ちます。プロパティはRDB上でのカラムと同義のものです。 エンティティの定義は、アプリケーションの管理者がWebブラウザ上から設定することが可能です。 また、定義されたエンティティをどのように画面に表示するか(入力フィールドなのか、プルダウンなのか、項目並び順、表示有無など)も設定可能です。 設定した定義内容は即座にアプリケーションに反映されます。

iPLAss上では、これら、アプリケーションで扱うデータや振る舞いを定義する設定情報を「メタデータ」と呼称します。

メタデータにはエンティティ定義以外にもいくつかの種類が存在します。 これらメタデータを管理する機能、Webコンソール(AdminConsole)を提供します。

メタデータは、テナント単位で異なった設定を適用可能です。

2. メタデータの管理方式

メタデータはいくつかの形式で管理、保存することが可能です。

AdminConsoleによる管理

メタデータをAdminConsoleにて管理する方式です。 AdminConsoleにて変更したメタデータの変更内容は即座にアプリケーションに反映されます。 AdminConsole経由で保存されたメタデータは、データベースに(もしくはgit等のバージョン管理システムを利用する場合は、開発者端末のローカルファイルに)保存されます。

設定ファイルによる管理

メタデータをxml形式のファイルに記述し、iPLAssベースのWebアプリケーション(war)に含め配布(デプロイ)することが可能です。

アノテーションによる記述・管理

カスタム開発ではJavaによるコーディングを行うことが可能ですが、これらカスタムコードに密接に関連するメタデータは、Javaコード上にアノテーションで記述することが可能です。

ソースコードによる記述・管理

TypedDefinitionManagerを継承した各メタデータ用のインタフェースを利用して、Javaコードから直接メタデータを変更することが可能です。詳細はTypedDefinitionManager を参照してください。

3. メタデータの種類

以下にiPLAss上で管理されるメタデータの例を示します。

メタデータ 説明

エンティティ定義

エンティティとそのプロパティ(属性)を定義します。 エンティティに定義されるプロパティのデータ型や制約、またエンティティ間のリファレンス(参照)を定義することが可能です。

エンティティビュー定義

エンティティの画面表示の仕方を定義します。 検索画面や更新画面に表示する項目、またその表示形式(テキストフィールド、ラジオボタンなど)を指定することが可能です。 また、エンティティをカレンダー上にマップしたり、ツリー形式で表示させたり、いくつかの画面パターンを定義することができます。

認証ポリシー定義

パスワードの有効期限、複雑度、二段階認証の有無、SAML利用有無など、ユーザー認証の方法やそのポリシーを定義します。

集計定義

エンティティのデータ集計方法を定義します。 集計したデータのグラフ表示有無、またグラフ種類、フィルター項目などの定義が可能です。 集計定義には、「定型集計」、エンドユーザーが自由に集計項目を指定可能な「汎用検索」、「簡易BI」など、いくつかの種類があります。 また、いくつかの集計定義をまとめて表示するダッシュボードを定義可能です。

メールテンプレート定義

パスワードリセット時の通知メールなどのiPLAssが送信するメール、またカスタム処理が送信するメールのテンプレートを定義可能です。テンプレート文面にユーザー情報などの埋め込みが可能です。

トップビュー定義

ログイン後のTop画面に表示する内容などを定義します。

メニュー定義

メニューに表示する項目を定義します。

WebApi定義

カスタムロジックを実行するWebApiの定義および、そのカスタムロジックを定義します。

テンプレート定義

カスタムで作成された画面の定義、およびその画面生成ロジックを定義します。 テンプレート定義にはいくつかの種類があります。JSPをテンプレートとして指定したり、Groovy Template形式で直接ロジックを記述したりすることが可能です。

これらのメタデータをAdminConsole上(もしくは、xmlファイル、アノテーション、ソースコード)で設定していくことにより、少ないコード量によるアプリケーション構築を可能にしています。

それぞれのメタデータの詳細、またその他のメタデータは個別の機能の説明を参照してください。