Triển khai chương trình Server

Một phần của tài liệu LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỖ XE (Trang 35 - 36)

Trước khi khởi động chương trình Server RMI ta phải khởi động trình đăng ký của RMI bằng cách khởi động rmiregistry. Như đã đề cập ở các phần trước rmiregistry là nơi để cho các Client từ xa có thể tham chiếu đến các đối tượng từ xa.

Sau khi thực hiện việc khởi động rmiregistry và trình đăng ký có thể tìm thấy các lớp Stub trong CLASSPATH, nó sẽ tải về các thao tác mã của Server thông qua thuộc tính java.rmi.server.codebase. Thuộc tính này được có được khi ta khởi động Server.

Để khởi động trình đăng ký của java ta sử dụng câu lệnh :

Start rmiregistry

Theo mặc định trình đăng ký sẽ chạy trên cổng 1099, nếu muốn khởi động nó trên một cổng khác ta phải định rõ số cổng tại các tham số port khi khởi động trình đăng ký như sau:

Start rmiregistry 2001

Một khi trình đăng ký đã được khởi động ta có thể khởi động Server RMI của ứng dụng. Trước tiên ta phải chắc chắn đã thiết đặt các biến môi trường để chương trình có thể truy xuất đến các thành phần khác nhau của chương trình thông qua việc thiết đặt thuộc tính CLASSPATH để chỉ ra vị trí các tệp *.class cũng như các thành phần khác khi triển khai ứng dụng.

Cụ thể trong phạm vi chương trình này được thiết đặt như sau :

Khi khởi động Server RMI ta phải chỉ rõ thuộc tính java.rmi.server.codebase, đây chính là nơi các lớp của Server đã được triển khai. Các lớp ParkingServerImpl_Stub và ParkingServerImpl_Skel được sản sinh bằng lệnh rmic của Java như sau :

Rmic ParkingServerImpl

Khi triển khai ứng dụng trên mạng ta sẽ cấu hình Client, Server và trình đăng ký rmiregistry với các thuộc tính như sau :

Thuộc tính java.rmi.server.codebase vị trí URL của codebase, của các lớp gốc từ chương trình Server. Theo URL này thông tin của các lớp phục vụ cho các đối tượng sẽ được gửi đến cho các máy ảo khác sẽ được kèm theo và vì thế nơi gọi có thể nạp chúng xuống. Thuộc tính này phải chỉ ra tên đầy đủ của máy trạm nơi mà chương trình Server định vị.

Trong môi trường mạng các định tính của trạm làm việc không thể dùng các hàm API để đạt được, RMI có một cơ chế riêng để đạt được các định tính của một máy trạm trên mạng. Nếu không thể quyết định nó sẽ rút lui và sử dụng các địa chỉ IP.

Các lớp Stub chỉ được nạp động đến các máy ảo Client khi các lớp này không có sẵn trên trạm cục bộ và khi thuộc tính java.rmi.codebase đã được xác định để định trí của các lớp Stub nó có thể được truy cập qua mạng khi Server đã được khởi động. Một khi Stub đã được nạp nó sẽ không cần nạp lại mỗi khi thêm các tham chiếu đến các đối tượng.

Một phần của tài liệu LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỖ XE (Trang 35 - 36)