Transcript Slide 1
Dec01-09 May 1, 2002 Microsoft .NET P2P Team Members Ben Miller Kevin Moore Steven Rysavy Faculty Advisor Prof. Manimaran Govindarasu Client Dan Fay Presentation Outline • • • • • • • • • • • • Definition of Terms Problem Statement Design Objectives End-Product Description Assumptions and Limitations Project Risks and Concerns Technical Approach Milestones Future Work Human and Financial Budgets Lessons Learned Conclusion Definition of Terms • .NET Framework – Environment for developing software • C# (pronounced “C Sharp”) – Object oriented language derived from C and C++ • Peer-to-Peer Application – Internet applications with no central servers Problem Statement • Develop a peer-to-peer application using .NET framework • Communicate using server-less environment • Exchange multiple types of data • Write in the C# language • Document source code for developers Examples ICQ MSN AOL Design Objective Functionality • Rich Text Messaging – Rich Text has colors, fonts, and sizes • • • • File Transfer Special Support for File Types Local Message History IP Caching Design Objective Constraints • • • • Functionality provided by .NET Framework System Resources Connection Resources No central server Design Objectives Users • .NET environment enthusiasts • People seeking a rich text messaging application End-Product Description Features • Documented Code • Rich text (multiple fonts, colors, sizes, • Connect using TCP/IP etc) • One-to-Many • Support for special Connections types (emoticons) • Pure P2P • Message History • Functional GUI (stored locally) • IP Caching End-Product Description Ownership • Code will be sent to our sponsor at Microsoft • Full project will be submitted to .NET community sites: – www.gotdotnet.com – www.devhood.com – www.c-sharpcorner.com Assumptions • The user is running an operating system that supports the .NET Framework • Functionality of .NET will not vary among platforms • The users are on an TCP/IP network • Users will know the IP address of other clients. Limitations • Assuring unique identity and finding users might not be possible within a purely peerto-peer environment. • Firewalls may limit or deny communication between clients. • Functionality will be limited by the capacity and availability of the network. Project Risks and Concerns • The .NET Platform may change between beta and final release • .NET/C# are new technologies – Group members have to learn new a new language, framework, and tools – There is less information about .NET/C# than other, more established technologies Technical Approach • MSN Integration • .NET P2P Framework • Roll our own MSN Integration Benefits • Wide scale deployment • Well defined, simple interface Drawbacks • Not at all P2P • Implementation would be trivial .NET P2P Framework Benefits • Designed with/for the .NET Framework • Purely P2P in nature • Provides functionality we couldn’t create in a semester Drawbacks • Implementation would be trivial • Only available in beta release • Not stable Roll our Own Benefits • Fine control over features • Demonstrates lower level programming • Pride of building it ourselves Drawbacks • Implementation is not trivial • Limits our features • No firewall support Milestones • M1 - Basic Functionality • M2 - Additional Chat Features • M3 – Special Features M1 – Basic Functionality • • • • • Connect to multiple clients Send simple text messages Functional Interface Projected Date: 4/27/01 Revised Date: 2/28/02 M2 – Additional Chat Features • Sending of rich text messages • Send files (push model) – Local end initiates the transfer • Sharing files (pull model) – Remote end initiates the transfer • Projected Date: 3/30/02 • Finished Date: 3/30/02 M3 – Special Features • Interoperability with other messaging applications and services • Friendly names • Emoticons • Firewall connectivity • Projected Date: 4/30/02 • Finished: 4/30/02 Milestone Progress • M1 - 2/28/02 • M2 - 3/30/02 • M3 - 4/30/02 Future Work Long term – Additional features • Voice chat • Whiteboard • File Transfer Human Budget 165 160 161 159 Actual Esitmated 155 150 146147 145 143144 140 135 130 Kevin Steve Ben Financial Budget Item Actual Cost Poster Estimated Cost $50 .NET SDK Provided Provided Visual Studio Provided .NET Documentation Provided Provided $50 Provided Lessons Learned • Testing should be ongoing part of development process • Research features thoroughly before committing • Managing development Conclusion • Goal – Build a peer-to-peer application that leverages the .NET framework • Solution – Designed a peer-to-peer chat client using C# which is well documented and easy to expand