GlassFish Update and Directions - Karim Mazouni - November 2007

JUG Lausanne
JUG LausanneJUG Lausanne
GlassFish Update
and Directions
Sun Microsystems, Inc.

Material under Creative Commons Attribution-ShareAlike 2.5 License
http://creativecommons.org/licenses/by-sa/2.5/

1
Java EE 5.0 = (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

• Configure by exception
> Reasonable defaults wherever possible

• Resource Injection
• New APIs and frameworks
> EJB3, JAXB 2, JAX-WS, JSF, ...
GlassFish
“Various Interface21ers, including Costin and Juergen, have
taken a look at GlassFish and given it the thumbs up.”
Rod Johnson, Spring Framework Creator, Feb. 2007 [1]

[1]: blog.interface21.com, Feb. 2007
“... we were seriously stressed when IBM declared war with Geronimo
and then HP got in the game against us too. Red Hat and JOnAS
didn't scare us at all (really – not at all), nor did we worry about
Sun's foray into the market. Oddly enough, of that group only Sun
has managed to mount serious competition to Jboss.”
Marc Fleury, JBoss founder, August 2007 [2]

[2]: news.com, August 2007
“Among major vendors, Sun Microsystems Inc., has dramatically
improved its standing in this year's evaluation of applications
servers for service-oriented architecture (SOA) and business
process management (BPM)”

Forrester Research, August 2007 [3]

[3]: http://www.forrester.com/Research/Document/0,,37138,00.html, August 2007
What Is Project GlassFish?
• A Java EE 5 compliant Application Server
• Enterprise Quality
> Sun Java System Application Server 9.x
> Use it in production!

• Open Source
> CDDL (like OpenSolaris, NetBeans)
> GPLv2 (like Java and NetBeans)
> Use it in production!

• Community at http://glassfish.java.net
> Sources, bug DBs, discussions at Java.Net
> Roadmaps, Architecture Documents
GlassFish Adoption
• 3.5 million downloads since
July '06
• Dozens of external committers
• Over 7,000 members
• Evans data survey of Linux
users puts GlassFish at #3
behind JBoss and “other”
(Tomcat)
> JBoss and IBM fell 5% while

GlassFish / Sun increased

Unique Admin "Pings"
130000
120000
110000
100000
90000
80000
70000
60000
50000
40000
30000
20000
10000
0
Feb 07 Mar 07 Apr 07 May 07 Jun 07

Jul 07
GlassFish around you
Timeline of Project GlassFish

Tomcat
Jasper
Catalina
JSTL
Struts
Crimson
XSLTC
Xalan
Xerces
JAXB
JAX-RPC
JSF

GlassFish
Launch

J1'05
June 2005

V1

V2

V3

V1UR1

J1'06
May 2006

Sept.
2007

2008/2009

(you are here)
Releases in Project GlassFish
• GlassFish v1
> Victory! Java EE 5 Compliance!
> December 2006 : UR1 - bug fixes
> Growing # of Deployments

• GlassFish v2
>
>
>
>

New WS stack, performance, startup time
Cluster management, load balancing, failover
Some scripting support
Community, Transparency, Adoption

• GlassFish v3
> Modularized kernel (HK2)
> The Web 2.0 engine
GlassFish v2

SJS Application Server 9.1

• Metro Web Services Stack

> Performance, Microsoft interoperability

• Clustering, Load-Balancing, HA
> Advanced Management

• JBI support (OpenESB 2.0)
• Better user experience
>
>
>
>
>

Single, smaller, download
Multiple User Profiles
Better startup time
Update Center
New admin console: JSF, AJAX, Charts

• World Record Performance

ai
Av

le!
lab
GlassFish v2: Grizzly & JSP Containers
• JSP Container

> Can use JSR-199 (Javac APIs in Java 6)
> 10x performance improvement

• Grizzly
>
>
>
>
>
>
>

Improved over GlassFish v1
Very Flexible and Customizable
Non-blocking SSL
Support Quality of Service constraints
Scalable Async Req Processing (ARP)
Supports Comet (long-term HTTP connections)
Used in Jetty, etc...

• Hosting features

> Alternate docroots, webcontainer dynamically reconfigurable, ..
Management Features
• Centralized, secure, remote access
>
>
>
>

•
•
•
•

Accessible as GUI, CLI, IDEs, Java-based programs
Also available via provided ANT tasks
JMX & Application Server Management eXtensions, AMX
Can be monitored through jConsole and others

Per-service monitoring levels
Call Flow
Self Management
Resource consumption management
Metro

JAX-WS, WSIT, and JAXB implementations

• Dynamic JAX-WS Runtimes
• JAXB 2.0 fully support XML Schema
> A lot of reuse of GlassFish's JAXB implementation

• GlassFish JAX-WS 2.x
> WS Separation of Transport and Encoding
> HTTP, JMS, SMTP, TCP/IP
> MTOM, Fast Infoset (binary), Textual, Others

• WSIT (Project Tango)
> Microsoft Interoperability and Quality of Service
> Same (old) JAX-WS programing model

• Overall Great Performance (see next slide)
GlassFish JAX-WS vs. Axis2
WSIT (Project Tango)
• WSIT (Web Services Interoperability technology)
> Extension to JAX-WS 2.x, part of GlassFish v2
> Implements WS-Addressing, WS-Security, WS-Secure
Conversation, WS-ReliableMessaging, WS-MetaData
Exchange, MTOM/XOP, WS-Policy, and more

• POJO programing model from JAX-WS 2.x
> Annotations, Asynchronous Web Services, ...
> No API, platform is responsible for providing appropriate QoS
> Alternate Transports – JMS, SMTP, FTP, TCP, ...

• Common work with Microsoft (.Net 3's WCF)
> Regular tests against various stacks
See also : http://wiki.apache.org/ws/StackComparison
Top Link Essentials / JPA
• JPA now a separate JSR
> 1.0 very well accepted
> Does not require a container

• Oracle Contribution to GlassFish
> Fully JPA-compliant and open source

• Very Active Community
> Oracle, Sun, TmaxSoft, independents
> Mail: persistence@glassfish.dev.java.net

• Pluggable (per spec)
> In GlassFish, JEUS, JOnAS, Tomcat, Geronimo, JBoss, Oracle
> Converse is true also: Hibernate & OpenJPA run on GlassFish
JBI – Java Business Integration
• OpenESB 2.0 implementation
> Included in GlassFish v2
> Integrated as a life-cycle module
> Integrated admin tools (Web and CLI)

• Many components
> Binding Components: HTTP, File, FTP, JMS, TCP, CICS, HL7, ...
> Service Engines: BPEL, XSLT, ETL, SQL, Scripting, Worklist, ...
> https://open-esb.dev.java.net/Components.html

• Tools support
> NetBeans SOA 6.0 Beta

• Possible to plug ServiceMix into GlassFish v2
> Support wider JBI story
Clustering Architecture
HTTP(S)

Custom
Resources

RMI/IIOP

JMS

Resource
Adapters

AS

AS

Node A

AS

AS

Node B

AS
AS AS

Clustered
Instances

Management

Message routing/failover/load balancing

Node N
Applications
and Config

HA Application State Repository
Databases
Clustering in GlassFish v2
JMX API

JMX
API
asadmin>

Domain
Administration
Server
(DAS)

Node Agent

Node 1

Applications

Node Agent

Resources
Configuration

JMX API

Node 2

Administration Node

Java EE Server
Instance
JMX = Java Management Extensions
Dynamic Clustering and In-Memory
Replication
• GMS with Project Shoal

> http://shoal.dev.java.net
> Dynamic clusters implemented with JXTA by default
> Extreme ease of use in cluster setup

• Replication

> What?
> HTTP session state
> Stateful EJB session state
> Single Sign-On state
> Container state (timers, ...)
> How?
> Default is In-Memory replication with JXTA
> Can still use HADB for 99.999% uptime (higher perf degradation)
Memory Replication
Typical cluster topology

Example: Maximize
Availability on 4 node
cluster on 2 machines

Instance 1

Instance 2

Instance 3

Instance 4

Machine 1

Machine 2
Memory Replication
Problem domain and scope

• Provide Application High Availability for :
> HTTP session state
> Single Sign On state
> Stateful EJB Session bean state

• Application server instances need :
>
>
>
>
>

Automatic Transaction recovery
EJB Timer migrations
Cluster health
In-memory replication module
IIOP failover load-balancer
Memory Replication
Typical cluster topology

Instance 1

Instance 2

Instance 3

Instance 4
Memory Replication
Typical cluster topology

Example: Maximize
Availability on 4 node
cluster on 2 machines

Instance 1

Instance 2

Instance 3

Instance 4

Machine 1

Machine 2
Memory Replication
Typical failover scenario

• Location transparency
> fail over request can go to any instance in the cluster

• 2 Cases: Failover request lands on
> Case 1: instance with replica data:

ownership taken, processing continues
> Case 2: instance without replica data
> instance sends broadcast request
> instance with replica data transfers data back to requester and
deletes its copy after an acknowledge
> JXTA makes this easy (propagation communication channels are
scoped within the “group” (i.e. the cluster members)
HTTP Session State Failover

Servlet
(HTTP Session)

replicas

W
S

Load
Balancer

Servlet
(HTTP Session)

replicas

instance 1

instance 2

Servlet
(HTTP Session)

Servlet
(HTTP Session)

replicas

replicas

instance 4

Cluster

instance 3
HTTP Session State Failover

Servlet
(HTTP Session)

replicas

W
S

Load
Balancer

Case 1:
Instance has
replica data

Servlet
(HTTP Session)

replicas

instance 1

instance 2

Servlet
(HTTP Session)

Servlet
(HTTP Session)

replicas

replicas

instance 4

Cluster

instance 3
HTTP Session State Failover

Servlet
(HTTP Session)

replicas

W
S

Load
Balancer

Case 2:
Instance does not
have replica data
Broadcast…

Servlet
(HTTP Session)

replicas

instance 1

instance 2

Servlet
(HTTP Session)

Servlet
(HTTP Session)

replicas

replicas

instance 4

Cluster

instance 3
HTTP Session State Failover

Servlet
(HTTP Session)

replicas

W
S

Load
Balancer

Case 2:
Instance does not
have replica data
and ownership
transfer…

Servlet
(HTTP Session)

replicas

instance 1

instance 2

Servlet
(HTTP Session)

Servlet
(HTTP Session)

replicas

replicas

instance 4

Cluster

instance 3
Cluster Dynamic Shape Change

Servlet
(HTTP Session)

replicas

W
S

Load
Balancer

Shape Change
instance1 fails

Servlet
(HTTP Session)

replicas

instance 1

instance 2

Servlet
(HTTP Session)

Servlet
(HTTP Session)

replicas

replicas

instance 4

Cluster

instance 3
Cluster Dynamic Shape Change

Servlet
(HTTP Session)

X

Servlet
(HTTP Session)

replicas

W
S

Load
Balancer

Shape Change
instance1 fails
Instance2 and 4
see the failure

replicas

instance 1

instance 2

X
Servlet
(HTTP Session)

Servlet
(HTTP Session)

replicas

replicas

instance 4

Cluster

instance 3
Cluster Dynamic Shape Change

Servlet
(HTTP Session)

replicas

W
S

Load
Balancer

Shape Change
instance1 fails
Instance2 and 4
see the failure
Instance4 selects
Instance2 as new
partner—new
connections
established

Servlet
(HTTP Session)

replicas

instance 1

instance 2

Servlet
(HTTP Session)

Servlet
(HTTP Session)

replicas

replicas

instance 4

Cluster

instance 3

the reverse happens when an instance joins or re-joins the cluster
Memory Replication Configuration
Our hope was to say…

• “This page left intentionally blank” ;-)
> Meaning “zero configuration required”

• We came close to that goal…
Memory Replication Configuration
Out of the box…

• Create a domain
> Use the ‘cluster’ profile – defaults for replication are handled
> Enables GMS—heartbeat enabled
> persistence-type = "replicated"

• Create a cluster and instances
• Deploy your application with availability-enabled=true
• That’s it
Memory Replication Configuration
Making your app distributable

• <distributable/> element
> Required in web.xml
> Indicates you believe your application is ready to run in a cluster

• Serializable objects required
> HTTP Session state
> EJB technology Stateful Session Bean state
Memory Replication Performance
Cost of replication
Hits/Sec ~17-25% throughput degradation
1000
900
800
700
600

No replication
replication
HADB

500
400
300
200
100
0

2K session

4K session

8K session
Performance
• SPECjAppServer Benchmark

SPECjAppServer 2004 Results
900
800

> July 2007: #1 score on T2000
> 883.66 JOPS@Standard for GlassFish v2
> 10% faster than BEA WebLogic
> 30% faster than IBM WebSphere 6.1
> July 2007: Best $/perf. on full Open Source stack
> 813.73 JOPS@Standard
> GlassFish v2, OpenSolaris, Java 6, PostgreSQL
> 3x the price/perf vs. Oracle on HP score
700
600

?

500
400
300
200
100

0

Sun

BEA

IBM

JBoss

• Performance: Startup Speed
> Start as little as possible in v2 (see also v3)

You no longer need to chose between Open Source and performance
(Some) Distributions & Contributors
Tools
Java EE RI & SDK

NetBeans 5.5, 6.0

Communities

NetBeans™
IDE

Eclipse Plugin

Distributions
Sun Java System
AS 9.x
JBoss 5

Derby

Project
GlassFish

TmaxSoft JEUS 6
Oracle oc4j
BEA WebLogic 10

MQ
Portal Server
Open ESB

SailFin
Ericsson

Maven Rep

Users and Other Groups
Tools Support
• NetBeans 5.5.1, 6.0
• Best integration with :
>
>
>
>
>
>

full Java EE 5 support
resource creation
remote debug
incremental deployment
profiling
wizards, etc...

• Additional features (SOA,
UML, jRubyOnRails, ...)

• GlassFish (v1, v2, v3)
plugin for Eclipse 3.3
(Europa)

• Genuitec's MyEclipse
offers greater integration
between IDE and
GlassFish
Recent GlassFish Partners
Open for Business!

(Jetty)
Frameworks and Applications
OSWorkFlow

Quercus P HP
OSCache

Integration ORB
Apache Httpd
DOJO
Facele ts
Shale

Project Tango
CJ UG - Cl as sif ie ds

BIR T
MyFaces
ADF Sit eMesh

JSPwiki

SEAM

MC4J

jB PM

WebDAV

Tapest ry

AJ AX
Strin gBeans P ortal
BlogTrader
Wicket Equinox
Java WSDP
WebSphere M Q EHCache
Dalma
GlassFish Adoption Stories
http://blogs.sun.com/stories

• PeerFlix

> GlassFish v1 on Solaris 10 / x2100
> MySQL, Kodo JDO

• Wotif.com

> Large # hits, ehCache / Horizontal Scaling
> Spring and Hibernate
> 3rd largest commercial site in Australia

• Harvard University

> On-line archive for sharing data within and across

universities
> Lucene, PostgreSQL, Apache Shale

• More (small and large)
> Help us collect these
> stories@sun.com
GlassFish v3
• Small & Fast

> Less than 1.0 sec startup

• Totally Modular, kernel is <100K

> Can run in a phone or a desktop application
> Can be embedded in-process

• An ideal Container for Web 2.0

> Java Web Applications, PHP, jRuby/RoR, ...
> Support for upcoming Java EE 6 profiles

• A container that can do Java EE and more
• Screencast and preview code available today
> http://hk2.dev.java.net
> http://blogs.sun.com/dochez/entry/first_glassfish_v3_screencast1

• Still early stages... working on schedule
AJAX and Scripting Activities
• AJAX
> jMaki - http://ajax.dev.java.net
> Encapsulates very easily AJAX widgets (JSP taglib)
> DynaFaces - http://jsf-extensions.dev.java.net
> AJAX and full-featured JSF components
> WoodStock - http://woodstock.dev.java.net
> Repository of AJAXyfied JSF components
> JSF Templating http://jsftemplating.dev.java.net/
> Templating for pages and components

• Phobos - http://phobos.dev.java.net
> Scripting on the Server

• Comet and Grizzly - http://grizzly.dev.java.net
> Long-term HTTP connections for push content
FOSS Middleware Components
•
•
•
•
•
•
•
•
•
•
•
•

GlassFish – AppServer, JavaPersistence, Web Tier
OpenPortal – Container, WSRP, Portlet, Portlet Rep
OpenESB, OpenJBI – JBI, BPEL
OpenSSO – Access & Federation Manager
OpenDS – Directory Server
Jersey – JAX-RS for RESTful Web Services
Hudson – Continuous build software
Phobos, jMaki... – Web 2.0/AJAX
Open MQ – MessageQueue
WoodStock – JSF Components
Apache Derby – JavaDB
Social Software – Apache Roller, Slynkr
The SailFin Project
• Ericsson SIP Servlet
Contribution is available at:
> http://sailfin.dev.java.net

• Visit, Download, Try, Join
> Milestone 1 available

• Not just for telco operators!
> Bridging the HTTP and SIP

protocols

• Built on GlassFish v2
and expected first half of
2008
OpenDS

opends.dev.java.net
• Next generation Directory Services
> Designed to meet the needs of the Telco market
> High-Performance, highly extensible and VERY large

deployments

• Brand-new Code Base
> Java-based, Very High Performance Goals
> Not Based on DSEE (2B-entry deployments, market leader)

• Full Fledged
> Full LDAPv3, replicas
> Virtual Directory, Proxies, Caching, etc...

• Schedule
> v1.0 before year's end
OpenESB/JBI Status
open-esb.dev.java.net

• Based on JBI (Java Business Integration) Standard
• Already Released
> JBI Implementation
> BPEL
> Many binding components

• More Components to be Released
• Integrated within GlassFish V2
• Distributed in
> NetBeans SOA Pack
> Future of Sun Composite Application Platform Suite (CAPS)
OpenSSO Status
opensso.dev.java.net

• Access Manager, Single Sign-On, Federation
> SAML, XACML, Liberty Standards

• Already Released
> Access Manager
> Many Policy Agents
> Federation Manager

• To be Released
> More Policy Agents

• Distributed in
> Sun Java System Access Manager & Federation Manager
OpenPortal Status
portal.dev.java.net

• Enterprise-class Portal Server
> Basis for the commercial product from Sun
> Next release is Sun Java System Portal Server 7.2

• Sub-projects
portlet-container.dev.java.net (JSR168 / JSR 286)
portlet-repository.dev.java.net
wsrp.dev.java.net (WSRP 1.0, 2.0)
portalpack.netbeans.org / eclipse-portalpack.dev.java.net
saw.dev.java.net (Worflow/SOA)
mirage.dev.java.net (CMS)
jsfportletbridge.dev.java.net
• Get more information from http://blogs.sun.com/portal
>
>
>
>
>
>
>
JAX-RS & Jersey

http://jsr311.dev.java.net
• POJO-based RESTful Web Services
>
>
>
>

JSR 311, and also part of Java EE 6 (JSR 316)
High-level declarative programming model
Flexible typing, runtime takes care of common conversions
Pluggable support for types, containers, and resolvers

• Reference Implementation
> http://jersey.dev.java.net
> Available to GlassFish via update center
> Deployment options: JAX-WS endpoint (per JSR), Grizzly, Java

6 lightweight HTTPd

• Roadmap
> JSR and Reference Implementation final by 2H2008
Resources
• http://glassfish.java.net
• http://wiki.glassfish.java.net
• http://blogs.sun.com/theaquarium
Sun Microsystems, Inc.

Material under Creative Commons Attribution-ShareAlike 2.5 License
http://creativecommons.org/licenses/by-sa/2.5/

55
1 sur 55

Recommandé

JBoss Enterprise Application Platform 6 Troubleshooting par
JBoss Enterprise Application Platform 6 TroubleshootingJBoss Enterprise Application Platform 6 Troubleshooting
JBoss Enterprise Application Platform 6 TroubleshootingAlexandre Cavalcanti
2.2K vues8 diapositives
MySQL for Large Scale Social Games par
MySQL for Large Scale Social GamesMySQL for Large Scale Social Games
MySQL for Large Scale Social GamesYoshinori Matsunobu
4.5K vues37 diapositives
WildFly BOF and V9 update @ Devoxx 2014 par
WildFly BOF and V9 update @ Devoxx 2014WildFly BOF and V9 update @ Devoxx 2014
WildFly BOF and V9 update @ Devoxx 2014Dimitris Andreadis
4.8K vues16 diapositives
WildFly & WildFly Swarm par
WildFly & WildFly SwarmWildFly & WildFly Swarm
WildFly & WildFly SwarmDimitris Andreadis
3.1K vues54 diapositives
Devoxx 2013, WildFly BOF par
Devoxx 2013, WildFly BOFDevoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOFDimitris Andreadis
2K vues22 diapositives
jboss.org-jboss.com par
jboss.org-jboss.comjboss.org-jboss.com
jboss.org-jboss.comDimitris Andreadis
854 vues36 diapositives

Contenu connexe

Tendances

JBoss at Work: Using JBoss AS 6 par
JBoss at Work: Using JBoss AS 6JBoss at Work: Using JBoss AS 6
JBoss at Work: Using JBoss AS 6Saltmarch Media
2.3K vues65 diapositives
Introduction to ClustrixDB par
Introduction to ClustrixDBIntroduction to ClustrixDB
Introduction to ClustrixDBI Goo Lee
595 vues48 diapositives
Windows Server 2008 for Developers - Part 2 par
Windows Server 2008 for Developers - Part 2Windows Server 2008 for Developers - Part 2
Windows Server 2008 for Developers - Part 2ukdpe
1K vues61 diapositives
Consistency between Engine and Binlog under Reduced Durability par
Consistency between Engine and Binlog under Reduced DurabilityConsistency between Engine and Binlog under Reduced Durability
Consistency between Engine and Binlog under Reduced DurabilityYoshinori Matsunobu
2.4K vues18 diapositives
Running your Java EE applications in the Cloud par
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the CloudArun Gupta
600 vues20 diapositives
Introduction to Wildfly 8 - Marchioni par
Introduction to Wildfly 8 -  MarchioniIntroduction to Wildfly 8 -  Marchioni
Introduction to Wildfly 8 - MarchioniCodemotion
3K vues25 diapositives

Tendances(20)

Introduction to ClustrixDB par I Goo Lee
Introduction to ClustrixDBIntroduction to ClustrixDB
Introduction to ClustrixDB
I Goo Lee595 vues
Windows Server 2008 for Developers - Part 2 par ukdpe
Windows Server 2008 for Developers - Part 2Windows Server 2008 for Developers - Part 2
Windows Server 2008 for Developers - Part 2
ukdpe1K vues
Consistency between Engine and Binlog under Reduced Durability par Yoshinori Matsunobu
Consistency between Engine and Binlog under Reduced DurabilityConsistency between Engine and Binlog under Reduced Durability
Consistency between Engine and Binlog under Reduced Durability
Running your Java EE applications in the Cloud par Arun Gupta
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the Cloud
Arun Gupta600 vues
Introduction to Wildfly 8 - Marchioni par Codemotion
Introduction to Wildfly 8 -  MarchioniIntroduction to Wildfly 8 -  Marchioni
Introduction to Wildfly 8 - Marchioni
Codemotion3K vues
My sql 56_roadmap_april2012_zht2 par Ivan Tu
My sql 56_roadmap_april2012_zht2My sql 56_roadmap_april2012_zht2
My sql 56_roadmap_april2012_zht2
Ivan Tu607 vues
JBoss started guide par franarayah
JBoss started guideJBoss started guide
JBoss started guide
franarayah5.1K vues
Introduction to Role Based Administration in WildFly 8 par Dimitris Andreadis
Introduction to Role Based Administration in WildFly 8Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8
Dimitris Andreadis2.8K vues
WebLogic in Practice: SSL Configuration par Simon Haslam
WebLogic in Practice: SSL ConfigurationWebLogic in Practice: SSL Configuration
WebLogic in Practice: SSL Configuration
Simon Haslam12.6K vues
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011 par Arun Gupta
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
Arun Gupta1.5K vues
MySQL 5.7 milestone par Louis liu
MySQL 5.7 milestoneMySQL 5.7 milestone
MySQL 5.7 milestone
Louis liu1.7K vues
Jboss App Server par acosdt
Jboss App ServerJboss App Server
Jboss App Server
acosdt1.3K vues
Java Standard Edition 5 Performance par white paper
Java Standard Edition 5 PerformanceJava Standard Edition 5 Performance
Java Standard Edition 5 Performance
white paper854 vues
2017.06.19 Paul Woodward - ExploreVM VMware 101 par Paul Woodward Jr
2017.06.19   Paul Woodward - ExploreVM VMware 1012017.06.19   Paul Woodward - ExploreVM VMware 101
2017.06.19 Paul Woodward - ExploreVM VMware 101
Paul Woodward Jr438 vues

Similaire à GlassFish Update and Directions - Karim Mazouni - November 2007

GlassFish and JavaEE, Today and Future par
GlassFish and JavaEE, Today and FutureGlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and FutureAlexis Moussine-Pouchkine
1.7K vues26 diapositives
WildFly AppServer - State of the Union par
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the UnionDimitris Andreadis
5K vues63 diapositives
Powering the Next Generation Services with Java Platform - Spark IT 2010 par
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Arun Gupta
3.4K vues48 diapositives
Server Day 2009: GlassFish 3 by Alexis Moussine-Pouchkine par
Server Day 2009: GlassFish 3 by Alexis Moussine-PouchkineServer Day 2009: GlassFish 3 by Alexis Moussine-Pouchkine
Server Day 2009: GlassFish 3 by Alexis Moussine-PouchkineJUG Genova
547 vues21 diapositives
GlassFish Community and future larochelle par
GlassFish Community and future larochelleGlassFish Community and future larochelle
GlassFish Community and future larochelleAlexis Moussine-Pouchkine
780 vues34 diapositives
Andrei Niculae - glassfish - 24mai2011 par
Andrei Niculae - glassfish - 24mai2011Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011Agora Group
371 vues31 diapositives

Similaire à GlassFish Update and Directions - Karim Mazouni - November 2007(20)

Powering the Next Generation Services with Java Platform - Spark IT 2010 par Arun Gupta
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
Arun Gupta3.4K vues
Server Day 2009: GlassFish 3 by Alexis Moussine-Pouchkine par JUG Genova
Server Day 2009: GlassFish 3 by Alexis Moussine-PouchkineServer Day 2009: GlassFish 3 by Alexis Moussine-Pouchkine
Server Day 2009: GlassFish 3 by Alexis Moussine-Pouchkine
JUG Genova547 vues
Andrei Niculae - glassfish - 24mai2011 par Agora Group
Andrei Niculae - glassfish - 24mai2011Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011
Agora Group371 vues
Java 7 and 8, what does it mean for you par Dmitry Buzdin
Java 7 and 8, what does it mean for youJava 7 and 8, what does it mean for you
Java 7 and 8, what does it mean for you
Dmitry Buzdin1.1K vues
Scaling a MeteorJS SaaS app on AWS par Brett McLain
Scaling a MeteorJS SaaS app on AWSScaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWS
Brett McLain1.8K vues
Introduction of Java GC Tuning and Java Java Mission Control par Leon Chen
Introduction of Java GC Tuning and Java Java Mission ControlIntroduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission Control
Leon Chen20.5K vues
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ... par Arun Gupta
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Arun Gupta1.8K vues
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 par Skills Matter
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Skills Matter659 vues
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010 par Arun Gupta
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Arun Gupta990 vues
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015. par Dimitris Andreadis
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
Dimitris Andreadis5.6K vues
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti par Software Guru
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para TiGustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
Software Guru705 vues
Java EE 6 & GlassFish = Less Code + More Power at CEJUG par Arun Gupta
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Arun Gupta953 vues
Maginatics Cloud Storage Platform - MCSP 3.0 Technical Highlights par Maginatics
Maginatics Cloud Storage Platform - MCSP 3.0 Technical HighlightsMaginatics Cloud Storage Platform - MCSP 3.0 Technical Highlights
Maginatics Cloud Storage Platform - MCSP 3.0 Technical Highlights
Maginatics1.7K vues

Plus de JUG Lausanne

Introduction aux algorithmes génétiques par
Introduction aux algorithmes génétiquesIntroduction aux algorithmes génétiques
Introduction aux algorithmes génétiquesJUG Lausanne
180 vues21 diapositives
Développer un moteur d'exécution symbolique en partant de rien par
Développer un moteur d'exécution symbolique en partant de rienDévelopper un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rienJUG Lausanne
593 vues51 diapositives
Reverse engineering Java et contournement du mécanisme de paiement inapp Android par
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidReverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidJUG Lausanne
578 vues24 diapositives
Exemple d'IOT et ML avec Android, Cassandra et Spark par
Exemple d'IOT et ML avec Android, Cassandra et SparkExemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et SparkJUG Lausanne
339 vues76 diapositives
Play! chez Zaptravel - Nicolas Martignole - December 2012 par
Play! chez Zaptravel - Nicolas Martignole - December 2012Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012JUG Lausanne
1.2K vues63 diapositives
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012 par
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012JUG Lausanne
882 vues51 diapositives

Plus de JUG Lausanne(20)

Introduction aux algorithmes génétiques par JUG Lausanne
Introduction aux algorithmes génétiquesIntroduction aux algorithmes génétiques
Introduction aux algorithmes génétiques
JUG Lausanne180 vues
Développer un moteur d'exécution symbolique en partant de rien par JUG Lausanne
Développer un moteur d'exécution symbolique en partant de rienDévelopper un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rien
JUG Lausanne593 vues
Reverse engineering Java et contournement du mécanisme de paiement inapp Android par JUG Lausanne
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidReverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
JUG Lausanne578 vues
Exemple d'IOT et ML avec Android, Cassandra et Spark par JUG Lausanne
Exemple d'IOT et ML avec Android, Cassandra et SparkExemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et Spark
JUG Lausanne339 vues
Play! chez Zaptravel - Nicolas Martignole - December 2012 par JUG Lausanne
Play! chez Zaptravel - Nicolas Martignole - December 2012Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012
JUG Lausanne1.2K vues
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012 par JUG Lausanne
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
JUG Lausanne882 vues
CloudBees - Sacha Labourey - May 2011 par JUG Lausanne
CloudBees - Sacha Labourey - May 2011CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011
JUG Lausanne825 vues
Apache Camel - Stéphane Kay - April 2011 par JUG Lausanne
Apache Camel - Stéphane Kay - April 2011Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011
JUG Lausanne4.6K vues
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar... par JUG Lausanne
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
JUG Lausanne980 vues
OpenDS - Ludovic Poitou - December 2010 par JUG Lausanne
OpenDS - Ludovic Poitou - December 2010OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010
JUG Lausanne877 vues
Spring Batch - Julien Jakubowski - November 2010 par JUG Lausanne
Spring Batch - Julien Jakubowski - November 2010Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010
JUG Lausanne1K vues
Infinispan - Galder Zamarreno - October 2010 par JUG Lausanne
Infinispan - Galder Zamarreno - October 2010Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010
JUG Lausanne857 vues
No Sql - Olivier Mallassi - September 2010 par JUG Lausanne
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
JUG Lausanne965 vues
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010 par JUG Lausanne
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
JUG Lausanne1K vues
Introduction à Scala - Michel Schinz - January 2010 par JUG Lausanne
Introduction à Scala - Michel Schinz - January 2010Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010
JUG Lausanne1.4K vues
Introduction Groovy / Grails - Cyril Picat - December 2009 par JUG Lausanne
Introduction Groovy / Grails - Cyril Picat - December 2009Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009
JUG Lausanne1.3K vues
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009 par JUG Lausanne
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
JUG Lausanne3.2K vues
Sonar - Freddy Mallet - April 2009 par JUG Lausanne
Sonar - Freddy Mallet - April 2009Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009
JUG Lausanne669 vues
Maven2 - Philippe Kernevez - March 2009 par JUG Lausanne
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009
JUG Lausanne492 vues
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009 par JUG Lausanne
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
JUG Lausanne740 vues

Dernier

Scaling Knowledge Graph Architectures with AI par
Scaling Knowledge Graph Architectures with AIScaling Knowledge Graph Architectures with AI
Scaling Knowledge Graph Architectures with AIEnterprise Knowledge
53 vues15 diapositives
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates par
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesShapeBlue
119 vues15 diapositives
Network Source of Truth and Infrastructure as Code revisited par
Network Source of Truth and Infrastructure as Code revisitedNetwork Source of Truth and Infrastructure as Code revisited
Network Source of Truth and Infrastructure as Code revisitedNetwork Automation Forum
42 vues45 diapositives
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... par
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...ShapeBlue
48 vues17 diapositives
Kyo - Functional Scala 2023.pdf par
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfFlavio W. Brasil
434 vues92 diapositives
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... par
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...ShapeBlue
65 vues28 diapositives

Dernier(20)

Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates par ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue119 vues
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... par ShapeBlue
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
ShapeBlue48 vues
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... par ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue65 vues
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive par Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... par ShapeBlue
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
ShapeBlue77 vues
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue par ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue131 vues
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue par ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue46 vues
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... par ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue74 vues
HTTP headers that make your website go faster - devs.gent November 2023 par Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn28 vues
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... par James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson133 vues
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue par ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue85 vues
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... par ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue46 vues
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... par ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue57 vues
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... par Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker50 vues
Why and How CloudStack at weSystems - Stephan Bienek - weSystems par ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue111 vues
NTGapps NTG LowCode Platform par Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu141 vues

GlassFish Update and Directions - Karim Mazouni - November 2007

  • 1. GlassFish Update and Directions Sun Microsystems, Inc. Material under Creative Commons Attribution-ShareAlike 2.5 License http://creativecommons.org/licenses/by-sa/2.5/ 1
  • 2. Java EE 5.0 = (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 • Configure by exception > Reasonable defaults wherever possible • Resource Injection • New APIs and frameworks > EJB3, JAXB 2, JAX-WS, JSF, ...
  • 4. “Various Interface21ers, including Costin and Juergen, have taken a look at GlassFish and given it the thumbs up.” Rod Johnson, Spring Framework Creator, Feb. 2007 [1] [1]: blog.interface21.com, Feb. 2007
  • 5. “... we were seriously stressed when IBM declared war with Geronimo and then HP got in the game against us too. Red Hat and JOnAS didn't scare us at all (really – not at all), nor did we worry about Sun's foray into the market. Oddly enough, of that group only Sun has managed to mount serious competition to Jboss.” Marc Fleury, JBoss founder, August 2007 [2] [2]: news.com, August 2007
  • 6. “Among major vendors, Sun Microsystems Inc., has dramatically improved its standing in this year's evaluation of applications servers for service-oriented architecture (SOA) and business process management (BPM)” Forrester Research, August 2007 [3] [3]: http://www.forrester.com/Research/Document/0,,37138,00.html, August 2007
  • 7. What Is Project GlassFish? • A Java EE 5 compliant Application Server • Enterprise Quality > Sun Java System Application Server 9.x > Use it in production! • Open Source > CDDL (like OpenSolaris, NetBeans) > GPLv2 (like Java and NetBeans) > Use it in production! • Community at http://glassfish.java.net > Sources, bug DBs, discussions at Java.Net > Roadmaps, Architecture Documents
  • 8. GlassFish Adoption • 3.5 million downloads since July '06 • Dozens of external committers • Over 7,000 members • Evans data survey of Linux users puts GlassFish at #3 behind JBoss and “other” (Tomcat) > JBoss and IBM fell 5% while GlassFish / Sun increased Unique Admin "Pings" 130000 120000 110000 100000 90000 80000 70000 60000 50000 40000 30000 20000 10000 0 Feb 07 Mar 07 Apr 07 May 07 Jun 07 Jul 07
  • 10. Timeline of Project GlassFish Tomcat Jasper Catalina JSTL Struts Crimson XSLTC Xalan Xerces JAXB JAX-RPC JSF GlassFish Launch J1'05 June 2005 V1 V2 V3 V1UR1 J1'06 May 2006 Sept. 2007 2008/2009 (you are here)
  • 11. Releases in Project GlassFish • GlassFish v1 > Victory! Java EE 5 Compliance! > December 2006 : UR1 - bug fixes > Growing # of Deployments • GlassFish v2 > > > > New WS stack, performance, startup time Cluster management, load balancing, failover Some scripting support Community, Transparency, Adoption • GlassFish v3 > Modularized kernel (HK2) > The Web 2.0 engine
  • 12. GlassFish v2 SJS Application Server 9.1 • Metro Web Services Stack > Performance, Microsoft interoperability • Clustering, Load-Balancing, HA > Advanced Management • JBI support (OpenESB 2.0) • Better user experience > > > > > Single, smaller, download Multiple User Profiles Better startup time Update Center New admin console: JSF, AJAX, Charts • World Record Performance ai Av le! lab
  • 13. GlassFish v2: Grizzly & JSP Containers • JSP Container > Can use JSR-199 (Javac APIs in Java 6) > 10x performance improvement • Grizzly > > > > > > > Improved over GlassFish v1 Very Flexible and Customizable Non-blocking SSL Support Quality of Service constraints Scalable Async Req Processing (ARP) Supports Comet (long-term HTTP connections) Used in Jetty, etc... • Hosting features > Alternate docroots, webcontainer dynamically reconfigurable, ..
  • 14. Management Features • Centralized, secure, remote access > > > > • • • • Accessible as GUI, CLI, IDEs, Java-based programs Also available via provided ANT tasks JMX & Application Server Management eXtensions, AMX Can be monitored through jConsole and others Per-service monitoring levels Call Flow Self Management Resource consumption management
  • 15. Metro JAX-WS, WSIT, and JAXB implementations • Dynamic JAX-WS Runtimes • JAXB 2.0 fully support XML Schema > A lot of reuse of GlassFish's JAXB implementation • GlassFish JAX-WS 2.x > WS Separation of Transport and Encoding > HTTP, JMS, SMTP, TCP/IP > MTOM, Fast Infoset (binary), Textual, Others • WSIT (Project Tango) > Microsoft Interoperability and Quality of Service > Same (old) JAX-WS programing model • Overall Great Performance (see next slide)
  • 17. WSIT (Project Tango) • WSIT (Web Services Interoperability technology) > Extension to JAX-WS 2.x, part of GlassFish v2 > Implements WS-Addressing, WS-Security, WS-Secure Conversation, WS-ReliableMessaging, WS-MetaData Exchange, MTOM/XOP, WS-Policy, and more • POJO programing model from JAX-WS 2.x > Annotations, Asynchronous Web Services, ... > No API, platform is responsible for providing appropriate QoS > Alternate Transports – JMS, SMTP, FTP, TCP, ... • Common work with Microsoft (.Net 3's WCF) > Regular tests against various stacks See also : http://wiki.apache.org/ws/StackComparison
  • 18. Top Link Essentials / JPA • JPA now a separate JSR > 1.0 very well accepted > Does not require a container • Oracle Contribution to GlassFish > Fully JPA-compliant and open source • Very Active Community > Oracle, Sun, TmaxSoft, independents > Mail: persistence@glassfish.dev.java.net • Pluggable (per spec) > In GlassFish, JEUS, JOnAS, Tomcat, Geronimo, JBoss, Oracle > Converse is true also: Hibernate & OpenJPA run on GlassFish
  • 19. JBI – Java Business Integration • OpenESB 2.0 implementation > Included in GlassFish v2 > Integrated as a life-cycle module > Integrated admin tools (Web and CLI) • Many components > Binding Components: HTTP, File, FTP, JMS, TCP, CICS, HL7, ... > Service Engines: BPEL, XSLT, ETL, SQL, Scripting, Worklist, ... > https://open-esb.dev.java.net/Components.html • Tools support > NetBeans SOA 6.0 Beta • Possible to plug ServiceMix into GlassFish v2 > Support wider JBI story
  • 20. Clustering Architecture HTTP(S) Custom Resources RMI/IIOP JMS Resource Adapters AS AS Node A AS AS Node B AS AS AS Clustered Instances Management Message routing/failover/load balancing Node N Applications and Config HA Application State Repository Databases
  • 21. Clustering in GlassFish v2 JMX API JMX API asadmin> Domain Administration Server (DAS) Node Agent Node 1 Applications Node Agent Resources Configuration JMX API Node 2 Administration Node Java EE Server Instance JMX = Java Management Extensions
  • 22. Dynamic Clustering and In-Memory Replication • GMS with Project Shoal > http://shoal.dev.java.net > Dynamic clusters implemented with JXTA by default > Extreme ease of use in cluster setup • Replication > What? > HTTP session state > Stateful EJB session state > Single Sign-On state > Container state (timers, ...) > How? > Default is In-Memory replication with JXTA > Can still use HADB for 99.999% uptime (higher perf degradation)
  • 23. Memory Replication Typical cluster topology Example: Maximize Availability on 4 node cluster on 2 machines Instance 1 Instance 2 Instance 3 Instance 4 Machine 1 Machine 2
  • 24. Memory Replication Problem domain and scope • Provide Application High Availability for : > HTTP session state > Single Sign On state > Stateful EJB Session bean state • Application server instances need : > > > > > Automatic Transaction recovery EJB Timer migrations Cluster health In-memory replication module IIOP failover load-balancer
  • 25. Memory Replication Typical cluster topology Instance 1 Instance 2 Instance 3 Instance 4
  • 26. Memory Replication Typical cluster topology Example: Maximize Availability on 4 node cluster on 2 machines Instance 1 Instance 2 Instance 3 Instance 4 Machine 1 Machine 2
  • 27. Memory Replication Typical failover scenario • Location transparency > fail over request can go to any instance in the cluster • 2 Cases: Failover request lands on > Case 1: instance with replica data: ownership taken, processing continues > Case 2: instance without replica data > instance sends broadcast request > instance with replica data transfers data back to requester and deletes its copy after an acknowledge > JXTA makes this easy (propagation communication channels are scoped within the “group” (i.e. the cluster members)
  • 28. HTTP Session State Failover Servlet (HTTP Session) replicas W S Load Balancer Servlet (HTTP Session) replicas instance 1 instance 2 Servlet (HTTP Session) Servlet (HTTP Session) replicas replicas instance 4 Cluster instance 3
  • 29. HTTP Session State Failover Servlet (HTTP Session) replicas W S Load Balancer Case 1: Instance has replica data Servlet (HTTP Session) replicas instance 1 instance 2 Servlet (HTTP Session) Servlet (HTTP Session) replicas replicas instance 4 Cluster instance 3
  • 30. HTTP Session State Failover Servlet (HTTP Session) replicas W S Load Balancer Case 2: Instance does not have replica data Broadcast… Servlet (HTTP Session) replicas instance 1 instance 2 Servlet (HTTP Session) Servlet (HTTP Session) replicas replicas instance 4 Cluster instance 3
  • 31. HTTP Session State Failover Servlet (HTTP Session) replicas W S Load Balancer Case 2: Instance does not have replica data and ownership transfer… Servlet (HTTP Session) replicas instance 1 instance 2 Servlet (HTTP Session) Servlet (HTTP Session) replicas replicas instance 4 Cluster instance 3
  • 32. Cluster Dynamic Shape Change Servlet (HTTP Session) replicas W S Load Balancer Shape Change instance1 fails Servlet (HTTP Session) replicas instance 1 instance 2 Servlet (HTTP Session) Servlet (HTTP Session) replicas replicas instance 4 Cluster instance 3
  • 33. Cluster Dynamic Shape Change Servlet (HTTP Session) X Servlet (HTTP Session) replicas W S Load Balancer Shape Change instance1 fails Instance2 and 4 see the failure replicas instance 1 instance 2 X Servlet (HTTP Session) Servlet (HTTP Session) replicas replicas instance 4 Cluster instance 3
  • 34. Cluster Dynamic Shape Change Servlet (HTTP Session) replicas W S Load Balancer Shape Change instance1 fails Instance2 and 4 see the failure Instance4 selects Instance2 as new partner—new connections established Servlet (HTTP Session) replicas instance 1 instance 2 Servlet (HTTP Session) Servlet (HTTP Session) replicas replicas instance 4 Cluster instance 3 the reverse happens when an instance joins or re-joins the cluster
  • 35. Memory Replication Configuration Our hope was to say… • “This page left intentionally blank” ;-) > Meaning “zero configuration required” • We came close to that goal…
  • 36. Memory Replication Configuration Out of the box… • Create a domain > Use the ‘cluster’ profile – defaults for replication are handled > Enables GMS—heartbeat enabled > persistence-type = "replicated" • Create a cluster and instances • Deploy your application with availability-enabled=true • That’s it
  • 37. Memory Replication Configuration Making your app distributable • <distributable/> element > Required in web.xml > Indicates you believe your application is ready to run in a cluster • Serializable objects required > HTTP Session state > EJB technology Stateful Session Bean state
  • 38. Memory Replication Performance Cost of replication Hits/Sec ~17-25% throughput degradation 1000 900 800 700 600 No replication replication HADB 500 400 300 200 100 0 2K session 4K session 8K session
  • 39. Performance • SPECjAppServer Benchmark SPECjAppServer 2004 Results 900 800 > July 2007: #1 score on T2000 > 883.66 JOPS@Standard for GlassFish v2 > 10% faster than BEA WebLogic > 30% faster than IBM WebSphere 6.1 > July 2007: Best $/perf. on full Open Source stack > 813.73 JOPS@Standard > GlassFish v2, OpenSolaris, Java 6, PostgreSQL > 3x the price/perf vs. Oracle on HP score 700 600 ? 500 400 300 200 100 0 Sun BEA IBM JBoss • Performance: Startup Speed > Start as little as possible in v2 (see also v3) You no longer need to chose between Open Source and performance
  • 40. (Some) Distributions & Contributors Tools Java EE RI & SDK NetBeans 5.5, 6.0 Communities NetBeans™ IDE Eclipse Plugin Distributions Sun Java System AS 9.x JBoss 5 Derby Project GlassFish TmaxSoft JEUS 6 Oracle oc4j BEA WebLogic 10 MQ Portal Server Open ESB SailFin Ericsson Maven Rep Users and Other Groups
  • 41. Tools Support • NetBeans 5.5.1, 6.0 • Best integration with : > > > > > > full Java EE 5 support resource creation remote debug incremental deployment profiling wizards, etc... • Additional features (SOA, UML, jRubyOnRails, ...) • GlassFish (v1, v2, v3) plugin for Eclipse 3.3 (Europa) • Genuitec's MyEclipse offers greater integration between IDE and GlassFish
  • 42. Recent GlassFish Partners Open for Business! (Jetty)
  • 43. Frameworks and Applications OSWorkFlow Quercus P HP OSCache Integration ORB Apache Httpd DOJO Facele ts Shale Project Tango CJ UG - Cl as sif ie ds BIR T MyFaces ADF Sit eMesh JSPwiki SEAM MC4J jB PM WebDAV Tapest ry AJ AX Strin gBeans P ortal BlogTrader Wicket Equinox Java WSDP WebSphere M Q EHCache Dalma
  • 44. GlassFish Adoption Stories http://blogs.sun.com/stories • PeerFlix > GlassFish v1 on Solaris 10 / x2100 > MySQL, Kodo JDO • Wotif.com > Large # hits, ehCache / Horizontal Scaling > Spring and Hibernate > 3rd largest commercial site in Australia • Harvard University > On-line archive for sharing data within and across universities > Lucene, PostgreSQL, Apache Shale • More (small and large) > Help us collect these > stories@sun.com
  • 45. GlassFish v3 • Small & Fast > Less than 1.0 sec startup • Totally Modular, kernel is <100K > Can run in a phone or a desktop application > Can be embedded in-process • An ideal Container for Web 2.0 > Java Web Applications, PHP, jRuby/RoR, ... > Support for upcoming Java EE 6 profiles • A container that can do Java EE and more • Screencast and preview code available today > http://hk2.dev.java.net > http://blogs.sun.com/dochez/entry/first_glassfish_v3_screencast1 • Still early stages... working on schedule
  • 46. AJAX and Scripting Activities • AJAX > jMaki - http://ajax.dev.java.net > Encapsulates very easily AJAX widgets (JSP taglib) > DynaFaces - http://jsf-extensions.dev.java.net > AJAX and full-featured JSF components > WoodStock - http://woodstock.dev.java.net > Repository of AJAXyfied JSF components > JSF Templating http://jsftemplating.dev.java.net/ > Templating for pages and components • Phobos - http://phobos.dev.java.net > Scripting on the Server • Comet and Grizzly - http://grizzly.dev.java.net > Long-term HTTP connections for push content
  • 47. FOSS Middleware Components • • • • • • • • • • • • GlassFish – AppServer, JavaPersistence, Web Tier OpenPortal – Container, WSRP, Portlet, Portlet Rep OpenESB, OpenJBI – JBI, BPEL OpenSSO – Access & Federation Manager OpenDS – Directory Server Jersey – JAX-RS for RESTful Web Services Hudson – Continuous build software Phobos, jMaki... – Web 2.0/AJAX Open MQ – MessageQueue WoodStock – JSF Components Apache Derby – JavaDB Social Software – Apache Roller, Slynkr
  • 48. The SailFin Project • Ericsson SIP Servlet Contribution is available at: > http://sailfin.dev.java.net • Visit, Download, Try, Join > Milestone 1 available • Not just for telco operators! > Bridging the HTTP and SIP protocols • Built on GlassFish v2 and expected first half of 2008
  • 49. OpenDS opends.dev.java.net • Next generation Directory Services > Designed to meet the needs of the Telco market > High-Performance, highly extensible and VERY large deployments • Brand-new Code Base > Java-based, Very High Performance Goals > Not Based on DSEE (2B-entry deployments, market leader) • Full Fledged > Full LDAPv3, replicas > Virtual Directory, Proxies, Caching, etc... • Schedule > v1.0 before year's end
  • 50. OpenESB/JBI Status open-esb.dev.java.net • Based on JBI (Java Business Integration) Standard • Already Released > JBI Implementation > BPEL > Many binding components • More Components to be Released • Integrated within GlassFish V2 • Distributed in > NetBeans SOA Pack > Future of Sun Composite Application Platform Suite (CAPS)
  • 51. OpenSSO Status opensso.dev.java.net • Access Manager, Single Sign-On, Federation > SAML, XACML, Liberty Standards • Already Released > Access Manager > Many Policy Agents > Federation Manager • To be Released > More Policy Agents • Distributed in > Sun Java System Access Manager & Federation Manager
  • 52. OpenPortal Status portal.dev.java.net • Enterprise-class Portal Server > Basis for the commercial product from Sun > Next release is Sun Java System Portal Server 7.2 • Sub-projects portlet-container.dev.java.net (JSR168 / JSR 286) portlet-repository.dev.java.net wsrp.dev.java.net (WSRP 1.0, 2.0) portalpack.netbeans.org / eclipse-portalpack.dev.java.net saw.dev.java.net (Worflow/SOA) mirage.dev.java.net (CMS) jsfportletbridge.dev.java.net • Get more information from http://blogs.sun.com/portal > > > > > > >
  • 53. JAX-RS & Jersey http://jsr311.dev.java.net • POJO-based RESTful Web Services > > > > JSR 311, and also part of Java EE 6 (JSR 316) High-level declarative programming model Flexible typing, runtime takes care of common conversions Pluggable support for types, containers, and resolvers • Reference Implementation > http://jersey.dev.java.net > Available to GlassFish via update center > Deployment options: JAX-WS endpoint (per JSR), Grizzly, Java 6 lightweight HTTPd • Roadmap > JSR and Reference Implementation final by 2H2008
  • 55. Sun Microsystems, Inc. Material under Creative Commons Attribution-ShareAlike 2.5 License http://creativecommons.org/licenses/by-sa/2.5/ 55