Giải pháp 2 áp dụng mẫu visitor

Một phần của tài liệu LUẬN VĂN:SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN pdf (Trang 30 - 33)

3 Sử Dụng Mobile Agent Để Tích Hợp Thông Tin

3.3.2Giải pháp 2 áp dụng mẫu visitor

Giải pháp này cải tiến của giải pháp 1, phía Server có các agent dịch vụ chạy sẵn, mobile agent từ client chạy sang sẽ tìm kiếm các agent tương ứng với dịch vụ mà mình đang cần, sau đó gửi mã và các thông tin cần thiết để agent bên phía Server kiểm tra và thực hiện xử lý sau đó trả lại kết quả, mobile agent nhận được kết quả có thể tiếp tục di chuyển sang máy khác chứa dữ liệu để tích hợp thông tin cần thiết hoặc quay về client trả kết quả cho người dùng.

Tuy nhiên cơ chế gửi nhận mã giữa mobile agent và agent dịch vụ phải được cài đặt sao cho hệ thống vẫn phải đảm bảo được tính mềm dẻo. Nếu mobile agent chứa thuật toán và gửi trực tiếp cho agent dịch vụ xử lý. như vậy cứ mỗi lần có thêm một yêu cầu mới, phía client lại viết thêm một mobile agent mới, cài đặt lại các quá trình làm việc (tương tác với web/application server, với agent dịch vụ, di chuyển . . . ) sẽ dẫn đến tốn kém về mặt thời gian lẫn công sức. Mặt khác nếu mobile agent gửi mã, thông tin định danh . . . cho agent dịch vụ dẫn đến quá trình giao tiếp giữa 2 agent sẽ phức tạp. Ý tưởng sử dụng mẫu Visitor sẽ gói thuật toán và các thông tin định danh vào các đối tượng visitor, khi các yêu cầu thay đổi chỉ visitor thay đổi, mobile agent không thay đổi mặt khác việc xử lý sẽ dễ dàng hơn.

Về mẫu Visitor Mẫu visitor 3.1 cho phép thêm một phương thức mới trên tập các đối tượng không đồng nhất về kiểu của một cấu trúc mà không cần phải sửa đổi các lớp của các đối tượng bên trong cấu trúc đó.

Áp dụng mẫu visitor vào bài toán hiện tại, với mỗi phương thức là một phép xử lý mới, cấu trúc đối tượng tương ứng với tập các dịch vụ phía server ta có thể thấy khi thêm phép xử lý mới hệ thống vẫn đảm bảo giữ nguyên các dịch vụ tức là đạt được độ mềm dẻo tối đa.

CHƯƠNG3: SỬDỤNGMOBILEAGENTĐỂTÍCHHỢPTHÔNGTIN

Hình 3.1:Mẫu Visitor

Một vài đặc điểm khi sử dụng mẫu Visitor

1. Visitor làm cho việc thêm một phương thức mới trở nên dễ dàng bằng cách thêm một visitor mới. Ngược lại, nếu không sử dụng mẫu này việc mở rộng thêm các chức năng cho các lớp đòi hỏi phải sửa các lớp và định nghĩa một phương thức mới.

2. Một Visitor tập hợp các phương thức liên quan và tách dời các phương thức không liên quan đến nhau. Các phương thức liên quan tới nhau không mở rộng ra trên các lớp định nghĩa cấu trúc đối tượng, mà điều này được thực hiện trong visitor. Tập các phương thức không liên quan được phân chia ra các lớp con (subclass) visitor. Điều này làm đơn giản hóa việc định nghĩa cả các lớp thành phần (các lớp Node) và thuật toán được định nghĩa trong các lớp visitor. Một vài cấu trúc dữ liệu thuật toán đặc biệt có thể được ẩn trong visitor.

3. Việc thêm lớp mới ConcreteElement là khó khăn. mẫu Visitor làm cho khó có thể thêm một lớp con (subclass) của mỗi Element trong object structure. Mỗi lớp ConcreteElement mới làm tăng thêm một phương thức ảo trong lớp Visitor và một cài đặt tương ứng trong mọi lớp ConcreteElement. Dựa vào

4. Biểu đồ lớp hình 3.1 ta có thể thấy nếu thêm một lớp ConcreteElementC cài kế thừa lớp Element thì trong lớp Visitor phải thêm hàm ảo VisitConcreteEle-

CHƯƠNG3: SỬDỤNGMOBILEAGENTĐỂTÍCHHỢPTHÔNGTIN

mentC(ConcreteElementC) tương ứng như với ConcreteElementA và ConcreteEle- mentB, khi đó các lớp ConcreteVisitor1 và ConcreteVisitor2 phải cài đặt phương thức VisitConcreteElementC(ConcreteElementC). Đôi khi có thể cài đặt mặc định phương thức trong Visitor và tất cả các lớp ConcreteVisitor chỉ việc kế thừa, nhưng điều đó giống như một ngoại lệ hơn là quy luật

Do vậy mấu chốt để áp dụng mẫu Visitor là hoặc hầu như phải thay đổi thuật toán áp dụng trên một object structure hoặc là thay đổi các lớp của các đối tượng tạo nên cấu trúc đó. Cấu trúc cây của lớp Visitor khó có thể bảo toàn khi có lớp mới ConcreteElement được thêm vào một cách thường xuyên. Trong các trường hợp này, sẽ dễ hơn nếu chỉ định nghĩa các phương thức trên các lớp tạo nên cấu trúc. Nếu cấu trúc lớp Element là cố định, bạn có thể thêm một cách liên tục các phương thức hoặc thay đổi thuật toán, khi đó mẫu Visitor sẽ giúp bạn quản lý sự thay đổi.

Áp dụng mẫu Visitor Dựa vào những điểm mạnh và hạn chế của mẫu Visitor, hình 3.2 cải tiến mẫu visitor để áp dụng vào bài toán hiện tại. Mô hình mới đã tách bạch Service và Visitor với Agent. Đồng thời cũng đáp ứng được yêu cầu của bài toán.

Hình 3.2:Cải tiến mẫu Visitor

CHƯƠNG3: SỬDỤNGMOBILEAGENTĐỂTÍCHHỢPTHÔNGTIN

chủ chứa dữ liệu và cài các agent quản lý chạy trên nó. Client thực chất là một máy chủ phục vụ người dùng (có thể là một web server hoặc application server) nhưng đóng vai trò là Client đối với máy chủ dữ liệu, Client được cài đặt sẵn các mobile agent để đợi yêu cầu.

Trong bài toán này, các mobile agent sẽ trao đổi với các agent dịch vụ bằng các đối tượng Visitor, đối tượng visitor có nhiều kiểu, mỗi kiểu được cài đặt thuật toán khác nhau từ phía client, mobile agent mang theo loại visitor nào là phụ thuộc vào yêu cầu, visitor này được gửi tới agent quản lý bên phía máy chủ dữ liệu. Ngoài thuật toán, visitor mang theo thông tin xác thực để khi mobile agent gửi visitor cho agent dịch vụ, agent dịch vụ sẽ kiểm tra thông tin xem có quyền nào, có thể quyền lấy toàn bộ thông tin hoặc quyền được xử lý những thông tin nhưng chỉ nhận kết quả tính toán chứ không được lấy thông tin đó.

Hình 3.3:Mô hình sử dụng mobile agent tích hợp thông tin áp dụng mẫu Visitor

Một phần của tài liệu LUẬN VĂN:SỬ DỤNG MOBILE AGENT ĐỂ TÍCH HỢP THÔNG TIN pdf (Trang 30 - 33)