Transcript IMDraw
IMDraw
An Instant Message and Drawing
Program
Tim Poley
Kelly Whitacre
Agenda
Background
IMDraw Design Decisions
Programming Hurdles
Future Work
Demonstration
Questions
Background
Early Instant Messaging- Talk
Big Players Today
AIM
MS Messenger
Jabber
Trillian
Why IMDraw?
Design Decisions
C# Programming Language
Server/Client Model
TCP Internet Protocol
Design Diagram
Programming Hurdles
Updating User Interface Controls
Across Threads
Server Crash after Client Logs Off
- C# delegates/events used
- proper termination of threads used
TCP Connection Terminates before it
Sends Logout Message to Server
Future Work
Secure Message Transfer
UDP Message Protocol
Multicasting
User Defined Buddy Lists
Add Additional Capabilities to Drawing
Tool
Streamline Messages
References
http://en.wikipedia.org/wiki/Instant_me
ssaging
http://msdn.microsoft.com/library/defau
lt.asp?url=/library/en-us/default.asp
http://www.skullbox.net/tcpudp.php
Questions?
Demonstration
IMDraw Message ProtocolSupplemental
IMDraw|<Sender>|<Receiver>|<Command>|
<TextDetails>|<Point1 x>|<Point1 y>|....
Command: Login(0), Logout(3), Message(1),
ClientList(2)
Design Decisions: Client/Server vs.
Peer to Peer Model-Supplemental
Client/Server
P2P
Advantages
Server Manages
Data
Supports Off-line
Messages
Advantages
Performance Advantages
with P2P Broadcasting
File-Transfers
Disadvantages
Single Point of
Failure
Disadvantages
Lower Performance with
Heavy Loads
Design Decisions: TCP/IP vs. UDP
Message Protocol-Supplemental
TCP
Advantages
Slower
Advantages
Connection Disruption
Detection
More Reliable
(retransmits when
necessary)
Detects Congestion in
the Network
Disadvantages
UDP
Fast, Simple
Low Delay (no
transmissions)
End-to-End Encryption
Near Real Time
transmission
Disadvantages
Possible out-of-order
delivery of messages
TCP-Supplemental