Assignment 2: Java RMI Goal: Gain experience in remote objects (using Java RMI). Implement a distributed banking system consisting of a server (Bank) and multiple clients (ATMs). The server manages multiple accounts and provides the following services (after you provided the correct pin for a particular account): -deposit: increase the balance; add money to an account -withdraw: decrease the balance; get money from an account -balance: get the current balance of an account The clients shall access the server via Java RMI. You may use a simple text file to initialize the server (e.g. account number, pin, balance); ignore persistency. Think about the object model to represent the data on the server. It should not be possible to overdraw the account. It is not required to build a GUI. Be aware that multiple clients can modify the same account at the same time. What needs to be done here? What can happen if this is ignored in the implementation? Think about different strategies and summarize them (advantages, disadvantage) in a text file. Implement only one strategy. Is there an easy way to make the connection more secure? How does RMI work? What does the Java compiler/runtime do for you? Deadline: 12.04. --> E-Mail! Subject: [VS] ... Presentation/Discussion: in the PS: 13.04.