Research Article

Developing an On-Demand Cloud-Based Sensing-as-a-Service System for Internet of Things

Table 2

Tools and technologies.

Tools and technologiesNameVersionDescription

DevelopmentJava, Python, Groovy, JSNAIndependent programming language
API frameworkSwagger1.5Representation of RESTful API
Operating system Linux 14 Open-source operating system
White-box testing framework JUnit 3.8.1 Dedicated testing framework for Java with native support
Black-box testing framework Selenium 2 Automated testing framework for web applications
Integrated development environment Eclipse Luna Widely used IDE with full support for Java and third-party plugins
Communication protocol MQTT 2.3.1 Lightweight publish-subscribe broker communication protocol for IoT
Storage Cassandra 2.1.7 Big data storage on clustered commodity hardware
MySQL 5.1.36 SQL database to store dashboard-related information
Continuous integration framework Jenkins 1 Continuous integration for software development. Also supports Git repository
UI HTML 5 Fundamental and flexible Web UI language for web application
CSS 3 Fundamental and flexible Web UI styling for web application
Web JQuery 2 DOM manipulation library
moris.js 0.5.1 Graphical data visualization Java Script library
Bootstrap 3 Java Script framework to build responsive websites
Repository Git 1.9 Open-source subversion repository. Powerful collaboration, management, and code review for projects
Cloud AWS NA Amazon Web Services to build cloud infrastructure
Build tool Maven 3.2.1 Build automation system to automate build, testing, publishing, and deployment activities
UML Astah 6 Design UML diagrams
MQTT client Eclipse Paho 0.4.0 Open-source client implementation of MQTT
Logging Log4j 1.2.17 Library for logging in Java
Sensor kitRasberryPi, Samsung SmartThingsNA10 microcontrollers with sensors: RasberryPi has temperature sensor, pressure sensor, ambient light sensor, and LED; SmartThings has temperature sensor, contact sensor, humidity sensor, motion sensor, and orientation sensor