> Formation > Cursus ingénieur
Development of a Java network application from scratch or from existing libraries to make students sensitive to the implementation and integration of network protocols within a complete prototype (GUI, Parser, ...). Software architectue will be specified and implemented and the compliance of the prototype will be checked against existing applications.
The network application will be a Bittorrent client.Contact Olivier ALPHAND
Students have to organize their work by themselves, look for any documentation or existing code on the Web, and integrate independent parts into an operational prototype meeting the requirements of scenarios progressively defined by students. The programming language is Java. Besides the teamwork aspect, the project will give you the opportunity to conceive a complete object-oriented architecture and tackle advanced notions of network programming (non blocking sockets (Java.nio), Peer-to-Peer paradigm, Protocol Parser, ...) and simple programming (thread, clean code, design pattern : state machine, observeer, reactor, ...).
You will use a Integrated Development Environment (Eclipse/Netbeans), a version control system (Git) and you will test the compatibility of your network traffic thanks to network tools (Wireshark, ...) or by interacting directly with existing applications.
At last, you will test the performances (Jprofiler, network throughput, ...) of your application through an automated scenario aiming at seeding/leeching on bulky file among several existing bittorrent clients on different machines from the local Ensimag network. Comparing the performances of client from different groups in a similar scenario could fuel discussions about the efficiency of implemented downloading strategies.
Prerequisites: 2nd year Computer Networks course and labs, Java object-oriented programming, Network tools (Wireshark)
project source code, final report and prototype demonstration
N1=code + rapport + démonstration prototype à la fin du projet
Pas de rattrapage en 2ème session
Date of update January 15, 2017