t.a: viktor kulikov eyal madar mikael cohen spring 2006
Post on 21-Dec-2015
225 views
TRANSCRIPT
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?
Goals
Building a Chat application in C#, using .Net
Implementing:
• Public forum
• Private chat
• File transfer
• Security encryption
• Convivial and intuitive GUI
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.
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?
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
Remote Activation Concepts Marshal By Reference Object
Marshal By Value Object
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
• 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)
Server Form
Server Remote
Client Form
Client Remote
Remoting
Server Machine Client Machine
Client/Server Architecture (2)
Client/Server Architecture (2)
Remote
Interface
Class link
Client
Server Interface
Can use from Server: - Logon - Logout - Send Message - Ask for private chat
Server Interface (1)
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
Server
Client Interface
Can use from Client: - UpdateClient - LogOffClient - DoYouWantPrivateChat
Client Interface (1)
Client Interface (2)
• UpdateClient: Update Client Form
• LogOffClient: Close the Client
• DoYouWantPrivateChat: Demand for a private chat
Client Form
Client RemoteServer
Is Marshall!
Server uses Client functions
Client Function
Client Function
Client functions are given by IClient Interface
Server Form
Server RemoteClient
Server Function
Is Marshall!
Server Function
Server functions are given by IServer Interface
Client uses Server functions
Client AClient B
Server
Ask For Private
chat
Do you want a private chat with A?
Private Chat port
Private Chat
• Intuitive
• Fast
• Secured
Transfer File
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
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
Server Client B
Client A
Client C
Possibility of a Peer to peer private ChatPublic Chat Secured
Conclusion
• We have build an intuitive chat, which allows public, private, secured discussions, and secured transfer files
• Future works:
- Voice conversation
- Video conference
Thanks…
• To Viktor for his time and his patience.
• To Swlab Laboratory
• To you who have listened our presentation until the end!
Chat Design
Please follow us to the lab!