Commercial Messenger

Download Report

Transcript Commercial Messenger

Meir Botner
David Ben-David
Project Goal
Build a messenger that allows a
customer to communicate with
a service provider for a fee.
Project Requirement







Support two types of clients
(Customer/Provider).
Registration through a web interface.
Enable Customer-Provider sessions
Text messaging communication.
Video/Audio conference system.
Cash transaction between the system users .
Providers ranking system.
Technologies

SQL
(MSSQL Database +
stored procedure)

RPC
(.NET Remoting)

.NET
ASP.NET
HTML
Java script
C#

.NET Framework



The .NET Framework is the infrastructure for
the new Microsoft .NET Platform.
A common environment for building,
deploying, and running Web Services and Web
Applications.
The .NET Framework contains common class
libraries - like ADO.NET, ASP.NET and
Windows Forms - to provide advanced
standard services that can be integrated into a
variety of computer systems.
.NET Framework Cont.


Language neutral. Provides simplified
development and easy integration between a
number of different development languages.
Implements the Common Language
Infrastructure (CLI) standard with the
Common Language Runtime (CLR) virtual
machine. The CLR’s just-in-time compiler
converts Common Intermediate Language
(CIL) code into code native to the operating
system
.NET Remoting



Remote Method Invocation (RPC) Allows
an application to make an object
available across remote boundaries,
processes or even different computers
connected by a network.
Commercial Messenger Server
implements a .NET Remoting object.
Remote service runs in Singleton mode,
allowing a stateful communication.
C#





We have chosen C# as are main programming
language
Supported by the .NET Framework CLR
Object oriented syntax based on C++
Garbage collection mechanism
C# provides syntactic sugar for a common
pattern of a pair of methods, accessor (getter)
and mutator (setter) encapsulating operations
on a single attribute of a class, in form of
properties
Methodologies



Throughout our project, we have widely used
design patterns such as: singleton pattern
Event driven programming (EDP)
methodology (C# delegates and events)
We have supplied thread safety through usage
of monitors and locks, as well as readerswriters lock mechanism
Web Development

ASP.NET





Stands for Active Server Pages
IIS passes browser requests to the ASP engine. The ASP
engine reads the ASP file and executes it. The ASP file is
returned to the browser as plain HTML
Access to database. Provides security.
JavaScript is a scripting language widely
used for client-side web development.
These technologies were used in building
up the Commercial Messenger registration
site
MSSQL



Our project’s database is stored on a Microsoft
SQL 2005 server.
All database actions are carried out by stored
procedures.
Stored procedures are ran by the DAL (single
access point to the database)
SQL Database Diagram
We are using
the SQL data
base to save all
the users
personal details
and the
conversations
history.
System Architecture
System Modules
Client Module
Implements the client application ran by a single
customer or provider in the system.
Concentrates the business logic, as well as the
graphical user interface (GUI) of the system.
Client – Class Diagram
The main
form is a
singleton
that
functions as
the “heart”
of the client
application.
Client – Class Diagram
Control classes Controls the user contact
list, status voice & audio
and conversation charge.
Client – 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
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
The data access layer
implement all the
function that the upper levels
needs to
communicate with the data
base to get
and update data.
Data Module
Exposes common interfaces and classes, used by
all the system’s modules
Data – Class Diagram
We use this classes &
interface in all the other
modules
Server Module
The Commercial Messenger Server implements
the business logic layer, intermediating
between the DAL and the clients of the
system. It is implemented with .NET Remoting
(RPC) and concentrates the entire functionality
of the system in a thread safe manner.
Server – 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.