XXCác chức năng của hệthống

Một phần của tài liệu Tìm hiểu cơ chế RMI của Java và xây dựng một môi trường hỗ trợ tính toán song song và phân bố (Trang 54 - 56)

Trong các phần trên, chúng ta đã xem xét qua nguyên tắc hoạt động của hệ thống, hoạt động của từng phần tử cụ thể trong hệ thống. Trong phần này chúng ta sẽ xét vào các chức năng chính yếu được cung cấp bởi hệ thống, nhưng chủ yếu ở đây là chúng ta xét đến các chức năng của Agent và Server.

Hệ thống cần được thiết kế ra các chức năng để từ đó ta có thể dựa vào đó mà hiện thực hệ thống. Phần sau đây là phần liệt kê các chức năng được cung cấp bởi hệ thống :

♦Chức năng giải quyết các vấn đề về Fault-Tolerance, Bottle-Neck, Load-Banlancing của hệ thống.

♦Chức năng mapping : hệ thống sẽ thực hiện phân chia một khối lượng lớn các công việc thành các thành phần nhỏ hơn, và yêu cầu cho các Server machine làm từng công việc đó.

♦Thêm, sửa, xóa, một dịch vụ : đối với chức năng này thì người phát triển hệ thống phải cung cấp đầy đủ các thông tin cần thiết như yêu cầu của hệ thống. Nhưng ở đây chúng ta cần phân biệt hai loại của dịch vụ. Một loại dịch vụ sau khi thực thi xong sẽ tồn tại lại trong hệ thống để mọi Client khác có thể sử dụng và loại dịch vụ sau khi thực thi xong sẽ biến mất.

Với loại tồn tại lâu dài trong hệ thống thì Service này phải là một Remote Object và nó phải là một hiện thực của một Interface do người phát triển hệ thống cung cấp tên là : Lvtn.service.interfaces.ServiceInterface. Và một điều cần chú ý là dịch vụ loại này sẽ tồn tại lại trong hệ thống cho các Client khác sử dụng, do đó nó phải được kiểm tra trước khi được thêm vào hệ thống, vì vậy dịch vụ loại này phải được người Admin thêm vào.

• Thêm, sửa một dịch vụ : các thông tin cần cung cấp bao gồm Bytecode của Class chứa mã lệnh thực thi dịch vụ, bytecode của Stub Class và Skeleton Class, bytecode của Sep Class (Class Implement của Lvtn.agent.separator.Segment Interface), tên dịch vụ, tên của Bytecode File, password cho dịch vụ đó. Ngoài ra, đối với việc sửa (cập nhật) một dịch vụ cần cung cấp thêm Password cũ của dịch vụ đó để khẳng định quyền sửa dịch vụ đó.

• Xóa một dịch vụ : các thông tin cần thiết bao gồm : tên dịch vụ, Password dịch vụ cần xóa.

♦Thực thi một dịch vụ do Client gửi lên : đây là một chức năng ứng dụng ưu điểm của RMI, nghĩa là hệ thống sẽ thực thi hộ Client một dịch vụ do Client này gửi lên. Với loại dịch vụ này thì nó thuộc loại sẽ biến mất ngay sau khi thực thi như đã đề cập ở trên. Với loại hình dịch vụ này, do nó có tính chất là một dịch vụ tức thời nên hệ thống cho phép Client trực tiếp gửi lên cho Agent để Agent bố trí JVM thực thi dịch vụ. Về mặt thực thi, thì dịch vụ này phải là một Object của Class mà Class này phải

Implement một Interface tên là Lvtn.service.interfaces.Task, nghĩa là nó phải có hàm execute(). Và để thực thi dịch vụ thì hệ thống sẽ gọi hàm execute của nó, nói khác đi thì hàm execute sẽ là điểm nhập của quá trình thực thi dịch vụ.

♦Chức năng Activate một dịch vụ hay shutdown tạm thời các dịch vụ của hệ thống : chức năng này cung cấp cho người quản trị hệ thống nhằm giúp cho người quản trị hệ thống điều hành hệ thống hoạt động với hiệu quả của hệ thống có thể kiểm soát được.

♦Cung cấp giúp đỡ cho một Service trong hệ thống : chức năng này chỉ được cung cấp cho chương trình Admin, chức năng này nhằm mục đích cung cấp các thông tin cần thiết về cách sử dụng một Service của hệ thống. Do đó, chức năng này sẽ chỉ cung cấp cho Admin, người quản trị hệ thống.

♦Thêm, xóa một User của hệ thống : chức năng này là chức năng của Agent chỉ cung cấp cho chương trình Admin, nó giúp người quản trị hệ thống có thể thêm hay xóa một User của hệ thống. Muốn thêm hay xóa một User thì đơn giản chỉ là việc tạo ra một Object thuộc class UserInfor, điền vào đó các thông tin cần thiết, gọi hàm tương ứng và truyền Object này như một tham số.

♦Sửa đổi Password cho một User của hệ thống : chức năng này được cung cấp cho Admin nhằm làm cho Admin có thể giúp User thay đổi Password trong trường hợp User đánh mất Password của mình.

♦Disconnect một User đang kết nối vào hệ thống : chức năng này nhằm cung cấp cho Administrator khả năng loại bỏ các User đang kết nối vào hệ thống với mục đích phá hoại hệ thống.

♦Gỡ bỏ một Server Machine ra khỏi tầm kiểm soát của một hệ thống con, nghĩa là ra khỏi tầm kiểm soát của Agent đang quản lý nó.

♦Chức năng tự động thêm vào một Server : chức năng này là của Agent cung cấp cho chương trình Server. Với chức năng này khi Server được Start lên tại một host nào đó, nó sẽ dùng chức năng này để kêu gọi Agent cho phép nó gia nhập vào hệ thống con mà Agent đó đang quản lý. Để hiện thực chức năng này Agent dùng hàm getClientHost() của Class UnicastRemoteObject do Java cung cấp để có địa chỉ Server, và Server sẽ dùng địa chỉ Agent nhập vào từ File Config để tìm Agent.

♦Chức năng tự động lấy thông tin của một Server khi start lên của Agent : với chức năng này Agent sẽ dựa vào dữ liệu từ File Database để tìm kiếm Server để lấy được thông tin từ Server.

♦Chức năng cập nhật hệ thống sau một khoảng thời gian nào đó : chức năng này do Agent thực hiện một cách tự động sau một khoảng thời gian thích hợp do người Admin nhập vào cho hệ thống.

♦Thống kê các thông tin của hệ thống : với chức năng này, Agent sẽ phải được cập nhật lại mỗi khi nhu cầu của người quản trị hệ thống thay đổi. Bởi vì với chức năng này, hệ thống sẽ cung cấp các thông tin cho người quản trị hệ thống do đó, nó sẽ tùy

thuộc vào nhu cầu của người quản trị hệ thống tại thời điểm hiện tại. Trong hệ thống đang thiết kế này, các thông tin được cung cấp bao gồm :

• Giúp đỡ cho một Service đang tồn tại trong hệ thống.

• Cung cấp toàn bộ tên của các Service đang tồn tại trong hệ thống. • Cung cấp toàn bộ tên của các User của hệ thống.

• Cung cấp tên của các User đang kết nối vào hệ thống.

• Cung cấp toàn bộ tên các Server đang tồn tại trong hệ thống và toàn bộ tên các Service trên Server đó.

• Cung cấp tên của các Agent đang kết nối với Agent hiện hành.

Một phần của tài liệu Tìm hiểu cơ chế RMI của Java và xây dựng một môi trường hỗ trợ tính toán song song và phân bố (Trang 54 - 56)