GlassFish Application Server         An Introduction               By         Jumping Bean            21 May 2012
Who Am I?●   Mark Clarke – Java Developer●   Working for Jumping Bean, an open source    solutions integration company●   ...
Jozi JUG
Jozi JUG●   Meet once a month in Johannesburg,●   Talk●   Beer●   Pizza●   All FREE!●   Where to find us?       –    Meetu...
GlassFish History●   6 June 2005 – Glassfish launched by SUN       –   based on Sun Java System Application            Ser...
GlassFish History●   10 Dec 2009 – Version 3 Java EE6 RI.    Introduced OSGI, fast startup & redeploy on    change.       ...
Recent Releases●   Version 3.1 shipped Feb 28th 2011       –   ssh-based provisioning, centralised admin,             clus...
Future Releases●   Version 4.0 – Java EE7 – PaaS       –   Some hints in V3
GlassFish Versions●   Oracle Glassfish Server       –   Oracle supported version,       –   Based on Open Source Edition +...
GlassFish Versions   * from blogs.oracle.com
GlassFish Versions●   Certified interoperability with Oracle Fusion    Middleware products:        –   Oracle Internet Dir...
GlassFish Adoption* from maps.glassfish,org/server
GlassFish Adoption* from maps.glassfish,org/server
GlassFish Adoption●   World wide - 23,257,762 active users,●   South Africa –           268,449 active users.        * fro...
Installing GlassFish●   Zip package        –   No configuration wizard        –   Update tool must be installed manually  ...
Installing/Upgrading GlassFish●   Update tool       –   Used to update server components,       –   Install additional fun...
Why GlassFish?●   Easy to administer with GUI,●   Cluster wide management and deployment,●   Load balancing,●   Centralise...
Why GlassFish?●   Developer productivity,●   Modular architecture        –   Extensible        –   Embeddable●   Support f...
Developer Productivity●   Fast startup times●   User friendly Admin console interface,●   Excellent tooling        –   Net...
Developer Productivity●   Session retention on redeploy
GlassFish Architecture●   Kernel        –   hundred kilobyte kernel        –   Startup/shutdown sequence        –   Basic ...
GlassFish Architecture●   Container - Handle user applications             ●   E.G. Web container, EJB container
GlassFish Sub-Projects●   HK2 Kernel       –   hundred kilobyte kernel●   Grizzly       –   NIO based network listeners/co...
GlassFish Architecture●   Jersey – Provides REST Web Service    functionality●   Metro – Web service stack, SOAP etc●   Sh...
Embedded●   Testing       –   EJBContainer API (EJB 3.1)       –   Simple testing using Java SE (Junit, Maven)●   Packagin...
GlassFish Administration              Concepts●   Domain – An administrative name space.    Can administer multiple instan...
GlassFish Domains●   Multiple instances in a domain●   Instance can belong to only one    administrative domains●   One DA...
GlassFish Administration              Channels●   Web App: Admin Console – easy to use,●   Command line: asadmin – bash sc...
GlassFish Administration●   Ease of administration - Can create       –   new domains,       –   New instances,       –   ...
GlassFish Clustering●   High Availability with clustering,●   Session replication,●   Fail-over,●   Application deployment...
GlassFish Monitoring●   Monitoring via       –   Admin console       –   Asadmin command line utility       –   REST inter...
Multi-Language Support●   Support can be installed via update manager●   PHP via       –   jfastcgi       –   php/java bri...
Multi-Language Support●   Grails●   Jruby        –   Jruby container●   Scala/Lift●   Phobos        –   javascript
Application Versioning●   Deploy multiple versions of an app, only one    enabled●   Commands       –   asadmin deploy foo...
Application Versioning●   asadmin deploy -name=foo:rc1 foo.war●   asadmin undeploy foo:beat*●   asadmin undeploy foo:*
Application Scoped Resource●   Created and Destroyed when application is    deployed and undeployed●   Ensures no other ap...
Application Scoped Resource●   glassfish-resources.xml       –   JDBC connection pool,       –   JDBC rsources       –   C...
GlassFish – Java EE 7●   Multi-tenacy●   Application Versioning●   Virtualisation●   Modularity●   New Roles
GlassFish – An Introduction           The End
Upcoming SlideShare
Loading in …5
×

Glassfish An Introduction

3,640 views

Published on

An introduction to GlassFish. Presented at the South African Oracle Java Developer Conference in May 2012.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,640
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
92
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Glassfish An Introduction

  1. 1. GlassFish Application Server An Introduction By Jumping Bean 21 May 2012
  2. 2. Who Am I?● Mark Clarke – Java Developer● Working for Jumping Bean, an open source solutions integration company● Working with Java & open source technologies since 2001● Co-founder of Jozi JUG
  3. 3. Jozi JUG
  4. 4. Jozi JUG● Meet once a month in Johannesburg,● Talk● Beer● Pizza● All FREE!● Where to find us? – Meetup – Facebook – Web Site
  5. 5. GlassFish History● 6 June 2005 – Glassfish launched by SUN – based on Sun Java System Application Server PE 9 – TopLink persistence code donated by Oracle.● 4 May 2006 – Version 1 JEE 5 RI - aimed at developers● 17 Sep 2007 – Version 2 Clustering, MS interop web services. Aimed at enterprise
  6. 6. GlassFish History● 10 Dec 2009 – Version 3 Java EE6 RI. Introduced OSGI, fast startup & redeploy on change. – New architecture,
  7. 7. Recent Releases● Version 3.1 shipped Feb 28th 2011 – ssh-based provisioning, centralised admin, clustering & load balancing (reintroduced)● Version 3.1.1 shipped Jul 2011 – Bug fix release● Version 3.1.2 shipped Feb 2012 – – bug fixes, new admin console features, new thread pool properties, transaction recovery from database
  8. 8. Future Releases● Version 4.0 – Java EE7 – PaaS – Some hints in V3
  9. 9. GlassFish Versions● Oracle Glassfish Server – Oracle supported version, – Based on Open Source Edition + some closed source bits, – Similar to SUNs Glassfish Enterprise Server● Glassfish Open Source Edition – GPL or CDDL – Community Supported
  10. 10. GlassFish Versions * from blogs.oracle.com
  11. 11. GlassFish Versions● Certified interoperability with Oracle Fusion Middleware products: – Oracle Internet Directory, – Oracle Virtual Directory, – Oracle, WebLogic Server, – Oracle Access Manager● Includes Oracle GlassFish Server Control for improved manageability and performance of production deployments
  12. 12. GlassFish Adoption* from maps.glassfish,org/server
  13. 13. GlassFish Adoption* from maps.glassfish,org/server
  14. 14. GlassFish Adoption● World wide - 23,257,762 active users,● South Africa – 268,449 active users. * from maps.glassfish,org/server
  15. 15. Installing GlassFish● Zip package – No configuration wizard – Update tool must be installed manually – Manual uninstall● Self-extracting bundle – GUI installer, installer can be used to perform configuration after installation, – Can do silent mode installs, useful for scripting – Option to install Update Tool, – Uninstaller provided
  16. 16. Installing/Upgrading GlassFish● Update tool – Used to update server components, – Install additional functionality – Graphical & command line (pkg) – In place upgrades
  17. 17. Why GlassFish?● Easy to administer with GUI,● Cluster wide management and deployment,● Load balancing,● Centralised administration,● Support for the latest web services specs + interoperability with Microsoft WCF,
  18. 18. Why GlassFish?● Developer productivity,● Modular architecture – Extensible – Embeddable● Support for multiple languages● In place upgrade.● Built-in, fine-grained, monitoring
  19. 19. Developer Productivity● Fast startup times● User friendly Admin console interface,● Excellent tooling – Netbeans, ● Compile on Save ● Deploy on Change – Eclipse, – Maven support, – IntelliJ,● Scriptable via command line interface
  20. 20. Developer Productivity● Session retention on redeploy
  21. 21. GlassFish Architecture● Kernel – hundred kilobyte kernel – Startup/shutdown sequence – Basic service deployment – Reading config● Services cross container functionality – Security, JNDI – Admin Console
  22. 22. GlassFish Architecture● Container - Handle user applications ● E.G. Web container, EJB container
  23. 23. GlassFish Sub-Projects● HK2 Kernel – hundred kilobyte kernel● Grizzly – NIO based network listeners/connectors http● OSGi – Used for module system, swappable Apache Felix or Knoperfish● Tomcat – (modified) for servlet container
  24. 24. GlassFish Architecture● Jersey – Provides REST Web Service functionality● Metro – Web service stack, SOAP etc● Shoal – Clustering framework● Majorra – JSF● OpenMQ – Message Service
  25. 25. Embedded● Testing – EJBContainer API (EJB 3.1) – Simple testing using Java SE (Junit, Maven)● Packaging/Bundling – Integration testing, – Ship server with app
  26. 26. GlassFish Administration Concepts● Domain – An administrative name space. Can administer multiple instances, on same or different node. – Domain Administration Server (DAS) used to centrally administer domain● Instance – Is a JVM process. Applications are deployed to instances.● Virtual Hosting – Each instance can do virtual hosting
  27. 27. GlassFish Domains● Multiple instances in a domain● Instance can belong to only one administrative domains● One DAS per domain● Each domain has own isolated configuration● Standalone instances or clusters – share applications and resources● Each instance has own config for ports etc
  28. 28. GlassFish Administration Channels● Web App: Admin Console – easy to use,● Command line: asadmin – bash scripting● JMX – Admin GlassFish from your code,● Restful API – REST client
  29. 29. GlassFish Administration● Ease of administration - Can create – new domains, – New instances, – Deploy applications● Across nodes using SSH (Unix/Linux( or DCOM(Windows)
  30. 30. GlassFish Clustering● High Availability with clustering,● Session replication,● Fail-over,● Application deployment support,
  31. 31. GlassFish Monitoring● Monitoring via – Admin console – Asadmin command line utility – REST interface – JMX● Monitoring Server – Services – Off/Low/High ● JDBC connection ● HTTP services etc
  32. 32. Multi-Language Support● Support can be installed via update manager● PHP via – jfastcgi – php/java bridge – Quercus – Java implementation of PHP● Pyhton – Jython container can run Django apps – fastcgi
  33. 33. Multi-Language Support● Grails● Jruby – Jruby container● Scala/Lift● Phobos – javascript
  34. 34. Application Versioning● Deploy multiple versions of an app, only one enabled● Commands – asadmin deploy foo.war – Asadmin deploy -name=foo:beta-1 foo.war – Asadmin deploy -name-foo:beat-2 -enable false foo.war – Asadmin enable foo:beta-2
  35. 35. Application Versioning● asadmin deploy -name=foo:rc1 foo.war● asadmin undeploy foo:beat*● asadmin undeploy foo:*
  36. 36. Application Scoped Resource● Created and Destroyed when application is deployed and undeployed● Ensures no other application uses your resources which are usually globally defined● Modules with deployment descriptor scoped to those modules only
  37. 37. Application Scoped Resource● glassfish-resources.xml – JDBC connection pool, – JDBC rsources – Connector Connection pools – Resource adapters – External JNDI resources, – JavaMail resources
  38. 38. GlassFish – Java EE 7● Multi-tenacy● Application Versioning● Virtualisation● Modularity● New Roles
  39. 39. GlassFish – An Introduction The End

×