24
Meir Botner David Ben- David

Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

Embed Size (px)

Citation preview

Page 1: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

Meir Botner

David Ben-David

Page 2: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

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.

Page 3: 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 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.

Page 4: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

TechnologiesTechnologies

SQLSQL(MSSQL Database + (MSSQL Database + stored procedure)stored procedure)

RPC RPC (.NET Remoting)(.NET Remoting)

.NET.NET

ASP.NETASP.NETHTMLHTMLJava scriptJava scriptC#C#

Page 5: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

.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.

Page 6: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

.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

Page 7: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

.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.

Page 8: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

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

Page 9: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

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

Page 10: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

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

Page 11: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

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)

Page 12: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

SQL Database DiagramSQL Database DiagramWe are using the SQL data base to save all the users personal details and the conversations history.

Page 13: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

System ArchitectureSystem Architecture

Page 14: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

System ModulesSystem Modules

Page 15: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

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.

Page 16: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

Client – Class DiagramClient – Class Diagram

The main form is a singleton that functions as the “heart” of the client application.

Page 17: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

Client – Class DiagramClient – Class DiagramControl classes - Controls the user contact list, status voice & audio and conversation charge.

Page 18: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

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 ……)

Page 19: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

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.

Page 20: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

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.

Page 21: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

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

Page 22: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

Data – Class DiagramData – Class Diagram

We use this classes & interface in all the other modules

Page 23: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

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.

Page 24: Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee

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.