Upload
oracle-fusion-middleware
View
922
Download
2
Embed Size (px)
Citation preview
<Insert Picture Here>
Java が提供する標準エンタープライズ・クラウドについて
日本オラクル株式会社 Fusion Middleware 事業統括本部 シニア Java エバンジェリスト 寺田 佳央 ブログ:http://yoshio3.com
Copyright© 2011, Oracle. All rights reserved. 2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
Copyright© 2011, Oracle. All rights reserved. 3
Copyright© 2011, Oracle. All rights reserved.
クラウド対応に向けた Java EE 6の重要性
Copyright© 2011, Oracle. All rights reserved. 5
JJaavvaa EEEE ってまだ難しいと
思ってらっしゃいますか?
Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/
Copyright© 2011, Oracle. All rights reserved. 6
JJaavvaa EEEE のイメージ
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/
JJaavvaa EEEE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XXMMLL設定地獄
Copyright© 2011, Oracle. All rights reserved. 8
JJ22EEEE 11..44までは
その通りでした
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
JJaavvaa EEEE 55からかんたん
JJaavvaa EEEE 66は集大成 !!!!
Photo by http://www.flickr.com/photos/namwizard/
Copyright© 2011, Oracle. All rights reserved. 11
JJaavvaa EEEE 66
22000099年1122月リリース
Photo by http://www.flickr.com/photos/namwizard/
本番環境へ適用可能です
Copyright© 2011, Oracle. All rights reserved.
参考データ:フレームワーク活用のトレンド : 日本
※日本オラクルイベントのアンケート結果調べ (回答数 95)
Java EE : 24%
: 23%
その他 : 20%
Struts : 33% Spring
Copyright© 2011, Oracle. All rights reserved.
参考データ:フレームワーク活用のトレンド:世界
Struts 1.x : 1.3 % Struts 2.x : 1.3 %
Results of Eclipse Community Survey 2012 http://www.eclipse.org/org/press-release/20120608_eclipsesurvey2012.php
※Struts 1 は 2008 年 10 月が 最終リリース
Copyright© 2011, Oracle. All rights reserved.
独自技術から標準技術への移行が可能に
DB
画面デザイン
依存性注入 ・
ビジネス
ロジック
DB連携 O/Rマップ
利用者
Struts
JSF
spring
DI/CDI/ EJB
HIBER NATE
JPA
独自技術の 組み合わせ
Java EE 標準
Copyright© 2011, Oracle. All rights reserved.
エンタープライズ Java の標準
• オールインワン・パッケージ • 軽量
15
JJaavvaa EEEE 66 WWeebbPPrrooffiillee版がサポートする仕様
SSeerrvvlleett 33..00 JJPPAA 22..00
JJSSPP 22..22//EELL JJTTAA 11..11
JJSSTTLL DDII 11..00//CCDDII 11..00
JJSSFF 22..00 MMaannaaggeedd BBeeaann 11..00
BBeeaann VVaalliiddaattiioonn 11..00 IInntteerrcceeppttoorrss 11..11
EEJJBB 33..11 LLiittee CCoommmmoonn AAnnnnoottaattiioonnss
WWeebb PPrrooffiillee 版対応
アプリケーションサーバ
Copyright© 2011, Oracle. All rights reserved.
Java EE 6 のテーマ 開発生産性の大幅な向上 • 拡張性 • プロファイルの提供 • 仕様の削減 • 進化するかんたん開発
16
Copyright© 2011, Oracle. All rights reserved.
wweebb..xxmmll
<web-app>
フレームワーク AA
フレームワーク BB
フレームワーク CC
フレームワーク DD
</web-app>
拡張性 • Java EE 以外のフレームワークの組み込み設定が容易
17
フレームワークAA
<web-fragment>
….
</web-fragment>
フレームワークBB
<web-fragment>
….
</web-fragment>
wweebb..xxmmll
<web-app>
<absolute-ordering>
<name>BB</name> <name>AA</name>
<absolute-ordering>
</web-app>
Copyright© 2011, Oracle. All rights reserved.
Web プロファイル
• Java EEのサブセットを提供 • Web の開発に特化した軽量サブセット • これさえあれば Web 開発は十分
FFuullll JJaavvaa EEEE 66 ((EEnntteerrpprriissee PPllaattffoorrmm))
WWeebb PPrrooffiillee
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. 20
かんたん開発 開発を容易にする様々な統合開発環境
Copyright© 2011, Oracle. All rights reserved. 21 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/
JJaavvaa EEEE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XXMMLL設定地獄
Copyright© 2011, Oracle. All rights reserved. 22
JavaServer Faces 2.0 開発効率向上ポイント1
豊富なコンポーネント
Copyright© 2011, Oracle. All rights reserved.
JavaServer Faces 2.0 開発効率の向上ポイント2
23
強力なテンプレート機能
11 ヘッダ部作成
左
作成
44 フッダ部作成
右
作成
共通部分の作成
5 テンプレート作成
テンプレートの作成
コンテンツ
各種ページの作成
コンテンツ
コンテンツ
コンテンツ
コンテンツ
コンテンツ
ご参考: http://yoshio3.com/2011/01/14/jsf20-new-with-facelets-template/
Copyright© 2011, Oracle. All rights reserved.
JavaServer Faces 2.0 開発効率の向上ポイント3
24
たった1行の追加でAjaxを実現
<<ff::aajjaaxx//>> タグ
Copyright© 2011, Oracle. All rights reserved. 25 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/
JJaavvaa EEEE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XXMMLL設定地獄
Copyright© 2011, Oracle. All rights reserved.
JJaavvaa EEEE
AApppplliiccaattiioonn SSeerrvveerr
WWeebb CCoonnttaaiinneerr
EJB 3.0 までの単体テストは困難
26
EEJJBB
テスト
JJSSPP SSeerrvvlleett JJSSFF
EEJJBB CCoonnttaaiinneerr
EEJJBB EEJJBB EEJJBB DDBB
JJaavvaa SSEE
アプリケーションサーバへのデプロイ必要 リモートから lookup を実施
• SSOOAAPP HHTTTTPP • RRMMII IIIIOOPP
Copyright© 2011, Oracle. All rights reserved.
EJB 3.1:組み込み可能 EJB コンテナ
27
EEJJBB
テスト
EEJJBB CCoonnttaaiinneerr
EEJJBB EEJJBB EEJJBB
JJaavvaa SSEE
DDBB
アプリケーションサーバへのデプロイ不要 Java SE (JUnit) から直接テストを実施可能
EJBContainer container =!
EJBContainer.createEJBContainer();!
Java SE のアプリケーションから EJB コンテナを初期化
Copyright© 2011, Oracle. All rights reserved.
EJB 3.1:組み込み可能 EJB コンテナ
28
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. 29 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/
JJaavvaa EEEE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XXMMLL設定地獄
Copyright© 2011, Oracle. All rights reserved.
Java EE 5 まではフル機能を提供
30
JJaavvaa EEEE 55 SSppeecciiffiiccaattiioonn
JJSSPP SSeerrvvlleett JJSSFF EEJJBB JJMMSS
JJTTAA JJaavvaa MMaaiill JJAAXXPP JJAAXX--WWSS JJPPAA
JJAAXXBB JJAAXXRR JJDDBBCC JJAAAASS
JJNNDDII
頻繁に使わない仕様もオールインワンで提供 不要モジュールもロードしメモリ消費 実行環境の起動、再起動も遅い
・・・
Copyright© 2011, Oracle. All rights reserved.
Java EE 6 Web プロファイル
• Java EEのサブセットを提供 • Web の開発に特化した軽量サブセット • これさえあれば Web 開発は十分
FFuullll JJaavvaa EEEE 66 ((EEnntteerrpprriissee PPllaattffoorrmm))
WWeebb PPrrooffiillee
Copyright© 2011, Oracle. All rights reserved.
Web の開発に特化した軽量プロファイル
32
WWeebb プロファイルに含まれる仕様
SSeerrvvlleett 33..00 JJPPAA 22..00
JJSSPP 22..22//EELL JJTTAA 11..11
JJSSTTLL DDII 11..00//CCDDII 11..00
JJSSFF 22..00 MMaannaaggeedd BBeeaann 11..00
BBeeaann VVaalliiddaattiioonn 11..00 IInntteerrcceeppttoorrss 11..11
EEJJBB 33..11 LLiittee CCoommmmoonn AAnnnnoottaattiioonnss
繰り返しますが、 これさえあれば Web アプリ開発は十分
Copyright© 2011, Oracle. All rights reserved. 33 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/
JJaavvaa EEEE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XXMMLL設定地獄
Copyright© 2011, Oracle. All rights reserved.
Java EE 5 までのパッケージング
34
WWEEBB--IINNFF//wweebb..xxmmll
WWEEBB--IINNFF//rreessoouurrcceess
WWEEBB--IINNFF//ccllaasssseess//FFooooSSeerrvvlleett..ccllaassss
ccoomm//oorraaccllee//FFooooBBeeaann..ccllaassss
ccoomm//oorraaccllee//FFoooo..ccllaassss
ffoooo__wweebb..wwaarr
ffoooo__eejjbb..jjaarr
ffoooo..eeaarr
ccoomm//oorraaccllee//FFoooo..ccllaassss
lliibb//ffoooo__ccoommmmoonn..jjaarr
ffoooo..eeaarr
WWEEBB--IINNFF//wweebb..xxmmll
WWEEBB--IINNFF//ccllaasssseess//FFooooSSeerrvvlleett..ccllaassss
ffoooo__wweebb..wwaarr
ccoomm//oorraaccllee//FFooooBBeeaann..ccllaassss
ffoooo__eejjbb..jjaarr
適切なアーカイブファイル(ear,jar,war)へのパッケージングが必要(面倒)
Copyright© 2011, Oracle. All rights reserved.
Java EE 6 のパッケージング
35
WWEEBB--IINNFF//wweebb..xxmmll
WWEEBB--IINNFF//rreessoouurrcceess
WWEEBB--IINNFF//ccllaasssseess//FFooooSSeerrvvlleett..ccllaassss
WWEEBB--IINNFF//ccllaasssseess//ccoomm//oorraaccllee//FFooooBBeeaann..ccllaassss
((EEJJBB))
WWEEBB--IINNFF//ccllaasssseess//ccoomm//oorraaccllee//FFoooo..ccllaassss
ffoooo..wwaarr
• EJB を war に含む事が可能 • WEB-INF/classes : クラスファイルとして
• WEB-INF/lib : 分割 jarファイルとして
• 今まで同様のパッケージングも可能 • ejb-jar ファイル
• 配備記述子は省略可能
Copyright© 2011, Oracle. All rights reserved. 36 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/
JJaavvaa EEEE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XXMMLL設定地獄
Copyright© 2011, Oracle. All rights reserved.
Java EE 5 以降 XML設定の省略が可能
• Servlet • JavaServer Faces • EJB • JAX-WS • など
37
アノテーションによる宣言的プログラミングモデルへ移行
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;!}!
38
Copyright© 2011, Oracle. All rights reserved.
EJB 3.1 アノテーションによる実装
@Stateless!public class HelloBean {! public String sayHello(){! return “Hello”;! }!}!
39
EJB 3.1 より ローカルビジネスインタフェースの実装も不要
Copyright© 2011, Oracle. All rights reserved. 40 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/
JJaavvaa EEEE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XXMMLL設定地獄
Copyright© 2011, Oracle. All rights reserved.
アプリケーションサーバが重いのは Java EE 5 まで
41
超高速起動(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 だけで事足りますか? • 結局他のフレームワークを自分で設定していませんか?
42
+
Servlet JSP Expression Language
Copyright© 2011, Oracle. All rights reserved. Photo by http://www.flickr.com/photos/namwizard/43
これからは
標準技術だけで十分
Copyright© 2011, Oracle. All rights reserved.
Java EE 6による開発生産性の向上
• Java EE 6, Java SE 7 準拠による開発生産性の向上 • 必要Java クラス、コード/XML行数を削減し開発速度を向上
• 最新のプログラミング技術の導入 • 依存性注入(DI)、アノテーション、POJO, RESTなど最新の開発技術を標準化し提供
• メジャーな開発ツールによるサポート • Eclipse, JDeveloper, NetBeans • POJO/JPA/REST ベースのサンプルアプリでの試算
コード行数* XML行数* Java クラス数*
25% 削減
50% 削減
80% 削減
Copyright© 2011, Oracle. All rights reserved. 45
Copyright© 2011, Oracle. All rights reserved. 46
Infrastructure as a Service
Platform as a Service
Software as a Service
プロプライエタリなクラウド技術
Copyright© 2011, Oracle. All rights reserved.
1. 全ハードウェアにアプリケーション・サーバのインストール
2. Java EE インスタンスのクラスタ構築 3. 負荷分散装置の設定による Java EE インスタンスの分散
4. Java EE インスタンスの依存関係の設定 (MQ, DB) 5. Java EE アプリケーションの配備
47
今までのアプリケーション配備手順
Copyright© 2011, Oracle. All rights reserved.
• 一括配備処理 • マルチサービスにおける依存関係の解決 • アプリケーション・サーバ、ロードバランサ、DB など
• Java EE サーバ・インスタンスの自動クラスタ化 • クラスタの伸縮性 • アプリケーションにより提供されるメトリクス • アプリケーション・サーバのメトリクス(応答時間等) • 仮想マシンの情報(CPU, メモリ使用状況など)
• 一括配備解除
48
Java EE における PaaS 配備
Copyright© 2011, Oracle. All rights reserved. 49
Java EE 7 : Platform as a Service
• 開発者、利用者に対して • パブリック、プライベート、およびハイブリッドクラウドを活用するための方法を提供
JJaavvaa EEEE プラットフォーム
JJaavvaa EEEE
プラット
フォーム
JJaavvaa EEEE 66 まで
プラットフォーム上でサービス展開
JJaavvaa EEEE 77 から
プラットフォームがサービス
Copyright© 2011, Oracle. All rights reserved. 50
• サービス・プロビジョニング • QoS, 伸縮性 • アプリケーションとリソースの共有 • 再設定、カスタマイズ機能
Java EE 7 : Platform as a Service
Copyright© 2011, Oracle. All rights reserved.
JNDI 名前空間
接続 ファクトリ
プロビジョニング ー 今までの運用方法 • サーバ管理者がリソースの準備と設定 • アプリケーション配備
管理者
宛先
メッセージ サービス
データベース サービス
ディレクトリ・サービス 外部リソース
Copyright© 2011, Oracle. All rights reserved.
JNDI 名前空間
接続 ファクトリ
宛先
メッセージ サービス
データベース サービス
ディレクトリ・サービス 外部リソース
Java EE 7 ‒ プロビジョニング • アプリケーションの配備だけでリソースの準備と設定が完了 • プログラム(設定ファイル)上で必要なリソースを設定・準備可能
プログラマ(配備者)
Copyright© 2011, Oracle. All rights reserved.
プログラム上のリソース・プロビジョニング
@JMSConnectionFactoryDefinition( name=“java:app/MyJMSFactory” , resoureType=“javax.jms. QueueConnectionFactory” , resourceAdapter=“jmsra” , initialPoolSize=5 , maxPoolSize=15 )
アプリケーション・サーバ上で リソースのプロビジョニング
プログラム上からリソースの プロビジョニング
Java EE 6 まで Java EE 7 から
Copyright© 2011, Oracle. All rights reserved. 54
継続的な伸縮性
シングルノード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. 55
Java EE の参照実装 GlassFish v4.0 ‒ PaaS コンソール(New)
Copyright© 2011, Oracle. All rights reserved. 56
PaaS 環境へデプロイ
Copyright© 2011, Oracle. All rights reserved. 57
サービスリソース設定
ロードバランサ
JJaavvaa EEEE
RRDDBBMMSS
Copyright© 2011, Oracle. All rights reserved. 58
オート・スケール設定
CCPPUU使用状況
メモリ使用状況
レスポンスタイム
日付指定
最小のインスタンス数
最大のインスタンス数
トリガ対象の選択
閾値の設定
Copyright© 2011, Oracle. All rights reserved. 59
PaaS 環境の監視
Copyright© 2011, Oracle. All rights reserved. 60
アプリケーション
専用 共有
ーー
専用
共有
永続化におけるマルチ・テナンシー
Copyright© 2011, Oracle. All rights reserved. 61
テナントIIDD :: OOrraaccllee テナントIIDD :: FFoooo
同一アプリケーション
DBへの永続化におけるマルチテナント対応
同一テーブルでマルチテナント テナント毎にテーブルを分割
Copyright© 2011, Oracle. All rights reserved. 62
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 のサポート
63
Copyright© 2011, Oracle. All rights reserved. 64
Java SE におけるクラウド対応
• マルチテナンシー (JDK 8 +) – 同一 OS 上で稼働する Java VM 間の共有の改善 – スレッド/スレッドグループ毎のリソース管理・監視
• Hypervisor対応 Java VM (JDK 9+) – 共通操作メモリページの共有 – 共通操作ライフサイクル、マイグレーション
Copyright© 2011, Oracle. All rights reserved.
オラクルの取り組み
• Java EE 6 の書籍出版
Copyright© 2011, Oracle. All rights reserved. 66
Java EE 特別セミナー開催 • 2012 年 8 月 23 日 (木) • 基調講演 • Arun Gupta (米国オラクル Java Evangelist)
• 特別講演 • Bert Ertman (米国 Java Chanpion)
• Java EE 6,7 に関する最新情報提供
Java Evangelist Arun Gupta
Java Champion Bert Ertman
Copyright© 2011, Oracle. All rights reserved.
<Insert Picture Here>
日本オラクル株式会社 Fusion Middleware 事業統括本部 シニア Java エバンジェリスト 寺田 佳央 ブログ:http://yoshio3.com
Java が提供する標準エンタープライズ・クラウドについて
Copyright© 2011, Oracle. All rights reserved. 69