IMDraw An Instant Message and Drawing Program Tim Poley Kelly Whitacre
Agenda Background IMDraw Design Decisions Client/Server vs. Peer to Peer Model TCP/IP vs. UDP Design Diagram Programming Hurdles Future Work Demonstration Questions
Background Early Instant Messaging- Talk Big Players Today AIM MS Messenger Jabber Trillian Why IMDraw?
Design Decisions: Client/Server vs. Peer to Peer Model Client/Server Advantages Server Manages Data Supports Off-line Messages Disadvantages Single Point of Failure P2P Advantages Performance Advantages with P2P Broadcasting File-Transfers Disadvantages Lower Performance with Heavy Loads
Design Decisions: TCP/IP vs. UDP Message Protocol TCP Advantages Connection Disruption Detection More Reliable (retransmits when necessary) Detects Congestion in the Network Disadvantages Slower UDP Advantages Fast, Simple Low Delay (no transmissions) End-to-End Encryption Near Real Time transmission Disadvantages Possible out-of-order delivery of messages
Design Diagram
Programming Hurdles Updating User Interface Controls Across Threads - C# delegates/events used Server Crash after Client Logs Off - 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 ssaging ssaging lt.asp?url=/library/en-us/default.asp lt.asp?url=/library/en-us/default.asp
Questions?
Demonstration
IMDraw Message Protocol- Supplemental IMDraw| | | | | | |.... Command: Login(0), Logout(3), Message(1), ClientList(2)
TCP-Supplemental