25
T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

  • View
    221

  • Download
    2

Embed Size (px)

Citation preview

Page 1: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

T.A: Viktor Kulikov

Eyal Madar Mikael Cohen

Spring 2006

Page 2: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Introduction

• boosts communication and allows easy collaboration.

• not forced to reply immediately

• Less intrusive than communication via phone.

• Companies like IBM have their own Chat application witch allows labs working across the world

• Encryption is required to secure the business communications

Why a chat application ?

• real-time communication between two or more people based on typed text

• May have more options, like transfer files, voice, video…

What is a chat application?

Page 3: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Goals

Building a Chat application in C#, using .Net

Implementing:

• Public forum

• Private chat

• File transfer

• Security encryption

• Convivial and intuitive GUI

Page 4: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Chat Design• Frame matched with the windows style. • Tabs appear with a pretty gray relief.• Clear and intuitive.• Can easily put it in full screen.

Page 5: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Remote executing means running a process in another computer without using any resource or CPU load in the local computer

Using a client/server application

What is Remoting?

Page 6: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Tcp

A server, a client and a network

ServerClient

Ca CbCb

Proxy

Marshal By Reference Object Client Ca creates a proxy instance of Cb Client Ca can uses Cb provided functions via a Tcp channel

Page 7: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Remote Activation Concepts Marshal By Reference Object

Marshal By Value Object

Page 8: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Server Activated – Wellknown Singleton Single Instance of Object Services All Clients

Types of .NET Remote Objects

Server Activated – Wellknown Singlecall New Instance of Object on Every Use

Page 9: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

• The solution consists of four projects:

- ServerConsole- ServerInterface- ClientApp- ClientInterface

• ServerConsole is a Windows Form. ServerInterface holds the necessary interfaces for the ServerConsole

• ClientApp is a Windows Form ClientInterface holds the necessary interfaces for the ClientApp

Client/Server Architecture (1)

Page 10: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Server Form

Server Remote

Client Form

Client Remote

Remoting

Server Machine Client Machine

Client/Server Architecture (2)

Page 11: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Client/Server Architecture (2)

Remote

Interface

Class link

Page 12: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Client

Server Interface

Can use from Server: - Logon - Logout - Send Message - Ask for private chat

Server Interface (1)

Page 13: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Server Interface (2)

• Logon: Client log in to the Server

• Logoff: Client log out from the Server

• SendMsg: Send a message to another user via the Server

• GetPortNo: Receive a port number to communicate with the server

• AskForPrivate: Ask private chat to another user via the Server

Page 14: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Server

Client Interface

Can use from Client: - UpdateClient - LogOffClient - DoYouWantPrivateChat

Client Interface (1)

Page 15: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Client Interface (2)

• UpdateClient: Update Client Form

• LogOffClient: Close the Client

• DoYouWantPrivateChat: Demand for a private chat

Page 16: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Client Form

Client RemoteServer

Is Marshall!

Server uses Client functions

Client Function

Client Function

Client functions are given by IClient Interface

Page 17: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Server Form

Server RemoteClient

Server Function

Is Marshall!

Server Function

Server functions are given by IServer Interface

Client uses Server functions

Page 18: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Client AClient B

Server

Ask For Private

chat

Do you want a private chat with A?

Private Chat port

Private Chat

Page 19: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

• Intuitive

• Fast

• Secured

Transfer File

Page 20: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Encryption algorithm used :

RSA - Rivest, Shamir (israel) , Adelman

Security

RSA has been invented at a Pessah Seder in 1977

Did you know that

RSA encryption is used in our

•Private Chat

•File transfer

Page 21: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Public key

RSA involves two keys:

•The public key can be known to everyone and is used to encrypt messages.

•These messages can only be decrypted by use of the private key

Order encrypted with the public key

Even if intercepted, the message can’t be decrypted without private key !

Easily decrypted with the private key !

RSA principle

Page 22: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Server Client B

Client A

Client C

Possibility of a Peer to peer private ChatPublic Chat Secured

Page 23: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Conclusion

• We have build an intuitive chat, which allows public, private, secured discussions, and secured transfer files

• Future works:

- Voice conversation

- Video conference

Page 24: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Thanks…

• To Viktor for his time and his patience.

• To Swlab Laboratory

• To you who have listened our presentation until the end!

Page 25: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006

Chat Design

Please follow us to the lab!