Upload
hope-austin
View
215
Download
0
Embed Size (px)
Citation preview
Meir Botner
David Ben-David
Project GoalProject Goal
Build a messenger that allows a Build a messenger that allows a customer to communicate with customer to communicate with a service provider for a fee.a service provider for a fee.
Project Requirement Project Requirement
Support two types of clients Support two types of clients (Customer/Provider).(Customer/Provider).
Registration through a web interface.Registration through a web interface. Enable Customer-Provider sessionsEnable Customer-Provider sessions Text messaging communication.Text messaging communication. Video/Audio conference system.Video/Audio conference system. Cash transaction between the system users .Cash transaction between the system users . Providers ranking system.Providers ranking system.
TechnologiesTechnologies
SQLSQL(MSSQL Database + (MSSQL Database + stored procedure)stored procedure)
RPC RPC (.NET Remoting)(.NET Remoting)
.NET.NET
ASP.NETASP.NETHTMLHTMLJava scriptJava scriptC#C#
.NET Framework.NET Framework
The .NET Framework is the infrastructure for the The .NET Framework is the infrastructure for the new Microsoft .NET Platform. new Microsoft .NET Platform.
A common environment for building, deploying, A common environment for building, deploying, and running Web Services and Web Applications.and running Web Services and Web Applications.
The .NET Framework contains common class The .NET Framework contains common class libraries - like ADO.NET, ASP.NET and libraries - like ADO.NET, ASP.NET and Windows Forms - to provide advanced standard Windows Forms - to provide advanced standard services that can be integrated into a variety of services that can be integrated into a variety of computer systems.computer systems.
.NET Framework Cont..NET Framework Cont.
Language neutral. Provides simplified Language neutral. Provides simplified development and easy integration between a development and easy integration between a number of different development languages.number of different development languages.
Implements the Common Language Implements the Common Language Infrastructure (CLI) standard with the Common Infrastructure (CLI) standard with the Common Language Runtime (CLR) virtual machine. The Language Runtime (CLR) virtual machine. The CLR’s just-in-time compiler converts Common CLR’s just-in-time compiler converts Common Intermediate Language (CIL) code into code Intermediate Language (CIL) code into code native to the operating systemnative to the operating system
.NET Remoting.NET Remoting
Remote Method Invocation (RPC) Allows Remote Method Invocation (RPC) Allows an application to make an object an application to make an object available across available across remote boundariesremote boundaries, , processes or even different computers processes or even different computers connected by a network.connected by a network.
Commercial Messenger Server Commercial Messenger Server implements a .NET Remoting object.implements a .NET Remoting object.
Remote service runs in Singleton mode, Remote service runs in Singleton mode, allowing a stateful communication.allowing a stateful communication.
C#C#
We have chosen C# as are main programming We have chosen C# as are main programming languagelanguage
Supported by the .NET Framework CLRSupported by the .NET Framework CLR Object oriented syntax based on C++Object oriented syntax based on C++ Garbage collection mechanismGarbage collection mechanism C# provides syntactic sugar for a common pattern C# provides syntactic sugar for a common pattern
of a pair of methods, accessor (getter) and mutator of a pair of methods, accessor (getter) and mutator (setter) encapsulating operations on a single (setter) encapsulating operations on a single attribute of a class, in form of propertiesattribute of a class, in form of properties
MethodologiesMethodologies
Throughout our project, we have widely used Throughout our project, we have widely used design patterns such as: singleton patterndesign patterns such as: singleton pattern
Event driven programming (EDP) Event driven programming (EDP) methodology (C# delegates and events)methodology (C# delegates and events)
We have supplied thread safety through usage We have supplied thread safety through usage of monitors and locks, as well as readers-of monitors and locks, as well as readers-writers lock mechanismwriters lock mechanism
Web DevelopmentWeb Development
ASP.NETASP.NET Stands for Stands for AActive ctive SServer erver PPagesages IIS passes browser requests to the ASP engine. The ASP IIS passes browser requests to the ASP engine. The ASP
engine reads the ASP file and executes it. The ASP file is engine reads the ASP file and executes it. The ASP file is returned to the browser as plain HTMLreturned to the browser as plain HTML
Access to database. Provides security.Access to database. Provides security. JavaScript is a scripting language widely JavaScript is a scripting language widely
used for client-side web development. used for client-side web development. These technologies were used in building up These technologies were used in building up
the Commercial Messenger registration sitethe Commercial Messenger registration site
MSSQLMSSQL
Our project’s database is stored on a Microsoft Our project’s database is stored on a Microsoft SQL 2005 server.SQL 2005 server.
All database actions are carried out by stored All database actions are carried out by stored procedures.procedures.
Stored procedures are ran by the DAL (single Stored procedures are ran by the DAL (single access point to the database)access point to the database)
SQL Database DiagramSQL Database DiagramWe are using the SQL data base to save all the users personal details and the conversations history.
System ArchitectureSystem Architecture
System ModulesSystem Modules
Client ModuleClient Module
Implements the client application ran by a single Implements the client application ran by a single customer or provider in the system. customer or provider in the system. Concentrates the business logic, as well as the Concentrates the business logic, as well as the graphical user interface (GUI) of the system. graphical user interface (GUI) of the system.
Client – Class DiagramClient – Class Diagram
The main form is a singleton that functions as the “heart” of the client application.
Client – Class DiagramClient – Class DiagramControl classes - Controls the user contact list, status voice & audio and conversation charge.
Client – Class DiagramClient – Class Diagram
All the dialog are activated from the main form and are used to update and set the user details (balance, password,contact list ……)
DAL Module DAL Module
The data access layer of the system. The DAL is implemented as a singleton, providing access to data stored in the system’s database server. It intermediates between the common data classes of the system and a dataset of strongly typed table adapters and tables.
DAL-Class Diagram DAL-Class Diagram
The data access layer implement all thefunction that the upper levels needs tocommunicate with the data base to get and update data.
Data ModuleData Module
Exposes common interfaces and classes, used by Exposes common interfaces and classes, used by all the system’s modulesall the system’s modules
Data – Class DiagramData – Class Diagram
We use this classes & interface in all the other modules
Server ModuleServer Module
The Commercial Messenger Server implements The Commercial Messenger Server implements the business logic layer, intermediating the business logic layer, intermediating between the DAL and the clients of the between the DAL and the clients of the system. It is implemented with .NET system. It is implemented with .NET Remoting (RPC) and concentrates the entire Remoting (RPC) and concentrates the entire functionality of the system in a thread safe functionality of the system in a thread safe manner.manner.
Server – Class DiagramServer – Class Diagram
The server module have all the function that the client need for interaction with the lower levels and also classes for holding an active sessions.