2.1.1. Khái niệm JADE
JADE (Java Agent DEvelopment Framework) là một framework phần mềm đƣợc cài đặt hoàn toàn bằng ngôn ngữ Java nhằm mục đích đơn giản hóa việc cài đặt các hệ thống đa tác tử. Môi trƣờng JADE gồm có:
Một môi trƣờng thực thi đƣợc cài đặt trên máy để các tác tử có thể làm việc.
Một bộ công cụ cho phép theo quản lý và theo dõi hành vi của các tác tử đang hoạt động.
Thƣ viện lớp cho phép lập trình viên sử dụng (dùng trực tiếp hoặc kế thừa) để phát triển các tác tử.
2.1.2. Kiến trúc nền tảng JADE
Hình 2.1 - Các thành phần kiến trúc chính của JADE
Nền tảng JADE bao gồm các container agent đƣợc phân phối trên mạng, hình 2.1 mô tả các thành phần chính trong kiến trúc nền tảng JADE. Mỗi một thể hiện của môi trƣờng thực thi JADE đƣợc gọi là một Container dùng để chứa các tác tử, tác tử sống trên các container, các container này cung cấp JADE run-time và tất cả các dịch vụ cần thiết cho việc lƣu và chạy các tác tử. Có một container đặc biệt là main container luôn chạy trên một platform và biểu diễn điểm chƣơng trình khởi động của một platform: nó là container đầu tiên khởi động và tất cả các container khác phải
tham gia vào một main container bằng cách đăng kí với main container. Lập trình viên định danh các container bằng cách sử dụng một tên logic; mặc định main container có tên là "Main Container" trong khi các container khác đƣợc đặt tên là "Container-1", "Container-2",...
Nhƣ một điểm khởi động của chƣơng trình, Main Container có các nhiệm vụ đặc biệt sau:
RMA (Remote Management Agent): Hoạt động nhƣ màn hình điều khiển, phục vụ quản lý platform;
Quản lý Container Table (CT), bảng này là đăng ký của các tham chiếu đối tƣợng và địa chỉ vận chuyển của tất cả các node container của platform;
Quản lý bảng mô tả tác tử toàn cục (Global Agent Descriptor Table - GADT), bảng này là đăng ký của tất cả các tác tử hiện tại trong platform, gồm các trạng thái và vị trí của nó.
Tác tử AMS là một tác tử đặc biệt, cung cấp dịch vụ quản lý tác tử và white page.
Tác tử DF (Directory Facilitator) cung cấp dịch vụ trang vàng (Yellow-page) trong platform.
Một truy vấn chung có thể là main container hoặc một trở ngại của hệ thống. trong thực tế điều này không phải là trƣờng hợp khi JADE cung cấp một cache của GADT mà mỗi container quản lý một cách cục bộ. Các thao tác platform, trong trƣờng hợp tổng quát, không bao gồm main container, nhƣng thay vào chỉ cache cục bộ và hai container lƣu giữ tác tử, các tác tử này là đối tƣợng của thao tác (ví dụ: tác tử gửi và nhận của thông điệp). Khi một container phải tìm ra địa chỉ của tác tử nhận thông điệp đƣợc gửi, đầu tiên container tìm kiếm bảng mô tả tác tử cục bộ LADT của nó (Local Agent Descriptor Table). Bởi vì, hệ thống là động (tác tử có thể di chuyển, kết thúc, hoặc tác tử mới có thể xuất hiện, đôi khi hệ thống có thể sử dụng một giá trị cache sinh ra kết quả trong một địa chỉ không hợp lệ. Trong trƣờng hợp này, container nhận một ngoại lệ và buộc phải làm tƣơi cache của nó. Quy ƣớc thay thế bộ nhớ cache là LRU (Least recently used - sử dụng gần đây ít nhất), đƣợc thiết kế để tối ƣu hóa các cuộc trao đổi dài hơn là thỉnh thoảng, các cuộc trao đổi thông điệp đơn giản thực tế ít có trong ứng dụng hệ đa tác tử.
Định danh tác tử đƣợc chứa bên trong một Agent Identifier (AID), bao gồm một tập các slot tuân theo cấu trúc và ngữ nghĩa đƣợc định nghĩa bởi FIPA. Hầu hết thành phần cơ bản của AID là tên của tác tử và địa chỉ của nó. Tên của một tác tử là một định danh duy nhất trong toàn cục đƣợc JADE xây dựng bằng cách nối với một nickname do ngƣời dùng định nghĩa (cũng đƣợc biết đến nhƣ một tên cục bộ đủ để có nghĩa trong giao tiếp bên trong một platform (intra-platform) đối với tên của platform.
Địa chỉ của tác tử là địa chỉ giao vận đƣợc kế thừa từ platform, nơi mỗi địa chỉ platform tƣơng ứng với một giao thức giao vận thông điệp (MTP - Message Transport Protocol) điểm cuối nơi mà các thông điệp FIPA có thể đƣợc gửi và nhận. Lập trình viên tác tử cũng đƣợc cho phép để thêm các địa chỉ giao vận của chính họ vào AID, cho một vài mục đích riêng của ứng dụng.
Khi Main Container khởi động, có hai tác tử đặc biệt đƣợc khởi tạo và chạy bởi JADE, vai trò của chúng nhƣ sau:
1) Tác tử AMS: Hệ thống quản lý Agent (AMS - Agent Management System) là một tác tử giám sát toàn bộ platform. Là điểm liên lạc cho tất cả các tác tử cần tƣơng tác để truy cập white pages của platform cũng nhƣ để quản lý vòng đời của nó. Mọi tác tử đƣợc yêu cầu đăng ký với AMS (thực hiện một cách tự động bởi JADE lúc tác tử bắt đầu khởi tạo) để đạt đƣợc một AID hợp lệ.
2) Tác tử DF: Dịch vụ trang vàng trong JADE (hình 2.2), tuân theo đặc tả quản lý tác tử của FIPA, đƣợc cung cấp bởi một tác tử đặc biệt gọi là DF (Directory Facilitator). Mọi platform theo chuẩn FIPA đều chứa một tác tử DF (tên cục bộ của agent này là df<platform-name>). Một “yellow pages” - trang vàng cho phép tác tử công bố các mô tả của một hoặc nhiều dịch vụ mà nó cung cấp để các tác tử khác có thể dễ dàng tìm ra và khai thác một cách dễ dàng. Hình 2.2 cho thấy các tác tử A1, A2, A3 đăng ký với tác tử DF các dịch vụ mình cung cấp, các tác tử A4, A5 tìm kiếm dựa vào tác tử DF và khai thác dịch vụ từ các tác tử A1, A2, A3.
Hình 2.2 - Dịch vụ trang vàng (Yellow pages service)