Glassfish Overview Fontys 20090520
Upcoming SlideShare
Loading in...5

Glassfish Overview Fontys 20090520



Presented @ Fontys Venlo school. As part of the colloqium for the Software Engineering students.

Presented @ Fontys Venlo school. As part of the colloqium for the Software Engineering students.



Total Views
Views on SlideShare
Embed Views



2 Embeds 5 4 1



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.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • 'Bob Lee heavily involved' (slide 42), huh ?

    Bob wrote a couple of weeks ago on the guice-dev mailing list that he stopped being involved in JSR299 a year ago:

    'If 299 looks superficially like Guice, it's because I was heavily involved.
    I left the EG over a year ago because I disagreed with the leadership and
    technical direction.

    So far, I haven't bothered to actively oppose 299 for a few reasons:

    1) 299 doesn't seem to have gained any real traction. Only RedHat is
    pushing it. You've heard of design by committee? 299 is design by Gavin. :-)

    2) 299 is part of EE, which we don't use or care much about. I think the
    risk of 299 imposing itself on SE is zero.

    3) I choose to spend my time constructively (on the Java language, Guice,
    JSR 166, Android, etc.), not playing political games.

    My advice to our users is to continue using the Guice API. Your code will be
    more maintainable as a result. JSR 299 does not represent consensus. It's a
    land grab by unqualified vendors who would rather prematurely set an
    unproven design in stone than compete on a level playing field. It's EJB and
    JSF all over again. By comparison, the Guice API has enjoyed many times the
    scrutiny by people who actually use and understand this stuff. Guice is
    simpler, better specified and more future proof as a result.

    In other words, Guice will not directly support 299, but you could easily
    build a 299 extension for Guice. You'd be better off sticking to the Guice
    API though.

    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Glassfish Overview Fontys 20090520 Glassfish Overview Fontys 20090520 Presentation Transcript

  • GlassFish Technical Overview May 2009 1
  • 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
  • What Is GlassFish? (Cont.) • Community at > 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
  • 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
  • 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.
  • Application Server & Open Source
  • Sun's Open Stack Flexible and Heterogeneous with Zero Barrier to Exit Database Platform Application Infrastructure Virtualization Sun xVM VirtualBox Operating System Partners Architecture
  • GlassFish around You Get your own local snapshot from:
  • GlassFish Adoption • Millions of downloads • Dozens of external committers • Over 8,000 members • Excellent analyst reviews > Gartner, Forrester, etc...
  • GlassFish Best of class App Server • 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, ...)
  • 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)
  • 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
  • GlassFish Application Server v2 • Concepts: > Administrative Domain > Cluster > Server Instance > Configuration > Application and Resources > Node Agent > Domain Administration Server (DAS)
  • Clustering in GlassFish v2 JMX = Java Management Extensions
  • 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
  • Node 1
  • HADB Node 1 Node 2 HADB
  • 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
  • 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
  • Call Flow demo
  • Web Admin Console
  • Enterprise Management Tools Demonstration • Performance Advisor • Performance Monitor Other demos • SNMP
  • Enterprise Management Tools Performance
  • 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 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
  • 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...
  • 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
  • GlassFish Developement Made Easy
  • 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
  • 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
  • Easy of use • Update Center
  • JBI support Enterprise Integration
  • 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
  • Open ESB: An Extensible Platform
  • 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
  • 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
  • JBI & BPEL Demo
  • GlassFish Next
  • 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
  • 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
  • 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 (...) { ... }
  • 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: > Expose POJO as RESTful resources > High-level declarative programming model > Flexible typing, runtime does common conversions > Pluggable types, containers, and resolvers
  • 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
  • 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
  • GlassFish ESB GlassFish Project v3 + Open ESB v3
  • (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
  • Glassfish Where to go next • Add-ons > Glassfish Enterprise Server > Glassfish ESB > Glassfish Web Space Server > Glassfish Web Stack
  • Glassfish Where to go next • • • > Daily news, broader GlassFish community • > Presentations and Hands-on-Labs
  • Questions ? 49