There appears to be two major technological camps in the Web Services industry. The first camp is Microsoft. Microsoft got a head start because its people developed the SOAP standard and then gave it to the open-source community. So before other developers knew about the SOAP standard, Microsoft had already begun developing programming languages such as C# and Visual Basic.NET™ to create a proprietary implementation.
The second camp in the Web Services industry revolves around Java™, but it isn’t only Sun Microsystems, the creator of Java, deploying technologies. In this case, several vendors are each plying for a piece of the marketplace. Some of these vendors include BEA, Cape Clear Software, IBM, and many more. In this book, the focus is based on servers and Web Service libraries that are free and easily downloaded by the reader. This includes technology from Sun and the Apache group.
The important thing to remember is that it’s ok for there to be several vendors supporting Web Services. Unlike previous technologies, such as RPC, the underlying technologies are based on XML standards. So even though the functionality may be different, the use of these standards almost ensures compatibility across platforms.
As mentioned earlier in this section, Microsoft created a head start for itself by creating the SOAP standard; thus, its Web Services software is probably the easiest to use and deploy. Currently this technology is only available on the Windows platform with some rumblings of the .NET platform; therefore, Web Services will be available on other platforms such as Linux.
The advantages of Web Services under the umbrella of Microsoft’s .NET platform are ease of use and discovery. Microsoft provides a large number of tools to make the creation and use of Web Services very easy. This includes the automatic generation of WSDL, discovery tools such as disco (which searches servers that have .NET Web services), browser-based testing and discovery of methods, and easy creation of Web Services within Microsoft’s proprietary languages. In fact, it is just a matter of adding a few lines of information, not necessarily code, which makes an existing method a Web Service.
Examples in Chapter 6 show in greater detail all these available features.
Although easy to use and deploy, all of the Microsoft Web Service technologies rely on their Web server Internet Information Server (IIS). While this is probably the easiest Web server to maintain and configure, it has also had its share of security problems, including the Code Red Virus. Therefore, more maintenance may be needed with IIS because you’ll need to track any security patches Microsoft releases.
The Java world is definitely catching up to Microsoft when it comes to Web Services. Nothing has quite reached the ease of use of Web Services under .NET. Because Microsoft developers were part of the creating the SOAP standard, they had a sneak peak to upcoming technologies. In addition, the Java world tends to ignore any standard that Microsoft supports. This is the political quagmire that has existed in the IT world for years.
As the Java world sees the reaction to Web Services under .NET, more and more Web Services products start showing up. BEA, Sun, and IBM are starting to deliver more and more Web Service products. In addition, the Apache group provides a great free SOAP library to access Web Services. Thus, Java-based Web Services are starting to catch up.
There are a lot of advantages to using Web Services with Java. First of all, several different vendors implement Web Services with Java. This gives you greater selection of products to choose from during implementation, and perhaps allows you to easily integrate Web Services into your already existing architecture.
Java Web Services work on top of both Java Server Pages (JSP) and servlets, and a developer’s choice for serving these technologies is far greater than with Microsoft’s implementation. Tomcat™, which is a free Java server that integrates easily with Apache™, is free from the Apache group. IBM’s Websphere™, BEA’s WebLogic™, and Sun’s iPlanet™ server are all commercially available Web servers that allow a developer more options when deploying Web Services. This is unlike Microsoft’s implementation where you are locked into one platform and one Web server.