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 Server Client Ca Cb 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)
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 Remote Server Is Marshall! Server uses Client functions Client Function Client functions are given by IClient Interface
Server Form Server Remote Client Server Function Is Marshall! Server Function Server functions are given by IServer Interface Client uses Server functions
Client A Client 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 Chat Public 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!