Everything You Need To Know About Middleware

What is Middleware?

Middleware is sometimes described as ‘software glue’ – it is software that provides services to applications which typically are not available from the operating system.  By providing such services, it makes it much easier for software developers to focus on delivering required functionality, as much of the ‘plumbing’ – such as access to databases – has already been catered for.

Why would I need help from a Middleware Consultant?

Developers of middleware technologies – including the increasingly popular open source products such as Tomcat and JBoss – make it easy for middleware to be obtained and installed. In some cases, a simple unzip is all that is required.  Application developers can therefore ‘hit the ground running’ very quickly, with little or no knowledge of the plethora of configuration options available to them – with the default configuration applied during a simple installation being adequate for most ‘average’ applications (low number of users, simple calculations, small data volumes etc).  The ease of installation and initial use belies the complexity of the technology itself.

We work with many organisations who have chosen open source middleware as the basis for their application architecture, but have run into problems late in the development cycle (e.g. during User Acceptance Testing), or as user numbers and/or data volumes increase.  In a lot of cases, companies who have reached this point are already questioning their choice of middleware platform, and are concerned about the investment they have made in application development.  While in an ideal world we’d always say that prevention is better than cure (so get an expert middleware consultant involved during the architecture and design phases of the project), we are experts in helping organisations who run into such ‘late in the day’ problems.  The value of expert consultants, like Tier 2, stems from our experience, both from the clients that we’ve helped and also the training courses that we deliver.  Training courses are derived from a wealth of other knowledge that’s not always easy to find in documentation alone.  We are able to apply this knowledge in real-world situations, such as:

Application Server Migrations

Many companies choose to migrate from one application server platform to another – and while they may have experience in their current platform they may have little or no experience in the target technology.  Migrations are never straightforward – for example, applications often get written that work on a particular platform but don’t strictly conform to the JEE specification, and therefore require some refactoring or redevelopment.

Poor Configuration

The ability of platforms like JBoss to run “out of the box” and to easily form a cluster means that administrators often don’t take the trouble to change the configuration, missing out on possible performance improvements or reductions in resource usage.  For example the default cluster set up, whilst it works, is not really suitable for large or geographically separated clusters.  The same applies to memory settings: the out of the box configuration works well for many situations, but when “pushing the boundaries” it can lead to errors, which inexperienced administrators may find difficult to resolve.

Degrading Performance Under Load

This is a typical scenario, and in a lot of cases the customer has already tried to change configuration settings to cope. Experience can help determine what suitable configuration settings should be; but can also help identify that the issue may in fact be code related, and lead to recommendations for refactoring or redeveloping the problem areas.

On-going Application Monitoring

We often get asked, particularly on training courses, what tools are available to monitor live systems.  These range from JBoss tools such as the Operations Network, to commercial solutions much like Your Kit or JProfiler, to the many freely available tools such as JConsole and Java Visual VM.  Our experience allows us to recommend the appropriate tools.  We are also able to guide developers into using suitable logging so that production errors are easier to diagnose.

Find out more about Tier 2 Consulting.