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
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
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
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.
7. Sun's Open Stack
Flexible and Heterogeneous with Zero Barrier to Exit
Database Platform
Application
Infrastructure
Virtualization Sun xVM VirtualBox
Operating System
Partners
Architecture
8. GlassFish around You
Get your own local snapshot from: http://beta.glassfish.java.net:81/maps/
9. GlassFish Adoption
• Millions of downloads
• Dozens of external committers
• Over 8,000 members
• Excellent analyst reviews
> Gartner, Forrester, etc...
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, ...)
11. Timeline of Project GlassFish
Tomcat
Jasper
Catalina
v1 v2 v3 v3
JSTL GlassFish v2.1 prelude beta/ea
Struts v1 UR1 UR1UR2
Crimson Launch v2.1p1
XSLTC
Xalan
Xerces
JAXB J1'05 J1'06 Sept. Nov
JAX-RPC 2007 2008
JSF
June 2005 May 2006
(you are here)
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
13. GlassFish Application Server v2
• Concepts:
> Administrative Domain
> Cluster
> Server Instance
> Configuration
> Application and Resources
> Node Agent
> Domain Administration Server (DAS)
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
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
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
24. GlassFish Performance 1000
SPECjAppServer 2004 Results
SPECjAppServer 900
800
700
?
600
> July 2007: #1 score on T2000 500
400
300
> 883.66 JOPS@Standard for GlassFish v2 200
100
0
> + 10% vs. WebLogic, +30% vs. WebSphere 6.1 Sun BEA IBM
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/.
25. GlassFish v2 for the Developer
• Single, smaller, download • Cool Technologies
> Around 60 MB total > Grizzly's Comet, jRuby
> > on Rails, jMaki, …
• Multiple User Profiles >
> Developer, Cluster, Enterprise • Update Center
> Upgrade from one to another > Provision and install new
> features, frameworks, …
>
>
• Better startup time • Tools support
> Almost matches Tomcat
> NetBeans, (My)Eclipse,
> (see also GlassFish v3) > IntelliJ, etc...
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
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
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
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
34. JBI in a Nutshell
ESB Container Foundation
Service Engines
(SEs) as logic
Orchestration Transformation containers
J2EE Platform
(BPEL) (XSLT)
Management
System
Normalized Message Router
JBI
Core
• The “JBI Bus”: a fast, reliable, in-memory
Services
messaging bus
• Mediates all message exchanges between
WS-I Basic AS2 JMS consumers and providers
SOAP • Message payloads are opaque data sent along to
Binding Components the receiver (no canonicalization)
(BCs) J2EE™ PlatformNormalization not performed when consumer and
•
as proxies to outside world provider in same JBI container
35.
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
39. Java EE 6 – JSR 316
• New and updated:
• Extensibility • JSF 2.0 (JSR 314)
• Profiles • JSP 2.2
• Pruning • JAX-RS (JSR 311)
• More ease of • WebBeans 1.0 (JSR 299)
development • Servlets 3.0 (JSR 315)
• EJB 3.1
Rightsizing • Java Persistence 2.0
• JAX-WS 2.2
Goal is to deliver a final version first half of 2009
• Java EE Connectors 1.6
The exact set of technologies to be included will be determined by the expert group
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
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=quot;12quot;,dayOfMonth=quot;2quot;)
> Automatic creation (on deploy)
• Asynchronous operations
> @Asynchronous public void init (...) { ... }
> @Asynchronous Future doWork (...) { ... }
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
• JAX-RS
> RESTful Web Services
> RI developed in // with Spec:
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
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
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 :
> EJB 3.1 (preview)
> jRuby On Rails (no WAR packaging required)
> Grails (now also for GlassFish v2)
> Jersey and Metro (Web Services)
> jMaki (Ajax)
• Tools-ready: NetBeans 6.1, Eclipse 3.4
• Embedded GlassFish API
46. (Some) Distributions & Contributors
Tools
Java EE RI & SDK NetBeans™ Communities
IDE
Distributions Eclipse Plugin
OpenSSO
GlassFish Enterprise Derby
MQ Hudson
JBoss 5 Project
GlassFish GlassFish
TmaxSoft JEUS 6 Portal
Oracle oc4j
OpenESB SailFin
BEA WebLogic 10
Maven Rep
OpenDS
Users and Other Groups
47. Glassfish
Where to go next
• Add-ons
> Glassfish Enterprise Server
> Glassfish ESB
> Glassfish Web Space Server
> Glassfish Web Stack
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