The State of the Art in Next-Generation Application Servers
A number of vendors are working on products that incorporate the concepts discussed above. In addition, a number of end-user, enterprise-IT organizations are building their own platforms based on similar architectures.
Prior to the Oracle acquisition, BEA invested significantly in the micro-services architecture (mSA). mSA served as a blue print for componentizing the BEA Platform. WebLogic Event Server (now Oracle Complex Event Processing, a component of the Oracle SOA Suite) is an excellent example of a micro-kernel architecture that runs entirely on OSGI. Oracle also has substantial grid and virtualization initiatives underway.
IBM is also participating in the OSGI alliance and using OSGI internally. WebSphere 7 runs in OSGI but the server runs as a small number of very large OSGI bundles so the benefits of this modularization are limited. OSGI is not available to the end-user applications. WebSphere XD, the high end WebSphere offering, adds “grid-like” features including asymmetric clustering techniques, an in-memory database cache and a highly advanced load balancer.
jBoss has invested in a micro-kernel for a number of years. jBoss implements a proprietary micro-kernel but jBoss also supports OSGI.
The SpringSource dm Server
The recently introduced SpringSource dm Server is a completely module-based Java application server that is designed to run next-generation enterprise Java applications and Spring applications. It is architected from the ground up to be an efficient platform for running Spring applications in a variety of environments including virtualized and elastic environments.
The heart of the dm Server is the SpringSource Dynamic Module Kernel™ (DM-Kernel) technology. The DM-Kernel provides a lightweight, fast, module-based backbone for the server. The DM-kernel has a footprint of about 3 megabytes. The server, including embedded Tomcat, has a footprint of about 15 megabytes. It boots in under 10 seconds. It does on-the-fly, dynamic provisioning of services. It runs Tomcat WAR files and Spring applications out of the box. Let’s take a look at why that makes a difference.
At SpringSource, we don’t have a legacy, application server code base to take forward, but we do have a very large number of Spring-based applications to consider. Our goal is to provide a seamless upgrade path for those applications. The advantage we have is that Spring is highly portable across a all of the Java EE application servers and Tomcat. That greatly simplifies the problem of bringing applications forward. But the engineers went one step further.
Since the majority of Spring applications run on Tomcat today, dm Server embeds Tomcat and dm Server runs WAR files out of the box. Spring applications and web applications can upgrade from Tomcat to dm Server completely seamlessly. Although WAR files run unchanged on dm Server, dm Server also provides the option of running those applications as OSGI bundles so that they can take full advantage of the capabilities of OSGI.
In designing dm Server, our goal was to build a container following Spring’s standards of simplicity, flexibility and power. dm Server offers significant benefits to both developers and to the operations team.
For the development team, dm Server provides a flexible and resilient development server that resolves the tricky application dependency problems frequently arise with Java EE application packaging. It also supports repeated incremental deployments without server restart which can shorten the iterative development-test cycle.
For the operations team, dm Server features seamless application and resource library upgrades, side-by-side version deployment and advanced serviceability features such as application monitoring and analysis from URL throughput to query, cache and transaction statistics.
The SpringSource dm Server is the foundation of the SpringSource Application Platform. The Platform is a collection of products designed to provide the optimal environment to build, run and manage enterprise Java applications that utilize Spring-based technologies. In addition to the SpringSource dm Server, the Platform includes SpringSource Enterprise that delivers the software, services, and technical support.
The design center for dm Server is for domains running across a mixed, elastic topology including physical and virtualized servers. Our vision is that Spring applications running on dm Server will be completely scalable and highly efficient running across these environments. When dm Server is deployed in a virtualized environment, the system initially only needs to boot the three-megabyte DM-Kernel. When the payload arrives and has been introspected, the required services are provisioned and started on the fly. Once the processing has been completed, the services are taken down and the resources immediately returned to the pool. Our clustering management architecture is designed from the ground up for this processing environment.
The SpringSource Enterprise Bundle Repository
SpringSource Bundle Repository provides OSGi-ready versions of hundreds of open source enterprise libraries that are commonly used when developing Spring applications for the dm Server. The repository contains jar files (bundles) and library definition (".libd") files. A library defines a collection of bundles that are often used together for some purpose (e.g. the "Spring Framework" library).
The application server market is in transition. The intersection of several trends is putting a squeeze on traditional Java EE application server architectures. On the one hand the maturation of the Java EE standard and the adoption of SOA is driving increasing footprint and complexity. On the other hand, developers are looking for lighter-weight containers that can help increase developer productivity. Virtualization and elastic computing are also driving requirements for lightweight, fast and flexible runtimes.
The Java EE 6 specification will provide profiles in response to these opposing requirements. Vendors are responding by moving towards more modular and flexible architectures. A new breed of application server is emerging. These application servers are lightweight, fast and flexible. They are frequently based a micro-kernel architecture, they can be configured to run multiple domain-specific services in combination and they are optimized for virtualized and elastic compute environments.
At SpringSource we are building a next-generation application server that we believe will address the requirements of the changing market.