Java EE 7対応のWAS Libertyプロファイルで、今こそ全く新しいアーキテクチャへの移行を!
こうした変化の兆しを受け、田中氏は「2000年代には、多くの企業でJ2EEアーキテクチャやStrutsなどを使ってアプリケーションが開発されたが、それらは更新と改良を続けた結果、そろそろ限界に近づいているのではないか。エンタープライズは大きな変革期を迎えており、アーキテクチャを大きく変更するタイミングとして最適」と語る。
田中氏は、一定期間ごとに全てを建て替える伊勢神宮の「式年遷宮」になぞらえ、新しいアーキテクチャで再実装する開発側のメリットとして、使用しているハードウェアやミドルウェアの陳腐化を排除できること、最新のアーキテクチャによってその時点で最も使いやすいアプリケーションが開発できること、そして10年ごとであればシステム構築スキルや知識が世代を超えて継承されることも期待できるだろう。
システム再構築は大変なこと。しかも、システムの寿命を超えて使い続けることで、長期延長保守のための高額なサポート費用を払い続けることになる。Strutsはサポートが終了していることもあり、脆弱性が問題視されている。さらに最新の要件への対応が難しいのは致命的ともいえるだろうし、構築した技術者が引退してしまえば、システムがブラックボックス化してしまうのは明白だ。
そしてもう一つ、田中氏がアーキテクチャの変更を勧める理由は、安定して使いやすいと評されるJava EE 7が登場しているということだ。前段紹介したMSAとの親和性などアプリケーション・アーキテクチャとしての価値に加え、DevOpsやアジャイル開発・継続的インテグレーションといった開発体制の導入、クラウド環境の利用や構築の自由化などのアプリケーション実行基盤の活用など、「最新の開発環境と技術」に触れ、その恩恵を受けられる。
新規に追加された機能として、特に田中氏がJava EE 7のAPIとして注目しているのが、JavaScriptオブジェクトのデータ形式をシリアライズする機能だ。さらにJAX-RS2.0ではこれまでできなかったクライアント側からのRESTが可能になり、サーバー間のREST利用が現実的になる。そして、CDIによってアプリケーションのPL/BLの分離も可能になった。外部接続のパラメータのハードコーディングの防止によりアノテーション指定となり、コンポーネント間の依存性がなくなったことで、モックやスタブを利用したテストが容易にできるようになる。
なお、Java EE 7に対応した商用のアプリケーションサーバーが長らく不在だったが、6月にIBMの「WebSphere Application Server(WAS) Libertyプロファイル」がフル対応している。起動の速さや自動化ツールとの連携などの特徴を持ち、なかでも田中氏が強調するのが「軽量ランタイム」のメリットだ。MSAでは個々のサービスごとにプロセスを立てるため、今まで以上に1つのサーバーの中で動くプロセスが増えることになる。それらを非常に少ないメモリで実行できるのは、MSAでシステムを構築して行く中で非常に強力な武器になるというわけだ。また、それ以外にもFeatureという単位で機能を追加・削除ができ、実際に必要と指定されたものだけがメモリにロード・初期化される。また、依存関係も自動的に解決する。
実際に提供されているFeatureは「OpenID」など非常に数が多く、たとえばJava EE 7対応の「JSP 2.3」が提供されても、従来の「JSP 2.2」も残るようになっている。つまり、従来のアプリケーションは「JSP 2.2」のまま使い続けることができ、新機能が追加されたら「JSP 2.3」を使えばいい。アプリケーションサーバーの都合で、アプリケーションまで変える必要はないというわけだ。
また、構築した環境を丸ごとZIPの形でパッケージにすることもできる。その際、使うFeatureだけをまとめるので最小サイズの容量で済み、必要に応じて展開・実行することで容易にスケールアウトすることができる。
なお、WAS Libertyプロファイルを使ったマイクロサービスの開発について、CodeZineに記事を公開している。ぜひ、そちらをご参照いただきたい。
お問い合わせ
日本アイ・ビー・エム株式会社
TEL: 0120-550-210