Apache Geronimo

Last updated
Apache Geronimo
Developer(s) Apache Software Foundation
Stable release
3.0.1 (May 28, 2013;10 years ago (2013-05-28)) [±]
Repository
Written in Java
Operating system Cross-platform (JVM)
Type Web Application Server
License Apache License 2.0
Website geronimo.apache.org

Apache Geronimo is an open source application server developed by the Apache Software Foundation and distributed under the Apache license.

Contents

Geronimo 3, the current version, is compatible with the Java Enterprise Edition (Java EE) 6 specification and therefore supports technologies such as JMS, Enterprise JavaBeans, Connectors, servlets, JSP, JSF, Unified Expression Language and JavaMail. This allows developers to create enterprise applications that are portable and scalable, and that integrate with legacy technologies. The older Geronimo 2 is compatible with Java EE 5.

IBM has in the past provided considerable support to the project through marketing, code contributions, and the funding of several project committers. In October 2005, IBM announced a free edition of its WebSphere application server named Websphere Application Server Community Edition (WASCE), which is actually a distribution of Geronimo and despite its name not related to the commercial WebSphere server. [1] However, IBM has withdrawn marketing and support for WASCE in 2013. [2] Other commercial supporters included AMD, Chariot Solutions, Simula Labs, and Virtuas.

Activity on Apache Geronimo has now largely ceased. Previous prolific Geronimo committers like David Jencks and others who are at IBM are now working on the Liberty Profile application server. [3]

Components

Like an enterprise operating system, Geronimo is built on a kernel—a microkernel that lays the foundation for everything above it. Geronimo's kernel is Java EE agnostic. Its sole purpose is to manage Geronimo's building blocks. Geronimo is marked by an architectural design that is based on the concept of Inversion of Control (IoC) (sometimes called Dependency Injection), which means that the kernel has no direct dependency on any of its components. The kernel is a framework for services that controls the service life cycle and registry. The kernel is based on Java EE. It works with Java EE services and components to build specific configurations—one of which is a full Java EE solution stack.

A majority of the Geronimo services are added and configured through GBeans to become a part of the overall application server. A GBean is the interface that connects the component to the kernel. Each GBean can maintain state, depend on, and interrelate with other GBeans, and operate on events from the kernel and other GBeans. The GBeans interface makes it possible to switch between two servlet containers, for example Jetty or Tomcat, without affecting the whole architecture using a GBeans interface. This flexible architecture makes it possible for the Geronimo developers to integrate several existing field-tested open source software projects.

Here a list of the open source components that are included in the Geronimo project.

ComponentDescription
Apache Tomcat HTTP server and Servlet container supporting Java Servlet 2.5 and JavaServer Pages (JSP) 2.1.
Jetty HTTP server and Servlet container supporting Java Servlet 2.5 and JavaServer Pages 2.1—an alternative to the Tomcat server.
Apache ActiveMQ Open source Java Message Service (JMS) 1.1 applications provider and supporter of message-driven beans (MDBs).
Apache OpenEJB Open source Enterprise JavaBeans (EJB) Container System and EJB Server that supports Enterprise JavaBeans at the 3.0 level, including Container Managed Persistence 2 (CMP2) and EJB Query Language (EJB QL).
Apache OpenJPA Open source Java Persistence API (JPA) 1.0 implementation.
Apache ServiceMix Open source Enterprise Service Bus (ESB) and component suite based on the Java Business Integration (JBI) standard on JSR 208.
Apache Axis and Apache Scout Axis is a Simple Object Access Protocol (SOAP) implementation, while Scout is a JSR 93 (JAXR) implementation. These provide support for Web Services and Web Services Interoperability Organization (WS-I) Basic Profile support.
Apache CXF Web Services frameworks with variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.
Apache Derby Full-fledged relational database management system (RDBMS) with native Java Database Connectivity (JDBC) support.
Apache WADI Clustering, load balancing and failover solution for the web application container tier. (The project is currently in incubation under the Apache Incubator.)
MX4J Java Management Extensions that supplies tools for managing and monitoring applications, system objects, devices and service-oriented networks.

See also

Other Java EE application servers:

Related Research Articles

<span class="mw-page-title-main">OSGi</span> Open standards organisation

OSGi is an open specification and open source project under the Eclipse Foundation.

The Jakarta Messaging API is a Java application programming interface (API) for message-oriented middleware. It provides generic messaging models, able to handle the producer–consumer problem, that can be used to facilitate the sending and receiving of messages between software systems. Jakarta Messaging is a part of Jakarta EE and was originally defined by a specification developed at Sun Microsystems before being guided by the Java Community Process.

<span class="mw-page-title-main">Jakarta EE</span> Set of specifications extending Java SE

Jakarta EE, formerly Java Platform, Enterprise Edition and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Jakarta EE applications are run on reference runtimes, which can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components they are deploying.

An application server is a server that hosts applications or software that delivers a business application through a communication protocol. For a typical web application, the application server sits behind the web servers.

A web container is the component of a web server that interacts with Jakarta Servlets. A web container is responsible for managing the lifecycle of servlets, mapping a URL to a particular servlet and ensuring that the URL requester has the correct access-rights. A web container handles requests to servlets, Jakarta Server Pages (JSP) files, and other types of files that include server-side code. The Web container creates servlet instances, loads and unloads servlets, creates and manages request and response objects, and performs other servlet-management tasks. A web container implements the web component contract of the Jakarta EE architecture. This architecture specifies a runtime environment for additional web components, including security, concurrency, lifecycle management, transaction, deployment, and other services.

<span class="mw-page-title-main">Apache Tomcat</span> Java-based HTTP web server environment

Apache Tomcat is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies. It provides a "pure Java" HTTP web server environment in which Java code can also run. Thus it is a Java web application server, although not a full JEE application server.

<span class="mw-page-title-main">WebObjects</span> Java web application server and framework originally developed by NeXT Software

WebObjects is a discontinued Java web application server and a server-based web application framework originally developed by NeXT Software, Inc.

Jakarta Faces, formerly Jakarta Server Faces and JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications. It was formalized as a standard through the Java Community Process as part of the Java Platform, Enterprise Edition. It is an MVC web framework that simplifies the construction of user interfaces (UI) for server-based applications by using reusable UI components in a page.

Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring applications, system objects, devices and service-oriented networks. Those resources are represented by objects called MBeans. In the API, classes can be dynamically loaded and instantiated. Managing and monitoring applications can be designed and developed using the Java Dynamic Management Kit.

EGL, originally developed by IBM and now available as the EDT open source project under the Eclipse Public License (EPL), is a programming technology designed to meet the challenges of modern, multi-platform application development by providing a common language and programming model across languages, frameworks, and runtime platforms.

WebSphere Application Server (WAS) is a software product that performs the role of a web application server. More specifically, it is a software framework and middleware that hosts Java-based web applications. It is the flagship product within IBM's WebSphere software suite. It was initially created by Donald F. Ferguson, who later became CTO of Software for Dell. The first version was launched in 1998. This project was an offshoot from IBM HTTP Server team starting with the Domino Go web server.

<span class="mw-page-title-main">Apache Tapestry</span> Open-source web application framework

Apache Tapestry is an open-source component-oriented Java web application framework conceptually similar to JavaServer Faces and Apache Wicket. Tapestry was created by Howard Lewis Ship, and was adopted by the Apache Software Foundation as a top-level project in 2006.

The Java Portlet Specification defines a contract between the portlet container and portlets and provides a convenient programming model for Java portlet developers.

WebSphere Application Server Community Edition (WASCE) was a free-of-charge, certified Java EE 6 application server for building and managing Java applications. Until September 30, 2016, it was IBM's supported distribution of Apache Geronimo that usee Tomcat for servlet container and Axis 2 for web services. Another difference from Apache Geronimo is that WASCE came with Db2 and Informix database drivers, better XML parser libraries and contained the latest patches from unreleased upstream versions. Over 30 WASCE developers were committers in the Apache Geronimo project.

<span class="mw-page-title-main">GlassFish</span> Application server project

GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by Payara, Oracle and Red Hat. The supported version under Oracle was called Oracle GlassFish Server. GlassFish is free software and was initially dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the Classpath exception. After having been transferred to Eclipse, GlassFish remained dual-licensed, but the CDDL license was replaced by the Eclipse Public License (EPL).

Eclipse Jetty is a Java web server and Java Servlet container. While web servers are usually associated with serving documents to people, Jetty is now often used for machine to machine communications, usually within larger software frameworks. Jetty is developed as a free and open source project as part of the Eclipse Foundation. The web server is used in products such as Apache ActiveMQ, Alfresco, Scalatra, Apache Geronimo, Apache Maven, Apache Spark, Google App Engine, Eclipse, FUSE, iDempiere, Twitter's Streaming API and Zimbra. Jetty is also the server in open source projects such as Lift, Eucalyptus, OpenNMS, Red5, Hadoop and I2P. Jetty supports the latest Java Servlet API as well as protocols HTTP/2 and WebSocket.

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. The framework does not impose any specific programming model.. The framework has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is free and open source software.

OpenEJB is an open-source, embeddable and lightweight Enterprise JavaBeans Container System and EJB Server, released under the Apache License 2.0. OpenEJB has been integrated with Java EE application servers such as Geronimo and WebObjects.

Linux on IBM Z or Linux on zSystems is the collective term for the Linux operating system compiled to run on IBM mainframes, especially IBM Z / IBM zSystems and IBM LinuxONE servers. Similar terms which imply the same meaning are Linux/390, Linux/390x, etc. The three Linux distributions certified for usage on the IBM Z hardware platform are Red Hat Enterprise Linux, SUSE Linux Enterprise Server, and Ubuntu.

References

  1. "IBM WebSphere Application Server Community Edition 2018/04/19 11:48:21". www14.software.ibm.com. 24 February 2005. Archived from the original on 28 September 2013. Retrieved 19 April 2018.
  2. "Withdrawal Announcement" (PDF). ibm.com. Retrieved 19 April 2018.
  3. "Implementation components used by various Java EE servers". arjan-tijms.omnifaces.org. 6 May 2014. Retrieved 19 April 2018.

Bibliography