|
April 2002
THEORY AND PRACTICE
Web Services Transform Distributed Computing
by Lowell Rapaport
Web services have been a hot topic lately and the odds-on favorite as the next-generation
distributed computing model. If you believe the hype, Web services will displace client/server
computing. To understand the potential of Web services, it helps to have a bigger-picture
understanding of distributed computing and the application deployment models it displaces.
On the Web, applications run on servers. Thin clients such as Web browsers access the server. At
most, only small applets run on the user machines. In client/server application architectures,
application software runs on client computers, and the server is used to coordinate their
activities, increasing the processing power available by harnessing the client computers.
In distributed computing, an application is divided into many components that can be dispersed
throughout an enterprise. While a client/server system has many clients and just one server or
server cluster, a distributed application will have many servers, each serving a distinct function
of an application. In extreme cases, distributed applications blur the distinction between clients
and servers, because application components can run on any networked computer.
Until the arrival of Web services, distributed computing was deployed using common object request
broker architecture (CORBA). CORBA-derived specifications are platform specific, however. For
example, components written for Windows can only integrate with other Windows components.
"Web services are easier to use and less 'brittle' than the CORBA-derived object protocols,"
asserts Philip DesAutels, product manager for XML Web services at Microsoft. "The older protocols
are point-to-point, while the Web services protocols are more open and universal."
Web services communicate with each other via XML, which is hardware and software neutral, so
these services can be deployed in any programming language and on any operating system. Web services
written in COBOL and running on a DEC or IBM minicomputer, for instance, could work with other Web
services written in Visual Basic running on a Windows server. This approach lets software developers
leverage their old code by simply enabling it for Web services.
Web services will enable businesses to retain and integrate legacy systems with little extra
development and give them the flexibility to pick the best Web services available for their needs.
It will also reduce software costs by allowing little-used applications to be outsourced from third
parties.
The CORBA Specification
"Whenever the data necessary to make a decision is scattered across multiple locations,
distributed processing is the most logical application architecture," says Rich Little, president of
developers' toolkit vendor Lead Technologies, Charlotte, NC. "These applications have
one-to-many, many-to-one or many-to-many relationships between clients and servers." Distributed
processing disperses tasks and gathers and coordinates results from different systems. This approach
reduces the pressure on individual servers in an enterprise and improves scalability by spreading
the processing load across many computers.
CORBA is a standardized way for application components to communicate across an enterprise in a
distributed computing environment. Each operating system or environment has its own unique
implementation of CORBA.
But CORBA has limits. It's difficult or even impossible for distributed components on different
platforms to interoperate. Distributed applications using CORBA can also have trouble negotiating
firewalls, which limits distributed applications to running on LANs and certain kinds of WANs. The
long-term trend for distributed processing is toward greater universality and integration among
multiple platforms. So platform-specific CORBA has yielded to environments such as Java that can run
on any hardware. In the future, CORBA should yield to Web services that can be deployed in any
environment.
|