WILbur (Water Information Library) is being developed to make use of CUAHSI’s ODM Standard Database. In addition to the html based interfaces that will be used by consumers making use of their web browsers to examine data, WILbur will publish CUAHSI HIS webservices to allow CUAHSI HIS Desktop Applications to automatically connect and make use of the data contained in the local instance of the database.
I’ve worked up a couple of images to explain further. The first image represents the WILbur stack as it would be installed on a Hosted Webserver (such as godaddy) and its relation to users and other webservers on the internet.
This diagram shows a simplified view of whats commonly known as a server stack. The webserver (probably Apache2 in this case, but it could be any webserver application) “talks” to WILbur which tells the webserver what to show the users browser (or desktop application) based on the users request. WILbur is written in a programming language called PHP which is a common web application language and is available on most Hosted Webservers.
WILbur in turn “talks” to the Database Engine (or Database Application) which uses data stored in a database. This is similar to using Microsoft Word to use and edit a document stored in a file on your hard drive. The document is analogous to the database, and Word is analogous to the Database Engine. In the case of WILbur the database has been set up to use a standard schema, or format, known as ODM (Observational Data Model). ODM is a database schema standard that is published and maintained by CUAHSI. This schema is similar to a template in Word. It sets a standard for how the data in the database is stored, the relationships between the data (e.g. Sites are connected to Data gathered in a sample), and the “ontology” of the data.
I’ll go into the CUAHSI ontology in detail later, but for now think of the ontology as the dictionary maintained by CUAHSI as a standards organization. This ontology (or dictionary) puts forth unit standards to describe the data. For example all ODM users will use “Gallons/Hour” for describing measurements in gallons per hour. This allows consumers of the data to see common unit descriptions instead of having to make sense of things like “gph”, “gal/hr”, “gallons per hour” or any of a hundred different ways of describing the same unit. The move to a standard ontology allows researchers to quickly and easily analyze data from a variety of sources. NOTE: This does not mean that measurements must be made in english units, just that when using a measure unit specification, an entry from the standard ontology must be used.
Since the data is stored in a standard schema (or format), if the need arose, the data could be transferred or combined with another ODM database. This would probably not be necessary, but it is possible.
Web applications and browsers then talk to the webserver to retrieve data. In the case of web browsers the “language” used to communication is HTTP. In the case of CUAHSI desktop application, the language used is WaterML, which has been defined by CUAHSI as a standards organization. Eventually WILbur will provide an EPA WQX export which will allow a user to upload Data directly into EPA Storet if needed.
I’m including two other diagrams, the first showing what a CUAHSI DASH stack would like like. DASH is CUAHSI’s off the shelf application to make use of ODM data. It is written in Microsoft ASP, and runs on a Microsoft web server stack. Unfortunately at this time, it appears the DASH has several bugs in it. Additionally the added cost of hosting an application on a Microsoft web server stack makes using DASH off the shelf a not very attractive option.
The last diagram is a representation of several CUAHSI based webservices running on the internet.
As long as the application uses the CUAHSI ODM standard database and can communicate in the CUAHSI WaterML language to CUASHI standard desktop applications, the application can be used as a part of the CUAHSI HIS network of data sources. This is independant of the type of webserver, the application language or the database engine. To draw an anology, if you get in a car, if it has a pedal, and a brake, you can drive it whether it is an electric car, or a gas car. (ignore standard and automatic for our purposes . The “language” of driving a car is the same across all cars. Press on the pedal and go, press on the brake and stop.
Hopefully this has answered more questions than it is raised. If not, drop me a line and I’ll explain further.