Blue bar graphic
Colorado Software Summit logo
Colorado Software Summit banner

Gold bar graphic

Gary Murphy
Hilbert Computing Inc.

When the Servlet Model Doesn't Serve: Other Application Deployment Models

Most Java applications development is designed to be run in a servlet container. The mindset among developers and decision makers quite often equates Java with servlets. While this is an excellent programming model for user input-driven applications, the lifecycle issues and the use of a transactional model that is driven by HTTP is inappropriate for many application needs.

When the input to the application is time-based instead of HTTP event-based, the servlet model may not be appropriate. If the application aggregates information from a variety of networked sources and needs to update a dynamic user-interface, the servlet model will typically fall short. Software as mundane as the venerable long-running batch job has an execution profile that isn't appropriate for a servlet container.

This session will look at the threading model and lifecycle model of servlets and compare that to other types of applications that don't fit neatly into that model. We will look at other programming models and threading models so that professional developers can make appropriate decisions on how applications should be deployed. Examples that will be investigated is the use of asynchronous queuing of application requests to multiple threads, and the use and issues with transient threads in an application. We will also look at some of the positive aspects of the servlet programming model and investigate how those concepts can be applied to provide an abstraction from the containment model.

Join me in a session that helps us break out of the servlet mindset so we can deploy applications using an architectures that best fit the application requirements.

Java Roads Less Travelled

Java has become a mature language with a multitude of semantic features and class libraries. It is almost impossible to know all of the corners and seldom-used class libraries, but it can be a benefit for programmers to know some of the parts of the Java that aren't in the forefront. Some of the topics covered may help you both in your development efforts and understanding the code written by others.

In this session, we will cover some of the parts of the core Java language such as ThreadLocal, Weak References, this() overloads and some quirks in serialization. We will cover some rather arcane things about the way class loaders work. We will also cover class libraries, such as the Java Activation Framework, Profile APIs and zip file manipulation that you may not be aware of. Finally, will also cover some interesting techniques such as the use of class loaders to dynamically replace parts of your application on-the-fly.

Join me on a journey of the roads less travelled in the world of Java.

Photo of Gary Murphy

Gary Murphy is the founder of Hilbert Computing, Inc., a contracting company specializing in architecture-centric aspects of Information Technology. Gary has helped companies in the midwestern United Stated with the architectural issues, infrastructure software, frameworks development and the most challenging diagnostic problems. Gary has over 25 years of IT experience on a variety of systems from mainframes to desktops.