public interface CalculatorService {
int add(int a, int b);
int subtract(int a, int b);
}
public class CalculatorServiceImpl implements CalculatorService {
@Override
public int add(int a, int b) {
return a + b;
}
@Override
public int subtract(int a, int b) {
return a - b;
}
}
# Server configuration
server.host=127.0.0.1
server.port=8080
# Remote service configuration
remote.service.calculator=com.example.CalculatorService
public class ServerApp {
public static void main(String[] args) {
// Load server configuration from properties file
Configuration configuration = ConfigurationFactory.load();
// Create and start the server
Server server = new Server(configuration);
server.start();
}
}
# Client configuration
client.host=127.0.0.1
client.port=8080
public class ClientApp {
public static void main(String[] args) {
// Load client configuration from properties file
Configuration configuration = ConfigurationFactory.load();
// Create and start the client
Client client = new Client(configuration);
client.start();
// Create a proxy for the remote service
CalculatorService calculatorService = client.createProxy(CalculatorService.class);
// Invoke remote methods
int sum = calculatorService.add(2, 3);
int difference = calculatorService.subtract(10, 7);
System.out.println("Sum: " + sum);
System.out.println("Difference: " + difference);
// Shutdown the client
client.stop();
}
}