|
Web Services Related Java Implementations
Not counting the actual Web services and Web services
dependent applications written in Java, the three most important
categrories of Java implementations vis-à-vis Web services are:
-
Java application servers
[e.g. Sun’s ONE Application Server]
-
Java software development
studios [e.g. BEA WebLogic Workshop]
-
Java-based legacy
integration tools [e.g. IBM’s WebSphere Host Publisher]
While the availability of the free reference
implementations and ‘open source’ offerings [e.g. Apache Tomcat and the
Eclipse Web tools from eclipse.org] tends to sometimes cloud and
confuse the picture, the Java platforms [e.g. J2EE 1.4] are also
implementation-agnostic specifications à la industry standard or an IETF
RFC. This is where the commercial Java application servers, led by the
market leaders from IBM, BEA, Sun and Oracle, come into the picture.
Their express charter is to deliver reliable, value-added,
platform-specific implementations of a particular J2EE specification.
Consequently, the level of J2EE supported by the commercial application
servers will, and should, lag behind, typically from six to nine months,
the release of a new version of the specification. Thus towards the end
of the summer 2003, all the well known app. servers, including Sun’s own
ONE Application Server 7, were still based on J2EE 1.3 – albeit with
‘ahead-of-the-spec’, value-added support for SOAP, WSDL, UDDI and
WS-Security etc.
The overriding value propositions offered by commercial
Java application servers, over and above the basic functionality
available with a no-chrage reference implementation, are:
-
platform specific availability and performance related
features, in particular support for load-balancing, system clustering,
failover, multithreading [i.e. concurrent execution of different
instances of the same Java code, with each instance serving a
different user or sets of users] and object/content caching
-
JDBC drivers optimized for specific, platform-dependent
database offerings [e.g. DB2, Oracle, SQL Server etc.]
-
extensive back-end ‘connectors’ (or ‘adapters’) to
existing application systems [e.g. ERP, CRM, ‘legacy’ etc.], typically
per the J2EE Java Connector Architecture (JCA), to facilitate the
integration of existing software resources with new Java-based
applications
-
graphical, easy-to-use and master, ‘point-and-click’
deployment, monitoring and management capabilities
-
support for additional platforms, in particular
mainframes, minicomputers [e.g. IBM AS/400], non-Solaris verions of
Unix [e.g. AIX] and non-Red Hat versions of Linux
-
tight integration with other pertinent enterprise-class
server functionality such as meesage servers, Web servers [also
referred to as HTTP servers], portal servers and e-commerce servers
-
bi-directional tie-in with selected application
development studios, workshops or IDEs
Next to the app. servers, the next most important Java
implementations vis-à-vis Web services are the application development
studios à la BEA’s WebLogic Workshop, IBM’s WebSphere Studio Application
Developer and Sun ONE Studio. The express goal of these highly visual
IDEs is to compress the software development cycle and thus enhance, by
hook or by crook, programmer productivity – that ever elusive, holy
grail of the software community.
In much the same way that one, given enough time,
patience and skill, can still develop sophiticated HTML Web pages just
using a no-frills text editor [e.g. Windows Notepad], it is also
possible to develop Java code, of any complexity, using a straight text
editor – and the JDKs available with the Java platform. It should also
be remembered that when it comes to Web services, there is also the new
Java WSDP 1.2. Furthermore, as is the case with Java serlet servers,
there are also some no-charge, ‘open-source’ Java IDE initatives – most
noteably the IBM-encouraged Eclipse platform that continues to gain
vendor sponsorship and market visibility. To this end it should also be
noted that IBM’s high-profile WebSphere Studio products are now based on
this ‘open-source’, readily extensible, Eclipse platform thus making
this product family even more attractive.
But just as in the case with Web page design, using a
visual, ‘drag-and-drop’ IDE, rather than coding everything, laboriously
by hand, is invariably more convenient, more efficient, faster and prone
to less errors – though there will always be an initial leraning curve
associated with using any IDE. Ease-of-use, convenience and potential
productivity enhancements are, nonetheless, the primary value
propositions for using a studio for developing Java-based Web services
or applications. In many ways this is another pivotal enterprise IT
strategy, philosphy and standards related issue invariably intertwined
with the enterprise’s stance on using an app. server – given that the
leading app. servers have companion, complementary studios with tight,
‘single-image’ integration between the two. However, whereas an
enterprise may be forced to use a Java app. server because of the server
platforms it uses [e.g. mainframes], the need for a studio product is
unlikely to be dictated by platform preferences alone, given that
Windows, Unix and Linux (in that order) will continue to be the
platforms of choice used by Java programmers.
Java-based legacy integration tools, the so called ‘host
integration’ categrory within the Web-to-host genre of offerings,
round-off the Web services related Java implementations. The
significance of these products, with IBM’s WebSphere Host Publisher
being the quientessential example, is that they enable enterprises to
gainfully extract and resue business logic ‘fragments’ from
mission-critical applications – with each fragment now represented as an
EJB. One or more of these EJBs could then be packaged as a Java-based
Web service either using a tool such as the Java WSDP or a studio
product. Figure 6.15 shows the high-level architecture of the WebSphere
Host Publisher product. In some cases this type of integration may also
be realized using one or more of the connectors (or adapters) available
with app. servers. One way or another these legacy intergartion tools
enable enterprises to maximize their considerable investment in mission
critical applications. The bottom line here is that Java is extremely
enterprise savvy. There is no shortage of competitive and compelling
industrial strength Java implementations to enable enterprises to safely
pursue a Java-centric Web services strategy with confidence and panache. |