Internet of Things: Thinking services
By Harish Gaur on Sep 10, 2013
Internet of Things brings tremendous promise to integrate every smart “thing” in this world. Having been an integration practitioner for more than decade, I find it hard to resist drawing a parallel between these 2 worlds: the world of integration & the world of Internet of Things.
- IoT market is Wild Wild West - fragmented, full of competing standards & proprietary solutions - exactly where integration was in 90s before SOA, webServices & XML redefined the landscape. ETSI is doing significant work to unify different standardization efforts and Oracle is actively contributing to this effort. But, there is lot of ground to be covered.
- Smart things i.e. sensing devices, medium powered gateways represent the IoT endpoints. This is akin to B2B integration scenario where cloud apps, B2B apps etc are communicating with the integration platform. Of course, we are now talking about hundreds to even millions of devices sending data to an enterprise versus a handful of apps in a traditional integration project
- There are wide range of devices supporting different interfaces, communication protocols and lack interoperability. It’s virtually impossible for any vendor to provide connectivity solution to entire breed of current and emerging devices. Before enterprise applications started becoming service enabled, we all grappled with the challenge of dealing with myriad of applications exposing their functionality through proprietary interfaces.
List could go on and on. But, it makes one think whether a service oriented approach could be considered when building an IoT application. Before we apply service oriented principles to IoT architecture, we should acknowledge the fact that IoT does bring its unique set of challenges
- Security: How do I ensure that data in motion (traveling between devices, gateways, network to enterprise apps/cloud) or data at rest is secured?
- Identity – Device is the new data source. But, there is no human associated with a M2M device unlike an enterprise app or a mobile. This makes it challenging for enterprises to manage the device lifecycle - onboard/off board new devices and manage their identity
- Device Management: How do I remotely manage and monitor a device throughout its lifecycle (diagnostics, troubleshooting, configuration)?
- Analytics: IoT will lead to data deluge. Enterprises would need to think beyond traditional business intelligence tools. How do I analyze IoT data at real-time (i.e. is there a medical emergency based on data received from blood pressure monitor?) to how data is analyzed for historical & predictive analytics (How do I improve patient care based on medical trends from patients over past 6 months)?
In a typical SOA Composite application, we have collection of business processes, business services, data services with each layer building on top of the other to enable loosely coupled integration. Data services expose application interfaces as services which could in turn be orchestrated together to create a business service. E.g. “Create Employee Record” Data Service is responsible for creating a new record in Fusion HCM application, while “Onboard Employee” business service would orchestrate several steps (read data services) needed to on-board a new employee (create employee record, provision new email account etc).
">Figure 1: Layered SOA Architecture
IoT architecture could essentially be modeled in a similar layered format. Device layer, at the bottom, is the main source of data. It includes sensing/edge devices which sense the surrounding environment and transmit data in regular intervals. These sensors, in turn, may interact with an intelligent gateway. Gateway provides data aggregator and in few cases device level data processing capabilities. Data is funneled through a communication service provider network. CSP could either play the role of the network provider or it could move up the value chain to offer IoT infrastructure services. This layer would enable seamless connectivity with different M2M devices (akin to data services in SOA) and offer the ability to remotely monitor and manage them for device connectivity.
IOT services layer is completed agnostic of underlying
devices, communication protocols and connectivity semantics. This layer would
include core set of services to build IoT applications (i.e. composite
- Analyze data at real-time (event processing)
- Act on M2M data & events (integration service)
- Enable historical, real-time and predictive analytics (Analytics Services)
- Visualize operational and analytical data through mobile/desktop (UI Services)
- Manage data security & identity of
devices/apps (Security & Identity Management Service)
- Figure 2: Layered IoT Architecture
Oracle IoT platform enables this service oriented approach to building IoT applications. Listen to this webcast replay how Oracle customers have leveraged Oracle IoT stack to build applications for smart city, home automation, industrial automation and e-health.