Môi trường phát triển tác tử di động

Một phần của tài liệu Điện toán đám mây Tác tử phần mềm hướng tới dịch vụ điện toán thông minh (Trang 36)

Chương 3 TÁC TỬ DI ĐỘNG (MOBI AGENT) VÀ MÔI TRƯỜNG PHÁT TRIỂN TÁC TỬ DI ĐỘNG

3.5Môi trường phát triển tác tử di động

Stuttgart (Đức), Telescript của General Magic, JADE của Telecom Italia Lab, Concordia của Mitsubishi Electric Lab, … mỗi hệ thống đều được sử dụng cho các mục đích riêng, trong các lĩnh vực ứng dụng khác nhau. Đa số các hệ tác tử di độngs sử dụng Java để hỗ trợ phát triển ứng dụng nhưng mỗi hệ thống có đặc thù riêng của nó.

3.5.1 Aglet

Aglets Workbench được xây dựng và phát triển bởi D.B.Lange và IBM Tokyo Research Laboratory. Aglets Workbench bao gồm: bộ công cụ phát triển aglets (ASDK) và platform để các aglet thi hành trên đó. Hiện nay bộ Aglets Software Development Kit (ASDK) do IBM phát triển đã dừng lại ở phiên bản 1.1beta3 trên nền JDK1.1. Phiên bảnmới nhất của ASDK là 2.0.2 do SourceForge phát triển trên nền JDK1.3.

Aglets là một hệ thống Java mobile agent hỗ trợcác khái niệm thi hành tự trị và định tuyến động trên lộ trình của nó. Có thể xem aglets như là một khái quát hóa và mở rộng của applet và servlet. Aglet server là chương trình cung cấp một môi trường thi hành và một máy ảo Java cho aglet hoạt động. Ngoài ra, Aglet server cũng sử dụng một trình quản lý để tiếp nhận và kiểm soát aglet một cách an toàn.

Các thành phần cơ bản của Aglets

- Aglet: là một đối tượng Java, có khả năng di chuyểnđến các host trên mạng. - Proxy: Là đối tượng đại diện cho Aglet. Có nhiệm vụbảo vệ Aglet tránh khỏi các truy cập trực tiếp đến các phương thức public. Ngoài ra, nó có thể ẩn đi vị trí thực của Aglet.

- Context: Là workplace của Aglet, cung cấp các dịch vụ để duy trì và quản lý các hoạt động của các Aglet. Bảo vệ host tránh khỏi các aglet độc hại. - Message: Là đối tượng dùng để trao đổi thông tin giữa các aglet. Aglet trao

đổi thông tin với nhau bằng cách truyền các thông điệp.các thông điệp này có thể được truyền đồng bộ hoặc không đồng bộ.

Lớp ibm.com.aglet.Aglet cung cấp các chức năng cơ bản cho một đối tượng mobile và mọi aglet phải là thể hiện hoặc lớp con của nó. Để sử dụng một aglet, trước hết phải tạo ra thể hiện (Instantiated) của nó. Có hai cách để làm điều này: Cách 1: tạo một aglet hoàn toàn mới từ định nghĩa lớp bằng cách gọi hàm

AgletContext.createAglet(URL Codebase, String name, Object init). Hàm này tạo ra một thể hiện mới trong context và khởi động nó nếu cần thiết.

Cách 2: Tạo ra một bản sao của một aglet đã tồn tại bằng cách dùng hàm Aglet.Clone(). Aglets được sao chép ra có cùng trạng thái như aglets gốc nhưng có aglets ID khác.

Khi được tạo ra, một đối tượng aglet có thể được gửi đi đến và/hoặc nhận về từ một server khác, ngưng hoạt động và được lưu trữ để rồi lại được tái kích hoạt. Một aglet có thể tự gửi chính nó đến một server khác bằng cách gọi hàm nguyên gốc Aglet.dispatch(URL dest). Aglet lưu trú trong một context và có thể di chuyển từ context này đến context khác trong suốt quá trình hoạt động. Do server có thể phục vụ nhiều context trong cùng một máy ảo Java (JVM). Và một host có thể phục vụ nhiềuserver nên context được đặt tên với những thuộc tính sau:

- Địa chỉ của host, thường là địa chỉ IP. - Port mà server dùng để nghe.

- Tên context trong server

Hình 12: Mô hình vòng đời và hoạt động

Aglet có bộ thư viện các hàm API, bao gồm các hàm chuyên biệt dành cho việc phát triển các tác tử. Khi aglet được tạo ra, nó sẽ chạy trên mọi máy có hỗ trợ aglet API mà không quan tâm đến nguồn gốc của hệ điều hành và phần cứng bên dưới.[III.2]

3.5.2 Voyager

Voyager là một môi trường thương mại hỗ trợ phát triển các ứng dụng agent được hãng Object Space phát triển từ giữa năm 1996. Voyager đã trải qua nhiều lần nâng cấp và thay đổi từ phiên bản 1.0 cho đến bây giờ là phiên bản 4.5.

Voyager sửdụng ngôn ngữ lập trình Java với cú pháp chuẩn để tạo dựng các đối tượng ở xa một cách rất dễ dàng, cho phép các đối tượng này trao đổi thông điệp với nhau, và di chuyển các đối tượng giữa các máy tính có hỗ trợ môi trường Voyager. Voyager hỗ trợ mạnh về tính di động với khả năng mang toàn bộ mã chương trình và dữ liệu di chuyển từ máy ảo Java này sang máy ảo Java khác nếu các máy ảo có hỗ trợ Voyager. Trạng thái hoạt động của agent cũng sẽ được bảo toàn và tiếp tục thực thi tại nơi agent đến.

Một trong những đặc điểm nổi trội khác của Voyager là tính phổ quát. Các chương trình viết trong Voyager có thể trao đổi thông tin hai chiều với các chương trình viết bằng SOAP, CORBA, RMI và DCOM. Các dạng thông tin được trao đổi có

thể là các lời gọi hàm từ xa, các dịch vụ đặt tên, dịch vụ thư mục. Voyager có thể được xem là một cửa ngõ, một cầu nối làm cho các chương trình theo chuẩn khác trởnên liên thông với nhau. Hơn nữa, tất cả các chương trình và đối tượng có thể được tổ chức thành một không gian chung, nhờ vậy việc liên lạc sẽ trở thành một - nhiều một cách tự động.

Phiên bản 4.5 của Voyager đã được bổ sung thêm các tính năng rất quan trọng hỗ trợ cho các chuẩn dịch vụWeb. SOAP và WSDL cũng đã được phát triển trong phiên bản này giúp cho các nhà phát triển có khả năng triển khai các ứng dụng truy cập tới các dịch vụWeb từ xa và các chương trình

Voyager có thể truy cập nhau thông qua các dịch vụWeb. Thế mạnh thật sự của Voyager nằm ở sự đơn giản và dễ dùng. Sự “trong suốt” hay cách mà Voyager che dấu các kỹ thuật lập trình phân tán phức tạp đã làm cho việc xây dựng các ứng dụng mobile agent trở nên dễ dàng hơn rất nhiều. Việc tích hợp các công nghệ mới và các chuẩn mới vào cùng một sản phẩm tạo cho Voyager sự hấp dẫn rất riêng biệt. [III.1]

3.5.3. Mole

Mole là hệ thống Mobile Agent được xây dựng với ngôn ngữ Java tại đại học Stuttgart (CHLB Đức). Phiên bản đầu tiên (Release 1.0) đã hoàn thành vào năm 1995, năm 1997 phiên bản Release 2.0 được hoàn thành, bản Release 3.0 được hoàn tất vào năm 1998 và đề án đã kết thúc với kết quả là môi trường ổn định để xây dựng ứng dụng theo mô hình agent trên các hệ phân tán. Được xây dựng trên Java, Mole có khả năng thực thi trên tất cả các môi trường có hổ trợ JDK1.1.x (Jdk1.1.7 và Jdk1.1.8), sử dụng giao thức TCP/IP trong quá trình giao tiếp. Mole hỗ trợ di chuyển yếu - weak migration [III.1].

3.5.4. ZEUS

quản lý các agent, Zeus đặc biệt chú trọng việc hỗ trợ một phương pháp luận và một bộ công cụ mạnh để phát triển ứng dụng đa agent trên môi trường phân tán [III.1].

3.5.5 JADE

JADE (Java Agent DEvelopment Framework) là một framework phần mềm cho hệ thống đa agent viết hoàn toàn bằng Java và được phát triển từ cuối năm 2001. Jade cho phép sự kết hợp giữa nhiều agent tuân thủ theo chuẩn FIPA và sử dụng ngôn ngữ giao tiếp theo chuẩn FIPA-ACL.JADE là một nền tảng cho hoạt động của các agent, nó hỗ trợ:

- Là một nền tảng cho hệ phân tán của agent theo chuẩn FIPA, nó có tính di động, bảo mật và nhiều các tính năng khác.

- Giao diện người dùng của ứng dụng Java

- Là thư viện của các giao thức tương tác FIPA, được cung cấp sẵn, hỗ trợ giao tiếp của các agent trên những nền tảng giống hoặc khác nhau

- Có giao diện đồ họa người dùng để quản lý các agent [II.2]

Một phần của tài liệu Điện toán đám mây Tác tử phần mềm hướng tới dịch vụ điện toán thông minh (Trang 36)