JADE9 [23] là một framework phần mềm đuợc cài đặt hoàn toàn bằng ngôn
ngữ Java, nó đơn giản hóa việc thực hiện các hệ đa tác tử thông qua một thành phần trung gian tuân thủ các đặc tả của FIPA10 [23]. Môi trường chạy nền của tác tử11 có thể được phân tán trên nhiều máy và cấu hình có thể được kiểm soát qua một giao diện người dùng từ xa. Cấu hình có thể bị thay đổi tại thời điểm thực thi do các tác tử di chuyển từ máy này đến máy khác. Kiến trúc truyền thông sử dụng truyền thông báo mềm dẻo và hiệu quả, JADE tạo riêng và quản lý hàng đợi các thông báo ACL12 [23] đến cho mỗi tác tử. Các tác tử có thể truy nhập hàng đợi của chúng theo vài chế độ : Chờ (blocking), hỏi vòng (polling), đợi một khoảng thời gian (timeout) và dựa trên so khớp mẫu (pattern matching based). Mô hình truyền thông FIPA đầy đủ đã được cài đặt, các thành phần của nó là riêng biệt và tích hợp đầy đủ: các giao thức tương tác, đóng gói, ACL, các ngôn ngữ nội dung, các sơ đồ mã hóa, các bản thể (ontologies) và các giao thức truyền tải. Cơ chế truyền tải đặc biệt phải phù hợp với mỗi tình huống, trong suốt đối với việc lựa chọn giao thức tốt nhất sẵn có, hiện tại các cơ chế giao thức Java RMI, lắng nghe sự kiện và IIOP được sử dụng nhưng nhiều giao thức khác nữa có thể dễ dàng bổ sung và tích hợp của HTTP đã hoàn thiện. Hầu hết các giao thức tương tác do FIPA định nghĩa đã sẵn có. Bản thể SL và
9 Java Agent DEvelopment Framework
10 Foundation for Intelligent Physical Agents
việc quản lý tác tử đã được cài đặt, hỗ trợ cho các ngôn ngữ nội dung người dùng định nghĩa và các bản thể có thể cài đặt, đăng ký với các tác tử và tự động sử dụng bởi framework.
JADE gồm có các thành phần cơ bản [24]: Một môi trường thực hiện là nơi mà các tác tử có thể tồn tại và hoạt động trên một máy tính trước khi tác tử có thể thi hành trên máy tính đó. Một thư việc các lớp mà các lập trình viên bắt buộc hoặc nên sử dụng để phát triển các tác tử của mình. Một bộ các công cụ đồ họa cho phép quản trị, theo dõi việc kích hoạt và chạy tác tử.
Nền và bộ chứa13 : Mỗi thể hiện chạy của môi trường thực thi JADE gọi là một bộ chứa. Mỗi bộ chứa có thể chứa vài tác tử. Tập các bộ chứa đang hoạt động gọi là nền. Một bộ chứa chính (Main-Container) đặc biệt phải luôn luôn hoạt động trong một nền và tất cả các bộ chứa khác phải đăng ký với nó ngay sau khi khởi động, do đó bộ chứa đầu tiên khởi động trong một nền là bộ chứa chính, các bộ chứa khác chỉ là bộ chứa thường (normal Container). Các bộ chứa thường phải thông báo cho bộ chứa chính biết vị trí của nó gồm hai thông tin : tên máy (host) và số hiệu cổng (port) thông qua việc đăng ký. Nếu có thêm một bộ chứa chính khác được khởi động trên mạng, nó tạo thành một nền khác và các bộ chứa thường mới có thể đăng ký với nó. Hình 2.1 là một ví dụ minh họa cho các khái niệm nền và bộ chứa, có hai nền là Platform1 và Platform2, trong Platform1 có 3 bộ chứa và trong Platform2 có một bộ chứa. Các tác tử JADE được định danh bằng một tên duy nhất, chúng có thể truyền thông trong suốt mà không phải quan tâm đến vị trí thực tế của chúng: cùng một bộ chứa như tác tử A2 và A3 trong hình 2.1, khác bộ chứa nhưng cùng một nền như tác tử A1 và A2 hoặc khác nền như tác tử A4 và A5
Tác tử AMS và DF : Bên cạnh khả năng chấp nhận đăng ký từ các bộchứa khác, bộ chứa chính còn có điểm khác biệt so với các bộ chứa thường là nó
13 containers and platforms
chứa hai tác tử đặc biệt là AMS và DF, hai tác tử này tự động khởi động khi bộ chứa chính được phát động:
- Tác tử AMS cung cấp dịch vụ tên (nó bảo đảm rằng mỗi tác tử trong một nền có một tên duy nhất) và đại diện cho quyền hạn trong một nền (nó có thể tạo/hủy các tác tử trên các bộ chứa ở xa bằng cách yêu cầu AMS14).
- Tác tử DF (Directory Facilitator) cung cấp "dịch vụ các trang vàng" có nghĩa là một tác tử có thể tìm các tác tử khác cung cấp các dịch vụ mà nó cần thông qua tác tử DF.
Hình 2.1. Minh họa các khái niệm nền và bộ chứa