Collaborative Distributed Systems
For this assignment you will need to build a peer-to-peer system in Java. You have a lot of flexibility in your design, but the following criteria will be applied
Basic grade (40%-50%):
Basic peer-to-peer system hosting a simple chat application between clients. An outgoing message can be sent to all connected peers or a selected peer (identified by IP address). Peers are discovered using UDP broadcast on a pre-agreed port. You can revert to TCP once clients have been discovered. No authentication.
Medium grade (60%-80%):
A more flexible design of the P2P layer. You will need to decide on a suitable API and build one to support multiple applications (not just the chat application above). Demonstrate your new flexible API by building another application in addition to the chat application above. If you have any ideas for suitable applications that you want to discuss with me, please ask.