JavaOne 2014 サンフランシスコ報告会 Tokyoで、JavaOneの報告をしてきました。
Java EEの報告と言いながら、そのパートは上妻さんに任せて、Project AvatarとSpring Frameworkについて話しました。
JavaOneに行けばOracle社以外の話も聞ける、という事実は大事かと思います。
まさか会場にアリエルの森本さんがいるとは思っていなかったので、少しドキドキしました。
これが仮に大谷さんであれば、アリエル社内で、虚実いりまじった話をされるところです。森本さんはまともな人なので安心です。
以下にプレゼンに使った資料を公開します。
JavaOne2014 サンフランシスコ報告会 Tokyo
井上誠一郎
アリエルネットワーク CTO
ワークスアプリケーションズ ゲストフェロー
JavaOne参加経験
- 今年が4度目の参加(2010年、2012年、2013年、2014年)
- 報告会発表は3度目
今年のJavaOne雑感
- 人が多かった(ような気がする)
- Oracle OpenWorldのキーノートでJavaOne登録者数9000人以上
今日のお題
- Java EE (周辺事情)
- Project Avatar
- Spring Framework
CON3015: Java EE8
- Java EE 8 Community Survey
- 個人的にはMVCサポートに1票(Yes:60.8%は意外に低かった)
CON3015で無視されたサーベイ項目を拾ってみる
- Should we define APIs to support use of JavaScript on the server (e.g.,Project Avatar)? Yes:42.4%
- Should we investigate standardizing a client API for Thin Server Architecture? Yes:51.6%
- Should we define a (new) standard templating framework? Yes:43.7%
- Should we extract Facelets from JSF as the standard template engine for Java EE? Yes:36.8%
- Is it time yet to standardize in NoSQL? Yes:40.7%
- Should we standardize the use of java.util.logging by applications? Yes:70.1%
- Should we define an embedded web container? Yes:71.7%
- Should we define an embedded Java EE container? Yes:66.4%
CON6782: Apache TomEE, Java EE Web Profile, and More on Tomcat
- 読み方は「トミー」
- TomcatベースのJava EE実装
- TomEE(Java EEのWebプロファイル)とTomEE(Fullプロファイル)
- Tomitribe社 (http://www.tomitribe.com/)
Project Avatar
- TSA(Thin Server Architecture)
- サーバサイドJavaScript
Avatarの関連セッション
- Project Avatar: Server-Side JavaScript on the JVM [CON5675]
- JavaScript Across Tiers with Nashorn and Avatar.js [CON1815]
- Avatar.js: Node Programming Model and JavaScript for the JVM [UGF9751]
- Project Avatar: More Than Just Node.js on the JVM—Java EE Written in JavaScript [CON4091]
- タイトルにAvatarはないが、検索でひっかかるセッションは他に4件
CON4091: Project Avatar: More Than Just Node.js on the JVM—Java EE Written in JavaScript
- Avatar 2.0
- TSAの言及はほとんどなくなり
- Node.js互換アピールに完全シフト
avatar.js
- Node.js on the JVM
- ~95% Node.js API compatibility
- many of the node-modules work
本家Node.jsとの違い
- Nashornベース: Competes with Google V8
- マルチスレッド
- スレッドごとにイベントループ
Avatar2.0の新機能(Node.js互換性向上以外の話)
- Avatar persistence (JPA(EclipseLink)、JDBC、NoSQL-APIをラップしたAPI)
- JMS API (現状、JMSを使うにはWebLogicが必要)
- Inter-thread communication (pub/subモデルのイベントバスAPI)
Avatar persistenceコード例
1 2 3 4 5 6 7 8 9 10 11 |
var avatar = require('org/glassfish/avatar'); var myDataProvider = new avatar.JPADataProvider({ persistenceUnit: 'rest', createTables: true, entityType: 'Item' }); myDataProvider.create(item, callback); myDataProvider.get(key, callback); myDataProvider.create(item).then(...); |
イベントバスAPIコード例
1 2 3 4 5 6 |
var bus = avatar.application.bus; bus.publish('echo', { x : 'x', y : 'y' }); bus.on('echo', function(body, msg) { avatar.log('Got message: ' + JSON.stringify(body)); }); |
Avatarのロードマップ(保障なし)
- 2015年 Avatar Commercial Support
- 公開プレゼン資料から引用
- プレゼン時に聞いた記憶なし…
Avatarがライバル視するプロジェクト
- RedHat nodyn.io
- Vert.x
- dynjs.org
Spring Framework関連のセッション
- Spring 4TW! [CON3693]
- The Spring BOF [BOF3868]
- Running Your Spring Apps in the Cloud [CON4327]
- REST Assured: Hypermedia APIs with Spring MVC [CON6071]
- Migrating a JSF-Based Web Application from Spring 3 to Java EE 7 and CDI [CON3389]
CON3693: Spring 4TW!
Spring Framework4の特徴
- embedded Webサーバ (Spring Boot)
- message centric architecture
- async processing
Spring Boot Actuator
- ほとんどコードを書かなくても、Webアプリがモニタリング可能になる(REST API)
- http://localhost:8080/health を叩いて死活監視
- http://localhost:8080/info を叩くと管理ビーンのメソッドコール数の統計情報
まとめ
- Java EEは進化を継続(ただしevolution)
- AvatarはNode.js互換路線
- Spring Frameworkに復活の印象(Spring Boot以降)
関連文書:
- 関連文書は見つからんがな
最近のコメント