CS521 Network Architecture II : Project Review - Presentation Transcript
CS521: Projects A Review
CS521: Projects
Prerequisites for doing the projects
Understanding of any one Programming Language (e.g. C, C++, C# or Java)
Basic Socket Programming
Understanding of Protocols
Understanding of the Problem Statement (most important)
Ask questions of you don’t understand the Problem Statement!
Project 1: RDP Implementation
What was the major objective?
Students should learn how to implement the sliding window protocol to get a feel of implementing Reliable data transfer over unreliable media or network.
Generally the lab environment doesn’t provide unreliable data transfer.
A “Virtual Router” process was given to provide unreliability
Introduced a protocol to talk with router so that we can test the sliding window implementation
Project 1: RDP Implementation
Things to be implemented
Sliding Window Protocol
Communication with Router
Implementation of both of them were equally important
Project 1: RDP Implementation
Review of Project 1 submission
Teams started very late to implement
When you have less time to work or think your quality degrades
Very few teams actually asked questions when they faced problems
Some Teams gave more importance to Router communication and forgot or neglected the importance of RDP implementation
Some implemented a completely different project that was not related with the project 1 !
Project 2: IPP Implementation
What was the major objective?
Students should learn how to design an Instant Messaging Protocol and implement the Presence part of IM.
The major focus was to come up with a simple and scalable design for your version of protocol
Project 2: IPP Implementation
Things to be implemented
Presence Protocol
Application to demonstrate that your protocol works!
Implementation of both of them were equally important
Project 2: IPP Implementation
Review of Project 2 submission
Most of the teams did well in the Application part of this project
Most of the implementations had Application and their Protocol mixed with each other when they submitted first draft
Most teams gave importance to GUI but that was not a major requirement.
Buddy list management should be with the help of protocol, some teams had delegated this to database or application
Project 3: SIP
What was the major objective?
Students should learn how to understand and implement the real protocol (SIP in this case) from RFC.
The major focus was to implement as specified in the Standard RFC
Implementations from different groups should interoperate if they all follow the Standard RFC (that’s why standards are there !)
Project 3: SIP
Things to be implemented
Atleast one of the Session Messages (e.g. INVITE, REGISTER, SUBSCRIBE)
Project 3: SIP
Review of Project 3 submission
Most of the teams did good
Some teams implementation was not working properly
They did not have proper documentation of how to run their projects (especially with inputs that won’t crash your programs)
Finally
Design your implementation first
Spending time in a good design is less likely to fail and more likely to finish earlier than an attempt to jump directly into coding
I have seen some teams that did brainstorming in their design before implementation performed well
Know your tools
Especially you should know what is the behavior of your language
E.g. what is the size of int in your choice of language and operating system platform
How a struct or class is stored inside memory? If you want to send these objects?
Is the memory representation of these objects compatible with the representation you want in the Protocol you are using? (big-endian vs. little-endian)
Is your machine blocking incoming packets! Any firewall issues?
Handle Error conditions
Exceptions are bad when they are not caught!
Think from end-user perspective.
How would the end-user can use your program if he/she was not in your development team and doesn’t know what you have done!
Asking user for input from command line or gui is good as compared to expecting user to change some variable inside your program !
0 comments
Post a comment