Hydroseek Syncing without database replication
VariableID's are used in the hydrotagger to communicated concepts.
In order to make hydrotagger and hydroseek work at the lowest level, we need to be able to sync two things
Variables have associated SourceID's, which are the networks.
SiteID's have SourceID's.. but they used externally.
Series have VariableID, SiteID, Source ID keys in the table.
Any additions to the networks table should be propagated to the main server, then back down to the hydroseeks.
This will be done with the catalog updater.
- retrieves latest Web Service URL's from Web Service
- confirms that no conflicts exists in ServiceID's (SourceID's)
- if there is a conflict, we will assume that a group intended to add a non-central HIS service.ice
- program should attempt to move the conflicting service to a safe ServiceID, and renumber the services information
- retrieves latest variable list from web service
- confirms that no conflicts exist, if so, it deletes the variables, and series that use those variable ID
- For each service, it retrieves sites, and catalogs
- if it notices a new variable, it should alert central HIS, get central HIS variable ID, and resync.
- when complete, it sends a message to a central service to record it's harvest information
- when complete, save to a database table. Make web page showing update log available
This will be done using Windows Communication Foundation, so that we can take advantage of features like security (asp.net membership database), reliable messaging, and Long Messages (MTOM).
Concetps: Central HIS WebServices.ashx
- NetworkType GetNetworks(NetworkQuery )
- Only public networks are to be sent over this methods
- NetWorkQuery is string of NetworkVoabulary. Hence NetworkQuery is really just a named array of strings.
- NetworkType is an array of information about a network
- VariableType GetVariables(NetworkQuery)
- NetworkQuery Networks2NetworkQuery(NetworkType)
- trigger a reharvest of the listed networks
- AuthToken Authenticate(user, password)
- RoleType GetRoles()
- would return public and private networks
Sync from main hydroseek.
Top XX netowrks are standardized (USGS EPA) (or add a flag for no harvest)
If there is a duplicateID that does not match an existing network code, then
- renumber sourceID's
- Determine New SourceID Number
- lower constraints
- Renumber SourceID
Sync to Central HIS: Central HIS WebServices.ashx
- Use Central HIS with GUIDS on network.
- Use security
- User can be authorized, and would need to have
- role synchronization using asp,net membership services, and WCF
Project Based Sites
Users would create a project, and add registered networks.
Servers would get a project to build a configuration file for thier inter
- Need some type of user authenitcation token for services (eg ncdc)