The text outlines various aspects of a project including service monitoring, web interfaces, licensing, installation, and administration tools. The WatchDog component is designed to monitor local services and restart them when necessary, with status information accessible via .
Multiple source of OSD data (POS, VA, SS device status, etc.) will becombined on Client using a scrolling system and different fonts/colors(customizable by users?) to distinguish sources.
Software Updates (Update Agent)
Is it necessary to run an Update Agent as a separate process?Can't we check for updates from the client (via the MCS) and notifythe user? I dislike cluttering the Sys Tray and Task Manager withupdate apps that do nothing 99.9% of the time.
If implemented, the Update Agent should be optional, and usershould have option to download updates but only initiate installsmanually (like Windows Update). An admin should be able to makethe option to disable updates unavailable to users.
Installation
We should have a unified installer which allows the user to definethe role of the machine and automatically installs the correct apps.For example, a SS will automatically get the client apps, including theAdmin Tool, Backup Tool, Backup Viewer, etc., but a client-onlyinstall will only get the remote tools.
WatchDog
Monitors local services and restarts them as needed. Status information can be subscribed to using .Net Remoting or a different TCP method.
Video Analysis
DH: I think those will be significantly different interfaces, won't they? One is used toset up parameters for VA on SS, one is used for Advanced Searches (object detect, motion detect, etc.). Maybe some parts are the same, but I think they will be quite different.
I understand we will implement UI similar to Trium Video Analytics UI. Is thisgoing to be only in the Config Manager for setup? Or will it be a child screen ofthe Search UI in the Remote Client?UJS: Both ConfigManager and RemoteClient need VideoAnalytics UI.(ConfigManager : Need for live, RemoteClient : Need for search)
Metadata
UJS: Ok, use one database
DH: Backup data grows the same if you have it in one database or two. What's thedifference? Two databases requires two connection strings and makes it morecomplicated to transfer data between tables. It complicates backup, archival, etc.
UJS: If do not separate databaseBackup database size is grow up, because metadata table is grow upWhy bad idea?
Why is it helpful to have Metadata stored in a separate database? This seemslike a bad idea.
After reviewing POS DB structure with Junsik, I think it is a good idea to havea general-purpose, denormalized, flat table for collecting metadata from a varietyof sources (POS, Video Analysis, etc.) and provide a way to map the flat data into a normalized structure. I'm thinking that we could use an XML-based columnmapping scheme, and each item that uses metadata will function as a plugin whichinsert/select data from the single flat table via its own data system (which can use a db, XML, dataset, CSV, etc.). This would enable us to implement a variety ofmetadata systems yet share a common mechanism for searching and presentingdata in columns in the interface.
POS
POS Agent
Backup Viewer
This standalone utility is used for local playback from data stored inthe proprietary file system. It can be provided to investigators, police,etc., along with backed-up content from the SS.
Admin Tool
Although I think this should work as a standalone tool, I think the exactsame UI can be made available within the Config Manager (same code base).If you click on a Server (and have appropriate permissions), you should be able to see the server's status, failover settings, resource usage, etc.
Each server will run WatchDog which monitors local services and restarts them as needed. Admin Tool can subscribe to Watchdog messages to show status of all servers in one central UI.
The name "Admin Tool" is not good if primary function is monitoring server status. Perhaps "Server Guard" or "System Watch" would be better?
Primary Function(?): Server Monitoring
Backup Tool
"Scheduled" backups are handled the same as manual backups, with the requestsent by the MCS based on an action scheduled in the Config Manager. "Automated"backups are handled directly by the SS based on criteria specified in the ConfigManager, and do not necessarily involve scheduled times (e.g., could be based on available space, age of files, etc.). The SS may continually monitor its files to performthese automated backups as needed.
Incoming backup requests (manual and scheduled) will be sent from the MCS.
Client: When a backup is initiated by the client (either in the Remote Client or viathe standalone app), a separate process will be started which is independent of theparent process, will show up in the System Tray, and will continue to run after the calling app has closed.
The GUI for performing backups will be available both as a tab in the Remote Client, and as a standalone utility, but these will use the same code-base. Backupsmay be performed locally on an SS using the standalone tool, but any manuallyinitiated backup (local or remote) will require user authentication against an MCS.
Backup is the process of copying the SS file-system content to a new location,either for the purpose of long-term archival (in which case backed-up contentcan be deleted from the SS) or for creating a sub-set of data for use with theBackup Viewer tool.
Reporting
Export
Can export video with metadata
Need WaterMark
Archived video can be exported to a video file such as an AVI file.This is different than Backups, which do not convert the format. Theactual export will be handled by the SS, but the resultant file can bedelivered to the client. This should be available through the Search moduleof the Remote Client.
Alarms/Events
Web Viewer
Silverlight is lightweight and cross platform, working on Windows, Macs, possibly Linux (using the Moonlight implementation), and browsers IE, Firefox, Safari, and Opera.
One advantage of this approach is it will give us experience with WPF while working on a simplified interface.
Simplified interface done with Silverlight, with IIS as the web Server
Database Archival
Solution: DB Table Partitioning (see link)
Scheduling
Our current Scheduling GUI is patterned after Genetec, but is not easy tounderstand. Tim said that we need to have two interfaces, one simple, and one powerful. We still need to design the simple one.
Remote Gateway
Multi-Site Architecture
To make multi-site user management easier, could we include a "Remote User Import"feature in the Config Manager? This would create a user record in the current MCS withthe same username, and for every remote device that has a corresponding virtual device,it would assign the appropriate permissions matching the remote site.
Remote (on another site) devices are made available by adding a "RemoteServer" within the Config Manager, which will allow individual or automaticimport of devices to the local site. Each device will be added to the remotesite DB as a "virtual device." The device can be used within the Remote Clientand Config Manager just as any other device (for Live View, Search, schedulingevents and actions, etc.), but can not be configured. User permissions, Live Viewer view definitions, etc., are assigned to the virtual device, and arecompletely independent of similar settings for the same device on its home site.
Each "site" will have its own MCS, which will serve as the Remote Gateway,and its own DB, which includes a distinct set of uniquely identified devices, users, permissions, logs, metadata, etc.
License Management
Do we have a clear plan on licensing? Genetec handles the Licensingthrough the Server Admin program, but I think their system is not good.Are we planning to use a USB key, an encrypted file, or some othermethod? We should know before attempting to design the license-handlingparts of the system.
Failover
In the next version, we would like to investigate a unified Storage Server solution wheremultiple SS's could be treated as a single virtual server, enabling significantly simplifiedand dynamic resource allocation. It is simply not practical at this time, however.
In version 1.0, failover for SS's will require manual specification of failoverserver for each device, but we will try to make it easy to view current serverload for each of the available servers on the screen where this would be done.
Failover should not initiate unnecessarily. We should attempt to check with the WatchDog service on the failed server. Only if it cannot be reached or restartfails will failover be started.
Load Balancing
We will not really have any dynamic load balancing in this release.Load balancing across servers will have to be handled by the admin'sattention to server resources when adding devices, users, etc.
Guiding Principle
Ease of Use is the #1 quality which should distinguish Sundance from the competition.