JavaFX with GlassFish
December 13, 2013

HASUNUMA Kenji

GlassFish Community

khasunuma@java.net
Twitter: @khasunuma
Contents
•

Introduction to LightFish

•

Revival of rich clients by JavaFX
•
•

•

SOAP, REST and WebSocket
Using JAX-RS ...
Introduction to 

LightFish

LightFish is a performance monitor 

for GlassFish using JavaFX UI

LightFish is since 2012
b...
JavaFX UI (LightView)
HTML5 UI (JavaServer Faces)
How to run LightFish?
How to run LightFish?
Learn more about LightFish
•

Java EE Telemetry (LightFish’s Official Site)

http://lightfish.adam-bien.com

•

GitHub / Ada...
Revival of rich clients 

by JavaFX

JavaFX is innovation in Java Technology 

it may change the relationship 

between ap...
SOAP, REST and WebSocket

The history of revival of rich clients.
There are several Web services, SOAP, REST and WebSocket...
•

Webアプリケーションのはじまり : NCSA HTTP
ServerのCGI (Common Gateway Interface)

•

Javaの世界ではServlet/JSP、さらに基幹業務への
展開を狙いJ2EE(現Java E...
•

Web UIの限界 - 標準のJavaServer Facesをはじ
め様々なフレームワークが誕生したが、かつてのリッ
チUIには敵わず

•

クライアント環境の進化 - 2013年現在、普段使用
しているPCは「2ちゃんねる」サーバー...
•

リッチ・クライアントとアプリケーション・サーバー
の連携は、2005年前後から

•

当時はSOAPによるWebサービスが流行

•

SOAPはHTTPとXMLベースであり、CORBAや
DCOM (ActiveX)よりシンプルでトラ...
•

SOAPはXMLベースだが、トランザクションやセ
キュリティなどの拡張機能により複雑化

•

HTTP仕様そのものをメッセージング・フレームワー
クに見立てたRESTが台頭

•

RESTの強みは「シンプル」であること

•

SOA...
•

サーバーからの状態変更通知は、ポーリングによる
確認が中心だった

•

RESTはステートレスでシンプルなことが売り、し
かしポーリング時には毎回の再接続が裏目に

•

ロング・ポーリングなどの工夫により再接続のコス
トは下がったが、...
•

RESTやロング・ポーリングの問題を抜本的に解決
するため、WebSocketが制定

•

WebSocketは、HTTPの基盤を生かした、けれど
もHTTPとは異なるプロトコル

•

WebSocketでは一度接続した後は切断するま...
•

Javaでは、SOAP、REST、WebSocketのいずれ
も規格化が完了 ([ ]内はGlassFishの実装)
•

•

REST : JSR 339 (JAX-RS) [Jersey]

•

•

SOAP : JSR 224...
Using JAX-RS and WebSocket
in JavaFX

Now, we should use JAX-RS and/or WebSocket for connect
JavaFX to GlassFish because o...
JSR 339 : JAX-RS 2.0
•

JAX-RS 1.1 (JSR 311) is so useful API.

•

JAX-RS 2.0 (JSR 339) is the extend specification of JAX-...
JAX-RS 2.0 message processing
JAX-RS Client API Usage
Sample code for REST client (incl. JavaFX)
// Initialize Client object

// It needs many resource ...
Jersey 2.0 dependencies
artifactId

library
javax.ws.rs-api-2.0.jar
jersey-client-2.0.jar
jersey-common-2.0.jar
javax.anno...
JSR 356 : Java API for WebSocket
•

JSR 356 is the API that is easy for us to use WebSocket on both
Java EE and Java SE.

...
Tyrus 1.1 dependencies
artifactId

library
javax.websocket-api-1.0.jar
tyrus-client-1.1.jar

tyrus-client

tyrus-core-1.1....
Some plan how to combine
JavaFX and GlassFish
In this chapter, we’ll think some plan how to combine JavaFX and
GlassFish b...
Simple JavaFX Application
Rich client and server

Remarks: LightFish is same pattern
JavaFX Application 

with Embedded GlassFish
JavaFX with GlassFish
December 13, 2013

HASUNUMA Kenji

khasunuma@java.net
Upcoming SlideShare
Loading in...5
×

JavaFX and GlassFish

3,847

Published on

Published in: Technology, Education
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
3,847
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
10
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

JavaFX and GlassFish

  1. 1. JavaFX with GlassFish December 13, 2013 HASUNUMA Kenji GlassFish Community khasunuma@java.net Twitter: @khasunuma
  2. 2. Contents • Introduction to LightFish • Revival of rich clients by JavaFX • • • SOAP, REST and WebSocket Using JAX-RS and WebSocket in JavaFX Some plan how to combine JavaFX and GlassFish
  3. 3. Introduction to 
 LightFish LightFish is a performance monitor 
 for GlassFish using JavaFX UI LightFish is since 2012 by Adam Bien, a Java Champion in Germany ! It’s an open source software licensed by Apache License 2.0
  4. 4. JavaFX UI (LightView)
  5. 5. HTML5 UI (JavaServer Faces)
  6. 6. How to run LightFish?
  7. 7. How to run LightFish?
  8. 8. Learn more about LightFish • Java EE Telemetry (LightFish’s Official Site)
 http://lightfish.adam-bien.com • GitHub / AdamBien / LightFish (Source Code)
 https://github.com/AdamBien/lightfish • Adam Bien’s Weblog
 http://www.adam-bien.com/roller/abien/ • And more …
  9. 9. Revival of rich clients 
 by JavaFX JavaFX is innovation in Java Technology 
 it may change the relationship 
 between application servers and clients.
  10. 10. SOAP, REST and WebSocket The history of revival of rich clients. There are several Web services, SOAP, REST and WebSocket.
  11. 11. • Webアプリケーションのはじまり : NCSA HTTP ServerのCGI (Common Gateway Interface) • Javaの世界ではServlet/JSP、さらに基幹業務への 展開を狙いJ2EE(現Java EE)へ発展 • UIはWebブラウザのみ - 2000年代初めのクライア ント環境は非力で、アプリケーション・サーバーへ の集中は合理的な判断
  12. 12. • Web UIの限界 - 標準のJavaServer Facesをはじ め様々なフレームワークが誕生したが、かつてのリッ チUIには敵わず • クライアント環境の進化 - 2013年現在、普段使用 しているPCは「2ちゃんねる」サーバー1機よりも 高性能 • UI処理を再びクライアントへ - クライアントとサー バーの役割分担見直し、リッチ・クライアント復活
  13. 13. • リッチ・クライアントとアプリケーション・サーバー の連携は、2005年前後から • 当時はSOAPによるWebサービスが流行 • SOAPはHTTPとXMLベースであり、CORBAや DCOM (ActiveX)よりシンプルでトラブルが少ない • あらゆるものをSOAPで繋ごうという動きまで…
  14. 14. • SOAPはXMLベースだが、トランザクションやセ キュリティなどの拡張機能により複雑化 • HTTP仕様そのものをメッセージング・フレームワー クに見立てたRESTが台頭 • RESTの強みは「シンプル」であること • SOAP vs. RESTのバトルが勃発、現状を見る限り ではRESTの圧勝か?
  15. 15. • サーバーからの状態変更通知は、ポーリングによる 確認が中心だった • RESTはステートレスでシンプルなことが売り、し かしポーリング時には毎回の再接続が裏目に • ロング・ポーリングなどの工夫により再接続のコス トは下がったが、RESTのシンプルさは失われた • ポーリングに頼らず、サーバー通知を行う手段は?
  16. 16. • RESTやロング・ポーリングの問題を抜本的に解決 するため、WebSocketが制定 • WebSocketは、HTTPの基盤を生かした、けれど もHTTPとは異なるプロトコル • WebSocketでは一度接続した後は切断するまでク ライアントとサーバーの間で自由にメッセージをや り取りできる • サーバー通知もWebSocketなら簡単に実現可能
  17. 17. • Javaでは、SOAP、REST、WebSocketのいずれ も規格化が完了 ([ ]内はGlassFishの実装) • • REST : JSR 339 (JAX-RS) [Jersey] • • SOAP : JSR 224 (JAX-WS) [Metro] WebSocket : JSR 356 [Tyrus] いずれもJava SE用クライアントを用意 : 
 JavaFXでRESTやWebSocketが利用できる!
  18. 18. Using JAX-RS and WebSocket in JavaFX Now, we should use JAX-RS and/or WebSocket for connect JavaFX to GlassFish because of these simplify. In this chapter, I’ll show some information it’s not important for Java EE but requirement for Java SE and Java FX.
  19. 19. JSR 339 : JAX-RS 2.0 • JAX-RS 1.1 (JSR 311) is so useful API. • JAX-RS 2.0 (JSR 339) is the extend specification of JAX-RS 1.1. It added many useful features to JAX-RS 1.0. • It specifies the Client API using both Java SE and EE. • Jersey 2.0 (RI) is now avaliable: https://jersey.java.net/
  20. 20. JAX-RS 2.0 message processing
  21. 21. JAX-RS Client API Usage Sample code for REST client (incl. JavaFX) // Initialize Client object
 // It needs many resource but it is reusable Client client = ClientBuilder.newClient(); ! // send GET request to TARGET_URI // and receive the response as String class WebTarget target = client.target(TARGET_URI); String message = target.request()
 .accept(“text/plain”).get(String.class);
  22. 22. Jersey 2.0 dependencies artifactId library javax.ws.rs-api-2.0.jar jersey-client-2.0.jar jersey-common-2.0.jar javax.annotation-api-1.2.jar osgi-resource-locator-1.0.jar jersey-client guava-14.0.1.jar hk2-api-2.1.88.jar hk2-utils-2.1.88.jar javax.inject-2.1.88.jar hk2-locator-2.1.88.jar asm-all-repackaged-2.1.88.jar cglib-2.1.88.jar
  23. 23. JSR 356 : Java API for WebSocket • JSR 356 is the API that is easy for us to use WebSocket on both Java EE and Java SE. • In past times, many application servers implement WebSocket features by its original way. JSR 356 has some useful features not included in the other way. • Tyrus (RI) is now available: https://tyrus.java.net
  24. 24. Tyrus 1.1 dependencies artifactId library javax.websocket-api-1.0.jar tyrus-client-1.1.jar tyrus-client tyrus-core-1.1.jar tyrus-spi-1.1.jar tyrus-websocket-core-1.1.jar tyrus-container-grizzly-1.1.jar grizzly-framework-2.3.3.jar tyrus-container-grizzly grizzly-http-server-2.3.3.jar grizzly-http-2.3.3.jar grizzly-rcm-2.3.3.jar
  25. 25. Some plan how to combine JavaFX and GlassFish In this chapter, we’ll think some plan how to combine JavaFX and GlassFish based on actual practices.
  26. 26. Simple JavaFX Application
  27. 27. Rich client and server Remarks: LightFish is same pattern
  28. 28. JavaFX Application with Embedded GlassFish
  29. 29. JavaFX with GlassFish December 13, 2013 HASUNUMA Kenji khasunuma@java.net
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×