Q
Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

What is the future of app servers?

The emergence of the stack brings up an important question: Are app servers dead? Contributor Todd Biske examines the future of the app server in a changing world.

Now that the stack is emerging, it may seem like the future of application servers and application server architectures...

is bleak. I examine app servers and whether there is any room for them in a modern app development strategy.

Something that you really hear very little about in the press anymore is the notion of an application server, yet it's probably something every enterprise has. Is the day of the application server over?

While I'm not about to proclaim them as dead, app servers are definitely on the wrong side of the growth curve.

App servers gained prominence in the mid-to-late '90s as enterprises moved from client-server architectures to n-tier architectures. Organizations were buying large physical servers from companies such as Sun Microsystems and to maximize the value of their purchase, they needed to move multiple client-server applications onto these servers. This led to what we now know as the application server, with Java EE being the primary example. On the Microsoft side of things, Windows Server was both an operating system and an application server because an operating system has to run multiple applications anyway.

The primary challenge created by app servers was the risk that one application would affect the performance of another application because they were competing for the same resources on the underlying physical server. 

Fast forward to today: The deployment architectures have changed dramatically. The underlying hardware has been abstracted away through the use of virtualization and container technologies. Applications have been broken apart into services. Everything we deploy has become smaller, and smaller deployment units mean greater flexibility and fewer dependencies. Why deploy libraries for communicating with a messaging system or distributed transactions if the functional component doesn't need them?

This is the day we live in today.  As such, the need for heavyweight application servers with every library you might need is going down. The replacements range from script-based languages (e.g., Python, node.js) and their deploy-as-you-need frameworks, or more lightweight servers or frameworks for Java like Jetty and Spring.io

So, do you need a traditional application server? You might.

As an enterprise architect, I know that it's increasingly difficult to draw a box around a bunch of components and call it an application.  A given approach involves shared databases, shared business services and maybe even shared Web-based APIs. If it were up to me, application would be used only to talk about the UI.

So, the notion of an application server is somewhat dated. At the same time, there are still plenty of situations where things aren't shared, where we're not dealing with Internet-type scalability, and we have a team with significant Java EE experience. Why wouldn't you continue to use your trusted Tomcat or Weblogic server in that situation? Let's also not forget that there are still plenty of third-party applications that require a Java EE server to run.

Just like there are plenty of companies that still have mainframes, 10 years from now there will still be Java EE app servers running in your environment. Although 90% of your activities may be focused on orchestration of the latest Docker-like containers, dynamically moving between the public cloud provider with the best rates and performance for that particular day, you'll still be happy that your Java EE server is running quietly in the background, keeping some of those older, infrequently changing systems doing what they need to do.

Next Steps

News on app servers and web service platforms

Key strategies for adopting container technologies

Check out our advanced Java tutorial

This was last published in October 2015

PRO+

Content

Find more PRO+ content and other member only offers, here.

Essential Guide

Essential Guide: The latest on enterprise architecture strategy

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

Join the conversation

2 comments

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

What role do app servers play in your organization today?
Cancel
I think it is key to avoid taking a narrow view of the term "application server" to mean only Java EE 6/7/8 compliant containers. If you view an application server as a framework or set of frameworks that provide common services such as log management, security, transaction management, component lifecycle management, monitoring, thread handling, protocol handling etc, then most of the frameworks that claim to replace application servers can be considered application servers themselves. 
For example in the case of spring boot, you are deploying the framework into your appplication, rather than the other way around, but that is just a deployment approach. 

There is still a need for frameworks that provide infrastructure services to prevent application developers having to write their own, whether you label them as application servers or something else doesn't change anything.
Cancel

-ADS BY GOOGLE

SearchSoftwareQuality

SearchCloudApplications

SearchAWS

TheServerSide

SearchWinDevelopment

Close