SODA is an adaptation of a service-oriented architecture (SOA),7.1 which integrates business systems through a set of services that can be reused and combined to address changing business priorities. Services are software components with well-defined interfaces, and they are independent of the programming language and the computing platforms on which they run.7.2,7.3 The SODA approach to designing and building distributed software is to integrate a wide range of physical devices into distributed IT enterprise systems. At the simplest level, as figure 7.1 shows, SODA lets programmers deal with sensors and actuators just as business services are used in today’s enterprise SOAs.
SODA focuses on the boundary layer between the physical and digital realms. In other words, a sensor, such as a digital thermometer or an RFID tag reader, can translate a physical phenomenon into corresponding digital data. Or, an actuator, such as a heater relay or alarm beacon, can translate a digital signal into a physical phenomenon. Sensors and actuators combine either physically or conceptually to create complex devices and services—such as a climate-control module or a geo-fencing system that monitors a vehicle’s position within a restricted area.
Viewing SODA in this way places few bounds on the device type or its usage, thus encompassing many types of devices from government, industry, and scientifi c enterprise. The devices range from basic sensor interfaces to complex diagnostic equipment. Whether providing the location of critical cargo, the blood-sugar level of a loved one, or the critical status of an energy distribution system, what devices share in common is that their data, functions, and events are critical services to the enterprise in which they’re used.7.4
We wouldn’t need to think of devices in the broader terms of a digital realm without the types of complex distributed systems enabled by ubiquitous networks such as Bluetooth and the Internet. Without such networks, a signal would exist inside a single isolated machine or a well-defined isolated system. Networks enable a single processor to access signals from any number of devices. Thus, the challenge of wide-scale device integration is predicated on the existence of a universal network capable of supporting complex distributed systems.
Before the networking capabilities enabled by the Internet, two or more devices would be associated only within a single well-defined system. The engineers would define the devices’ interfaces and interdependencies in the system design. With the Internet, enterprise systems can now access signals from numerous devices on an ad hoc basis. The ability to access and control aspects of the physical realm, which is critical to an enterprise, opens new opportunities and advantages but can be self limiting. The protocols, connections, and interfaces to devices are extremely diverse, and programming to them is often unfamiliar territory to system and Internet developers. Ancillary device interface software often is as critical to the completion of the IT project, with limited reuse and relatively high maintenance and support costs.
7.2 HOW A SERVICE-ORIENTED ARCHITECTURE CAN HELP
SODA aims to
-
provide higher-level abstractions of the physical realm,
-
insulate enterprise system developers from the ever-expanding number of standard device interfaces, and
-
bridge the physical and digital realms with a known service or set of services.
SODA implementations can use existing and emerging device standards and SOA standards. SODA should be straightforward to implement, unlocking the potential to enable a new level of Internet-based enterprise systems.
Consider, for example, an enterprise scenario to process shipments of hazardous biological material. The application must track the materials during manufacturing and shipping, monitor and control their environment during shipment, and verify their delivery. Enterprise-system developers must build numerous complex distributed device interfaces for such an application:
-
RFID readers and various digital I/O installed in the factory, delivery vehicles, shipping container, and at the receiving site;
-
GPS devices on the shipping container and transport vehicle;
-
a climate-control system in the shipping container;
-
an interface to a vehicle control bus to determine the transport vehicle’s status;
-
various wired and wireless networks and protocols connecting all these devices; and
-
numerous versions of all these items, depending on the specific device and on the protocol and networking vendor contracted by the system integrator. In contrast, consider the enterprise system application developer’s job if he or she could design an application to register interest in, and control, device services that can
-
confirm, using an RFID-tagged item, that a shipment has cleared quality control, safety inspection, and the loading dock;
-
confirm that the tagged shipment is secured in the shipping container in its assigned vehicle;
-
provide a named vehicle and container’s geographic location;
-
provide notification of vehicle breakdown or of cargo leaving its geofence boundary;
-
provide cargo’s environmental status and listen for climate-control adjustments;
-
provide status of vehicle safety and mechanical systems; and
-
confirm the environmental transit log and compare a shipping notice to a tagged shipment secured at a delivery location.
Figure 7.1. When modeled as services, device access and control can be made available to a wide range of enterprise application software using serviceoriented architecture mechanisms.
A device integration developer would be responsible for encapsulating devices as services, dealing with the device-specific connections and protocol as well as with network interfaces needed to publish the data over a defined SOA protocol. A standard specifi ed device service can have a wide variety of underlying hardware, firmware, software, and networking implementations that don’t affect the consumer of the service.
The overall system design would specify the required service interfaces. Suppliers would be responsible for the device adapters and service logic required to provide the specifi ed service for their devices. Other developers could build more complex or composite services from lower-level device services. The system integrator could bid out components from multiple suppliers and avoid maintaining multiple versions of device-specific interfaces in the application code. Enterprise developers could code to a common or even standard set of services. They could not only build this application with clean device interfaces but also build and
Figure 7.2. A Service-Oriented Device Architecture implementation provides an abstract services model of a device by talking to proprietary and standard device interfaces on the one side and, on the other, presenting device data as SOA services over a network through a bus adapter.
integrate future applications and system enhancements reusing these same device services. The enterprise could upgrade device hardware, firmware, and even the lower-level device interfaces with little or no impact on the consuming applications.
Share with your friends: |