omscomplib_2_10_2008

Download Report

Transcript omscomplib_2_10_2008

OMS Component Repository:
Towards the establishment of a
standard library of interoperable,
reusable science and auxiliary
modelling components
Component Oriented Development
OMS enables component-oriented model
development

Models disaggregated into reusable
components
For example Potential Evapotranspiration (PET)
components:


Jensen Haise, Hamon, etc.
Components can be reused in new modelling
efforts
Component Oriented
Development
Component oriented development promises
improved:



REUSE: Can be reused in other models
CONSISTENCY: Support consistent results
QUALITY: Can be rigorously tested
Problem Statement
How should a modeller harness the wealth of
knowledge, and functionality in existing models?

A Component Library is needed
OMS Component Repository
Library of components
Facilitates storage and retrieval
Netbeans “plugin” module in OMS


less coupling, dependencies with OMS code base
Pluggable, easy to enhance, upgrade,
Repository Push / Pull
Supports publishing components to
repository (push)
Supports search/retrieval of components
from repository (pull)
Publish (push)
Component
Repository
OMS Model
Search/Retrieval (pull)
Component Annotations
Components are represented by
surrogates


Set of attributes (meta data) describing key
functional details
Java annotations used to describe component
meta data
Annotations can be changed/extended to enhance
retrieval operations
Component Annotations
package gov.usgs.prms;
// <editor-fold desc=" Component ">
@Description("Basin definition. Declares basin and HRU physical parameters. All computations for
this module are done in the initialize section. There is no run section..... ”)
@Author(name= "George H. Leavesley", email= "[email protected]")
@Keywords("Hydrology, PRMS")
User Provided
@References("Leavesley, G. H., Lichty, R. W., Troutman, B. M., and Saindon, L. G., 1983,
Precipitation-runoff modeling system--user's manual: U. S. Geological Survey Water Resources
Investigations report 83-4238, 207 p.")
@Date("$Date: 2007-12-28 17:45:48 -0700 (Fri, 28 Dec 2007) $")
@VersionInfo("$Id: Basin.java 28 2007-07-06 02:02:12Z david $")
@Source("$HeadURL:https://colab.sc.egov.usda.gov/svn/PRMS/trunk/prms/src/gov/usgs/prms/Basi
n.java $")
// </editor-fold>
System Provided
public class Basin implements Stateful {
Publishing a Model
Models can be published to any
Codebeamer Server


Primary repository - COLAB
Can host local Codebeamer servers
Point and click to publish a model


Creates new components in library
Updates existing components
OMS Component Repository GUIs
Web based COLAB GUI

Supports browsing and search of components
outside of OMS
Usable by non-OMS users

Repository represented as a tracker
Each issue corresponds to a component
Meta data description
Association refers to Java library file (JAR)
Automatically tracks publication/update history
OMS Component Repository GUIs
OMS Repository GUI

Provides keyword search against component
meta data
Match all words
Match at least one word
Match exactly

Recalls previous search queries
Component Integration
Component Palette

Presents search results
Components integrated into model by clicking on palette icon
Library files (JARs) automatically downloaded
Repository components respond as if they were local modelling
components
Component source code provided “read only”
DEMO: OMS Component Repository
Future
Enhanced Search GUI
Implement Advanced Search Filters

Multiple field and criteria searching
E.g. by Author, by Keyword
Component description

Improve component annotations / meta data
How do OMS developers identify components?
Which attributes are most relevant?
Populate Repository with components
Conclusion
OMS Component Repository


Provides basis for building and supporting
standard libraries of interoperable science and
auxiliary components
Integration with Model Development
Environment and COLAB encourages use
Sharing model code becomes EASY

Cost savings realization
Questions