Your SlideShare is downloading. ×
0
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011

5,597

Published on

Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011

Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,597
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
36
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. GlassFish Server 3.1Deploying your Java EE 6 Applications in ClusterArun Gupta, Java EE & GlassFish Guyblogs.oracle.com/arungupta, @arungupta 1
  • 2. The following is intended to outline our generalproduct direction. It is intended for informationpurposes only, and may not be incorporated intoany contract. It is not a commitment to deliver anymaterial, code, or functionality, and should not berelied upon in making purchasing decisions.The development, release, and timing of anyfeatures or functionality described for Oraclesproducts remains at the sole discretion of Oracle.
  • 3. Java EE 6 and GlassFish Server 3 shipped final releases on December 10th 2009
  • 4. Worlds First Java EE 6 Compatible App Server with Clustering & High Availability Shipped Feb 28th 2011
  • 5. GlassFish Server Chronology* 2006 2007 2008 2009 2010 2011 … GlassFish v1 Java EE 5, Single Instance GlassFish v2 Java EE 5, High Availability GlassFish Server 3 Java EE 6, Single Instance GlassFish Server 3.1 Java EE 6, High Availability GlassFish 3.1.1 JDK7 support GlassFish.next* GlassFish Server Open Source Edition Java EE 7
  • 6. GlassFish Community● Proven by developers ● Over 24 million downloads ● Over 22 million active users (cumulative in past 4 yrs) ● 900K+ upgrades from GlassFish Server 3 to 3.1 in just 2 months ● Active user forums ● Sub-projects – Jersey (JAX-RS), Metro (JAX-WS), Grizzly (nio), Atmosphere, OpenMQ (JMS), and more
  • 7. GlassFish Around Youhttp://maps.glassfish.org
  • 8. Deliverables● Application Server ● Open Source and high-quality runtime ● Java EE 5 / 6 Reference Implementation, early access to latest standards ● Clustering and High Availability ● Full Commercial Support from Oracle● Continued Investment in Open Source ● Open Source license, governance, participation, transparency, ...
  • 9. General Picture of Distributions
  • 10. GlassFish and WebLogic together• Best open source application server with •Best commercial application server for support from Oracle transactional Java EE applications• Open source platform of choice for light- • Platform of choice for standardization weight Web applications Focus on lowest operational cost and •• Focus on latest Java EE standards and mission critical applications community driven innovation integration with Oracle Database, Fusion •• Certified interoperability with Fusion Middleware & Fusion Applications Middleware• Differentiated innovation, scout thread Production Java Production Java Application Deployment Application Deployment GlassFish Server WebLogic Server
  • 11. Painless Java EE development ! The save/reload paradigmAuto-deploy of all Java EE and static●artifacts
  • 12. Active Deployment● Deployment option to maintain stateful sessions across re-deployments$ asadmin redeploy --properties keepSessions=true myapp.war● Greatly simplifies the development paradigm● Integrated in IDEs
  • 13. Yes, Eclipse too !OEPE : http://www.oracle.com/technetwork/developer-tools/eclipse
  • 14. Introducing GlassFish Server 3
  • 15. 3.1 Overview● Built on GlassFish 3● Modular and Extensible HK2 Kernel ● ~260+ modules● Clustering and High Availability ● HTTP, EJB, IIOP, SSO, Metro● Dynamic Invocation of Services● End-to-end extensibility
  • 16. Fast and Furious ... ● 29% better startup/deploy/re-deploy cycle over 3.0.1 ● 33% better HA performance over 2.1.1 ● Scalable Grizzly Adapter based on Java NIO ● Full-session and Modified-attribute* scope ● Multiple Standalone instances and Clusters per domainhttp://weblogs.java.net/blog/sdo/archive/2011/03/01/whats-new-glassfish-v31-performance
  • 17. Modular and Dynamic● Modular : Apache Felix (OSGi)● Extensible : HK2● Yet very Fast !
  • 18. More Painless Development● Fast auto-deploy of all Java EE and static artifacts● Application runner ● java -jar glassfish.jar toto.war● Maven integration ● mvn gf:run, gf:start, gf:deploy, ...● Containers added dynamically and transparently● Excellent Tools support
  • 19. Embedded uses● Testing ● EJBContainer API (EJB 3.1) ● Simple testing using Java SE (JUnit, Maven, ...) using EJB container● Packaging / Bundling ● Beyond the specification: control all of GlassFish Server with an API = GlassFish Embedded ● Integration testing & ship the server inside the app
  • 20. Whats the deal with OSGi?● GlassFish Server runs on top of OSGi (Felix) ● Also runs unmodified on Equinox (and Knopflerfish) ● GlassFish ships as 260+ bundles ● Can run without OSGi (Static mode) ● Can use OSGi management tools (CLI or Web) ● Can be installed on top of existing OSGi runtime● Any OSGi bundle will run in GlassFish Server ● Drop it in glassfish/modules{/autostart} ● Can also asadmin deploy it using --type osgi ● GlassFish OSGi admin console
  • 21. Extending GlassFish OSGi-style – an example, a demo and a picture ● OSGi declarative service ● Service-Component entry in the JAR Manifest ● Invoke the service from a servlet using standard @Resource injection ● Never use a GlassFish API ! ● No need to chose between OSGi and Java EEStep by step: http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_4
  • 22. Update Center
  • 23. Monitoring and Management Beyond web console and asadmin● Dynamic and non-intrusive monitoring ● BTrace integration – Portable, dynamic and safe tracing tool for Java – Btrace annotations and API to write scripts ● Java-defined Probe Providers ● RESTful interface ● DTrace for end-to-end● JavaScript Monitoring tool (add-on)● Still exposed via JMX ● jconsole and visualvm as natural clients
  • 24. RESTful Administration● Jersey + Grizzly to provide REST interfaces ● Configure runtime (via GET, POST, DELETE) ● Invoke commands (restart, stop, deploy, etc..) ● Monitoring (GET only)● Available from ● http://localhost:4848/management/domain ● http://localhost:4848/monitoring/domain● Use REST clients as Admin GUI substitute ● Use your favorite glue/scripting language or tool● Data offered as either XML, HTML or JSON● Extensible
  • 25. More GlassFish Server 3.x● Developer performance● Embedded API● RESTful API● Update Center● Metro 2.0● OpenMQ 4.x● Admin console● Btrace monitoring● ...
  • 26. GlassFish Server Users
  • 27. Customers Around the GlobeDepend on WebLogicIn government…On the phone …In the wallet …With health …In education andresearch …In travel &transport …
  • 28. GlassFish Server 3.1 Developer Highlights● Developer Productivity –Improved embedded API support –Updated NetBeans and Eclipse plugin● Updated Technologies –Grizzly WebSocket support –Improved CDI, JSON, hypermedia support in Jersey –Technology refresh – JSF, CDI, Grizzly, OSGi, JPA, Jersey, Bean Validation, Metro, UC, etc. –Implementation of various Enterprise OSGi Specs
  • 29. GlassFish Server 3.1 Clustering Highlights● HTTP, EJB, IIOP, SSO, Metro –New - RM Sequence, Secure Conversations● Session-based replication using Shoal –Distributes session state uniformly & consistently among instances●Shoal OSGi module, loaded when HA-enabled apps are deployed●Support for conventional clustering of MQsbrokers in embedded mode
  • 30. GlassFish Server 3.1 Manageability Highlights●SSH based remote management andprovisioning●Application versioning support●Application scoped resources●Statement leak detection and reclaim●Improved monitoring●Console based on RESTful API
  • 31. Application Versioning● Deploy multiple versions of an application,only one enabled● Commands ● asadmin deploy foo.war ●asadmin deploy –name=foo:BETA-1 foo.war ●asadmin deploy –name=foo:BETA-1.1 –enable=false foo.war ●asadmin enable foo:BETA-1.1 ●asadmin deploy –name=foo:RC1 foo.war ●asadmin undeploy foo:BETA* ●asadmin undeploy foo:*
  • 32. GlassFish Server 3.1.1● Runs on JDK 7● Extensive platform support ● AIX 6.1/7.1, Solaris 11 Express Edition● Better performance with 64-bit LB plug-in● Performance and Stability enhancements ● Weld, Bean Validation, Jersey, …● Support for OSGi/Java EE Hybrid Apps● Improved fidelity for GlassFish Embedded
  • 33. String in switch – Before JDK 7@Path("fruits")public class FruitResource { @GET @Produces("application/json") @Path("{name}") public String getJson(@PathParam("name")String name) { if (name.equals("apple") || name.equals("cherry") || name.equals("strawberry")) return "Red"; else if (name.equals("banana") || name.equals("papaya")) return "Yellow"; else if (name.equals("kiwi") || name.equals("grapes") || name.equals("guava")) return "Green"; else if (name.equals("clementine") || name.equals("persimmon")) return "Orange"; else return "Unknown"; }...
  • 34. String in switch – After JDK 7@Path("fruits")public class FruitResource { @GET @Produces("application/json") @Path("{name}") public String getJson(@PathParam("name")String name) { switch (name) { case "apple": case "cherry": case "strawberry": return "Red"; case "banana": case "papaya": return "Yellow"; case "kiwi": case "grapes": case "guava": return "Green"; case "clementine": case "persimmon": return "Orange"; default: return "Unknown"; } }... http://blogs.oracle.com/arungupta/entry/totd_168_string_switch_statement
  • 35. Automatic ResourceManagement – Before JDK 7@Resource(name=“jdbc/__default”)DataSource ds;@javax.annotation.PostConstructvoid startup() { Connection c = null; Statement s = null; try { c = ds.getConnection(); s = c.createStatement(); // invoke SQL here } catch (SQLException ex) { System.err.println("ouch!"); } finally { try { if (s != null) s.close(); if (c != null) c.close(); } catch (SQLException ex) { System.err.println("ouch!");; } }}
  • 36. Automatic ResourceManagement – After JDK 7@Resource(name=“jdbc/__default”)DataSource ds;@javax.annotation.PostConstructvoid startup() { try (Connection c = ds.getConnection(); Statement s = c.createStatement()) { // invoke SQL here } catch (SQLException ex) { System.err.println("ouch!"); }} http://blogs.oracle.com/arungupta/entry/totd_167_automatic_resource_management
  • 37. Multi-catch – Before JDK 7protected void doPost(HttpServletRequest request, HttpServletResponse response){ PrintWriter out = null; try { response.setContentType("text/html;charset=UTF-8"); out = response.getWriter(); out.println("<html><head><title>Servlet TestServlet</title></head>"); out.println("<body>"); out.println("<h1>Sending email from " + request.getContextPath () + "</h1>"); for (Part p : request.getParts()) { // save the parts locally System.out.println(p.getName() + " saved"); } Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); InternetAddress[] address = {new InternetAddress(to)}; message.setRecipients(Message.RecipientType.TO, address); message.setSubject("File upload successful."); message.setSentDate(new Date()); message.setText("File has been successfully saved."); Transport.send(message); out.println("</body>"); out.println("</html>"); } catch (ServletException ex) { Logger.getLogger(TestServlet.class.getName()).log(Level.SEVERE, null, ex); } catch (MessagingException ex) { Logger.getLogger(TestServlet.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(TestServlet.class.getName()).log(Level.SEVERE, null, ex); } finally { out.close(); }
  • 38. Multi-catch – After JDK 7 out.println("</body>"); out.println("</html>"); } catch (ServletException | MessagingException | IOException ex) { Logger.getLogger(TestServlet.class.getName()).log(Level.SEVERE, null, ex); } finally { out.close(); }http://blogs.oracle.com/arungupta/entry/totd_169_multi_catch_using
  • 39. GlassFish Server Control Monitoring DAS Backup & Recovery Performance Tuner Scripting ClientCoherence Active Cache Oracle Access Load Balancer Manager Integration Plugin & Installer
  • 40. Strategy for continued success● Continue to deliver outstanding performance● Continue to improve developer productivity● Continue product execution ● Deliver Java EE 7 first ● Deliver on product roadmap● Continue to innovate ● Improve manageability ● Hybrid OSGi / Java EE applications
  • 41. Why Attend JavaOneBecause Duke says:• “Find out whats new with Java Technology.”• “Hear from and network with visionary speakers and recognized community luminaries.”• “Get in-depth technical content and hands-on learning opportunities that cover todays most important Java development topics.” (400+ sessions/BoFs/HOLs)• “Walk away with improved working knowledge and coding expertise you can apply immediately to your own projects and initiatives.” http://oracle.com/javaone
  • 42. References● oracle.com/javaee● glassfish.org● oracle.com/goto/glassfish● blogs.oracle.com/theaquarium● youtube.com/GlassFishVideos● Follow @glassfish
  • 43. GlassFish Server 3.1Deploying your Java EE 6 Applications in ClusterArun Gupta, Java EE & GlassFish Guyblogs.oracle.com/arungupta, @arungupta 44

×