Computer Monitoring System For EE Faculty: by Yaroslav Ross and Denis Zakrevsky Supervisor: Viktor Kulikov
Computer Monitoring System For EE Faculty: by Yaroslav Ross and Denis Zakrevsky Supervisor: Viktor Kulikov
Presentation contents
General System Design Website Monitor service Design patterns Possible improvements and questions
Project Goals
To create computer monitoring system. To use different web and windows OS technologies. To experience in software systems and database design.
Technologies Used
MS .NET 2.0 ASP.NET 2.0 ADO.NET 2.0 MS SQL 2005 HTML Java Script
System Design
User
End Station
Faculty PC
Faculty PC
Faculty PC
Faculty PC
Use Cases
A use case defines a goal-oriented set of interactions between external actors and the system under consideration. Actors are parties outside the system that interact with the system. An actor may be a class of users, roles users can play, or other systems
Use Cases
EE Monitoring System
Change Password Login Check Computer Status
uses User
Monitor
Administrator
Web site
All user interface (settings, data changes and data view) of CMS is done using the web site. The web site consists of three layers: - Presentation layer. - Business logic layer. - Data access layer.
Presentation Layers
BLL
Buildings BLL
Computers BLL
Configuration BLL
PC Status BLL
Rooms BLL
Settings BLL
Permissions BLL
Users BLL
Presentation Layers
BLL
Presentation Layers
BLL
Database
Data base
Data base implemented on transact SQL using MS SQL server 2005. For each table there is a set of stored procedures (SELECT, UPDATE, INSERT, DELETE). The DB is normalized, all tables contain primary keys that used if necessary as secondary key in other tables to prevent data duplicating.
Data base
The data base consists of following tables: Users: (set of available users with personal information, password, and permissions). Permissions (set of available users permissions). Computers (set of all available computers with IP, place, name, status). Rooms (set of all available rooms). Buildings (Set of all available buildings). Computer Status (set of available statuses). Connection Look up (set of all ports that will be monitored). PC Connection Status (holds the information of monitoring results for all monitored ports for each computer). Configurations (set of different monitor configurations contains repeat time, mail address etc.).
Monitor service
The Monitor Service is part of CMS project that responsible of scheduled faculty PCs monitoring. It is implemented as Windows Service and need to be installed, on server. The service created using ADO.NET on C# language. Monitor contains dataset (DAL), based on ADO.NET, all data manipulations done through it. The dataset contains strongly-typed data tables and table adapters, which call the store procedures from database, and transfer\receive data.
Monitor service
The service activity depends on timer control that invokes monitor run every period of time (this period of timed stored in database and can be changed via the website). The monitor checks all existing PCs in database, which should be online, sends pings and tries to create socket connections on different ports that defined in system settings. If none of connections is successful, mail about such PC sent to system administrator (email address must be defined in system settings via website). The mail sending procedure is quite "expensive" in time concept, and not depends on the monitoring itself, so this is done in separate thread, using multithreading mechanism that .Net provides. Test application is also added to monitor, in order to run application without installation. The test application implemented as Windows Form, which invokes the timer\monitor
Monitor Dataset
Design Patterns
Design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations.
Design Patterns
Singleton (Creational pattern): The singleton pattern is implemented by creating a class with a method that creates a new instance of the class if one does not exist. If an instance already exists, it simply returns a reference to that object.
Singleton -singleton : Singleton -Singleton() +getInstance() : Singleton
Design Patterns
Observer (behavioral pattern): The observer pattern is a design pattern used in computer programming to observe the state of an object in a program. This pattern is mainly used to implement a distributed event handling system. The essence of this pattern is that one or more objects (called observers or listeners) are registered (or register themselves) to observe an event which may be raised by the observed object (the subject). (The object which may raise an event generally maintains a collection of the observers.)
Monitor +timer1_elapsed()
Possible improvements
Multithreading can be used in monitor in order to improve performance. The system can inform the administrator not only by email, but also by SMS. AJAX technology can be used to improve site performance. Using ASP.NET membership to receive a built in way for validating and storing user credentials.
Questions?