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
CMS (Computers Monitor System) General. The purpose of the system is to avoid PCs "disappearing" on EE faculty. It gives possibility to insert and store information about faculty computers, system users and other management information and checks computers state
( monitoring ) every period of time. CMS (Computers Monitor System) General. The CMS contains three major sub systems: 1) Web Site. 2) Service. 3) Data Base.
System Design Web Site Server DB User End Station Administrator
Windows Server Service 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 uses User Monitor
Check Computer Status Change computer status Change system settings
Update Database Add Update-Delete user Add Update-Delete computer Add Update-Delete Building Add Update-Delete Room 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.
Web site layers Web site layers Presentation Layer (User Interface): - Web controls ( reuse ), all logic implemented in C# classes, which inherits from System.Web.UI.UserControl .Net class. - Web pages (master page based, CSS used to avoid duplication, Java script used for custom controls), all logic implemented in C# classes, which inherits from System.Web.UI.Page .Net
class. Web site layers Presentation Layers BLL Web site layers
Business logic layerBusiness Logic Layer (BLL) serves as an intermediary for data exchange between the presentation layer and the DAL. In "real world" application this layer can contain large functionality like: security constraints for data based on user permissions, data operations and other business logic. In CMS the main functionality of BLL is to transfer data from Presentation Layer to DAL. Small amount of logic and some minor data operations. This layer created mostly as contribution to right design of such application and it makes easier future application
development and improvement. The number of classes in BLL is as a number of logic entities in the system. These classes are presented in figure. Web site layers Business Logic Layer (BLL) Buildings BLL
BLL Web site layers Presentation Layers BLL Data Access
Layer Web site layers Data Access Layer The MS recommended approach, for right software architecture of Websites is to separate the data access logic from the presentation layer. All code that is related to data source such as creating a connection to the database, issuing SELECT , INSERT, UPDATE, and DELETE commands, and so on is located in the DAL. The presentation layer should not contain any references
to such data access code, but should instead make calls into the DAL (via BLL in our case) for all data requests. Data Access Layers contains methods for accessing the database data. The DAL is written at C# language and strongly uses ADO.NET (2.0). Web site layers BLL&DAL class diagram
Web site layers Presentation Layers BLL Data Access Layer
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.). CMS Database table diagram
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 Monitor class diagram 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 Singleton in the project Class MonitorUtils (Lazy Initialization) Table adapters in BLL ADO.NET connection to SQL database is built as 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.) Observer pattern UML diagram Observer in the project Timer in Monitor service (easy to show). Built in for many web controls and pages
(buttons, combo boxes and etc). Observer in the project serviceBase * 1 Timer
+elapsedEventHandler() +elapsed() 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?
CONCRETE DECKS. Roofing contractor is not responsible for the effects on the roofing materials of residual moisture in concrete decks. Roofing contractor recommends that roofing not commence until probes in concrete decks show that moisture content is no greater than...
Costs And BenefitsThe big benefit. Automatic checking. That is, "cheap" bugs. The sooner a bug is found, the less expensive it is. Annotated code finds many more bugs (with less noise) than un-annotated code
personal narrative: dynamic true story can be read in one sitting has a central character which is "i" (first person point of view) contains vivid details (imagery) uses description, figurative language, an dialogue to tell a personal story contains clear...
Chapter summary due on blackboard. Next week Chapter 2, summary due before class. Overview. More on the aerotropolis model shortly. Refers to the tools and information provided by or to people during all aspects of their decision making processes.
A More On Islam Series Presentation. Edited by: A.S. Hashim, MD Time to purify and train body and soul A warm welcome to you! The month of Ramadhan is almost over. This, we expect, would help to explore more about...
In 20 rolls of a die, what is the probability of getting exactly 3 fours? Why is this problem difficult to answer based on what you have already learned? Is this a binomial setting? You can't simply use the multiplication...