SHOEISHA iD

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

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

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

【デブサミ2015】19-D-6 レポート
2015年、Java EE 7の時代が到来! モダンなアプリケーション開発をする上で押さえておきたいWebSocketsとCDI

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

「CDI」でテスト切り替えを容易にし、技術的依存を排除

 続いて紹介されたのが「開発生産性の向上」に対する依存性を解消するための技術「CDI(Contexts and Dependency Injection for Java EE)」だ。様々なところで使用されてきたが、コンテナが提供するオブジェクトだけでなく、ユーザーが定義したオブジェクトについても依存性注入できるという大きな特徴を持つ。これによって、たとえば外部接続のパラメーターのハードコーディングの防止やコンポーネント間の依存性の除去が可能になる。つまり、ファイルの切り替えだけで、テスト環境と本番環境を簡単に切り替えることができるというわけだ。

CDIでテストからの切り替えが容易に
CDIでテストからの切り替えが容易に

 さらにコンテナによるライフライクルの管理をおこなってくれるという機能も持つ。たとえば、1つのリクエストにあたり1つのインスタンスを生成する際に利用すれば、リクエストをServlet、EJB、JSPで分担して行う場合、それぞれに利用可能なコンテキストという形で、これらのオブジェクトを利用することができる。また、インターセプターというメソッド呼び出しの前に処理を割りこませることも可能だ。

コンテナによるライフサイクルの管理
コンテナによるライフサイクルの管理

 CDIは現在1.1のメンテナンスリリースとして1.2が最新バージョンであり、2016年には2.0がリリース目標となっている。WebSphereでは1.0と1.2が実装されており、アプリケーションには影響はないが、DIコンテナを利用している場合は注意が必要となる。なお1.0とそれ以降の最も大きな変更点は「Bean-Discovery-Mode」が導入されたことにある。1.0や1.2ではなくてもよいということにはなっているが、デフォルトでの動作についてインジェクション対象が複雑に変更されているため、beans.xmlをアーカイブに追加し、かつ「Bean-Discovery-Mode」を対応させるとよい。

 「Bean-Discovery-Mode」のインジェクションクラスについて以前は制御する方法がなかったが、1.1移行は「all」、「annotated」(デフォルト/推奨)、「none」の3つから選ぶことができる。1.0以前はアーカイブに大量のクラス(数万~)が入っていると、すべてが対象となり、起動時間の遅延やJavaヒープの大量使用などが生じて大規模システムで使用しにくかった。それを回避することができるわけだ。この他、Bean定義アノテーションや、インジェクション対象となるクラスの実装方法などが紹介された。

IBMが提供する新しいJava EE7の実行環境「Libertyプロファイル」

 最後に田中氏は、IBMが提供する新しいJava EE7の実行環境「Libertyプロファイル」について紹介した。軽量で起動が速く、自動化ツールや統合ツールとの連携も密に行え、WebProfile準拠はもちろん、簡単な構成と動的変更、簡便なUnzipによる導入とデプロイといった利点を備えている。

 「かつて『WebSphere Application Server』は、オールインワンの形で提供していたが、『Libertyプロファイル』についてはFeatureという形で必要な機能だけを組み合わせて使えるのが大きな特徴。設定されたものと依存関係にあるものだけがメモリにロード・初期化されるため、軽く起動が速いのが大きな利点」と田中氏は評する。

 Liberty Repositoryで新しいFeatureを入手可能であり、機能追加や調整も簡単。Java EE 7についてはベータ版の形でほぼすべて提供しており、先に紹介された「WebSocket」も用意されている。また、それ以外のJava EE 7を構成する仕様も順次公開する予定だという。マイグレーションする必要なく、そのまま使うことができ、アプリケーションで新仕様が必要なければ従来版をそのまま利用可能。ただし、対応するJDKのバージョンは変更される可能性がある。

 田中氏は「『お高いんでしょう?』と聞かれるが、『WebSphere Application Server for everyone』という形で、Javaヒープ総量が2Gに制限されるものの、3月出荷予定のWAS V8.5.5.5より、Libertyフロファイルの本番使用が無料になる。製品版も併せて、ぜひご検討してほしい」と語り、セッションを終えた。

お問い合わせ

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

〒103-8510 東京都中央区日本橋箱崎町19-21

TEL: 0120-04-1992

WebSphere Application Server 関連情報

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

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

もっと読む

この記事の著者

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

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

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8577 2015/04/08 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング