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 Purpose ControllerAuthentication ControllerApplication ControllerAdministrator ControllerUser ControllerOperations Notifer Media to the camera facilitates data transfer facilitating video recording. Overview The ControllerAuthentication is responsible for maintaining and authenticating users to the system. The ControllerApplication class is handles SECAM responsible for handling SECAM SysControls SysControls requests. Specifically communication handling requests for saved API layer for internet settings or video streaming based communication requests. handles UI request from The ControllerAdministrator class is responsible for executing website interface and handling administrator level serves desired web requests and administrator information to an level interface functions. Administrator Specifically serving administrator handles database level requests for data and controls and queries modification. handles UI request from The ControllerUser class is responsible for executing and website interface handling user level web requests serves desired and user level interface information to user functions. Specifically serving handles database user level requests for data and controls and queries modification. The ControllerOperations class is handles a concurrent responsible for implementing intermediate request operations of all permissions handler from users and level. Handles internal security SECAM SysControls measures and privacy settings. instances The Notifier class is responsible handles multiple for sending email, SMS and other concurrent requests for notification features. The class is notifications capable of generating formatted holds notification protocols and procedure notification to user specifications and has intelligence to handle information error severity and appropriate notification procedures. The Media class is responsible handles media display, for all media, reading and writing encryption, watermarking, streaming operations associated with all SECAM applications. and other important media related security handles authentication and validation operations measures. Status Schedule Settings handles concurrent status updates for all active SECAM systems provides an efficient means for polling updates and propagating system information throughout all SECAM systems is responsible for maintaining scheduling information for SECAM systems handles scheduling calls for specific data requests handles setting information for all of SECAM’s systems including facilitating handles SysControls settings handles internal system settings The Status class is responsible for maintaining and handling internal status occurrences across all SECAM applications. The Schedule class is responsible for handling and maintaining the signalling of scheduled events, or the current schedule for the all SECAM applications. The Settings class is responsible for maintaining handling and verify system settings. 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