PR:業務アプリを超高速に開発する「Wagby」。データモデルを基に、オープンソースを基盤にしたJavaコードを自動生成
プロジェクト名を入力し、扱うデータのプロパティとしてデータ名や型、属性、リレーションなどを設定していく。すると自動的にサーバサイドのJavaコードと、業務アプリケーション用の画面となるHTMLやJavaScriptコードがすぐに実行可能な状態で展開される。
ジャスミンソフトの「Wagby」をひとことで説明するとすれば、データモデルを元に業務アプリケーションのコードを高速に生成するフレームワークだといえるでしょう。生成されたコードはそのまま業務アプリケーションとして使え、カスタマイズも可能。
ジャスミンソフト代表取締役 贄良則(にえ よしのり)氏は、「Wagbyは、ある意味で業務アプリケーションに特化したDSL(Domain Specific Language:目的特化型言語)を、プロパティで表現しようという試みです。しかも開発者が使えて、エンドユーザーも読めるというバランスを実現しようとしています」と、製品の狙いを説明します。
Wagbyとはどのような機能を備えた製品なのでしょうか。本記事ではまずはその概要を解説し、続いて贄氏に製品開発の背景を聞きました。
モデルからJavaコードを生成するWagby
Wagbyの最新版「Wagby R7」は、インストール後にWebブラウザから利用可能になります。Webブラウザの画面から、例えば取引会社の情報、請求書の情報など、アプリケーションで扱いたいデータを設定していきます。ユーザーログイン時のパスワードポリシーなども設定できます。
例えば会社情報を扱うモデルの画面を見ると、これがほぼそのままデータベースのテーブル定義になることが分かるでしょう。
モデルでは単にテーブル定義だけではなく、画面生成やロジック生成に利用される業務ルールなども詳細情報として入力していきます。
設定された情報を基にして業務アプリケーションのJavaコードが生成されます。画面はレスポンシブWebデザインが意識されており、PCだけでなくタブレットでも同じように表示されます。
ユーザーのログイン機能、Ajaxによる入力欄の自動補完機能や、コード番号によるすばやい入力への対応、伝票の枝番生成など、業務アプリケーションの画面でよく求められる機能も備わっています。
生成されるJavaコードはTomcat/Spring MVC/Hibernate 4を基盤としており、ベンダ依存の特殊な記述などもないためカスタマイズも容易です。
Wagbyはコンフィグレーション済みのこれらの基盤ソフトともにコードを生成するため、ディレクトリをそのままサーバにコピーするだけでデプロイできるようになっています。データベースとしてOracle、SQL Server、DB2、PostgreSQL、MySQLなどに対応します。
このように、Wagbyでは1行もコードを書くことなく業務アプリケーションを開発でき、仕様に変更があってもモデルを変更するだけで単体テストをやり直す必要もなく、非常に高速にアプリケーションを開発できることが大きな特長です。
プログラミングと単体テストを圧縮、運用しながらの改善にも最適
こうした機能と特徴を持つWagbyを開発した背景とねらいについて、代表取締役 贄良則氏に聞きました。
──── そもそもなぜWagbyのような製品を開発することになったのでしょうか?
贄氏 私たちジャスミンソフトは、もともと沖縄でJavaを使った受託開発を行っていました(現在も本社は沖縄)。その中で自分たちの生産性をいかに上げていくかという課題に取り組んでいまして、2001年頃にこの製品の原点となるプログラムを作りました。
その後の2002年から2003年頃にはオフショアの波がやってきて受託開発の急激な単価下落に直面します。そうした時代に生き残るには単価を下げる競争を戦うのではなく、ツールベンダになるという選択をしたのです。
Wagbyの最初のバージョンを出したときには、あれもできないこれもできないという状態でしたが、お客様の声を吸い上げて機能を拡張し、アーキテクチャの刷新なども行い、事例もかなり増えてきました。
──── Wagbyがお客様やSIにもっとも評価される点はどこだとお考えですか?
贄氏 やはり開発の速さですね。デモをご覧いただきつつその場で業務アプリケーションを作ってしまいますと、お客様はこれをうまく利用すれば欲しいものが作れるはずだと直感されます。
SIerさんにとっても、お客様から要件を聞いたら短い時間でフィードバックできます。このサイクルの速さがお客様から求められていて、それを実現できるとご評価いただいています。
──── Wagbyを使うことで開発スピードが速くなると。
贄氏 具体的には、プログラミングと単体テストにかかる工数は従来の10分の1の時間で済むようになると思います。ただし、要件定義や設計や最後の検収にかかる統合テストなどの工数はこれまでと同じです。
それでも開発の部分がある程度自動化できると開発期間は短くなるので、これまで要件定義をして開発するのと同じ時間で、それを3回繰り返せるようになるかもしれません。すると、お客様が欲しいと考えていたシステムにより高い精度でたどり着けるようになります。
また、運用が始まってからもシステムを手直ししたいというときにも、この手のツールがあると楽だと思います。
こうした開発をなんと呼んだらいいのか。「アプリケーションの自動生成」が多くの技術者の方から怪しい目で見られているのは理解しています。WagbyはJavaやオープンソースを基盤にしてカスタマイズもできますし、アジャイル開発とも違います。昨年、日経コンピュータさんが「超高速開発」というキーワードを使っていらして、それが近いかなと感じています。
7月25日と26日の2日間、Wagbyの最新バージョンとなる「Wagby R7」の発表会、並びに「Wagby Developer Day 2013」が開催。詳細は下記からご覧ください。
(本記事は、株式会社ジャスミンソフト提供のタイアップ記事です)
あわせて読みたい
チップスケール原子時計やSoCがこれからクラウドを変えていく~クラウドコンピューティングの雲の中(その3)。NII Open House 2013
≪前の記事
分散ストレージの整合性をいかに解決するか。プライマリ-バックアップ方式と分散コミット~クラウドコンピューティングの雲の中(その2)。NII Open House 2013