Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Java EE for OSC

1,124 views

Published on

  • Be the first to comment

Java EE for OSC

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

×