Goals
In this assignment, the goal is to get familiar with the RPC (Remote Procedure Call) /RMI (Remote Method Invocation) model for communication among distributed processes. RPC model is at the core of many distributed systems today. For this purpose, the aim in this assignment is to develop and deploy a distributed RPC/RMI service that provides client processes Turkish dictionary operations located at the remote server side.
Tasks
You are asked to design and implement operations of the dictionary service using RC/RMI model (either Java RMI or Sun RPC) for communication between the clients and the server. The clients can request dictionary operations concurrently from the single server. The server must handle incoming client connections and requests, and reply each client eventually. For each connection, server gets the requested operation (such as insert, search, log), and replies the output back to the client. If the client does not receive any response back, it waits for a predefined amount of time (controlled by a timer mechanism) and submits the same operation request again.
The following operations must be provided at the server side:
Insert Word
Client can add a new word to the dictionary at the server. If the submitted word already exists, then a warning message is returned to the client. The client must obey the dictionary format explained in Turkish Dictionary section.
Search Word
Client can query a word from the dictionary server. If the word does not exist then “Not Found” message is returned to client. If the word exists, its description must be provided to the client. (Example: DISTRIBUTE DAĞITMAK {V} where {V} stands for verb.)
Logs
Server must keep log information and when a client requests the logs, they are returned in line by line. The logs are structured as follows; client IP, requested operation (such as insert, search, and log) and the time of operation.
Statistics
Client can query the Turkish dictionary to get some statistics about the dictionary. The statistics command will show how many words in file and also groups the words based on word type.
Whenever a client would like to use the dictionary service, the following steps of interaction are performed.
Turkish Dictionary
With this assignment, you are provided a dictionary (dictionary.txt) where each entry contains English word(s), Turkish meaning and the word type. One example entry is:
ACADEMICIAN AKADEMİ ÜYESİ {N} where {N}
Stands for noun. There are other word types as well. The command line structure must obey the dictionary entry format.
Error Handling
It is expected that, on both the server and the client side, errors are properly managed (by means of exception handling). The errors may include the following:
The service will be tested and validated against all these errors
BEN02 Planning and Presenting a Micro-Enterprise Idea BTEC Level 1/2
Read MoreBTEC Unit 35: Engineering Services Delivery Plan for Sector-Specific Organizations | HND Level 5 Assignment 2
Read MoreTQUK Level 3 Administering Medication and Monitoring Effects in Adult Care Assignment
Read MoreUnit 10: 3D Modelling and Assembly Drawing for Vice – Engineering Design Portfolio BTEC Level 3
Read MoreWhy is it important that you correlate the appropriate information of the patient when they arrive for their appointment?
Read MoreNCFE Level 3 Roles and Responsibilities in Health And Social Care
Read MoreMP3395 Turbocharger Performance Evaluation and System Analysis CW2 Assessment, AY2024-25
Read MoreKey Research Policies and Funding Models at University of Strathclyde
Read MoreCIPD Level 5 Associate Diploma Key Assessment Questions
Read MoreLaw Assignment Questions Critical Legal Analysis & Solutions
Read More