The rise of service-oriented architectures (SOAs) marks a radical change in the way software applications are conceived, designed, and implemented. The new paradigm breaks down applications into individual functions, eliminates the barriers that make applications islands of functionality, and melds the functions into larger composite applications.
"A service-oriented architecture is really a fundamental change in the way we build applications," says Ted Farrell, vice president and chief architect of application development tools for Oracle Corp. "Traditionally, applications tended to be some- what monolithic in that they had an overall goal they were trying to accomplish, and the software as a whole was built to achieve that goal. Service-oriented architectures identify individual services that have a particular function and expose and take those interfaces to build one or more bigger logical applications."
An SOA is an application-software framework that encompasses a collection of applications, which can be based on a variety of operating systems and languages. It defines the applications' data and functions and makes these resources available as services to all the software participating in the framework. In this way, an SOA allows the software to integrate and interact seamlessly with other programs.
To understand what an SOA is and how it functions, you really have to look at the mechanisms upon which it is built. These mechanisms include the service, the messaging bus, and dynamic discovery.
A service is a block of data or functionality possessed by an application. The service's interface is platform independent. This means that a "consumer"—that is, another software application using the functionality—can use the service no matter what operating system, language, or protocol it is based on. Two of the primary tools used to create the service's interface are the Web Service Definition Language (WSDL) and the Simple Object Access Protocol (SOAP). Both standards define a wrapper format and rules that describe the contents of the service and make it unnecessary for the consumer to understand the data structure of the application providing the service.
The messaging bus is the medium by which service providers and consumers communicate with each other. A service consumer sends a message requesting the desired functionality, and the provider forwards the service to the consumer. Because messages must be platform/language agnostic, they are based on XML, which provides the functionality and scalability required for these communications.
Dynamic discovery is the process by which service consumers locate and invoke the blocks of data or functionality (services) they require. A directory service acts as an intermediary between service providers and consumers. The providers register their services with the directory, and consumers query it to find the appropriate providers.
Extend the Value of Sensors
When all these features come together in an SOA, they enhance the value of sensor data by making them quickly and easily available to a greater number of users. In a recent conversation, Jack Wilkins, senior product manager for Proficy Software at GE Fanuc, explained how this might work with the following scenario.
Assume that a number of sensors are tied into a human-machine interface (HMI) system in an industrial setting. The HMI system is providing real-time feedback to the production personnel so they can monitor the various temperatures and pressures of the process. At the same time, users elsewhere in the facility may also want to use the information—maybe in a supervisory dashboard as part of a Web-based portal. If the HMI is SOA-enabled, they can draw upon the components of the HMI to provide raw sensor data to the portal.
As with other integration technologies, you can reap the benefits of an SOA without replacing the software infrastructure that's already in place.
For more information:
E Fanuc, Charlottesville, VA; www.gefanuc.com
Elli Holman, 508-698-7456
Oracle Corp., Redwood Shores, CA; www.oracle.com
Ted Farrell, 650-506-7000
Tom Kevan is a freelance writer/editor specializing in information technology and communications.