|
Service-oriented Architecture, Part 3
by Samudra Gupta
Part 1 of this series explained the concept of service-oriented architecture and its strong foundation in Component Based Development. They discussed the technology-independent, language neutral concept of component specification, which is defined using tools like UML. They also demonstrated the use of interface description and service definition to realize the functionalities defined within a component specification. Part 2 concluded that abstraction of technology binding from the service implementation yields greater benefit and is more in line with actual service-oriented architecture. To jog your memory, Figure 1
provides a general overview of service-oriented architecture (SOA).

Figure 1:
An overview of SOA.
Part 3 of this series will discuss Web service technology, which is the most commonly used example of SOA in recent days. It is important to remember that Web services are merely one way of implementing SOA. There are other implementations of SOA, such as IBM MQ Series, etc.
Web Service Components
The aim of this article is not to provide a complete tutorial on Web services but to show how Web services fits in with service-oriented architecture.
The general architecture of Web services appears somewhat simplistic. The service provider provides an implementation of the service and publishes the service in a registry. The consumer of the service looks up the service from the registry and invokes the defined interfaces to perform a particular operation using a predefined and agreed protocol. Figure 2
presents a diagram of the basic Web service architecture.

Figure 2:
A high-level architecture view of Web services.
As you can see, Web services is really a collection of various technologies acting in concert to offer a technology-independent way of invoking services. Because of its complexity, the use of Web services raises the following concerns:
- Security: Security of the application is compromised when it's invoked remotely.
- Transaction: A transaction management system is needed between the two separate invocations.
- Protocol: Web services demands a lightweight protocol to carry data between Consumer and Provider such as SOAP.
- Service Description: You need a way to describe the service in terms of operations, messages, etc.such as WSDL.
- Service Discovery: A way to lookup the service such as UDDI.
- Service Implementation: A concrete implementation of the service.
A Little Bit About WSDL
Web Service Description Language (WSDL) is a XML-based language that describes one or a set of Web services. WSDL provides a means of describing services in a language- and technology-neutral way. The service provider uses WSDL to describe the services and publish the description. The consumer looks at the WSDL to generate the client access code to talk to the service.
In general, WSDL defines the following elements:
- Definition: The definition of one or more Services.
- Type: This provides information about any complex data types used within the messages passed to and from the services. Simple data types need not be defined.
- Message: The data being communicated.
- Operation: The definition of the operations supported by the service.
- Port: A single endpoint, generally a service implementation, which acts as a single communication endpoint.
- PortType: The set of operations supported by the port.
- Binding: Defines the protocol used in invoking the operations.
Listing 1
contains some example WSDL, which is written for defining a Credit Card Validating Service. Different sections of the document are highlighted to show distinct parts of the configuration:
- Service Specification: This section defines a service named CreditCardServiceImpl and specifies the SOAP address for this service.
- Binding Definition: This section defines SOAP binding to the specified service.
- Operations and Port Type: This section describes the single operation validateCard defined by the service and refers to the input and output messages.
- Messages: This section describes the input and output messages used in invoking the defined operations of the specified service.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|