Hình 8: Vòng đời của JADE Agent

Một phần của tài liệu đồ án công nghệ thông tin Xây dựng mô hình hệ thống đa agent BKAS và xây dựng hệ thống hỗ trợ chuẩn đoán bệnh dưa trên mô hình BKAS. (Trang 26)

trong vòng đời agent theo đặc tả của FIPA. JADE đưa ra một vài hằng số thể hiện các trạng thái của agent bao gồm:

1. AP_INITIATED: Agent được tạo nhưng chưa được đăng ký với AMS, chưa có tên hoặc chưa có địa chỉ và không thể thực hiện giao tiếp với các agent khác.

2. AP_ACTIVE: Agent đã được đăng ký với AMS, có tên, địa chỉ và có thể tiếp cận toàn bộ các đặc tính JADE.

3. AP_SUSPENDED: Agent bị ngừng. Luồng bên trong của nó bị đình chỉ và không có hành vi nào đang được thực hiện.

4. AP_WAITING: Agent bị ngăn cản, chờ một cái gì đó. Luồng bên trong của nó trong trạng thái ngủ và sẽ được đánh thức khi một số điều kiện được thoả mãn

5. AP_DELETED: Agent xem như đã chết. Luồng trong đã kết thúc và agent không còn được đăng ký với AMS

6. AP_TRANSIT: Một mobile agent ở vào trạng thái này trong khi nó đang di chuyển đến một vị trí mới.

7. AP_COPY: Trạng thái này được sử dụng bên trong thông qua JADE cho agent đang được sao lưu.

8. AP_GONE: Trạng thái này được sử dụng bên trong JADE khi một mobile Agent đã chuyển đến một vị trị mới và có một trạng thái ổn định.

Ngoài ra, lớp agent cung cấp các phương thức public để thực hiện sự chuyển tiếp giữa các trạng thái. Các phương thức đều có dạng doXXX(). Ví dụ: phương thức doWait() đặt agent vào trạng thái AP_WAITING từ trạng thái AP_ACTIVE, doSuspend() đặt agent vào trạng thái AP_SUSPENDED từ trạng thái AP_ACTIVE hay AP_WAITING state, ...

Lưu ý rằng một agent chỉ được phép thực hiện các hành vi của nó khi nó ở trạng thái AP_ACTIVE . Để ý rằng nếu một số hành vi gọi phương thức doWait() thì toàn bộ agent và các hoạt động của nó bị ngăn cản và không thể gọi hành vi. Thay vào đó phương thức block() trở thành một phần của lớp hành vi để cho phép đình chỉ một hành vi agent riêng lẻ.

JADE quản lý việc sinh ra một agent mới theo những bước sau: agent contructor được thực hiện, agent được gán một AID, nó được đăng ký với AMS, được đặt trong trạng thái AP_ACTIVE, và cuối cùng phương thức setup() được thực hiện. Theo như đặc tả FIPA, một AID có những thuộc tính sau:

• Một tên duy nhất: theo mặc định, JADE kết hợp tên cục bộ (local name) và một nhận dạng platform agent để sinh ra tên.

• Một tập các địa chỉ agent. Mỗi Agent kế thừa các địa chỉ truyền tải agent platform của nó.

• Một tập các dịch vụ trang trắng với những agent đã được đăng ký. Phương thức setup() chứa một số hoạt động của agent. Người lập trình phải thực hiện phương thức setup() để khởi tạo agent. Khi phương thức setup() được thực hiện, agent đã được đăng ký với AMS và trạng thái của nó là AP_ACTIVE. Người lập trình sẽ sử dụng thủ tục khởi tạo này để:

• Thay đổi dữ liệu đã đăng ký với AMS (tuỳ chọn)

• Mô tả về agent và các dịch vụ được cung cấp của nó, nếu cần thiết đăng ký agent với một hay một số domain (tuỳ chọn).

• Thêm một số nhiệm vụ cho hàng đợi các nhiệm vụ bằng phương thức addBehaviour() (bắt buộc). Những hành vi này được lên lịch ngay khi phương thức setup() kết thúc.

Phương thức setup() sẽ bổ xung ít nhất một hành vi cho Agent. JADE sẽ tự động thực hiện hành vi đầu tiên trong hàng đợi và sau đó chuyển đến các hành vi khác trong hàng đợi sử dụng một lịch biểu round-robin non- preemptive.

Phương thức addBehaviour(Behaviour) và removeBehaviour(Behaviour) của lớp Agent có thể được sử dụng để quản lý hàng đợi các nhiệm vụ

Phương thức Agent.doDelete() để ngừng các hoạt động của agent.

Phương thức Agent.takeDown() được thực hiện khi Agent đi đến trạng thái AP_DELETED và nó sẽ được huỷ bỏ. Phương thức takeDown() có thể được ghi đè bởi người lập trình để dọn sạch tài nguyên. Khi phương thức này được thực hiện Agent vẫn được đăng ký với AMS và do đó vẫn có thể gửi thông điệp tới các agent khác, nhưng sau khi phương thức này hoàn thành agent sẽ bị huỷ đăng ký và luồng của nó bị huỷ.

1.4 Kết luận

Như trình bày trên, công nghệ phần mềm hướng agent đang có những bước phát triển mạnh mẽ. Phần mềm xõy dựng trên hệ thống đa agent có ưu điểm hơn các cách tiếp cận khác bởi tớnh mềm dẻo trong kiến trúc, khả năng mở rộng linh hoạt. Chớnh vì vậy viện bảo trì và năng cấp phần mềm trở nên đơn giản và tiết kiệm hơn nhiều.

Chớnh vì xu hướng phát triển nhanh chóng như vậy, chúng ta cần phải có hướng tiếp cận hợp lý và hiệu quả trọng việc nắm bắt công nghệ và áp dụng thực tế. Framework jade cung cấp cho ta thư viện cài đặt agent và môi trường khá mạnh để chạy agent. Công việc của chúng ta chỉ cũn là xõy dựng một mô hình hệ thống đa agent hợp lý cho mọi hệ thống hướng agent.

GIỚI THIỆU CHUNG VỀ BKAS.

1.5 Mục tiêu xây dựng hệ BKAS

Như đã trình bày trên, Agent có những ưu điểm nổi trội hơn hẳn những đối tượng hay component thường, đó là khả năng tự trị, độc lập, đặc biệt là khả năng lưu động(di động). Song điểm mạnh nhất của phương pháp lập trình hướng Agent không phải ở khả năng của các cá thể Agent riêng lẻ, người ta thường chú ý đến khả năng giao tiếp, liên kết và phối hợp giữa các cá thể Agent. Nhiều Agent có khả năng giao tiếp qua lại sẽ tạo ra một hệ thống Agent mềm dẻo, có khả năng hỗ trợ lẫn nhau thực hiện các công việc lớn mà một Agent đơn lẻ khó có thể thực hiện. Hệ thống này được gọi là hệ đa Agent, MAS (MutilAgent System).

Mục tiêu xõy dựng hệ BKAS thành một framework cho hệ đa agent phần mềm, một cộng đồng agent. Trong công đồng agent này, mỗi Agent có thể được phát triển trên các ngôn ngữ, công cụ khác nhau, nhưng chúng được cung cấp khả năng giao tiếp qua lại. í tưởng cơ bản của BKAS là đưa ra phương pháp kết nối các ứng dụng (các hệ thống) dựa agent hoạt động độc lập trên một hệ phõn tán. Dưới đõy chúng tôi xin trình bày một số mục đích của mô hình BKAS dưới hai góc độ: liên kết và hợp tác, giao tiếp với người xử

dụng.

1.5.1 Liên kết và hợp tác (adsbygoogle = window.adsbygoogle || []).push({});

Liên kêt thể hiện khả năng của các thành phần phần mềm (hay Agent) phõn tán có giao tiếp qua lại với nhau. Tại nhiều framework cần phải cung cấp cơ chế liên kết giữa các lớp, các mức khác nhau. Trong framework hướng Agent, việc liên kết giữa các Agent trong cộng đồng được coi là một vấn đề quan trọng và phức tạp. Mỗi Agent đều có khả năng tự trị và đặc trưng riêng mang tớnh chất cá thể, nên cần sự liên kết mềm dẻo trong các cộng đồng agent. Hợp tác nói đến một cơ chế mà trên cơ sở đó các agent giao tiếp với nhau, cùng làm việc để thực hiện một công việc (một số công việc). Trong khớa cạnh này, framework BKAS có khả năng:

 Cung cấp khả năng kết hợp linh hoạt, mềm dẻo giữa các cộng đồng thành phần cấp dịch vụ (ở đõy là các Agents) độc lập trong cả quá trình xõy dựng ứng dụng cũng như khi triển khai thực tế. Các Agents khi đã dựa trên một ngôn ngữ giao tiếp và một nền tảng ontology cần thiết cho một giao tiếp hiệu quả, thì có khả năng tham gia vào một cộng đồng agent, trong các hoạt động phối hợp khác nhau, mà không đòi hỏi quá nhiều tri thức về tớnh chất đặc điểm của các agent khác. Các agent cùng với bản sao của chúng hoặc các agent có khả năng tương đương có thể cùng tồn tại trong một cộng đồng, như vậy có thể tạo ra đa liên kết giữa các cộng đồng trong cùng một hệ thống.

 Cung cấp cấu trúc liên kết hợp tác mềm dẻo giữa các thành viên trong một cộng đồng agent. Framework này cho phép xõy dựng những tương tác mẫu đa dạng giữa các agent với chi phí nhỏ, không phụ thuộc vào độ phức tạp cũng như cấu trúc của từng agent trong tương tác. Như vậy việc cung cấp dịch vụ độc lập với cấu hình của các agent trong hệ thống.

 Có một số yêu cầu trong cấu trúc của các cá thể agent. Các hướng tiếp cận khác xõy dựng hệ đa agent đòi hỏi các cá thể agent phải đáp ứng một số yêu cầu khác nhau. Ví dụ, KQML (Knowledge Query and Manipulation Language) là ngôn ngữ giao tiếp gần với ngôn

ngữ tự nhiên, thể hiện trong nội dung của thông điệp, nên chỉ cần một số yêu cầu kiến trúc từng agent cá thể. Mặt khác, mô hình kiến trúc agent có khả năng suy luận BDI (Belief – Desire – Intention) lại yêu cầu nhiều hơn các đòi hỏi khắt khe, bởi vì nó chỉ xõy dựng một hệ ngôn ngữ giả tự nhiên. BKAS nằm trong khoảng giữa hai giới hạn trên, mục tiêu của chúng tôi là cung cấp một tập các hành động liên kết và tương tác đa dạng, mà không có hạn chế với bất kỳ công nghệ nào đã được định nghĩa ở mức dưới.

1.5.2 Giao tiếp với người sử dụng

Hệ thống gộp bởi nhiều thành phần phõn tán, cùng với cấu hình của các thành phần, yêu cầu việc thao tác trên giao diện người dùng phải được:

 Cung cấp các cơ sở khái niệm hoá giao tiếp với các thành phần phõn tán dựa trên ngôn ngữ tự nhiên. Hệ thống có thể thực thi các tác vụ phức tạp thông qua một tập các agent, song người sử dụng không cần biết điều này, họ cần có khả năng mô tả yêu cầu mà không cần hiểu chi tiết về các agent trong hệ thống. Với các công nghệ nhận dạng tiếng nói, chữ viết cũng như ngôn ngữ tự nhiờn đang được hoàn thiện dần, một kiến trúc agent cần phải được chuẩn bị cho các mẫu nhập yêu cầu này đóng vai trò lớn hơn trong việc sử lý tác vụ của cộng đồng agent.

 Coi người sử dụng như thành viên đặc biệt trong công đồng agent. Bằng việc cung cấp đặc tả tác vụ trong agent phần mềm, và khả năng tái sử dụng các chuyển đổi giữa mức đặc tả tác vụ và yêu cầu người dùng, nó có thể tạo ra các liên kết kết hợp chặt chẽ giữa agent và người sử dụng(được coi như một dạng agent của cộng đồng agent).

 Hỗ trợ việc cộng tác giữa agent và người sử dụng( thực hiện đồng thời trên hệ thống dữ liệu chia sẻ và các xử lý tài nguyên chung)

1.6 Khái niệm - cấu trúc mô hình BKAS

1.6.1 Khái niệm

BKAS viết tắt từ cụm Bach Khoa Agent System, là một mô hình kiến

trúc, một framework mang tớnh mở cho hệ liên (hay đa) Agent mà trên đó một cộng đồng các Agent phõn mềm (Software Agent) được phát triển trên nhiều ngôn ngữ, nhiều công cụ khác nhau, chạy trên các máy phõn tán có thể cộng tác với nhau theo các nhiệm vụ đã được xác định cụ thể cho từng Agent

Ý tưởng cơ bản và bao trùm của BKAS là sự uỷ quyền (delegated). Sự uỷ quyền được thể hiện ở điểm là thay vì các agent trong hệ thống phải khai

báo và mã hoá một cách cứng nhắc (hard-code) các khả năng của mình cũng như các tương tác với các agent khác trong hệ thống, các agent có thể mô tả các khả năng, các tương tác của mình và khai báo nó với một agent đặc biệt trong hệ thống là Facilitator agent. Facilitator sẽ phối hợp cộng đồng agent để thực hiện các công việc, cung cấp các dịch vụ như cơ chế song song, xử lý lỗi và phát hiện xung đột mà mỗi client agent không phải tự lo về những thứ đó.

1.6.2 Mô hình

Hình 9: Mô hình cấu trúc của BKAS.

Một phần của tài liệu đồ án công nghệ thông tin Xây dựng mô hình hệ thống đa agent BKAS và xây dựng hệ thống hỗ trợ chuẩn đoán bệnh dưa trên mô hình BKAS. (Trang 26)