Microsoft.NET P2P Team Members Ben Miller Kevin Moore Steven Rysavy Faculty Advisor Prof. Manimaran Govindarasu Dec01-09May 1, 2002 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 ICQMSN AOL
Design Objective Functionality Rich Text Messaging –Rich Text has colors, f o n t s, and s i z e s 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 Connect using TCP/IP One-to-Many Connections Pure P2P Functional GUI Rich text (multiple fonts, colors, sizes, etc) Support for special types (emoticons) Message History (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: – – –
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 peer- to-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
Financial Budget ItemEstimated Cost Actual Cost Poster$50.NET SDKProvided Visual Studio.NET Provided DocumentationProvided
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