![Page 1: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/1.jpg)
T.A: Viktor Kulikov
Eyal Madar Mikael Cohen
Spring 2006
![Page 2: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/7.jpg)
Remote Activation Concepts Marshal By Reference Object
Marshal By Value Object
![Page 8: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/9.jpg)
• 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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/11.jpg)
Client/Server Architecture (2)
Remote
Interface
Class link
![Page 12: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/19.jpg)
• Intuitive
• Fast
• Secured
Transfer File
![Page 20: T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042702/56649d6d5503460f94a4cea7/html5/thumbnails/25.jpg)
Chat Design
Please follow us to the lab!