SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【夏サミ2015】セッションレポート(AD)

【夏サミ2015】B4セッションレポート
エンタープライズJavaの世界でなぜ、マイクロサービス・アーキテクチャーが重要か?

  • X ポスト
  • このエントリーをはてなブックマークに追加

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だけをまとめるので最小サイズの容量で済み、必要に応じて展開・実行することで容易にスケールアウトすることができる。

API・サーバー機能をFeatureとして定義
API・サーバー機能をFeatureとして定義

 なお、WAS Libertyプロファイルを使ったマイクロサービスの開発について、CodeZineに記事を公開している。ぜひ、そちらをご参照いただきたい。

お問い合わせ

日本アイ・ビー・エム株式会社

TEL: 0120-550-210

WebSphere Application Server 関連情報

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
【夏サミ2015】セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8917 2015/10/30 19:36

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング