G. Application Programming Interface
Existing loT Mashup systems support developers by
providing an API to the things they integrate, making it
possible to scale the application from a quick prototype to more
advanced application services. Since a toolkit cannot provide
all of the functionality needed by an application, it is important
to support the integration of external applications and
components. Once an application is prototyped, a suitable API
allows developers to create their own custom applications,
visualizations and processing components, or integrate new
sources of data into the system. Ideally, the programming
interface should be RESTful to allow web developers to take
advantage of the extensive tools and techniques available.
These abstract requirements have evolved out of an analysis
of existing systems and our own work, which has spanned wide
area UbiComp platforms [9], [26], loT platforms [11] and most
recently the WoTKit. In the next sections we describe the
WoTKit and its design and implementation.
V. WoTKIT OVERVIEW
WoTKit is a Java web application that leverages the Spring
Framework7 a popular development framework for enterprise
applications. The data model consists of sensors with fields
describing either a sensor or actuator connected to the system.
Sensors are associated with time stamped sensor data
containing multiple typed fields. To deliver sensor data
between components, a standard Java Messaging Service
(JMS) broker called Active MQ8 is used for moving new data
between components for fast processing and control
applications. The high level architecture of WoTKit is shown in
Figure 3.
Included in the main web application is a data model for
managing user's dashboards and visualizations. Visualizations
7 Spring Framework http://www.springsource.org/. Accessed May 10,
2012
8 Active MQ http://activemq.apache.orgl. Accessed May 10, 2012