ASP.NET and Web Services, Part 1 - Defining a Service-Oriented Architecture (SOA)
(Page 4 of 9 )
What is a service-oriented architecture? Web services reside somewhere on the Internet in a registry. Registries contain numerous web services, and each individual service exposes its own services to requestors (clients). The services represent publishable and discoverable interfaces.
Let's digress for a moment to define an interface (more about interfaces later in the chapter). An interface is an abstract class containing a function or method declaration, which includes a list of parameters, for example:int max
( int, int);
Every operation declared by an object specifies the following items:
- The operation's name
- The objects it accepts as parameters
- The operation's return values
This is known as the operation's signature. By assembling the set of all signatures, we can define them as an interface. However, an interface does not provide an implementation, but only provides the abstract class's method name and a set of signatures.
Perhaps the most important functionality a web service provides is supporting a well-defined business process. Here is a quote describing the benefits SOA offers:
Service-Oriented Solutions...Applications are constructed as groups of interacting services providing well-defined interfaces to users. (Java Web Services, O'Reilly & Associates, 2002.)
SOA is implemented as a discoverable software entity that exists as a single instance. The instance interacts with web applications and represents a loosely coupled message-based communication model.
Conceptually, each individual web service has two parts:
- Service This represents the implementation for a web service. The basic requirement is that it must be accessible on a network by a service provider.
- Service description Typically, this exists as an XML file containing a complete description of data types, communication protocols, and a URI where the web service implementation resides. This file is called Web Services Description Language (WSDL).
The terminology used to describe SOA elements in web services is specific, as demonstrated in the following.
- Service provider A software entity implements the service specification. Any chunk of logic is exposed as a web service residing within the SOA. It could be either a complete mainframe-based business process, such as processing a request to convert a specified currency quote to another type of currency quote, such as the euro equivalent of 100 American dollars, or servicing a mortgage loan request. Providers publish metadata about services they keep in a registry. Typically, these providers are standards-setting organizations like ebXML, W3C.org, WS-1, software vendors, and developers. Several different mechanisms are used to publish service descriptions. Among them:
- HTTP Get request The public repository http://www.xmethods.com is where developers can test their own web services.
- Dynamic discovery Perhaps the most used registry is Universal Description, Discovery, and Integration (UDDI).
- Direct A service requestor retrieves the service description from the service provider directly via email, FTP, or other such direct methods.
- Service requestor This entity calls a service provider.
- Service locator This serves as a registry manager and allows a client to locate registries, service provider interfaces, and service locations.
- Services broker This service provider maintains a list of registries and passes on client requests to other service providers.
Remember: This is part one of chapter 7 .NET & J2EE Interoperability, by Dwight Peltzer (McGraw-Hill/Osborne, ISBN 0-07-223054-1, 2004). If you like what you see, feel free to click on the following link to get your own copy! Buy this book now.
|
Next: SOA Web Services >>
More ASP.NET Articles
More By McGraw-Hill/Osborne