of Things (IoT) platform was showcased at the demogrounds location at
Moscone South at Oracle Open World 2013. The demo garnered significant
attention and this post attempts to explain what the demo was all about in case you missed it.
IoT is poised to be the next big thing in healthcare. Procedures are being performed remotely, real-time information such as heartrate, blood pressure etc is collected, stored and is being used to alert emergency services when action is needed. Some emergency situations warrant an ambulance to be dispatched on location to attend to the person. Falling at home is a common cause of injury for elderly people living alone. Sometimes the injuries might even render the person immobile or unconscious. Consider a situation when an elderly person were to fall down and if this sudden burst of activity in the sensor (implanted in a wrist band worn by the individual) could trigger an emergency service. The IoT platform demo showcases this scenario through a Home Gateway Application for remote healthcare monitoring. Lets look at a demonstration of this scenario where devices essentially talk to each other and handle the situation with very little human intervention.
Home Gateway Application -
The home gateway application, (see image) enables us to have our elderly person living at home, while we control access to the home through the doors, and monitor the activity of the person. A Java card and an RF ID card reader (see left of the image) are used to control access to the security configuration system. The java card prevents someone to be able to break into the security access system and reconfigure the controls. The java card is secure enough that it has been widely adopted by many organizations including finance companies around the world for security applications. Also, a selection of RF ID tags grant access to specific individuals who are authorized to unlock the door. The card reader and the tags control the door through the gateway.
The gateway device (in the second column of the devices in the image above) is essentially running an OSGi container, Java Embedded Suite and Oracle Event Processor Embedded in an ARM based architecture. When the authorized tag is placed against the card reader, the door is unlocked. The gateway gets the message from the RF ID tag reader to unlock the door. It verifies access against a local database whether to unlock the door. The decision is made in gateway as opposed to an external communications link. You dont want to be at the mercy of an external communications link to control access to the door. Some of the analytics are best performed locally. A Tablet display (in the bottom center of the image) runs an access manager application which is an ADF mobile application which is used to change the security configurations. One can also view a log of all the activity in the front door like who accessed the door and at what times, and if there were any unauthorized entries etc. The application can potentially run on any iOS or Android device.
It is thus possible to remotely monitor the activity of the elderly person living at home and also have access to the security environment and view all this information on a tablet (or a mobile phone or a browser) running on any platform.
If the elderly person falls over, the sun-spot device, which is used as an activity sensor in this demo, records this sudden burst of activity. The activity is also logged in the ADF mobile application which can be viewed in the tablet. The device waits for the person to reset it. If the person does not respond or is unconscious, the system automatically sends a message to the datacenter through the gateway. The data center, upon receiving the signal locates the nearest emergency services using geo-spatial capability and requests an ambulance to be dispatched. When the ambulance is nearing the house, the ambulance driver's RF-ID tag is enabled by sending a message from the data center to unlock the door. Upon unlocking the door, the ambulance crew then locate the person and take appropriate action.
The data center (which is the back-end stuff not visible on the image) is running the Oracle database to store the data, weblogic server to provide messaging information, Oracle NoSQL to store non-structured data, OEP to do real-time monitoring of the data and a mobile server to replicate the data with the database. Why do we need the data center? The Oracle DB in the data center maintains a list of hospitals in the area which we use to communicate with based on the location of the emergency. The data center also enables us to maintain a list of ambulance drivers who we can provision access to in a time limited manner to access the door to be able to attend to the emergency. The demo showcases how the gateway communicates with the data center to provide value. In reality, there are tens of thousands or perhaps even millions of gateways talking to the datacenter. Oracle Exalytics provides an environment for real-time analyses of the data, Oracle Exa-data for storing the data and the Oracle Exalogic for running it.
The data center also has Oracle Business Intelligence Enterprise Edition (OBIEE) which handles volumes of unstructured data to do real-time analyses. The OBIEE dashboard provides a summary output of the data points that can potentially carry enormous value for the application. For example, frequency of falls over a period of time, or the time it took for the ambulance crew to arrive at the location, the time it took for the crew to gain access to the house etc is all logged and made available for further analyses and processing. Liability is an important concern especially in healthcare and the information log is useful to trackback and find out what precisely happened when faced with a legal situation. This data is also useful to determine ways to optimize the solution in different areas. Also as it turned out, there were occasions when data was missing. This may be because an ambulance was requested, and then cancelled by the person. Or the ambulance may have arrived and the person might have walked out of the home waiting for the paramedics so there was no need for the ambulance crew to open the front door. This logged data when aggregated and analyzed can help provide valuable insights to drive decision making.
Another technology used in this demo that I would like to highlight (this may warrant a separate blog entry) is the Oracle Event Processor(OEP). OEP allows us to take multiple streams of events in real-time, apply advanced automated algorithms and business rules against them and make real-time decisions. We can do things like filtering, correlation, aggregation or enrich the events by adding additional data. OEP can be used across a wealth of industries and IoT use-cases spanning Financial Services, Transportation, Military, Insurance etc. OEP was what was used in the demo data center to locate the nearest ambulance for dispatch during an emergency. OEP-embedded, which in effect has a subset of the capabilities of OEP is used in the device gateway to perform local analytics. For example, in the above scenario, OEP embedded was used to trigger access to the door, prevent unauthorized access etc.
Dynamic provisioning and flexible architecture -
The next aspect of the demo (see right half of the image) which is the provisioning demonstration had two Gateways, X86 and Arm-based with both running OEP embedded and Java Embedded suite. It also has two tablets running applications written on an Android and an iOS platform. Of the two tablets, the upper one is connected to the x86 based gateway and the lower is connected to the ARM based gateway. This demo attempts to show how easy it is for one to design, develop and modify the code running the application across multiple gateways and platforms. In an environment where you have constant Operating system or processor or platform upgrades, one can easily upload a new version of the code to enhance the capabilities of the devices and thus change its functionality(or add new functionalities). In this demo, Sensors are currently monitoring only light level info. (Which is displayed in the top tablet) One can upload a new version of the code to enable additional capabilities, such as temperature sensing, onto the device. OSGi allows one to build and run multiple applications and control them individually. One may freely provision these applications almost simultaneously on the x86 and ARM based devices since it is running on a JAVA run time environment. Processing and analysis can be done at different stages as was shown in the demonstration. It can be done at the Java card, Gateway, Spot devices or the tablets. It can also be done in the cloud, or elsewhere in the backend. This flexible environment provides the developer the capability to design and build applications and have them run anywhere in the system. This is reinforced in the demo by the fact that a single piece of java code was written and re-used across multiple devices and gateways.In summary, the above demonstration illustrates an end to end architecture from the smallest edge devices to the big backend architecture and gateways and data streams that generate relatively few events to data center which deals with very large volumes of data. Oracle has technology and products that can support a range of use-cases in Home Automation, Healthcare, Industrial Automation etc.