JavaFX and GlassFish
Upcoming SlideShare
Loading in...5

JavaFX and GlassFish






Total Views
Views on SlideShare
Embed Views



3 Embeds 1,481 1466 12 3



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.


11 of 1

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • i liked the web sockets and how they integrate well with jfx ... Thank it is Good work
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    JavaFX and GlassFish JavaFX and GlassFish Presentation Transcript

    • JavaFX with GlassFish December 13, 2013 HASUNUMA Kenji GlassFish Community Twitter: @khasunuma
    • 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
    • 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
    • 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) • GitHub / AdamBien / LightFish (Source Code) • Adam Bien’s Weblog • And more …
    • Revival of rich clients 
 by JavaFX JavaFX is innovation in Java Technology 
 it may change the relationship 
 between application servers and clients.
    • 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 EE)へ発展 • UIはWebブラウザのみ - 2000年代初めのクライア ント環境は非力で、アプリケーション・サーバーへ の集中は合理的な判断
    • • Web UIの限界 - 標準のJavaServer Facesをはじ め様々なフレームワークが誕生したが、かつてのリッ チUIには敵わず • クライアント環境の進化 - 2013年現在、普段使用 しているPCは「2ちゃんねる」サーバー1機よりも 高性能 • UI処理を再びクライアントへ - クライアントとサー バーの役割分担見直し、リッチ・クライアント復活
    • • リッチ・クライアントとアプリケーション・サーバー の連携は、2005年前後から • 当時はSOAPによるWebサービスが流行 • SOAPはHTTPとXMLベースであり、CORBAや DCOM (ActiveX)よりシンプルでトラブルが少ない • あらゆるものをSOAPで繋ごうという動きまで…
    • • SOAPはXMLベースだが、トランザクションやセ キュリティなどの拡張機能により複雑化 • HTTP仕様そのものをメッセージング・フレームワー クに見立てたRESTが台頭 • RESTの強みは「シンプル」であること • SOAP vs. RESTのバトルが勃発、現状を見る限り ではRESTの圧勝か?
    • • サーバーからの状態変更通知は、ポーリングによる 確認が中心だった • RESTはステートレスでシンプルなことが売り、し かしポーリング時には毎回の再接続が裏目に • ロング・ポーリングなどの工夫により再接続のコス トは下がったが、RESTのシンプルさは失われた • ポーリングに頼らず、サーバー通知を行う手段は?
    • • RESTやロング・ポーリングの問題を抜本的に解決 するため、WebSocketが制定 • WebSocketは、HTTPの基盤を生かした、けれど もHTTPとは異なるプロトコル • WebSocketでは一度接続した後は切断するまでク ライアントとサーバーの間で自由にメッセージをや り取りできる • サーバー通知もWebSocketなら簡単に実現可能
    • • Javaでは、SOAP、REST、WebSocketのいずれ も規格化が完了 ([ ]内はGlassFishの実装) • • REST : JSR 339 (JAX-RS) [Jersey] • • SOAP : JSR 224 (JAX-WS) [Metro] WebSocket : JSR 356 [Tyrus] いずれもJava SE用クライアントを用意 : 
    • 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.
    • 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:
    • 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 but it is reusable Client client = ClientBuilder.newClient(); ! // send GET request to TARGET_URI // and receive the response as String class WebTarget target =; String message = target.request()
    • Jersey 2.0 dependencies artifactId library 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
    • 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:
    • 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
    • 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.
    • 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