The book focuses on Web Services for Java and C#. The tools necessary to make Web Services for these languages are freely available by downloading tools from Apache or Microsoft. What if you need to support another language or platform?
In some cases, platforms such as a newer IBM mainframe run Linux and, therefore, run Java, Tomcat, and Apache Web Services. The source code is available for all Apache products. If a binary isn’t available for your platform and a Java compiler is, you may be able to build it for your platform.
If your platform doesn’t support Java or you have a legacy system based on something like COBOL, a third-party vendor is probably your only option unless you have a staff who can write the software that supports Web Services. This is a very expensive undertaking because of the time it will take your developers to study the WSDL, SOAP, and other standards necessary to follow for compatibility with other implementations.
There are vendors that support such legacy systems such as Cape Clear Software, www.capeclear.com, that has a plug-in for COBOL. In addition, other vendors such as Sysinet systems, www.sysinet.com, also have support for Web Services in C++. The Apache group plans to have C++ client available in the Fall of 2002.
Another advantage that third-party vendors offer with Java is easy integration with Interactive Development Environment (IDE) such as Forte™ or Jbuilder™, but the biggest factor in your decision about whether to use Apache software or a third-party vendor may be support. Although the Apache group does provide support in the form of discussion groups on the Internet, if you are doing something slightly out of the mainstream you may not get the desired response to your question. By going with a third-party vendor, you guarantee that you have access to support at critical moments. It really depends on the project you undertake. If you are doing something very mainstream, Apache is a great choice. If your project involves something a bit uncommon such as utilizing attachments or modifying the SOAP header for compatibility with other technologies, a third-party vendor may be a great choice. Very often the choice of technology depends on the company culture and requirements made by management.
By utilizing third-party, open source, and Microsoft-based Web Service tools you can eliminate the need for staging data from other sources. In many cases, data from COBOL and other legacy systems are staged in large databases or text files because the software isn’t available to access the systems in other ways. The data stores are then updated on a regular basis but are still almost always out of date. If you are able to put a Web Services layer on top of these legacy systems, you can access data immediately.
Another advantage of integrating all these systems is delaying the purchase of new software and hardware. If all the systems can integrate regardless of OS, you can continue to utilize these systems and have them communicate without large capital investment. Figure 9.14 illustrates the communication that may occur in an enterprise setting.
Figure 9.14: Using Web Services to bridge the gap between heterogeneous systems.
Note that the C# Web Services focus on serving Windows clients and the Java Web Services deal with communicating with the corporate systems. Then, the servers that host the services act as a bridge between Java and C#. Although the flexibility of Axis allows your Windows clients to contact these Web Services directly, using the C# Web Services allows your Windows clients to consume Web Services from the same location. This makes handling the details of Web Services easier for an administrator.