Vậy hiện giờ client của bạn lấy dữ liệu ở đâu để hiển thị? Bạn cần cho biết rõ hơn client của bạn có thể làm được gì thì tôi mới có thể trả lời chính xác.
Vì không biết cụ thể client của bạn có thể làm gì, tôi sẽ trả lời dựa trên giả thuyết đơn giản nhất là client của bạn có khả năng đọc dữ liệu từ file trên máy mà nó đang chạy để hiển thị. Trong trường hợp đó, bạn có thể làm như sau:
- Phía server, bạn sẽ tạo ra Web Service hay các REST APIs để đọc dữ liệu của server. Client sẽ giao tiếp với Server qua các API hay service này.
- Phía client, bạn sẽ tạo ra các lớp adapter để gọi Web Service hay REST API và nhận dữ liệu trả về từ các cuộc gọi này, sau đó ghi vào file cho client đọc.
Nếu cần gởi dữ liệu từ client cho server thì bạn cũng có thể sử dụng Web Service hay REST API.
Định dạng dữ liệu được trao đổi giữa client và server có thể theo định dạng XML hay JSON là các định dạng phổ biến hiện nay.
Cách này có ưu điểm là bạn sẽ không phải sửa đổi nhiều đến mã nguồn hiện tại nhưng cho phép ứng dụng của bạn trao đổi dữ liệu qua network và có thể được viết bằng nhiều ngôn ngữ khác nhau kể cả khi ứng dụng hiện nay của bạn đang dùng Java.
RMI là chuẩn riêng của Java để gọi method từ xa (trước đó nữa là CORBA). Vì vậy, ngày nay nó không còn được sử dụng nhiều mà được phát triển trở thành Web Service hay REST API là các chuẩn độc lập với ngôn ngữ và hiệu quả hơn. Còn nếu muốn đi xa hơn nữa thì bạn có thể nghiên cứu sử dụng gRPC hay GraphQL.
Bạn có thể dễ dàng tìm ra các hướng dẫn để tạo ra Web Service hoặc REST API với Java, dưới đây là một vài Web site tôi tìm ngẫu nhiên với các từ khóa Java Web Service và Java REST API tutorial: