|
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.
|