A service suite designed to push data to the Virtual Observatory and Ecological Informatics System (VOEIS) data hub at intervals determined by on-site data managers.
Often times deployment of a multipart solution is performed in a disconnected and confusing manner. Part of the objective of this project is to try to pull together and automate as much of the service installation and maintenance tools as possible so
that administrators can focus on personalizing and running their service rather than fighting with the installation process.
This solution contains 4 distinct projects:
- The service (VOEISHubPushService) which is a VB.NET 3.5 project containing the service code.
- The service manager (VOEISHubPushServiceClient) which is a C#.NET 4.0 project containing a GUI management client. This client is used to access service settings, review service status, create service template files, alter alert settings, and perform
API calls. This project will probably see the most development in the future.
- The service database (VOEISHubPushServiceDatabase) which is a C#.NET 3.5 project containing the scripts to set up the sync database including tables, views, stored procedures, functions, and users that are required by the service to successfully perform
a scheduled data push to the hub.
- The installer (VOEISHubPushServiceInstaller) which is a .NET 3.5 installer project.
Installation and successful deployment requires that several prerequisites are met before the binaries are deployed:
- Use of this project 'as-is' assumes that the user is part of the Virtual Observatory and Ecological Informatics System (VOEIS) project funded by the NSF.
- You must have sysadmin permissions on the database which the project will be deployed to.
- It is suggested that you create a local Windows service account to run the service under as an account will be required during the install process.
- The database server is set to support mixed mode authentication (Windows and SQL).
- Install scripts create a SQL user, but the use of this account may be circumvented by granting the service account (Windows account required) the required permissions on database objects. These permissions may be determined after install
by scripting them after install and changing the account in the script.
- You must have administrative privileges on the machine where the service is to be installed.
- You must have an api key, available from the VOEIS hub (http://voeis.msu.montana.edu).
- You must have set up their project, sites, and data streams.
- You will need your project data template ID's for each stream that you would like to push with this service.
- It is important to note that data streams created with the packaged solution will not contain headers - be sure that your stream is configured accordingly, or alter the stored procedures after install to include a header row.
As a first release, this software was created to be functional and elegance was not factored into the development process. The second release, scheduled for June 2011, will focus on refactoring, extensibility, and error handling. At present the
following issues are known:
- After updating the local sync metadata, the service reports that there were no rows updated.
- SQL server timeouts may occur when executing commands returning a large number of rows. Future releases will include a throttling mechanism in the service manager so that the maximum number of returned records may be easily adjusted to avoid these
errors. Currently you may work around this by adjusting your view definitions to only select the top X number of records.
Samples have been included and packaged with the software. After install you may find them in your programs menu. The sample scripts have the following prerequisites:
- The VOEIS Push Service must be installed.
- You must have the LittleBear11 database installed. This database may be downloaded from
- You must set up a test project at the VOEIS Data Hub (http://voeis.msu.montana.edu)
- To guide you in the stream creation process, you should review the views created by running this script.
- Variables labeled USU## have been created at the hub - for ease of installation these variables should be reused.
- Sync metadata must be updated with you project and data template ID's and enabled.
- You may use update statements to do this, or a stored procedure (UpdateSamplesMetadata) has been provided for your use.
- Initial service settings must be entered and saved to the service through the service manager - at a minimum you will need to specify your server, database, and api key.
Once you have fulfilled the above requirements then you may start the service and the samples should run.
If you have questions, find bugs, or need further information then notify us here through the codeplex interface.