26 Khoa hoïc Coâng ngheä LẬP TRÌNH PHÂN TÁN DÙNG CÔNG NGHỆ MOBILE AGENT VỚI SỰ HỖ TRỢ CỦA JAVA VÀ VOYAGER Tóm tắt ThS. Nguyễn Khắc Quốc * Lập trình ph

Tài liệu tương tự
Xử lý ngoại lệ

Microsoft Word - status_code_trong_servlet.docx

Microsoft Word - Huong dan cau hinh mikrotik - Viet Tuan UNIFI.vn

Điện toán đám mây của Google và ứng dụng xây dựng hệ thống quản lý dịch vụ Đỗ Thị Phương Trường Đại học Quốc gia Hà Nội; Trường Đại học Công nghệ Chuy

Microsoft Word - client_request_trong_servlet.docx

Java cơ bản

PHẦN III. NỘI DUNG CHƯƠNG TRÌNH ĐÀO TẠO 1. Tóm tắt yêu cầu chương trình đào tạo Tổng số tín chỉ của chương trình đào tạo: Khối kiến thức chung 158 tín

ISA Server - Installation ISA Server - Installation Bởi: Phạm Nguyễn Bảo Nguyên Chúng ta không thể phủ nhận rằng trong khoảng vài năm trở lại đây Inte

NGÔN NGỮ THỐNG KÊ R

Kế thừa và đa hình

Microsoft Word - 09-TRAN CAO DE(56-63)

Microsoft Word - TN414.doc

ĐỀ CƯƠNG MÔN HỌC

Phân tích và thiết kế hệ thống thông tin

Thực hành trên Rose Thực hành trên Rose Bởi: Đoàn Văn Ban Xây dựng biểu đồ thành phần + Tạo lập mới hoặc mở một biểu đồ thành phần đã được tạo lập trư

ĐỀ CƯƠNG MÔN HỌC NHẬP MÔN TIN HỌC

1

Hướng dẫn KHG sử dụng dịch vụ BaaS do Mobifone Global cung cấp Tổng Công ty Viễn thông MOBIFONE là nhà cung cấp dịch vụ Viễn thông và CNTT hàng đầu tạ

Microsoft Word - server_response_trong_servlet.docx

Microsoft Word - TN216.doc

IPSec IPSec Bởi: Phạm Nguyễn Bảo Nguyên Chúng ta đã biết khi ta sao chép dữ liệu giữa 2 máy hoặc thông qua mạng VPN để nâng cao chế độ bảo mật người q

Chương trình dịch

HƯỚNG DẪN SỬ DỤNG CLOUD STORAGE Trân trọng cám ơn các bạn đã sử dụng dịch vụ Cloud Storage của Viettel IDC. Tài liệu hướng dẫn sử dụng nhanh được biên

Copyright vietjack.com Nạp chồng toán tử trong C# Operator Overloading là Nạp chồng toán tử. Bạn có thể tái định

Internet Information Service - IIS Internet Information Service - IIS Bởi: Phạm Nguyễn Bảo Nguyên Chúng ta đã tìm hiểu về cách dựng một NAT Server...

Microsoft Word - thuat-ngu-thuong-mai-dien-tu.docx

Bài 3 Tựa bài

Lập trình và ngôn ngữ lập trình

FAQ: Hướng dẫn cấu hình Wireless Router N300 DIR-612 Release date: 17/12/2018 Model support: DIR-612 H/W: Bx F/W: N/A FAQ: Hướng dẫn cấu hình Wireless

Microsoft Word - jsp_syntax.docx

HEADING 1: PHẦN 1: QUẢN LÝ VÀ DUY TRÌ HỆ ĐIỀU HÀNH

ĐỀ CƯƠNG MÔN HỌC NHẬP MÔN TIN HỌC

Microsoft Word - xu_ly_cookie_trong_servlet.docx

Chiến lược kiểm thử Chiến lược kiểm thử Bởi: Khoa CNTT ĐHSP KT Hưng Yên Các công đoạn kiểm thử Quá trình kiểm thử có thể chia làm các giai đoạn : Kiểm

Stored Procedures Stored Procedures Bởi: Khoa CNTT ĐHSP KT Hưng Yên Trong những bài học trước đây khi dùng Query Analyzer chúng ta có thể đặt tên và s

KIỂM TOÁN NHÀ NƯỚC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc Số: 1173/QĐ-KTNN Hà Nội, ngày 27 tháng 7 nă

ThemeGallery PowerTemplate

Co s? d? li?u (Database)

Microsoft Word - session_tracking_trong_servlet.docx


Mau ban thao TCKHDHDL

Slide 1

Nội dung chương 3 IT1110 Tin học đại cương Phần I: Tin học căn bản Chương 3: Hệ thống máy tính 3.1. Giới thiệu 3.2. Chức năng và các thành phần của má

Mẫu trình bày chương trình đào tạo theo tín chỉ

NGÔN NGƯ LÂ P TRIǸH Biên tập bởi: nguyenvanlinh

Microsoft Word - mot_so_tool_trong_android.docx

Microsoft Word - jsp_client_request.docx

Phụ lục 2: HỒ SƠ NĂNG LỰC NĂM 2014

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ STORAGE.COM.VN

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH ĐỀ CƯƠNG MÔN HỌC 1. THÔNG TIN VỀ MÔN HỌC 1.1. Tên môn học: QUẢN TRỊ HỆ CƠ SỞ DỮ LIỆU 1.

Microsoft Word - HDSD digiTool.doc

Những cơ sở của ngôn ngữ C# Những cơ sở của ngôn ngữ C# Bởi: phamvanviet truonglapvy Trong chương này sẽ trình bày về hệ thống kiểu trong C#; phân biệ

Phụ lục 2: HỒ SƠ NĂNG LỰC NĂM 2014

Kế thừa

CÀI ĐẶ T ANDROID TRÊN NETBEAN Yêu cầ u:trong quá trình cài đặ t phả i kế t nố i mạ ng,và phiên bả n này đượ c cài trên windows. 1.Download Netbean(6.7

TRƯỜNG Đ CK Joel Murach lay Harris TÜ SACH BẢN QUYỄN FPT Polytechnic P H P v ä MySQL Murach's PHP and MySQL Khởi động nhanh với PHP & MySQL

Microsoft Word - Khai thac AWS EC2_Web hosting.docx

Lập trình cấu trúc trong Visual Basic Lập trình cấu trúc trong Visual Basic Bởi: Nguyễn Sơn Học xong chương này, sinh viên phải nắm bắt được các vấn đ

Microsoft Word - emulator_trong_android.docx

Microsoft Word - HDSD_NVR_304&3016.docx

Operating Instructions

PowerPoint Presentation

Khoa Quản lý Đất đai và Bất động sản KS. Đinh Quang Vinh ( )

Bức tường lửa Bức tường lửa Bởi: TS. Trần Văn Dũng Mở đầu Bức tường lửa là gì Là điểm cổ chai để kiểm soát và theo dõi. Các mạng liên kết với độ tin c

ZTE-U V889D Hướng dẫn sử dụng

Slide 1

Domain Name System - DNS Domain Name System - DNS Bởi: Phạm Nguyễn Bảo Nguyên Như chúng ta đã biết DHCP Server có tác dụng cấp phát IP cho các Client

Microsoft Word - jsp_file_uploading.docx

Slide 1

Chương 2 Tầng vật lý

Copyright vietjack.com Chuỗi (String) trong C# Trong C#, bạn có thể sử dụng các chuỗi (string) như là mảng các ký

Intro Parallel Computing 03

Backup Cloud Server

58 KINH TẾ MỘT SỐ GIẢI PHÁP NHẰM HOÀN THIỆN HOẠT ĐỘNG QUẢN TRỊ QUAN HỆ KHÁCH HÀNG TẠI CÁC NGÂN HÀNG THƯƠNG MẠI VIỆT NAM Ngày nhận bài: 23/07/2015 Bùi

Công nghệ Hibernate Công nghệ Hibernate Bởi: Khoa CNTT ĐHSP KT Hưng Yên Giới thiệu Trước khi tìm hiểu Hibernate là gì, chúng ta cần chuẩn bị một số ki

now. Issue 13 Technology Spotlight Đơn Giản Hóa CNTT: Tháo Gỡ Những Liên Kết Phức Tạp Trong Cơ Sở Hạ Tầng Của Bạn Khám phá cách thức mà bạn có thể cắt

Microsoft Word - action_trong_jsp.docx

Bộ Giáo dục và Đào tạo - Trường Đại học Duy Tân THIẾT KẾ THIẾT BỊ THÍ NGHIỆM VI ĐIỀU KHIỂN CẤU HÌNH PHẦN CỨNG TỰ ĐỘNG. NGUYÊ N VĂN THỌ * LÊ PHƯỢNG QUY

Microsoft Word - jsp_exception_handling.docx

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CẦN THƠ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập Tự do Hạnh Phúc ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN 1. Tên học phần :

ELMS Guide

Nhúng mã-cách khai báo biến Nhúng mã-cách khai báo biến Bởi: Khoa CNTT ĐHSP KT Hưng Yên Nhúng mã javascript trong trang HTML Bạn có thể nhúng JavaScri

Hik-Connect làgì? Hướng dẫn sử dụng Hik-Connect Tính năng chia sẻ (Share) Dịch vụ lắp đặt camera quan sát uy tín chất lượng, hệ thống đại

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN XÂY DỰNG WEBSITE QUẢN LÝ RẠP CHIẾU PHIM TRÊN CƠ SỞ YII FRAMEWORK Hà Nội 2016

HƯỚNG DẪN SỬ DỤNG 1) Các thông số cài đặt client (MS Outlook, Outlook Express, Thunder Bird ) 2) Hướng dẫn đổi password 3) Hướng dẫn

BÀI THỰC HÀNH 1: THỰC HÀNH KÍCH HOẠT IPV6 TRÊN HĐH WINDOW, LINUX

Dịch vụ điện tử FPT

Slide 1

Exchange Server - Recipient Configuration - Create Mailbox Exchange Server - Recipient Configuration - Create Mailbox Bởi: Phạm Nguyễn Bảo Nguyên Chún

Dell Precision Rack 7910 Sổ tay hướng dẫn chủ sở hữu

NẮM BẮT XU HƯỚNG BỨT PHÁ THÀNH CÔNG 1

9-KiemThu

ỨNG DỤNG INTERNET OF THINGS XÂY DỰNG NGÔI NHÀ THÔNG MINH APPLICATION OF INTERNET OF THINGS TO SMARTHOME NGUYỄN VĂN THẮNG (1), PHẠM TRUNG MINH (1), NGU

Hệ điều hành UNIX Hệ điều hành UNIX Bởi: Wiki Pedia UNIX Unix hay UNIX là một hệ điều hành máy tính viết vào những năm 1960 và 1970 do một số nhân viê

Kiến trúc tập lệnh1

WICELL User Guide Smart Cloud Wicell Controller Standard Version Manual version

Slide 1

HƯỚNG DẪN SỬ DỤNG HÓA ĐƠN ĐIỆN TỬ

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LÝ LỊCH KHOA HỌC 1. THÔNG TIN CÁ NHÂN Họ và tên: Nguyễn Văn Tảo Ngày sinh: 05/1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ BÙI TRUNG HIẾU NGHIÊN CỨU MỘT SỐ VẤN ĐỀ VỀ CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG TRONG BÀI TOÁN QUẢN LÝ DÂN CƯ LU

Bản ghi:

26 LẬP TRÌNH PHÂN TÁN DÙNG CÔNG NGHỆ MOBILE AGENT VỚI SỰ HỖ TRỢ CỦA JAVA VÀ VOYAGER Tóm tắt ThS. Nguyễn Khắc Quốc * Lập trình phân tán được thực hiện bằng nhiều công nghệ khác nhau như: RMI, CORBA, DCOM, MPI, Mobile Agent, Mobile Object. Mỗi công nghệ đều có những ưu điểm và nhược điểm riêng. Công nghệ Mobile Agent với sự hỗ trợ của Java và Voyager có thể giúp chúng ta khắc phục được những hạn chế của các công nghệ trước đây trong lập trình phân tán. Việc áp dụng công nghệ này sẽ xử lý được các bài toán lớn có độ phức tạp cao mà không cần đòi hỏi vùng nhớ lớn và tốc độ xử lý nhanh. Công nghệ Mobile Agent với sự hỗ trợ của ngôn ngữ Java và Voyager vừa đơn giản vừa mang tính bảo mật cao. Từ khóa: bảo mật cao, Java, lập trình phân tán, Mobile Agent, Voyager Abstract Distributed programming has been undertaken with the assistance from various technologies such as RMI, CORBA, DCOM, MPI, Mobile Agent, Mobile Object. Each has its own advantages and disadvantages. Mobile Agent with the support of Java and Voyager languages can help to overcome the drawbacks of the previous technologies in implementing distributed programming. Technology will help us to handle several complicated problems without requiring large memory and fast processing speed. Mobile Agent Technology is both simple and highly secure with the support of Java and Voyager languages. Key words: distributed programming, highly secure, Java, Mobile Agent, Voyager 1. Giới thiệu Trong thực tế, khi giải quyết một bài toán với độ phức tạp cao thì đòi hỏi không gian vùng nhớ lớn và thời gian thực hiện cần phải nhanh. Xuất phát từ những bài toán cụ thể như vậy, công nghệ lập trình phân tán đã ra đời để giải quyết vấn đề này. Hiện nay, có rất nhiều công nghệ hỗ trợ lập trình phân tán như: RMI, CORBA, DCOM, MPI, Mobile Agent, Mobile Object Bài viết giới thiệu lập trình phân tán dùng công nghệ Mobile Agent với sự hỗ trợ của ngôn ngữ Java và Voyager. 2. Nội dung 2.1. Tìm hiểu một số công nghệ hỗ trợ lập trình phân tán Lập trình phân tán là gì? Thông thường các chương trình được viết dưới dạng các thủ tục hoặc hàm được nạp trực tiếp vào bộ nhớ của máy cục bộ để thực thi. Lập trình phân tán cho phép gọi một thủ tục hoặc hàm hay một đối tượng từ một máy khác trên mạng để thực hiện việc tính toán. Máy A A1 Máy B B2 B1 B3 Máy C C1 C2 Hình 1. Minh họa mô hình lập trình phân tán * Khoa Kỹ thuật Công nghệ - Trường Đại học Trà Vinh Soá 9, thaùng 6/2013 26

27 2.2. Một số công nghệ hỗ trợ lập trình phân tán 2.2.1. Công nghệ RMI (Remote Method Invoke) RMI là một công nghệ lập trình phân tán bằng ngôn ngữ Java. Server Cl_Server Cl_Server_S kel RMI Cl_Client_St ub Client Cl_Client Hình 2. Mô hình giao tiếp Client và Server 2.2.2. Công nghệ CORBA (Common Object Request Broker Architecture) CORBA dùng một ngôn ngữ đặc tả IDL (Interface Discription Language) để đưa ra các đối tượng viết bằng những ngôn ngữ khác nhau nhưng có thể triệu gọi lẫn nhau theo mô hình phân tán.trong CORBA, các đối tượng muốn triệu gọi được với nhau phải thông qua trình trung gian là ORB (Object Request Broker) Client Java Client Lớp trung gian _Stub ORB IIOP Server Java CORBA Object Lớp trung gian _Skel ORB Hình 3. Mô hình giao tiếp hai đối tượng xa trong 2.2.3. Công nghệ Mobile Agent Mobile Agent là một chương trình có khả năng di chuyển một cách tự trị từ một nút mạng này sang một nút mạng khác. Khi di chuyển các Mobile Agent đóng gói mã nguồn, dữ liệu và cả trạng thái thi hành, như vậy Mobile Agent có thể dừng việc đang thi hành tại máy này, di chuyển sang máy khác và khôi phục lại sự thi hành tại máy đích. Các tính chất của Mobile Agent: Tính di động; Tính tự trị; Khả năng công tác; Tính thích nghi. Agent Agent Agent Agent logic Giao tiếp thực Giao tiếp thực Phần mềm cơ bản Hệ điều hành Di trú Phần mềm cơ bản Hệ điều hành Data Hình 4. Kiến trúc mô hình Mobile agent Thực hiện truyền thông này theo hai cách: - Giao tiếp thực: Hai agent giao tiếp với nhau bằng cách gửi thông điệp (các yêu cầu thủ tục) trực tiếp cho nhau. - Giao tiếp logic: Hai agent muốn giao tiếp với nhau tạo kết nối thực với phần mềm cơ bản. Phần mềm cơ bản của hệ thống Mobile agent gồm có 3 tầng: tầng agent, tầng an ninh và tầng truyền thông. Tầng agent: Cung cấp tất cả các tác vụ chính cho việc thi hành và kiểm tra của tất cả các agent trên máy. Ngoài ra, nó còn cung cấp cho tất cả các agent môi trường làm việc và sự thi hành các agent độc lập với nhau. Tầng an ninh: Cung cấp các chức năng cho phép truyền các thông điệp và các đối tượng trên mạng một cách an toàn. Tầng truyền thông: Bao gồm các đặc tả cho các giao thức truyền, các định dạng tài liệu và các đối tượng. Một số mô hình Mobile Agent phổ biến Aglets: là một hệ thống 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ó. Aglets server là chương trình cung cấp môi trường thi hành và một máy ảo Java cho aglets hoạt động. Aglets sử dụng giao thức ATP (Aglets Transfer Protocol) cho việc di chuyển và giao tiếp. Soá 9, thaùng 6/2013 27

28 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 Object Space phát triển. Mole: Là hệ thống Mobile agent được xây dựng với ngôn ngữ Java. Telescript: Là một sản phẩm thương mại được phát triển bởi General Magic Incorporated để hỗ trợ cho Aobile agent trong môi trường thương mại điện tử. 2.3. Voyager trong lập trình phân tán Voyager là một công nghệ hỗ trợ lập trình phân tán (Mobile Object và Mobile Agent) sử dụng ngôn ngữ lập trình Java với cú pháp chuẩn hỗ trợ lập trình tạo dựng các đối tượng từ xa một cách dễ dàng, cho phép các ứng dụ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ợ Voyager. Voyager hỗ trợ di động mạnh có khả năng mang toàn bộ mã chương trình và dữ liệu di chuyển từ máy ảo Java (JVM) này sang máy ảo Java khác nếu các máy có hỗ trợ Voyager. Trạng thái của các agent cũng được bảo toàn và tiếp tục thực thi tại nơi agent đến. Các chương trình viết trong Voyager có thể giao tiếp với các chương trình viết bằng SOAP, CORBA, RMI và DCOM. Điểm mạnh của Voyager là đơn giản, dễ dùng, che giấu các kỹ thuật lập trình phân tán phức tạp. Provider Agent / Object Proxy Thông điệp: Triệu gọi phương thức Lấy trả kết quả về Java Object VOYAGER SERVER MÁY ẢO JAVA HỆ ĐIỀU HÀNH LOCAL Hình 5. Mô hình hoạt động của Voyager Để các agent hoạt động thì cần phải có một môi trường hỗ trợ Voyager Server ở cả hai phía (máy cục bộ và máy ở xa) Khi một đối tượng từ xa được tạo ra ở máy cục bộ (nhờ vào Provider Agent/Object) thì một Proxy sẽ tự động được sinh ra. Voyager Server trên máy cục bộ sẽ giao tiếp với đối tượng từ xa thông qua Proxy. Giao tiếp là việc trao đổi thông điệp giữa đối tượng từ xa và Server cục bộ. 2.4. Xây dựng ứng dụng phân tán Voyager 1.0.1 Xây dựng một ứng dụng phân tán ta cần trải qua hai bước sau: Bước 1: Cài đặt lớp xử lý. Lớp này sau khi biên dịch sẽ là lớp dùng để sinh ra các đối tượng từ xa. Bước 2: Cài đặt lớp giao tiếp người sử dụng. Ví dụ: Để tạo ứng dụng phân tán dùng tính tổng các số từ 1 đến N thực hiện các bước sau: Bước 1: Tạo lớp giả sử là CountMobile. Lớp này chứa phương thức public long test (long a, VOYAGER SERVER MÁY ẢO JAVA HỆ ĐIỀU HÀNH REMOTE long b): dùng để tính tổng từ a đến b. Dùng trình javac để biên dịch lớp này thành CountMobile. class. Sau đó, dùng trình vcc để biên dịch Count- Mobile.class, lúc này sẽ sinh ra file VCountMobile.java. Lớp này do voyager tự sinh ra. Bước 2: Cài đặt lớp CountMobileClient để sử dụng lớp VCountMobile. Lớp này sẽ giao tiếp với người dùng, bao gồm việc tạo đối tượng từ xa, gửi đối tượng đi, yêu cầu xử lý, nhận kết quả trả về và hủy đối tượng từ xa. * Code minh họa: Tạo lớp tính tổng từ a đến b public class CountMobile implements java. io.serializable { String name; public CountMobile() { public long test(long a, long b) { long kq=0; for (long i=a ; i<=b ; i++) { Soá 9, thaùng 6/2013 28

29 kq += i; System.out.println( Da tinh xong tong tu: + a + -> + b +, KQ: + kq); return kq; Dùng javac để biên dịch lớp trên ta được file: CountMobile.class Dùng vcc để biên dịch ta được tập tin: VCountMobile.java Tạo lớp giao tiếp với người dùng import java.io.*; import java.io.bufferedinputstream; import COM.objectspace.voyager.*; public class CountMobileClient{ public static void main(string args[]) { String add[]; long SUM = 13; BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); int num, i, numobj=1, succ[], realobj; long kq=0; System.out.println( \n--------------- TINH TONG TU 1 -> N ---------- ); System.out.print( Nhap so N can tinh: ); SUM = Integer.parseInt(bf.readLine()); System.out.print( Ban muon chia cong viec cho bao nhieu may? ); numobj = Integer.parseInt(bf.readLine()); catch(exception e){ succ = new int[numobj]; add = new String[numObj]; for(i=0; i<numobj; succ[i]=1, i++ ); try { VCountMobile mymcount[]; mymcount = new VCountMobile[numObj]; for(i=0; i<numobj; i++){ mymcount[i] = new VCountMobile( localhost ); realobj = numobj; Soá 9, thaùng 6/2013 29

30 for(i=0; i<numobj; i++){ System.out.print( Nhap dia chi (IP va Port) cua may thu + (i+1) + : ); add[i] = bf.readline(); catch(exception e){ mymcount[i].moveto(add[i]); catch(voyagerexception e){ succ[i] = 0; realobj--; System.out.println( Khong tim thay server: + add[i]); long khoang = SUM / realobj, so=0; long kt =1; int vt=0; System.out.println( \n---- KET QUA TINH TOAN TU CAC MAY -------\n ); for(i=0; i<numobj; i++){ if(succ[i]==1){ kt = so+1; so = so + khoang; long temp = mymcount[i].test(kt, so); System.out.println( Ket qua lay tu may: + add[i] + la: + temp); kq += temp; vt = i; catch(transportexception e){ System.out.println( Khong the lay Ket qua tu may: + add[i]); if(sum % realobj!= 0){ long temp = mymcount[vt].test(so+1, SUM); System.out.println( Ket qua lay tu may: + add[vt] + la: + temp); Soá 9, thaùng 6/2013 30

31 kq += temp; System.out.print( Ket qua sau khi tinh toan: ); System.out.println(kq); Voyager.shutdown(); catch (VoyagerException exception) { System.err.println(exception); Biên dịch lớp CountMobileClient và VcountMobile. Chạy máy ảo Java để kiểm tra chương trình. * Cài đặt voyager 1.0.1 1. Cài đặt bộ JDK 1.3 2. Chạy Setup Voyager1.0.1.exe. Cài vào C:\voyager1.0.1 3. Thêm biến môi trường CLASSPATH = :\voyager1.0.1\lib\voyager1.0.1.jar. 4. Dịch chương trình - Dịch: javac <tên file>.java. - Dịch vcc: <tên file>.class - Dịch tất cả: javac *.java 5. Chạy chương trình - Chạy Server: voyager 9000 (Chạy trên cổng 9000). - Chạy client java <tên file> 3. Kết luận Như vậy, khi dùng Mobile Agent với sự hỗ trợ của Java và Voyager ta thấy rằng có nhiều ưu điểm hơn so với dùng công nghệ RMI, CORBA, DCOM Mobile Agent có khả năng di chuyển một cách tự trị từ một nút mạng này sang một nút mạng khác; đóng gói mã nguồn, dữ liệu và cả trạng thái thi hành.việc lập trình đơn giản, chỉ cài đặt ứng dụng ở một phía cục bộ. Đặc biệt, Voyager còn có 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 có hỗ trợ Voyager mà các công nghệ khác không hỗ trợ được. Tài liệu tham khảo Nguyễn Lê Anh. 2005. Giáo trình xử lý song song, Học viện Kỹ thuật Quân sự. Đoàn Văn Ban. 2005. Giáo trình Lập trình Java. Đại học Sư phạm Hà Nội. David Reilly- Michael Reilly. 2002. Java Network Programming and Distributed Computing. Publisher Addison Wesley. Pub Date March 25. ISBN: 0-201-71037-4 John Wiley & Sons. 2004. Tools and Environments for parallel and Distributed computing. All rights reserved. Published by John Wiley & Sons, Inc, Hoboken, New Jersey. Published simultaneously in Canada. GeorgeCoulouris et al. 2005. Distributed systems: concept and design. Soá 9, thaùng 6/2013 31