SlideShare a Scribd company logo
1 of 39
Download to read offline
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
●   Working with Java & open source
    technologies since 2001
●   Co-founder of Jozi JUG
Jozi JUG
Jozi JUG
●   Meet once a month in Johannesburg,
●   Talk
●   Beer
●   Pizza
●   All FREE!
●   Where to find us?
       –    Meetup
       –    Facebook
       –    Web Site
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
GlassFish History
●   10 Dec 2009 – Version 3 Java EE6 RI.
    Introduced OSGI, fast startup & redeploy on
    change.
       –   New architecture,
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
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 + some closed
            source bits,
       –   Similar to SUN's Glassfish Enterprise Server


●   Glassfish Open Source Edition
       –   GPL or CDDL
       –   Community Supported
GlassFish Versions
   * from blogs.oracle.com
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
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.




        * from maps.glassfish,org/server
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
Installing/Upgrading GlassFish
●   Update tool
       –   Used to update server components,
       –   Install additional functionality
       –   Graphical & command line (pkg)
       –   In place upgrades
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,
Why GlassFish?
●   Developer productivity,
●   Modular architecture
        –   Extensible
        –   Embeddable
●   Support for multiple languages
●   In place upgrade.
●   Built-in, fine-grained, monitoring
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
Developer Productivity
●   Session retention on redeploy
GlassFish Architecture
●   Kernel
        –   hundred kilobyte kernel
        –   Startup/shutdown sequence
        –   Basic service deployment
        –   Reading config
●   Services cross container functionality
        –   Security, JNDI
        –   Admin Console
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/connectors http
●   OSGi
       –   Used for module system, swappable Apache
            Felix or Knoperfish
●   Tomcat – (modified) for servlet container
GlassFish Architecture
●   Jersey – Provides REST Web Service
    functionality
●   Metro – Web service stack, SOAP etc
●   Shoal – Clustering framework
●   Majorra – JSF
●   OpenMQ – Message Service
Embedded
●   Testing
       –   EJBContainer API (EJB 3.1)
       –   Simple testing using Java SE (Junit, Maven)
●   Packaging/Bundling
       –   Integration testing,
       –   Ship server with app
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
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
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
GlassFish Administration
●   Ease of administration - Can create
       –   new domains,
       –   New instances,
       –   Deploy applications
●   Across nodes using SSH (Unix/Linux( or
    DCOM(Windows)
GlassFish Clustering
●   High Availability with clustering,
●   Session replication,
●   Fail-over,
●   Application deployment support,
GlassFish Monitoring
●   Monitoring via
       –   Admin console
       –   Asadmin command line utility
       –   REST interface
       –   JMX
●   Monitoring Server
       –   Services – Off/Low/High
                 ●   JDBC connection
                 ●   HTTP services etc
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
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.war
       –   Asadmin deploy -name=foo:beta-1 foo.war
       –   Asadmin deploy -name-foo:beat-2 -enable
            false foo.war
       –   Asadmin enable foo:beta-2
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 application uses your
    resources which are usually globally defined
●   Modules with deployment descriptor scoped to
    those modules only
Application Scoped Resource
●   glassfish-resources.xml
       –   JDBC connection pool,
       –   JDBC rsources
       –   Connector Connection pools
       –   Resource adapters
       –   External JNDI resources,
       –   JavaMail resources
GlassFish – Java EE 7
●   Multi-tenacy
●   Application Versioning
●   Virtualisation
●   Modularity
●   New Roles
GlassFish – An Introduction




           The End

More Related Content

What's hot

Read-only rootfs: theory and practice
Read-only rootfs: theory and practiceRead-only rootfs: theory and practice
Read-only rootfs: theory and practiceChris Simmonds
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using seleniumshreyas JC
 
Ansible, best practices
Ansible, best practicesAnsible, best practices
Ansible, best practicesBas Meijer
 
Android OTA updates
Android OTA updatesAndroid OTA updates
Android OTA updatesGary Bisson
 
OWASP - Dependency Check
OWASP - Dependency CheckOWASP - Dependency Check
OWASP - Dependency CheckVandana Verma
 
U-boot and Android Verified Boot 2.0
U-boot and Android Verified Boot 2.0U-boot and Android Verified Boot 2.0
U-boot and Android Verified Boot 2.0GlobalLogic Ukraine
 
NGINX Unit: Rebooting our Universal Web App Server
NGINX Unit: Rebooting our Universal Web App ServerNGINX Unit: Rebooting our Universal Web App Server
NGINX Unit: Rebooting our Universal Web App ServerNGINX, Inc.
 
Android Studio Overview
Android Studio OverviewAndroid Studio Overview
Android Studio OverviewSalim Hosen
 
Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverLearning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverNanik Tolaram
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Opersys inc.
 
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALAndroid's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALOpersys inc.
 
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting ProcessLearning AOSP - Android Booting Process
Learning AOSP - Android Booting ProcessNanik Tolaram
 
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveAndroid graphic system (SurfaceFlinger) : Design Pattern's perspective
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveBin Chen
 
JDD 2017: Nginx + Lua = OpenResty (Marcin Stożek)
JDD 2017: Nginx + Lua = OpenResty (Marcin Stożek)JDD 2017: Nginx + Lua = OpenResty (Marcin Stożek)
JDD 2017: Nginx + Lua = OpenResty (Marcin Stożek)PROIDEA
 

What's hot (20)

Ansible
AnsibleAnsible
Ansible
 
Android Things : Building Embedded Devices
Android Things : Building Embedded DevicesAndroid Things : Building Embedded Devices
Android Things : Building Embedded Devices
 
Read-only rootfs: theory and practice
Read-only rootfs: theory and practiceRead-only rootfs: theory and practice
Read-only rootfs: theory and practice
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using selenium
 
Ansible, best practices
Ansible, best practicesAnsible, best practices
Ansible, best practices
 
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
 
Android OTA updates
Android OTA updatesAndroid OTA updates
Android OTA updates
 
OWASP - Dependency Check
OWASP - Dependency CheckOWASP - Dependency Check
OWASP - Dependency Check
 
U-boot and Android Verified Boot 2.0
U-boot and Android Verified Boot 2.0U-boot and Android Verified Boot 2.0
U-boot and Android Verified Boot 2.0
 
NGINX Unit: Rebooting our Universal Web App Server
NGINX Unit: Rebooting our Universal Web App ServerNGINX Unit: Rebooting our Universal Web App Server
NGINX Unit: Rebooting our Universal Web App Server
 
Android Studio Overview
Android Studio OverviewAndroid Studio Overview
Android Studio Overview
 
Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverLearning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device Driver
 
SELENIUM PPT.pdf
SELENIUM PPT.pdfSELENIUM PPT.pdf
SELENIUM PPT.pdf
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALAndroid's HIDL: Treble in the HAL
Android's HIDL: Treble in the HAL
 
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting ProcessLearning AOSP - Android Booting Process
Learning AOSP - Android Booting Process
 
Android 10
Android 10Android 10
Android 10
 
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveAndroid graphic system (SurfaceFlinger) : Design Pattern's perspective
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
 
JDD 2017: Nginx + Lua = OpenResty (Marcin Stożek)
JDD 2017: Nginx + Lua = OpenResty (Marcin Stożek)JDD 2017: Nginx + Lua = OpenResty (Marcin Stożek)
JDD 2017: Nginx + Lua = OpenResty (Marcin Stożek)
 

Similar to Glassfish An Introduction

OTN Developer Days - GlassFish
OTN Developer Days - GlassFishOTN Developer Days - GlassFish
OTN Developer Days - GlassFishglassfish
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Arun Gupta
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsArun Gupta
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011Arun Gupta
 
Boston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFishBoston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFishArun Gupta
 
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...Arun Gupta
 
Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Shreedhar Ganapathy
 
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
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 2010JUG Lausanne
 
How to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environmentHow to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environmentMichelantonio Trizio
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi ServerArtur Alves
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaArun Gupta
 
Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011Agora Group
 
Virtualizing Development
Virtualizing DevelopmentVirtualizing Development
Virtualizing DevelopmentAdam Culp
 
Modular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache KarafModular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache KarafIoan Eugen Stan
 
JDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKWolfgang Weigend
 
Manage Java Applications in an Open Hybrid Cloud
Manage Java Applications in an Open Hybrid CloudManage Java Applications in an Open Hybrid Cloud
Manage Java Applications in an Open Hybrid CloudIsaac Christoffersen
 

Similar to Glassfish An Introduction (20)

OTN Developer Days - GlassFish
OTN Developer Days - GlassFishOTN Developer Days - GlassFish
OTN Developer Days - GlassFish
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 Applications
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
 
Boston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFishBoston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFish
 
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
 
GlassFish Community and future larochelle
GlassFish Community and future larochelleGlassFish Community and future larochelle
GlassFish Community and future larochelle
 
Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1
 
GlassFish OSGi - Java2days 2010
GlassFish OSGi - Java2days 2010GlassFish OSGi - Java2days 2010
GlassFish OSGi - Java2days 2010
 
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
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
 
How to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environmentHow to deploy a Java application on Google App engine Flexible environment
How to deploy a Java application on Google App engine Flexible environment
 
Retour JavaOne 2009
Retour JavaOne 2009Retour JavaOne 2009
Retour JavaOne 2009
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi Server
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 India
 
Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011
 
Virtualizing Development
Virtualizing DevelopmentVirtualizing Development
Virtualizing Development
 
Serverless design with Fn project
Serverless design with Fn projectServerless design with Fn project
Serverless design with Fn project
 
Modular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache KarafModular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache Karaf
 
JDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDK
 
Manage Java Applications in an Open Hybrid Cloud
Manage Java Applications in an Open Hybrid CloudManage Java Applications in an Open Hybrid Cloud
Manage Java Applications in an Open Hybrid Cloud
 

More from Jumping Bean

DevOpsDaysCPT Ansible Infrastrucutre as Code 2017
DevOpsDaysCPT Ansible Infrastrucutre as Code 2017DevOpsDaysCPT Ansible Infrastrucutre as Code 2017
DevOpsDaysCPT Ansible Infrastrucutre as Code 2017Jumping Bean
 
Postgrtesql as a NoSQL Document Store - The JSON/JSONB data type
Postgrtesql as a NoSQL Document Store - The JSON/JSONB data typePostgrtesql as a NoSQL Document Store - The JSON/JSONB data type
Postgrtesql as a NoSQL Document Store - The JSON/JSONB data typeJumping Bean
 
React - The JavaScript Library for User Interfaces
React - The JavaScript Library for User InterfacesReact - The JavaScript Library for User Interfaces
React - The JavaScript Library for User InterfacesJumping Bean
 
IPv6 How To Set Up a Linux IPv6 Lan
IPv6 How To Set Up  a Linux IPv6 LanIPv6 How To Set Up  a Linux IPv6 Lan
IPv6 How To Set Up a Linux IPv6 LanJumping Bean
 
HTML 5 & The Modern Web
HTML 5 & The Modern WebHTML 5 & The Modern Web
HTML 5 & The Modern WebJumping Bean
 
Building games-with-libgdx
Building games-with-libgdxBuilding games-with-libgdx
Building games-with-libgdxJumping Bean
 
Linux Containers & Docker
Linux Containers & DockerLinux Containers & Docker
Linux Containers & DockerJumping Bean
 
Introduction to Web Sockets
Introduction to Web SocketsIntroduction to Web Sockets
Introduction to Web SocketsJumping Bean
 
Secrets of a linux ninja Software Freedom Day 2013 Johannesburg, South Africa
Secrets of a linux ninja  Software Freedom Day 2013 Johannesburg, South AfricaSecrets of a linux ninja  Software Freedom Day 2013 Johannesburg, South Africa
Secrets of a linux ninja Software Freedom Day 2013 Johannesburg, South AfricaJumping Bean
 
M-Learning application development with open source
M-Learning application development with open sourceM-Learning application development with open source
M-Learning application development with open sourceJumping Bean
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJSJumping Bean
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentJumping Bean
 
IPv6 - Jozi Linux User Group Presentation
IPv6  - Jozi Linux User Group PresentationIPv6  - Jozi Linux User Group Presentation
IPv6 - Jozi Linux User Group PresentationJumping Bean
 
SELinux Johannesburg Linux User Group (JoziJUg)
SELinux Johannesburg Linux User Group (JoziJUg)SELinux Johannesburg Linux User Group (JoziJUg)
SELinux Johannesburg Linux User Group (JoziJUg)Jumping Bean
 

More from Jumping Bean (15)

DevOpsDaysCPT Ansible Infrastrucutre as Code 2017
DevOpsDaysCPT Ansible Infrastrucutre as Code 2017DevOpsDaysCPT Ansible Infrastrucutre as Code 2017
DevOpsDaysCPT Ansible Infrastrucutre as Code 2017
 
Postgrtesql as a NoSQL Document Store - The JSON/JSONB data type
Postgrtesql as a NoSQL Document Store - The JSON/JSONB data typePostgrtesql as a NoSQL Document Store - The JSON/JSONB data type
Postgrtesql as a NoSQL Document Store - The JSON/JSONB data type
 
React - The JavaScript Library for User Interfaces
React - The JavaScript Library for User InterfacesReact - The JavaScript Library for User Interfaces
React - The JavaScript Library for User Interfaces
 
IPv6 How To Set Up a Linux IPv6 Lan
IPv6 How To Set Up  a Linux IPv6 LanIPv6 How To Set Up  a Linux IPv6 Lan
IPv6 How To Set Up a Linux IPv6 Lan
 
HTML 5 & The Modern Web
HTML 5 & The Modern WebHTML 5 & The Modern Web
HTML 5 & The Modern Web
 
Building games-with-libgdx
Building games-with-libgdxBuilding games-with-libgdx
Building games-with-libgdx
 
Linux Containers & Docker
Linux Containers & DockerLinux Containers & Docker
Linux Containers & Docker
 
Introduction to Web Sockets
Introduction to Web SocketsIntroduction to Web Sockets
Introduction to Web Sockets
 
Secrets of a linux ninja Software Freedom Day 2013 Johannesburg, South Africa
Secrets of a linux ninja  Software Freedom Day 2013 Johannesburg, South AfricaSecrets of a linux ninja  Software Freedom Day 2013 Johannesburg, South Africa
Secrets of a linux ninja Software Freedom Day 2013 Johannesburg, South Africa
 
M-Learning application development with open source
M-Learning application development with open sourceM-Learning application development with open source
M-Learning application development with open source
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Java logging
Java loggingJava logging
Java logging
 
IPv6 - Jozi Linux User Group Presentation
IPv6  - Jozi Linux User Group PresentationIPv6  - Jozi Linux User Group Presentation
IPv6 - Jozi Linux User Group Presentation
 
SELinux Johannesburg Linux User Group (JoziJUg)
SELinux Johannesburg Linux User Group (JoziJUg)SELinux Johannesburg Linux User Group (JoziJUg)
SELinux Johannesburg Linux User Group (JoziJUg)
 

Recently uploaded

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Recently uploaded (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Glassfish An Introduction

  • 1. GlassFish Application Server An Introduction By Jumping Bean 21 May 2012
  • 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
  • 4. Jozi JUG ● Meet once a month in Johannesburg, ● Talk ● Beer ● Pizza ● All FREE! ● Where to find us? – Meetup – Facebook – Web Site
  • 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. GlassFish History ● 10 Dec 2009 – Version 3 Java EE6 RI. Introduced OSGI, fast startup & redeploy on change. – New architecture,
  • 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. Future Releases ● Version 4.0 – Java EE7 – PaaS – Some hints in V3
  • 9. GlassFish Versions ● Oracle Glassfish Server – Oracle supported version, – Based on Open Source Edition + some closed source bits, – Similar to SUN's Glassfish Enterprise Server ● Glassfish Open Source Edition – GPL or CDDL – Community Supported
  • 10. GlassFish Versions * from blogs.oracle.com
  • 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. GlassFish Adoption * from maps.glassfish,org/server
  • 13. GlassFish Adoption * from maps.glassfish,org/server
  • 14. GlassFish Adoption ● World wide - 23,257,762 active users, ● South Africa – 268,449 active users. * from maps.glassfish,org/server
  • 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. Installing/Upgrading GlassFish ● Update tool – Used to update server components, – Install additional functionality – Graphical & command line (pkg) – In place upgrades
  • 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. Why GlassFish? ● Developer productivity, ● Modular architecture – Extensible – Embeddable ● Support for multiple languages ● In place upgrade. ● Built-in, fine-grained, monitoring
  • 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. Developer Productivity ● Session retention on redeploy
  • 21. GlassFish Architecture ● Kernel – hundred kilobyte kernel – Startup/shutdown sequence – Basic service deployment – Reading config ● Services cross container functionality – Security, JNDI – Admin Console
  • 22. GlassFish Architecture ● Container - Handle user applications ● E.G. Web container, EJB container
  • 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. GlassFish Architecture ● Jersey – Provides REST Web Service functionality ● Metro – Web service stack, SOAP etc ● Shoal – Clustering framework ● Majorra – JSF ● OpenMQ – Message Service
  • 25. Embedded ● Testing – EJBContainer API (EJB 3.1) – Simple testing using Java SE (Junit, Maven) ● Packaging/Bundling – Integration testing, – Ship server with app
  • 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. 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. 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. GlassFish Administration ● Ease of administration - Can create – new domains, – New instances, – Deploy applications ● Across nodes using SSH (Unix/Linux( or DCOM(Windows)
  • 30. GlassFish Clustering ● High Availability with clustering, ● Session replication, ● Fail-over, ● Application deployment support,
  • 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. 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. Multi-Language Support ● Grails ● Jruby – Jruby container ● Scala/Lift ● Phobos – javascript
  • 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. Application Versioning ● asadmin deploy -name=foo:rc1 foo.war ● asadmin undeploy foo:beat* ● asadmin undeploy foo:*
  • 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. Application Scoped Resource ● glassfish-resources.xml – JDBC connection pool, – JDBC rsources – Connector Connection pools – Resource adapters – External JNDI resources, – JavaMail resources
  • 38. GlassFish – Java EE 7 ● Multi-tenacy ● Application Versioning ● Virtualisation ● Modularity ● New Roles
  • 39. GlassFish – An Introduction The End