

|
 |
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
|
|
|
|