We have given a talk at Smart City Conference & Expo 2015 in Santa Clara, CA on May 30, 2015. Here is the link to the presentation.
In the context of smart city there are many opportunities to apply IoT technology in infrastructure monitoring. We talked about water quality monitoring and civil structure health monitoring (i.e. bridge monitoring) as examples. The edge sensors could generate a lot of time series data. Our feeling is that data by itself is not meaningful until it has been analyzed to generate domain-appropriate events. These are done by domain-specific middleware which may need to transform the raw data, use FFT to examine the frequency spectrum, for example. Events trigger response in human organizations. An abnormal water quality change does not warrant a city-wide red alert; there would be an appropriate work flow to have first responders verify the reported event, attempt to resolve it, and close or escalate it. Event detection is complex
So here we have many IoT edge sensors, multiple pieces of information systems (middleware components to analyze and generate events, directory servers to manage the users and their roles, work flow between roles, etc.) and human actors, which could be staff managing the infrastructure, or citizens reporting and tracking the events from their smart phones and PCs. This is a different level than the protocols to interface with the smart sensors.
In our recent projects, we have used sails.js (a very nice MVC web framework on node.js) as the ORM and RESTful API server with good results. The ORM makes it easier for us to deal with data in different repositories. The blueprint API makes it much easier to support RESTful API. RESTful API over HTTP seems to be the most well understood, and most universally supported across the three groups: smart sensors, other information systems, user access agents (mobile apps and browsers). For real-time data streaming, websocket seems appropriate.
We hear of IoT solutions creating silos, making it hard to integrate them. We think our framework could be a way to loosely couple IoT solutions of different domains from different vendors to better serve a complex organization. With encouragement from the conference organizers, we thought it would make sense to open source our framework so that it could benefit others. Most of the existing code are project specific. We hope to refactor and organize the code, and add features, so that it will be appropriate for others to use and contribute to its further improvement. Please email us at firstname.lastname@example.org if this sounds like something you might want to use or contribute to. Your comments/feedback could help steer us at this early stage.