What is Service Oriented Architecture (SOA)?
Service Oriented Architecture (SOA) is an increasingly popular approach to delivering business functionality through software that is structured to provide and/or consume services. In very simple terms, a service within SOA is much like a procedure call. In concrete terms, a service, like a procedure, is implemented as a chunk of code that returns a result or causes some side effect. For example, the code might calculate and return a credit rating for an individual, reserve an airplane seat, send an email message, or start a piece of equipment.
The key aspects of of a Service Oriented Architecture
SOA services have three key technical aspects:
- Applications can invoke SOA services locally or remotely via an invocation protocol that isn’t tied to any language, operating system, or Web application platform
- SOA services can be invoked asynchronously as well as synchronously
- The service implementation doesn’t maintain any state between invocations
The first two characteristics provide greater flexibility and interoperability than language- or platform-dependent local and remote procedure calls. SOA’s pivotal contribution is the ability to make procedure calls across a broad range of environments. For example, a LANSA application running under IBM i can invoke a service implemented in C# running in a .NET environment.
The third characteristic, so-called “stateless” services, produces looser coupling between an application using a service and the implementation of the service, which allows services to be invoked in a simple manner across the Internet.
SOA can be useful for integrating applications running entirely on a single system, especially in workflow processes or when integrating legacy and newer applications. SOA is also a great tool for distributed applications that communicate across the Internet.
The importance of Web services
Although there are many potential forms of SOA, the most widely used is based on Web service standards, which allow communication across either an intranet or the Internet. The most important Web services standards include:
- XML for the structure and syntax of messages and configuration information
- SOAP (originally an acronym for Simple Object Access Protocol) defines the structure of messages and how messages are exchanged in a network
- WSDL (Web Services Definition Language) describes public interfaces to available Web services, including the message formats that must be used to interact with the services
- UDDI (Universal Description, Discovery and Integration) is a standard for a directory (or registry) that contains entries describing available services
There are a number of other Web services standards that cover security, reliability and other aspects of invoking services and responding to service requests.
Practical SOAP and Web service implementation with LANSA
Web services are a perfect example of how LANSA’s frameworks and tooling are essential to a flexible, reliable and productive application development strategy. Although conceptually invoking a Web service is no more complicated than calling a procedure, the required “plumbing” code is complex and not forgiving. To hand-code a Web service invocation requires a programmer to learn an enormous number of details and exercise great care in coding the right steps and configuration properties, none of which contributes to implementing actual business rules or processes. However, with LANSA all the required code and configuration properties can be reliably generated from a few simple specifications. Similarly, implementing a Web service manually is a burdensome task, but with LANSA's SOAP Wizard it is no more complex than writing an ordinary procedure.