Tổng quan về Mobile Agents

Mobile agents là một trong những hướng nghiên cứu thu hút nhiều sựquan tâm nhất từnhững năm 90s đến nay với những đặc điểm rất thích hợp cho việc phát triển các ứng dụng phân tán. Trong bài báo này, chúng tôi điểm lại những khái niệm cơbản vềmobile agent đồng thời đềcập đến những loại ứng dụng phù hợp với mô hình mobile agents đã và đang được nghiên cứu và phát triển trên thếgiới. Thông qua việc xem xét các hệthống hỗtrợphát triển ứng dụng dựa trên mobile agents, bài báo cũng bàn tới đến những khó khăn và thách thức cần phải giải quyết đểcó thể đưa mobile agents vào ứng dụng trong thực tế.

pdf11 trang | Chia sẻ: maiphuongtt | Lượt xem: 2666 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Tổng quan về Mobile Agents, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TỔNG QUAN VỀ MOBILE AGENTS Trần Hạnh Nhi, Lê Đình Duy, Nguyễn Đông Hà Thái Trí Hùng, Văn Trọng Nam, Huỳnh Tấn Năng, Nguyễn Huy Thẩm, Nguyễn Thái Huy, Phan Đình Thế Huân, Hồ Thị Mỹ Hiền, Lê Văn Triều Bộ môn Công Nghệ Phần Mềm Khoa Công Nghệ Thông Tin, Trường ĐH Khoa Học Tự Nhiên Tp.HCM Email: (thnhi, ldduy)@fit.hcmuns.edu.vn TÓM TẮT Mobile agents là một trong những hướng nghiên cứu thu hút nhiều sự quan tâm nhất từ những năm 90s đến nay với những đặc điểm rất thích hợp cho việc phát triển các ứng dụng phân tán. Trong bài báo này, chúng tôi điểm lại những khái niệm cơ bản về mobile agent đồng thời đề cập đến những loại ứng dụng phù hợp với mô hình mobile agents đã và đang được nghiên cứu và phát triển trên thế giới. Thông qua việc xem xét các hệ thống hỗ trợ phát triển ứng dụng dựa trên mobile agents, bài báo cũng bàn tới đến những khó khăn và thách thức cần phải giải quyết để có thể đưa mobile agents vào ứng dụng trong thực tế. ABSTRACT Mobile agents is one of exciting research areas attracting a great number of consideration from 90’s to now due to features especially suitable for developing distributed applications. This paper reviews basic conceptions of mobile agents and deals with kinds of mobile agent based applications that have been doing research and developing over the world. It also considers some current mobile agent systems and presents difficulties and challenges in desiginng and implementing mobile agent applications in practice. 1. GIỚI THIỆU Sự phát triển không ngừng của các kỹ thuật tiên tiến về máy tính, đặc biệt là các giải pháp mạng, cùng với sự bùng nổ nhanh chóng các dịch vụ và nguồn thông tin trên mạng đã làm gia tăng số người sử dụng Internet đến con số hàng trăm triệu (theo International Data Corp, tính đến cuối năm 2002 sẽ có hơn 600 triệu người trên toàn thế giới kết nối Internet). Các đặc điểm của nguồn thông tin, tổ chức mạng, cũng như việc khai thác, xử lý thông tin ngày càng trở nên phức tạp và đa dạng hơn, có thể kể đến các khuynh hướng chính yếu [KOT-99]: • Các thiết bị di động (Mobile devices): Việc cung cấp các phần mềm, các dịch vụ hỗ trợ hiệu quả cho lớp thiết bị di động (laptop, PDAs đến điện thoại di động hay sổ tay điện tử...) này vẫn đang phải đối mặt với nhiều khó khăn vì các thiết bị di động thường có tài nguyên hạn hep, và thường dựa trên các kết nối với băng thông thấp, độ trễ cao của đường điện thoại, hay mạng không dây. • Người dùng di động (Mobile users): Ngày nay người dùng thường có nhu cầu truy cập vào máy tính của mình, tài khoản của mình từ bất cứ đâu, vì thế việc hỗ trợ kết nối ở mọi nơi, mọi lúc và trên mọi thiết bị là một thách thức được đặt ra. • Nhu cầu chuyên biệt hoá: Việc khai thác thông tin, sử dụng dịch vụ đã không còn thỏa mãn với các cơ chế thụ động, mà người dùng thường có khuynh hướng muốn chuyên biệt hoá nhu cầu của mình một cách chủ động. Internet là cơ sở để thực hiện mong muốn này, vấn đề còn lại là khả năng hỗ trợ chuyên biệt hoá của các ứng dụng mạng dành cho người dùng. • Nguồn tin đa dạng, khối lượng cực lớn: Đã xuất hiện sự bùng nổ thông tin trên mạng với sự xuất hiện của nhiều kho dữ liệu khổng lồ. Các kho dữ liệu này lại được cung cấp từ nhiều nguồn nên thường không đồng nhất về tổ chức, đây sẽ lại là một khó khăn mới đối với người dùng khi truy vấn. • Gia tăng sử dụng mạng cục bộ: Việc các mạng Intranet được xây dựng phổ biến là một điều kiện tốt để triển khai các kỹ thuật mới trong việc xây dựng các ứng dụng mạng, vì Intranet cho phép việc thiết lập an toàn hệ thống dễ dàng hơn trong một tập hợp mang tính cộng tác và tin cậy. • Môi trường không đồng nhất: Khi kết nối các máy tính, các mạng cục bộ vào Internet, các ứng dụng và người dùng phải đối mặt với một môi trường không đồng nhất cả về phần cứng, lẫn về kiến trúc, hệ điều hành…Và bài toán tương thích, dễ mang chuyển sẽ là vấn đề cần giải quyết ở đây. • Sự khập khiễng về đường truyền: Mặc dù ngành viễn thông đã đạt đến những tiến bộ đáng kinh ngạc, và cho ra đời các loại cáp quang với tốc độ truyền tải nhanh đáng kể, đa số người dùng vẫn bị giới hạn với các thiết bị kết nối như modem hay các đường truyền băng thông thấp với mạng không dây. Với tất cả các đặc điểm trên đây, các ứng dụng phân tán phát triển theo mô hình client-server truyền thống tỏ ra một số bất lợi vì đòi hỏi làm việc đồng bộ, đòi hỏi đường truyền băng thông cao, độ trễ thấp và cuối cùng là các dịch vụ thiếu linh động, khó thay đổi hay bổ sung. Mobile Agent là một mô hình trong đó các tiến trình - được gọi là agent - có tính tự trị và khả năng di động từ máy chủ này sang máy chủ khác để hoàn tất tác vụ. Ý tưởng chủ đạo của mobile agent là di chuyển xử lý đến gần nguồn dữ liệu, nhờ đó có thể giảm tải mạng, khắc phục tình trạng trễ, hỗ trợ xử lý không đồng bộ và tạo ra sự tưng thích mạnh trên các môi trường không đồng nhất [LAN-99]. Mobile agent với các ưu điểm này hứa hẹn một giải pháp mới, hiệu quả và dễ dàng hơn trong việc phát triển ứng dụng phân tán. Trong bài báo này này chúng tôi sẽ giới thiệu các khái niệm cơ bản về mobile agent trong phần tiếp theo. Phần 3 sẽ trình bày về các lợi thế của các ứng dụng dựa trên mobile agents và các lĩnh vực ứng dụng đầy tiềm năng của mobile agents. Phần 4 trình bày các khảo sát về một số môi trường dựa trên Java hỗ trợ phát triển ứng dụng mobile agents. Phần thảo luận sẽ bàn đến các vấn đề mở đang được tiếp tục nghiên cứu trong lĩnh vực hiện nay về mobile agents. Cuối cùng là kết luận. 2. MOBILE AGENTS 2.1. Sự tiến hóa từ các mô hình ứng dụng phân tán Theo truyền thống, một ứng dụng phân tán có cấu trúc xây dựng trên mô hình client-server sẽ thực hiện việc giao tiếp thông qua cơ chế truyền thông điệp hoặc các lời gọi hàm từ xa (RPCs). Các mô hình giao tiếp này thường phải đồng bộ, nghĩa là phía client tạm ngưng hoạt động của mình trong thời gian gởi yêu cầu đến server và đợi đến khi nhận được kết quả trả về từ server. Một kiến trúc tiến bộ hơn là Remote Evaluation (REV) do Stamos và Gifford [STA-90] đưa ra vào năm 1990. Trong mô hình REV, thay vì yêu cầu thực hiện các hàm từ xa thì client chỉ việc gởi mã nguồn các hàm của nó đến server và yêu cầu server thực hiện rồi trả về kết quả. Một số hệ thống gần đây cũng đã giới thiệu khái niệm thông điệp chủ động (active messages) có thể di trú giữa các vị trí trên mạng, mang theo mã của chương trình để thực thi tại những vị trí này. Mobile agents là mô hình tiến hóa tiên tiến nhất so với các mô hình trước đó. Mobile agent [LAN-98] là danh từ ghép giữa agent (trợ lý) và mobile (di động). Một mobile agent là một chương trình có khả năng di chuyển một cách tự trị từ nút mạng này sang nút mạng khác và thực hiện các xử lý thay thế cho con người để đạt được mục tiêu được giao phó. 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 thi hành đang thực hiện 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. Hình 1 cho thấy sự khác biệt của Mobile agents so với RPC và REV. Hình 1: Sự tiến hóa của mô hình mobile agents 2.2. Các đặc tính của mobile agents Các đặc tính chính của mobile agent bao gồm : Tính tự trị (autonomous): là khả năng tự kiểm soát bản thân của agent sau khi được giao việc mà không cần sự can thiệp nào của người dùng hoặc của agent khác [JEN-98]. Có nhiều hướng đánh giá về sự tự trị của agent. Hai đặc tính hướng đích (goal-oriented) và tính chủ động (pro-activeness) [LAN-98] thường được dùng để đánh giá mức độ tự trị của agent. Khả năng tự trị của agent chủ yếu được quyết định bởi tri thức trang bị cho agent. Tính di động (mobility): là khả năng di chuyển từ môi trường thi hành này sang môi trường khác khác của một agent. Khả năng di động của một agent được phân thành hai loại. Di động mạnh (strong mobility) là khả năng mà hệ thống có thể di chuyển cả mã chương trình và trạng thái thi hành của agent đến một môi trường khác. Di động yếu (weak mobility) là khả năng của hệ thống chỉ có thể di chuyển mã chương trình giữa các môi trường thi hành với nhau, mã nguồn có thể mang kèm theo một số dữ liệu khởi tạo nhưng trạng thái thi hành thì không thể di chuyển. [FUG-98]. Tính thích ứng (reactiveness): là khả năng của agent có thể thực thi trên những môi trường lạ, và cảm nhận được sự thay đổi của môi trường. Khả năng cộng tác(collaboration): là khả năng liên lạc, phối hợp hoạt động của các agent với các agent của cùng môi trường khác hay với các loại đối tượng khác trong những môi trường khác. 3. ỨNG DỤNG CỦA MOBILE AGENTS 3.1. Các lợi thế của mô hình mobile agents Có bảy lợi ích chính đối với việc ứng dụng mobile agent [LAN-98]: 3.1.1. Giảm tải mạng Kỹ thuật mobile agents cho phép người dùng đóng gói cuộc trao đổi, gởi nó đến máy đích và thực hiện xử lý dữ liệu, trao đổi cục bộ tại đó. Như thế sẽ góp phần làm giảm những dòng dữ liệu thô trên mạng ; và như thế, tải mạng sẽ giảm đáng kể. Phương châm thực hiện của kỹ thuật mobile agents là: mang xử lý đến nơi chứa dữ liệu hơn là mang dữ liệu về chỗ xử lý. 3.1.2. Khắc phục sự trễ mạng Việc điều khiển các hệ thống với quy mô lớn thông qua mạng sẽ phải chấp nhận một sự trễ hạn nhất định. Nhưng điều đó lại không được phép xảy ra trong các hệ thống thời gian thực như điều khiển robot, quy trình sản xuất ...Khi đó, giải pháp mobile agents tỏ ra hữu ích trong việc khắc phục độ trễ nhờ vào việc các agent có thể được gửi đi từ một trung tâm điều khiển và hành động cục bộ, tự trị, trực tiếp thi hành các chỉ dẫn của người điều khiển. 3.1.3.1. Đóng gói các giao thức Khi dữ liệu được trao đổi trong hệ thống phân tán, việc truyền và nhận dữ liệu phải được mã hóa bởi các giao thức cần thiết. Các giao thức này được sở hữu bởi mỗi máy trong hệ thống. Tuy nhiên, một khi các giao thức phải tiến hóa để phù hợp với những yêu cầu mới về sự bảo mật hoặc tính hiệu quả, chúng bắt đầu trở nên cồng kềnh, nặng nề và trở thành vấn đề nan giải. Riêng với giải pháp mobile agents, các agents có thể mang trên mình các giao thức thích hợp và di chuyển tới các máy ở xa để thiết lập các kênh truyền nhận thông tin tương ứng. 3.1.4. Thi hành không đồng bộ và tự trị Thông thường, các thiết bị di động thường phụ thuộc vào các kết nối mạng đắt tiền nhưng rất yếu ớt. Vì thế, những tác vụ cần có kết nối liên tục giữa thiết bị di động và mạng cố định có thể sẽ không có tính kinh tế hoặc không khả thi về mặt kỹ thuật. Giải pháp mobile agents giải quyết vấn đề này bằng cách nhúng tác vụ cần thực hiện vào agent, rồi gửi lên mạng. Sau khi được gửi đi, agent trở nên độc lập thi hành không đồng bộ và có khả năng tự trị. Các thiết bị di động sau đó có thể kết nối trở lại để đón agent về. 3.1.5. Thích ứng nhanh Các agent có khả năng cảm nhận những thay đổi của môi trường thi hành và tác động trở lại những thay đổi ấy một cách tự động. 3.1.6. Khắc phục tình trạng không đồng nhất Việc xử lý tính toán trên mạng cơ bản là không đồng nhất vì sự đa dạng về phần cứng và phần mềm được sử dụng. Do mobile agent độc lập với máy tính (phần cứng và hệ điều hành) và tầng vận chuyển, chỉ phụ thuộc vào môi trường thi hành, nên chúng cung cấp một điều kiện tối ưu cho việc liên kết các hệ thống không liên quan gì lại với nhau. 3.1.7. Mạnh mẽ và có khả năng chế ngự lỗi cao Với khả năng phản ứng năng động với các sự kiện và những thay đổi bất lợi, mobile agents giúp cho việc xây dựng hệ thống mạnh mẽ và chịu lỗi cao được dễ dàng hơn. 3.2. Các lĩnh vực ứng dụng tiềm năng của mobile agents Hiện nay, theo các nghiên cứu về agents, chưa có một ứng dụng nào có thể được xem như là ứng dụng đặc trưng (kill application) dành cho công nghệ mobile agents [MIL-99]. Với tất cả những kết quả đạt được hiện nay với mobile agents, người ta cũng đều đạt được bằng những công nghệ truyền thống. Tuy nhiên, trong một vài trường hợp, mobile agents có thể là giải pháp tối ưu. Mobile agents có thể được áp dụng trong nhiều lĩnh vực như: 3.2.1. Thương mại điện tử Các ứng dụng thương mại điện tử cho phép người dùng thực hiện các giao dịch trong kinh doanh trên mạng. Một giao dịch có thể bao gồm sự thương lượng với các thực thể ở xa và có thể đòi hỏi truy cập nguồn thông tin liên tục thay đổi. Từ thực tế đó nảy sinh nhu cầu thay đổi hành vi của các thực thể để đạt được một nghi thức chung trong việc thương lượng. Hơn nữa, việc di chuyển các thành phần của ứng dụng tiến gần đến nguồn thông tin thích hợp cho giao dịch cũng được quan tâm. Vì thế công nghệ mobile agents là một giải pháp rất hấp dẫn cho lĩnh vực này [LAN-98, JEN-96, FUG-98]. 3.2.2. Thu thập thông tin phân tán Trong trường hợp có nhu cầu truy vấn phức tạp, chuyên biệt và liên qua đến nhiều nguồn dữ liệu phân tán, không đồng nhất, việc cử các mobile agent di chuyển đến các nguồn tin để khai thác tại chỗ và cuối cùng là quay về với những thông tin cần thiết sẽ cho phép giảm tải mạng và giải quyết tốt hơn bài toán tương thích. Mobile Agents for WWW Distr. DB Access (University of Cyprus), và Distributed Query Processing via Mobile Agents (University of Maryland), DBMS [PAP-99] là những dự án thuộc loại ứng dụng này. 3.2.3. Theo dõi và thông báo tin cập nhật Ứng dụng cổ điển này làm nổi bật bản chất không đồng bộ của các mobile agent. Các agent có thể được gởi đi, đến nơi có nguồn tin và hoạt động theo dõi nguồn tin ngay cả khi người dùng ngắt kết nối. Sau đó, khi nguồn tin có sự thay đổi , agent sẽ quay về báo cho chủ nhân. Weather Alarm (University of Tromso) và JobFinder (findjobs.com), MOLE Office[BUR-98] là một trong nh ững đại diện của loại ứng dụng này. Các agent có thể được gửi đi để chờ một dạng thông tin nào đó xuất hiện, rồi sau đó báo cho người dùng biết hoặc tự nó có những hành động thích hợp đối với thông tin đó. 3.2.4. Giám sát và phổ biến thông tin Các mobile agents là một minh họa cho mô hình Internet push. Các agent có thể phổ biến tin tức và cập nhật phần mềm tự động cho các nhà sản xuất. Các agent mang các software components cũng như các thủ tục cần thiết đến các máy cá nhân của khách hàng và tự cập nhật phần mềm trên máy đó. Mô hình này giúp cho nhà sản xuất chủ động hơn trong việc phục vụ khách hàng để bảo đảm chất lượng dịch vụ của mình. Mặc khác, các ứng dụng thuộc loại này cũng tỏ ra hiệu quả đối với các mạng cục bộ hay các chương trình quản lý qui trình hoạt động, sản xuất…để giúp người quản trị giám sát các hệ thống con. Có thể tham khảo các dự án Banking Dartflow [CAI-96], Autopilot [FOS-99] để hiểu thêm về loại ứng dụng này. 3.2.5. Xử lý song song Vì các mobile agent có thể tạo ra nhiều bản sao của nó trên mạng, một ứng dụng đầy tiềm năng của mobile agent là quản trị các tác vụ song song. Một ứng dụng đòi hỏi quá nhiều tài nguyên bộ xử lý có thể được phân bố cho các mobile agent mang đi thực hiện trên nhiều máy tính khác nhau để tận dụng các tài nguyên rảnh rỗi và cân bằng tải. Hệ mobile agents không đồng nhất [HER-99] là một minh họa khai thác ưu điểm này của mô hình mobile agents . 3.2.6. Quản trị hệ thống mạng Đối với những hệ thống mạng lớn, việc chẩn đoán lỗi, duy trì sự ổn định của hệ thống là các công việc rất khó khăn. Việc ứng dụng mobile agent vào việc quản trị mạng sẽ giúp cho các công việc chẩn đoán lỗi và duy trì từ xa sự ổn định của hệ thống được dễ dàng hơn [BIE-98]. 3.2.8. Hỗ trợ các thiết bị di động Do đặc điểm tài nguyên hạn chế và không kết nối thường xuyên, việc xây dựng các ứng dụng dựa trên mobile agent với khả năng di chuyển đến các máy tính có cấu hình mạnh hơn để hoạt động (truy vấn cơ sở dữ liệu, tìm tin…) rồi trả kết quả về sẽ là một giải pháp tốt cho người dùng các thiết bị di động. Trong số đề án về loại ứng dụng này có thể kể đến Sony Magics Link PDA (xây dựng trên Telescript), TACOMA [JAC-97], Mobile Agent Middlerware tại Darmouth College [GRA-96], và đề án Docking Laptop tại University of Maryland [LAZ-98]. 4. ĐÁNH GIÁ MỘT SỐ HỆ THỐNG MOBILE AGENTS Các hệ thống được lựa chọn để khảo sát ở đây bao gồm Aglets và Voyager (sản phẩm thương mại), cùng với Mole và Zeus (kết quả nghiên cứu). Cả bốn môi trường này đều sử dụng Java để hỗ trợ phát triển ứng dụng, nhưng mỗi hệ thống có những đặc thù riêng. 4.1. Các hệ thống mobile agents 4.1.1. Aglets Aglets [LAN-98] được xây dựng và phát triển bởi D. B. Lange và IBM Tokyo Research Laboratory. Hiện nay, bộ Aglets Software Development Kit (ASDK) do IBM phát triển đã dừng lại ở phiên bản 1.1 Beta3 trên nền JDK1.1. Phiên bản mớ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. Aglet API là bộ thư viện bao gồm các hàm chuyên biệt dành cho việc phát triển agent. Nhờ vào Aglet API, khả năng nổi tiếng của Java là “viết một lần, thi hành bất cứ đâu” được viết lại là “viết một lần, lưu hành bất cứ đâu”. Một khi aglets đượ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 hệ điều hành và phần cứng bên dưới hay nguồn gốc cụ thể của Aglet API được cài trên máy đang chạy. Trong mô hình đối tượng aglets, một mobile agent là một đối tượng di động có luồng kiểm soát riêng của nó, làm việc theo sự kiện và liên lạc với các agent khác bằng cách truyền thông điệp. Aglets có một cơ chế định danh duy nhất và toàn cục dựa trên URL. Aglets hỗ trợ cơ chế di động yếu (weak- mobility). Các aglets giao tiếp với nhau một cách đồng nhất, và độc lập với vị trí lưu trú thông qua đối tượng proxy. Suốt chu kỳ sống, các aglets sẵn sàng bắt những sự kiện (clone, mobility, persistence) phát sinh trong môi trường để có phản ứng thích hợp. Agent có thể giao tiếp đồng bộ hoặc không đồng bộ thông qua các loại thông điệp: synchronous, one-way, hay future reply. Aglets sử dụng ATP (Agent Transfer Protocol) cho việc di chuyển và giao tiếp. Aglets sử dụng 2 loại mẫu thiết kế chính là chủ-tớ (Master-Slave) và hành trình (Itinerary) cho việc di chuyển của các agent [LAN-98]. Aglets là một trong những platform được sử dụng nhiều nhất để phát triển các hệ thống mobile agent. Một số đề án thực hiện với Aglet có thể kể đến là TabiCan ( - chợ điện tử chuyên bán vé máy bay và tour du lịch trọn gói -, Cps720 (Artificial Intelligence Topics with Agent) tại đại học Ryerson University, Mỹ , Acme – Hệ thống hỗ trợ Sales Order Processing trong việc mua bán chứng khoán, của Đại học Loughborough, Anh. 4.1.2. Voyager Voyager [VOY-02] 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. Tháng 03.2002 sản phẩm Voyager được nhượng lại cho Recursion Software, một công ty chuyên về các sản phẩm viết trên C++ và Java để đm bo cho việc phát triển Voyager sau này. Các phiên bản từ 1.0 đến 3.3 Voyager được phân phối cho các nhà phát triển như một freeware. Hiện tại Voyager đã có phiên bản 4.5 Evaluation hoàn toàn tương thích với JDK1.3, JDK1.2 và JDK1.1. Phiên bản này bao gồm 6 sản phẩm [AOV-01], trong đó sản phẩm chính yếu dùng cho các ứng dụng mobile agent là Voyager ORB Professional. 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
Tài liệu liên quan