View
1.662
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
<Insert Picture Here>
Java EE の現状からクラウド(PaaS)対応への進化について
日本オラクル株式会社 Fusion Middleware 事業統括本部 シニア Java エバンジェリスト 寺田 佳央 ブログ:http://yoshio3.com
Copyright© 2011, Oracle. All rights reserved. 2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
Copyright© 2011, Oracle. All rights reserved. 3
JavaOne Tokyo 2012 ‒ 4/4 ~ 4/5 http://www.oracle.co.jp/javaone
Copyright© 2011, Oracle. All rights reserved. 4
JavaOne Tokyo 2012�■期間 : 2012年 4月4日(水)~5日(木) ■内容 : キーノート/ブレイクアウト/ハンズオン/ブース/オンライン・セッション
■会場 : 六本木ヒルズ アカデミーヒルズ ■参加費 :5,000円 当日申込 10,000円
Copyright© 2011, Oracle. All rights reserved. 5
Java EE ってまだ難しいと
思ってらっしゃいますか?
Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Copyright© 2011, Oracle. All rights reserved. 6
Java EE のイメージ
Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Copyright© 2011, Oracle. All rights reserved. 7 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved. 8
J2EE 1.4までは
その通りでした
Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Copyright© 2011, Oracle. All rights reserved. 9
Copyright© 2011, Oracle. All rights reserved. 10
Java EE 5からかんたん
Java EE 6は集大成 !!
Photo by http://www.flickr.com/photos/namwizard/�
Copyright© 2011, Oracle. All rights reserved. 11
Java EE 6
2009年12月リリース
Photo by http://www.flickr.com/photos/namwizard/�
本番環境へ適用可能です
Copyright© 2011, Oracle. All rights reserved.
Java EE 6 のテーマ 開発生産性の大幅な向上 • 拡張性 • プロファイルの提供 • 仕様の削減 • 進化するかんたん開発
12
Copyright© 2011, Oracle. All rights reserved.
web.xml
<web-app>
フレームワーク A
フレームワーク B
フレームワーク C
フレームワーク D
</web-app>�
拡張性 • Java EE 以外のフレームワークの組み込み設定が容易
13
フレームワークA
<web-fragment>
….
</web-fragment>�
フレームワークB
<web-fragment>
….
</web-fragment>�
web.xml
<web-app>
<absolute-ordering>
<name>B</name> <name>A</name>
<absolute-ordering>
</web-app>�
Copyright© 2011, Oracle. All rights reserved.
Web プロファイル
• Java EEのサブセットを提供 • Web の開発に特化した軽量サブセット • これさえあれば Web 開発は十分
Full Java EE 6 (Enterprise Platform)
Web Profile
Copyright© 2011, Oracle. All rights reserved.
仕様の削減 Pruning (せん定)
• 古くなって使われなくなったAPIの整理
Photo by http://www.flickr.com/photos/tetsu_blink/�
• 次期バージョンで削除予定 • JAX-RPC (->JAX-WS) • EJB Entity Beans (->JPA) • JAXR • JSR-88
Copyright© 2011, Oracle. All rights reserved. 16
かんたん開発 開発を容易にする様々な統合開発環境
Copyright© 2011, Oracle. All rights reserved. 17 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved. 18
JavaServer Faces 2.0 開発効率向上ポイント1
豊富なコンポーネント
Copyright© 2011, Oracle. All rights reserved.
JavaServer Faces 2.0 開発効率の向上ポイント2
19
強力なテンプレート機能
1 ヘッダ部作成
左␄⏎␝作成�
4 フッダ部作成
右␄⏎␝作成�
共通部分の作成
5 テンプレート作成
テンプレートの作成
コンテンツ
各種ページの作成
コンテンツ
コンテンツ
コンテンツ
コンテンツ
コンテンツ
ご参考: http://yoshio3.com/2011/01/14/jsf20-new-with-facelets-template/�
Copyright© 2011, Oracle. All rights reserved.
JavaServer Faces 2.0 開発効率の向上ポイント3
20
たった1行の追加でAjaxを実現
<f:ajax/> タグ
Copyright© 2011, Oracle. All rights reserved. 21 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved.
Java EE
Application Server
Web Container
EJB 3.0 までの単体テストは困難
22
EJB
テスト
JSP Servlet JSF
EJB Container
EJB EJB EJB DB
Java SE
アプリケーションサーバへのデプロイ必要 リモートから lookup を実施
• SOAP HTTP • RMI IIOP
Copyright© 2011, Oracle. All rights reserved.
EJB 3.1:組み込み可能 EJB コンテナ
23
EJB
テスト
EJB Container
EJB EJB EJB
Java SE
DB
アプリケーションサーバへのデプロイ不要 Java SE (JUnit) から直接テストを実施可能
EJBContainer container =!
EJBContainer.createEJBContainer();!
Java SE のアプリケーションから EJB コンテナを初期化
Copyright© 2011, Oracle. All rights reserved.
EJB 3.1:組み込み可能 EJB コンテナ
24
public void testSayHello() {!
EJBContainer container = EJBContainer.createEJBContainer();!
try{!
Hello hello = (Hello)container.getContext().lookup!
("java:global/classes/Hello");!
System.out.println(hello.sayHello());!
}catch(Exception e){!
e.printStackTrace();!
}}!
Copyright© 2011, Oracle. All rights reserved. 25 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved.
Java EE 5 まではフル機能を提供
26
Java EE 5 Specification
JSP Servlet JSF EJB JMS
JTA Java Mail JAXP JAX-WS JPA
JAXB JAXR JDBC JAAS
JNDI
頻繁に使わない仕様もオールインワンで提供 不要モジュールもロードしメモリ消費 実行環境の起動、再起動も遅い
・・・
Copyright© 2011, Oracle. All rights reserved.
Java EE 6 Web プロファイル
• Java EEのサブセットを提供 • Web の開発に特化した軽量サブセット • これさえあれば Web 開発は十分
Full Java EE 6 (Enterprise Platform)
Web Profile
Copyright© 2011, Oracle. All rights reserved.
Web の開発に特化した軽量プロファイル
28
Web プロファイルに含まれる仕様
Servlet 3.0 JPA 2.0
JSP 2.2/EL JTA 1.1
JSTL DI 1.0/CDI 1.0
JSF 2.0 Managed Bean 1.0
Bean Validation 1.0 Interceptors 1.1
EJB 3.1 Lite Common Annotations
繰り返しますが、 これさえあれば Web アプリ開発は十分
Copyright© 2011, Oracle. All rights reserved. 29 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved.
Java EE 5 までのパッケージング
30
WEB-INF/web.xml
WEB-INF/resources
WEB-INF/classes/FooServlet.class
com/oracle/FooBean.class
com/oracle/Foo.class
foo_web.war
foo_ejb.jar
foo.ear
com/oracle/Foo.class
lib/foo_common.jar
foo.ear
WEB-INF/web.xml
WEB-INF/classes/FooServlet.class
foo_web.war
com/oracle/FooBean.class
foo_ejb.jar
適切なアーカイブファイル(ear,jar,war)へのパッケージングが必要(面倒)
Copyright© 2011, Oracle. All rights reserved.
Java EE 6 のパッケージング
31
WEB-INF/web.xml
WEB-INF/resources
WEB-INF/classes/FooServlet.class
WEB-INF/classes/com/oracle/FooBean.class
(EJB)
WEB-INF/classes/com/oracle/Foo.class
foo.war
• EJB を war に含む事が可能 • WEB-INF/classes : クラスファイルとして
• WEB-INF/lib : 分割 jarファイルとして
• 今まで同様のパッケージングも可能 • ejb-jar ファイル
• 配備記述子は省略可能
Copyright© 2011, Oracle. All rights reserved. 32 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved.
Java EE 5 以降 XML設定の省略が可能
• Servlet • JavaServer Faces • EJB • JAX-WS • など
33
アノテーションによる宣言的プログラミングモデルへ移行
Copyright© 2011, Oracle. All rights reserved.
Servlet 3.0 アノテーションによる実装
import javax.servlet.annotation.InitParam; !import javax.servlet.annotation.WebServlet; !@WebServlet( name = "SimpleServlet", ! urlPatterns = {"/simple"}, ! initParams = { ! @InitParam(name = "param1", value = "value1"), ! @InitParam(name = "param2", value = "value2")! } ) !public class SimpleServlet { }
34
Copyright© 2011, Oracle. All rights reserved.
JSF 2.0 Managed Bean アノテーションによる実装
import javax.faces.bean.ManagedBean;!!@ManagedBean(name="user")!@SessionScoped!public class UserBean {! private String name="";! private String password;!}!
35
Copyright© 2011, Oracle. All rights reserved.
EJB 3.1 アノテーションによる実装
@Stateless!public class HelloBean {! public String sayHello(){! return “Hello”;! }!}!
36
EJB 3.1 より ローカルビジネスインタフェースの実装も不要
Copyright© 2011, Oracle. All rights reserved. 37 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved.
アプリケーションサーバが重いのは Java EE 5 まで
38
超高速起動(Web Profile 版利用時) 起動時間約 4 秒 (CPU: 2.4GHz Core 2Duo/4GB) 情報: GlassFish Server Open Source Edition 3.1 (43) 起動時間 : Felix (2,317 ミリ秒)、 起動サービス (871 ミリ秒)、 合計 (3,188 ミリ秒)
使われない機能を未初期化 開発効率の大幅な向上 再起動時間の待ち時間の減少 メモリ使用量も少
Copyright© 2011, Oracle. All rights reserved.
本当に Tomcat だけで事足りますか? • 結局他のフレームワークを自分で設定していませんか?
39
+
Servlet JSP Expression Language �
Copyright© 2011, Oracle. All rights reserved. Photo by http://www.flickr.com/photos/namwizard/�40
これからは
標準技術だけで十分
Copyright© 2011, Oracle. All rights reserved. 41
Java EE 5 からの改善
Copyright© 2011, Oracle. All rights reserved.
Java EE 6 WebProfile Web の開発に特化した軽量プロファイル
• これだけで十分 オールインワン・パッケージ • 軽量(起動時間の高速化、メモリフットプリント) • 必要な場合ライブラリの追加も容易
42
Java EE 6 WebProfile版がサポートする仕様
Servlet 3.0 JPA 2.0
JSP 2.2/EL JTA 1.1
JSTL DI 1.0/CDI 1.0
JSF 2.0 Managed Bean 1.0
Bean Validation 1.0 Interceptors 1.1
EJB 3.1 Lite Common Annotations
Web Profile 版対応
アプリケーションサーバ
Copyright© 2011, Oracle. All rights reserved. 43
Copyright© 2011, Oracle. All rights reserved. 44
Infrastructure as a Service
Platform as a Service
Software as a Service
プロプライエタリなクラウド技術
Copyright© 2011, Oracle. All rights reserved. 45
Java EE 7 : Platform as a Service
• 開発者、利用者に対して • パブリック、プライベート、およびハイブリッドクラウドを活用するための方法を提供
Java EE プラットフォーム
Java EE
プラット
フォーム
Java EE 6 まで
プラットフォーム上でサービス展開
Java EE 7 から
プラットフォームがサービス
Copyright© 2011, Oracle. All rights reserved. 46
• サービス・プロビジョニング • QoS, 伸縮性 • アプリケーションとリソースの共有 • 再設定、カスタマイズ機能
Java EE 7 : Platform as a Service
Copyright© 2011, Oracle. All rights reserved. 47
継続的な伸縮性
シングルノードNon-Elastic 動的な自己調整
SLA Driven Elasticity Java EE マルチノード
マルチインスタンス クラスタ化
Java EE 7 のフォーカス
Java EE Cluster
Capacity on Demand
Elastic Cluster
Java EE 7 : Elasticity (伸縮性)
• リソース状況に応じた増減 • 自立サービスレベル管理 • 1台から IaaS まで配備対象管理
Copyright© 2011, Oracle. All rights reserved. 48
Java EE の参照実装 GlassFish v4.0 ‒ PaaS コンソール(New)
Copyright© 2011, Oracle. All rights reserved. 49
PaaS 環境へデプロイ
Copyright© 2011, Oracle. All rights reserved. 50
サービスリソース設定
ロードバランサ
Java EE
RDBMS
Copyright© 2011, Oracle. All rights reserved. 51
オート・スケール設定
CPU使用状況
メモリ使用状況
レスポンスタイム
日付指定
最小のインスタンス数
最大のインスタンス数
トリガ対象の選択
閾値の設定
Copyright© 2011, Oracle. All rights reserved. 52
PaaS 環境の監視
Copyright© 2011, Oracle. All rights reserved. 53
テナントID : Oracle テナントID : Foo
同一アプリケーション
DBへの永続化におけるマルチテナント対応
同一テーブルでマルチテナント テナント毎にテーブルを分割
Copyright© 2011, Oracle. All rights reserved. 54
Multi-Tenancy
Service Definition & Orchestration
Elasticity
New Roles
JMS 2.0
Caching API
JSON API
Expanded CDI & REST Support
Java EE 7
Broad Industry Participation
Build on EE 6 Momentum
Java EE 7 に含まれる技術
Copyright© 2011, Oracle. All rights reserved.
Java EE 7 に含まれる技術
• マルチテナンシー • JCache (JSR-107) • Concurrency Utilities for Java EE (JSR-236) • JPA 2.1 (JSR-338) • JAX-RS 2.0 (JSR-339) • JMS 2.0 • JavaServer Faces 2.2 • WebTier • HTML 5対応 • WebSocket 対応 • JSON API のサポート
55
Copyright© 2011, Oracle. All rights reserved. 56
JavaOne Tokyo 2012�■期間 : 2012年 4月4日(水)~5日(木) ■内容 : キーノート/ブレイクアウト/ハンズオン/ブース/オンライン・セッション
■会場 : 六本木ヒルズ アカデミーヒルズ ■参加費 :5,000円 当日申込 10,000円
Copyright© 2011, Oracle. All rights reserved.
JavaOne ‒ Java EE 関連セッション
• JavaEE 6 programming Model Explained
• JavaEE Web Container in the Cloud • Pragmatic Cloud & PaaS with JavaEE7 • JPA on the Grid • The New JSR-107 Caching Standard • JAX-RS 2.0 • What's coming in Java Message Service 2.0
57
クラウド関連セッション盛りだくさん
Copyright© 2011, Oracle. All rights reserved. 58
Java SE におけるクラウド対応
• マルチテナンシー (JDK 8 +) – 同一 OS 上で稼働する Java VM 間の共有の改善 – スレッド/スレッドグループ毎のリソース管理・監視
• Hypervisor対応 Java VM (JDK 9+) – 共通操作メモリページの共有 – 共通操作ライフサイクル、マイグレーション
Copyright© 2011, Oracle. All rights reserved.
<Insert Picture Here>
Java EE の現状からクラウド(PaaS)対応への進化について
日本オラクル株式会社 Fusion Middleware 事業統括本部 シニア Java エバンジェリスト 寺田 佳央 ブログ:http://yoshio3.com
Copyright© 2011, Oracle. All rights reserved. 61