Slide 1: GlassFish Technical Overview May 2009
1
Slide 2: What Is GlassFish?
• A Java EE 5-compliant Application Server
> Can run J2EE applications too
• Open Source
> CDDL (like OpenSolaris, NetBeans) > GPLv2 (like Java and NetBeans)
• Enterprise Quality
> GlassFish Enterprise Application Server > Adds support, indemnification, and 99.999%
availability
Slide 3: What Is GlassFish? (Cont.)
• Community at http://glassfish.org
> Sources, bug DBs, discussions > Roadmaps > Architecture Documents
• Governance Board
> 2 Sun members: Simon Phipps, Eduardo Pelegri-
Llopart > 3 Non-Sun individual members from Google, Wotif.Com, Amex
Slide 4: What is Application Server?
• An application server is a server that hosts APIs to expose business logic and business processes for use by third-party applications. • It provides an n-tier architecture • Often referred to as an J2EE application Server
Slide 5: Application Server flavors?
• WebSphere Application Server and WebSphere Application Server Community Edition (IBM), Sybase Enterprise Application Server (Sybase Inc), WebLogic Server (BEA), JBoss (Red Hat), JRun (Adobe Systems), Apache Geronimo (Apache Software Foundation), Oracle OC4J (Oracle Corporation), Sun Java System Application Server (based on GlassFish Application Server)(Sun Microsystems), SAP Netweaver AS (ABAP/Java) (SAP), and Glassfish Application Server.
Slide 6: Application Server & Open Source
Slide 7: Sun's Open Stack
Flexible and Heterogeneous with Zero Barrier to Exit
Database Platform Application Infrastructure Virtualization Operating System Partners Architecture
Sun xVM
VirtualBox
Slide 8: GlassFish around You
Get your own local snapshot from: http://beta.glassfish.java.net:81/maps/
Slide 9: GlassFish Adoption
• Millions of downloads
• Dozens of external committers • Over 8,000 members • Excellent analyst reviews
> Gartner, Forrester, etc...
Slide 10: GlassFish
Best of class App Server
http://glassfish.org
• GlassFish v2 released Sept. 2007
> 4 millions downloads > From x3 to x10 usage over 12 months
• Out of the box :
> > > > >
Web Services interop with Microsoft Full Clustering Administration tools Performance (SPEC record) Tooling (NetBeans, Eclipse, ...)
Slide 11: Timeline of Project GlassFish
Tomcat Jasper Catalina JSTL Struts Crimson XSLTC Xalan Xerces JAXB JAX-RPC JSF
GlassFish Launch
v1
v1 UR1
v2
UR1 UR2
v2.1 prelude
v3
v3
beta/ea
v2.1p1
J1'05 June 2005
J1'06 May 2006
Sept. 2007
(you are here)
Nov 2008
Slide 12: GlassFish v2 for the Enterprise
• Web Tier
> Grizzly nio framework (HTTP, IIOP, SIP) > Dynamic Web Container > Ultra-fast JSP compilation
• Metro Web Services Stack
> One-stop shop for Web Services starting with JAX-WS > Performance, Advanced WS & Microsoft interoperability
• Clustering, Load-Balancing, HA
> Dynamic group management system (Shoal) > In-memory replication > Unified Management
Slide 13: GlassFish Application Server v2
• Concepts:
> > > > > > >
Administrative Domain Cluster Server Instance Configuration Application and Resources Node Agent Domain Administration Server (DAS)
Slide 14: Clustering in GlassFish v2
JMX = Java Management Extensions
Slide 15: Out of the Box
Full Clustering? ●Let's create one ● 1 Install GlassFish with cluster profile ● Create a Domain Admin Server ● Create a NodeAgent 1 ● Create Instance 1 & Instance 2 ● Deploy a sample app with session state ● Test Cluster
●
Slide 16: Node 1
Slide 17: HADB
Node 1 Node 2
HADB
Slide 18: GlassFish v2 for the Enterprise
Integration
> > > >
• Open MQ
High performing JMS implementation HA for brokers and messages Available as standalone product Integration with GlassFish > In memory, Out of process, or Remote
• JBI support
> OpenESB 2.0 as the integration back-bone > Install, admin, and monitoring integrated in GlassFish v2 > Basis for Java CAPS Release 6
• Oracle TopLink as default JPA persistence engine
> Hibernate also easily usable
Slide 19: GlassFish v2 for Enterprises
Management & Monitoring
• Graphical, command-line, tools, ANT ...
> JMX and Centralized
• • • •
Call Flow Self-management Diagnostic reports VisualVM
> Now in Java 6u7 > GlassFish plugin
Slide 20: Call Flow demo
Slide 21: Web Admin Console
Slide 22: Enterprise Management Tools
Demonstration • Performance Advisor • Performance Monitor
Other demos • SNMP
Slide 23: Enterprise Management Tools
Performance
Slide 24: GlassFish Performance
SPECjAppServer
> July 2007: #1 score on T2000
SPECjAppServer 2004 Results
1000 900 800 700 600 500 400 300 200 100 0
?
Sun BEA IBM
> 883.66 JOPS@Standard for GlassFish v2 > + 10% vs. WebLogic, +30% vs. WebSphere 6.1
JBoss
JBoss
> July 2007: Best $/perf. on full Open Source
> GlassFish v2, OpenSolaris, Java 6, PostgreSQL > 3x the price/perf vs. Oracle on HP score
> November 2007: Massive Scalability Result
> 8,439.36 JOPS@Standard (6 nodes, 18 instances) > Sun T5120 & E6900 You no longer need to chose between Open Source and Performance
Disclaimers: SPEC and the benchmark name SPECjAppServer 2004 are registered trademarks of the Standard Performance Evaluation Corporation. Competitive benchmark results stated above reflect results published on www.spec.org as of 11/21/07. The comparison presented is based on GlassFish v2 UR1 run on 6 Sun SPARC Enterprise T5120 (1 chip, 8 cores/chip, 8 threads/core) 1.4GHz 8,439.36 SPECjAppServer2004 JOPS@Standard. For the latest SPECjAppServer 2004 benchmark results, visit http://www.spec.org/.
Slide 25: GlassFish v2 for the Developer
• Single, smaller, download • Cool Technologies
> Around 60 MB total > > Grizzly's Comet, jRuby > on Rails, jMaki, … > > Provision and install new > features, frameworks, … > > NetBeans, (My)Eclipse, > IntelliJ, etc...
• Multiple User Profiles
> Developer, Cluster, Enterprise > Upgrade from one to another >
• Update Center
• Better startup time
> Almost matches Tomcat > (see also GlassFish v3)
• Tools support
Slide 26: Java EE 5 = (J2EE 1.4).next
• Java EE 5 Theme: Ease of Development • POJO-based programming
> More freedom, fewer requirements
• Extensive use of annotations
> Reduced need for deployment descriptors > Annotations are the default
• Resource Injection • New APIs and frameworks
Slide 27: GlassFish Developement Made Easy
Slide 28: Out-of-the-Box Support
• Latest Java EE specification • Integrated with NetBeans (and Eclipse bundle)
> More freedom, fewer requirements
• Key technologies, including:
> Java RMI over internet inter-ORB protocol (RMI-IIOP) > J2EE Connector Architecture and Java Messaging Service (JMS) > Enterprise JavaBeans (EJB) 3.0 specification
• Implements Java Management Extensions (JMX) & application server Management Extensions (AMX) API • Custom managed beans (Mbeans) • Representation State Transfer (REST) web services
Slide 29: Enhanced Developer Productivity
• SOA features and web services, including web services management • Annotation for rapid development and deployment of enterprise applications • Simplified deployment and execution of enterprise applications by integrating with Java Web Start • The incorporation of run-time performance improvements and new technologies • Database connectivity to Oracle, Sybase, IBM, Microsoft SQL, MySQL and Derby • Enhanced and easy web-based administration, as well as full administration from a command-line interface
Slide 30: Easy of use
• Update Center
Slide 31: JBI support Enterprise Integration
Slide 32: JBI – A Universal Plug 'n Play Layer
●
●
●
●
●
A standard way to add new functionality to an existing platform Standard Installation and life cycle for components Standard WSDL based communication across components Standard deployment model for all components Result of the experience we had with our own Products: Integration Server EAI, SeeBeyond ICAN
Slide 33: Open ESB: An Extensible Platform
Slide 34: JBI in a Nutshell
Orchestration (BPEL) Transformation (XSLT)
ESB Container Foundation
J2EE Platform
Service Engines (SEs) as logic containers
Normalized Message Router
•
WS-I Basic SOAP
AS2
JMS
Binding Components (BCs) as proxies to outside world
J2EE™
messaging bus • Mediates all message exchanges between consumers and providers • Message payloads are opaque data sent along to the receiver (no canonicalization) PlatformNormalization not performed when consumer and • provider in same JBI container
JBI Core The “JBI Bus”: a fast, reliable, in-memory Services
System Management
Slide 36: Request starts here! Calculate interest Providerate based values on type from UI Monthly Payment!
Copy Record to Provide Database values to UI Drop Quote on Message Queue
Slide 37: JBI & BPEL Demo
Slide 38: GlassFish Next
Slide 39: Java EE 6 – JSR 316
• • • • Extensibility Profiles Pruning More ease of development • • • • • • • • • • New and updated: JSF 2.0 (JSR 314) JSP 2.2 JAX-RS (JSR 311) WebBeans 1.0 (JSR 299) Servlets 3.0 (JSR 315) EJB 3.1 Java Persistence 2.0 JAX-WS 2.2 Java EE Connectors 1.6
Rightsizing
Goal is to deliver a final version first half of 2009 The exact set of technologies to be included will be determined by the expert group
Slide 40: Java EE 6 – Enhancements
• Servlet 3.0
> No more web.xml editing > ARP (Async. Request Processing) > File upload > > > >
• JPA 2.0
Criteria API Collections and better Maps support Validation support (JSR 303) @OrderBy, specify unfetched state
• JSF 2.0
> Make custom components much easier to develop > Ajax support, less config., align w/Portlet 2.0, Facelets
Slide 41: Java EE 6 – EJB 3.1
• Packaging simplification
> No more ejb-jar. Easier to share libraries, persistence units
• Singleton Beans
> @Singleton to share data in EJB container (per JVM)
• Concurrency
> @ReadOnly as singleton optimization (vs. single-threaded) > @BeanManagedConcurrency for explicitly synchronized
• TimerService
> @Schedule(hour="12",dayOfMonth="2")
> Automatic creation (on deploy)
• Asynchronous operations
> @Asynchronous public void init (...) { ... } > @Asynchronous Future doWork (...) { ... }
Slide 42: Java EE 6 – New APIs
• Web Beans 1.0
> Brings together JSF and EJB > Inspired by JBoss' Seam > JBoss (Gavin King) is spec lead for JSR 299 > Bob Lee (Guice) heavily involved > RESTful Web Services > RI developed in // with Spec: > > > >
• JAX-RS
http://jersey.dev.java.net Expose POJO as RESTful resources High-level declarative programming model Flexible typing, runtime does common conversions Pluggable types, containers, and resolvers
Slide 43: GlassFish v3
• • • • • Fast startup Modular (OSGi), extensible architecture Dynamic resource and runtime loading Build-your-own runtime Not just Java
> Ruby on Rails, Grails, PHP, Python/Django, Scala > Leverage performance, admin, monitoring, clustering
• Preview available now (TP2)
> Final in 2009, possibly a web tier in 2008 > Aligned with Java EE 6
Slide 44: GlassFish v3 (cont.)
• • • • OSGi: Apache Felix as default 21 MB download, 1-sec startup Admin and update tool downloaded on demand Add-ons available from update center :
> > > > >
• Tools-ready: NetBeans 6.1, Eclipse 3.4 • Embedded GlassFish API
EJB 3.1 (preview) jRuby On Rails (no WAR packaging required) Grails (now also for GlassFish v2) Jersey and Metro (Web Services) jMaki (Ajax)
Slide 45: GlassFish ESB
GlassFish Project v3 + Open ESB v3
Slide 46: (Some) Distributions & Contributors
Tools
Java EE RI & SDK
NetBeans™ IDE
Communities
Eclipse Plugin
Derby MQ GlassFish Portal OpenESB SailFin OpenSSO
Distributions GlassFish Enterprise
JBoss 5 TmaxSoft JEUS 6 Oracle oc4j
BEA WebLogic 10
Project GlassFish
Hudson
Maven Rep
OpenDS
Users and Other Groups
Slide 47: Glassfish
Where to go next
• Add-ons > Glassfish Enterprise Server > Glassfish ESB > Glassfish Web Space Server > Glassfish Web Stack
Slide 48: Glassfish
Where to go next
• http://glassfish.org • http://wiki.glassfish.java.net • http://blogs.sun.com/theaquarium
> Daily news, broader GlassFish community
• http://java.sun.com/javaone
> Presentations and Hands-on-Labs
Slide 49: Questions ?
Eugene.bogaart@sun.com
49