Connecting services

Cape Clear delivers affordable cross-platform Web services integration

WHEN A COMPANY chooses to build Web services into its infrastructure, it has to decide what to do with existing software and services. If your enterprise applications are already integrated, you may be reluctant to venture into another expensive, time-consuming development project to refit those apps for Web services. When you finally decide to take the plunge, you may discover that Web services-enabled development tools are better suited to new projects than they are to the renovation of existing code.

Cape Clear Software's CapeStudio 3.0 is a set of Java tools that uniquely addresses both development scenarios: The creation of new Web services and the addition of Web services interfaces to existing enterprise applications. CapeStudio is the development interface to Cape Clear's integration server, CapeConnect 3.5. Among its many features, CapeConnect presents Web services proxy interfaces for Java, J2EE (Java 2 Enterprise Edition), and CORBA applications. Using CapeConnect and CapeStudio, you can create new Web services interfaces for existing software without modifying any code.

CapeStudio and CapeClear can provide temporary Web services capabilities while development is under way, or they can add Web services to applications that can't be easily rewritten.

A bridge to Java

CapeStudio is written in Java and requires Version 1.3 of Sun's JDK (Java Development Kit). The CapeStudio bundle includes the CapeConnect server, which is also written in Java. We tested the software using a pair of machines. The first server uses dual 1.5 GHz Intel Xeon CPUs and runs Windows .Net Server Beta 3 on a Seagate Barracuda 180 SCSI drive. The second server is equipped with a pair of AMD Athlon MP 2100+ CPUs. It runs Windows 2000 Advanced Server on a Maxtor 60GB Ultra/ATA 100 drive. Both systems have 1GB of RAM. Neither CapeStudio nor the Sun JDK is certified to run on .Net Server, but we encountered no compatibility problems in our testing.

For new projects, CapeStudio streamlines two key steps in Java Web services development: The creation of WSDL (Web Services Description Language) files and embedded XML Schema data type definitions. CapeStudio's WSDL Editor takes a graphical approach to editing new and imported WSDL files. XML Schema is displayed as editable text, but other WSDL elements are grouped by type in a tree view. Clicking on any element brings up its graphical property editor. The WSDL Editor doesn't obviate the need to understand WSDL, but it does make WSDL creation safer and easier.

When the WSDL is finished, CapeStudio's WSDL Assistant generates matching server-side code skeleton classes for Java or EJB (Enterprise JavaBeans) objects for J2EE. EJB code can be targeted to iPlanet, BEA WebLogic, or Oracle9i application servers. The Assistant supplies stub code for each interface so that the server can be tested immediately.

CapeStudio does not create native Web services. Instead, the server code it generates uses Java RMI (Remote Method Invocation) or J2EE EJB to expose the interfaces described in your WSDL file. Deployment requires the use of CapeConnect as a gateway between Web services clients and your Java/J2EE server. This approach limits CapeStudio's usefulness as a tool for new development. CapeStudio will also generate client skeleton code in stand-alone Java, JSPs (Java Server Pages), or VB (Visual Basic) .Net. The generated clients use SOAP (Simple Object Access Protocol) to communicate with remote services.

CapeStudio's strength lies in its capability of spinning Web services from existing Java, EJB, and CORBA software. The WSDL Generator reads Java source or CORBA IDL (Interface Definition Language) files and creates WSDL files that describe the exposed RMI, EJB, or CORBA interfaces. You can then use CapeStudio to generate Java or VB client code. At run time, CapeConnect relays incoming SOAP requests to remote servers. When the server responds, CapeConnect translates the returned data into XML and delivers it via SOAP. Cape Clear's solution handles this scenario so elegantly that for some projects, the CapeConnect gateway and CapeStudio client code will give you all the Web services integration you need.

A versatile server

The CapeConnect server provides more than a gateway between Web services and Java, EJB, and CORBA interfaces. CapeConnect incorporates a UDDI (Universal Description, Discovery, and Integration) registry that holds the details of Web services published and updated through CapeConnect. A browser interface gives administrators an easy way to edit the registry's contents.

CapeConnect also includes an XML processing engine. Clients can invoke Web services by sending non-SOAP XML data to the CapeConnect server. Using XSLT (Extensible Stylesheet Language Transformation) mappings created by CapeStudio's XSLT Mapper, CapeConnect transforms the XML into SOAP, invokes the Web service, and converts the response back to XML.

This links any client capable of sending and receiving HTTP data to CapeConnect Web services.

The ease with which CapeStudio and CapeConnect expose Java, J2EE, and CORBA interfaces as Web services makes the package more than worth its cost. It may not be the best choice for new applications, but we haven't seen a smarter, simpler, more affordable way to equip existing enterprise software for Web services.

Copyright © 2002 IDG Communications, Inc.