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