1Application Programming Interface (API) is a set of functions and proce-. dures that meet one .... â¢The database can secure data with electronic signatures. 4) Security ... to enhance collaborative work and obtain the best possible. result in the ...
AquApp, an Information System for a Collaborative Sensor Network Jairo Enrique Serrano Casta˜neda, Oscar Acevedo Pati˜no, and Juan Carlos Mart´ınez-Santos Facultad de Ingenier´ıas Universidad Tecnol´ogica de Bol´ıvar Cartagena, Colombia 130010
Abstract—This paper presents AquApp, an information system for a collaborative sensor network. AquApp deploys information collected from the water bodies of the city of Cartagena. The goal is to monitor the water bodies surrounding the city and to establish the current state of the sea. The system can determine the degree of pollution, water levels and environmental conditions of marine fauna and flora through a wireless sensor network. At the same time, this sensor network can help detect contaminants such as oil, which can help to take action quickly, reducing damage to the ecosystem. The collected data will be available to scientists and institutions for further study. The information can be acquired through a website, thus allowing access from anywhere in the world to anyone that may be interested. It is expected that the availability of this information allows research centers, educational institutions, and government to design plans for prevention and improvement of water bodies surrounding the city, and provide updated information. The platform is open to collaborators. Research centers, academic community, and even sensor manufacturers are welcome to join forces in this project. Keywords—Information systems, Sensor network, Architecrual design. Fig. 1. System architecture diagram of AquApp.
I. I NTRODUCTION In Cartagena, the current status of the sea that surrounds the city is of paramount importance, since many activities revolve around the sea. Examples of factors that provide insight into the state of the sea are sea level, chemical composition of water bodies, the degree of contamination of water bodies, and the state of fauna and flora. At present, there is a reduced amount of monitoring of water bodies of the city available for study. The information provided by centers like CIOH [1] is fairly widespread to generate some kind of study to a particular maritime area of the city. This lack of detailed information does not allow city officials to take preventive measures against the changes taking place in the sea on time. This paper proposes AquApp, an information system that can be deployed in water bodies of the city of Cartagena, so that helps convey information collected by sensors and allows viewing, either by individuals or institutions concerned, so that they can generate plans for prevention and correction maritime area of interest. We use a client-server design for data processing. This document is intended for implementation as a service provider and a disengaged API1 to different types of customers. Fig. 1 shows the system architecture diagram of our system.
Using an API will be easier in the future to create new utilities that allow a wider use of the data and be able to deploy these changes in any application that consumes this information. The data provided by the API are independent of the application, device, and operating system. For the construction of the API, we used REST2 . REST allows you to create services and applications that can be used by any device or client who understands HTTP. As a result, it is incredibly simple and conventional than other alternatives that have been used in the past ten years as SOAP and XML-RPC. REST is the most natural type of architecture and to create standard an API for Internet-facing services. At this moment, AquApp is displaying and storing the data collected by our nodes. In addition, the server application is capable of add new users (other collaborators as research centers of universities, even sensor manufactures) to the network. In this way, it is possible to extend the original coverage area and also the amount of variables sensed. The paper is organized as follows. Section II presents work around the world similar to the proposed in this paper. Section III presents our application. Section IV shows the
1 Application Programming Interface (API) is a set of functions and procedures that meet one or many functions to be used by other software.
2 REpresentational State Transfer (REST) is a type of architecture development fully supported in the HTTP standard.
c 978-1-5090-2966-2/16/$31.00 2016 IEEE
2
methodology used for the approach. Section V illustrates the system development. Finally, Section VI concludes the paper. II. R ELATED W ORK This section shows an overview of works similar to those presented in this proposal, which have been conducted around the world.The objective is to know the status of water bodies monitoring systems that cover a wide geographical region, for example, around a harbor, and the possibilities for taking preventive and corrective measures, so the sea conserve favorable conditions for marine life and for the people in direct interaction with the sea. In [2], a platform for sensing different parameters of the sea as the sea depth and temperature, occurs around loading docks. All these parameters are of vital importance for ensuring safe operation of the port of loading into consideration, which has problems because the level of deposits in the seabed often changes, affecting the boats’ navigation route and parking in that port. Work in [3] presents a network of fixed sensors on the sea. The goal of each sensor is to detect the presence of oil spills in the area covered by the network. The fact that the sensors are not fixed becomes a challenge to the communication system, which must take into account the variability of position sensors for sending data to the base station. Similarly, work in [4] presents the usage of Synthetic Aperture Radar (SAR) systems to detect areas contaminated by oil. Work in [5] discusses various factors that must be considered when deploying a data communication platform for a coastal region. This work is technical aspects as communication protocols and electrical properties of electronic devices (eg. battery) are discussed, to build the most efficient and durable nodes possible. In the work done in [6], a network of sensors is deployed along a coastal lagoon in order to determine what is affecting the ecosystem of the lagoon that progressive decline in fish catches. In addition, it aims to determine the hydrodynamic behavior of the lagoon, which is facing the Mediterranean Sea. The work presented in [7] variables such as temperature and salinity in the ocean. Work [8] other variables measured between movement and sound in the waters in the Baltic Sea. Work [9] seeks to monitor water quality, specifically pH. This work only tested in the laboratory. Work [10] aims to monitor the temperature and the ocean waves. This work was tested only at a pool. Work [11] focuses on the state of near the coastline of Monterey Bay corals. For this temperature, pH, and light are monitored. Work [12] monitors water-quality, but this work was oriented to monitor gaps. Work [13] and [14] measure sea pollution through a network of underwater communication, in assessing the quality of marine fish farms. This work was only assessed in a simulator. University of Kent in the UK, also developed a system for monitoring ocean [15], where variables such as temperature, water depth, and turbidity were measured. This network was deployed on a beach for their tests. In addition to these works, there are similar as those presented in [16], [17], [18], [19], [20], [21], [22], [23], [24]
and [25], where a sensor network is designed to measure parameters such as temperature, pH, salinity and pressure, among other variables, to determine the conditions of ocean. Most of these works were deployed at sea and other at pools. The difference between these works lies in the techniques to communicate data, efficient use of energy, and the physical construction of the sensors. Our approach shares the main idea of these previous works, i.e. the usage for research purposes of data collected by a sensor network. However, AqqApp is the first platform that is intended to be open to external collaborators. The proposed solution is not only a web application to display data. It is a tool where any external research or academic (even hardware and software designer and developers) can contribute and joint forces in pro of the Bay of Cartagena. The project is also available to anyone in the community who wants to reproduce this idea in other scenarios through our GitHub repository [26]. III. O UR A PPROACH We conceive our platform as a friendly front-end, built with HTML 5 with full mobile support and agnostic client access as show in the Fig. 2. It means that it can be accessed from any device using any operating system.
Fig. 2. Users login in responsive mobile design.
For the design of the API, we use the Laravel framework to developing web applications and services with PHP [27].
3
This provides advantages such as easy to implement tools and time-saving development was used. In front of users, the MVC pattern [28] (Model, View, Controller) is serving the application. Controllers contain the logic of the application, this take information from Models (data) and made a response in the web client application (View). Previously, sensors (connected to a Node) sent information to the platform through a 2G/3G network. Raw information is processed and saved in the database. Fig. 3 shows the system architecture. A. Requirements The functional requirements define the functions of our system and its components. The functions are described as a set of inputs, the behavior, and the outputs. The functional requirement drives our application architecture as show Fig. 4. 1) Functional Requirements: •
•
•
• • • • •
The system must to allow Administrators to create, retrieve, update and delete (CRUD) users. There are three roles: administrator, node owners, and guest. The system must to allow Users to CRUD own nodes. Each node represents a buoy in the Cartagena bay. Every node must have sensors (like a temperature, altimeters, or wind speed) related to it. The system must to allow Users to link different type of sensors to an specific node. A sensor can monitor one or several variables. The platform must have the ability of convert collected data to graphs visualized by any user, even a guest. The platform must have the ability of export collected data in a text file format. The database only accept formatted data from the sensors. The database only accept time stamped data before the current date. Guess view can save on-screen data to a formatted file.
2) Business Requirements: • • •
Data must be entered only if the nodes has been registered before. All personnel using the system will be a registered user. Downloading data from the system will be logged for statistical purposes.
3) Regulatory/Compliance Requirements: • • •
The database will have a functional audit trail. The system will limit access to authorized users. The database can secure data with electronic signatures.
4) Security Requirements: • •
•
Members of the Guess group can view and download data from public sensors but cannot add nodes or link sensors. Members of the User group can add nodes and link sensor. They can download data from public sensors and its own private sensors. Members of the Administrator group cannot link sensor and nodes but can delete nodes.
Fig. 3. Dataflow.
IV. D EVELOPMENT M ETHODOLOGY The working methodology used is known as SCRUM, developed by Ken Schwaber, Jeff Sutherland and Mike Beedle [29]. It defines a framework for project management, which has been used successfully for the last 10 years [30]. It is particularly suitable for projects with rapidly changing requirements. Its main features can be summarized in two. Software development is performed by iterations, called sprints, every week. The result of each sprint is an operating increase of
4
V. S YSTEM D EVELOPMENT This section presents the plan for implementing the functional requirements.
Fig. 4. Application Architecture.
product shown to the customer. The second important feature is the meetings throughout the project, including the daily 15minute meeting of the development team for coordination and integration highlights. SCRUM is a very simple development methodology, which requires hard work because it is not based on monitoring of a plan, but in the continuous adaptation to the circumstances of the evolution of the project, for instance, requirements are compiled and converted to user stories, that user stories involve functional and nonfunctional requirements in one process face the user, the idea is make a minimum viable product in few weeks. This overview begins with the product and giving detail specifying functionality or parts that have higher-priority development and can be performed in a short period of time (usually 30 days) using 4 iterations (weeks). Scrum is a management strategy where you regularly apply a set of features to enhance collaborative work and obtain the best possible result in the management of a software project [31]. The team should review the requirements, consider the technology to be used, test their knowledge and collectively determine the way in which it will implement its functionality.
Fig. 5. User dashboard in mobile app.
A. Users Dashboard There are 3 types of user in Aquapp: • Administrators: They are responsible for managing owner’s nodes and other information in the system. • Guests: any visitor on the website of the application, they can download information from the full public buoys or applying filters to the sensors and dates so, view the generated graphs. • Owner’s nodes: in addition to what a guest can do, these users have permissions to create their own nodes, add and rearrange associated with these sensors. Fig. 5 shows the dashboard. Once entering, owner’s node or administrators can manage their contact information, added or deleted nodes (buoys), associated sensors and organizes how to process information as well as access to the data collected public and private. B. Extraction Agents and Processing Engine A buoy has a number of connected sensors. These sensors generate raw data that is processed by a small IoT server.
5
The server has implemented an Extraction Agent responsible for converting the raw data and to send it to a Processing Engine that functions as middleware between different types of configurations of sensors on buoys. A buoy is represented as a node in the information system. A node has associated several sensors. These sensors are configured on the client interface. Here, the owner assigns the processing order and storage according to each node. The raw data is stored in a buffer. Depending on the time of capture, the information can be read as follows: dDaE4CFD 20160310144549 2 6 . 3 7 0 7 3 2 ,→ 3 3 . 2 8 0 8 0 3 Each data sequence begins with the node identifier, eight hexadecimal digits that drive 2.8147498e + 14 possible nodes. This is transformed by the Extraction Agent turning it into a JSON file and sent to the Processing Engine: { ” n o d e i d ” : dDaE4CFD , ” data ”: { ” timestamp ” : 20160310144549 , ” temperature1 ”: 26.370732 , ” temperature2 ”: 33.280803 , } } Once the data is received by the Processing Engine, its ownership and integrity are confirmed. The order of the data is verified as well as the origin as provided by the owner of each node. Then the information is saved in the database for subsequent filtering and analysis. C. Deploying the AquApp Server and Nodes For the solution stack, we use LAMP model. The LAMP components are Linux as the operating system, the Apache HTTP Server, the MySQL relational database management system (RDBMS), and the PHP programming language, these configuration are common in cloud computing providers, see Fig. 6 for deployed app. Details about the version of each component are given on Table I.
C ONFIGURATION
TABLE I OF O UR S OLUTION S TACK
Base
Version
Linux Apache 2.4+ MySQL PHP
Ubuntu 14.04 or Nginx (or MariaDB) 5.5+ 5.5+ with mcrypt php module enabled
For more information about details to install App Server or Extraction Agents on nodes go to Github repository [26].
Fig. 6. Charts generated from data collected in nodes across Cartagena Bay.
to monitor the status of the bodies of seawater, as the lack of awareness, industrialization and the dynamics of the planet are generating critical changes in it. It is expected that sea-level rise at an alarming rate in the coming years. The fauna and flora are affected by pollution. The oil spills are destroying life at sea. Monitor water bodies surrounding the city will establish the current state of our sea. We can determine the degree of pollution, water levels and environmental conditions of marine fauna and flora through a system of sensors. At the same time, this sensor system can help detect contaminants such as oil, which can help to take action quickly, reducing damage to the ecosystem. A secondary goal of this project is to introduce AquApp to the academic community. The idea is to call for collaborators. Research centers as the CIOH, the IDEAM (Instituto de Hidrolog´ıa, Meteorolog´ıa y Estudios Ambientales), even the ENAP (Escuela Naval de Cadetes Almirante Padilla) can use our platform and join forces in pro of the sustainability of the Bay of Cartagena.
VI. C ONCLUSION
ACKNOWLEDGMENT
The sea is an important element not only for our country but for the whole world. Worldwide efforts have been made
We would like to thank the 11CCC reviewers for their comments and feedback on the ideas in this paper. This work
6
was supported by Universidad Tecnol´ogica de Bol´ıvar under the grant FI1506T2003. R EFERENCES [1] “CIOH - Centro de Investigaciones Oceonagr´aficas e Hidrogr´aficas,” February 2016. [Online]. Available: http://www.cioh.org.co/ [2] M. Jiang, Z. Guo, F. Hong, Y. Ma, and H. Luo, “Oceansense: A practical wireless sensor network on the surface of the sea,” in Pervasive Computing and Communications, 2009. PerCom 2009. IEEE International Conference on, March 2009, pp. 1–5. [3] P. Barbosa, N. M. White, and N. R. Harris, “Wireless sensor network for localized maritime monitoring,” in Advanced Information Networking and Applications-Workshops, 2008. AINAW 2008. 22nd International Conference on. IEEE, 2008, pp. 681–686. [4] Y. Zhang, Y. Li, and H. Lin, “Oil-spill pollution remote sensing by synthetic aperture radar,” Advanced Geoscience Remote Sensing; InTech: Rijeka, Croatia, pp. 27–50, 2014. [5] M. Britton and L. Sacks, “The secoas project: development of a selforganising, wireless sensor network for environmental monitoring,” in Second International Workshop on Sensor and Actor Network Protocols and Applications, 2004. [6] C. A. P´erez, F. Soto, J. L. Riquelme, and A. Iborra, “Arquitectura de una red de sensores inal´amrica para la monitorizaci´on de la laguna costera del mar menor,” Jornadas de introducci´on a la investigaci´on de la UPCT, no. 3, pp. 44–46, 2010. [7] C. A. P´erez, M. Jimenez, F. Soto, R. Torres, J. L´opez, and A. Iborra, “A system for monitoring marine environments based on wireless sensor networks,” in OCEANS, 2011 IEEE-Spain. IEEE, 2011, pp. 1–6. ¨ [8] T. Voigt, F. Osterlind, N. Finne, N. Tsiftes, Z. He, J. Eriksson, A. Dunkels, U. B˚amstedt, J. Schiller, and K. Hjort, “Sensor networking in aquatic environments-experiences and new challenges,” in Local Computer Networks, 2007. LCN 2007. 32nd IEEE Conference on. IEEE, 2007, pp. 793–798. [9] X. Yang, K. G. Ong, W. R. Dreschel, K. Zeng, C. S. Mungle, and C. A. Grimes, “Design of a wireless sensor network for long-term, insitu monitoring of an aqueous environment,” Sensors, vol. 2, no. 11, pp. 455–472, 2002. [10] J. F. Vesecky, K. Laws, S. I. Petersen, C. Bazeghi, and D. Wiberg, “Prototype autonomous mini-buoy for use in a wireless networked, ocean surface sensor array,” in Geoscience and Remote Sensing Symposium, 2007. IGARSS 2007. IEEE International. IEEE, 2007, pp. 4987–4990. [11] M. Bromage, K. Obraczka, and D. Potts, “Sea-labs: A wireless sensor network for sustained monitoring of coral reefs,” in NETWORKING 2007. Ad Hoc and Sensor Networks, Wireless Networks, Next Generation Internet. Springer, 2007, pp. 1132–1135. [12] L. A. Seders, C. A. Shea, M. D. Lemmon, P. A. Maurice, and J. W. Talley, “Lakenet: an integrated sensor network for environmental sensing in lakes,” Environmental Engineering Science, vol. 24, no. 2, pp. 183– 191, 2007. [13] J. Lloret, S. Sendra, M. Garcia, and G. Lloret, “Group-based underwater wireless sensor network for marine fish farms,” in GLOBECOM Workshops (GC Wkshps), 2011 IEEE. IEEE, 2011, pp. 115–119. [14] M. L´opez, J. G´omez, J. Sabater, and A. Herms, “Ieee 802.15. 4 based wireless monitoring of ph and temperature in a fish farm,” in MELECON 2010-2010 15th IEEE Mediterranean Electrotechnical Conference. IEEE, 2010, pp. 575–580. [15] C. Roadknight, L. Parrott, N. Boyd, and I. W. Marshall, “A layered approach to in situ data management on a wireless sensor network,” in Intelligent Sensors, Sensor Networks and Information Processing Conference, 2004. Proceedings of the 2004. IEEE, 2004, pp. 85–90. [16] E. O’Connor, D. Zhang, A. F. Smeaton, N. E. O’Connor, and F. Regan, “Multi-modal sensor networks for more effective sensing in irish coastal and freshwater environments,” in Oceans, 2012. IEEE, 2012, pp. 1–9. [17] U. M. Cella, N. Shuley, and R. Johnstone, “Wireless sensor networks in coastal marine environments: a study case outcome,” in Proceedings of the Fourth ACM International Workshop on UnderWater Networks. ACM, 2009, p. 8. [18] D. G. Hadjimitsis, M. G. Hadjimitsis, K. Themistocleous, and A. Agapiou, “Integration of micro-sensor technology and remote sensing for monitoring coastal water quality in a municipal beach and other areas in cyprus,” in SPIE Europe Remote Sensing. International Society for Optics and Photonics, 2009, pp. 74 720P–74 720P. [19] H. Yang, H. Wu, and Y. He, “Architecture of wireless sensor network for monitoring aquatic environment of marine shellfish,” in Asian Control Conference, 2009. ASCC 2009. 7th. IEEE, 2009, pp. 1147–1151.
[20] M. Jiang, Z. Guo, F. Hong, Y. Ma, and H. Luo, “Oceansense: A practical wireless sensor network on the surface of the sea,” in Pervasive Computing and Communications, 2009. PerCom 2009. IEEE International Conference on. IEEE, 2009, pp. 1–5. [21] N. Jin, R. Ma, Y. Lv, X. Lou, and Q. Wei, “A novel design of water environment monitoring system based on wsn,” in Computer Design and Applications (ICCDA), 2010 International Conference on, vol. 2. IEEE, 2010, pp. V2–593. [22] C. Alippi, R. Camplani, C. Galperti, and M. Roveri, “A robust, adaptive, solar-powered wsn framework for aquatic environmental monitoring,” Sensors Journal, IEEE, vol. 11, no. 1, pp. 45–55, 2011. [23] C. De Marziani, R. Alcoleas, F. Colombo, N. Costa, F. Pujana, ´ A. Colombo, J. Aparicio, F. Alvarez, A. Jimenez, J. Ure˜na et al., “A low cost reconfigurable sensor network for coastal monitoring,” in OCEANS, 2011 IEEE-Spain. IEEE, 2011, pp. 1–6. [24] A. Alkandari, M. Alnasheet, Y. Alabduljader, and S. M. Moein, “Water monitoring system using wireless sensor network (wsn): Case study of kuwait beaches,” in Digital Information Processing and Communications (ICDIPC), 2012 Second International Conference on. IEEE, 2012, pp. 10–15. [25] C. Albaladejo, F. Soto, R. Torres, P. S´anchez, and J. A. L´opez, “A lowcost sensor buoy system for monitoring shallow marine environments,” Sensors, vol. 12, no. 7, pp. 9613–9634, 2012. [26] “Github home for Aquapp Software,” February 2016. [Online]. Available: https://github.com/IngenieriaDeSistemasUTB/AquaBackend/ [27] S. McCool, Laravel Starter. Packt Publishing Ltd, 2012. [28] G. E. Krasner, S. T. Pope et al., “A description of the model-viewcontroller user interface paradigm in the smalltalk-80 system,” Journal of object oriented programming, vol. 1, no. 3, pp. 26–49, 1988. [29] K. Schwaber, Agile project management with Scrum. Microsoft press, 2004. [30] P. Letelier, “Metodolog´ıas a´ giles para el desarrollo de software: extreme programming (xp),” 2006. [31] K. Beck, M. Beedle, A. Van Bennekum, A. Cockburn, W. Cunningham, M. Fowler, J. Grenning, J. Highsmith, A. Hunt, R. Jeffries et al., “Manifesto for agile software development,” 2001.