...

Web システム用フレームワーク 「Web@Attach(ウェブアット

by user

on
Category: Documents
5

views

Report

Comments

Transcript

Web システム用フレームワーク 「Web@Attach(ウェブアット
富士時報 Vol.79 No.3 2006
大柴 正清(おおしば まさきよ)
大田 一希(おおた かずき)
特集
Web システム用フレームワーク
「Web@Attach(ウェブアットアタッチ)
」
吉川 肇(よしかわ はじめ)
まえがき
1
術を生かした高機能 JSF コンポーネントによる画面開発
と,業務アプリケーションの独立性を確保した軽量 DI
情報処理の分野ではネットワークの急速な普及と整備に
(Dependency Injection)コンテナを装備している。また,
より,情報システム形態は,クライアントサーバシステム
O/R マッピングによるデータベース(DB)アクセスを実
から,Web システムに移行してきている。こうした Web
現することで,Web システムの高品質,短期開発を可能
システムではプラットフォーム非依存性や優れた保守性か
にした J2EE フレームワークとなっている。さらに表現力
〈注 1〉
ら Java による開発が主流となっている。
の豊かなシステムの開発を可能とするためのリッチクライ
しかし,クライアントサーバシステムに比べると既存資
アントと連携するための機能についても併せて提供してい
産が利用できないことによる開発効率の低下や新規開発に
る。基盤技術としてオープンソースプロダクトを採用して
よる信頼性確保など新たな課題が発生してきており,こう
軽量性と安定した性能を実現しており,小規模な社内シス
した課題を解決するための開発技術が求められている。
テムからミッションクリティカルな大規模基幹系システム,
また,システム開発の期間に目を向けると,顧客が激烈
またリッチクライアントと連携する業務システムの構築ま
な市場競争を勝ち抜くため,新しい商品やサービスを短期
で幅広いシステム開発に適用できるようにしている。
間に市場へ提供していく必要があり,それを可能とするた
以下では,より詳細に目的や,特長,開発の流れなどに
めにシステム開発を短期間に実施せざるを得ないという状
ついて説明する。
況がある。このような短期開発の要請に対して,いかに効
率的に開発を行うかが今後のシステム開発にとって非常に
重要となってきている。
.
開発目的
Web@Attach は,Java を利用した Web システムの開
〈注 2〉
以上のような背景を踏まえ,富士電機は,JSF ,O/R
〈注 3〉
マッピング などの最新 Web 技術を採用した J2EE(Java
発において,下記を目的としている。
EoD(Ease of Development)開発の実現
( 1)
2 Platform, Enterprise Edition)フレームワーク製品であ
Web@Attach は,Web システムの開発をできるだけ取
る「Web@Attach(ウェブアットアタッチ)
」を開発し提
り組みやすく,短期開発を可能にする。
ポータビリティの実現
( 2)
供を開始した。
Web@Attach は,Pure Java での実装を考慮する。こ
Web@Attach
れは,現在 Java 実行環境がサポートするプラットフォー
ムで,問題なく動作することを目的としている。
Web@Attach は,JSP(Java Server Pages) で 使 用 で
き る タ グ ラ イ ブ ラ リ 製 品 の GKitTaglib シ リ ー ズ の 技
.
特 長
Web@Attach は以下の特長を持つ Web システム開発の
〈注 1〉Java:米国 Sun Microsystems, Inc. の登録商標
ためのフレームワークである。
統合開発環境(IDE)の活用
( 1)
〈注 2〉JSF:Java ServerFaces の略。Web アプリケーションのユー
JSF をベースとした統合開発環境を活用し,コンポーネ
ザーインタフェースを作成するためのフレームワーク
ントのドラッグ & ドロップによる画面開発が可能となっ
〈注 3〉O/R マッピング:Object Relation Mapping の略。オブジェ
クト指向のオブジェクト(O)をリレーシ
ョナルデータベース(R)へマッピングす
るための技術の総称
大柴 正清
ている。図 1 に JSF を使用した開発画面を示す。
多機能画面コンポーネントを提供
( 2)
Java による J2EE プラットフォームは,2004 年 3 月の
大田 一希
吉川 肇
ミドルウェアの開発,Web シス
Web@Attach( ウ ェ ブ ア ッ ト ア
民需向けコンピュータ制御システ
テムフレームワークの適用推進に
タッチ)の開発に従事。現在,株
ムの設計・開発に従事。現在,富
従事。現在,株式会社エフ・エ
式会社エフ・エフ・シー PMO セ
士電機システムズ株式会社 e-ソ
フ・ シ ー PMO セ ン タ ー Vision
ンター VisionFrame 推進室。
Frame 推進室主幹。
リューション本部 PIA 統括部ソ
リューション一部グループマネー
ジャー。
237( 41 )
富士時報 Vol.79 No.3 2006
図
Web システム用フレームワーク「Web@Attach(ウェブアットアタッチ)
」
XML(eXtensible Markup Language)ファイルで定義す
開発画面例
ることで,アプリケーション間の依存関係を排除しつつ開
特集
発することができるようになっている。
O/R マッピングツールの装備
( 4)
データベース利用に目を向けると,これまで利用され
1
て き た SQL(Structured Query Language) の 考 え 方 と,
Java によるオブジェクト指向開発との整合が開発上での
課題として開発者が直面するケースが見られるようになっ
てきた。そこでデータベースアクセスについては O/R マッ
ピングツールを活用し,SQL を使わないデータアクセス
を可能とするようにした。
データベース定義からデータアクセスオブジェクト
(DAO)とマッピングクラスを自動生成する機能(以降
ORMapCreator という)を提供している。また,トラン
〈注 5〉
ザクションの管理や HQL を利用した任意のクエリーの実
表
行をサポートする API(Application Program Interface)
コンポーネントの一覧
種 別
説 明
データ表スクロールパネル
データ表に縦スクロールバーが付く。
スピンボタン
VBなどでなじみのスピンボタン
色指定フィールド
ポップアップして色の選択が可能
X軸を時間とした棒グラフ
棒グラフ(時間軸)
棒グラフ(カテゴリ)
X軸に値の集合(カテゴリ)を使用
折線グラフ(時間軸)
X軸を時間とした折線グラフ
折線グラフ(対数軸)
X軸・Y軸に対数が利用可能な折線グラフ
複合(棒+折線)グラフ
棒グラフと折線グラフの複合グラフ
円グラフ
風向・風速を時系列に表示
風向・風速グラフ
アイコンを押すと電卓がポップアップ
1か月,3か月,6か月単位で表示
カレンダー
ツリーメニュー
マルチプラットフォームへの対応
( 5)
〈注 6〉
〈注 7〉
アプリケーションサーバとして,Windows ,Solaris ,
〈注 8〉
Linux の複数のプラットフォームに対応している。
リッチクライアントへの対応
( 6)
〈注 9〉
VB .NET で開発したリッチクライアントを Web アプ
リケーションと連携するために,サーバ連携機能,デー
タキャッシュ機能,Web サービス開発支援 API,WSDL
(Web Services Description Language)開発支援ツールを
提供している。リッチクライアントとブラウザベースのク
ライアントは,DI コンテナ上の業務アプリケーションを
ステップグラフ
電卓
も併せて提供している。
エクスプローラ風のツリーメニュー
DBデータソース
jdbcRowSetとグラフを接続
共有できる。
.
アプリケーションレイヤ
Web@Attach では,Web システムを三つのレイヤに分
割して考える。各レイヤの基本的な役割は,下記の考えに
従う。
プレゼンテーションレイヤ
( 1)
JSF 公開により,Web デザインにおけるコンポーネント
クライアントからのリクエストを受けて,Web 画面を
活用の動向がよりいっそう高まってきている。そこで列
クライアントに表示する。ログイン時のクライアント認証
ヘッダー,行ヘッダー,固定のスクロール機能や,セル編
集機能を持つ高機能スプレッドシート,折線グラフ,棒グ
などを行う。
ビジネスレイヤ
( 2)
ラフ,円グラフ,カレンダー,電卓,バリデータなど各種
システムの業務要件に関する処理(ビジネスロジック)
コンポーネントを用意している。
を行う。プレゼンテーションレイヤからの処理要求を,ビ
表1に用意しているコンポーネントの一覧を示す。
ジネスロジックの実装クラス(ビジネスオブジェクト)に
軽量 DI コンテナの装備
( 3)
マッピングする。
業務アプリケーション開発者の中では,従来の複雑な
〈注 4〉
EJB によるアプリケーション開発を見直して,より軽量
で自由度の高い DI コンテナによる開発へとニーズが移行
〈注 5〉HQL:Hibernate Query Language の略。SQL によく似たオ
ブジェクトに対する問合せのための言語
しつつある。Web@Attach はこの DI コンテナ機能を提供
〈注 6〉Windows:米国 Microsoft Corp. の登録商標
している。アプリケーションの仕様(インタフェース)を
〈注 7〉Solaris:米国 Sun Microsystems, Inc. の登録商標
〈注 8〉Linux:Linus Torvalds の米国およびその他の国における登
〈注 4〉EJB:Enterprise JavaBeans の略。J2EE で定義されたエン
タープライズ向けの機能を備えた Bean 管理のための
仕組み
238( 42 )
録商標または商標
〈注 9〉VB .NET:Visual Basic .NET の略。Microsoft 社の提供する
開発環境の一つ
Web システム用フレームワーク「Web@Attach(ウェブアットアタッチ)
」
富士時報 Vol.79 No.3 2006
① Web@Attach が提供するインタフェースを実装す
永続化レイヤ
( 3)
ビジネスレイヤが管理するデータを,データベース上に
る。
② ビジネスロジックを記述する。
データベース上のオブジェクトにマッピングする。
③ XML ファイルにビジネスロジックのインタフェー
Java 実行環境
( 4)
ス(プロパティ)を定義する。
Web@Attach を構成する各レイヤは, 図 2 に示す単位
ビ ジ ネ ス ロ ジ ッ ク は,Web@Attach が 提 供 す る BL-
の Java 仮想マシン(VM)で実行される。プレゼンテー
facade という DI コンテナ上で動作する。このコンテナは,
ションレイヤは単独の JavaVM で,ビジネスレイヤと永
③で作成した XML ファイルに定義されたビジネスロジッ
続化レイヤは同一の JavaVM で実行される。
クを,外部に対して公開する。
リッチクライアント連携フレームワーク
( 5)
プレゼンテーションレイヤの開発(JSC)
( 3)
プ レ ゼ ン テ ー シ ョ ン レ イ ヤ で は, ク ラ イ ア ン ト 側 の
プレゼンテーションレイヤは,JSC を用いて開発を行う。
Microsoft .NET での開発に対応して,リッチクライアント
JSC でコンポーネントをドラッグ & ドロップすることで
連携フレームワークを提供している。
画面開発を行う。
JSC のアクションハンドラ(ボタンが押されたときなど
.
開発の流れ
に呼び出される Java の処理)から,ビジネスロジックを
図 2 に示すように,Web@Attach による開発は,サン・
呼び出す処理を記述する。
マイクロシステムズ株式会社の Java Studio Creator(以下,
Web@Attach では,JSC の画面に入力されたデータを
JSC と略す)と Eclipse で行う。ここでは,永続化レイヤ
で定義されたビジネスロジックに渡すための仕組みを実
( 2)
からプレゼンテーションレイヤまでの開発の流れについて
装している。このためアクションハンドラには,簡単なビ
述べる。
ジネスロジック呼出しコードを記述するだけで実装が可能
永続化レイヤの開発(Eclipse)
( 1)
である。
永 続 化 レ イ ヤ は Web@Attach の ORMapCreator ユ ー
以下に基本的な手順を記す。
ティリティにより自動生成される。そのため,データベー
① JSC 上で画面をドラッグ & ドロップで開発する。
スへの接続情報を設定して,ORMapCreator を実行する
② アクションハンドラにビジネスロジック呼出しコー
だけで準備が完了する。
ドを記述する。
以下に,基本的な操作の流れを示す。
Web@Attach では,各種の JSC 向けのコンポーネント
① データベース接続情報の設定をする。
を提供している。これを使うことで,普通では実現の難し
② ORMapCreator を実行する。
い高機能の画面の開発が可能である。
③ コンソールにて実行結果を確認する。
④ プロジェクトを最新表示し,ソースコードが自動生
.
適用の効果
ここまでは Web@Attach を使用してシステム開発を
成されていることを確認する。
自動生成されたデータアクセスオブジェクトや,マッピ
行 う 場 合 を 中 心 に 製 品 の 紹 介 を し て き た が, こ こ で は
ングクラス(データベースの値を保持する JavaBeans)に
Web@Attach を適用して開発したシステムで得られる効
対して,任意の処理を追加することも可能である。
果について述べる。
ビジネスレイヤの開発(Eclipse)
( 2)
品質の向上
( 1)
ビ ジ ネ ス レ イ ヤ は,Web@Attach が 提 供 す る イ ン タ
システム開発の品質確保に向けた最善の施策は品質
フェースを実装して開発を行う。インタフェースを実装し
で開発した永続
たクラスでは,他のクラスの呼出しや,
( 1)
図
事例におけるフレームワーク別のソースコード量比較
化レイヤを利用したプログラムを記述する。
大
以下に,基本的な開発の流れを記す。
アプリケーションのレイヤ
プレゼンテーション
レイヤ
Java Server
Faces
Sun Java
Application
Server PE8
永続化レイヤ
ビジネスレイヤ
Application
Context
POJO
DAO
DIコンテナ/
Spring
Framework
データアクセス
オブジェクト
(DAO)
ステップ数
図
DBアクセス
ロジック
画面
Hibernate
Java VM
Java VM
開発:JSC
開発:eclipse
小
実ステップ
手組み
ステップ
Web@Attach
実ステップ
手組み
ステップ
JSP/Servlet
実ステップ
手組み
ステップ
Struts
239( 43 )
特集
永続化する。またビジネスレイヤが必要とするデータを,
1
富士時報 Vol.79 No.3 2006
Web システム用フレームワーク「Web@Attach(ウェブアットアタッチ)
」
が確認されたソフトウェアを可能な限り使用し,その開
る。
発で製作するソフトウェア量を最小化することである。
特集
1
Web@Attach は サ ン・ マ イ ク ロ シ ス テ ム ズ 株 式 会 社 の
.
適用の考え方
JSC の活用,O/R マッピング技術の導入によって業務ア
鉄鋼分野ではリプレースシステム構築の場合,既存シス
プリケーションの作成量を減らすようにしている。適用ア
テム資産の活用がシステム構築効率化のもう一つのポイン
プリケーションにもよるが,Web システムの社内におけ
トとなる場合が多い。そのため図 4 に示すように新規また
る開発内容を見ると,70 %は,メニュー,表,単純な DB
は新規に近い再構築の場合と,既存資産を活用していく場
参照,入力などの標準的な画面開発で構成されるケース
合に分けて柔軟に適用し開発効率を追求している。
が多い。Web@Attach はこの部分に着目し,コード生成,
Web@Attach の適用に際しては,フレームワークの特
自動化,コンポーネント活用によって手組みソースを削減
長を生かし,以下の考え方で構築している。
して,これまでより高い開発効率を実現しようとしてい
開発完了後のメンテナンス性向上のために,アプリ
( 1)
る。図 3 は社内にて開発された小規模システム開発の事例
ケーションプログラムについてプレゼンテーションレイ
であり,アプリケーションにもよるため参考データである
ヤとビジネスレイヤへ構造的に分離する。将来的にはア
が,Web@Attach を使用した開発,JSP/Servlet 開発およ
プリケーションの構造化を推進し開発効率化が図れるよ
び Struts でのシステム開発時のソースコード記述量の比
較を示している。Web@Attach はソースコードの自動生
うにする。
プレゼンテーションは構築ツールで作成し効率を追求
( 2)
成を行っているため,ソースコードステップは最も多いが,
するとともに,将来の画面部品の共通化と再利用促進を
人手によるソースコード記述量は他に比べて記述量がかな
狙う。
り少なくなっている。
保守性の向上
( 2)
.
適用範囲パターン
運用後のシステム保守,特にアプリケーションプログラ
図 4 で示すようにシステム開発時の状況により Java の
ムの改造や修正はシステム保守担当者にとって非常に重
適用範囲が変わるが,製造現場システムなど外部との連携
要な問題である。特に,アプリケーションプログラム間に
部分はリアルタイム性の確保のために C 言語により構築
複雑な相互関係を持っていると改造・修正が非常に難し
し,画面部および内部処理については既存資産の活用有無
くなる傾向が強い。Web@Attach は,XML によるインタ
により図 5 で示すような二つのパターンで対応している。
フェース定義を基にした DI コンテナによってアプリケー
今後の取組み
ション同士の依存性をなくしており,プログラムの保守性
が高い作りとなっている。
.
システム開発への適用
テスト効率の改善
現在の Web@Attach が狙いとする範囲は,プログラミ
ング工程が中心となっている。その先のテスト工程につい
2005 年にリリースして以降,Web@Attach を適用した
ては明確に定義されていないが,品質のよいプログラムを
プロジェクトは鉄鋼分野を中心として紙パルプ,放射線,
作るには,単体テストが必要不可欠である。近年「テスト
交通,食品など幅広い分野で利用されてきている。
以下では鉄鋼分野における適用の考え方について紹介す
図
鉄鋼分野の Web@Attach の適用の考え方
図
鉄鋼分野の Web@Attach の適用パターン
Web@Attach適用範囲
処理起動
(Web画面)
Web@Attach以外を選択
新
規
開
発
案
件
画面方式,もしくは
実現ツールを顧客が指定
グラフィック部品など
他社製品使用のメリットが
大きいもの
イベント制御
Web@Attachの適用
自動更新
�顧客から実現ツールの指定がない場合は
Web@Attachを適用
�左記条件以外の場合
単純コンバート
(既存仕様の全面的な移行)
仕様・機能などの追加・
変更が大きい場合
画面
画面
呼出し
制御
編集
ロジック
(Java)
(Java)
メッセージ
DB
画面層
画面:既存ロジック
を流用
内部処理:既存を流用
DF-ROSE
PFILE
CRT-X
DMS-FA
…など
画面:既存ロジックを流用
する場合ユーザーイ
ンタフェースの作成
が必要
Web@Attachインタ
フェースの作成
既存流用+新規・追加(ボリューム小)案件
内部処理:既存を流用
DF-ROSE
PFILE
CRT-X
DMS-FA
…など
フレームワーク適用の
検討案件
画面:新規開発
新規方式の模索案件
データ等価
Web@Attach
適用範囲
内部処理
(Java)
ドライバ
連携
(C言語)
部品
画面
シナリオ
(Java)
処理起動
イベント制御
編集
管理
(Java) 画面
(Java)
一般
自動更新
DB
ロジック
ファイル
(Java)
(PFILE)
(Web画面)
メッセージ
呼出し制御
AP層
ドライバ層
顧客Web画面指定案件
【パターン2】Javaをメインにて開発した場合
240( 44 )
その他
パソコン
PIO
内部処理・
ドライバ層
呼出し連携
運用方針の変更案件
システム方針・スコープ
などの変更案件
一般
ファイル
(PFILE)
B/C
ドライバ
(C言語)
【パターン1】画面はJava,内部処理はCにて開発した場合
既存仕様ベースでの開発案件
既
存
資
産
活
用
案
件
TCP/IP
内部処理
(C言語)
TCP/IP
B/C
その他
パソコン
PIO
富士時報 Vol.79 No.3 2006
Web システム用フレームワーク「Web@Attach(ウェブアットアタッチ)
」
ファースト」というテストコードを先に記述する手法も注
るためには,業種別のアプリケーションフレームワークの
整備が必要と考えている。そこで再利用性を高めた Java
そこで今後は Java のテスト自動化ツールとの連携に取
によるシステム開発実現に向け,プレゼンテーションレイ
り組んでいきたいと考えている。これによって JUnit など
ヤでの業種別コンポーネントの充実やビジネスレイヤに
のテスティングフレームワークを利用したテストコードを
おけるアプリケーションの一層の構造化を進めたフレーム
記述することなく,プログラマが記述したコードについて
ワークの開発を現在進めている。
テスト項目の定義のみでホワイトボックステストやブラッ
クボックステストが行える可能性が出てくる。
あとがき
先に述べたように,Web@Attach によってレイヤごと
に分割されたプログラムの記述を促すことができるが,自
Web システム開発技術は,オープンソースの普及とあ
動生成機能やツールを併用することで記述するプログラム
いまって急速に進展している。Web@Attach はこれら最
の量を劇的に減らすことができる。これに,テストツール
新の技術を活用して Web システム開発の抱える課題を解
との連携を加えることで,早い段階でプログラムのバグに
決しようとしたものである。しかし前述したようにテス
気づくことができ,プログラム単体の品質向上につながり,
ティングフレームワークとの連携やビジネスロジック開発
一層の開発効率化に寄与していけるであろう。
の効率化などの課題が残されていると考えている。今後は
これらの課題に取り組むとともに Web@Attach の適用を
.
アプリケーションの充実
今回紹介した Web@Attach は Java による Web システ
推進し,システム開発の一層の改善に寄与していく所存で
ある。
ム開発効率化の第一歩と考えている。一層の効率向上を図
241( 45 )
特集
目を浴びている。
1
*本誌に記載されている会社名および製品名は,それぞれの会社が所有する
商標または登録商標である場合があります。
Fly UP