PEXA Modelについて

チュートリアル

定義ファイル

機能一覧

リファレンス

目次
  1. はじめに
  2. Proxyの種別について
  3. Proxy定義ファイルの書式


はじめに

このドキュメントは、PEXAモデルフレームワークで使用されるProxy定義について解説する物です。

プロキシとは、データモデルをシステム内でユニークに特定するためのユニークキーの定義です。
ユニークキー自体に対してIDや名称を割り振り、内部で保持する通番や識別フラグ、モデル名などをこの定義ファイルで宣言します。

この定義ファイルはXMLファイルとして記述され、ビルドツールを通すことでカタログHTMLファイルとプロキシのJavaソースコードが生成されます。

なお、プロキシを取得することが出来れば、結びつくデータモデルがその業務システムからユニークに検索できることがPEXAでは保証されています。


Proxyの種別について

Proxyは、以下の2つのタイプがあります。

  • ObservableProxy:識別フラグ無し
  • IdentifiedObservableProxy:識別フラグ有り
それぞれについて以下で説明します。

ObservableProxy

内部で通番のみを保持するProxyです。

このタイプのProxyは、結びつくデータモデルの名称をProxy内部で静的に保持しています。
そのため、このProxyを取得することが出来れば、それだけで必ずデータモデルがユニークに特定できます。

例:

 ObservableProxy
┌───────────┐
│Proxy名=ユーザNo      │
│ID=122                │
│モデル名=ユーザマスタ │
└───────────┘
  │
  │
  │   ユーザマスタ
  │  ┌──┬─────┬────→
  │  │121 │ユーザA   │
  │  ├──┼─────┼────→
  └→│122 │ユーザB   │
      ├──┼─────┼────→
      │123 │ユーザC   │
      └──┴─────┴────→


IdentifiedObservableProxy

内部で通番と識別フラグの二つの値を保持するProxyです。

このタイプのProxyは、データモデルのステレオタイプに対して用意される物となります。
そのため、結びつくデータモデルの名称を静的に保持することが出来ないため、同じステレオタイプを持つデータモデルが複数個システム内に存在すると、通番のみではデータモデルを特定することが出来ません。 そこで、通番の他にデータモデルの種類を特定するための識別フラグを内部で組み合わせて保持することで、システム内からユニークにデータモデルを特定できるようにしています。

なお、データモデル名を静的に保持することは出来ませんが、その代わりにExtendedFinder名称を保持することは出来ます。

その場合、PEXAのExtendedFinder機能の内部でProxyに保持されている識別フラグが参照されて実際に紐尽くデータモデルが特定されます。 このProxyと組み合わされる識別フラグは現象として定義されます。 識別フラグについてはこちらを参照して下さい。

例:

 IdentifiedObservableProxy
┌──────────────────────────┐
│Proxy名=OrderNo                                     │
│ID=122                                              │
│IdentifiedFlag=OrderIdentifiedFlag:PrescriptionOrder│
└──────────────────────────┘
  │
  │
  │   SampleTestingOrder
  │  ┌──┬─────┬────→
  │  │121 │          │
  │  ├──┼─────┼────→
  │  │122 │          │
  │  ├──┼─────┼────→
  │  │123 │          │
  │  └──┴─────┴────→
  │
  │   PathologyOrder
  │  ┌──┬─────┬────→
  │  │121 │          │
  │  ├──┼─────┼────→
  │  │122 │          │
  │  ├──┼─────┼────→
  │  │123 │          │
  │  └──┴─────┴────→
  │   
  │   PrescriptionOrder
  │  ┌──┬─────┬────→
  │  │121 │          │
  │  ├──┼─────┼────→
  └→│122 │          │
      ├──┼─────┼────→
      │123 │          │
      └──┴─────┴────→



Proxy定義ファイルの書式

以降で、Proxy定義ファイルの書式について解説します。

Proxy定義ファイルは、XML形式で記述します。
ルートタグのproxyタグで、seqno属性にProxyのIDを指定します。

<?xml version="1.0" encoding="Windows-31j"?>
<!--
 COPYRIGHT
 -->
<!DOCTYPE proxy SYSTEM "../doctype/proxy.dtd">
<!--==============================================================
 == Current-Module:   $HeadURL: http://pexa.atrris.com/repos/trunk/doc/material/developGuide/model/xdocs/ja/pexa_model_definition_proxy.xml $
 == Release-Date:     $Date:: 2007-05-17 17:26:24 #$
 == Release-Version:  $Revision: 770 $
 == First-Created-On: 2007/04/27
 == First-Created-By: 
 == Copy-Right-Owner: 
 ==============================================================-->

<!-- プロキシィ -->
<proxy seqno="PX9000001">
       :
       :
       :
</proxy>
このIDはシステム内でユニークになるIDを割り当てて下さい。
なお、通番に関する標準的な命名規則についてはこちらを参照して下さい。

内部は以下のセクションに分割されています。


identityセクション

記述例 : ObservableProxy(通番のみ保持)

<!-- プロキシィの種別 -->
<identity   name ="SampleProxy1"
       implement ="pexa.share.proxy.SampleProxy1"
      finderpath ="SamplleProxy1"
        dispName ="サンプルプロキシ1" >
    <observableProxy id="java.lang.Integer"/>
</identity>
記述例 : IdentifiedObservableProxy(通番と識別フラグを保持)
<!-- プロキシィの種別 -->
<identity   name ="SampleProxy2"
       implement ="pexa.share.proxy.SampleProxy2"
      finderpath =""
        dispName ="サンプルプロキシ2" >
    <identifiedProxy id="java.lang.Integer"
                     flag="pexa.share.business.SampleIdentFlag"    
                     href="PH9000005.xml"/>
</identity>

説明 :
Proxyの識別情報を記述します。
Proxy名称や実装クラス名を属性で指定し、配下のタグでProxy実装の詳細な定義を行います。

属性値 :
identityタグの属性値は以下の通り。

属性値名 説明 形式 必須/非必須
name Proxy名の指定です。
この名称は必ずシステム内でユニークになる必要があります。
また、実装クラス名(パッケージは除く)と同一にして下さい。
文字列 必須
implement 現象の実装クラス名を指定して下さい。 文字列 必須
finderpath このProxyが紐尽くデータモデル名もしくはExtendedFinder名を指定します。
この属性値が設定されていれば、PEXAの実行エンジンによりデータモデルとの自動接続が可能となります。
文字列 非必須
dispName Proxyの表示名称指定です。
Proxy名とは別の名称を指定できますので、例えばProxy名は英字で統一するがdispName側には分かりやすい日本語名を付けておくといった指定が出来ます。
文字列 必須

セクション内の子要素:
identityセクションのサブ要素として、observableProxyタグとidentifiedProxyタグがあります。
どちらか一方を指定します。

observableProxyタグ

通番のみを保持するProxyを定義するためのタグです。
内部で保持する通番の型情報を指定します。

属性値 :
observableProxyタグの属性値は以下の通り。

属性値名 説明 形式 必須/非必須
id Proxyが保持する通番の型(クラス名)を指定します。 文字列 必須

identifiedProxyタグ

通番と識別フラグを保持するProxyを定義するためのタグです。
内部で保持する通番の型及び、識別フラグの情報を指定します。

属性値 :
identifiedProxyタグの属性値は以下の通り。

属性値名 説明 形式 必須/非必須
id Proxyが保持する通番の型(クラス名)を指定します。 文字列 必須
flag Proxyが保持する識別フラグの型(クラス名)を指定します。 文字列 必須
href Proxyが保持する識別フラグの現象定義ファイルを指定します。 文字列 必須


abstractセクション

記述例 :

<!-- 概要  -->
<abstract>
    プロキシのサンプル1
</abstract>

説明 :
Proxyの概要説明を記述します。
文字列で自由に記述して下さい。


definitionセクション

記述例 :

<!-- 定義  -->
<definition>
    プロキシのサンプルその1(IDのみを持つ)
</definition>

説明 :
Proxyの定義内容説明を記述します。
文字列で自由に記述して下さい。


statusセクション

記述例 :

<status>
    <author>$Author: morishita $</author>
    <datetime>$Date:: 2007-05-17 17:26:24 #$</datetime>
    <version>$Revision: 770 $</version>
</status>

説明 :
定義ファイルの編集情報を記述するセクションです。
バージョン管理システムの置換キーワードなどと連携して使用してください。

セクション内の子要素 :
以下の子要素があります。

authorタグ

タグの間にはさんで、ファイルの編集者を記述します。


datetimeタグ

タグの間にはさんで、ファイルの編集日時を記述します。


versionタグ

タグの間にはさんで、ファイルのバージョンを記述します。



更新情報

  • 最終更新者 : $Author: morishita $
  • 最終更新日時 : $Date:: 2007-05-17 17:26:24 #$
  • バージョン : $Revision: 770 $



Copyright © 2006, Atrris Corporation