アットマーク・アイティ @IT@IT情報マネジメント@IT自分戦略研究所QA@ITイベントカレンダー  
<評価版ダウンロード>ぜひご利用ください。
この記事でご紹介した「Ninja-VA」各製品の評価版をダウンロードすることができます。

ダウンロードページへジャンプ
(サイオステクノロジーのWebサイトへジャンプします)
 @IT > JSFを凌駕するビジュアルWebシステム構築ソリューションの誕生「Ninja-VA」
 
@IT[FYI]

 
JSFを凌駕する
ビジュアルWebシステム構築ソリューションの誕生
「Ninja-VA」

  JavaOneに登場した国産のGUI開発ツール

「Ninja-VA Studio」とは?

写真1 JavaOne 2004では「Adaptive Component J2EE Middleware Ninja-VA 」の名称で、フレームワークと開発ツールを出展した。すぐれたGUIでWebアプリのUIを設計できる点に注目が集まった

 JSF(JavaSever Faces)の仕様が形になると同時に、J2EEベースのWebアプリケーションをGUIの上でデザインできる開発ツールが登場してきている。Borland JBuilderやIBM WebSphere Studio、Oracle JDeveloper、Sun Java Creatorといった製品だ。しかし、JSFに頼ることなく、これらの製品に負けず劣らずの機能と使いやすさを実現したツールが、実は国産ベンダから登場している。それがサイオステクノロジーが開発した「Ninja-VA Studio」だ。同ツールは昨年(2004年)夏にサンフランシスコで開催されたJavaOneに参考出展され、大きな評価を得ている。Ninja-VA Studioは、サイオステクノロジーが開発したJ2EEフレームワーク「Ninja-VA Framework」の上で利用する開発ツールだ。

 Ninja-VA Frameworkはオープンソースとして提供されている。そしてこのフレームワーク上での開発効率をさらに高めるツールとしてNinja-VA Studioが有償で提供される。

 すぐれたIDEをもち、そのクオリティには目を見張るものがある。

  Ninja-VA投入の意義

開発現場の課題

 サイオステクノロジーはこのNinja-VAを「システム開発の現場における生産性向上の現実解としてNinja-VAを投入した」(サイオステクノロジー 長尾氏)という。たしかに、J2EE開発者にとって、最新のJ2EEテクノロジをキャッチアップしていくことは重要だ。しかし、システムインテグレータやデベロッパがクライアントに向き合うとき、忘れてならないのは“お客さまの満足度”を高めること。ここにサイオステクノロジーはこだわった。

 J2EEが提供するテクノロジを無理にすべて網羅するのではなく、その中から企業情報システム開発に必要最小限のものを選択し、大規模開発においても「ソースコードの均質性」「高いデータベーストランザクション性能の実現」「納期を守るための高い生産性」を実現するフレームワークを完成させた。

 サイオステクノロジーのフレームワークは、Java+Webシステムの黎明期である1997年から、同社が培ったJavaによるシステム構築のノウハウが集約されたものだ。同社はこのフレームワークを「WebWorkBench DeveloperCafe」としてその後製品化する。実際、このフレームワークは、すでに数多くの公共システムに採用され、とくに電子入札分野では高い採用実績をもつ。Ninja-VAは同フレームワークをさらにこれからのニーズに合わせ大幅に改良したものだ。

 以下に、フレームワークの採用実績を挙げるが、さらに詳しい内容は、サイオステクノロジーの導入事例を紹介するページでご確認いただきたい。

  • 総務省
  • 株式会社ファーストリテイリング
  • 新日鉄ソリューションズ株式会社
  • 日本ヒューレット・パッカード株式会社
  • 全日空システム企画株式会社
  • 株式会社ガリバーインターナショナル
  • 株式会社インテック
  • 東京スター銀行
  • KDDI……ほか
  秀逸なNinja-VAテクノロジ

高生産性を実現する

 ではあらためて、Ninja-VAを技術的側面から解説しよう。Ninja-VAは、J2EEミニマムセットと独自フレームワークの組み合わせでエンタープライズシステム構築に高い生産性を提供するソリューションだ。

 ビジュアル開発ツールNinja-VA Studioとオープンソース製品であるNinja-VA フレームワークで構成され、両者が揃うことで、J2EE開発のEoD(Ease of Development)を提供する。もちろん、フレームワーク単独でも生産性を高めることが可能だが、開発ツールを同時に使うことで、コードの生産性が飛躍的に高まる。さらには、多くの開発者が共同作業を行う大規模開発において、コードの均質性を高めることができる。

Ninja-VA Studioの役割

 Ninja-VA StudioはJavaのエディタやデバッガなど、IDEとしての標準的な機能が組み込まれている。ただ、EclipseやJBuilder、Sun Java CreatorなどのIDEと比べると用意されていない機能もあり、一見貧弱な印象を受ける。

 だが、だからといって他のIDEよりも生産性が落ちる訳ではない。なぜなら、もともとStudioにとってIDEは補助機能であり目的ではない。Studioの役割はフレームワークの要となるNinja-VAアダプタをビジュアルに設計する機能にある。サイオステクノロジーのフレームワークの高い生産性のヒントは、このNinja-VAアダプタにあるのだ。

Ninja-VAアダプタとはなにか?

 Ninja-VAアダプタとは、Ninja-VAフレームワーク独特のコンポーネントモデルだ。アプリケーションプログラムのベース(基底クラス)となる部分であり、設計情報を記述したXMLファイル(Adaptor Description)により、初期化するメカニズムを内蔵している。

 Ninja-VAフレームワークにおけるアプリケーション開発は、このNinja-VAアダプタを拡張し、そのコレクションにさまざまなNinja-VAコンポーネントを加えることにより、アプリケーションプログラムの骨格を作り上げていくスタイルであるわけだ。そしてStudioは、Ninja-VAアダプタに与えるアプリケーション設計情報をビジュアルに編集する専用のGUIを搭載したツールということだ。これが高生産性を実現する上で大きな鍵を握る部分というわけだ。

 Ninja-VAのプログラミングモデルではJavaコーディングは極めて少なくなる。この為、プログラミングだけでなくテストを含めた工数が大幅に削減され、プロジェクト全体の生産性が向上する。一方で、Ninja-VAアダプタやそのコレクションコンポーネントに与える設計情報は増大するという側面がある。これを効率化するためのツールがStudioであるというわけだ。

図1 Ninja-VA フレームワーク(画像をクリックすると拡大します)

完全にビジュアルなWebアプリケーション開発

 Studioの最大の特長は完全にビジュアルなWebアプリケーション開発を実現することだ。Ninja-VAフレームワークでWebアプリケーションの中核となるのはSmartWebObjectというアダプタであり、このアダプタに対し、Modelの要素、Viewの要素、Controlの要素を担うコンポーネントを配置することで、アプリケーションが構成される。

 この中で最も特長的なコンポーネントがHTMLDataViewである。HTMLDataViewはHTMLユーザーインターフェイスを表現するためのキャンバスといえる。このキャンバスに、入力フィールドやボタン等、UI構成要素をレイアウトしていくが、Studioは完全にビジュアルな環境で、その作業をサポートする。

 Studioには実行時そのままのイメージが設計ビューに表示され、UI構成要素の位置やサイズをマウスのドラッグ&ドロップで自由に指定できる。また、位置合わせツールやサイズ合わせツールも充実しており、複雑な業務アプリケーションのレイアウトも繊細にデザインできる。

画面1 Studioのレイアウト画面(画像をクリックすると拡大します)

 これらのレイアウト情報は、すべて設計情報ファイルに出力され、実行時にHTMLDataViewが通常のHTMLに変換して出力する。また、データモデルの値は自動的にHTMLにマージされることになる。

Webユーザーインターフェイスの継承と拡張を実現

 注目すべきは、HTMLDataViewのアプローチは、一般的なJSP+Tagライブラリでは不可能だったWebユーザーインターフェイスの継承と拡張を可能にする点だ。Ninja-VAアダプタは継承が可能であり、拡張クラスでは差分のみを設計情報ファイルに記述すればよい。このため、UIの共通要素を基底アダプタに実装し、ユースケースで異なる差分を拡張クラスで実装するという、オブジェクト指向のパラダイムをWebユーザーインターフェイスでも実現できるのが大きな特長である。

 この特長は、業務アプリケーションの開発現場では大きなメリットとなる。例えば、UIが似ているにもかかわらず、入力項目やボタン形状のわずかな違いによって異なるユーザービューとなり、結果として1つ1つについてJSPを作成するのが従来のスタイルであった。さらに悪いことには、それらのJSPには個別のロジックも紛れ込むと、共通化することは不可能であり、生産性を低下させる一因となっていたわけだ。しかしNinja-VAでは、UIの継承、拡張という手段で、この課題を解決する。1つのひな形をベースに、複数の部品を作成していくことができる。さらにStudioを使うと、基底クラスで実装されたUIにビジュアルな操作で差分を加えていくことができるため、さらに生産性を高める結果となる。


データモデルの実装を容易にするユニークなアーキテクチャ

 J2EEアプリケーション開発において、データモデルの実装も非常に大きな工数を占める作業であり、開発期間やコストの増大に大きく影響する分野である。

 データモデル(現実データの写し取り)を設計・実装する場面では多くの労力を要する。ビジネス・アプリケーションの世界としてのデータモデルとデータベースの世界としてのデータモデルをどうやってうまくマッピングさせればよいのかというインピーダンスミスマッチも大きな問題だ。

 Ninja-VAフレームワークは独自のデータモデル実現アーキテクチャである、データキャッシュコンポーネントによるデータモデル実装によって、これらの課題を解決している。重要なデータキャッシュコンポーネントはDataTableとTableRelationである。これらはリレーショナルデータベースの表と関係に類似しており、その写し取りを効率良く、アプリケーションプログラムのコンテキストとして展開する機能を持っている。

 一般的なJ2EEのアーキテクチャがクラスとその属性、クラス間のリレーションでデータモデルを表現しようするのに対し、Ninja-VAはまったく異なるアプローチでそれを実現する。

 また、DataTableとTableRelationはNinja-VAアダプタのコレクションコンポーネントであり、その構造は設計情報ファイルに記述される。

 Studioはこれらのビジュアル設計もサポートする。設計ビューにデータキャッシュコンポーネントを配置し、フィールド属性、バリデーション、リレーションなどをプロパティエディターで設定するだけで、データモデル設計は完了だ。

画面2 データモデル設計の画面(画像をクリックすると拡大します)


複雑なデータベーストランザクションの実装も容易に

 Ninja-VAデータキャッシュコンポーネントからデータベース永続化を行うのは非常に簡単だ。単純なものであれば完全にノンコーディングで実現可能である。

 一方、複雑なデータベーストランザクションはSmartDBActionというアダプタを利用して実現する。これを利用するとアプリケーションプログラムのフロント層からデータベーストランザクション層を分離し、カプセル化されたサービスとして提供することが可能となる。StudioはSmartDBActionのビジュアル設計もサポートする。また複雑な選択SQL文もクエリーエディターを使用して、ビジュアルに構築することが可能だ。

画面3 クエリーエディターの画面 (画像をクリックすると拡大します)

  Ninja-VAの可能性


読者自らの手で試してほしい

 さて、ここまでNinja-VAのテクニカルな特長を紹介してきた。Ninja-VAの本質的なメリットは何かに立ち返り、ここで再度強調しておきたいのは、Ninja-VAが単なる簡単開発ツール、あるいは単なるオープンソースフレームワークではなく、企業向けのシステム構築ソリューションであるという点だ。ここが、Strutsなどのアプリケーションフレームワークとは大きく異なる点だ。

 アプリケーションのプレゼンテーション層からビジネスロジック層、データ層までを幅広くサポートすることで、アプリケーションの基本構造に強力な統制力を発揮する。さまざまなスキルをもった多くのエンジニアが参加する大規模エンタープライズ開発において、均質化されたシステム構築を実現する大きな一助となる。さらに、Ninja-VAフレームワークに特化したGUIツールStuidioによって、システムの規模を問わずアプリケーション構築の期間短縮を実現できる。

 ここまでNinja-VAについていいことずくめで説明してきたが、難点があるとすればそれはNinja-VAの強烈な個性かもしれない。アダプタなる独自のアーキテクチャが、J2EEに熟知したエンジニアには非常に独特に見えるかもしれない。だが、Ninja-VAによって実際にできあがるアプリケーションプログラムのJavaコードは極めてシンプルで洗練されている。おそらく、Javaに十分な知識がないプログラマでも、そのアプリケーションの振る舞いをコードから容易に読み取れるはずだ。Ninja-VAはサイトからダウロードして実際に試すことができる。チュートリアルも充実しているので、読者自らがまずは評価してみてほしい。

評価版ダウンロード
https://www.tenartni.com/dwl/top?file=ns30

 また、製品概要や簡単な操作方法が体験できるハンズオン形式のセミナーも開催されており、このようなセミナーを活用するのもいいかもしれない。

製品操作体験セミナー
http://www.10art-ni.co.jp/seminar/ninja-va/handson/

 なお、Ninja-VAフレームワークは、テンアートニ・パブリック・ライセンス(TPL)に従いオープンソースとしてのライセンスが定められている。TPLはGPL以上にサードパーティーにとって有利な条件が定義されている。とくに、自社開発のコードを公開したくない開発案件においてNija-VAフレームワークを利用する場合に有効だ。

 Ninja-VAは、今後Swingや.NETをクライアントとしたフレームワークとしても対応予定だ。プレゼンテーション層を自在に選択できるフレームワークとしても、注目を集めると予想している。



<評価版ダウンロード>ぜひご利用ください。
この記事でご紹介した
「Ninja-VA」各製品の評価版を
ダウンロードすることができます。

ダウンロードページへジャンプ

(サイオステクノロジーのWebサイトへジャンプします)

提供:サイオステクノロジー株式会社
企画:アイティメディア 営業局
制作:@IT編集局

掲載内容有効期限:2005年5月16日
 
記事目次
JavaOneに登場した国産GUI開発ツール  
 ・ 「Ninja-VA Studio」 とは?

Ninja-VA投入の意義
 ・ 開発現場の課題

秀逸なNinja-VAテクノロジー
 ・ 高生産性を実現する
 ・ Nija-VA Studioの役割
 ・ Ninja-VAアダプタとはなにか?
 ・ ビジュアルなWebアプリケーション開発
 ・ Webユーザーインターフェイスの継承と拡張
 ・ データモデル実装が容易なアーキテクチャ
 ・ データベーストランザクション実装も容易に

Ninja-VAの可能性
 ・ 読者自らが試してほしい

関連リンク集

サイオステクノロジー

Ninja-VA製品ポータル

製品構成

ご購入/お問い合わせ

サイオステクノロジー株式会社
 
@IT 関連ニュース

独自のフレームワークをオープンソース化、テンアートニ(2004/8/18)
 




 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ