Java IoT Authors: Stackify Blog, Pat Romanski, Matt Lonstine, Glenda Sims, Paul Simmons

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
"Space Monkey by Vivent Smart Home is a product that is a distributed cloud-based edge storage network. Vivent Smart Home, our parent company, is a smart home provider that places a lot of hard drives across homes in North America," explained JT Olds, Director of Engineering, and Brandon Crowfeather, Product Manager, at Vivint Smart Home, in this SYS-CON.tv interview at @ThingsExpo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
SYS-CON Events announced today that Conference Guru has been named “Media Sponsor” of the 22nd International Cloud Expo, which will take place on June 5-7, 2018, at the Javits Center in New York, NY. A valuable conference experience generates new contacts, sales leads, potential strategic partners and potential investors; helps gather competitive intelligence and even provides inspiration for new products and services. Conference Guru works with conference organizers to pass great deals to gre...
The Internet of Things will challenge the status quo of how IT and development organizations operate. Or will it? Certainly the fog layer of IoT requires special insights about data ontology, security and transactional integrity. But the developmental challenges are the same: People, Process and Platform. In his session at @ThingsExpo, Craig Sproule, CEO of Metavine, demonstrated how to move beyond today's coding paradigm and shared the must-have mindsets for removing complexity from the develop...
In his Opening Keynote at 21st Cloud Expo, John Considine, General Manager of IBM Cloud Infrastructure, led attendees through the exciting evolution of the cloud. He looked at this major disruption from the perspective of technology, business models, and what this means for enterprises of all sizes. John Considine is General Manager of Cloud Infrastructure Services at IBM. In that role he is responsible for leading IBM’s public cloud infrastructure including strategy, development, and offering m...
"Evatronix provides design services to companies that need to integrate the IoT technology in their products but they don't necessarily have the expertise, knowledge and design team to do so," explained Adam Morawiec, VP of Business Development at Evatronix, in this SYS-CON.tv interview at @ThingsExpo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
To get the most out of their data, successful companies are not focusing on queries and data lakes, they are actively integrating analytics into their operations with a data-first application development approach. Real-time adjustments to improve revenues, reduce costs, or mitigate risk rely on applications that minimize latency on a variety of data sources. In his session at @BigDataExpo, Jack Norris, Senior Vice President, Data and Applications at MapR Technologies, reviewed best practices to ...
Widespread fragmentation is stalling the growth of the IIoT and making it difficult for partners to work together. The number of software platforms, apps, hardware and connectivity standards is creating paralysis among businesses that are afraid of being locked into a solution. EdgeX Foundry is unifying the community around a common IoT edge framework and an ecosystem of interoperable components.
Large industrial manufacturing organizations are adopting the agile principles of cloud software companies. The industrial manufacturing development process has not scaled over time. Now that design CAD teams are geographically distributed, centralizing their work is key. With large multi-gigabyte projects, outdated tools have stifled industrial team agility, time-to-market milestones, and impacted P&L stakeholders.
"Akvelon is a software development company and we also provide consultancy services to folks who are looking to scale or accelerate their engineering roadmaps," explained Jeremiah Mothersell, Marketing Manager at Akvelon, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
"IBM is really all in on blockchain. We take a look at sort of the history of blockchain ledger technologies. It started out with bitcoin, Ethereum, and IBM evaluated these particular blockchain technologies and found they were anonymous and permissionless and that many companies were looking for permissioned blockchain," stated René Bostic, Technical VP of the IBM Cloud Unit in North America, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Conventi...
In his session at 21st Cloud Expo, Carl J. Levine, Senior Technical Evangelist for NS1, will objectively discuss how DNS is used to solve Digital Transformation challenges in large SaaS applications, CDNs, AdTech platforms, and other demanding use cases. Carl J. Levine is the Senior Technical Evangelist for NS1. A veteran of the Internet Infrastructure space, he has over a decade of experience with startups, networking protocols and Internet infrastructure, combined with the unique ability to it...
22nd International Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, and co-located with the 1st DXWorld Expo will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud ...
"Cloud Academy is an enterprise training platform for the cloud, specifically public clouds. We offer guided learning experiences on AWS, Azure, Google Cloud and all the surrounding methodologies and technologies that you need to know and your teams need to know in order to leverage the full benefits of the cloud," explained Alex Brower, VP of Marketing at Cloud Academy, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clar...
Gemini is Yahoo’s native and search advertising platform. To ensure the quality of a complex distributed system that spans multiple products and components and across various desktop websites and mobile app and web experiences – both Yahoo owned and operated and third-party syndication (supply), with complex interaction with more than a billion users and numerous advertisers globally (demand) – it becomes imperative to automate a set of end-to-end tests 24x7 to detect bugs and regression. In th...
"MobiDev is a software development company and we do complex, custom software development for everybody from entrepreneurs to large enterprises," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Coca-Cola’s Google powered digital signage system lays the groundwork for a more valuable connection between Coke and its customers. Digital signs pair software with high-resolution displays so that a message can be changed instantly based on what the operator wants to communicate or sell. In their Day 3 Keynote at 21st Cloud Expo, Greg Chambers, Global Group Director, Digital Innovation, Coca-Cola, and Vidya Nagarajan, a Senior Product Manager at Google, discussed how from store operations and ...
"There's plenty of bandwidth out there but it's never in the right place. So what Cedexis does is uses data to work out the best pathways to get data from the origin to the person who wants to get it," explained Simon Jones, Evangelist and Head of Marketing at Cedexis, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5–7, 2018, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buye...
SYS-CON Events announced today that Telecom Reseller has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5-7, 2018, at the Javits Center in New York, NY. Telecom Reseller reports on Unified Communications, UCaaS, BPaaS for enterprise and SMBs. They report extensively on both customer premises based solutions such as IP-PBX as well as cloud based and hosted platforms.
It is of utmost importance for the future success of WebRTC to ensure that interoperability is operational between web browsers and any WebRTC-compliant client. To be guaranteed as operational and effective, interoperability must be tested extensively by establishing WebRTC data and media connections between different web browsers running on different devices and operating systems. In his session at WebRTC Summit at @ThingsExpo, Dr. Alex Gouaillard, CEO and Founder of CoSMo Software, presented ...