Monday 30 March 2009

Some notes from Sun GlassFish portfolio tech talk, London

Sun GlassFish and GlassFish portfolio - Sun talk London, Regis House 25-03-2009

Some notes that I managed to take whilst at the talk.

www.glassfish.org

Claimed to be the fastest Java EE AS

V2.0 -> reference implementation for Java EE 5
V3.x -> reference implementation for Java EE 6

Java EE standard 10 years old

Metro -> Interop between MS and Java WS.* standards

GlassFish is Open Source under CDDL and GPL 2 license

java.sun.com/javaee

Transparent development

Organic growth into middleware areas

First appearance 2005
V2 in 2007
Current v2.1 in Feb 2009

www.beta.glassfish.java.net:81/maps

6-700 downloads per month, 8 million in the last year / ~28k per day

GlassFish portfolio is a set of related technologies including the AS
  • Enterprise server (including support for SNMP)
  • Web space server (joined with Life Ray - social networking & portal technologies)
  • Web sack (a complete (L)(S)(?)AMP stack)
  • GlassFish ESB (SOA platform) for integration, connectors, adaptors

Java EE + Ruby on Rails, PHP and other frameworks

(note - what is SFA?)

Enterprise version adds:
  • Performance advisor, performance monitor, SNMP, self management and alert manager
  • Update center

Example / reference sites:
  • wotif.com - Glassfish & OpenMQ
  • www.travelmuse.com GlassFish, message queue and mysql (started by using community edition)
  • North american Nationwide Health Information Network - connect (NHIN- Connect)
  • OpenESB
  • ESB.SOA framework
  • Facebook - large mysql based system ~70million users

GlassFish has same levels and structure in terms of support and licensing as MySQL


Web Services: WS.*
  • Metro is core in GlassFish AS
  • Project Metro Web services stack provides high level WS stack with security, reliability etc -> .NET 3 interoperability (incorporates project tango - MS .NET interop)

REST

  • JAX-RS JSR-311 Java API for RESTFul Web Services
  • Annotation based server side API
  • HTTP Centric
  • Server Side only
  • Servlet or SE deployment

Jersey project provides implementation for JSR-311

Performance:

Similar / faster than Weblogic and Websphere


GlassFish V3:
  • OSGi: Apache Felix as default (origins in JSR-8)
  • 1 sec startup
  • 21Mb download
  • admin and update tool downloaded on demand

Add-ons, modules available from update center:
  • EJB 3.1 (preview
  • jRuby on Rails (new WAR packaging required)
  • Grails (also on GFv2)
  • Jersey and Metro (Web services)
  • jMaki (AJAX)

Tools:
  • NetBeans and Eclipse
  • Embedded GlassFish API

MicroKernel approach - modularity - base App server + on demand module loading, extensible and customizable

("Eclipse Con" -> announces GlassFiish bundle available)

Db connection pooling and connection (connector) pooling (JCA)

V3 Prelude
  • available from http://glassfish.org -> using modular (microkernel) v3 ideas with existing EE5 technologies -> this version is supported!
  • v3 prelude is Java EE Web layer only (i.e. servlets, JSPs etc but no Enterprise beans etc)

Compile / Deploy on Change support, dynamic debug loop (netbeans & eclipse), incremental compile of all Java EE artifacts. Auto-deply of all Java EE and static artifacts

Support for: JRuby, Ruby, Groovy, Grails, Python, jython, django, jmaki, JavaScript phobos

Ruby / jRuby and rails can be run on 2.1 today (by packaging up dependancies), on v3 available as OSGi jRuby container


PHP
  • Quercis (Caucho) opensource GPL php 5 implementation in Java
  • War Packaging
  • Java Bridge

V2 -> ee 5
V3 -> prelude with EE5 support
V3 -> early access is EE6 spec (but not supported)


GF Web Stack:
  • Apache HTTPd
  • Sun web server 7 (most scalable web server - now open sourced!) optimized for multi-core CMT (chip-based Multithreaded) systems - 2x scaling vs. Apache & Tomcat
  • lightpd
  • memcached
  • mod_jk, perl, ruby, PHP Ruby, Python, Squid, Tomcat

Current GF web stack is 1.4 (Python 2.5.2, Squid 2.6, Tomcat 5.5.27, memcached 1.2.5, mysql 5.0.67)


GF ESB:
  • JSR 208 JBI (Java business Integration)
  • Plug-able integration into backbone
  • "Metacontainer" - add new containers within the container, extend the AS
  • BPEL, WS-*, XSLT, FTP, LDAP, HTTP, DB service and binding
  • Based on OpnESB -> http://openesb.org / community open-esb.dev.java.net/Components.html
  • Maybe engines and connectors to things like Corba etc

What's next -> http://fuji.dev.java.net -> OpenESB V3 - next gen of SOA

(JBI and SCA stated as "complimentary, not conflicting")


GF: Web Space server (project web synergy)
  • Portlet spec JSR-268 and more (social networking, communities)
  • OpenSSO, identify mechanisms
  • Compelling web UIs

GF enterprise manager:
  • Performance advisor
  • Alerts
  • JDBC pool management - automatically tunes JDBC connection pool to optimize performance etc

Sailfin (Ericson contribution) telco, SIP, VOIP, Instant messaging

dtrace etends into Apache and PHP

Revamped PetStore 4 part tutorial - developer.sun.com

OpenSSO -> new concept "express builds" - milestone interim builds from Open Source community in between main supported releases

WhitePapers:

New White-papers on GlassFish portfolio launch:
  • Comparison with Tomcat
  • Performance optimization
  • GF with identify and MySQL

Training available in Camberly, BSG in London etc

www.javapassion.com

Books:
  • GlassFish
  • Database-driven application development
  • Others available (I didn't get time to note them down)

blogs.sun.com/theaquarium -> god launch pad for developer information

blogs.sun.com/stories -> gives examples and real usage info

Migration tools:

migrate2glassfish.dev.java.net/blogs/blogs.html

built in tools to detect and advise on code usage (for EE standards and vendor specific code dependancies)

--

Examples:

JavaFX mobile - answer to J2ME shortcomings

www.javafx.com -> many tutorials and demos

GlassFish profiles - Developer mode (no clustering etc) but fast start up and change deployment


Clustering:

DAS - Domain Administration server looks after a cluster, deploy to the domain administration server and it deploys to the cluster nodes.

Session replication between cluster nodes, zero down time when switching between nodes

install with -cluster switch

Cluster elements run "node-agents" to talk to the DAS

Extra sections in the admin console -> shows cluster nodes

GlassFish performance monitor - enterprise only (TBC)?

V3 Prelude - web tier only (web apps) but fully functional


Presentation has now been published here: http://uk.sun.com/sunnews/events/2009/mar/glassfish/pdf/UK-GlassFish-Portfolio-Launch-mar09.pdf


.

1 comment:

Bret Clement said...

Thanks for listing specific GF web stack info (pythod 2,5,2, quid 2,6 tomcat 5.5.27, memcached 1.2.5 mysql 5.0.67).

Useful info.

FYI, folks at Gear6 working to add hybrid cache architectures that incorporate both high-speed DRAM and large amounts of economical flash memory to memcached. Very large amounts of memcache memory can be deployed per unit of rack space, providing DRAM cache performance without increasing latency.