Expanding the HIS Metadata catalog functionality by implementing WFS and additional web services in HIS Central & Hydroseek.
In order to make the data in the Metadata Catalog more valuable, additional functionality and standardized support is needed. The following services are proposed:
HISCentral:
- OCG WFS (Web Feature Service)
- Our proposed WFS solution hinges on this premise: We can create a WFS service which depends on only one table containing Latitude, Longitude coordinates and the other additional fields. To do this, minimal support of 3 methods is required:
- getCapabilities
- DescribeFeatureType
- Write a canned response (only point features would be supported).
- GetFeature
- Parsing any additional parameters and writing a valid OGC WFS XML Response. The number of additional parameters that need to be implemented is determined by the getCapabilities response we provide, so we'll also need to provide at least bounding box query support.
Additionally, if we implement this by writing custom page handlers, query parameters (which we don't want to expose as optional) can be passed as part of the URL so that each network would appear to have it's own URL endpoint.
For example:
http://hiscentral.cuahsi.org/WFS/Networkname/NWIS_DV/wfsService.wfs
http://hiscentral.cuahsi.org/WFS/Networkname/EPA/wfsService.wfs
- DataExchange Service methods (REST/SOAP)
- getNetworks()
- returns the list of services. Possibly allow passing of credentials to access private services as well, or to simply restrict access.
- getNetworkDetails(NetworkID/networkName)
- returns the detailed metadata information for the specified service.
- getMappings(NetworkID/NetworkName)
- returns the ontology mappings
With these methods, not only is it possible for additional applications to use the metadata catalog, but thenHIS Central would be to share it's information with other HIS Central metadata catalogs as well.
Hydroseek
- Search Service Methods:
- search(bbox(xmin, xmax, ymin, ymax), keyword)
- returns a "My Select" table as a dataCart.
- search(huccode, keyword)
- returns a dataCart.
For the Search method, we'll either override the method, or pass an object to it.
- Project Service Methods:
- createProject (username, projectname)
- saves the projectcart on the server
- getProject(projectname)
- returns the saved project from the server
- downloadDataCart(datacart, outputFormat)
- sends the cart to the listener service for processing. A finite number of output formats will be available, such as excel, geodb, csv, etc. TBD. This solution also requires some re-writing of the listener service. Currently it isn't designed to use a "My Select" table, but all the required for the listener is in that format so this is quite doable.