There is an application that realizes the functionalities of a distributed appointment
calendar. I provide it as a zip file.
The backend has one server instance. Your job is to extend this single instance to a
multi-layer architecture described in the following section called Target state.
Used Technologies: Java RMI, Java Swing, MySQL.
“Client” and “GUI” packages should not be changed.
I expect your project to contain two important parts: Root Server and Child Servers.
Server side structure:
When the application is initiated, your code creates one Root and two Child servers.
The number of Child Servers grows by demand. Note that the structure of the System
must be a binary tree. Your expansion of the current code must have the structure
shown in image (Refer to the "[login to view URL]").
What I expect as a binary tree is:
● N-layer architecture: the first layer contains 2 Child Servers, the second layer has
4 Child Servers, the third layer contains 8 Child Servers, the fourth layer includes
16 child servers, and so on.
● Each Child Server has its separate database containing three tables. The tables
are User, News, and appointment. This database contains only the data of its
1. If the user is new in the System, it will connect to the Root Server for the first
time, and depending on the traffic the Root Server assigns it to a Child Server.
The root server keeps a record that has the information of each client and the
child server it is connected to. For example Root Server knows that client A is
kept on child server 3.
2. The first 20 clients will be handled by the two child servers of the first layer (10
clients per server). When the number of clients is more than 20, the second layer
is created (by Root Server). The second layer has the capacity to serve 40
clients (10 clients per child server). If the number of clients is more than 60, the
third layer with a capacity of 80 clients is created (by Root Server). Your code
should implement this logic and account for the increase in the number of clients
by creating extra layers and child servers.
3. Your code must be able to search for a specific client in the binary tree. For
example, user X (on the main right branch, layer 3) wants to arrange an
appointment with user Y (on the main left branch, layer 5). This search method
serves as a mechanism to send the invitation (calendar app) from one user to
another user in different layers of the structure.
4. If one of the child servers fails, the clients' data on that server and data on its
Child Servers should be recoverable. Your code contains a backup strategy or
algorithm for recovering the data. (Could be discussed)
1. The load balancing mechanism should be done as described.
2. It is important to describe the search method, how an invitation is sent from
server A, where user A exists, to server B, where user B exists.
3. If a server fails that has additional hierarchy levels downwards, there must be a
mechanism to recover its data.
4. The code must be clean (well-commented and according to proper naming
Bu iş için 9 freelancer ortalamada €197 teklif veriyor
Hello? How are you? Thanks for posting this job. I am a Senior Java developer with 8+ years experience in JavaFX and Java Swing. I have been doing this kind of Java projects many times. Please let me know. Best Regards
This is token bid, I have good experience in Java and appointment calendar. Look forward and implement every step of check list. You may pay diligent amount based on your budget and my amount of work Trac
Dear Client. Thank you for your posting. I've just read your description and guarantee 100% success on your job. Let's discuss about budget and deadline on private chat. Looking forward to hearing from you soon.