J2EE - The Case For Rapid Development

Over the last five years the Java development platform has established itself as the platform of choice for enterprise-class e-business applications. With the advent of Java 2 Enterprise Edition (J2EE) it has become more than a technology platform: J2EE represents a complete enterprise development philosophy, prescribing the creation of component-based solutions within a multi-tiered architecture.

The potential business benefits of the J2EE development philosophy are compelling, and are well-documented elsewhere. In reality, however, they are frequently offset by a number of practical issues which can compromise the efficacy of the philosophy. Many businesses have been plagued with problems and delays when attempting to deliver e-business applications in this environment. In particular, they have struggled to achieve acceptable productivity levels and return on investment. This has in part been attributable to a number of technical factors:

  •  The Java development environment is complex, with even basic functionality requiring significant amounts of program code when compared with the client-server environment
  •  Java-based web development involves a heterogeneous set of development tools and disciplines, from server-side programming (e.g. Java beans, servlets, Java Server Pages, SQL) to client-side programming (e.g. HTML, JavaScript)
  •  The deployment environment is also heterogeneous, and can involve any combination of proprietary application servers, browsers, drivers, etc. As a result of this, new applications require significant amounts of investment to achieve reliability and stability
  •  The skills required of developers are both scarce and varied. Acquisition and retention of appropriately trained development teams is usually difficult and expensive
  •  Unlike the client-server environment, there is a shortage of tools to enable rapid development of Java applications.

These issues have led to a growing market for tools and frameworks to improve the productivity of Java developers. These tools generally fall into one or more of the following categories:

  •  Java development frameworks and IDE’s – a number of IDE’s, tools and frameworks exist to accelerate the process of developing java-based applications. These tools are targeted at expert developers, and can automate or semi-automate the creation of components in a Java-based application. While improving productivity, they do not reduce the levels of skill required to deliver applications, nor do they significantly reduce ongoing maintenance costs
  •  Code generation – a number of low-cost tools exist, enabling the generation of server-side code to integrate simple database operations into custom-built web-pages. Such tools are targeted at small-scale, low-volume web applications, rather than enterprise-class business systems. They require a reasonable degree of development expertise, and are not usually considered suitable for large projects due to the poor scalability and maintainability of the resulting applications
  •  Solutions based on proprietary middleware – there are a number of server-based solutions which employ a proprietary run-time component on each application server. There is also usually a proprietary developers’ environment, with an attendant requirement for specialised development skills. The major disadvantage with this approach is the lock-in to proprietary environments, and the cost of recruiting or training specialised developers to enable their use.

As these tools continue to evolve and proliferate, they will increasingly alleviate many of the technical issues associated with J2EE development. While this will be essential to the success of J2EE moving forward, there is another facet to the J2EE development philosophy which may prove more problematic in the longer term.

In-line with its multi-tiered architecture, J2EE enables developers to create business logic, and a certain amount of presentation logic, within the business tier. This approach appears to offer the holy grail of business application development - re-usable business processing. Re-use of this nature could offer unquantifiable reductions in the cost of future application development as common business components are deployed once, then re-used repeatedly by future applications.

By its nature, this approach offers the greatest appeal to the largest enterprises: the larger the organisation, the greater the ongoing cost of repeatedly building, extending and replacing systems to implement core business functionality. Paradoxically, however, the larger the organisation, the less likely it is to realise the benefits of this approach. The reasons for this have nothing to do with technology.

The idea of reusable business logic, deployed in business systems across the enterprise, has been around for 10-15 years. With the emergence of object-oriented technology in the late 1980s a number of companies attempted to specify and build libraries of re-usable business objects. Almost invariably their efforts were frustrated by non-technological issues. The job of analysing and defining business functions to meet the needs of all groups within the enterprise was extremely time-consuming, and made more difficult by a lack of consistency in business processes and particularly in data definitions across the enterprise. This situation was made worse where there was a history of mergers and/or acquisitions within the enterprise. It was not uncommon for the analysis exercise alone to take 12-18 months or more to complete, before the commencement of any development activity. The most obvious problem with this was that, by the time a development project was actually underway, the requirements of the business had changed. This inability to deliver solutions to keep pace with business change persists to this day.

In most large enterprise IT environments there is a natural conflict between strategic objectives and tactical requirements. Short-term business imperatives are often not well met by the “jam tomorrow” promises of strategic IT projects. While the benefits of re-use can be genuinely achieved, the scope for realising these benefits usually falls far short of that targeted by IT strategists and architects. This is a reality which is beginning to manifest itself to the early adopters of the J2EE philosophy.

Against this backdrop, there is clearly a market for alternative approaches to application development on the Java platform. In particular, there is a strong case for the introduction of genuine rapid-development capabilities which can capitalise on the technological benefits offered by the Java platform: e.g. scalability, platform independence and open standards. In the past, rapid development solutions have been strictly proprietary, requiring product-specific skills and proprietary server platforms. The emergence of a comprehensive set of open standards for enterprise development makes non-proprietary rapid development a genuine option for the first time. Moreover, this can be seen as a logical progression from the client-server rapid development tools of the 1990s. Rapid development solutions based on open standards allow customers to protect their IT investments, developing solutions which are portable, and not tied to proprietary software.

There is also an opportunity to segment application development tasks, selecting different approaches and tools according to the requirement at hand. In the past the use of RAD tools has often been an “all-or-nothing” decision, based on the capabilities of the tool and the complexity of the requirement. Since every RAD tool had limits in terms of its capabilities, this could make tool selection a difficult process. It is now possible to leverage open standards to select different development approaches within the same application, depending on the nature of the requirements. This “mix and match” approach to application development can offer extra flexibility while reducing project costs and time to market.

A primary example of this approach, Ioxis eXRAD represents a new breed of technology enabler, capitalising on the benefits of open standards to present a new method of rapid application delivery. Neither packageware nor developer IDE, it offers pre-built application functionality in the form of generic applicationware. Completely configurable to meet specific application requirements, eXRAD enables users to benefit from the scalability and portability of the Java platform, while eliminating the complexity normally associated with Java developments. eXRAD can reduce the development time for Java database solutions from days to hours, or from weeks to days. In doing so it provides business sponsors with a compelling value proposition, offering the potential for measurable return on investment within the context of individual projects, rather than longer-term strategic IT initiatives.

Ian Manning
Technical Director
Ioxis
www.ioxis.com