Inside Apache Geronimo 1.1 - What makes it special? - PowerPoint PPT Presentation

1 / 52
About This Presentation
Title:

Inside Apache Geronimo 1.1 - What makes it special?

Description:

Inside Apache Geronimo 1.1 - What makes it special? Rakesh Midha IBM Software Labs, Bangalore midharakesh_at_in.ibm.com midha.rakesh_at_gmail.com Goal Show case Geronimo ... – PowerPoint PPT presentation

Number of Views:499
Avg rating:3.0/5.0
Slides: 53
Provided by: apachecon5
Category:

less

Transcript and Presenter's Notes

Title: Inside Apache Geronimo 1.1 - What makes it special?


1
Inside Apache Geronimo 1.1 - What makes it
special?
  • Rakesh Midha
  • IBM Software Labs, Bangalore
  • midharakesh_at_in.ibm.com
  • midha.rakesh_at_gmail.com

2
Goal
  • Show case Geronimo open source story
  • Where it fits in Industry and Enterprise
  • How it facilitates easy development and
    deployment
  • Understand Geronimo 1.1 additions
  • Get you hooked with Geronimo

3
Agenda
  • Geronimo - An Introduction
  • Why Geronimo?
  • What makes it Special?
  • Where does it fit well?
  • Geronimo Architecture and Components
  • Geronimo 1.1 Whats New?
  • Getting Started
  • Administration and Configuration
  • Development Enviornment
  • Quick Application Development
  • Getting Involved
  • Summary, QA

4
Geronimo - An Introduction
5
What is Apache Geronimo?
  • Open source J2EE application server project
    developed by the Apache Software Foundation.
  • Benefits from the efforts of collaborative
    development by an open community of Java
    developers worldwide.
  • Apache-licensed open source application server
  • Highly customizable
  • Small footprint
  • Community-driven

Brings together leading technologies from the
broad open source community to support J2EE
6
Apache Geronimo
  • Geronimo
  • Apache Geronimo an Apache Software Foundation top
    level project that is aimed at creating a world
    class, free, application server.
  • It is made up of over 30 best of breed open
    source packages (some not under the Apache
    domain).
  • The Geronimo kernel provides the common security,
    deployment, administration, management, and
    life-cycle services for these components.
  • Geronimo reached official J2EE 1.4 certification
    in Milestone 5 in Oct 2005.

7
Geronimo Open Source Packages
  • Howl
  • JDBM
  • JDom
  • Jetty
  • Juddi
  • Junit
  • Mx4j
  • OpenEJB
  • ActiveIO
  • ActiveMQ
  • Scout
  • Antlr
  • ASM
  • Axis
  • Castor
  • Concurrent
  • Apache Directory
  • Commons
  • Beanutils
  • Collections
  • Digester
  • El
  • Fileupload
  • I/O
  • Lang
  • Modeler
  • Primitives
  • TranQl
  • Wsdl4j
  • Xmlbeans
  • Xpp3
  • Xstream
  • Xfire
  • Derby
  • Pluto
  • Slf4j
  • Oro
  • Servicemix
  • Spring
  • Stax
  • Tomcat
  • Regexp


8
Geronimo History and Progress
  • Milestone 3 released
  • Geronimo passes J2EE Certification Test
    Suite
  • Apache Geronimo Project formed
  • V1.0 Released
  • V1.1 Released
  • V1.2 Released
  • Milestone 4 released
  • IBM acquires Gluecode Software
  • Milestone 5 released, full J2EE certification

August2003
August2004
August2005
June2005
Oct2005
May2005
Jan2006
June2006
In Plan
9
Why Geronimo?
10
Geronimo Key Features
  • J2EE 1.4 Certified
  • Certification from Sun Microsystems in October
    last year
  • Certified on the Sun JDK 1.4.2, works with JDK
    1.5 without CORBA
  • Option for Jetty or Tomcat as a Web Container
  • Geronimo supports both Jetty as well as Tomcat.
    Separate package for download, available for
    Jetty and Tomcat.
  • Database Support
  • Comes with Apache Derby database
  • Also supports JDBC enabled databases using a
    connector framework from TranQL
  • Eclipse Web Tools Project support
  • Integrated development environment for creating,
    deploying, and debugging directly against
    Geronimo
  • Runtime customization
  • Advanced micro-kernel architecture enables
    runtime customization to save systems resources
    and improve performance
  • Allows for greater flexibility in creating
    different server personalities in the future

11
Geronimo Key Features
  • Centralized configuration and control
  • Easy to use Web Console
  • Small Footprint 60MB
  • Easy access - downloadable in minutes
  • Easily embeddable in customer or ISV stack
  • Liberal product license
  • Apache open source (ASF) license
  • Flexible and rapid deployment across multiple
    configurations
  • Directory-based hot deployment
  • Local and remote deployment through command line,
    console, and IDE
  • Improved reliability for most commonly deployed
    applications
  • Web-tier clustering

12
What makes it Special?
13
Geronimo Key Design Principles
  • Simple
  • Easiest platform to development on, obtain, use,
    and service.
  • Easy to understand, invisible to the customer.
    Application centric.
  • Easy to configure and change.
  • Embedded documentation, service functions, user
    interfaces, etc.
  • Default setting will get you running.
  • Flexible
  • Can plug-in function while that application
    server is running.
  • J2EE function is just one of the personalities
    that can be plugged in.
  • Geronimo becomes the platform that
    partners/customers think when building apps.
  • Need to be the Eclipse of the tooling world.
  • Reliable
  • Appliance like reliability. Never fails.
  • Startup and recycle time should be minimal.
  • Customer never sees or cares about the server it
    is about the application.

14
Geronimo Technical Advantage
  • Enchilada of best of breed open source products
  • GBean Architecture
  • A pluggable framework
  • Modular Architecture
  • Tomcat has web features but it lacks other J2EE
    features
  • Low memory and resource requirement
  • Better web performance as compared to other open
    source application servers
  • True open source community driven
  • Strategic commitment from IBM, Covalent, Chariot
    and other big players
  • Very Active community and dev/user list
  • Optional Support from IBM

15
Geronimo Still Why?
  • Its all Free!!!
  • Free Application Server
  • Free Development, Debugging environment
  • Free Management tools
  • Free resources like database, messaging
  • Free enterprise class documentation
  • Free Sample applications
  • Free educational material like articles,
    tutorials

16
Where does it fit well?
17
Where does this fit in the Enterprise?
  • Apache Geronimo are excellent positioned as
    developer runtimes
  • Integration into Eclipse helps to reduce software
    licenses
  • Small footprint
  • Single User Environments
  • Low end SMB companies
  • Quick, frictionless access to application server
    technology with no up-front costs
  • Departmental Applications in Enterprises
  • SMBs and departmental applications are a good
    target for this technology
  • Not quite ready to run your 4,000 AppServer farm
  • Advanced monitoring, integration with commercial
    / open source monitors not quite there yet.

18
Today With Tomcat plus other stuff you do
yourself
  1. Your developers have a job to do write your
    killer app!
  2. They chose Apache Tomcat because it helps them
    build apps quickly
  3. But Tomcat doesnt have web services support, a
    security framework, or messaging so your
    developers added those components and integrated
    them into the stack
  4. Then your rock star developer wrote some
    app-specific service and integrated that into the
    stack
  5. Turns out your app needs clustering too, so they
    throw that into the stack
  6. but the web services component they got doesnt
    do clustering luckily theres a newer version of
    that out now, so they get the new version and
    integrate THAT into the stack
  7. Now your staff is maintaining your killer app,
    Apache Tomcat, the web services component,
    messaging, security, clustering, AND your custom
    components

build apps quickly?
What happened to building apps quickly??
Developers maintain all this!
JMS Messaging
Other services you need/write
SOAP/Web Services (Axis)
Security / Authentication
SOAP/Web Services (Axis)
Web Tier Clustering
Custom Integration
Custom Integration
19
Now, just much easier (oh, and future-proof)!
  • What if you could start with Tomcat
  • Extend Tomcat with pre-integrated features
    services you need most (read someone other than
    you did the tedious work)
  • Welcome to a little secret we like to call
    Tomcat, use Apache Geronimo
  • Its fully extensible, and its built on the
    innovative open-source Apache Geronimo kernel
  • Plus all the same Apache Tomcat youre already
    using
  • Plus the leading components you want to use
    pre-integrated and tested (and the ability to
    turn off what you arent using)
  • Plus the support you need from IBM

Apache Geronimo
20
Geronimo Architecture and Components
21
Geronimo Architecture - GBean
  • The Geronimo framework provides a set of
    cooperating classes, called GBeans, for combining
    an arbitrary set of components into a system
  • Everything in Geronimo framework is GBean
  • Lightweight kernel provides central integration
    based on Inversion of control pattern.
  • Manageable at runtime using JMX, JSR-77
  • Example
  • An EJB container
  • Web Module
  • It must be aware of every EJB in the system.
  • It registers a dependency on any EJB GBean
  • An EJBs are added to the system
  • The Geronimo kernel recognizes the relationship
    and injects information from the EJB GBean into
    the EJB container GBean where it updates its
    configuration state.
  • This action is called dependency injection.
  • A J2EE web module that contains servlets and uses
    EJB
  • It depends on the web container and the EJB
    container
  • When its GBean is started, the Geronimo kernel
    recognizes the dependency and starts the web
    container and the EJB container first

22
Geronimo Kernel
  • Kernel
  • Core of the component model
  • Provides central integration point
  • Binds all the subsystems
  • Based on Inversion of Control /Injection Pattern
  • Geronimo Beans
  • GBean is a manageable unit in the Geronimo
    framework
  • To add new component to the server, you deploy
    the collection of GBeans
  • A deployment plan is an XML document that
    provides server specific attribute values
  • GBeans can hold states and can define
    relationships amongst them
  • GBean life cycle is managed by the kernel.
  • A java class can be wrapped to become a GBean
  • GBeans are used to tie all the open source
    projects in Geronimo ( Derby, Tomcat, Axis,
    OPenEJB . )
  • GBean can notify events.

23
Geronimo components
Specification required for J2EE certification Area of coverage Project or code used by Geronimo
Servlets 2.4JavaServer Pages (JSP) 2.0 Web tier container with support for JSPs and servlets Jetty and Tomcat
Enterprise Java Beans (EJB) 2.1 EJB container OpenEJB
Java Message Service (JMS) 1.1 Messaging service ActiveMQ
Java Naming and Directory Interface (JNDI) 1.2.1 Directory service/naming API Custom code implementation
Java Transaction API (JTA) 1.0 Transactions Custom manager with High-speed ObjectWeb Logger (HOWL) for transaction logging, XA supported, evolving to Java Open Transaction Manager (JOTM)
JavaMail 1.3 Mail Custom coding
JavaBeans Activation Framework (JAF) 1.0 Activation -- handling html/text/gif/jpg MIME types, primarily for JavaMail attachments Custom coding
JSR 77 -- J2EE Management 1.0 Manageability Custom coding with MX4J
JSR 88 -- J2EE Deployment 1.1 Deployment and configuration -- cross-vendor server deployability Custom Code
JMX 1.2 Manageability MX4J
24
Geronimo components - cont
Java Data Access API (JDBC) 3.0, 2.1 Database Code from TranQL
Java API for XML Processing (JAXP) 1.2 SAX, DOM APIs third-party SAX, DOM, XSLT engine pluggability JDK support where applicable, and Apache Xerces
J2EE Connector Architecture (J2CA) 1.5 Connector Custom coding. Includes JMS resources and JDBC pools.
JSR 109 -- Implementing Enterprise Web Services 1.1 Web services Apache Axis
Java API for XML-based RPC (JAX-RPC) Web services Apache Axis
SOAP with Attachments API for Java (SAAJ) 1.2 Web services Apache Axis
Java API for XML Registries (JAXR) 1.0 Web services Apache Scout
JSR 115 Java Authorization Contract for Containers (JACC) Security -- authorization and authentication Custom development using JDK's JAAS support
Internal database Database Derby
Persistence mechanism Database Unified substrate for CMP and Beans/POJO oriented schemes over TranQL
Interoperability TCP/IP, HTTP1.1, SSL3.0, TLS 1.0, SOAP 1.1, WS-I Basic Profile 1.0 CORBA - IIOP, RMI-IIOP, EJB Interop, CORBA Interop Naming Service, JRMP JDK support (that is, ORB and JRMP), support from other packages, and custom code
25
Deployment Framework
  • Each Component has a GBean and deployment plan.
  • Plan is an xml file containing properties of
    GBean
  • Server is built using j2ee-server-plan.xml

ltgbean name"JettyWebConnector"
class"org.apache.geronimo.jetty.connector.HTTPCon
nector"gt ltattribute name"host"gtlocalhost"
lt/attributegt ltattribute
name"port"gt8080lt/attributegt ltreference
name"JettyContainer"gtltnamegtWebContainerlt/namegtlt/r
eferencegt ltattribute name"maxThreads"gt50lt
/attributegt ltattribute name"minThreads"gt1
0lt/attributegt lt/gbeangt
  • Can also deploy plan to running server using
    deployer
  • For modules you need specific file as deployment
    plan
  • Web Application (WAR) - WEB-INF/geronimo-web.xml
  • Enterprise Application (EAR) META-INF/geronimo-app
    lication.xml
  • Enterprise Java Beans (JAR) META-INF/openejb-jar.x
    ml
  • J2EE Connectors (RA) META-INF/geronimo-ra.xml
  • Client Application META-INF/geronimo-application-c
    lient.xml

26
Geronimo 1.1 Whats New?
27
Geronimo 1.1
  • Updated deployment plan
  • Running with JDK 1.5 without CORBA support
  • Improved scalability, portability and overall
    organization
  • Enhanced Web Console
  • Memory utilization graphics, Live console graph
  • Thread Pools statistics
  • Remote HTTPd configuration wizard and plugins
  • JMS resource wizard
  • Keystore manger
  • Improved Hot deployment
  • Application storage in repository
  • Enhanced SMTP support
  • Little-G
  • Plugin architecture
  • In-place deployment

28
Geronimo 1.1-Little-G
  • Lightweight distribution of geronimo available
    for both jetty and tomcat
  • Small space requirement 20MB and smaller memory
    footprint
  • It includes a WebContainer, Transaction Manager
    and some other essential elements of Geronimo.
  • Not J2EE compliant
  • Can be upgraged for specific requirement like
    JMS, J2EE etc using plugins.

29
Geronimo 1.1-Plugins
  • A Geronimo plugin is a new packaging mechnism for
    geronimo modules
  • Geronimo applications, server features, and
    integrated products can be distributed as
    Geronimo plugins.
  • Plugins are easy to install, automatically
    download any dependencies, and do not require
    server restarts.
  • Using the plugin infrastructure, applications or
    modules can be copied from one Geronimo
    installation to another
  • Developer to Developer
  • Development environment to production environment
  • Plugin stays in Maven 2 repository and
    automatically downloads dependencies from other
    repositories
  • Web console can be used to create plugins

30
Plugin web console
31
Getting Started
32
Quick Start
  • Available for download from http//geronimo.apache
    .org/downloads.html
  • Linux, windows and MacOS installation in tar/zip
    format with jetty and tomcat available
  • System Requirements
  • Redhat Enterprise Linux 3.0 or 4.0, Suse Linux
    Enterprise .9
  • Microsoft XP with SP2
  • 120MB Disk Space
  • 128MB RAM (256MB Preferred, depends upon deployed
    Applications)
  • Installation
  • Windows
  • Install JDK, set JAVA_HOME and simply unpack
    geronimo--j2ee-1.1.zip
  • Linux
  • Install JDK, export JAVA_HOME and simply unpack
    geronimo--j2ee-1.1.tar.gz

33
Server Administration
  • Starting a Server
  • From application launcher, execute startup.bat or
    startup.sh, or run java jar bin\server.jar
  • The server will display the TCP/IP ports where it
    is listening for requests
  • You can confirm readiness of server by navigating
    to welcome page http//localhost8080/console and
    https//localhost8080/console in browser
  • When Prompted enter System/Manager as
    userid/password
  • Startup options -quite, -v, -vv
  • Stopping a Server
  • From Application Launcher, Execute shutdown.bat
    or shutdown.sh, or run java jar shutdown.jar
  • Stop server using Web Console
  • Press Ctrl-C at the Server Started window

34
Tools and Commands
  • Deploy command - deploy.bat and deploy.sh
  • java -jar deployer.jar general_options
    ltcommandgt command_options
  • deploy general_options ltcommandgt
    command_options
  • Commands available
  • 1. Common Commands
  • deploy
  • redeploy
  • start
  • stop
  • undeploy
  • 2. Other Commands
  • distribute
  • list-modules
  • list-targets
  • 3. Configuration jar
  • install-plugin
  • search-plugin
  • General options
  • --uri --host --port --driver --user

35
Administration and Configuration
36
Web Console
  • The administration console provides a convenient,
    user friendly way to administer many aspects of
    the Geronimo Server.
  • Can be viewed in a browser at http//localhost808
    0/console
  • Default password is system/manager
  • It can be used for server management, and
    viewing/editing following information
  • Server/JVM usage statistics
  • Server logs
  • Control server functionalities
  • Web Server configuration
  • Database, JMS Resource configurations
  • Thread pool, database pool, J2EE connectors
    management
  • Apache HTTP, Derby maintenance
  • Application/ Modules/ Plugin management
  • Security realms management

37
Web Console view
38
Deploying JDBC and JMS resources
  • Database Pool is deployed as a connector in
    Geronimo
  • Database Connection pool can be configured at the
    server level, application level or part of single
    application module, as default
  • Configuring Database pool
  • Create Database Pool deployment plan containing
    configId, parentId, dependency, uri,
    connectionfactory-interface, name and
    configurable properties like Driver, user, passwd
    etc
  • Deploy pool as connector
  • Server wide
  • java -jar bin/deployer.jar deploy
    database-pool.xml \ repository/tranql/rars/tranql-
    connector-1.0.rar
  • Application Scoped
  • Create application.xml with
  • Create geronimo-application.xml
  • jar -tf my-app.ear my-web-app.war my-ejbs.jar
    tranql-connector-1.1.rar database-pool.xml
    META-INF/application.xml META-INF/geronimo-applica
    tion.xml
  • Client Module Scoped
  • A module scoped connection pool is declared in
    the geronimo deployment plan for the module

Pool Type Multiple Appl. Multiple Modules Client Module
Server-wide Yes Yes No
Application-scoped No Yes No
Client Module-scoped No No Yes
39
Deploying JDBC and JMS resources - Cont
  • JDBC Resources
  • In Modules Deployment descriptor ie web.xml Add
    resource ref
  • ltresource-refgt
  • ltres-ref-namegtjdbc/DataSourcelt/res-ref-namegt
  • ltres-typegtjavax.sql.DataSourcelt/res-typegt
  • ltres-authgtContainerlt/res-authgt
  • ltres-sharing-scopegtShareablelt/res-sharing-scopegt
  • lt/resource-refgt
  • For external references deployment plan is
    required with following info
  • ltnamingresource-refgt
  • ltnamingref-namegtjdbc/DataSourcelt/namingref-name
    gt
  • ltnamingresource-linkgtSystemDatasourcelt/namingre
    source-linkgt
  • lt/namingresource-refgt
  • In Application code lookup datasource and use it.
  • InitialContext ctx new InitialContext()
  • DataSource ds ctx.lookup("javacomp/env/jdbc/Dat
    aSource")
  • Connection con ds.getConnection()
  • JMS Resources
  • The default Geronimo server starts with ActiveMQ
    as messaging server

40
Geronimo Classloader
Bootstrap, Extensions JVM Classes System
Geronimo System Server Critical classes and
services for J2EE EAR EAR Classloader Dependency
loaded as part of EAR Classloader.
41
Troubleshooting
  • Logging
  • Administration Console provide 4 portlets for
    configuration and viewing the servers log
  • Log Manager to specify log configuration file,
    Log Level, file size and Refresh Period
  • Server Log Viewer to view server log and set
    filters for refining results displayed
  • Derby Log Viewer to view Derby server logs
  • Web Access Log Viewer to view web server logs for
    both tomcat and jetty
  • Detailed log4j configuration settings can be done
    directly in server-log4j.properties,
    deployer-log4j.properties and client-log4j.propert
    ies file

42
Security
  • Security
  • In Geronimo you can define and activate multiple
    security realms build around JAAS
  • Each realm can authenticate user, provide set of
    principles to authorize user
  • Each realm is a deployed as a component via GBean
  • Default plan in doc/plan/j2ee-security-plan.xml
  • In order to enable https access to web
    applications, Geronimo requires keystore.

43
Development Enviornment
44
Development Environment
  • Development Tools
  • Eclipse plug-in for creating, deploying, and
    debugging Geronimo applications
  • Plug-in provides integration between Eclipse Web
    Tools Platform and Geronimo
  • Eclipse Web Tools Platform (WTP) project extends
    the Eclipse platform with tools for developing
    J2EE Web applications
  • http//www.eclipse.org/webtools/
  • Plugin available for download from geronimo
    website
  • Integrated test environment
  • Eclipse plug-in provides integrated test
    environment for Geronimo

45
Development Environment views
46
Quick Application Development
47
Quick first web application
  • Create HelloWorld.jsp
  • Create a plain text file in the ltapp_homegt
    directory named HelloWorld.jap and copy the
    content
  • Create Standard J2EE complaint deployment
    descriptor web.xml in ltapp_homegt/WEB-INF
    directory

lt_at_ page contentType"text/htmlcharsetUTF-8"
language"java" gt lthtmlgt ltheadgt ltjspuseBean
id"datetime" class"java.util.Date" /gt
lttitlegtHello IBM Geronimo Version 1.1lt/titlegt
lt/headgt ltbodygt lth2gtWelcome to Geronimo
Version 1.1lt/h2gt ltpgtCongratulations on running
this simple application on datetime.lt/pgt lt/body
gt lt/htmlgt
ltweb-app version1.0" xmlns"http//java.sun.com/
xml/ns/j2ee"gt ltwelcome-file-listgt
ltwelcome-filegtHelloWorld.jsplt/welcome-filegt
lt/welcome-file-listgt lt/web-appgt
48
Quick first web application cont.
  • Create Geronimo plan
  • Although this sample application does not require
    it, you can still create Geronimo deployment plan
    to get first view.
  • Create geronimo-web.xml in WEB-INF directory
  • Package the application
  • From command prompt, go to ltapp_homegt directory
    and execute
  • jar cvf HelloWorld.war
  • Deploy the application
  • You can use Geronimo web console to deploy and
    run application
  • From command line your can use the deployer.jar
    to deploy application using
  • java -jar bin\deployer. jar --user system
    --password manager deploy sample\HelloWorld.war
  • Test the application
  • Test the application by pointing a Web browser to
    the following URL
  • http//localhost8080/hello

lt?xml version"1.0"?gt ltweb-app
xmlns"http//geronimo.apache.org/xml/ns/web"
xmlnsnaming"http//geronimo.apache.org/xml/ns/
naming" configId"HelloWorld"gt
ltcontext-rootgt/hellolt/context-rootgt lt/web-appgt
49
Getting Involved
50
What more? Geronimo 1.2
  • The next version of Geronimo is focused on
    several areas, including
  • Enhance the performance and usability of the
    server.
  • Improve cross-platform compatibility.
  • Improve integration with third-party development
    tools and server products.
  • Enhance configuration, administration and
    management tools.
  • Improve clustering support for web containers and
    EJBs.
  • J2EE 1.5 EJB 3, Web 2.5
  • Portal Server plugin

51
Getting Involved
  • Geronimo home page
  • http//geronimo.apache.org/
  • Future road map
  • http//issues.apache.org/jira/browse/GERONIMO?repo
    rtcom.atlassian.jira.plugin.system.projectroadma
    p-panel
  • Jira Bug tracking
  • http//issues.apache.org/jira/browse/GERONIMO
  • Subversion source code
  • http//geronimo.apache.org/svn.html
  • Mailing lists
  • user_at_geronimo.apache.org
  • dev_at_geronimo.apache.org
  • IRC
  • Irc.freenode.net - geronimo
  • Wiki
  • http//cwiki.apache.org/geronimo
  • Documentation
  • http//geronimo.apache.org/documentation.html

52
SummaryQA
Write a Comment
User Comments (0)
About PowerShow.com