DTL Project 3: OOSTethys
Overview
The mission of the Data Transport Laboratory (DTL) is to support the
employment of data transport technologies that are compatible with
Ocean.US Data Management and Communications (DMAC)
guidance at the local and regional levels. This is accomplished through
the identification, evaluation, and documentation of relevant data transport
technology candidates.
In following that mission, the DTL is exploring the
OOSTethys implementation of the OGC Sensor Observation Service (SOS).
The OOSTethys project consists of members of the ocean-science community
who are using Open Geospatial Consortium (OGC) standards to implement
an earth-observing "system of systems." OOSTethys partners develop,
test and implement easy-to-use, open-source, OGC-compliant software,
and have created a working prototype of networked, interoperable,
real-time data systems. Details on the OOSTethys implementation and
downloads are available at here.
This project has concluded. For detailed findings, see the
final report.
Project Selection
Suggestions for candidate technologies to be implemented in
the DTL are accepted from the Integrated Ocean Observing System
(IOOS) community. The primary sources for the identification of
candidates are the local observatories, regional associations,
Ocean.US Data Management and Communications (DMAC) team and its expert
teams, and deliberate outreach efforts of the DTL staff, such
as meetings and workshops.
Candidate technologies, nominated through these mechanisms, are filtered
through a set of criteria to assess their relevance and importance to the
stakeholders. For more details, read about the DTL technology selection process.
The selection of the OOSTethys SOS implementation is consistent with the
DMAC guidance which espouses a Web Services approach and identifies Open
Geospatial Consortium (OGC) specifications as relavent. The OOSTethys SOS service
is a Representational State Transfer (REST) based HTTP service.
| Criteria |
Score |
Rationale |
| Significance to Local Observatories |
5 |
The OGC Sensor Observation Service holds the potential for the
development of a service based approach for managing, manipulating, and
transporting data from in-situ oceanographic sensors. Further, there is
a persistent interest in the local observatory and regional communities
in this approach. There are Java and Perl implementations. There is no
.Net code base. The technology is portable, scales well, is supported
by a wide variety of server and language combinations, and is minimally
invasive to the local data repository. |
| Significance to Regional Associations |
5 |
The project is directly related to the regional and sub-regional
arenas of IOOS data transport.
|
| Relevance to DMAC Guidance |
4 |
The OOSTethys work is consistent with the DMAC SOA. The DMAC has
identified SOAP/XML as an important research area. The DMAC has also
identified OGC WFS as a pre-operational technology. Recent developments
in the OOSTethys project have lead the SOAP/XML architecture into an
OGC REST/XML direction bring the OOSTethys work in line with several
DMAC recommendations. |
| Relative Maturity of Candidate |
5 |
Data exchange with SOAP or REST with XML are widely supported by
many programming languages and server platforms (Apache, IIS, Tomcat,
etc.). While there are no fully mature examples of SOAP or REST with
XML in the IOOS community, the OOSTethys work is the most fully developed
and is a viable option. |
| Appropriate Level of Effort for DTL |
5 |
The implementation of the OOSTethys servers is appropriate. |
| Coincidence of other Center Efforts |
5 |
This is a direct result of the Center's Salinity workshop and
is consistent with the Center's support of local and regional partners. |
Total Score |
23 |
|
Related Links (top)
Server Details (top)
The OOSTethys software was installed in the DTL on a Dell PowerEdge 1850 machine with two
3.0 MHz Xeon CPUs, four gigabytes of RAM, 300 gigabytes of 10,000 RPM disks,
and Gigabit network cards. The operating system is Red Hat Linux
Enterprise 4, kernel 2.6.9-42.
OOSTethys Server Installation, Configuration, and Testing (top)
Full documentation for the installation of the OOSTethys server is available
from those projects via the links above. The following details the process for installing them
on the DTL servers.
Installation
The OOSTethys software was downloaded, reviewed and modified slightly to
segregate those portions of the code which were related to a specific
installation from those that were generic to all installations. That code is available
here. The notes
provided here are specific to the DTL implementation of the OOSTethys base
code. Please refer to the OOSTethys Cookbook for details on
installing their version of the software. The DTL installation was performed
as follows.
- OOSTethys downloads page is here.
- Dependencies (required Perl modules, available from CPAN)
- CGI (for handling SOS requests and responses)
- DateTime::Format::ISO8601 (for parsing and formating dates and times)
- DBI (for database connection)
- DBD::Pg (for connecting to PostgreSQL, requires a PostgreSQL installation)
- File::Basename (for parsing file path)
- Log::Log4perl (for logging)
- XML::LibXML (for XML processing)
- Files:
- Modules (reusable)
- LocalObs.pm Common database API for DTL data loaders
- LocalObsSosDriver SOS driver for serving sensor information and observed data
* Read the comments embedded in the source for library reference
- SOS Server
2.1 oostethys_sos.cgi SOS Server CGI (modified to use the SOS driver)
- Standard SOS Templates
- sosGetCapablilties.xml
- sosDescribeSystem.xml
- sosGetObservation.xml
* These files come with the OOSTethys SOS Server package and are not modified
- Logger Configurations for the SOS Server
- *.conf
- Currently only used by the SOS driver and LocalObs.pm.
- Log Files (generated content)
logs/*.log (current log files for this week)
logs/old/*.log (old log files for last week)
- Installation:
- Install the Perl modules listed in the "Dependencies" section.
- Make the directory for SOS Server within the cgi-bin directory:
cd /var/www/cgi-bin
mkdir -p sos_server/logs/old
- Copy files listed in the "Files" section to the SOS Server directory and change file permissions:
cd /var/www/cgi-bin/sos_server
chmod a+rx *.pm
chmod a+rx *.cgi
- Set up a cron job to rotate the log files every Saturday at 23:55:
55 23 * * 6 mv -f /var/www/cgi-bin/sos_server/logs/*.log /var/www/cgi-bin/sos_server/logs/old/
Base Testing
-
To demonstrate the successful installation of the software, issue some basic requests.
- getCapabilities
- describeSensor for sensorID '41001'
- getObservation
Testing and Critique with External Partners (top)
The DTL solicited participation in the testing and critiquing of this technology from external
partners. The external partners will install, configure, and run instances of
the OOSTethys server. Objective speed and through-put tests will be
performed, and more subjective issues will be discussed and reported. In general, the items
to be considered are as follows:
- Light and heavy load request response times measured with Apache JMeter. The definition of heavy
load will be case specific. In general, the test should load the server to the point that requests
are queued at the server. Repeat 100 iterations and record each. Calc average, max, and min.
The Coastal Services Center will design a basic JMeter test plan that can be refined for each
project and implemented.
- Relative ease or difficulty of installation of server software
- Relative ease or difficulty of installing and configuring any supporting software or libraries
- Relative ease or difficulty of modification in the event of evolving data models and standards
- Degree of intrusiveness of the transport layer into the data storage facility
- Cost of server implementation (infrastructure and human resources)
- Cost of client implementations (infrastructure and human resources)
- Support for server technology in the IOOS community (e.g. continued development, documentation, and user support)
- Support for server technology in the wider IT community(e.g. continued development, documentation, and user support)
- Availability of or support for development of clients in the IOOS community
- Availability of or support for development of clients in the IT community
- Relative ease of use with conventional or popular client package(s)
- Degree to which the technology supports IOOS data exchange needs for
- Through-put
- Ease of use
- Discovery
- Scalability
- Extendibility
- Security
- Metadata access to determine appropriate use contexts for a given data source.
- Mission critical reliability
- Data integrity (transactions, error checking missing/redundant/out of range data)
Once the test phase is complete, the DTL will compile the test results
and commentary in a report that will be available on the DTL Web site and on the Community Information Repository.