Peter has posted 1 posts at DZone. View Full User Profile

Changes in the Application Server Market

11.21.2008
| 26682 views |
  • submit to reddit

SOA

The impact of SOA on the enterprise software infrastructure market has been substantial. A variety of architectural components designed to orchestrate the creation, deployment and management of services have been brought to market in the past several years. However, application servers continue to play an important role as endpoints in a SOA environment.  After all, the code still has to run somewhere!  SOA has increased the importance of domain-specific containers such as web services servers, brokers and gateways. Frequently these domain-specific containers are implemented on top of the Java EE application servers.

Another significant impact is the increased importance of event driven architecture (EDA).  With increasing frequency, code is executed as a result of an event trigger rather than as a result of a user interacting with a web browser. 

What this all means for the application server is that there is an increasing demand on the server to support a larger number of container types and execution models. As the legacy Java EE application servers have continued to heap these containers onto their stack the footprint of the products has grown dramatically and the products have become increasingly unwieldy.

Data Center Consolidation

Data center consolidation has also had a substantial impact on the run-time aspects of the application server.  The proliferation of data, code and hardware has increased data center utilization and cost to the point where CIOs have had to deal with the problem. One common approach to addressing this has been data center consolidation. Data center consolidation is intended to reduce cost through a variety of approaches but in the past few years the principal focus has been on real estate (measured in lab space required to host the hardware), and power consumption. We will examine each of these areas in more detail below.

Power consumption is a function of both the electricity that each server consumes to run it and the air conditioning needed to keep the servers cool. The power bill to run a typical server can exceed the cost of the hardware in about two years.

In order to address this problem CIOs are looking for technology that allows them to do more processing with less hardware. Server utilization has been studied and discussed extensively. Studies showing server utilization of less than 50% are common. A fully utilized server doesn’t use any more energy or take up any more space than a 50% utilized server. So, increasing utilization is generally recognized as a valid approach to the problem. Increasingly, the approach to increased server utilization has been through a combination of virtualization and elasticity.

Virtualization and Elasticity

There are multiple variations and approaches to virtualization but hardware virtualization is the most common.  Hardware virtualization involves slicing up a physical server into multiple virtual spaces. Each space provides a complete compute environment. When fully optimized, hardware virtualization can drive additional requirements onto the application server.

In order to make efficient use of resources and keep down hardware footprint and power consumption, an application server design that is optimized for virtualized environments will be lightweight, fast and flexible.
A data center can be “right sized”, or built with minimal extra capacity if the application infrastructure can expand across additional compute resources elastically. Increasingly, administration tools must be able to interact with the virtualization layer to coordinate optimal resource utilization and expand to additional compute resources when needed. The tools must allow the administrator to define service level agreements, monitor resource utilization, provision additional servers and services to meet compute requirements and start and stop services on demand.  The tools must also scale to large numbers of servers.

To get the workload to the right server, the system also requires a workload controller (a load balancing router that is payload-aware) and a service locator that knows how to find a server that has been provisioned to run the payload.

The overall management domain architecture must be flexible and highly scalable. It must accommodate mixed topologies spanning physical hardware, virtualized environments and elastic environments.

The Squeeze Effect

We have discussed how several industry trends are driving change in application server designs. On the one hand, the maturity of Java EE and SOA are both driving increased footprint in the Java EE app servers. On the other hand, developers are looking for better productivity with lightweight containers. Data center consolidation is also driving requirements for lightweight, fast and flexible deployment architectures. The convergence of these diametrically opposed requirements creates a challenge for the traditional J2EE application servers.  

The Java EE 6 profiles are intended to address this by providing Java EE certification and branding at multiple tiers. However, the traditional application servers were not architected for modularity. They are not designed to provision, start and stop services on demand, and their designs are not optimized for virtual and elastic environments. They are anything but lightweight. The challenges of evolving these architectures to meet the new requirements while maintaining backwards compatibility are substantial. This is creating an opportunity for new entrants in the market. We will examine some of the key characteristics of these new entrants in the following sections.

The New Breed of Application Server

A new breed of application server is emerging. This new application server has a small, in-memory footprint. It starts fast and runs fast. It has a highly modular architecture and it can host a variety of services and domain-specific containers. It can respond to directives from a “grid controller” and it can provision, deploy, start, stop and tear down services on the fly. It runs efficiently in an elastic topology that may span heterogeneous physical hardware and virtualized hardware.  We’ll take a look at a few of the important characteristics that define the breed.

Micro-Kernel Architectures

The next generation application server has the ability to host multiple, domain-specific services or container types on a common backplane or microkernel. The application server can be configured to execute different services. The microkernel manages the lifecycle of services and the interdependencies between the services. Configuration may be either static (require reboot) or dynamic. The microkernel usually has a small in-memory footprint.

OSGI

OSGi is a framework that defines an application life cycle model, a component model, a service registry and an execution environment for services (modules.) Applications are deployed against the OSGI backplane in the form of bundles. Bundles can be installed, started, stopped, updated and uninstalled without restarting the backplane. Services can detect the addition of new services and adapt appropriately.
OSGI is widely deployed in embedded systems running in cell phones, automobiles and PDAs. It is also beginning to emerge in grid computing and application servers. The Eclipse IDE embeds OSGI.
A number of the micro-kernel projects in development today incorporate OSGI. Some architectures use OSGI internally while others expose OSGI to the end-user application.
OSGI is backed by an organization called the OSGI Alliance. A number of the major vendors participate in the OSGI Alliance. Although enterprise software adoption of OSGI is still in the early stage, it is conceivable that OSGI will one day obtain the stature of Java EE as a component model for low-level Java infrastructure.

Distributed Data Cache

In order for distributed systems to execute efficiently, the data that each service needs to operate on needs to be readily accessible to that service. The data needs to either reside locally or be cached locally.  Distributed data caches are designed to address this problem. Most of the application servers today already work with distributed data caches but over time we will see application servers use the cache more extensively for internal data stores such as replicated session state.

Event Driven Architecture

The next generation container doesn’t necessarily expect to be invoked by a browser. More frequently code execution will be triggered by a process generated event. Events frequently arrive in the form of a message. The architecture is optimized towards reacting to a variety of event stimuli.
Messaging
Components of enterprise software solutions are frequently loosely coupled and communication between components is implemented by a messaging system or an enterprise service bus (ESB). The next generation platform will support a variety of messaging formats and standards including JMS. Messaging will also continue to be used heavily in the practice of software integration.

Integration

Integration with pre-existing systems, data formats, message formats and 3rd-party software, will continue to be important. The next generation application server will support both standards-based and pattern-based integration.

Service Fabrics

Whereas many enterprise applications currently run on fixed clusters of servers, in the future, applications will frequently run across a dynamic, loosely-coupled and elastic configuration of servers. This configuration is sometimes referred to as a service fabric. This concept applies equally to service oriented architectures and next generation compute environments. The fabric is usually heterogeneous. Some or all of the servers included are frequently virtualized. The fabric is managed by a controller that has the ability to discover the state of the servers and can also interact with the virtualization or grid layer to coordinate resource availability. The system includes a router, or software load balancer that can route work to servers based on payload and resource availability.  The fabric has the ability to expand by adding servers including servers that run in a compute cloud environment.

The new application servers are architected to run efficiently in a fabric environment. They can be discovered, and dynamically provisioned. They can receive payloads and execute chunks of processing independently and asynchronously. The output of a service may trigger a subsequent service request. 
There is a broad spectrum between a container that runs efficiently in a virtualized environment and the fully developed service fabric architecture. It is likely that there will be implementations at various points on that spectrum.

Published at DZone with permission of its author, Peter Cooper-Ellis.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Ryan Developer replied on Fri, 2008/11/21 - 9:21am

I enjoyed reading this article, good job!

I noticed mention of WebSphere, WebLogic, Jboss, Tomcat and Spring dM server, but was really surprised to see no mention of of GlassFish V3. GlassFish V3 Prelude was just release and is commercially supported.  It uses OSGi modular architecture, starts very fast, has a low memory footprint, is designed for everything you talked about this article, and will be the reference implementation of Java EE 6.  That's a pretty important (and maybe strategic?) ommission!

Guillaume Jeudy replied on Fri, 2008/11/21 - 9:39am

Nice article!  I'm only a bit disappointed with an article that first announced itself to be an objective analysis of the java app server market and ended up being an advertisement for spring source DM server.

 I have no doubt this new app server will bring an excellent offering I am just disappointed that the analysis didn't go into a comparison feature by feature to see exactly where each java EE server offering stands.

I am also glad to realize that jboss (the app server im using) is really the precursor to the lightweight app server model and has already several years of expertise in a light-weight microkernel + hot deployable modular services architecture.

 To me the main pro with spring DM server is the absence of backward compatibility requirements which probably helped alot in designing a suitable architecture to fulfill all the requirements mentioned in this article.

 

Richard Nicholson replied on Fri, 2008/11/21 - 10:16am

Peter,

Nice article.

 Given the comment (extract below), surprised that you didn't reference the only vendor Service Fabric (and only production distributed OSGi runtime) presently available - which btw - supports Spring / Spring DM - i.e. our (Paremus) Infiniflow Service Fabric - ( see www.paremus.com).

So your prediction is real - and available now.

Cheers

Richard 

"Service Fabrics

Whereas many enterprise applications currently run on fixed clusters of servers, in the future, applications will frequently run across a dynamic, loosely-coupled and elastic configuration of servers. This configuration is sometimes referred to as a service fabric. This concept applies equally to service oriented architectures and next generation compute environments. The fabric is usually heterogeneous. Some or all of the servers included are frequently virtualized. The fabric is managed by a controller that has the ability to discover the state of the servers and can also interact with the virtualization or grid layer to coordinate resource availability....... "

Werner Keil replied on Fri, 2008/11/21 - 4:16pm

I also find it quite decent and educated.

The fact, that despite BEA's componentization and early adoption of both Spring and OSGi their AppServer has to be part or foundation for a completely different Portal by Oracle now (abandoning not only the BEA efforts into Eclipse and Workshop, but also pretty much trashing its Portal) raises many doupts in this area.

 On the other hand, Portal technology as such and even the Portlet standard gets more and more competition from e.g. all the Social Networking front. Which by personalizing or custom styling a community-based Web UI those gain more and more of what Portals used to be. I believe even a Portlet 3.0 might have to arise from this unless Java EE (or Portal technology on top of it) standards may want to become less relevant here, too. Spring of course won't do without Java. And even adding Grails to their portfolio rather strenghtens Java as a whole against other languages. 

Alex(JAlexoid) ... replied on Sat, 2008/11/22 - 7:21am

Great article...

However, there should have been 2 great articles: Changes in the Application Server Market* and Next-Generation Application Server Spring dm Server.

* - I basically skipped the first 2 pages of this article, since it was too acedemic and dead boring for me... since I already know that just too well.

Reza Rahman replied on Sun, 2008/11/23 - 2:00pm

I'm glad someone from SpringSource included a decent discussion of Java EE 6 and other application servers besides the SpringSource application platform, even despite the GlassFish ommission.

Let's hope this is indeed the dawn of a new era in Java EE/application servers.

Cheers,

Reza

James Selvakumar replied on Tue, 2008/11/25 - 8:40pm

It's still pathetic to see people ignoring the importance of Glassfish. In my opinion, Glassfish is the best application server in the market currently with it's modular architecture. It's fast, it's responsive, it's stable and also lightweight (especially when compared to WebSphere and Weblogic).

serena lin replied on Thu, 2009/08/06 - 12:17am

Generally speaking, you have written a good post , as i think. something has new appeared showded this year on new models Nike Air Max 90' nike air max 95' nike air max 2009etc so many editions on market, if you are interested in such perfect outstanding works on Nike , you will get what you needed, the only way to approaching is get the link: http://www.airmaxmall.com  <a href="http://www.airmaxmall.com">Link Text</a>

 

serena lin replied on Thu, 2009/08/06 - 12:19am

thank you for share this nice article, prepared to receive new mirachels on Nike Air Max new versions, i really liked it. andwhat about you?  <a href="http://www.airmaxmall.com">Link Text</a>

Gurkan Erdogdu replied on Fri, 2011/04/22 - 12:34am

Lightweight, small memory footprint and fast startup time. These are the important items for developers and administrators. We have launched Siwpas (http://siwpas.mechsoft.com.tr) from this view of point.

Liezel Jane Jandayan replied on Thu, 2011/08/18 - 8:23pm

Application servers represent a way to implement high availability systems. High-availability software markets bring stringent requirements for maintaining the support and confidence of the overall technical computing market. Application servers offer seamless private and public business process management. They allow companies to maximize e-business opportunities by leveraging existing resources to improve speed-to-market and anticipate IT changes as their business changes.

 

http://yochananberkowitz.com/

Paul Web replied on Tue, 2011/10/11 - 10:36pm

It's obvious that the evolution of architechture will be dominated by the ever-increasing demands of SOA as the trend toward 'cloud' computing is more and more mainstream. Java EE while solid and a well-established protocol sill need major revision if it is to remain competitive, which makes me think that another, newer standard would be more appropriate, developed from the ground up.

Paul - Dedicated Server Hosting UK

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.