Trong hệ thống, mỗi một Service đều có một biến gọi là biến Attribute, biến này có ý nghĩa là một cờ để cho biết Admin có được sửa đổi hay xóa dịch vụ này không? Vì trong hệ thống thì lúc nào cũng cần có một số các dịch vụ là nền và một số dịch vụ đặt biệt mà người sử dụng hệ thống cũng như người quản trị hệ thống không được thay đổi hay xóa bỏ nó. Ví dụ như Server Remote Object là một dịch vụ đặt biệt mà User và Admin không được thay đổi nếu nó đang chạy.
RMIR
egistr
y
Server Server Java Virtual Machine
Service A Service B Service C Ne two rk Service A Service B Service C
Vì vậy trong khi hiện thực một dịch vụ mới ta cũng cần phải hiện thực một hàm là getAttribute để trả về thuộc tính của Service để có thể được dùng vào lúc hệ thống cần xóa một dịch vụ.
Hơn thế nữa, theo lý luận thiết kế hệ thống thì có thể có nhiều Admin tham gia quản lý do có nhiều Agent trong hệ thống, do đó khi phát triển dịch vụ thì mỗi dịch vụ của chúng ta cần phải cómột Password để việc xóa sửa của Admin này không ảnh hưởng đến hoạt động của nhiệm vụ quản lý của Admin khác. Do đó, khi hiện thực chúng ta phải hiện thực hai hàm đó là setPassword và getPassword. Hai hàm này có ý nghĩa là các công cụ để cài đặt Password và lấy Password của một Service.
Hình 69.Cơ chế bảo vệ một Service
Một điều khác cần chú ý là tên của một dịch vụ khi được thêm vào hệ thống thì tên đó không được có dấu “:”.
Và để Server có thể tạo ra một Object mới từ bytecode mà người phát triển dịch vụ cung cấp thì bytecode đó phải tuân theo một chuẩn nào đó. Với hệ thống này thì để có được bytecode đúng chuẩn đó thì đòi hỏi người phát triển dịch vụ phải implement một interface tên là ServiceInterface. Ngoài ra, bytecode đó còn phải là bytecode của một Class nằm trong package tên là Lvtn.service.implement.