- 15 Minute Introduction -
Service Oriented Architecture (SOA)
Room4me.com Software LLC
By Frank Font 2005
This document may be quoted and copied freely when appropriate authorship attribution is also included. Disagree with the content? Email
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
What is SOA?
A Service Oriented Architecture (SOA) is a software implementation that delivers information services via loosely coupled interfaces that are accessible by non-proprietary tools and products.
Information Services
An information service provides data relevant to a business or technical need in a manner that does not clutter useful interpretation of that data with excessively artificial technical complexities. In other words, you don’t need a PhD to transform the data into an alternate format even if the data itself does require a PhD to understand. For example a programmer might be asked to format the data from an information service into a report that a specialist in the subject will find useful. Without significant knowledge of the subject area the programmer might not understand the data – and that is okay as long as the programmer can produce the report.
Loosely Coupled Interfaces
A loosely coupled interface is, by design, expandable to include additional data elements without affecting existing systems that already use the interface. For example, years after deployment of a successful SOA system, a business need may require inclusion of data that was unimagined when the original system was deployed. The only impact downstream is the effort required to use the new data that is now included in the interface. No effort is required to adjust existing systems that use the interface and do not need the new data.
Non-Proprietary Tools and Products
Supporting non-proprietary tools and products as consumers of an information service enables users of information services to have the broadest possible selection of tools and products available to them for their specific implementation. This has nothing to do with the actual tool or product employed to implement the information service, only the choice made for information delivery protocol and format. The information delivery protocol and format should be available to all users in an unencumbered way via clearly understood standards. Current examples of such choices include HTTP/HTTPS, FTP, HTML, WSDL, XML, and SOAP. Choosing less open delivery mechanisms narrows the number of options for development of information consumers.
Is SOA a new concept?
This is an old concept that now has a popular name. The SOA concept predates the SOA buzzword by years if not decades. Delivering information via standard protocols and formats that can be understood by a plethora of independently created and maintained software can arguably be traced to the implementation of the first ASCII terminals in the 1960’s. The ASCII standard documented the format of computer bits so that any number of devices could interpret a text stream in an open and well-understood, non-vendor specific, manner. The benefit of a standardized bit interpretation across systems and vendors’ products for data delivery seems fundamentally obvious now.
Much closer to the business level of data interpretation is the Electronic Data Interchange (EDI) standard that developed some significant technical support in the 1980’s and early 1990’s. This is an open binary standard for exchanging data between systems, but since the late 1990’s vendor support has shifted away from EDI to XML. The XML standard has all the capabilities of EDI and has much better tool support.
The World Wide Web (WWW) is probably the most pervasive example of an SOA concept and it predates the SOA term by several years. The World Wide Web (what some users consider “the internet” although the internet is actually much more) uses the non-proprietary HTML standard for information delivery via the non-proprietary HTTP/HTTPS protocol. Because these standards are open and freely available, technologists around the world have been able to implement their own independently created information consumers. Some WWW clients are open, such as the Mozilla/Firefox web browsers, and some are proprietary such as the Internet Explorer or Opera web browsers. The source of the tool does not impact the usability of the tool; and they are all viable because the information delivery of the WWW is based on unencumbered open standards.
Is SOA the same thing as “Web Services”?
SOA is much broader than “web services”. Although the internet and its standards are a natural resource for SOA designs, SOA is not restricted to using those technologies to be service oriented. Web services on the other hand, specifically use those technologies to deliver information services. We can consider web services to be a subset of what we call SOA.
What are some specific SOA best practices?
SOA is not technology specific, so the implementer is free to choose the best technologies available for their need. However, there are some good principles that are independent of technology choices.
Deliver a Document
A document centric approach delivers more than just a single value to a data consumer. A useful goal is for the returned information to contain enough detail that the recipient can reconstruct the context of the original service request. This enables developers to create stateless data consumer applications. XML is a natural choice for such documents because the tool support is broad and readily available.
Service Clarity and Completeness
The information delivered by an SOA should be clearly documented so that all data consuming application developers understand exactly what they will receive for any allowable condition. If the returned data is in an XML format, consider providing XML Schemas in addition to human friendly documentation.
Implementation Consistency
A good SOA implementation is delivered with an eye to providing an interface consistent with other SOA implementations already in use or planned for deployment. If a team is developing several SOA implantations for an organization, they should attempt to use the same message format when contacting the services.
Well Supported Standards
Use open standards for communication protocols and data formatting that are available to all relevant parties. Some examples are HTTP/HTTPS, WSDL, SOAP, and XSL. You can find many relevant implementation examples if you search the web for the term “Web Services”.
Not Brittle
A good SOA implementation can be enhanced without breaking existing information consumers. A good XML schema can accommodate many enhancements to data content without changing delivered structures.
What are some benefits of SOA?
Data subject matter experts can be enlisted to directly design the content and structure of delivered information documents when formats such as XML are used. XML has very simple structural rules that users can learn to work with after minimal instruction. The same cannot be said about designing a database. This frees technical staff to focus on other parts of the implementation.
A well-implemented SOA solution enables greater flexibility in how relevant data is used within an organization. A greater variety of tools can be employed to get and manipulate the data. In some cases, various SOA services can be combined using scripting languages to produce aggregate data feeds. Without an open SOA implementation, significant application specific knowledge or specialized tools would be required to extract information from a service for other purposes.
What are some Limitations of SOA?
SOA solutions carry overhead that might be inappropriate for high volume transaction systems where the latency of the service requests will noticeably impact the overall performance of the system. Consider working SOA into designs in a way where the SOA components return groups of data for single queries. Performance issues need to be evaluated on a case-by-case basis. Experiment.
Where can I learn more?
There is already a large volume of information available on the Internet on this subject. Some companies, IBM in particular, have produced many documents on this topic and have made them freely available. To find current documents, consider typing “What is SOA” into a search engine like google , yahoo, or Lycos.
Revision History
| Date | Description |
|---|---|
| 20050909 | Initial release. |

