ファーストステップガイド / Full Edition (PDFドキュメント)

ECOSS Solution M3TM : Documentation
M3 ファーストステップガイド
M3 Full Edition
2006 年 11 月
第2版
株式会社エコス
限定的権利条項
本ソフトウェアおよびドキュメントは、著作権,特許権およびその他の知的財産権に関する法律により保護されて
おり、ECOSS Inc. の使用許諾契約に基づいて提供され、その内容に同意する場合にのみ使用することができ、
同契約の条項通りにのみ使用またはコピーすることができます。
また、当プログラムのリバース・エンジニアリング等は禁止されております。
本ドキュメントの情報は予告なしに変更される事があります。本ドキュメントの記載にあたっては正確な記述につ
とめましたが、ECOSS Inc. は、本ドキュメントの内容に対して何らかの保証をするものではなく、内容やサンプルに
基づくいかなる運用結果に関してもいっさいの責任は負いません。
本ドキュメントに記載されているサンプルプログラムやスクリプト、および実行結果を記した画面イメージなどは、特定
の設定に基づいた環境にて再現される一例です。
商標または登録商標
ECOSS、および、esFoundation、M3 は、ECOSS Inc.の商標です。
Windows、.NET Framework、Visual Basic、C#、SQL Server は、米国 Microsoft Corporation の米国およびそ
の他の国における商標または登録商標です。
Java は、米国 Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Sun、Sun Microsystems、Solaris は、米国における米国 Sun Microsystems, Inc.の商標または登録商標です。
Java およびその他の Java を含む商標は、米国 Sun Microsystems, Inc.の商標であり、同社の Java ブランドの
技術を使用した製品を指します。
Oracle は、Oracle Corporation の登録商標です。
本書に記載されている商品名、会社名などは各社の登録商標あるいは商標です。
なお、本文中では™ , ®,, ©記号は明記していません。
Copyright (c) 2005-2007 ECOSS Inc. All rights reserved.
i
■M3 ファーストステップガイド 目次
初めに ............................................................................................................... 4
M3 導入のメリット _____________________________________________________
従来の開発作業との比較 ___________________________________________
M3 が提供するもの ____________________________________________________
M3 ランタイムが提供するもの _________________________________________
M3 フレームワークが提供するもの ______________________________________
アプリケーションテンプレートが提供するもの ________________________________
ツールが提供するもの ______________________________________________
M3 の開発フロー______________________________________________________
1.アプリケーションテンプレートのインストール_______________________________
2.データベース定義書の変換 ________________________________________
3.画面定義書から UI 用の ASPX ファイル、ビジネスロジックの雛形を生成 ________
4.アプリケーションロジックの実装 ______________________________________
1.
M3 ランタイム................................................................................................ 8
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
1.7.
1.8.
1.9.
1.10.
1.11.
1.12.
1.13.
1.14.
1.15.
1.16.
2.
4
4
5
5
5
5
5
6
6
6
6
6
アプリケーション設定_____________________________________________ 8
コード定義 ___________________________________________________ 8
メッセージ機能 ________________________________________________ 8
ログ機能 ____________________________________________________ 8
データアクセス機能 _____________________________________________ 8
接続設定と SQL 文をプログラムから分離 ________________________________ 8
オブジェクト-リレーショナルマッピング _____________________________________ 9
データアクセッサ(IDataAccessor) _____________________________________ 9
RDBMS の相違点吸収 ____________________________________________ 9
ファイルアクセス機能_____________________________________________ 9
メール機能 ___________________________________________________ 9
キャッシュ機能 _________________________________________________ 9
スケジュール機能______________________________________________ 10
監視機能___________________________________________________ 10
入力規則___________________________________________________ 10
カウンタ機能 _________________________________________________ 10
アクセス権管理機能 ___________________________________________ 10
Web 機能 __________________________________________________ 10
補足:設定マネージャ___________________________________________ 11
参考:ユーティリティ ____________________________________________ 11
M3 フレームワーク........................................................................................ 12
ビジネスロジック開発で利用する機能___________________________________ 12
Web アプリケーション開発で利用する機能 _______________________________ 12
3.
ツール....................................................................................................... 14
ii
3.1.
3.2.
4.
M3 Code Generator __________________________________________
その他のツール _______________________________________________
入力規則マスク値の計算 __________________________________________
XML 整形ツール _________________________________________________
XML スキーマ検証ツール ___________________________________________
M3 郵便番号データインポートツール ___________________________________
14
16
16
16
16
16
アプリケーションテンプレート............................................................................. 17
iii
初めに
M3 導入のメリット
図 1 従来の開発と M3 を利用した開発の比較
従来の開発
M3 を利用
『M3』とは、当社(株式会社エコス)が長年培ってきた、
システム開発業務のノウハウをもとに、作業効率の向上、
品質の向上、そして保守性の向上を目的として開発され
た、システム開発支援ツールです。
開発資産が共有でき
ない場合、環境に合
わせて再構築
設計フェーズ 過去の資産を有効に利
用可能。プロトタイプ開発
が容易
M3 では、従来のシステム開発において、人的に行って
きた作業の多くをライブラリとして共通化し、ツールによって
自動的に生成をおこなうことによって、開発スピードの向上
とコードの入力およびシンタックスのミスなどを未然に防ぐこ
とができるようになります。
機能追加、修正時に
は設計段階からの見
直しが必要
仕様書からプログラムが
開発フェーズ 生成可能なため変更が
容易。豊富な機能を提
供するライブラリ
また、システム開発に慣れていない初心者でも、付属の
サンプルアプリケーションやチュートリアルでシンプルなアプリ
ケーションを習得することができるよう工夫がされているため、
人材開発にかかる期間を短縮する利点も備えています。
テストでは莫大な時
間が必要。人による
品質のばらつきも大
テスト・運用 信頼できるライブラリ
プログラムの自動生成に
よる一定の品質の維持
もちろん、上級者にとっても,強力で柔軟な使い方を習
得するための API ドキュメントやそのほかの手引書が用意
されているため、より高度なシステム開発を追求することも
可能です。
M3 では、データベース定義書、画面定義書といった各
種定義書からプログラムコードを作成することができるため、
プロトタイプ作成の作業時間を大幅に削減することができ
ます。
M3 を利用した開発をおこなった場合、一定の品質を保
ったアプリケーションを短期間で構築できるだけでなく、運
用後におけるデータベースのスキーマ変更やビジネスロジッ
クの変更といった追加開発やシステム保守が効率的に行
えるようになり、結果として経費の削減に役立ちます。
また M3 を利用したアプリケーションは共通のライブラリを
利用し、共通のプロジェクト構造を持っているために再利
用が容易で、積み重ねた開発資産を無駄にすることもあり
ません。
さまざまな、顧客の要望や環境に柔軟な対応を必要と
するシステム開発業務において、M3 はエンジニアを強力に
サポートいたします。
従来の開発作業との比較
この項では、従来のシステム開発における作業工程と
M3 導入した後の作業工程を比較することによって、M3 の
導入にどのようなメリットがあるのかを簡単に説明いたしま
す。
実装フェーズでの M3 導入メリット
顧客からの要望により機能の追加や修正などが発生し
た場合、従来の手順であれば、設計段階からの見直しが
必要となり、より多くの時間が必要となります。
M3 を利用した開発作業では、仕様書を変更してプログ
ラムを再生成するだけで、変更に対応することが可能です。
エンジニアは、より重要なビジネスロジックやユーザーユニー
クの部分に集中して作業が行えるようになり、よりクオリティ
の高い製品の開発をおこなえるようになります。
設計フェーズでの M3 導入のメリット
従来におけるシステム開発作業では、まず、顧客のクラ
イアントおよびサーバソフトウェア環境に合わせた開発設計
をおこなうことから始めます。この段階で、開発言語の選定
などをおこなうため、過去における開発資産との共有性が
ない場合、データアクセスのためのコンポーネントや共通コ
ンポーネントなどを一から構築しなければなりません。
テスト、運用フェーズでの M3 導入メリット
コーディング後のテストフェーズでは、すべてのモジュール
やクラスにおいて試験を行わなければならず、多くの時間を
必要とします。しかも製品の規模が大きくなるほど、開発に
たずさわるエンジニアの数も増えることから、製品の品質に
ばらつきが生じることも少なくありません。
4
M3 では、データベース定義にあわせたデータアクセスクラ
スの作成、ファイル仕様書にあわせたファイルアクセスクラス
の作成といった定型的な作業では、『M3 Code
Generator』という定義書よりコードを自動生成するツール
によって自動的に生成を行うため、一定の品質を保つこと
が可能です。
M3 のライブラリ、ツールにより生成されたプログラムは既
にテスト済みである程度導入実績があるために、これらの
テストの工数を減らすことができます。
また、データベーススキーマの変更、メッセージの変更、
入力規則の変更といったシステム開発時や運用後の変更
に関しても、定義書から該当箇所のプログラムを再生成す
ることにより対応できるため、追加開発やシステム保守が
効率的に行えるようになります。
M3 が提供するもの
M3 で提供する機能は、「図 2 M3 概念図」のようにラン
タイム、フレームワーク、アプリケーションテンプレート、ツール
の4つのブロックで提供されています。
図 2 M3 概念図
M3 ランタイムが提供するもの
M3 のランタイムでは、データアクセス機能、ログ出力機
能、多国語対応メッセージ機能、ファイルアクセス機能、入
力値の検証機能、スケジュール実行機能といった業務アプ
リケーション開発で汎用的に利用される機能を提供してい
ます。
M3 フレームワークが提供するもの
M3のフレームワークでは、業務アプリケーションの定型的
な処理を自動化するための高度な機能を提供していま
す。
ユーザーインターフェース層では、検索、登録、更新とい
った Web ページの作成を容易にするための UI コントローラ
クラス、ASP.NETのプロバイダを拡張したカスタムプロバイダ
クラス群などを提供しています。
ビジネスロジック層では、ビジネスロジックを実行する際に
考慮しなくてはならないトランザクション制御といった機能を
容易にするためのフレームワーク、データ登録、更新といっ
た共通のタスクを簡単にするベースクラス、前排他(重オフ
ラインロック)、会員情報登録といった定型的な業務用の
機能を提供しています。
ツールを利用してプログラムを生成し、アプリケー
ションテンプレートに業務ロジックを追加する
注文サブ
システム
会員サブ
システム
アプリケーションテンプレートが提供するもの
プログラムを
自動生成
ツール
アプリケーションテンプレート
利用
利用
M3 フレームワーク
M3 ランタイム
.NET Framework
このように M3 を利用したアプリケーションは、.NET
Framework、M3 ランタイム、M3 フレームワーク、アプリケー
ションテンプレートの上に構築されており、開発ではアプリケ
ーションテンプレートに業務機能を追加してアプリケーション
を構築します。
業務機能追加の際には、ツールを利用して基礎となる
プログラム、設定ファイル等を自動生成した後にカスタマイ
ズを加える方法をとります。
アプリケーションテンプレートでは、M3 を利用した Web ア
プリケーションを開発する際に必要なドキュメント、Visual
Studio .NET のプロジェクトといったプロジェクト開始に必要
な一式を提供しています。
このテンプレートを利用することにより、.NET Framework
を利用したWebアプリケーションの開発に不慣れなエンジニ
アが容易にプロジェクトを開始できます。
その他の利点として、アプリケーションテンプレートを利用
するとプロジェクトの構造が一定の形式を保つために、一
度M3を利用した開発を行うと他の M3 プロジェクトでも、そ
れほど学習コストをかけずに投入可能です。
ツールが提供するもの
M3 では、『M3 Code Generator』という定義書よりコード
を自動生成するツールを提供しています。このツールはデ
ータベース定義書、ログ出力定義書、画面入出力定義書
といった定義書から自動的にプログラム、設定ファイル、
SQL 文を生成するツールです。
5
M3 を利用したアプリケーション開発では、『M3 Code
Generator』を利用してプログラムの雛形を生成し、生成さ
れたプログラムにアプリケーション固有のロジックを組み込む
といった開発スタイルになります。
M3 の開発フロー
3.画面定義書から UI用の ASPXファイル、
ビジネスロジックの雛形を生成
次にデータベース定義書から生成された画面定義書を
変更して、画面単位で入出力設定を行います。
『M3 Code Generator』を利用して画面定義書を変換
すると、画面定義書からは、以下のファイルが生成されま
す。
画面表示用の ASPX ファイル
M3 を利用してアプリケーションを構築する場合には、以
下のようなステップで開発を行います。
登録、更新、削除といったビジネスロジッククラス
1.
アプリケーションテンプレートのインストール
ビジネスロジッククラスに対応する単体テスト用のクラ
ス
2.
データベース定義書の変換
3.
画面定義書から UI 用の ASPX ファイル、ビジネスロ
ジックの雛形を生成
4.
アプリケーションロジックの実装
『M3 Code Generator』を利用すると、業務アプリケーション
開発で一般的に利用される以下のような画面を生成する
ことが可能です。
単票形式の検索、登録、更新、削除画面
Wizard 形式での検索、登録、更新、削除画面
1.アプリケーションテンプレートのインストール
検索結果を全件一括で更新するための画面
アプリケーションインストール用の『M3 Code Generator』
を利用し、名前空間、プロジェクト名といったプロジェクト固
有の設定を行い、アプリケーションテンプレートをインストー
ルします。
検索結果を 1 件ずつで更新するための画面
親子関係があるテーブルを更新するための画面
生成されたファイルをプロジェクトに配置するのみで簡単な
マスタメンテ用の Web アプリケーションの実装が完了です。
2.データベース定義書の変換
設計フェーズで作成したデータベース定義書を『M3
Code Generator』を利用して変換します。データベース定
義書からは、以下のファイルが生成されます。
テーブル、インデックス作成用の SQL ファイル
データベースにアクセスするためのプログラム
テーブルスキーマに対応した入力規則定義書
テーブルスキーマに対応した画面定義書
入力規則定義書とは、M3 ランタイムが提供する入力変
換、検証機能が利用する定義ファイルです。
これらのファイルをプロジェクトに配置するのみでデータベ
ースへのアクセスの準備は完了です。
4.アプリケーションロジックの実装
簡単な機能については、生成された画面表示用の
ASPX ファイルのデザインを修正するのみで実装完了です
が、複雑な画面、複雑なビジネスロジックが伴うような機能
の場合はカスタマイズが必要になります。
この場合でもデータベース定義書、画面定義書といった
定義書に従った雛形をカスタマイズするために、一から開
発するより容易ですし、似たような機能をコピーするといっ
たアプローチより間違いがありません。
独自の画面、ビジネスロジックを開発する場合には、次に
示すような M3 のランタイム、フレームワークが提供する機
能を利用することにより、共通機能作成の工数を抑えるこ
とが可能です。
6
M3 ランタイムの機能
データアクセス機能
ログ出力
入力規則機能
メッセージ取得機能
スケジュール機能
権限管理機能
キャッシュ機能
豊富なサーバーコントロール
携帯サポート
・・・
M3 フレームワークの機能
トランザクション制御
前排他、メンバーシップ管理といったクラスの提供
ASP.NET プロバイダの拡張
・・・
ツールが提供するもの
メッセージ定義書からメッセージ設定の生成
ログメッセージ定義書からログ出力設定の生成
コード定義書からコード設定の生成
ファイル定義書からファイル入出力クラス生成
・・・
7
またコード定義は M3 のサーバーコントロール、基底ペー
ジクラスといった UI コンポーネントとも統合されており、コー
ド定義を元に選択リストを表示することが可能です。
1. M3 ランタイム
このセクションでは、M3 ランタイムが提供する機能につい
て説明します。
1.1. アプリケーション設定
アプリケーション開発では、消費税率やメールサーバーの
アドレスといった、固定的な定数を扱うケースが多く存在し
ますが、M3 ではそういったアプリケーション固有の情報を扱
う機能として『アプリケーション設定機能』が用意されていま
す。
アプリケーション設定機能は、値を取得する処理と値そ
のものの保存先を分離しています。つまり、システム稼動
後でも、値のみを変更するだけで、アプリケーションの動作
を変更することが行えるようになり、システムの拡張や変更
が容易になります。設定情報は XML ファイル、データベー
スのデータといった 2 種類の形式で保存することができま
す。
1.2. コード定義
コード定義とは、データベースの値とアプリケーションで利
用する定数値、表示用の文字列のマッピングを管理する
ための機能です。
例えば、「表 1 コード定義例」のような会員ステータス
を例にすると、データベースの値である 0 は、プログラムから
は Temp という定数でアクセスされ、表示時には「仮登録
中」と表示される必要があります。
表 1 コード定義例(会員ステータス)
DB の値
0
1
2
3
定数名
Temp
Regular
Cancel
Black
表示文字列
仮登録中
通常登録
退会
ブラックリスト会員
M3 ではコード定義書とそれを変換するための『M3 Code
Generator』を提供しており、コード定義書から設定ファイル
とプログラムで利用する列挙クラス、定数定義クラスを生成
可能です。
1.3. メッセージ機能
『メッセージ機能』は、XML 形式で保存された設定ファイ
ル(メッセージ内容)から、プログラムから与えられた ID をも
とに、現在のロケールに対応したメッセージを返す機能です。
メッセージを取得する処理とメッセージの内容である設定フ
ァイルが分離されているため、システム稼動後のメッセージ
の変更が容易になります。
1.4. ログ機能
『ログ機能』とは、設定ファイルとプログラムにより与えられ
た ID をもとにメッセージ文字列、出力先を決定してログを
出力する機能です。またログの出力先として、標準出力、
ファイル、データベース、メール、イベントログ(.NET)が提供
されています。
M3 のログ機能は、プログラムではログ ID のみを指定し、
設定ファイルによりログ内容とログ出力先を決定するため、
システム稼動後もプログラムの変更なしで、内容、出力先
の変更が可能です。
1.5. データアクセス機能
M3 では、データベースにアクセスする機能として『データ
マネージャ』を備えています。データマネージャは、XML 形
式で保存された設定ファイルをもとに、データベースにアクセ
スする機能を提供します。M3 のデータマネージャには以下
のような特徴があります。
接続設定と SQL 文をプログラムから分離
M3 では、データベース接続設定ファイルと SQL 文を記
述したコマンド設定ファイルをもとに、以下のような一連の
作業を実行します。
1.
データベース接続のオープン
2.
RDBMS に応じた SQL 文のフォーマット
3.
パラメータの設定
4.
クエリの実行
8
この結果、たった1行のコードで、データの取得や更新が
可能になります。
コマンド設定ファイルでは、定義された SQL 文ごとに接
続先を設定することが可能なため、複数のデータベースア
クセス時にもデータマネージャを利用することにより、透過
的にアクセスできます。
オブジェクト-リレーショナルマッピング
リレーショナルデータベースとクラスとのオブジェクト-リレー
ショナルマッピングの問題に対応するためのデータオブジェク
ト(データアクセスオブジェクト、Data Access Object、以降
データオブジェクトと表記します)を提供します。『M3 Code
Generator』を利用することにより、データベース定義書から
データオブジェクトは自動生成することが可能です。
データアクセッサ(IDataAccessor)
M3 では、データにアクセスするクラスはすべてデータアク
セッサ(IDataAccessor)という汎用的なデータアクセス用の
インターフェースを実装しています。
例えば、M3 が提供するデータオブジェクト、ファイル入出
力用のクラス、値オブジェクト、Web の入力コントロールのコ
レクションはこのインターフェースを実装しています。
M3 では、データアクセッサを利用したユーティリティを多
数備えており、データアクセッサに対するコピーや入力チェッ
ク、入力変換といった機能を提供しています。
この結果、M3 を利用すると Web の入力値をデータオブ
ジェクトにコピーする作業や、クエリの実行結果をファイルに
書き出す作業は、データアクセッサとユーティリティを利用す
ることにより、たった 1 行のコードで実現可能です。
RDBMS の相違点吸収
M3 では RDBMS の相違を吸収するための次のような機
能を提供しています。
RDBMS に依存しない検索条件を表す検索条件ク
ラス
これらの機能を内部的に利用することにより、エンジニア
は RDBMS の差異を意識することなく開発可能です。
たとえば開発時にはSQL Serverを使用し、運用時には
Oracle を使用するといったケースでもコード自体をほとんど
変更することなく、設定の変更およびデータオブジェクトの
再生成のみで実現可能です。
1.6. ファイルアクセス機能
アプリケーション開発において、外部システム連携でファ
イル連携を行なう場合が多くあり、通常 CSV 形式か固定
長形式のファイルの読み取り、書き出しという作業が生じま
す。
M3 ではこれらの形式のファイルの入出力用のクラスを
『M3 Code Generator』より自動生成しています。このクラ
スを利用することにより、システム稼動後におけるファイルの
フォーマットの変更にも容易に対応が可能となります。
1.7. メール機能
M3 では、SMTP によるメール送信、POP3 によるメール
受信機能を備えています。メール送信時におけるメールの
内容は、メールテンプレートとしても定義可能です。
メールテンプレートとは、注文確認メールといった定型的
なメールを定義する設定ファイルで、テンプレート内では
ASP.NET の構文に似たスクリプトが利用可能で、メール内
容を動的に変更することが可能です。
このようにメールを送信する処理と、メールの内容である
テンプレートファイルが分離されているため、システム稼動
後のメール内容の変更が容易となります。
1.8. キャッシュ機能
RDBMS の形式に応じたデータオブジェクトを生成す
る『M3 Code Generator』
M3 では、オブジェクトやデータベースのクエリ結果をキャッ
シュするための機能を提供しています。
RDBMS に応じた SQL をフォーマットするフォーマッタ
クラス
M3 では、キャッシュタイムアウトのタイミングは、何秒後、
毎時何分、毎日何時何分といった詳細な設定をおこなう
ことができ、特定のインターフェースを実装することにより、さ
らに拡張することが可能です。
SQLClient、OracleClient といった.NET のデータプロ
バイダの差異を吸収するためのアダプタクラス
9
また、キャッシュリソースは、タイムアウトだけでなく、メモリ
が少なくなると自動的に開放されるように設定することが可
能です。
データベースのキャッシュでは SQL Server 2005 のクエリ
通知機能、Oracle Database 10g Release 2 の更新通知
といった RDBMS 固有のデータ通知機能を利用したキャッ
シュ機能も提供しています。
1.9. スケジュール機能
M3 では、.NET で作成したクラスを、設定されたスケジュ
ールにしたがって実行させることが可能です。
スケジュールの設定としては、何時何分に実行するとい
った形式の1回のみの実行と、毎時何分、毎日 12 時 00
分といった定期的な実行をサポートしています。
1.10. 監視機能
ファィルシステムの変更や特定のアカウントへのメールの
到着というイベントを監視し、イベントが到着するとプログラ
ムを起動する機能を提供します。これにより、特定のディレ
クトリへ要求ファイルが POST された場合に処理を行いた
い場合や、会員退会メールが到着した後、会員を退会さ
せるといった処理を自動的におこなうことが可能になりま
す。
M3 では、『カウンタ機能』を使うことによって、数字、アル
ファベットの降順、昇順といったルールに従い ID を生成する
ことが可能で、日毎、月毎、年毎の指定時間にカウンタを
リセットすることも可能です。
1.13. アクセス権管理機能
M3 では、権限ベースのアクセス権の管理のための機構
を提供しています。例えば特定の処理に対して実行を制
限することや、WEB のページアクセスを制限することが、設
定ベースで可能になります。
権限の組込みは、M3 が提供するサーバーコントロール
に結びついているために、権限がない場合はテキストボック
スを読み取り専用にする処理や、ボタンを非表示にすると
いった処理が可能です。
M3 では既定の権限検証機能を提供していますが、特
定のインターフェースを実装することにより独自の権限ロジッ
クをプラグイン可能です。
1.14. Web 機能
M3 では、ASP.NET を利用した Web アプリケーション開
発を容易にする以下のような機能を提供しています。
共通機能
SSL を考慮した URL フォーマット機能
1.11. 入力規則
M3 では、文字列検証、数値検証、日付検証、
Boolean 値検証、コード定義に基づく検証といった豊富な
バリエーションの入力規則を提供します。また、平仮名から
カタカナ変換、全角から半角変換といった日本語固有の
文字処理にも対応しています。
定義された入力規則は、データオブジェクトや WEB 入
力検証、ビジネスロジックでの入力値検証といった複数の
ケースで利用できます。 入力規則自体はカスタマイズが
可能となっており、独自の入力規則も定義することができ
るよう設計されています。
設定ベースでの SSL、Non-SSL の切り替えをサポートしま
す。
ヒストリ機能
ASP.NET のセッションを利用したヒストリ(ページ訪問履
歴)機能を提供します。
携帯対応
携帯の機種情報の自動判定
ユーザーエージェントを元に携帯の機種情報を自動判
別します。
1.12. カウンタ機能
アプリケーションによっては、会員情報の会員 ID や注文
情報の注文 ID となど、一定のフォーマットにしたがって任意
の ID を生成する必要になることがあります。
携帯の絵文字変換
10
i-mode の絵文字を携帯キャリア固有の絵文字に変換
します。
携帯用の拡張
ASP.NET が提供するサーバーコントロールを拡張し、携
帯の場合は携帯用の HTML を出力します。
サーバーコントロール
1.15. 補足:設定マネージャ
『設定マネージャ』では設定情報の取得、設定といった
機能を提供します。この機能はデータアクセス機能、入力
規則機能といった M3 で提供する他の機能により利用され
ます。
M3 の機能は設定マネージャを通してアクセスすることに
より、ファイルシステムに設定を保存した場合や、アプリケー
ションのリソースとして保持した場合でも、位置透過的な管
理が容易になります。
入力用コントロール
テキストボックスや、ラベル、ボタン等の、HTML フォーム
の入力用コントロールです。アクセス権の制御や、入力値
と登録対象のテーブル列名の自動マッピングなど、M3 独
自の機能を提供しています。
検索条件入力用コントロール
検索・一覧表示画面において、条件を入力するための
コントロールです。M3 では、このコントロールへの入力値を
元に、SQL 文の WHERE 句を、自動的に生成する機能を
提供しています。
コントロールをグループ化するコントロール
配下の入力用コントロールを、一つのグループとしてみな
し、配下のコントロールに対して、入力値の取得や、共通
のアクセス権制御を行うためのコントロールです。
1.16. 参考:ユーティリティ
これまでに説明してきた機能のほかにも、M3 では以下
のようなユーティリティクラスを提供しております。これらを利
用することによって、コード量を削減し、システム開発の作
業効率を飛躍的に向上させることが可能となります。
文字列操作のユーティリティ
型変換、リフレクションを使用した動的なインスタンス
作成、メソッド呼び出しのためのユーティリティ
URL エンコード、HTML エンコード、Base64 エンコー
ドといったエンコード、デコードのためのユーティリティ
ファイル操作のためのユーティリティ
XML 操作のためのユーティリティ
データ操作のためのユーティリティ
データを取得するためのコントロール
ASP.NET のデータソースコントロールを拡張し、入力し
た検索条件や ASPX ページのプロパティを元に表示対象
のデータを取得する為のコントロールです。
データリストを表示するコントロール
表示対象のデータを一覧で表示する為のコントロール、
また一覧表示用コントロールに対して、ソートや、ページャ
ー機能を提供するコントロールです。
11
前排他(重オフラインロック)機能
2. M3 フレームワーク
M3 のフレームワークでは、業務アプリケーション構築に特
化した機能を提供しています。M3 フレームワークが提供す
る機能は、ビジネスロジック開発用の機能と、Web アプリケ
ーション構築用の機能の2つに大別されます。
本章では、M3 フレームワークが提供する各機能につい
て説明します。
ビジネスロジック開発で利用する機能
ビジネスロジック開発で利用する機能として、ビジネスロ
ジックを実行するためのエンジンと、汎用的に利用する業
務ロジッククラスを提供しています。
Web アプリケーションは接続されていないという特性上、
同じデータを複数のユーザーが同時に更新するという同時
更新の問題は常に包含されています。
M3 が提供するデータオブジェクトは楽観的ロック機能を
提供しており、データ保存時に元となるデータが更新され
ていたらエラーを生成するという機能を保持しており、ある
程度この問題に対する解を提供しています。
しかしながら業務要件によっては編集開始時にロックを
保持し、編集終了までは他のユーザーに更新させないよう
にしたいといったいわゆる『前排他』を要求される場合もあ
ります。
M3 では、『前排他』機能を提供するためのロックマネー
ジャ機能を提供しています。アプリケーションテンプレートを
利用することにより、現在ロックを保持しているユーザーの
一覧の表示、強制解除といった機能を Web アプリケーショ
ンから実行可能になります。
ジョブ実行ランタイム
ビジネスロジックを構築する際には、場合によっては複数
のテーブル、データベースにアクセスする必要があり、また実
行ユーザー単位の権限の設定も必要になります。
M3 ではこのようなビジネスロジック実行で横断的に求め
られる機能を提供するために、ジョブ実行ランタイムを提供
しています。
ちなみに M3 において『ジョブ』とは、会員登録、注文処
理といったビジネスロジックをさしています。
ジョブ実行ランタイムでは、トランザクション管理機能、
M3 ランタイムの権限機能を利用したアクセス権制御機能
を提供しています。ジョブ実行ランタイムを利用することによ
り、これらの機能をビジネスロジック開発者、利用者ともほ
とんど意識せずに利用可能です。
業務ロジッククラス
M3 では、業務ロジック構築で汎用的に利用される機能
については、業務ロジッククラスを提供しています。
メンバーシップ管理機能
会員情報の登録、更新といった機能のほかにログイン機
能、リマインダ機能などを提供しています。
メール一括送信機能
『メール一括送信機能』では、送信先の情報等が記述
されている CSV 形式のリストをもとに、スケジュールに従い
メールを一括送信する機能を提供します。
『メール機能』のメールテンプレートを利用し、本文の内
容を編集することが可能です。また、『スケジュール機能』と
連動させることによって、メール一括送信を設定されたスケ
ジュールにしたがって実行させることもできます。障害時にメ
ールの一括送信が中断した場合でも、中断された時点か
らの再送信させる機能も備わっています。
Web アプリケーション開発で利用する機能
Web アプリケーション開発で利用する機能として、以下のよ
うな機能を提供しています。
UI コントローラ
UI コントローラとは、Webアプリケーション開発において必
要とされる、登録、更新、検索といった定型的な画面制御
及びイベントハンドリングを自動化するためのサーバーコン
トロールです。UI コントローラを利用することにより、これら
の定型的な処理のプログラムを記述することなく、カスタマ
イズ部分のみ変更するというアプローチを取ることができま
す。この結果プログラムの量が減り、変更しやすいプログラ
ムが構築可能です。
12
ASP.NET プロバイダ拡張
M3 では、ASP.NET 2.0 から導入されたプロバイダモデル
に対して M3独自の拡張を行ったASP.NET プロバイダを提
供しています。M3 では、以下のような拡張プロバイダを提
供しています。
メンバーシッププロバイダ
ロールプロバイダ
プロファイルプロバイダ
パーソナライゼーションプロバイダ
サイトマッププロバイダ
セッション状態プロバイダ
これらの共通の特徴として以下の点が挙げられます。
M3 のランタイムとの親和性の向上。
ASP.NET が既定で提供しているプロバイダとは異な
り、SQL Server 以外のデータベースでも利用可能。
データベーススキーマは固定されておらず、アプリケー
ションの要件に応じて変更可能。
13
Web アプリケーション画面定義書生成
3.
ツール
M3 では、『M3 Code Generator』を中心として、開発を
サポートするために必要なツールを豊富に用意しておりま
す。このセクションでは M3 が提供するそれらのツールについ
て説明いたします。
3.1. M3 Code Generator
『M3 Code Generator』は、システム開発工程の設計フ
ェーズに作成される『データベース設計書』や画面の『入力
規則定義書』をもとに、プログラムソースコードや SQL 文、
設定ファイルなどを自動生成するツールです。
M3 では以下に示すような多数の『M3 Code
Generator』を提供しています。
データベース定義書変換
M3 が提供する Excel 形式のデータベース定義書を元に、
SQL 文、入力規則定義書、データオブジェクトを作成しま
す。
入力規則定義書は、後述する「入力規則定義書変
換」コードジェネレータで利用されます。
SI Object Browser エンティティ定義書変換
株式会社システムインテグレータが提供する「SI Object
Browser ER」のエンティティ定義書を元に、入力規則定義
書、データオブジェクト、画面定義書を作成します。
SI Object Browser モデルファイル変換
株式会社システムインテグレータが提供する「SI Object
Browser ER」のモデルファイルを元に、入力規則定義書、
データオブジェクト、画面定義書を作成します。
値オブジェクトクラス生成
M3 が提供する Excel 形式のデータベース定義書を元に、
値オブジェクトを作成します。
M3 が提供する Excel 形式のデータベース定義書を元に、
画面定義書の雛形を生成します。
この定義書は「Wizard 形式マスタメンテ画面生成」、「ビ
ジネスロジック生成」といったマスタメンテ画面、ビジネスロジ
ック作成で利用されるコードジェネレータの入力ファイルとし
て利用されます。
入力規則定義書変換
M3 が提供する Excel 形式の入力規則定義書を元に、
M3 のランタイムが利用できる形式の入力規則設定ファイ
ル(XML)に変換します。
入力規則定義書マージ
データベース定義書から作成された入力規則定義書と
アプリケーション依存のカスタマイズ部分のみを記述した差
分入力規則定義書(Excel による定義書)をマージして入
力規則定義書を生成するためのコードジェネレータです。
入力ファイルは、データベース定義書から作成された入
力規則定義書と差分入力規則定義書になり、出力ファイ
ルはマージ後の入力規則定義書です。出力ファイルは「入
力規則定義書変換」コードジェネレータを利用して M3 のラ
ンタイムが利用できる形式の入力規則設定ファイル
(XML)に変換します。
メッセージ定義書変換
M3 が提供する Excel 形式のメッセージ定義書を元に、
M3 のランタイムが利用できる形式のメッセージ設定ファイル
(XML)と.NET のリソースファイルに変換します。
メッセージ設定ファイル(XML)は、外部ファイルとしてファ
イルシステムに配置可能ですが、.NET のリソースファイルの
場合はアセンブリに埋め込む必要があります。
ログメッセージ定義書変換
M3 が提供する Excel 形式のログメッセージ定義書を元
に、M3 のランタイムが利用できる形式のログメッセージ設
定ファイル(XML)に変換します。
値オブジェクトとはデータアクセス機能を持たない値保持
用のクラスです。
Web アプリケーションのセッションに格納するだけのクラス、
データ転送用のオブジェクトとして利用されます。
14
コード定義書変換
M3 が提供する Excel 形式のコード定義書を元に、M3
のランタイムが利用できる形式のコード定義設定ファイル
(XML)とコードに対応する列挙値、定数を定義したクラス
を生成します。
「Wizard形式マスタメンテ画面生成」と同様にASPXファ
イル、画面用の入力規則定義書を生成します。
「Wizard 形式マスタメンテ画面生成」とは異なり、検索を
行った結果のリストに対して更新を行います。
リスト編集(1件)画面生成2
ファイル定義書変換
M3 が提供する Excel 形式のファイル定義書を元に、ファ
イルの読み取り、書き込みクラスを生成します。
Wizard 形式マスタメンテ画面生成
「Wizard形式マスタメンテ画面生成」と同様にASPXファ
イル、画面用の入力規則定義書を生成します。
「リスト編集(1件)画面生成1」とは異なる点は、「リスト
編集(1件)画面生成1」では 1 件単位で編集モードに変
更し更新する形式をとっていますが、「リスト編集(1件)画
面生成2」では全件編集可能になっている点です。
M3 が提供する Excel 形式の画面定義書を元に、
ASPX ファイル、画面用の入力規則定義書を生成します。
生成されるASPXファイルは、Wizard形式の登録、更新、
検索機能を提供します。Wizard 形式とは、登録時、更新
時には確認画面を表示した後に実際のデータベースの更
新を行うフローをさしています。
画面定義書は通常「Web アプリケーション画面定義書
生成」コードジェネレータを利用して生成されたものをカスタ
マイズして利用します。
入力規則定義書は「入力規則定義書変換」コードジェ
ネレータを利用して M3 のランタイムが利用できる形式の入
力規則設定ファイル(XML)に変換します。
Wizard 形式マスタメンテ画面生成(削除機能付)
「Wizard形式マスタメンテ画面生成」と同様にASPXファ
イル、画面用の入力規則定義書を生成します。
「Wizard 形式マスタメンテ画面生成」との相違点は削除
機能を提供する点です。
単一ページのマスタメンテ画面生成
「Wizard形式マスタメンテ画面生成」と同様にASPXファ
イル、画面用の入力規則定義書を生成します。
「Wizard 形式マスタメンテ画面生成」との相違点は削除
機能を提供する点と確認画面を表示せずに単一ページで
更新を行う点です。
リスト編集(全件)画面生成
「Wizard形式マスタメンテ画面生成」と同様にASPXファ
イル、画面用の入力規則定義書を生成します。
「リスト編集(1件)画面生成1」とは異なる点は、検索
結果が全権編集可能でしかも全件一括で更新する点で
す。
親子関係メンテ画面生成
「Wizard形式マスタメンテ画面生成」と同様にASPXファ
イル、画面用の入力規則定義書を生成します。
「Wizard 形式マスタメンテ画面生成」とは異なり、親子
関係のあるテーブルに対するマスタメンテ画面を生成しま
す。
ビジネスロジック生成
M3 が提供する Excel 形式の画面定義書を元に、登録、
更新、削除用のビジネスロジッククラス、単体テスト用のク
ラスを生成します。
アクセス権定義書変換
M3 が提供する Excel 形式のアクセス権定義書を元に、
機能定義登録用の SQL 文、機能名を定義するクラスを
生成します。
リスト編集(1件)画面生成1
15
このコードジェネレータは M3 の権限管理機能と密接に
かかわっており、M3 の権限機能を利用する場合のみ利用
します。詳細は「%DOC_HOME%¥技術ドキュメント¥M3 アク
セス権限機能.doc」を参照してください。
道府県、市区町村情報を郵便番号情報を元にメンテナン
スをおこなうことができます。
M3 アプリケーションインストーラ
M3 の Web アプリケーションテンプレートをインストールす
るためのコードジェネレータです。入力ファイルはアプリケー
ション移行設定(XML)です。テンプレートとなる Web アプリ
ケーションテンプレートを設定に従い変換して出力します。
M3 ライセンス要求発行
マシン固有の情報を元に M3 のライセンス要求ファイルを
生成します。入力ファイルは特にありません。
3.2. その他のツール
入力規則マスク値の計算
マスク値の計算は、入力規則の「文字種変換」、「全角
半角変換」、「文字種チェック」規則にともなう、マスク値を
計算するためのツールです。このツールを利用することによ
って、文字の変換をおこなったり、チェックのマスク値を求め、
入力規則定義書の項目に設定することができます。
XML 整形ツール
プログラムが出力した XML ファイルは改行およびインデン
トが入っていないため、表示がわかりにくくなってしまいます。
XML 整形ツールでは、XML に改行やインデントを追加し、
表示を見やすく整えます。
XML スキーマ検証ツール
M3 では、多くの設定情報を XML として保持しています。
これらの設定ファイルを変更した際に、変更の整合性をチェ
ックするためのツールです。
M3 郵便番号データインポートツール
郵便番号データインポートツールは、郵政公社の郵便
番号 CSV をデータベースへインポートするためのツールで
す。プログラムで郵便番号をもとに、住所を取得したり、都
16
権限管理
4.
アプリケーションテンプレート
M3 では、Web アプリケーション構築のためのプロジェクト
の雛形として、アプリケーションテンプレートを提供していま
す。
アプリケーションテンプレートは M3 のランタイム、開発用
のツール群を備え、プログラムやデータベース定義書、メッ
セージ定義書といった各種定義書、及びプログラムの単体
テストのためのプロジェクトが提供されています。
また、アプリケーションテンプレートを雛形として、機能を
追加、カスタマイズすることにより、初心者でも一定の品質
を保った堅牢な Web アプリケーションを構築することができ
ます。また開発のための手順書として「M3 開発ガイド」を
提供しています。
このセクションでは、アプリケーションテンプレートの機能
説明をおこないます。
ログイン機能
オペレータ情報をもとに、バックオフィス Web サイトへの認
証を行います。
機能一覧表示機能
バックオフィス Web サイトの機能一覧表示を提供しま
す。
一括送信管理
メールを一括して送信するためのメール本文の内容、メ
ール送信先アドレスの登録、および登録したメール情報の
変更、検索・閲覧・実行結果確認ができます。
オペレータ・ロール管理
アプリケーションの機能に対する権限に対する登録・変
更・閲覧機能を提供します。
アプリケーションログ検索
開発したアプリケーションがデータベースに出力したログ
の検索・閲覧機能を提供します。
バッチ実行情報検索
データのインポートといった時間の掛かる処理等、M3 の
非同期実行機能を使用して実行した場合、その処理の
実行ステータス、実行結果が確認できます。
M3 管理
M3 の設定ファイル(XML)を再読み込みする機能を提
供します。これにより、アプリケーション稼働中に設定ファイ
ルを変更してもアプリケーション全体を再起動しなくても変
更したファイルのみ再読み込みするだけで設定情報が反
映されます。
ロック管理
前排他を利用してデータを編集中のユーザーの一覧を
表示する機能や、強制的にロックを解除するためのユーザ
ーインターフェースを提供します。例えば、注文 0001 を現
在編集中のユーザーを表示し、ロックを強制的に解除する
といった処理が可能です。
ログアウト
バックオフィス Web サイトからログアウトします。
以上
バックオフィス Web サイトにログインするオペレータ及びロ
ールの登録・変更・検索・閲覧機能を提供します。
スケジュール管理
バッチプログラムをスケジュール管理にて登録し、実行・
管理します。
17