Posted by & filed under 勉強会, 開発.


JavaOne 2013 サンフランシスコ報告会 Tokyoで「Java EE のアップデート」の発表をしてきました。

使った発表資料を公開します。

最近はs5でプレゼンファイルを作るのが常態化しています。Emacsだけで作れて楽だからです。しかしs5の見栄えには満足していません。きれいなテーマを探しましたが見つからなかったので、結局、いつもの見栄えのプレゼンでした。

テキストで書けて、HTMLもしくはPDFで出力できて、それなりに見栄えが良いプレゼン作成ツールがあれば乗り換えたいものです。

ダウンロード版(HTMLファイルをWebブラウザで開いてください):
javaone2013.tar.gz


JavaOne2013 サンフランシスコ報告会 Tokyo

井上誠一郎

アリエルネットワーク CTO

ワークスアプリケーションズ ゲストフェロー

自己紹介

名前

  • 井上誠一郎

主な著書

  • 「パーフェクトJava」
  • 「パーフェクトJavaScript」

ブログ

  • 「ありえるえりあ」

JavaOne参加経験

  • 今年が3度目の参加(2010年、2012年、2013年)
[any material that should appear in print but not on the slide]

今日のお題

  • Java EEのアップデート
[any material that should appear in print but not on the slide]

アジェンダ

  • 予備知識
  • JavaOne2013のJava EE概論
  • Java EEセッションのピックアップ
  • Java EEを取り巻く状況
[any material that should appear in print but not on the slide]

Java EEの認知度?

  • Java EEの最新バージョン?
  • CDI?
  • JPA?
  • JAX-RS?
[any material that should appear in print but not on the slide]

Java EEの最新バージョン

  • 最新バージョンはJava EE 7
  • 目玉
    • WebSocket対応
    • JSON標準API
    • Java Batch
    • Concurrency Utilities
[any material that should appear in print but not on the slide]

CDI

  • CDI: Contexts and Dependency Injection
  • DI(Dependency Injection)の標準規格
  • Java EE 6で登場
  • 今やJava EEの中心規格(主役はEJBからCDIへ)
  • Java EE 7のCDI 1.1で beans.xml が不要に
[any material that should appear in print but not on the slide]

JPA

  • JPA: Java Persistence API
  • ORM(O/Rマッパー)の標準規格
  • Hibernateも今ではJPA実装のひとつ
  • Hibernateはじめ、JPA実装は各々それなりに独自拡張を持つのが実状
  • Java EE 7のJPA 2.1で、SQLのDDL生成やストアドプロシジャに対応
  • NoSQL系への対応は話題のみ
[any material that should appear in print but not on the slide]

JAX-RS

  • RESTfulなURLルーティングやHTTP処理の標準規格
  • アノテーションでURLとクラスやメソッドを対応づける
  • Java EE 7のJAX-RS 2.0で非同期APIとクライアントAPI追加
[any material that should appear in print but not on the slide]

アジェンダ

  • 予備知識
  • JavaOne2013のJava EE概論
  • Java EEセッションのピックアップ
  • Java EEを取り巻く状況
[any material that should appear in print but not on the slide]

JavaOne2013のJava EE: キーノートのトピック

  • Java EE 7リリース(2013年6月)
  • Project Avatarのオープンソース化
  • IBMのJava CTO「IaaS基盤にOpenStack、PaaS基盤にCloud Foundry」
    • 2013年7月のリリース記事: IBMとPivotal社が協業「WebSphere(Liberty) on the Cloud Foundry Platform」
[any material that should appear in print but not on the slide]

JavaOne2013のJava EE: キーノートのトピック(裏)

  • 全体的に盛り上がらず
  • Java EEの扱いが軽い印象
  • Java MEにスポットライト
[any material that should appear in print but not on the slide]

JavaOne2013のJava EEセッション: カテゴリ

  • Client and Embedded Development with JavaFX
  • Core Java Platform
  • Edge Computing with Java in Embedded, Smart Card, and IoT Applications
  • Emerging Languages on the Java Virtual Machine
  • Java Development Tools and Techniques
  • Java EE Web Profile and Platform Technologies
  • Java Web Services and the Cloud
  • Securing Java
[any material that should appear in print but not on the slide]

JavaOne2013のJava EEセッション カテゴリごとのセッション数

  • カテゴリ「Java EE Web Profile and Platform Technologies」: 131セッション
  • カテゴリ「Java Web Services and the Cloud」: 83セッション
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(Java EE7の新顔編)

メイントピックのセッションに限定

  • Java API for WebSocket: 6
  • Java Batch: 2
  • Java API for JSON Processing: 6
  • Concurrency Utilities: 2
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(Java EE7で大きく変更編)

メイントピックのセッションに限定

  • JAX-RS: 9
  • JTA: 1
  • EL(Expression Language): 2
  • JMS: 4
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(定番編)

メイントピックのセッションに限定

  • CDI: 4
  • JPA: 7
  • EJB: 1
  • JSF: 4
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(Java EEコンテナ編)

単なる検索結果(メイントピックとは限らない)

  • GlassFish: 16
  • TomEE: 2
  • WebLogic: 4
  • JBoss: 7
  • WildFly: 0
  • WebSphere: 2
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(実装編)

単なる検索結果(メイントピックとは限らない)

  • Grizzly: 3
  • Jersey: 7
  • Weld: 0
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(JPA実装編)

単なる検索結果(メイントピックとは限らない)

  • Hibernate: 4
  • EclipseLink: 5
  • OpenJPA: 2
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(フレームワーク編)

メイントピックのセッションに限定

  • Spring Framework: 3
  • Play Framework: 3
  • Ninja Framework: 0
  • Grails: 3
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(NoSQL編)

単なる検索結果(メイントピックとは限らない)

  • MongoDB: 7
  • CouchBase/CouchDB: 2
  • HBase: 2
  • Cassandra: 2
  • Riak: 0
  • Redis: 1
  • Neo4j: 2
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(NewSQL編)

単なる検索結果(メイントピックとは限らない)

  • VoltDB: 1
  • NuoDB: 1
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(PaaS基盤編)

単なる検索結果(メイントピックとは限らない)

  • Cloud Foundry: 3
  • OpenShift: 1
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(PaaS編)

単なる検索結果(メイントピックとは限らない)

  • Google App Engine: 2
  • Amazon Beanstalk: 2
  • Heroku: 1
  • Jelastic: 2
  • CloudBees: 2
  • Windows Azure: 2
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(サーチエンジン編)

単なる検索結果(メイントピックとは限らない)

  • Lucene: 1
  • Solr: 1
  • ElasticSearch: 1
[any material that should appear in print but not on the slide]

JavaOneセッション数で勢いを測る(データ連携編)

単なる検索結果(メイントピックとは限らない)

  • Apache Camel: 4
  • Spring Integration: 3
  • Mule: 1
[any material that should appear in print but not on the slide]

アジェンダ

  • 予備知識
  • JavaOne2013のJava EE概論
  • Java EEセッションのピックアップ
  • Java EEを取り巻く状況
[any material that should appear in print but not on the slide]

「Java Caching (JSR 107): The State of the Union [CON10175]」

  • 12年かけてJCacheのスペックがまとまりそう
  • 今年の12月にスペック確定(予定)
  • javax.cacheパッケージのAPI(プログラマブルAPIとアノテーションAPI)
  • アノテーションはJava EE 8とSpring4で採用予定
  • 実装: Ehcache、Oracle Coherence
[any material that should appear in print but not on the slide]

「What’s New in Java Transaction Processing [BOF3433]」

  • JTAが1.1から1.2にバージョンアップ
  • 10年ぶりのバージョンアップ
  • 宣言的トランザクション
  • @Transactional (クラスもしくはメソッドに書ける)
  • CMT(コンテナによるトランザクション管理)がEJBの専売特許でなくなる
  • CDI管理のBeanをCMT可能
  • 要はSpringの@Transactional
  • EJBの立場は? (後述)
[any material that should appear in print but not on the slide]

「JSR 356: Inside the Java WebSocket API [CON3436]」

  • 実装: https://tyrus.java.net
  • プログラマブルAPIとアノテーションAPIの両方あり
  • 同期処理APIと非同期処理APIの両方あり
[any material that should appear in print but not on the slide]

WebSocket プログラマブルAPIコード例

[any material that should appear in print but not on the slide]

WebSocket アノテーションAPIコード例

[any material that should appear in print but not on the slide]

「Jersey 2 MVC in Action [BOF5548]」

  • JerseyはJAX-RS規格の実装
  • JAX-RS自体はMVCフレームワークではない
  • Java EEのMVCフレームワークはJSFなので、JAX-RSがそこに踏み込めない
  • Jerseyは独自拡張でMVCフレームワークを提供
  • Jersey MVCはSpring MVCと同じアーキテクチャ
  • ビュー処理のサポートテンプレートエンジン: JSP、Freemarker、Mustache
[any material that should appear in print but not on the slide]

「Decompose That WAR! Architecting for Adaptability, Scalability, and Deployability [CON2328]」

  • 巨大なwarをどう分割するか
  • 巨大なwarの問題点:
    • 開発速度の低下
    • IDEやコンテナへの高負荷
[any material that should appear in print but not on the slide]

「Decompose That WAR! Architecting for Adaptability, Scalability, and Deployability [CON2328]」(cont.)

  • war分割しすぎの問題点:
    • 実行処理低下
    • 無駄な通信
    • システム全体の理解が困難
    • warにまたがったトランザクション
    • warにまたがる機能
[any material that should appear in print but not on the slide]

「Decompose That WAR! Architecting for Adaptability, Scalability, and Deployability [CON2328]」(cont.)

  • war間の通信: 非同期のメッセージキューを利用
  • Netflix社のAPI Gatewayパターン:
    • 複数RESTサービスの前に配置
    • 後方の各RESTのレスポンスを集約
    • REST呼び出しは並列かつ非同期処理
    • RESTエラー時はキャッシュデータかデフォルトデータで代用
[any material that should appear in print but not on the slide]

[any material that should appear in print but not on the slide]

「The Spring Update [CON2439]」

  • Spring Source社からPivotal社へ
  • http://spring.io
  • ソースコード管理がGitHub
  • Spring 4.0は、Java8およびJava EE 8対応
  • SpringのJdbcTemplateなどはJava8のLambdaと相性が良い
  • WebSocketやJava BatchでJava EEと協力関係
[any material that should appear in print but not on the slide]

「The Spring Update [CON2439]」(cont.)

  • Spring DataでNoSQL(MongoDB、Redis、Neo4j)やSolrに対応
  • Spring for Hadoop
  • Spring XD (ストリームデータ処理)
  • WebSocket上にSTOMP(Simple (or Streaming) Text-Oriented Messaging Protocol)
  • Spring Rooは…?
[any material that should appear in print but not on the slide]

アジェンダ

  • 予備知識
  • JavaOne2013のJava EE概論
  • Java EEセッションのピックアップ
  • Java EEを取り巻く状況
[any material that should appear in print but not on the slide]

Java EEの歴史

[any material that should appear in print but not on the slide]

J2EE

[any material that should appear in print but not on the slide]

Java EE(Web層の進化)

[any material that should appear in print but not on the slide]

Java EE以降のEJB

[any material that should appear in print but not on the slide]

Java EE 7のEJB

[any material that should appear in print but not on the slide]

Java EE 8以降の世界?

[any material that should appear in print but not on the slide]

Java EE 8?

  • Java EE 5は大変革(Java SE 5と同様のrevolution)
  • Java EE 6と7は大きな変革は無し(Java SE 6,7と同様のevolution)
  • Java EE 8は? (Java SE 8はrevolution)
[any material that should appear in print but not on the slide]

まとめ

  • Java EE 7は順調に発展
  • まだJava EE 7対応コンテナがGlassFishのみなので目立つ事例なし
  • Java EE 8の姿は見えない(クラウド対応のキーワードのみ)
  • JSFとEJBが死んだらrevolution
[any material that should appear in print but not on the slide]

関連文書:

  • 関連文書は見つからんがな

Comments are closed.