Gvsos: a New Client for Ogc® Sos Interface Standard
Total Page:16
File Type:pdf, Size:1020Kb
GVSOS: A NEW CLIENT FOR OGC® SOS INTERFACE STANDARD Alain Tamayo Fong i GVSOS: A NEW CLIENT FOR OGC® SOS INTERFACE STANDARD Dissertation supervised by PhD Joaquín Huerta PhD Fernando Bacao Laura Díaz March, 2009 ii ACKNOWLEDGEMENTS I would like to thank to professors Joaquin Huerta and Michael Gould for their support during every step of the Master Degree Program. I would also like to thanks the Erasmus Mundus Scholarship program for giving me the chance to be part of this wonderful experience. Last, to all my colleagues and friends, thank you for making this time together so pleasant. iii GVSOS: A NEW CLIENT FOR OGC® SOS INTERFACE STANDARD ABSTRACT The popularity of sensor networks has increased very fast recently. A major problem with these networks is achieving interoperability between different networks which are potentially built using different platforms. OGC’s specifications allow clients to access geospatial data without knowing the details about how this data is gathered or stored. Currently OGC is working on an initiative called Sensor Web Enablement (SWE), for specifying interoperability interfaces and metadata encodings that enable real‐time integration of heterogeneous sensor webs into the information infrastructure. In this work we present the implementation of gvSOS, a new module for the GIS gvSIG to connect to Sensor Observation Services (SOS). The SOS client module allows gvSIG users to interact with SOS servers, displaying the information gathered by sensors in a layer composed by features. We present the detailed software engineering development process followed to build the module. For each step of the process we specify the main obstacles found during the development such as, restrictions of the gvSIG architecture, inaccuracies in the OGC’s specifications, and a set of common problems found in current SOS servers implementations available on the Internet. iv KEYWORDS GIS Applications Sensor Web Enablement OGC SOS specification gvSIG extensions Software Engineering v ACRONYMS OGC – Open Geospatial Consortium SOA ‐ Service‐Oriented Architecture GIS – Geographic Information System WMS ‐ Web Map Service WCS ‐ Web Coverage Service WFS ‐ Web Feature Service SWE ‐ Sensor Web Enablement O&M ‐ Observation & Measurement SOS ‐ Sensor Observations Service SPS ‐ Sensor Planning Service SAS ‐ Sensor Alert Service WNS ‐ Web Notification Service ADC ‐ Analog to Digital Converter SIVAM ‐ System for the Vigilance of the Amazon XML ‐ Extensible Markup Language GML – Geography Markup Language GPL ‐ GNU General Public License MDI ‐ Multiple Documents Interface JTS – Java Topology Suite OWS – OGC Web Services UML‐ Unified Modelling Language vi INDEX Index of Figures __________________________________________________ ix 1. Introduction____________________________________________________ 1 2. State of the Art__________________________________________________ 5 2.1 Sensor Networks __________________________________________________________5 2.1.1 Sensor Nodes__________________________________________________________7 2.1.2 Applications___________________________________________________________8 2.2 Sensor Web Enablement __________________________________________________11 2.2.1 Services and Encodings_________________________________________________12 2.2.2 Typical workflows_____________________________________________________14 2.2.2 SWE Common________________________________________________________17 2.2.3 O&M implementation specification _______________________________________17 2.2.4 SensorML implementation Specification ___________________________________20 2.2.5 SOS implementation Specification ________________________________________22 2.3 Known SWE implementations______________________________________________23 2.3.1 52° North’s SWE implementation _________________________________________24 2.3.2 UAH VAST’s SWE implementation_______________________________________24 2.4 Some projects using SWE _________________________________________________25 2.5 Summary _______________________________________________________________26 3. gvSIG ________________________________________________________ 27 3.1. Architecture ____________________________________________________________27 3.1.1 The gvSIG Subsystem __________________________________________________29 3.1.2 The Fmap Subsystem___________________________________________________30 3.1.3 The Subdriver Subsystem _______________________________________________32 3.1.4 Andami _____________________________________________________________33 vii 3.2. Plug-in and Extensions ___________________________________________________35 3.2.1 Extensions ___________________________________________________________35 3.3. gvSIG Mobile ___________________________________________________________37 3.4. Supporting Libraries _____________________________________________________37 3.5. Summary_______________________________________________________________39 4. Analysis ______________________________________________________ 40 4.1 Plug-in Requirements _____________________________________________________40 4.1 Use case model___________________________________________________________41 4.2 High Level Architecture ___________________________________________________42 4.3 Summary _______________________________________________________________43 5. Design and Implementation______________________________________ 44 5.1 gvSIG layer _____________________________________________________________44 5.2 Fmap layer______________________________________________________________46 5.3 SubDriver layer__________________________________________________________48 5.4 Initialize extension _______________________________________________________51 5.5 Add SOS Layer __________________________________________________________52 5.5.1 gvSIG layer __________________________________________________________53 5.5.2 Fmap and Remote Services layers_________________________________________54 5.6 Showing sensors and observations data ______________________________________57 5.7 Tests and Preliminary Results ______________________________________________59 5.8 Summary _______________________________________________________________61 6. Conclusions ___________________________________________________ 62 References ______________________________________________________ 63 viii INDEX OF FIGURES Figure 1: Generic architecture of sensor networks (Akyildiz et al., 2002) 5 Figure 2: Components of a sensor node. Adapted form (Akyildiz et al., 2002) 8 Figure 3: SWE framework context (OGC, 2008) 13 Figure 4: SOS client requesting observation’s data from a server (OGC, 2008) 15 Figure 5: SOS client accessing streaming data from the source (OGC, 2008) 16 Figure 6: SOS client accessing sensor’s data from a server (OGC, 2008) 16 Figure 7: Basic Observation Model (OGC, 2007) 18 Figure 8: Conceptual model for Processes (OGC, 2007b) 21 Figure 9: Functional components of gvSIG. 28 Figure 10: Component diagram of the gvSIG subsystem (gvSIG, 2008a) 29 Figure 11: Component diagram of the Fmap subsystem (gvSIG, 2008a) 31 Figure 12: Component diagram of the SubDriver subsystem(gvSIG, 2008a) 32 Figure 13: ANDAMI functional blocks (gvSIG, 2008a) 33 Figure 14: IExtension relationships (gvSIG, 2008a) 36 Figure 15: Use case diagram for gvSOS. 41 Figure 16: Package diagram showing the gvSOS architecture. 43 Figure 17: gvSIG‐SOS package diagram. 45 Figure 18: Class diagram showing SOSWizard and its relationships 46 Figure 19: Fmap‐SOS package diagram. 47 Figure 20: Fmap‐SOS class diagram. 47 Figure 21: Remote Services package diagram. 49 Figure 22: Class diagram of the RemoteServices‐SOS package. ________ 50 Figure 23: gvSOS configuration file (config.xml). 52 Figure 24: Diagram showing how connection is established at the user interface level. 53 Figure 25: Sequence diagram showing the layer creation process. _______54 Figure 26: Sequence diag. showing how connection is established at the driver level. 55 ix Figure 27: Sequence diag. showing how information regarding procedures is read. 56 Figure 28: Sensor systems located in four Mediterranean harbours. 56 Figure 29: Table containing the information about the sensors included in the view. 57 Figure 30: Sequence diagram showing how observations are read from the server. 58 Figure 31: Table showing observation times and values. 58 Figure 32: Displaying observations on a graph. 59 x 1 INTRODUCTION The popularity of sensor networks has increased very quickly. The production of sensors that become cheaper every day is possible due to continuous advances in semiconductor technology. At present, a low‐cost processor, a group of sensors and a radio transmitter, can be easily combined in a single and inexpensive unit. These devices, although useful individually, offer maximum effectiveness when used together for sensing complex physical phenomena. Sensor nodes can be distributed inside a particular phenomenon or in its neighbourhood to measure its main properties. Sensor networks can be used in a wide variety of applications. Examples include environmental monitoring (Martinez et al., 2004), habitat monitoring (Mainwaring et al., 2002)(Szewczyk et al., 2004), structural health monitoring (Paek et al.,2005)(Chintalapudi et al., 2006), seismic detection (Werner‐Allen et al., 2005) (Werner‐Allen et al., 2006) and military surveillance. Sensor networks can be implemented using a large range of technologies regarding sensors and communication devices. Many design aspects must be considered such as fault tolerance, scalability,