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 - 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)
Design Decisions: Client/Server vs. Peer to Peer Model-Supplemental 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-Supplemental 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
TCP-Supplemental