CUAHIS-HIS
RSS

Navigation





Quick Search
»
Advanced Search »

PoweredBy

Hydroseek - SyncServices

RSS
Modified on 2008/05/08 14:38 by kimschreuders Categorized as HydroSeek

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

  1. Networks/Sources
  2. Variables

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.
  1. retrieves latest Web Service URL's from Web Service
    1. confirms that no conflicts exists in ServiceID's (SourceID's)
    2. if there is a conflict, we will assume that a group intended to add a non-central HIS service.ice
      1. program should attempt to move the conflicting service to a safe ServiceID, and renumber the services information
  2. retrieves latest variable list from web service
    1. confirms that no conflicts exist, if so, it deletes the variables, and series that use those variable ID
  3. For each service, it retrieves sites, and catalogs
    1. if it notices a new variable, it should alert central HIS, get central HIS variable ID, and resync.
    2. when complete, it sends a message to a central service to record it's harvest information
  4. 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).

Methods

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)

Additional Method:
  • NetworkQuery Networks2NetworkQuery(NetworkType[])
  • SyncAll(NetworkQuery[])
    • trigger a reharvest of the listed networks
  • SyncNetworks(NetworkType[])
  • SyncVariables(VaribleType[])

Security:
  • AuthToken Authenticate(user, password)
  • RoleType[] GetRoles()
  • NetworkType[]GetProjects(NetworkQuery[],Token)
    • would return public and private networks



Phase 1

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
      • Series
      • Variable
      • Sites

Phase 2

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

Phase 3

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

Methods

  • Authentication
  • CreateProject
  • GetProject
  • Need some type of user authenitcation token for services (eg ncdc)

ScrewTurn Wiki version 3.0.1.400. Some of the icons created by FamFamFam.