Distributed Computing applications

The University of Northampton?s Policy on Plagiarism & Mitigating Circumstances
will be
strictly implemented. By submitting this signed assignment you are asserting
that this submission is entirely your own individual work.
Modern Networks
Assignment 1 – CSY2026
Finish Date: 15th January, 2017 ? By e-submission by 23:59
Aims & Objectives
To enable the student to understand and extend Distributed Computing applications,
using the Java programming language and C# .NET utilising the Transmission Control
Protocol (TCP) as well as User Datagram Protocol (UDP).
The netcat command line utility allows arbitrary TCP and UDP connections to be
established between two or more instances of the utility, or between the utility and other
applications, and for them to exchange data.
Two console based applications, written in both Java and C#, have much of the
functionality used by netcat. These source code behind these applications are available
to you to help with this assignment. These two applications allow each to act as a:
? TCP server
? TCP client
? UDP server
? UDP client
Design, implement and test a graphical version of netcat in both Java and C# so that
these applications can be used in the same way as the netcat command line utility
(There is no need to design the GUI behind the Java and the C# GUI applications as they
are available as two skeleton applications. You need to design, implement and test the
code behind each application). As, a minimum, you need to demonstrate that your two
applications can communicate with themselves and each as follows.
? Java TCP Listener <-> Java TCP
? Java UDP Listener <-> Java UDP
? C# TCP Listener <-> C# TCP
? C# UDP Listener <-> C# UDP
? Java TCP Listener <-> C# TCP
? C# UDP Listener <-> TCP UDP
You may also wish to show your application(s) communicating with existing applications.
For example, with a web server (when acting as a web browser) or a web browser (when
acting as a web server).
A report is required to be submitted to TurnitIn by 23:59 on 15th January, 2017.
Your report should include the following sections:
1. Virtual Demo
2. Design
3. Implementation
4. Test
5. References
6. Appendices
Please note that the work you produce must be your own and you may be asked
for a viva.
Learning objectives
This assessment corresponds to the following Learning Objectives as detailed in the
Module Specification document:
Knowledge and Understanding
c. Understand and explain the principles of mobile device programming to a
satisfactory level.
Subject specific skills
d. Satisfactorily evaluate and use networks, in both fixed and mobile contexts, that
are used for device programming.
e. Evaluate and appraise the use of modern networks used in fixed and mobile
contexts to an adequate level.
f. Design and implement programs for use on modern networks.
Key Skills
g. Competently identify relevant sources of information
h. Communication. Write clearly about complex subjects in a form adequate to the
i. Managed Learning: Satisfactorily make, justify and implement decisions following
evaluation of options.
j. Problem solving: Develop skills to satisfactorily design and implement appropriate
software and systems