Báo cáo khoa học: "Hệ thống multi agent và ứng dụng trong tính toán phân tán" ppsx

12 919 1
Báo cáo khoa học: "Hệ thống multi agent và ứng dụng trong tính toán phân tán" ppsx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Hệ thống multi agent và ứng dụng trong tính toán phân tán Ngô Đăng quang Bộ môn Kết cấu xây dựng Trần Ngọc Linh Bộ môn tự động hóa thiết kế cầu đờng Trờng Đại Giao thông Vận tải Tóm tắt: Software Agent đợc coi l một công nghệ có hiệu quả trong tính toán phân tán. Từ những năm 1990 đến nay, công nghệ liên tục đợc phát triển v đã bắt đầu đợc ứng dụng có hiệu quả trong nhiều lĩnh vực khác nhau. Bi báo tập trung giới thiệu các khái niệm chính về software agent v hệ thống Multiagent cũng nh khả năng ứng dụng của chúng trong tính toán phân tán. Các ví dụ đợc nêu trong bi báo l các ứng dụng đã đợc một số tác giả nớc ngoi v chính các tác giả thực hiện. Summary: Software Agent is one of the most efficient technologies in distributed computing. Since the 1990s this technology is intensively developed and successfully applied in many different fields. This paper presents some main concepts of software agent and multi- agent system as well as their features for distributed computing. The examples given in the paper are applications exercised by some foreign researchers and the authors themselves. I. Tổng quan về tính toán phân tán Tính toán phân tán là phơng pháp tính toán phân quyền và song song, sử dụng hai hay nhiều máy tính đợc nối mạng với nhau để thực hiện một nhiệm vụ chung [10]. Nh vậy, khi sử dụng phơng pháp tính toán phân tán, các ứng dụng và logic nghiệp vụ sẽ đợc phân bố trên nhiều nền tảng khác nhau. Nói cách khác, việc xử lý đợc phân bố trên một hay nhiều máy mà ở đó mỗi quá trình chỉ thực hiện một phần của ứng dụng theo một trình tự nhất định. Các quá trình này có thể không đợc thực hiện đồng thời [9]. CT 2 Có một số lý do làm cho việc tính toán phân tán trong một số dạng ứng dụng là cần thiết. Thứ nhất và điển hình nhất là, việc sử dụng các nguồn lực phân tán sẽ cho phép tăng tốc quá trình tính toán, xử lý một vấn đề nhờ tính song song. Tất nhiên, sự tăng tốc này phụ thuộc vào mức độ song song của vấn đề cần xử lý. Tính song song ở đây đợc hiểu là khả năng có thể chia phạm vi vấn đề thành các phần nhỏ có thể xử lý song song và độc lập. Mô hình tính toán phân tán sẽ làm đơn giản hoá việc giải quyết các vấn đề khi tri thức chuyên gia và nguồn lực để giải quyết chúng có tính phân tán. Trong thực tế, có rất nhiều vấn đề lớn chỉ có thể giải quyết đợc bằng việc sử dụng kết hợp nhiều nguồn lực khác nhau. Các nguồn lực này lại có thể phân tán cả về mặt địa lý, thành phần, nội dung và phạm vi. Với các vấn đề dạng này, mô hình tính toán tập trung là rất khó thực hiện. Nhiều trờng hợp, phơng pháp tập trung là không thể thực hiện đợc do các hệ thống và dữ liệu thuộc về các tổ chức độc lập và chúng đợc yêu cầu phải giữ riêng biệt. Một ví dụ điển hình ở đây là việc thiết kế hay chế tạo các thiết bị máy móc hoặc công trình xây dựng. Các quá trình này đòi hỏi sự tham gia của rất nhiều chuyên gia hay cơ sở sản xuất ở các lĩnh vực rất khác nhau và phần nhiều các công việc mà họ thực hiện là có tính độc lập tơng đối và song song với nhau. Ngoài ra, việc sử dụng mô hình tính toán phân tán trong một số ứng dụng sẽ làm giảm thiểu sự chuyển giao dữ liệu không cần thiết giữa các bộ phận xử lý trong một quá trình. Các thông tin đợc sử dụng có thể phân tán về mặt địa lý, có thể có nhiều thành phần, có thể có nội dung và phạm vi rất lớn. ở các ứng dụng này, các dữ liệu thô sẽ đợc sàng lọc ở các bộ phận xử lý ngoại vi và chỉ các dữ liệu cần thiết mới đợc chuyển về bộ phận xử lý trung tâm [1]. II. Giới thiệu một số công nghệ tính toán phân tán 2.1. COM DCOM Mô hình đối tợng thành phần phân tán DCOM (Distributed Component Object Model) cho phép gọi các đối tợng ở xa sử dụng RPC (Remote Procedure Call). Các đối tợng DCOM thông báo các phơng thức của chúng đến với các ứng dụng thông qua nhiều giao diện. Các giao diện này đợc xây dựng bằng ngôn ngữ định nghĩa giao diện (Interface Definition Language - IDL). Trình biên dịch IDL sẽ tạo ra các thành phần (proxies/stubs) và bộ khung (skeletons) rồi đăng ký chúng trong registry của hệ thống và đồng thời cũng tạo ra các th viện kiểu. Các files này mô tả đối tợng ở xa và các đối tợng này có thể đợc gọi bằng các giao diện đợc cung cấp bởi cơ chế COM. Phơng thức đợc sử dụng ở đây là lời gọi thủ tục từ xa (Object Remote Procedure Call - ORPC). Chuẩn nhị phân của DCOM cho phép các đối tợng có thể đợc viết bằng các ngôn ngữ khác nhau. Mặc dù DCOM đợc Microsoft phát triển nhng nó vẫn đợc sử dụng trong nhiều hệ điều hành khác MS Windows nh UNIX, Apple Macintosh và VSM [6]. 2.2. CORBA CT 2 Rất nhiều tổ chức đã sử dụng kiến trúc môi giới yêu cầu đối tợng phổ thông (Common Object Request Broker Architecture - CORBA) của OMG, một tiêu chuẩn đợc sử dụng nh là công cụ để tích hợp các ứng dụng đa dạng, phân tán với dữ liệu. Ngôn ngữ định nghĩa giao diện của CORBA cho phép ngời phát triển xác định các giao diện hớng đối tợng, không phụ thuộc ngôn ngữ lập trình cho các cấu kiện của ứng dụng và hệ thống. Các định nghĩa IDL đợc lu trữ trong một th viện giao diện, một dạng nh sổ điện thoại cung cấp các giao diện và dịch vụ. Để lập trình phân tán, th viện đối tợng đợc dùng làm trung tâm để kết nối các đối tợng đợc bố trí ở các hệ thống khác nhau. Môi giới yêu cầu đối tợng (Object Request Broker - ORB) của CORBA thực hiện một kênh giao tiếp, qua đó, các ứng dụng có thể truy cập các giao diện của đối tợng để yêu cầu dữ liệu và dịch vụ. Môi trờng đối tợng phổ biến (Common Object Environment - COE) của CORBA cung cấp các dịch vụ ở cấp độ hệ thống nh quản lý vòng đời của các đối tợng đợc truy cập thông qua CORBA, thông báo sự kiện giữa các đối tợng và kiểm soát giao tác và kiểm soát trùng hợp [9]. 2.3. RMI RMI (Remote Method Invocation) cho phép xây dựng các ứng dụng tính toán phân tán bằng Java. Theo công nghệ này, phơng thức của các đối tợng Java có thể đợc gọi từ một ứng dụng nằm ở một máy ảo Java (Java virtual machines JVM) từ xa. Để gọi một đối tợng từ xa, ứng dụng Java phải có tham chiếu đến đối tợng đó. RMI cung cấp một số phơng pháp để một ứng dụng Java có thể nhận đợc tham chiếu của đối tợng ở xa cần thiết. Với RMI, việc phân biệt trình chủ hay trình khách chỉ là tơng đối. Chơng trình có chứa các đối tợng có thể đợc gọi từ xa đợc gọi là trình chủ. Chơng trình này, có thể đồng thời lại là trình khách khi nó gọi đối tợng từ một chơng trình khác. RMI sử dụng phơng pháp tuần tự hoá (serialization) để sắp xếp dữ liệu mà không phá vỡ cấu trúc kiểu của chúng. Giao thức đợc dùng để trao đổi dữ liệu là JRMP (Java Remote Method Protocol). RMI không sử dụng các ngôn ngữ trừu tợng nh IDL để mô tả đối tợng ở trình chủ. Nhợc điểm chính của RMI là chỉ chạy trên môi trờng của Java vì thế yêu cầu ở đây là cả máy chủ và máy khách đều phải đợc cài Java. Một nhợc điểm nữa của RMI là khi kết nối với mạng diện rộng Internet các ứng dụng của RMI bị chặn lại bởi tờng lửa (Firewall) vì RMI không sử dụng cổng 80 là cổng của dịch vụ HTTP (cổng mà hầu nh mọi tờng lửa đều cho qua). Vì thế, để sử dụng RMI trên mạng diện rộng cần phải sử dụng một số cơ chế trung gian phức tạp để sử dụng cổng 80 [6]. 2.4. Webservice Webservice là các ứng dụng phần mềm hoạt động dựa trên nền các giao thức chuẩn của Internet và không phụ thuộc vào hệ thống cũng nh ngôn ngữ lập trình. Về bản chất, webservice là các thủ tục hay hàm có thể thực hiện một số nhiệm vụ nhất định mà một ứng dụng có thể gọi trên Internet. Webservice có thể chia sẻ dữ liệu giữa các hệ thống và ngôn ngữ lập trình. Các ứng dụng sử dụng các dịch vụ của webservice không cần phải biết chi tiết thực hiện của các dịch vụ này mà chỉ cần biết địa chỉ của dịch vụ, kiểu của các tham số đầu vào và tham số đầu ra. CT 2 Do webservice sử dụng các giao thức chuẩn XML với HTTP, SMTP hay FTP nên nó có thể khắc phục đợc các khó khăn có liên quan đến tờng lửa của các công nghệ phân tán khác nh DCOM hay RMI. Một hàm của webservice có thể đợc gọi một cách dễ dàng từ các ứng dụng Web hay ứng dụng thông thờng nếu các ứng dụng này có thể kết nối bằng các giao thức Internet tiêu chuẩn. Nh các ứng dụng phân tán khác, webservice cũng có thành phần service broker để tìm kiếm dịch vụ, service provider cung cấp dịch vụ và service requester là ứng dụng yêu cầu dịch vụ. Ngôn ngữ đợc sử dụng để mô tả webservice là WSDL (Web Service Description Language), một ngôn ngữ dựa trên XML. WSDL cung cấp các thông tin về dịch vụ, địa chỉ cũng nh cách cung cấp dịch vụ của webservice. Các dịch vụ webservice đợc đăng ký và quản lý nhờ các chuẩn đợc định nghĩa bởi UDDI (Universal Description, Discovery, and Integration). Webservice sử dụng SOAP (Simple Object Access Protocol) làm giao thức chuẩn để chuyển giao dữ liệu giữa các thành phần của ứng dụng. Đây là giao thức dựa trên XML và hoạt động không phụ thuộc vào môi trờng. Hiện nay, các tiêu chuẩn đợc sử dụng trong webservice vẫn đang ở trong giai đoạn phát triển và cha thật đầy đủ. Khi so sánh với các công nghệ khác nh CORBA, DCOM, tính hiệu quả của công nghệ này không thật cao do các thông điệp đợc mô tả ở dạng văn bản và cần phải chuyển đổi ở hai đầu [6]. III. Hệ thống multi - Agent Các công nghệ tính toán phân tán kể trên có dạng phân tán đối tợng kiểu khách - chủ (client - server) với địa chỉ của các đối tợng cung cấp dịch vụ là cố định. Bên cạnh các lợi thế về tốc độ tính toán, tính đa dạng trong hoạt động, v.v các công nghệ dạng này cũng có những hạn chế quan trọng nh đòi hỏi tính đồng bộ cao, tốc độ đờng truyền cao và độ trễ thấp. Một số công nghệ đòi hỏi dữ liệu phải đợc truyền qua một số cổng nhất định và do đó, không thích hợp với mạng diện rộng hay Internet. Ngoài ra, các công nghệ nêu trên ít thích hợp với các hệ thống tính toán trên các thiết bị di động do các thiết bị này có khả năng tính toán thấp và đờng truyền dữ liệu hạn chế. Software Agent là một công nghệ tính toán phân tán mới, có thể khắc phục đợc các nhợc điểm kể trên. 3.1. Khái niệm về Software Agent Tính toán phân tán dựa trên công nghệ Software Agent, sau đây gọi là Agent, là một phơng pháp mới, đợc đánh giá là có hiệu quả. Agent đợc phát triển dựa trên ý tởng về trí tuệ nhân tạo phân tán (Distributed Artificial Intelligence - DAI) và nhất là mô hình của Hewitt từ những năm 1970. Trong mô hình của mình, Hewitt đã đề xuất một khái niệm về một đối tợng có tính tự chủ, tơng tác và hoạt động cạnh tranh (concurrently-executing) tức là một tác tử (actor). Tuy nhiên, công nghệ này chỉ đợc phát triển mạnh mẽ sau khi Internet đợc sử dụng rộng rãi [7], [8]. Cho đến nay vẫn cha có một định nghĩa thống nhất về Agent. Tuy nhiên, có thể mô tả Agent nh là một đối tợng phần mềm hoạt động một cách tơng đối độc lập, tự chủ và có khả năng cộng tác với nhau trong một môi trờng để hoàn thành một nhiệm vụ định trớc [8]. Đặc điểm cơ bản của Agent là có khả năng đóng gói mã lệnh, dữ liệu và cả trạng thái thi hành, nhờ vậy có thể chuyển công việc đang thực hiện tại một máy đến một máy khác. Nh vậy, so với các công nghệ tính toán phân tán trớc đây, Agent tỏ ra là công nghệ tiên tiến nhất. CT 2 Một số đặc trng quan trọng của Agent là Tính tự chủ. Tính tự chủ thể hiện khả năng tự kiểm soát bản thân của Agent. Mỗi Agent đợc trang bị một cơ sở kiến thức và một cơ cấu đa ra các quyết định từ cơ sở kiến thức của nó và các dữ kiện mà nó thu đợc từ bên ngoài. Sau khi đợc giao nhiệm vụ, Agent tự hoạt động mà không cần phải đợc điều khiển từ bên ngoài. Tính di động. Khi di chuyển trong mạng, các Agent đóng gói mã lệnh, dữ liệu và trạng thái thực hiện do đó, chúng có thể thực hiện một nhiệm vụ đợc giao trên nhiều trạm máy tính khác nhau. Tính thích ứng. Một Agent có khả năng nhận thức đợc về môi trờng của mình và có những đáp thích hợp với sự thay đổi môi trờng để thoả mãn các mục tiêu đợc giao. Tính chủ động. Các Agent có khả năng thể hiện các ứng xử hớng mục tiêu bằng việc hoàn thành các kế hoạch để thoả mãn các mục tiêu thiết kế. Tính xã hội. Các Agent có khả năng tơng tác với nhau và cả với con ngời để thoả mãn các mục tiêu thiết kế. 3.2. Khái niệm về hệ thống multi - Agent Các Agent hoạt động và tồn tại trong một số môi trờng, bao gồm cả môi trờng tính toán và môi trờng vật lý. Mặc dù có những trờng hợp một Agent có thể hoạt động có hiệu quả một mình nhng, trong hệ thống các mạng máy tính, các tính huống nh vậy rất hiếm gặp. Thờng gặp là trờng hợp các Agent tơng tác với nhau. Hệ thống hay môi trờng mà, các Agent tơng tác đợc với nhau gọi là hệ thống multi-Agent. Đây là một môi trờng mạng gắn kết một cách tự do các Agent để giải quyết một vấn đề mà từng Agent riêng biệt không giải quyết đợc. Việc sử dụng hệ thống multi-Agent cho phép một vấn đề có thể đợc giải quyết một cách phân tán trên nhiều hệ thống phần mềm và phần cứng khác nhau. Hiện nay, hệ thống multi-Agent đợc coi là cách tốt nhất để mô tả và thiết kế các hệ thống tính toán phân tán. Trong một hệ thống multi - Agent, các software Agent phải có hai khả năng cơ bản là tìm kiếm đối tác, tức là các Agent khác, và hợp tác với chúng để thực hiện công việc [8]. Việc hỗ trợ các Agent trong việc tìm kiếm đối tác đợc thực hiện bởi các Agent trung gian (middle Agent). Các Agent thông thờng sử dụng Agent trung gian để khai báo khả năng của mình hay tìm các Agent khác cung cấp dịch vụ mà chúng cần. Một lợi thế của Agent trung gian là chúng cho phép các hệ thống multi-Agent có thể hoạt động một cách ổn định khi đối mặt với những vấn đề nh sự xuất hiện, biến mất hay chuyển động của các Agent. Dạng Agent trung gian phổ biến có dạng trang vàng (yellow page). Dạng Agent này hỗ trợ các Agent thông thờng trong việc tìm kiếm dịch vụ của các Agent khác dựa trên những khả năng đã đợc đăng nhập. Tơng tác là một trong những đặc trng quan trọng nhất của một Agent. Các Agent thờng xuyên tơng tác với nhau để chia sẻ thông tin và thực hiện nhiệm vụ chung. Để tơng tác, các Agent phải sử dụng chung các ngôn ngữ và giao thức trao đổi, các cấu trúc chung về nội dung thông tin và cùng chia sẻ ngữ nghĩa. CT 2 Ngôn ngữ trao đổi giữa các Agent ACL (Agent Communication Language) chủ yếu là ngôn ngữ khai báo đợc phát triển dựa trên lý thuyết hành vi ngôn ngữ (illocutionary acts) nh yêu cầu, mệnh lệnh. Ngôn ngữ khai báo đợc sử dụng phổ biến nhất hiện nay là KQML [8]. Cấu trúc ngữ nghĩa của thông điệp giữa các Agent đợc định nghĩa bởi bản thể (ontology). Ontology là các cấu trúc để mô tả khái niệm và quan hệ giữa chúng trong phạm vi vấn đề. Ontology mà các Agent sử dụng để mô tả phạm vi vấn đề phải có cấu trúc giống nhau. Một khi các Agent trao đổi các ontology chung, chúng sẽ sử dụng các ontology này để hiểu nhau và thực hiện các hành vi xác định. 3.3. Lĩnh vực áp dụng Các hệ thống multi - Agent thích hợp cho các ứng dụng có những đặc trng sau: Có tính phân tán cố hữu: dữ liệu và thông tin của chúng đợc xử lý ở các vị trí địa lý khác nhau, ở các thời gian khác nhau, đợc tổ chức thành các nhóm mà việc truy cập chúng cần các ngữ nghĩa và ngôn ngữ khác nhau (sự phân tán về ngữ nghĩa) hay đợc tổ chức thành các nhóm mà việc truy cập chúng cần các khả năng về nhận biết, tri thức khác nhau (sự phân tán về chức năng). Có tính phức hợp cố hữu: chúng là những vấn đề quá lớn không thể xử lý đợc bằng một hệ thống riêng, tập trung do các giới hạn về công nghệ phần cứng và phần mềm. Việc mở rộng các hệ thống tập trung là rất khó khăn, tốn thời gian, tiền của. Hơn nữa việc mở rộng này rất không bền vững và sẽ không còn tác dụng khi phạm vi vấn đề lại tiếp tục đợc mở rộng. 3.4. Các lợi thế của các hệ thống multi - Agent Với t cách là một hệ thống tính toán phân tán, các hệ thống multi-Agent có các đặc trng chính sau: Có tốc độ v hiệu quả xử lý cao: Các Agent có thể hoạt động theo kiểu không đồng bộ và song song có thể làm tăng tốc toàn bộ quá trình xử lý. Chắc chắn v tin cậy: Sự h hỏng của một vài Agent sẽ không nhất thiết làm cho toàn bộ hệ thống không còn hoạt động nữa vì các Agent còn lại có thể tiếp quản các phần việc của chúng. Có tính điều chỉnh đợc v tính mềm dẻo cao: Hệ thống có thể bổ sung thêm các Agent khi phạm vi vấn đề đợc mở rộng và không ảnh hởng đến sự hoạt động của các Agent khác. Có chi phí hợp lý: Hệ thống multi - Agent có chi phí hợp lý hơn so với các hệ thống tập trung do hệ thống multi - Agent có thể đợc ghép từ các hệ thống con đơn giản có giá thành thấp. Có khả năng dùng lại: Một số Agents cụ thể có thể đợc phát triển từ đầu một cách riêng biệt bởi một số chuyên gia trong khi phần còn lại của hệ thống vẫn đợc tiếp tục sử dụng. CT 2 IV. Xây dựng hệ thống multi - Agent Với các ứng dụng thông thờng, các hệ thống multi Agent thờng đợc phát triển dựa trên các hệ thống khung (framework). Hiện nay, có nhiều hệ thống khung đã đợc giới thiệu. Điển hình trong số này là JACK của Agent Oriented Software Pty. Ltd., JADE (Java Agent DEvelopment Framework) Telecom Italia, Aglets đợc phát triển bởi IBM Nhật bản, MAST (MultiAgent Systems Tool) của Trờng Đại học tổng hợp kỹ thuật Madrid. Phần sau đây giới thiệu cách xây dựng hệ thống multi-Agent với JADE do đây là hệ thống tơng đối mạnh và đợc sử dụng khá phổ biến. 4.1. Giới thiệu về JADE JADE (Java Agent Development Framework) là một môi trờng hỗ trợ phát triển hệ thống multi-Agent dựa trên nền tảng Java. JADE bao gồm các thành phần chính sau: Môi trờng thực thi, là môi trờng mà trong đó các Agent sống và hoạt động. Môi trờng này cần đợc kích hoạt ở từng máy tính trớc khi các Agent có thể bắt đầu hoạt động. Một số th viện Java chứa các lớp mà ngời lập trình cần sử dụng để phát triển các Agent. Một loạt các công cụ đồ hoạ để quản lý và kiểm soát hoạt động của các Agent. Mỗi một môi trờng thực thi của JADE đợc gọi là một container. Mỗi container chứa một hay một số các Agent. Một tập hợp các container đợc gọi là một platform. Mỗi platform phải có một container chính (main container) và các container khác, khi khởi động, đều phải đăng ký với container chính các thông tin về tên máy (host) và cổng (port) của chúng. Mỗi container chính chứa hai Agent đặc biệt AMS (Agent Management System) và DF (Directory Facilitator). AMS có nhiệm vụ quản lý các Agent có trong các container của cả platform thông qua dịch vụ đặt tên để đảm bảo rằng, các Agent chỉ có một tên duy nhất trong toàn bộ platform. Các Agent trong các platform cũng đợc quản lý (xoá, tạo mới) nhờ AMS. DF có nhiệm vụ cung cấp các trang vàng để qua đó, một Agent có thể tìm thấy các Agent khác cung cấp các dịch vụ mà Agent đó cần để thực hiện công việc của mình. Một khi các Agent đã biết tên của nhau, chúng có thể liên lạc đợc với nhau không phụ thuộc vào vị trí vật lý của chúng. Trên hình 1, Agent A2 có thể liên lạc đợc với Agent A3 ở cùng container, với Agent A1 hoặc A4 ở khác container hay với A5 ở khác platform. Nh trên đã nêu, JADE là môi trờng thực thi và phát triển ứng dụng Agent trên nền Java nên ngôn ngữ lập trình cho các hệ thống chính là Java và một Agent trong JADE thực chất là một đối tợng Java. CT 2 Hình 1. Cấu trúc của hệ thống multiAgent đợc xây dựng với JADE 4.2. Xây dựng hệ thống multi-Agent với JADE Các nội dung chính trong quá trình xây dựng hệ thống bao gồm [2], [3]: Xây dựng kiểu Agent: Mỗi kiểu Agent trong JADE đợc tạo ra từ việc mở rộng lớp jade.core.Agent và cài đặt hàm setup. Xác định nhiệm vụ cho Agent: Các nhiệm vụ mà một Agent cần hoàn thành là một đối tợng thuộc một kiểu là lớp con của lớp jade.core.behaviours.Behaviour. Đối tợng nhiệm vụ, sau khi đợc tạo ra, sẽ đợc gán cho từng Agent. Mỗi lớp nhiệm vụ (lớp con của lớp Behaviour) sẽ mô tả các ứng xử của Agent cũng nh điều kiện kết thúc công việc. Thực hiện quá trình trao đổi giữa các Agent: Thông tin giữa các Agent đợc thực hiện theo kiểu gửi thông điệp không đồng bộ. Định dạng của thông điệp trong JADE là ACL, đã đợc FIPA chuẩn hoá. Mỗi thông điệp là một đối tợng thuộc lớp jade.lang.acl.ACLMessage. Lớp ACLMessage xác định các thông tin về ngời gửi, ngời nhận, ngôn ngữ, bản thể (ontology), nội dung, v.v. của thông điệp. Thông điệp đợc gửi và nhận bằng các hàm đã đợc định nghĩa sẵn trong lớp Agent. Đăng nhập v tìm kiếm dịch vụ: Nh đã nêu ở trên, các Agent đăng ký dịch vụ của mình cũng nh tìm kiếm dịch vụ của các Agent khác thông qua Agent DF. Thông điệp giữa Agent DF và các Agent khác chính là ACL. Tuy nhiên, ngôn ngữ và bản thể của thông điệp với DF đã đợc FIPA chuẩn hoá do đó, các Agent có thể làm việc đợc với các DF ở các platform khác nhau. Xử lý nội dung thông điệp: các thông điệp có thể đợc trao đổi và xử lý theo 3 cách. Cách thứ nhất là sử dụng một đối tợng thuộc kiểu ContentManager để chuyển đổi một đối tợng Java thành chuỗi ký tự hoặc chuỗi byte và đặt chuỗi này vào mục nội dung của thông điệp ACL. Đối tợng này cũng có nhiệm vụ thực hiện quá trình ngợc lại, chuyển chuỗi thành đối tợng. Cách tiếp theo là sử dụng phơng pháp tuần tự của chính Java để trao đổi dữ liệu. Phơng pháp khác là sử dụng đối tợng thuộc kiểu bản thể để mô tả cấu trúc ngữ nghĩa của nội dung các thông điệp. CT 2 V. Ví dụ ứng dụng Phần sau đây giới thiệu một số ứng dụng điển hình về tính toán phân tán trong ngành xây dựng đã đợc thực hiện các hệ thống multi-Agent. Tất cả các hệ thống này đã đợc phát triển bằng JADE. 5.1. Hệ thống multi - Agent hỗ trợ thiết kế hợp tác Các dự án thiết kế trong xây dựng luôn có sự tham gia của nhiều đối tác hoặc văn phòng thiết kế. Trong hầu hết các trờng hợp, các văn phòng thiết kế này nằm ở các vị trí địa lý khác nhau và sử dụng nhiều hệ thống phần mềm khác nhau. Cho đến nay, thông tin trao đổi hầu hết đều ở dạng các tập tin dữ liệu tĩnh và đòi hỏi phải đợc xử lý bằng tay thờng mất nhiều thời gian và công sức. Việc sử dụng các hệ thống multi-Agent cho phép dữ liệu đợc xử lý một cách tự động thông qua các Agent với các nhiệm vụ đã đợc định nghĩa sẵn. Quá trình hợp tác thực hiện một dự án của các văn phòng thiết kế có thể đợc chia thành 3 bộ phận chính là cá nhân hoặc đơn vị thiết kế, dữ liệu thiết kế cần trao đổi, xử lý và hệ thống phần mềm đợc sử dụng trong thiết kế hợp tác. Tơng ứng với 3 bộ phận trên, sẽ có 3 nhóm Agent đợc phát triển: nhóm Agent làm việc trực tiếp với các tác nhân, nhóm Agent có nhiệm vụ xử lý và trao đổi dữ liệu và nhóm Agent kết nối với các phần mềm (hình 2). Thông qua hệ thống các Agent kể trên, các dữ liệu và phần mềm khác nhau có thể làm việc chung đợc với nhau [3]. Hình 2. Hệ thống multi-Agent trong hệ thống hỗ trợ thiết kế hợp tác 5.2. Hệ thống multi-Agent hỗ trợ phân tích mỏi trong kết cấu thép Rất nhiều bài toán xây dựng đòi hỏi khối lợng và thời gian tính toán lớn có thể đợc chia thành nhiều bài toán nhỏ, độc lập và đợc phân tích song song với nhau. Khác với mô hình tính toán song song đợc thực hiện trên các máy tính song song đắt tiền, việc áp dụng các hệ thống multi-Agent cho phép thực hiện các tính toán song song trên mạng máy tính đơn giản nh mạng PC. CT 2 Một ví dụ chứng minh tính hiệu quả của phơng pháp này đã đợc thể hiện ở tính toán mỏi do gió của cáp treo cầu vòm ( Hình) đợc Jelic, Bilek, Gálffy, Hartmann thực hiện [4]. Hình 3. Mô hình kết cấu cần khảo sát Quá trình tính toán mỏi do gió bao gồm các bớc chính sau: Tạo tập hợp các tốc độ gió theo dạng xác suất, Tính toán dao động của cáp treo, Tính toán kết cấu dới tác dụng của tải trọng động, Tính toán phá hoại mỏi. ứng với mỗi cấp tốc độ gió cần xây dựng một mô hình và thực hiện tính toán. Với ví dụ đã nêu, các tác giả cần thực hiện tính toán với 1226 mô hình. Việc tính toán song song đã đợc thực hiện với một hệ thống multi Agent đợc phát triển với JADE. Hệ thống multi Agent đợc cấu tạo từ một main-Agent và một loạt slave-Agent. Main-Agent cung cấp giao diện đồ hoạ và quản lý các mô hình tính toán. Trong khi đó, các slave-Agent di chuyển trên mạng máy tính để thực hiện quá trình tính toán. Kết quả tính toán song song trên các mạng PC đợc thể hiện trên hình 4. CT 2 Hình 4. Thời gian tính toán mỏi kết cấu trên mạng PC 5.3. Hệ thống multi - Agent hỗ trợ phân tích cục bộ kết cấu cầu Một hệ thống tơng tự trên đã đợc xây dựng ở Trờng Đại học Giao thông Vận tải (Hà Nội) để tính toán phân tán các bộ phận chi tiết của kết cấu. Trong yêu cầu tính toán cầu vợt Ngã T Sở (Hà Nội), có 6 khu vực cần đợc thực hiện phân tích cục bộ là các khu vực neo cáp ở dầm chính, khu vực neo cáp ở đỉnh tháp cũng nh khu vực chung giữa chân tháp và dầm chính (hình 6). Bê tông ở tất cả các khu vực đều đợc mô hình hoá bằng các phần tử khối sáu mặt. Cáp dự ứng lực đợc mô hình hoá thành các phần tử thanh và liên kết với các phần tử bê tông xung quanh bằng các liên kết cứng. Trung bình, mỗi mô hình ứng với một khu vực tính toán có chứa hơn 80.000 phần tử và hơn 100.000 nút (hình 7). Thời gian tính toán một mô hình trên một máy PC mất trung bình hơn 120 phút. [...]... pháp tính toán phân quyền và song song, sử dụng hai hay nhiều máy tính đợc nối mạng với nhau để thực hiện một nhiệm vụ chung Nh vậy, khi sử dụng phơng pháp tính toán phân tán, một ứng dụng lớn sẽ đợc chia thành nhiều bài toán nhỏ, đợc thực hiện phân tán, độc lập và đồng thời trên các máy tính khác nhau Khác với các máy song song đắt tiền, việc xây dựng các mô hình tính toán phân tán dựa trên hệ thống. .. máy tính nối mạng với nhau cho phép xây dựng đợc các sức mạnh tính toán lớn dựa trên nguồn lực của các máy tính rẻ Có rất nhiều mô hình và công nghệ tính toán phân tán đã đợc phát triển trong thời gian vừa qua Điển hình trong số chúng là CORBA, DCOM, RMI, Webservice và Software Agent So với các công nghệ tính toán phân tán khác, Software Agent thể hiện tính mềm dẻo cao, dễ sử dụng và có thể áp dụng. .. nh phân phối các mô hình cha đợc tính toán cho các ClientAgent tự do, tiếp nhận các mô hình đã đợc phân tích xong cũng nh giao tiếp với kỹ s phân tích ClientAgent có nhiệm vụ tiếp nhận dữ liệu, nh mô hình tính, từ MainAgent và chuyển dữ liệu này cho chơng trình tính thông qua các kết nối với WrapperAgent Sau khi chuyển dữ liệu cho WrapperAgent, ClientAgent sẽ chờ đợi cho đến khi mô hình đợc tính toán. .. toán xong và thực hiện việc phân tích dữ liệu kết quả Dữ liệu đã đợc phân tích sẽ đợc chuyển về cho MainAgent Tại một thời điểm, chỉ có một ClientAgent đợc khởi tạo và hoạt động trên một máy PC WrapperAgent là Agent có nhiệm vụ kết nối chơng trình phân tích kết cấu với môi trờng tính toán phân tán Thông qua WrapperAgent, dữ liệu đầu vào cũng nh kết quả phân tích sẽ đợc trao đổi giữa chơng trình phân tích... Với một hệ thống gồm 3 máy tính cá nhân phục vụ tính toán và một Laptop làm máy chủ thực hiện việc xây dựng mô hình và quản lý, hệ thống multi- Agent đã thực hiện thành công kết quả nh dự kiến Sau khoảng gần 5 giờ đồng hồ, toàn bộ 6 mô hình đã đợc phân tích xong Khối lợng công việc này, nếu đợc thực hiện tuần tự trên một PC thì thời gian dự kiến tối thiểu là 12 giờ VI Kết luận Tính toán phân tán là... dụng đợc cho nhiều dạng bài toán khác nhau CT 2 Software Agent là các đơn vị phần mềm có thể hoạt động một cách tơng đối độc lập, tự chủ và có khả năng cộng tác với nhau trên mạng máy tính để hoàn thành một nhiệm vụ định trớc Multi- Agent là môi trờng cho phép các Agent hợp tác đợc với nhau Các hệ thống multi- Agent có thể đợc sử dụng có hiệu quả vào những lĩnh vực rất khác nhau trong ngành xây dựng nh thiết... vực cần phân tích chi tiết CT 2 Hình 7 Mô hình phân tích chi tiết ở một khu vực kết cấu Nhiệm vụ của hệ thống multi- Agent hỗ phân tích chi tiết kết cấu có nhiệm vụ là cầu nối chuyển giao dữ liệu giữa các chơng trình phân tích kết cấu, cụ thể trong ví dụ này là chơng trình MIDAS/Civil Môi trờng phát triển hệ thống là JADE Các Agent cần đợc tạo ra bao gồm: MainAgent có nhiệm vụ quản lý các mô hình tính. .. PC với hệ thống muti -Agent Sau khi từng máy PC đợc khởi động, một chơng trình Java ở dạng Windows-Service sẽ đợc tự động kích hoạt và chơng trình này sẽ khởi tạo một ClientAgent Các ClientAgent sẽ đăng nhập với MainAgent để đợc phân công công việc Việc phân phối công việc của MainAgent đợc thực hiện một cách đơn giản theo số lợng các mô hình đợc tạo ra, mỗi mô hình sẽ đợc chia cho một ClientAgent Với... Integration of Peerto-Peer and MultiAgent Architectures, Báo cáo hội thảo, 2005 [5] Hartmann et all Parallel Software Framework for Fatigue Analyses Based on Software Agents, Institute for Computational Engineering, Ruhr-University Bochum, Germany, Báo cáo hội thảo, 2005 [6] Hartwig Gunzer, Sales Engineer Introduction to Web Services, Borland, 2002 [7] Hyacinth S Nwana, Software Agents: An Overview, Intelligent... vực rất khác nhau trong ngành xây dựng nh thiết kế hợp tác với việc tham gia của tri thức chuyên gia ở rất nhiều lĩnh vực khác nhau, tính toán song song các bài toán lớn nhng có thể chia thành các các bài toán con độc lập, v.v Tài liệu tham khảo [1] Gerhard Weiss MultiAgent Systems - A Modern Approach to Distributed Modern Approach to Artificial Intelligence, Massachusetts Institute of Technology, . báo tập trung giới thiệu các khái niệm chính về software agent v hệ thống Multiagent cũng nh khả năng ứng dụng của chúng trong tính toán phân tán. Các ví dụ đợc nêu trong bi báo l các ứng dụng. cách phân tán trên nhiều hệ thống phần mềm và phần cứng khác nhau. Hiện nay, hệ thống multi- Agent đợc coi là cách tốt nhất để mô tả và thiết kế các hệ thống tính toán phân tán. Trong một hệ thống. Hệ thống multi- Agent trong hệ thống hỗ trợ thiết kế hợp tác 5.2. Hệ thống multi- Agent hỗ trợ phân tích mỏi trong kết cấu thép Rất nhiều bài toán xây dựng đòi hỏi khối lợng và thời gian tính toán

Ngày đăng: 06/08/2014, 13:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan