レポート

「業務系システムは今すぐ脱Strutsを!」業務システムエンジニアのためのHTML5勉強会#04 活動報告

この記事を読むのに必要な時間:およそ 6 分

2013年9月9日,日本Javaユーザグループとhtml5jえんぷら部で共同開催「業務システムのためのHTML5勉強会#04」は,GREE様の会場提供で六本木の森タワーにて開催されました。

画像

テーマは「Web x Java」。WebとJavaを組み合わせたWebシステム開発が,どのような方向に向かっているのか,どういう技術により実現されるのかを探る目的で開催されたイベントです。

「Webの技術」では,jQueryの登場が,インタラクティブなフロントエンド実現を容易にし,HTML5の普及でさらに拍車を掛けます。フロントエンドの開発は,マルチデバイス対応,ポリフィル・シムから,ビルドプロセスにテストツールと,様々な技術要素が絡み合います。そして,数年前には想像もつかないほどの高い専門性と,複雑な課題を持つ技術領域に変化しました。

一方で「Javaの技術」も,Java EEと呼ばれる標準を通じて,サーバサイドからWebアプリケーション開発の高度化に貢献しています。最近では,HTML5対応機能を強化したJava EE 7がリリースされ,WebSocketなどのステートフルな通信への対応が注目を集めています。Java標準もまた,着実に進化を続けているのです。

Web標準とJava標準,エンタープライズの鉄板とも言える2つの技術。これらがどこへ向かおうとしているのか理解することは,エンタープライズシステムの未来を理解すると言っても過言では無いでしょう。

本記事の筆者は,Web技術者コミュニティ「html5jえんぷら部」の部長であり,本イベントの司会を担当している川田@kawada_hiroshiです。筆者の持つ,業務系Webシステムデベロッパの視点から,本イベントの講演内容を紹介します。

エンタープライズは「Next Struts」が必要

「業務系システムはNext Strutsが必要」そう語るのは,html5jえんぷら部のスタッフであり,業務系フロントエンドエンジニアとして活動する小川充氏@mitsuruogです。

本イベント企画の中心人物の一人でもある小川氏は,オープニングトークとして次のように語りました。

写真 html5jえんぷら部 小川充氏

写真 html5jえんぷら部 小川充氏

Webアプリケーションはしっかりとしたバックエンドがないと成り立たちませんが,2013年の今も,J2EE+Struts1.X+JSPの組み合わせが依然として多いという状況です。Struts1.Xという,サポート切れのフレームワークが使われているのです。

国内の多くの業務系WebアプリケーションがStrutsを脱却できず,それどころか,レガシーなJavaの技術の上で独自のフレームワークが構築されます。それはまるで,ミルフィールのような構造と化しているのではないでしょうか。

業務系Webアプリケーションは多くの場合,問題の改善のために新しい技術の力を借りるのでなく,レガシーな技術へフレームワーク・ライブラリを追加するという選択を行っているように思えます。それが結果として,業務系Webアプリケーションのガラパゴス化を進行させています。Java本来のコモディティ化の思想から外れ,特定の技術によるロックイン化が進んでいます。

この状況の脱出の鍵は,仕様の「標準化」ではないでしょうか。

例えば,Webブラウザはかつて独自実装に走っていましたが,HTML5で状況は変わり,独自機能が標準化によりコモディティ化されつつあります。そして,Webアプリケーションはポータビリティを獲得しつつあります。

Javaも同じく,サードパーティ・フレームワークの機能が,Java自体の標準へ組み込まれつつあります。StrutsやSpringが解決した課題を,標準化されたAPIで解決しようとしているのです。また最近は,Scalaのような革新的な技術も生れており,別のアプローチも試みています。

本日は,これらJava/Scala技術の専門家の方に,Web技術の視点から情報を共有していただけることになりました。私はこの勉強会が,「Next Struts」のきっかけになると期待しています。

Strutsをやめる理由? エンドユーザの視点から?

「Strutsをやめて,標準技術であるJava EEを利用すべきだ」そう語るのは,日本Oracleのエバンジェリスト寺田佳央氏@yoshioteradaです。

寺田氏はJava標準利用のメリットを「エンドユーザの視点」から次のように語りました。

写真 日本Oracleエバンジェリスト 寺田佳央氏

写真 日本Oracleエバンジェリスト 寺田佳央氏

Java EEは,Javaの標準技術の一つです。Java EEは標準技術であるため,製品間の移植性の高い,ポータビリティに優れたアプリケーションを開発できるというメリットがあります。

10年前のデファクト・スタンダードは,Struts + Spring + Hibernateでした。10年前は確かにこれが正しかったのですが,10年経った今もこれが本当に正しいでしょうか。

Struts1.Xはご存知の通りEOLを迎えました。オープンソースのフレームワークであるため,皆様自身がこれからも,Strutsをメンテナンスするという覚悟があるのであれば,利用しても良いでしょう。今後発生するバグ・脆弱性などの問題に対して,全て自分たちで対応していけるのであれば,利用を視野に入れても良いはずです。

しかし,フレームワークの世界のトレンド,例えばEclipseユーザは新規開発の際に,Struts1どころか2でさえも殆ど選択していないようです。そして,Strutsの世界シェアは現在1.3%にまで低下しました。何故でしょうか?

Struts + Spring + Hibernateの3重構成は,セキュリティの脆弱性への対応,ライブラリ間の相性,そしてバージョンアップ継続という問題を持ちます。瑕疵担保の期間中は,これらの問題を開発ベンダ側で対応すれば良いでしょう。しかし,瑕疵期間が終了すると,これらはエンドユーザがメンテナンスしなくてはいけません。

問題が起きたら,フレームワークに組み込まれたバラバラの製品を,全てエンドユーザ側でテストしなくてはいけません。セキュリティの問題,ライブラリ間の相性,バージョンアップ,そのリスクをエンドユーザが理解して使っているならば問題ありませんが,実態としてそうでないケースが多いという状況でしょう。そしてそれが,企業活動にとっての大きなダメージになることがあるのです。

そもそもエンドユーザは,こういったフレームワークを構成するバラバラの製品に絡んだ課題について,悩むことを望んでいないでしょう。しかし今は,フレームワークの機能がJava EEとして標準化され,アプリケーションサーバの中にオールインワンで入っています。

脆弱性や不具合対応のためのパッチが必要になった場合,アプリケーションサーバのベンダにより単一化されたサポートが行われるため,エンドユーザはこれまでのような問題に悩まされる必要はありません。フレームワーク内はベンダ側でテストされるため,エンドユーザ側でのテストコストも小さくなります。

──Strutsをやめる「技術面」でのメリットは何でしょうか。次頁ではいよいよ,本イベントのテーマである,Java標準と新しいWeb技術の接点について,ご紹介します。

著者プロフィール

川田寛(かわだひろし)

某SIer所属のITアーキテクト。業務システム案件への技術支援を行う傍ら,Google準公式コミュニティ「html5j」えんぷら部の部長として,エンタープライズ領域へHTML5などの新しいWeb技術の普及・推進活動を行う。

Twitter / Facebook

コメント

コメントの記入