Java IoT Authors: Liz McMillan, Elizabeth White, Roger Strukhoff, Yeshim Deniz, Pat Romanski

Related Topics: Java IoT

Java IoT: Article

Anatomy of a Java Application Server

Anatomy of a Java Application Server

Several folks in the computing industry think of 1999 as having been the "Year of the Application Server." But while the term application server itself may be a fairly recent addition to the software computing vocabulary, the application server market has already become one of the fastest-growing markets in n-tier computing. Business analysts estimate its value as being likely to reach the multibillion-dollar level in 2001.

In today's distributed computing environment, the term application server is associated with state-of-the-art technology. Perhaps that's why several vendors sell their products under the category of application servers, regardless of whether the product actually offers the features of a basic application server or not. For example, there are site builders, Web page designers, integrated development environments, Web development tools and enterprise-level development environments. The definition of what comprises an application server is more often than not open for interpretation.

What's an Application Server?
An application server is, by definition, "a computer server that serves applications." More precisely, an application server serves up application services. The main purpose of an application server is to reduce the workload of applications by taking over the responsibility of mundane activities involved in executing the application and making the application's services available to external modules in a reliable manner.

I'd like to take a stab at defining an application server as follows: an application server is a computer program that resides on a server in a distributed network and whose main function is to provide the business logic for an application program; an application server provides a customizable and flexible execution environment for hosting business logic components, thus providing distributed services and integrity for application execution.

Traditionally, the application server has been associated with three-tier applications. To recap, the components of a three-tier application are:

  1. Front-end client: Typically a graphical user interface on a personal computer, laptop or a workstation
  2. Middle-tier application: Typically a business logic application on a LAN or the intranet server
  3. Back-end application: Typically a database/transaction server that provides access to legacy or back-office data
An application server provides an execution environment that decouples front-end clients from back-end data access. The execution environment is supported by an infrastructure that enables integration among different applications. Application servers enable this integration by offering software components that can be used to create business logic for an enterprise application. The supporting infrastructure may include architectural frameworks such as messaging systems, transactional managers and database accessors.

Benefits of Application Servers
The Internet being the most powerful phenomenon driving application development and deployment today, application servers came into existence because of a need in the market to offer flexible, robust, extensible and standards-based enterprise applications that are developed at Internet speeds.

Internet applications are typically shared between multitudes of parties participating in e-business transactions. This necessitates standard architectures and frameworks that allow application hosting. Application servers provide the execution environment for Internet applications. Vendors in the application server market add value to the equation by taking over the burden of application hosting and offering commoditized products that enable organizations to concentrate their resources on building the applications themselves.

In some ways, the application server market is moving toward the space currently occupied by operating systems. Operating systems are developed and maintained by third-party vendors. Companies use operating system services to develop applications in their business niche. In the same way, application server vendors can provide third-party services for use by distributed application developers.

The benefits to an application development vendor of using a third-party application server are:

  • Better product focus
  • Abstraction
  • Indirection
  • Application interoperability
  • Better resource utilization
  • External support and maintenance
"Pre-Web" Application Servers

The first generation of application servers came into existence before the Web became popular. These "pre-Web" application servers may be categorized based on the types of services they offer. Each category of application server decouples the client from the actual source of the service. In some respects, the application server acts as a broker: the client requests a service; the application server then makes a request to the appropriate service provider and passes the results of the request back to the client.

We could categorize application servers based on the services they offer. Some pre-Web application servers are:

  • TP monitors
  • Data servers
  • Document servers
  • Distributed object servers

Back to Web Application Servers
Web application servers have emerged as a result of developments in the computing industry. Principal among these are:

  1. The acceptance of the Internet as the ubiquitous medium for data interchange
  2. The emergence of HTML as the ubiquitous format for data presentation
  3. The evolution of standard distributed component models
  4. The evolution of standard protocols for data transport
The Web is another environment that supports n-tier applications. Consequently, the Web application server is a natural by-product of the evolution of n-tier distributed application development.

Web application servers are a new type of Internet software. They're a result of combining HTTP servers with distributed component frameworks (which are also the basis for the distributed object servers mentioned above). Currently, most application server vendors offer a combination of object application servers and Web application servers. Each of the other categories of application servers mentioned above has also evolved into specific categories of Web application servers.

When you add the Web to an application server, you have, literally, a Web application server. But what does this actually mean? Let's go back to the basics. The Web, in its simplest definition, is a group of computers that communicate via the HTTP protocol — the communication medium being the Internet. Hence, a Web server is basically an HTTP server. Consequently, a Web application server is a server that makes an application's service available to the client over HTTP.

The relationship between Web application servers and Web servers is illustrated in Figure 1.

The top half of the figure shows an application server with an external Web server. The bottom half of the figure shows an application server with the Web server bundled in. Note that the only difference is in the packaging. In the latter case, the Web application server vendor bundles a Web server with his or her product. Such products should still be able to substitute their proprietary Web server with a third-party Web server.

Recipe for a Web Application Server
Let's take a look at what it takes to cook up a typical Web application server. As we've seen earlier in this article, a Web application server needs a Web server and an application execution environment. The application execution environment hosts business objects. The functionality of these business objects is exposed outside the application server in the form of programming interfaces. The execution environment itself comprises the following frameworks and services:

  • Object containers
  • Naming/directory services
  • Messaging/event framework
  • Communications framework
  • Security framework
  • Transaction framework
  • Data access framework
Figure 2 illustrates how these frameworks fit in an application server.

The Web client accesses the business objects of the Web application server via a Web browser. The request is made to the Web server, which forwards the request to the object container using the Naming Framework to find the business object. The Internet client uses a distributed communications protocol such as RMI, IIOP or DCOM (depending on the computing environment) to get to the application server. It also finds the desired object via the Naming Framework. The business objects exist in the context of an object container. Object containers expose the interfaces of the objects to the external world. The Communications Framework is used by the object containers for interobject communications. The application server interacts with other remote systems via the messaging, transaction and security frameworks. Data from the back-end tier is accessed via a Data Access Framework.

Application Server Computing Platforms
In some ways, operating systems can be considered as the "0th" generation of application servers. When life was simpler, the operating system hosted the application and handed computing resources to applications when required. The application developer had a certain degree of control over the execution environment. However, application development required knowledge of system-level programming. This knowledge was not portable — that is to say, application developers had to learn about completely new systems if they changed the computing platform. Application servers abstract application developers from the gory details of the operating system's execution environment. They do this by managing the interaction with the operating system for using system resources and offering these resources as application server services. Desired features of the runtime environment such as load balancing, fault tolerance, persistence and so on are offered by application servers for optimally running the application. Since application servers abstract the platform or operating system, one logical way to classify them is on the basis of the computing platform in which they execute.

Currently, there are two camps in the application server industry — the Windows (Microsoft) camp and the Java camp. Note that here we refer to the Java software platform, not Java the programming language, and so the comparison is between software computing platforms. The Windows platform enforces the operating system and corresponding hardware. On the other hand, the Java platform is a virtual platform that enforces the programming language but can run on a variety of operating systems and hardware platforms. In both cases, the application servers offered by these platforms meet the criteria of abstracting the application hosting details from the application providers.

Web and Java Application Servers
As mentioned earlier in this article, the class of application servers that comprises a component of Web architectures comes under the umbrella of Web application servers. Simply put, Web application servers serve application services over HTTP (Hypertext Transfer Protocol). A Web application server is always associated with a corresponding Web server. Today's distributed applications that leverage the features of the Sun Microsystems Java platform often base their architecture on one or more Web application servers. Similarly, when someone mentions application servers today, it's more than likely that they're talking about application servers that support the Java platform. Such application servers are often called "Java Application Servers." The application servers discussed in previous articles are all either based on the Java platform or integrate with the Java platform.

Java Platform Application Servers
Java application servers are a by-product of Java's increasing presence in server-side middleware and the definition of Java Enterprise APIs by Sun Microsystems in collaboration with its industry partners. Java Enterprise APIs define enterprise-level services for server-side deployments. As described earlier in this article, the appearance of application servers in the market dates back to when the concept of multitiered computing became popular. These application servers provided a hosting environment for middleware components. Before the stabilization of the Java Enterprise APIs, however, the definition of middleware components for a ubiquitous software platform was not uniform across operating systems. So the application servers were operation-system—specific.

Consequently, each of these application servers provided middleware services in a proprietary way, making portability and reuse of the components difficult. The emergence of the Java Enterprise APIs has enabled the definition of a standard architecture for middleware components composed of business objects. This architecture clearly defines well-formed interfaces between the application server's object containers and the objects or components themselves. In Java this is made possible by:

  • A standards object model (EJB) for designing business objects
  • Uniform APIs for accessing the business objects (remote interfaces)
  • Container APIs for interacting with the vendor's mechanisms for accessing system resources (home interfaces)
  • APIs for finding the business objects (JNDI)
  • Standard means of accessing these components through a distributed protocol (Java servlets, RMI)
  • Standard APIs for connecting to back-office data sources
The above elements form the components for a basic Java application server. This is illustrated in Figure 3.

Note that this is a version of Figure 2 with Java-specific technologies. (Not all of the technologies that play a part in Java application servers are shown in the figure.)

Trading Places
The application server market is evolving rapidly. In a couple of years, the survivors of the current "app server wars" will emerge. Java has been instrumental in getting application servers the attention that they're currently receiving — because Java adds hardware platform independence for the implementation and use of application servers, vastly enhancing their scope. As J2EE and the EJB model matures and industrial-strength applications are developed using this model, Java application servers will continue to play a crucial role in the development of enterprise-level distributed applications.

More Stories By Ajit Sagar

Ajit Sagar is Associate VP, Digital Transformation Practice at Infosys Limited. A seasoned IT executive with 20+ years experience across various facts of the industry including consulting, business development, architecture and design he is architecture consulting and delivery lead for Infosys's Digital Transformation practice. He was also the Founding Editor of XML Journal and Chief Editor of Java Developer's Journal.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

@ThingsExpo Stories
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City. Digital Transformation (DX) is a major focus with the introduction of DXWorldEXPO within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of bus...
Cloud Expo | DXWorld Expo have announced the conference tracks for Cloud Expo 2018. Cloud Expo will be held June 5-7, 2018, at the Javits Center in New York City, and November 6-8, 2018, at the Santa Clara Convention Center, Santa Clara, CA. Digital Transformation (DX) is a major focus with the introduction of DX Expo within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive ov...
DXWordEXPO New York 2018, colocated with CloudEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to one location.
DXWorldEXPO LLC announced today that ICOHOLDER named "Media Sponsor" of Miami Blockchain Event by FinTechEXPO. ICOHOLDER give you detailed information and help the community to invest in the trusty projects. Miami Blockchain Event by FinTechEXPO has opened its Call for Papers. The two-day event will present 20 top Blockchain experts. All speaking inquiries which covers the following information can be submitted by email to [email protected] Miami Blockchain Event by FinTechEXPO also offers s...
DXWorldEXPO | CloudEXPO are the world's most influential, independent events where Cloud Computing was coined and where technology buyers and vendors meet to experience and discuss the big picture of Digital Transformation and all of the strategies, tactics, and tools they need to realize their goals. Sponsors of DXWorldEXPO | CloudEXPO benefit from unmatched branding, profile building and lead generation opportunities.
Dion Hinchcliffe is an internationally recognized digital expert, bestselling book author, frequent keynote speaker, analyst, futurist, and transformation expert based in Washington, DC. He is currently Chief Strategy Officer at the industry-leading digital strategy and online community solutions firm, 7Summits.
Digital Transformation and Disruption, Amazon Style - What You Can Learn. Chris Kocher is a co-founder of Grey Heron, a management and strategic marketing consulting firm. He has 25+ years in both strategic and hands-on operating experience helping executives and investors build revenues and shareholder value. He has consulted with over 130 companies on innovating with new business models, product strategies and monetization. Chris has held management positions at HP and Symantec in addition to ...
Cloud-enabled transformation has evolved from cost saving measure to business innovation strategy -- one that combines the cloud with cognitive capabilities to drive market disruption. Learn how you can achieve the insight and agility you need to gain a competitive advantage. Industry-acclaimed CTO and cloud expert, Shankar Kalyana presents. Only the most exceptional IBMers are appointed with the rare distinction of IBM Fellow, the highest technical honor in the company. Shankar has also receive...
Enterprises have taken advantage of IoT to achieve important revenue and cost advantages. What is less apparent is how incumbent enterprises operating at scale have, following success with IoT, built analytic, operations management and software development capabilities - ranging from autonomous vehicles to manageable robotics installations. They have embraced these capabilities as if they were Silicon Valley startups.
Poor data quality and analytics drive down business value. In fact, Gartner estimated that the average financial impact of poor data quality on organizations is $9.7 million per year. But bad data is much more than a cost center. By eroding trust in information, analytics and the business decisions based on these, it is a serious impediment to digital transformation.
The standardization of container runtimes and images has sparked the creation of an almost overwhelming number of new open source projects that build on and otherwise work with these specifications. Of course, there's Kubernetes, which orchestrates and manages collections of containers. It was one of the first and best-known examples of projects that make containers truly useful for production use. However, more recently, the container ecosystem has truly exploded. A service mesh like Istio addr...
Predicting the future has never been more challenging - not because of the lack of data but because of the flood of ungoverned and risk laden information. Microsoft states that 2.5 exabytes of data are created every day. Expectations and reliance on data are being pushed to the limits, as demands around hybrid options continue to grow.
As IoT continues to increase momentum, so does the associated risk. Secure Device Lifecycle Management (DLM) is ranked as one of the most important technology areas of IoT. Driving this trend is the realization that secure support for IoT devices provides companies the ability to deliver high-quality, reliable, secure offerings faster, create new revenue streams, and reduce support costs, all while building a competitive advantage in their markets. In this session, we will use customer use cases...
Business professionals no longer wonder if they'll migrate to the cloud; it's now a matter of when. The cloud environment has proved to be a major force in transitioning to an agile business model that enables quick decisions and fast implementation that solidify customer relationships. And when the cloud is combined with the power of cognitive computing, it drives innovation and transformation that achieves astounding competitive advantage.
Digital Transformation: Preparing Cloud & IoT Security for the Age of Artificial Intelligence. As automation and artificial intelligence (AI) power solution development and delivery, many businesses need to build backend cloud capabilities. Well-poised organizations, marketing smart devices with AI and BlockChain capabilities prepare to refine compliance and regulatory capabilities in 2018. Volumes of health, financial, technical and privacy data, along with tightening compliance requirements by...
With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, @CloudEXPO and DXWorldEXPO are two of the most important technology events of the year. Since its launch over eight years ago, @CloudEXPO and DXWorldEXPO have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, we provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading...
The best way to leverage your Cloud Expo presence as a sponsor and exhibitor is to plan your news announcements around our events. The press covering Cloud Expo and @ThingsExpo will have access to these releases and will amplify your news announcements. More than two dozen Cloud companies either set deals at our shows or have announced their mergers and acquisitions at Cloud Expo. Product announcements during our show provide your company with the most reach through our targeted audiences.
The IoT Will Grow: In what might be the most obvious prediction of the decade, the IoT will continue to expand next year, with more and more devices coming online every single day. What isn’t so obvious about this prediction: where that growth will occur. The retail, healthcare, and industrial/supply chain industries will likely see the greatest growth. Forrester Research has predicted the IoT will become “the backbone” of customer value as it continues to grow. It is no surprise that retail is ...
Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereal. Andrew's role at ConsenSys Enterprise is a mul...
DXWorldEXPO LLC announced today that "Miami Blockchain Event by FinTechEXPO" has announced that its Call for Papers is now open. The two-day event will present 20 top Blockchain experts. All speaking inquiries which covers the following information can be submitted by email to [email protected] Financial enterprises in New York City, London, Singapore, and other world financial capitals are embracing a new generation of smart, automated FinTech that eliminates many cumbersome, slow, and expe...