Digital Edition

SYS-CON.TV
Next Generation Application Servers
Next Generation Application Servers

Introduction
The original developers of the World Wide Web had a rather limited vision for their invention, create an application that would allow users to publish and link their documents without regard for the location of the documents or the platforms on which they resided. However, as developers discovered the flexibility and promise of the underlying protocols, the scope of information available to users began to expand beyond static content.

The methods of accessing this information also changed. Previously, information residing in legacy systems and databases was accessed via limited, expensive, and proprietary solutions. As web technology matured, the information could now be provided to users via applications that accessed the back-end datasources and presented the information to client browsers. These first web-based reporting front-ends for legacy databases ultimately grew in functionality and yielded the first application servers.

This article will explore the evolution of the application server from these initial reporting tools to the robust standardized platforms they have become. We will then define the requirements for the next generation of application servers given today's dynamic business environment and the heterogeneity of system architectures.

First Generation Application Servers
The first application servers to appear on the market were innovative products for quickly generating web-based interfaces to legacy data stores. These products either provided fancy user interfaces and streamlined HTML generation or they excelled at back end integration with potentially less emphasis on the presentation of data. However, they all shared the basic functionality of connecting to back end systems, communicating to client browsers, and providing a framework for defining application business logic.

These first efforts addressed the need to provide a rapid development environment for the web tier given that initial in-house efforts by developers were rather complex and hard-to-manage combinations of scripting languages (e.g. perl, tcl) and native executables written in C or C++. The development tools provided with application servers supplied a coherent platform on which to develop and a repeatable process for generating the target applications.

Although the emerging application server market offered some exciting new possibilities, there were still some distinct shortcomings to the technology. The initial offerings were CGI based and therefore did not address the failure recovery and scalability requirements expected of existing enterprise applications. Additionally, and possibly most importantly, the initial offerings did not offer a cohesive, standardized platform for web application development. Each of the vendors offered a proprietary solution that required a fairly advanced developer to learn a new set of skills in order to fully leverage the given solution; the knowledge the user gained was generally not transferable. As a consequence, choosing software for a web-based application was a rather ambitious task of sorting through and evaluating many products from different vendors such as Web Servers, web page templating engines, business component frameworks and databases.

Recognizing the need for a uniform approach to web application development, Sun pulled together a collection of enterprise APIs and created the Java 2 Enterprise Edition (J2EE) platform.

Second Generation Application Servers
The release of J2EE 1.0, in addition to the performance gains achieved with the release of the Hotspot Java Virtual Machine (JVM), spawned the second-generation of application servers. Given Java's growing popularity, most vendors had already moved towards leveraging the Java platform for deployment of their server components. Now they undertook a re-architecting or re-implementation of the core components of the existing application servers to comply with the defined J2EE APIs. With their common support for servlets, Java Server Pages (JSP), and Enterprise Java Beans (EJB), developers were afforded standard component models they could leverage to create relatively portable web based applications.

The development of the J2EE standard also yielded a strong impetus for continued innovation as vendors attempted to differentiate themselves from one another in order to fight the effects of commoditization. Various companies attempted to set themselves apart by providing advanced enterprise features such as load balancing, clustering, and legacy data access. In addition, tailored solutions for customer management, business-to-business integration, and XML support were put forth as significant differentiators.

As application servers grew in acceptance and as more APIs were rolled into the J2EE platform, developers wished to leverage them in increasingly varied deployment environments. Often the incorporation of a new or modified J2EE API meant the disassembly of mature working parts of the server so that a new technology could be integrated into the existing components. Moreover, rapidly evolving requirements for supporting heterogeneous client devices, deployment platforms, and back end data sources further steered vendors to constantly re-tool and adapt the existing application servers. Certain companies recognized the need to create a new, much more adaptable architecture in order to more rapidly and effectively address the customers' needs for rapid support of emerging technologies.

Third Generation Application Servers
The increasing velocity of business and constant emergence of new and exciting technologies created the need for a new generation of application servers. This third generation is designed to support an extensive list of component-based architectures. Today's dynamic web environment led certain vendors to gravitate towards the notion of a services-oriented architecture to provide a cohesive platform for the components that together constitute a J2EE application server.

A services framework hosts a set of independent but cooperating services. Each service remains isolated and exposes only specific declared interfaces to other services. Thus, architects are able to engineer new services quickly by adhering to an explicitly defined interface. In addition, since services are isolated components (with potentially some dependencies on other services) architects can tailor the footprint of the application server to match the business needs mandated by the deployed application or the memory footprint of the deployment platform. For example, an application server instance that has no deployed EJB components can have its EJB container service (and any supporting services) removed, yielding a more streamlined and lightweight platform.

Furthermore, this architecture provides a foundation for not only supporting existing requirements but also dynamically extending the platform to meet specific business needs. Services can be added or removed without disrupting the design or operation of other services. Moreover, all services in the framework share the same support services afforded by the underlying service framework. There is no need to address evolving requirements not directly supported by the J2EE model by integrating some third party application. Rather, the application server itself can be easily extended to support this new facility.

The Web services initiatives currently under way are a prime example of technology that can benefit from this rapid deployment and availability model; as the components that encompass new Web services are created they can be dynamically linked into existing application servers with little effort.

Recognizing the utility of this architecture, many vendors (including Apache, HP, Lutris, IBM, ATG, Sun, and others) have begun an effort to standardize the service API through the Java Community Process (JCP). Java Specification Request (JSR) 111 puts forth the concept of the Java Services Framework. This initiative aims to formalize the service model and standardize the way in which service components are written and deployed. When completed, the Java platform will provide standardized support for service development.

This granular approach to application server assembly, in addition to the JSR standardization effort, yields exciting opportunities for vendors to offer best-of-breed application server components. The breadth and growth rate of the J2EE platform has made it increasingly difficult for any company to effectively keep pace with the requirements made of a fully compliant application server. A service-based approach opens the door for vendors to specialize in a particular J2EE or enterprise technology and offer it as a pluggable service that can be leveraged by a compliant services framework. One can also envision open source projects that produce pluggable enterprise domain services that customers can use in their application server infrastructure.

Thus, the next generation of service oriented application servers appearing on the market today yield a highly secure, reliable, extensible, and maintainable platform. As the set of APIs and technologies that application servers offer continue to evolve, they will define the platform to which developers design, develop, and deploy their business applications. These next generation application servers define a new operating environment - a highly adaptable and configurable environment on which future generations of Web services will reside.

Resources
HP Application Server - http://www.bluestone.com/products/hp-as/default.htm
Lutris Enhydra - http://www.lutris.com
Apache Avalon Project - http://jakarta.apache.org/avalon/index.html
JCP JSR-111 - http://www.jcp.org/jsr/detail/111.jsp

About Jon Maron
Jonathan Maron is a Distinguished Engineer with Hewlett-Packard's Middleware Division. He was the lead on HP Bluestone's J2EE 1.2 compatibility effort. He was also principle architect of the Bluestone EJB 1.1 server and is a member of the Javasoft EJB and J2EE Expert Groups. He has published several articles on J2EE-related topics. Jon can be reached at jonathan_maron@hp.com.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

For true distributed computing and distributed infrastructures for IT Systems for intranet/internet, there needs to be evolution of web-serice-brokers that are the backbone of this service oriented app-servers mentioned here. A very generic platform and protocol would allow a new application server to register itself as well as provide services over the internet ... app servers and associated development team would be the recipients of the services. Maybe soap/wsl have already addressed this...if so I would like any more information on that.




ADS BY GOOGLE
Subscribe to the World's Most Powerful Newsletters

ADS BY GOOGLE

The question before companies today is not whether to become intelligent, it’s a question of how and...
While some developers care passionately about how data centers and clouds are architected, for most,...
ChatOps is an emerging topic that has led to the wide availability of integrations between group cha...
As DevOps methodologies expand their reach across the enterprise, organizations face the daunting ch...
As Marc Andreessen says software is eating the world. Everything is rapidly moving toward being soft...
You know you need the cloud, but you’re hesitant to simply dump everything at Amazon since you know ...
Is advanced scheduling in Kubernetes achievable?Yes, however, how do you properly accommodate every ...
The cloud era has reached the stage where it is no longer a question of whether a company should mig...
The need for greater agility and scalability necessitated the digital transformation in the form of ...
In his keynote at 18th Cloud Expo, Andrew Keys, Co-Founder of ConsenSys Enterprise, provided an over...
Coca-Cola’s Google powered digital signage system lays the groundwork for a more valuable connection...
In his session at 21st Cloud Expo, Raju Shreewastava, founder of Big Data Trunk, provided a fun and ...
"Since we launched LinuxONE we learned a lot from our customers. More than anything what they respon...
DevOps is under attack because developers don’t want to mess with infrastructure. They will happily ...
"As we've gone out into the public cloud we've seen that over time we may have lost a few things - w...
In his session at 21st Cloud Expo, Michael Burley, a Senior Business Development Executive in IT Ser...
Sanjeev Sharma Joins June 5-7, 2018 @DevOpsSummit at @Cloud Expo New York Faculty. Sanjeev Sharma is...
We are given a desktop platform with Java 8 or Java 9 installed and seek to find a way to deploy hig...
"I focus on what we are calling CAST Highlight, which is our SaaS application portfolio analysis too...
"Cloud4U builds software services that help people build DevOps platforms for cloud-based software a...