Saturday, May 24, 2008

SOA model - The Triangle of Roles


To understand more about SOA, we look at the three major roles within the architecture. This diagram shows this three roles: Service provider, requester and Discovery Facility.

Service provider implements the service and makes it available on the network.

A requester is a consumer can find the required service via the Discovery Facilities. Once discovered the requester can utilizes the service by opening a network connection and sending an request message.

A registry provides a central place where developers can publish new services or find existing ones. It therefore serves as a centralized clearinghouse for companies and their services.

Web Services (WS) is used to implement SOA and the following further describe WS:

  • It is a software application identified by a URI
  • Whose Interface and binding are capable of being defined, described and discovered by XML artifacts.
  • It supports direct interactions with other software applications using XML based messaging via Internet based protocols

We need some basic standards:

1. Message Protocol:
Web Services consist of a set of protocols and standards. The participants of the Web Services communicate using the Message protocol over the network. This message uses Extensible Mark-up Language (XML). Simple Object Access Protocol (SOAP) is the standard used for the message protocol.

2. Web Descriptions:
The interface of the Service Provider is described using a standard called Web Services Description Language (WSDL). WSDL is a standard for describing the wire format of the messages that are carried by SOAP envelopes. A WSDL file is an XML document that acts as a contract for a Web service. It can be used by Service Requester of that Web service as a guide for creating and validating the XML payloads delivered to and received from that service.

3. Publish and Discovery:
Publish and Discovery is provided by a Service Broker and this repository can be implemented using the Universal Description, Discovery and Integration (UDDI) standard. UUDI provides a registry for businesses to publish their services and service requesters can used this registry to query or discover required services. UDDI provides information for machine to setup and instantiate a session easily with the service provider.

Sunday, May 11, 2008

How is web services related to business process executions?

Web Services provide the basic technical platform required by the applications to achieve interoperability and framework to implement Service Oriented Architecture applications implementations. However it does not provide higher level control like what services need to be invoked and the sequence of operation as well as semantics of interfaces, the workflows or e-business processes. Business process execution Language (BPEL) is the missing link necessary to assemble and integrate web services into a real business process.

Several companies come together to work on a business process management standards, BPEL4WS. The BPEL4WS is designed to integrate previously isolated systems. These systems can be within enterprises and business partners. BPEL4WS is a standard descriptive structure used by enterprises to define their business processes. BPEL is a language used for composition, orchestration, and coordination of web services. It provides a rich vocabulary for expressing the behaviour of business processes.

Business processes are usually dynamic in nature. Companies have to improve and modify, act in an agile manner, optimize and adapt business processes to their customers, and thus improve the responsiveness of the whole company. Only companies where applications can be quickly and efficiently adapted to the changing business needs can stay competitive on the global market.

There is some work on BPEL at OASIS, follow this link for more detail:
http://xml.coverpages.org/bpel4ws.html

Wednesday, May 7, 2008

SOA a programming method?

I came across this statement "SOA is a programming method" while reading an article published on a local newspaper. This statement will definitely cause more confusion ...

SOA is not a programming method, it is a design concept. This concept proposes that independent fuctional blocks to be implemented and later use them to create an application without having the need to develop from scratch.

These functional blocks are built with interfaces that allow them to communicate and exchange information with one another. Application implementors do not need to know the inner working of these functional blocks; all they need to know is their APIs. The APIs are decribed using WSDL in Web Services. Web Services is one of the way of implementing SOA concept. There are other ways too. Web Services is preferred because it is an open standard and easily interop. It uses XML standard.

So SOA is NOT a programming method.