美文网首页
墨尔本大学COMP90015课业解析

墨尔本大学COMP90015课业解析

作者: Penny专属 | 来源:发表于2019-08-26 16:56 被阅读0次

    题意:使用客户端-服务器体系结构,设计并实现允许并发的多线程服务器

    客户端搜索单词的含义,添加新单词,并删除现有单词。

    解析:使用socket构建一个可以连接多个客户端的多线程服务器,服务器从包含初始列表的文件中加载字典数据单词及其含义,数据在一个能够实现的结构中把存在内存中的高效单词搜索。添加或删除单词,数据结构将更新并反映变化。客户端它会创建绑定到服务器地址和端口的套接字数。此套接字在客户端-服务器交互期间保持打开状态。所有消息通过此套接字发送/接收

    涉及技术点:socket,java Tcp/Udp套接字编程,GUI界面实现

    实现代码:进行中。

    更多可加微信哦

    人美心善的小姐姐

    COMP90015: Distributed Systems – Assignment 1

    Multi-threaded Dictionary Server (15 marks)

    Problem Description

    Using a client-server architecture, design and implement a multi-threaded server that allows concurrent

    clients to search the meaning(s) of a word, add a new word, and remove an existing word.

    This assignment has been designed to demonstrate the use of two fundamental technologies that have

    been discussed during the lectures:

     Sockets

     Threads

    Hence, the assignment must make an EXPLICIT use of the two above. By explicit, we mean that in your

    application, sockets and threads must be the lowest level of abstraction for network communication and

    concurrency.

    Architecture

     The system will follow a client-server architecture in which multiple clients can connect to a

    (single) multi-threaded server and perform operations concurrently.

     The multi-threaded server may implement a thread-per-request, thread-per-connection, or

    worker pool architecture. This is a design decision for you to make.

    Interaction

     All communication will take place via sockets. These sockets can be either TCP or UDP, however,

    keep in mind that all communication between clients and server is required to be reliable.

     You are responsible for designing your own message exchange protocol. Some data formats that

    you may use include XML, JSON, Java Object Serialization, or you may choose to design your own.

    Failure Model

     All communication between components has to be reliable. If you are using TCP, then the

    reliability guarantees offered by the protocol are sufficient. If you decide to use UDP, then you

    have to implement an infrastructure that offers reliable communication over UDP. For those of

    you with previous experience using TCP, using UDP may be a rewarding challenge.

     It is expected that, on both the server and the client side, errors (by means of exception handling)

    are properly managed. The errors include the following:

     Input from the console for what concerns the parameters passed as command line.

     Network communication (address not reachable, bad data...).

     I/O to and from disk (cannot find the dictionary file, error reading the file, etc...).

     Other errors you might come up with.

    The application will be tested and validated against all these errors.

    Functional Requirements

     Query the meaning(s) of a given word

    The client should implement a function that is used to query the dictionary with the following

    minimum (additional input/output parameters can be used as required) input and output:

    Input: Word to search

    Output: Meaning(s) of the word

    Error: The client should clearly indicate if the word was not found or if an error occurred. In case

    of an error, a suitable description of the error should be given to the user.

     Add a new word

    Add a new word and one or more of its meanings to the dictionary. For the word to be added

    successfully it should not exist already in the dictionary. Also, attempting to add a word without

    an associated meaning should result in an error. A new word added by one client should be visible

    to all other clients of the dictionary server. The minimum input and output parameters are as

    follows:

    Input: Word to add, meaning(s)

    Output: Status of the operation (e.g., success, duplicate)

    Error: The user should be informed if any errors occurred while performing the operation.

     Remove an existing word

    Remove a word and all of its associated meanings from the dictionary. A word deleted by one

    client should not be visible to any of the clients of the dictionary server. If the word does not exist

    in the dictionary then no action should be taken. The minimum input and output parameters are

    as follows:

    Input: Word to remove

    Output: Status of the operation (e.g., success, not found)

    Error: The user should be informed if any errors occurred while performing the operation.

    User Interface

    A Graphical User Interface (GUI) is required for this project. You are free to design it and to use any

    existing tools and libraries for this purpose.

    Implementation Guidelines

    These are guidelines only, you are allowed and encouraged to come up with your own design and

    interfaces.

     When the server is launched, it loads the dictionary data from a file containing the initial list of

    words and their meanings. These data is maintained in memory in a structure that enables an

    efficient word search. When words are added or removed, the data structure is updated to

    reflect the changes.

    A sample command to start the server is:

    > java –jar DictionaryServer.jar

    Where <port> is the port number where the server will listen for incoming client connections

    and

    <dictionary-file> is the path to the file containing the initial dictionary data.

     When the client is launched, it creates a TCP socket bound to the server address and port

    number. This socket remains open for the duration of the client-server interaction. All messages

    are sent/received through this socket.

    A sample command to start the client is:

    > java –jar DictionaryClient.jar

    Implementation Language

    The assignment should be implemented in Java. Utilization of technologies such as RMI and JMS are not

    allowed

    .

    Report

    You should write a report describing your system and discussing your design choices. Your report should

    include:

     The problem context in which the assignment has been given.

     A brief description of the components of the system.

     An overall class design and an interaction diagram.

     A critical analysis of the work done followed by the conclusions.

    Please mind that the report is a

    WRITTEN document, do not put only graphs. A report without any

    descriptive text addressing the problem, architecture, protocols, and the analysis of the work done will

    not be considered valid.

    The length of the report is not fixed. A good report is auto-consistent and contains all the required

    information for understanding and evaluating the work done. Given the level of complexity of the

    assignment, a report in the range of 4 to 6 pages is reasonable. Please mind that the length of the report

    is simply a guideline to help you in avoiding writing an extremely long or incomplete report.

    It is important to put your details (name, surname, student id) in:

     The head page of the report.

     As a header in each of the files of the software project.

    This will help to avoid any mistakes in locating the assignment and its components on both sides.

    Submission

    You need to submit the following via LMS:

     Your report in PDF format only.

     Two executable jar files (DictionaryClient.jar and DictionaryServer.jar) that will be used to run

    your system on the day of the demo.

     Your source files in a .ZIP or .TAR archive only.

    Submissions will be due on: Thursday 5 of September (5 pm).

    Marking

    The marking process will be structured by first evaluating whether the assignment (application + report)

    is compliant with the specification given. This implies the following:

     Use of TCP/UDP sockets and threads for the application;

     proper use of concurrency in the server;

     proper handling of the errors;

     a report with the requested content and format (PDF);

     timeliness in submitting the assignment in the proper format (names, directory structure, etc.).

    All of the above elements will earn you a maximum of 10 (out of 15) marks. The rest of the marks are

    assigned to two elements:

     Excellence (3 marks - 2 for implementation, 1 for report). The assignment has not only been

    implemented by meeting the minimum requirements but the design has been well thought and a

    proper interaction with the user has been provided (notification of errors, which really help to

    understand what went wrong). For what concerns the report excellence, the report is complete

    and well written with the

    proper graphs and a discussion and analysis of the system implemented

    including advantages and disadvantages of your design choices. You need to explicitly write in

    the Report all

    Excellence elements (point-by-point listing with brief illustration/discussion

    included) in a separate section.

     Creativity (2 marks). Any additional implementation such as a GUI for managing the server or

    other enhancements to the code introducing advanced features (such as processing of user

    requests within a server in scalable, reliable, and efficient manner) will be considered a plus.

    For

    example, using your own implementation of a thread pool (not Java’s) would earn you these

    marks

    . You need to explicitly write in the Report all Creativity elements (point-by-point listing

    with brief illustration/discussion included) in a separate section.

    NOTE 1 (EXTREMELY IMPORTANT): The excellence and the creativity marks (5 marks) cannot

    compensate any lack in the first part (the one that scores up to 10 marks). Please concentrate

    your efforts in getting the first 10 marks done and then proceed with the rest.

    Note 2: Don’t document anything you haven’t implemented in the report. This is misconduct and will

    result in severe penalties.

    Demonstration Schedule and Venue

    You are required to provide a demonstration of the working application and will have the opportunity to

    discuss with the tutors the design and implementation choices made during the demo.

    You are free to develop your system where you are more comfortable (at home, on one pc, on your laptop,

    in the labs...) but keep in mind that the assignment is meant to be a distributed system that works on at

    least two different machines in order to separate the client from the server.

    We will announce the demo date, time, and venue closer to the due date. Each tutor will hold 2-3 demo

    sessions and you will be required to showcase your system in one of the sessions held by the tutor of the

    workshop in which you are enrolled.

    If you need any clarification on the assignment, kindly ask questions during the tutorials or in the LMS

    forum, so that all students benefit from it.

    Note: You need to submit a printed copy of your report during the demonstration.

    Penalties for late submissions of assignments

    Assignments submitted late will be penalized in the following way:

     1 day late: -1 mark

     2 days late: -3 marks (-1 - 2)

     3 days late: -6 marks (-3 - 3)

     4 days late: -10 marks (-6 - 4)

     etc.

    相关文章

      网友评论

          本文标题:墨尔本大学COMP90015课业解析

          本文链接:https://www.haomeiwen.com/subject/adsdectx.html