An Introduction to Web Services

A web service is a collection of business logic that is exposed to the Internet community via a set of open standards. A simple example of a web service is a currency converter. If your system needs up-to-date currency information, instead of writing custom code from scratch and managing daily currency updates, simply utilize a currency converter web service and let it do the work for you. Since this is a simple example and doesn’t truly show the real value of a web service, more examples will follow.

The open standards that support web services are XML, SOAP, WSDL, UDDI, and HTTP. XML (extensible markup language) is used as the foundation for web services because of its ability to dynamically define many different types of objects. An open standard called SOAP (simple object access protocol) is implemented using XML and defines how to package requests and responses to and from a web service. Web services are accessed over the same HTTP protocol as current HTML based web sites.

WSDL (web services description language) is used to describe a particular web service. This XML document is a collection of metadata that is used to describe the functionality of a web service and how to access that functionality. UDDI (universal description, discovery and integration) is a specification created by a group of business and technology leaders that creates a framework to enable business to learn about each other - who they are and how they can interact over the Internet. UDDI registries exist so that businesses can define what web services they offer and how others can access them.

Solutions to Business Problems

Systems Interoperability

Let’s take an example of an organization, ABC Corporation that develops software for the medical industry - more specifically hospitals and physician group practices. This organization has a number of different divisions with systems ranging from patient registrations to radiology. As the medical industry changes, so do the needs of their information systems. As more consolidation and partnerships develop, the need for system interoperability increases.

Increasingly, ABC Corporation is noticing that organizations that they provide solutions to are finding it necessary to access information in independent systems as if they were one integrated system. Not only does integration need to happen on systems developed by organizations other than ABC Corporation, but on systems developed by ABC Corporation’s different divisions as well. In the past, custom interfaces were written for each system that needed to be integrated. This was proving to be very costly in terms of time and money.

One solution ABC Corporation is considering is to implement the interfaces to/from their system as web services. This will allow any system to have the ability to invoke specific methods in order to exchange information between them and thus give the appearance of a truly integrated system. Physicians can take advantage of this web service as well. As more physicians become users of devices such as PDA’s, the greater their demand for accessible information becomes – their daily schedules is just the beginning. A conduit for the PDA can be developed to access the same information through the web service as the integrated systems do. The openness of web services will be beneficial as needs arise in the future as new partnerships are formed or new requirements come to light.

Supply Chain

Another example of where web services can add value is in the supply chain. A typical company that manufactures a product will certainly have many suppliers. For many companies the process of ordering new parts from their suppliers is paper based. In the past EDI (electronic data interchange) had changed this process to allow for almost real-time inventory management. However, implementing EDI is very expensive and is not a real option for many organizations. In such cases, web services have been touted as a reasonable alternative to EDI.

As web services come online, a company can tap into these as part of their daily production process. Let’s say a company has been contacted by their supplier and told that they can now order parts through their web service. The company can implement a solution that automatically queries the supplier’s web service and orders the correct number of parts. Taking it one step further, this implementation can also query a UDDI service to see what other suppliers offer the same part. These new suppliers can be queried when their favorite supplier is out of stock or when pricing is of great concern. The UDDI service supplies the WSDL that dictates how to communicate with the new supplier’s web service.

Development Resources

Although web service development is in its infancy, most major players are pushing forward their solutions at a feverish pace. Here is a partial list of these offerings: IBM (WebSphere 4.0), Oracle (Oracle 9i), Sun (Forte for Java 3.0 Enterprise), Borland (Delphi 6), and Microsoft (.NET Platform).

Microsoft .NET

Microsoft’s next generation development platform, .NET, is highly directed towards web services. There are two main pieces to this platform - .NET Framework and Visual Studio .NET. The .NET Framework contains the common language runtime (CLR) and class libraries that will allow a program developed in Visual Studio .NET to run. Although traditional desktop applications can be written using .NET, .NET was designed from the ground up with the Internet in mind.

.NET introduces a number of benefits in terms of application development. Many different languages can be used to write programs in the .NET environment. The main requirement is that the language is able to compile into a common language called the Microsoft Intermediate Language (MSIL or IL). The main languages that are included in Visual Studio .NET are VB.NET and C#. However, since all languages compile into MSIL, this allows objects created by C# programs to be accessible to programs written in Cobol. This enables a group with a diverse skill set to collaborate on a leading edge solution to a business problem without the pains of retraining the entire group.

An additional benefit of compiling into the MSIL is that it is platform independent. Programs can theoretically be run on a variety of different platforms (PDA’s, MAC OS, Unix), which support the common language runtime.

The real benefit to in implementing .NET is the integrated support for web services. For example, by using Visual Studio .NET, adding the keyword “WebMethod” in front of a VB.NET function creates a SOAP-based web service callable over HTTP. A component of the Visual Studio .NET platform that enables the stateless distributed web model is ADO.NET. In short ADO.NET provides scalable support for disconnected data access that is crucial to this model. The integrated development and debugging tools included in Visual Studio .NET are indispensable and stand out as the tool others measure up to.

Things to Ponder

How fault tolerant should my web service be? How do you know which vendor you can trust? How should my web service be secured? What security other than SSL do I need? As web services become more mature, the answers to these questions will certainly become clearer.