Wagby R8 こだわりのポイント

本日、4年ぶりのメジャーバージョンアップとなる Wagby R8 を公開しました。アピールポイントをこちらにまとめました。

wagby.com


積年の課題であった、画面レイアウトを GUI で行う「スクリーンエディタ」を実装できたことを喜んでいます。最初はどこまで実現できるか未知数でしたが、JavaScript だけでこれを実現できたことは素晴らしい。今後のクラウド環境での開発を見据えたとき、Eclipse のプラグインといった方向ではなく、すべてブラウザで動作させることが求められていました。これを実装した開発者に心から敬意を表します。

もう一つのポイントは「マルチセッション」です。これも多くのお客様から求められていましたが、この実現のためには内部の動作を大きく変える必要があったため、採用する技術の選定に時間を要していました。今回のメジャーバージョンアップで、ここぞとばかり内部のモジュールを入れ替えることで、ようやく実装できました。ぎりぎりまでつきあってくれた開発の皆さん、ごくろうさまでした。

ここまでは表の話。ブログなので、ここから個人的な思い入れの話をします。

オープンなアーキテクチャへのこだわり

Wagbyのターゲットは業務システムですが、システム設計とアーキテクチャは切っても切り離せません。羽生さんの新著「はじめよう!システム設計」p.11 にも次のように説明されています。

gihyo.jp

アーキテクチャとは、システムの個々の構成要素をどのように組み合わせるかという構造の考え方です。方式と呼ばれることもあります。クライアントサーバ型とか3層アーキテクチャとか、いろいろな呼ばれ方でいろいろな方式が存在します。システム設計とは、今回採用するアーキテクチャ上のどこでどの要件を実現するのかを割り振っていくことです。ですから、


アーキテクチャから独立したシステム設計は不可能である


ということをまず納得する必要があります。


Wagbyのような超高速開発を実現する「ツール」は、設計情報からアプリケーションを駆動するものですが、その仕組み上、定まったアーキテクチャを内包しています。言い換えると、開発者はアーキテクチャを選べません。ツールそのものが提供するアーキテクチャの上でシステム設計を行うことになります。それはアーキテクチャの制約を受け入れるということです。

もちろん、どのアーキテクチャにも、必ず何らかの制約が存在します。制約を受け入れる代わりに、何か(たとえば安定性、保守性、生産性)を得るわけです。だからこそ、そのアーキテクチャはどういうもので、開発者はどこまで関われるものか、はとても重要です。

できるだけ柔軟性があって、かつアーキテクチャの構成要素となる個々のモジュールが公開されている(オープンソース)であること。そしてエンタープライズ分野で多くの採用実績があり、かつ将来的な方向性(ロードマップ)も見据えられていること。ここまでの要求を満たすのは Spring framework 一択だと考えています。

Wagbyは当初から Spring framework を採用していましたが、最初は部分的な利用でした。メジャーバージョンアップの都度、Spring framework の関連度を高めるように改良を重ね、今回はいよいよ Spring Boot、Spring Security、Spring Session といった基盤要素を取り入れることができました。この実装において、開発者はインターネットに公開されている(海外を含む)技術資料だけにとどまらず、Spring のソースコードを読みながら Wagby への導入を実現しました。よくやった!と感心するばかりです。

表面的にはわかりにくいのですが、Wagby R8 で Spring framework の方向性に沿った形で内部のアーキテクチャを再構築できたことは、将来性を担保できたということです。これが一番大きな成果です。

私の知る限り、他の超高速開発ツール、とりわけ海外製品で歴史のあるものは、独自アーキテクチャかつ、当然ですがソースコード非開示です。私はそこに萌えを感じることができません。仮に Wagby をつくらなかった世界線にいる私が SIer の立場でお客様のシステム開発に関わったとき、超高速開発ツールというキーワードに反応するでしょうが、独自アーキテクチャかつソースコード非開示の製品は採用しないことでしょう。「ロックイン」という言葉が意味するものは人それぞれかも知れませんが、私にとってのそれはアーキテクチャのオープン性を意味します。Spring framework の採用もある種のロックインではないかと言われれば、それはそうなのですが、「システム設計とアーキテクチャは不可分」という原点を思い出してください。私にとって最も安心できるロックインが Spring framework です。

システム設計とアーキテクチャは不可分であればこそ、オープンなアーキテクチャを指向することは重要です。Wagbyのこだわりはそこにあります。エンタープライズ分野に携わるお客様で、この手の話に興味がある方は少なからずいらっしゃいますが、そう多くはありません。作り手からすると最大のアピールポイントなのですが、営業的にはそこではなく、新機能と今後のロードマップを丁寧に説明していくことが必要です。この一ヶ月、製品の出荷作業に集中して、まだ営業資料ができあがっていませんので、もう少しお待ちください。(最後はお詫びで。)