SysControls Initialization Sequence Diagram Engine Driver Settings Connection getSettings initialize != null != null getConnection getCamera != null The above activation diagram outlines the object initialization calls for all of SysControls core features. This initialization procedure is critical to the operation of the SysControls application as this process determines vital system functions and status to ensure the application is configured and optimized correctly to satisfy operational requirements. SysControls SyServe Video Streaming Sequence Diagram Socket mediaStream VideoCache requestSocket() true createStream() true recieveStream() ProcessCache() true true The above sequence diagram outlines the protocol and handshaking between SyServe and SysControls. This process is essential for ensuring sensitive data is not tampered with or the system or the SECAM security system is not compromised. The process can be summarized into several key steps. These steps are requesting a server socket to the database, creating and sending the stream and caching the video stream temporarily to be optimized, compressed and stored into the SECAM SECURE database. SyServe Validation Protocol Sequence Diagram SessionCrypt MAC Key PresentMAC() true PresentKey() SendSessionCrypt() PresentSessionCrypt() true To ensure the integrity of the SECAM security system a process or protocol has been developed to ensure validity of incoming connections. This protocol prevents systems spoofing identification, pirating of a SECAM system and integrity of transmitted data. This protocol can be summarized into three primary stages as seen in the sequence diagram. The system is first presented with the MAC address of the computer which is crosschecked with the database. The requesting SysControls application then sends the registered key of the installation and the server SyServe responds by sending a session key for the current connection. The SysControls application then presents its session key every time data is transmitted. It should be noted that SyServe automatically detects if communication is coming from the correct IP address without handshaking with the localized SysControls application. SysControls Class Diagram Windows Process secam -currentEngine : object -errorLog : object -log : object -initialize() : void +exit() : int +menu() : int -getStatus() : int -restart() : int -error() : int -run() : int -getComputer() : int api 1 1 -application 1 -application 1 -engine instance +saveSettings() : int +restart() : int +startRecording() : int +stopRecording() : int +getErrors() : object -api connection -connection engine -camera : object -connection : object -settings : object -getCamera() : object -getConnection() : object -getSettings() : object -setSettings() : int 1 1 -engine -engine 1 1 settings -engine -settings 1 -driver driver -camera : object +establishCamera() : void +resetCamera() : object +updateCamera() : object +cameraEventOccured() : object Camera Interface -connectionString : string -connection : object -establishConnection() : void -resetConnection() : object -updateConnection() : object 1 -quality : int -zoomLevel : int -record : int -startRecord : string -endRecord : string -sThreshold : int -nightVision : int -notifySecurity : int -notifyOwner : int -securityNumber : int -ownerNumber : int -ownerEmail : string -motionCamputre : int -enviornment : int -settings() : object Database Interface Basic SECAM SECURE Database Entity Relation Diagram Is authenticated currentuser userid user Is controlling userid firstname lastname computer Has image userid Has video computerid Has settings ip mac image videos settings imageid userid userid userid computerid computerid videoid videoid threshold computerid startdate rstart image enddate setimage video setvideo quality The above ER diagram portrays in generalize form the relations between entities in our SECAM Secure. Camera Activation State Diagram Record Record Video for time(n) Begin Recording Record Interval Completed Wait Sub Exceed Threshold Monitoring Sound Wait for Recording Sub Threshold was Exceeded Threshold Exceeded Done Recording Begin Logging Log Sound for time (n) Continue Recording The above state chart diagrams the state process of camera activation and detection of intrusion. Camera Activation State Diagram Local Camera Device Local Computer Windows Process Camera Interface SECAM SysControls Database Interface SysControls WebControls SECAM WebControls System API SECAM SyServe Web Interface SECAM SECURE Database SECAM WebServe Database API SECAM WebServer The above diagram is an overview of all SECAM System assets and their association and interaction. WebControls Class Diagram * * * Database 1 Website -post ControllerAuthentication * -UI -user : object -key : object -cookie : object +Authenticate() : bool -getSessionKey() : object -getCookie() : object -login() : void * 1 * * SystemManagement * -servers : object -databases : object -users : object -connections : object +ServerStatus() +DatabaseStatus() +UserStatus() +ConnectionStatus() ControllerUser -session : object -devices : object +initialize() : object +UserHome() : object +UserEditSettings() +UserViewDevices() +UserViewStream() +UserControlDevice() +logout() 1 ControllerAdministrator 1 -session : object -users : object +EditUsers() : object +SystemStatus() : bool +DeviceStatus() : bool +logout() : bool * DeviceStatus -devices * Database * ControllerOperations * * * User 1 1 -isAuthenticated : bool -isAuthorized : bool -Authorize : bool +Authorize() +ViewRegistration() +EditRegistration() +getComputerDetails() +getDeviceDetails() -currentUsers : object -currentMedia : object -currentDevices : object -currentActivity : object -currentSystemStatus : object -dataLog : object -mediaLog : object -notificationLog : object +getSyServe() +setSyServe() 1 Device Administrator -isAdmin : bool +adminKey() : object +isAdmin() : bool * Devices -devices : object +getDevices() +setDevices() +modifyDevices() 1 * -computerName : string -macAddress : float -domain : object -deviceKey : string -regKey : string -deviceComponent : object -settings : object -schedule : object -status : object -media : object -notifier : object +getDevice() +setDevice() +() *1 UserUtilities -users +SearchUsers() +ModifyUsers() +DeleteUsers() +CreateUsers() Class Purpose secam application entry point basic console UI application initialization data and error logging computer identification handles api calls api facilitates api calls executes commands from external layers connection establishes database connections re-establishes database connections updates database connections drives the SECAM SysControls application maintains status of application maintains settings and current configuration of the application maintains camera controls and configuration holds data and settings instance of the application engine settings driver holds camera api commands maintains security camera implements setting changes to camera sends control functions Overview The secam class provides a entrance point for the application. Creates a process, generates logs, obtains computer network identification, holds the application instance and handles basic api calls. The api class is the layer used to communicate with the SECAM WebControls application facilitating external command execution. The class connection is an important component in system security. The connection class is charged with maintaining a constant high speed connection to the SECAM SECURE database. The engine class is the primary controller for all SysControls systems. This class maintains and ensures all components are operational and properly configured if the system is updated. The settings class holds all current runtime settings of the application. This instance object is created at initialization time and passed around the system to initialize various components. This instance is created from accessing the SECAM SECURE database at initialization time. The driver class is the primary class associated with managing and maintaining the security camera in an operational state. Furthermore the class also serves as a camera management tool making camera api calls and Class to the camera facilitates data transfer Purpose ControllerAuthentication handles authentication and validation operations ControllerAdministrator handles UI request from website interface serves desired information to an Administrator handles database controls and queries ControllerUser ControllerOperations SystemMangement DeviceStatus UserUtilities handles UI request from website interface serves desired information to user handles database controls and queries handles a concurrent intermediate request handler from users and SECAM SysControls instances retains all system information monitors system connections monitors database status monitors users status facilitates modification of registered system devices handles device related requests and modifications provides a robust toolset for the management of registered users facilitating video recording. Overview The ControllerAuthentication is responsible for maintaining and authenticating users to the system. The ControllerAdministrator class is responsible for executing and handling administrator level web requests and administrator level interface functions. Specifically serving administrator level requests for data and modification. The ControllerUser class is responsible for executing and handling user level web requests and user level interface functions. Specifically serving user level requests for data and modification. The ControllerOperations class is responsible for implementing operations of all permissions level. Handles internal security measures and privacy settings. The SystemMangement class is responsible for monitoring and maintaining system related events and components. The DeviceStatus class allows the modification and monitoring of registered devices connected to SECAM systems. The UserUtilities class provides extensive searching, modification, addition and deletion of users from SECAM systems. User is a composite class created when a user logs in or is requested by an administrator Administrator Devices Device extends the User class turning a User into an Administrator with new privileges retains and facilitates interaction with all devices associated with a User stores all associated device information stores registry information based on association The User class is a composite class that contains all information related to a particular user including device information. The Administrator class extends the User class turning a User into an Administrator with extended system privileges. The Devices class facilitates and retains all data and information of all devices associated with a user. The Device class is retains all device information including registry, computer, settings and verification data. SECAM SysControls Generalized Class Diagram windows secam 1..1 1..n 1..1 1..1 1..n 1..1 internet 1..1 engine connection 1..1 1..1 driver camera 1..1 settings api SECAM WebControls Generalized Class Diagram 1..1 1..1 Website 1..n 1..1 SystemManagement 1..1 1..n ControllerUser ControllerAdminstrator 1..1 1..1 1..n 1..n 1..1 1..1 1..1 1..n 1..1 1..1 1..1 ControllerAuthentication DeviceStatus 1..n UserUtilities Database 1..n 1..1 Administrator 0..1 1..n User 1..1 1..1 Devices 0..1 1..n Device 1..n ControllerOperations