Qua nghiên cứu và cài đặt một hệ thống đấu giá thực nghiệm theo phương pháp BRAIN, chúng tôi nhận thấy phương pháp này có một số ưu điểm so với các phương pháp khác.
a)So sánh với phương pháp hướng đối tượng
Phương pháp BRAIN có một số điểm ưu việt so với phương pháp hướng đối tượng sau đây:
Phương pháp hướng đối tượng thường sử dụng mô hình tương tác giữa các đối tượng là mô hình truyền thông điệp dưới dạng các lời gọi thủ tục. Tức là tương tác giữa các đối tượng xảy ra khi một đối tượng gọi thực hiện một phương thức của một đối tượng khác và giá trị trả về của thủ tục này được coi là hồi đáp của đối tượng nhận cho đối tượng gửi. Ví dụ, phương thức
public Situation bid(int price, Agent sender) {
// if the bid is more than or equal to the proposed price if (price.getAmount() >= proposed.getAmount()) // record the bid
reached = price; // and the bidder agent
winnBidder = sender;
// return the situation with the current winner return new Situation(winnBidder);
}
Theo cách này, giá trị trả về của phương thức bid của Bidder là tình trạng cuộc đấu giá hiện thời với Bidder thắng cuộc chính là Bidder gửi. Điều này chỉ đúng với Bidder trả giá đầu tiên. Những Bidder trả giá sau đó sẽ không thể là Bidder thắng cuộc. Vì vậy, kết quả trả về như trong đoạn mã trên là không chính xác. Trong khi đó, đối với phương pháp BRAIN, tương tác này được cài đặt bằng 3 hành động khác nhau bid, askSituation và notifySituation. Sau khi nhận được hành động bid, Auctioneer không hồi
đáp kết quả ngay mà chờ cho đến khi nhận được từ Bidder sự kiện
askSituation mới thực hiện hành động notifySituation để thông báo tình trạng hiện thời. Do đó, kết quả mà Bidder nhận được là hoàn toàn chính xác.
Tương tác trong các phương pháp hướng đối tượng được thực hiện bằng cách đối tượng này gọi thủ tục của đối tượng khác, kết quả trả về được coi là hồi đáp của bên nhận nên mọi tình huống và cách thức xử lý các tình huống đó đều phải được xác định rõ ràng ở pha thiết kế. Do đó, tương tác sẽ không phản ánh được tính tự chủ, phản ứng và linh động của agent.
Việc tất cả các phương thức phải được cài đặt với quyền truy cập công cộng (public) và được gọi bởi các đối tượng khác sẽ làm cho tính bảo mật của hệ thống giảm đi. Với phương pháp BRAIN, mọi tương tác đều được xử lý ngầm bởi Server agent nhờ đó hệ thống được bảo mật tốt hơn.
b)So sánh với các phương pháp hướng agent không sử dụng role
Đối với các phương pháp không sử dụng role, các phương pháp dựa trên role nói chung và phương pháp BRAIN nói riêng thể hiện một số ưu điểm sau đây:
Tương tác dựa trên role tạo nên sự độc lập tương đối giữa các agent. Đối với phương pháp BRAIN, tương tác giữa các agent thuần túy thông qua việc trao đổi các sự kiện mà không có bất kỳ mối liên quan nào khác. Hành động của agent này được hồi đáp bằng một hành động khác thông qua sự phiên dịch của Server agent nên giữa các role agent có sự độc lập tương đối.
Với các hệ thống không sử dụng role, mọi khả năng của một agent đều phải được cài đặt trong bản thân agent đó. Một agent Bidder sẽ phải bao gồm cả các tính năng thông thường như tìm kiếm, di chuyển, đăng nhập…cũng như các tính năng thương mại như trả giá, thanh toán…Chính điều này đã làm cho các agent trở nên cồng kềnh, khó khăn trong việc di chuyển giữa các vị trí. Trong khi đó, với các phương pháp sử dụng role, để cài đặt một agent đảm nhiệm chức năng Bidder, các tính năng thương mại sẽ được bao gói toàn bộ trong role Bidder, các tính năng thông thường được cài đặt trong agent. Khi di chuyển giữa các vị trí, chỉ có agent gốc di chuyển, nhờ đó dễ dàng hơn.
Trong phương pháp không sử dụng role, mỗi agent bao gồm nhiều phương thức liên quan đến nhiều agent khác. Do đó, rất khó để sử dụng lại một phần của hệ thống. Trong khi đó, chúng ta hoàn toàn có thể sử dụng lại một số role đã phát triển hoàn thiện cho các ứng dụng khác trong phương pháp BRAIN. Việc tích hợp các role này vào hệ thống khác cũng đơn giản hơn nhờ tài liệu đặc tả XRole.
KẾT LUẬN
Nhằm mục đích phát triển việc sử dụng role trong kỹ nghệ phần mềm hướng agent, luận văn này đã tập trung nghiên cứu các vấn đề sau đây:
Tương tác trong hệ phần mềm: Các thành phần trong hệ phần mềm luôn
phụ thuộc lẫn nhau. Tương tác là phương thức thực hiện cộng tác giữa các thành phần do đó tương tác đóng vai trò quan trọng trong hoạt động của hệ thống. Tương tác đa agent không đơn thuần là truyền thông điệp giữa hai bên như tương tác hướng đối tượng mà là tương tác chủ động, nhiều chiều, có tính lan truyền, khó đoán trước và đã phần nào mang tính xã hội.
Role trong phát triển phần mềm: Khái niệm role được sử dụng trong phát
triển phần mềm đã đem lại nhiều lợi ích như tăng tính tổng quát, tính sử dụng lại của phần mềm và đặc biệt là phân tách các vấn đề về tương tác với các vấn đề về thuật toán. Sự phân tách này giúp quá trình phát triển hệ đa agent dễ dàng hơn bởi người cài đặt agent và role gần như làm việc độc lập nhau. Khảo sát các mô hình dựa trên role cho thấy nhiều mô hình chỉ tập trung vào một pha trong quy trình phát triển phần mềm, gây nên sự manh mún trong giải pháp. BRAIN là một trong số ít mô hình hỗ trợ việc áp dụng role vào nhiều pha của vòng đời phát triển phần mềm. Khung BRAIN cung cấp một mô hình role và tương tác dựa trên role khá đơn giản. Mô hình role dưới dạng tập hợp các hành động và sự kiện; tương tác là khi một Agent thực hiện một hành động, hành động đó được dịch thành sự kiện và chuyển đến Agent nhận. Tập kí hiệu XRole dựa trên XML được coi là một trong những ưu điểm của BRAIN so với các phương pháp khác. Các tài liệu đặc tả role bằng XRole có thể được sử dụng ở nhiều pha như phân tích, thiết kế và cài đặt, do đó tạo tính thống nhất, tương thích và linh động cho quá trình phát triển. Hai bản cài đặt cơ sở tương tác khác nhau
RoleSystem, RoleX hoạt động trên các platform khác nhau cho thấy tính linh động cao của khung BRAIN.
Cài đặt thực nghiệm hệ thống đấu giá theo phương pháp BRAIN: Hệ thống
đấu giá là hệ thống có tương tác phức tạp. Thương lượng đấu giá được xem là một trong những loại tương tác phản ánh đầy đủ nhất các đặc tính của tương tác đa agent. Việc cài đặt hệ thống đấu giá tập trung vào đặc tả các role chính Bidder, Seller và Auctioneer bằng tập kí hiệu XRole của khung BRAIN. Sau đó, sử dụng các đặc tả này để xác định các hành động, sự kiện của các role đồng thời chuyển sang mã nguồn Java để hỗ trợ pha cài đặt. Bước phát triển sau cùng là hoàn thiện cài đặt hệ thống đấu giá bằng ngôn ngữ Java trên nền Jade.
Khảo sát kết quả hoạt động đấu giá của hệ thống. Hệ thống hoạt động ổn định, đảm bảo về mặt thời gian và tài nguyên hệ thống. Quá trình đấu giá diễn ra tự động và cho kết quả hợp lý. Qua đó, phương pháp BRAIN thể hiện nhiều ưu điểm so với phương pháp khác.
Hướng phát triển trong tương lai
Luận văn nghiên cứu tổng quan các mô hình tương tác dựa trên role và tập trung vào phương pháp BRAIN. Bản thân BRAIN không tránh khỏi những hạn chế như chưa chú trọng đến tính bảo mật, chưa hỗ trợ toàn bộ quá trình phát triển phần mềm…Một số hướng phát triển sau đây sẽ được chúng tôi tập trung nghiên cứu trong thời gian tới:
Vấn đề sử dụng mô hình role cho nhiều loại tương tác khác nhau, không chỉ dừng lại ở thương lượng đấu giá mà còn mở rộng đối với thương lượng song phương với cách thức thương lượng phức tạp hơn, liên quan đến nhiều thuộc tính hơn như màu sắc, kích thước, chất lượng…
Áp dụng phương pháp BRAIN, đặc biệt là sử dụng nền tương tác RoleX để phát triển những ứng dụng có quy mô lớn, thể hiện tốt hơn bản chất của phương pháp sử dụng role.
Nghiên cứu mở rộng các phương pháp hiện thời bằng cách tích hợp thêm các công cụ đã chuẩn hóa như UML để các mô hình role trở nên hoàn thiện hơn và có thể trở thành một trong những mô hình chuẩn cho phát triển phần mềm.
Vấn đề khác mà chúng tôi quan tâm ở đây là tính bảo mật của hệ thống: hệ thống cần có một cơ chế thích hợp để kiểm soát việc đảm nhận, giải phóng role, ví dụ như thiết lập thời gian timeout cho các đăng ký đảm nhận role…
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Nguyễn Phương Lan, Hoàng Đức Hải, “XML nền tảng và ứng dụng”, Nhà xuất bản Lao động và Xã hội, 2005.
[2] Trần Đình Quế, Nguyễn Thị Thanh Huyền, ―Tương tác dựa trên role trong hệ đa agent‖, Kỷ yếu Hội thảo Quốc gia về Công nghệ thông tin
và Truyền thông lần thứ IX, trang 349, 06/2006, Đà Lạt, Việt Nam.
Tiếng Anh
[3] S.T. Acuna, N. Juristo, ―Assigning people to roles in software projects,‖ Softw. Pract. Exp, vol. 34, no. 7, pp. 675–696, Jun. 2004.
[4] C. Bartolini, C. Preist, ―A Framework for Automated Negotiation‖,
HPL-2001-90, 2001.
[5] B. Bauer, J.P. Müller, J. Odell, ―Agent UML: A Formalism for Specifying Multiagent Interaction‖, International Journal of Software Engineering and Knowledge Engineering 11, 2001.
[6] D. Baumer, D. Ritchie, W. Siberski, M. Wulf, ―The Role Object Pattern‖, Proc. 4th
Pattern Languages of Programming conference (PLoP), Monticello, Illinois, USA, September 1997.
[7] M. Becht, T. Gurzki, J. Klarmann, M. Muscholl, ―ROPE: Role Oriented Programming Environment for Multiagent Systems‖, Proc.
Fourth IFCIS Conference on Cooperative Information Systems (CoopIS'99), Edinburgh, Scotland, September 1999.
[8] G. Booch, ―Object-oriented analysis and design with applications‖,
Addison Wesley, 1994.
[9] G. Cabri, L. Ferrari, L. Leonardi, ―Agent role-based collaboration and coordination: a survey about existing approaches‖, The 2004 IEEE
Systems, Man and Cybernetics Conference, Netherlands, October, 2004. [10] G. Cabri, L. Ferrari, L. Leonardi, ―BRAIN: a Framework for Flexible
Role-based Interactions in Multiagent Systems‖, Proc. First European
Workshop in Multi Agent Systems (EUMAS), Oxford, UK, December 2003.
[11] G. Cabri, L. Ferrari, L. Leonardi, F. Zambonelli, ―Implementing role- based interaction for Internet agents”, 2003 International Symposium
on Applications and the Internet, Orlando (USA), January 2003.
[12] G. Cabri, L. Ferrari, L. Leonardi, F. Zambonelli, ―Role-based Approaches for Agent Development‖, AAMAS'04, July 19-23, New
York, USA, 2004.
[13] G. Cabri, L. Ferrari, L. Leonardi, F. Zambonelli, ―Role-based Approaches for Engineering Interactions in Large-scale Multi-Agent Systems‖, 2001.
[14] G. Cabri, L. Ferrari, L. Leonardi, F. Zambonelli, ―RoleX Environment for Multi-Agent Cooperation‖, 2004.
[15] G. Cabri, L. Ferrari, L. Leonardi,―Supporting the Development of
Multi-Agent ”, The International Workshop on AOSE-2005.
[16] G. Cabri, L. Ferrari, L. Leonardi, F. Zambonelli, “XRole: XML Roles
for Agent Interactions”, in Proceedings of the 3rd International Symposium “From Agent Theory to Agent Implementation”, at the 16th European Meeting on Cybernetics and Systems Research (EMCSR 2002), Wien, April 2002.
[17] B.G. Cain, J.O. Coplien, ―A role-based empirical process modeling environment,‖ in Proc. 2nd Int. Conf. Softw. Process, Berlin, Germany,
Feb. 1993, pp. 125–133.
[18] C. Cheong, M. Winikoff, ―Hermes: Designing Goal-Oriented Agent Interactions‖, Proceedings of 4th international joint conference on Autonomous agents and multiagent systems, 2005.
[19] C. Cheong, M. Winikoff, ―Improving Flexibility and Robustness in Agent Interactions: Extending Prometheus with Hermes‖, Software Engineering for Multi-Agent Systems IV, 2005.
[20] V. Dignum, F. Dignum, ―Task and Social Coordination in Agent Organizations‖, 2005.
[21] M. Fasli, ―Social Interactions in Multi-Agent Systems: A Formal Approach‖, Proc. First European Workshop on Multi-Agent Systems
(EUMAS), Oxford, UK, December 2003.
[22] J. Ferber, O. Gutknecht, ―AALAADIN: A metamodel for the analysis and design of organizations in multi-agent systems‖, Proc. Third
International Conference on Multi-Agent Systems (ICMAS'98), 1998 [23] FIPA English Auction Interaction Protocol Specification, 2001.
[24] FIPA, http://fipa.umbc.edu/mirror/specifications/identifiers.html
[25] M. Fowler, ―Dealing with Roles‖,
http://martinfowler.com/apsupp/roles.pdf, 1997.
[26] A.C.B. Garcia, A. Lopes, C. Bentes,―Electronic Auction with
autonomous intelligent agents: Finding opportunities by being there‖,
Inteligencia Artificial, Revista Iberoamericana de Inteligencia Artificial, 2001.
[27] D. Gelernter. ―Generative Communication in Linda.‖ ACM
Transactions on ProgrammingLanguages and Systems, 7(1):80–112, 1985
[28] Jade, http://jade.tilab.com
[29] N.R. Jennings and M. Wooldridge, ―Agent-Oriented Software Engineering‖, Proceedings of the 9th MAAMAW-99, 2000.
[30] R.C. King, V. Sethi, ―The impact of socialization on the roles adjustment of information systems professionals,‖ J. Manage. Inf. Syst.,
vol. 15, no. 4, pp. 195–217, Spring 1998.
[31] S. Kraus, ―Automated Negotiation and Decision Making in Multiagent Environments”, the 9th ECCAI Advanced Course ACAI, 2001
[32] J. Murdoch, J. A. McDermid, ―Modeling engineering design process with role activity diagrams,‖ Trans. Soc. Des. Process Sci., vol. 4, no. 2,
pp. 45–65, Jun, 2000.
[33] J. Mylopoulos, M. Kolp, J. Castro, ― UML for Agent-Oriented Software
Development: The Tropos Proposal‖, 2001.
[34] J. Odell, H.V.D. Parunak, M. Fleischer, ―The Role of Roles in Designing Effective Agent Organization‖, Lecture Notes on Computer
Science volume 2603, Springer, Berlin, 2003.
[35] M.A. Ould, Business Processes: Modeling and Analysis for Re- Engineering and Improvement. Hoboken, NJ: Wiley, 1995.
[36] G.A. Papadopoulos, ―Models and Technologies for the Coordination of
Internet Agents: A Survey‖, 2000.
[37] C.F.G. Parr, P. Morrow, ―A Comparison of Mobile Agent and SNMP Message Passing for Network Security Management Using Event Cases‖, 2006.
[38] S. Paurobally, J. Cunningham, N.R. Jennings, ―Developing Agent Interaction Protocols Using Graphical and Logical Methodologies‖,
1st international workshop on programming multi-agent systems, Melbourne, Australia, 2003.
[39] I. Rahwan,S.Ramchurn, N.R.Jennings, P. McBurney,― Argumentation
based Negotiation‖,The Knowledge Engineering Review, 2004.
[40] T. Reenskaug, P. Wold, O.A. Lehne, ―Working with Objects — The OORAM. ‖, Software Engineering Method (Manning, Greenwich 1996).
[41] D. Riehle, T. Gross, ―Role model based framework design and integration,‖ ACM SIGPLAN Notices, vol. 33, no. 10, pp. 117–133, Oct. 1998.
[42] T. Skylogiannis, G. Antoniou, N. Bassiliades, ―A System for Automated
Agent Negotiation with Defeasible Logic-Based Strategies – Preliminary Repo‖, Proceedings. The 2005 IEEE International
Conference on Volume, Issue, 2005.
[43] F. Steimann, ―A radical revision of UML’s role concepts,‖ in Proc.
UML, 2000, pp. 194–209.
[44] F. Steimann, “Role = Interface: A Merger of Concepts”, Journal of Object-Oriented Programming, 2001.
[45] K.P. Sycara, ―Multiagent Systems‖, Publication of American
Association of Artificial Intelligence, 1998.
[46] M. Turoff, S. R. Hiltz, “The electronic journal: A progress report‖, J. Amer. Soc. Inf. Sci., vol. 33, no. 4, 1982.
[48] M. VanHilst, D. Notkin, ―Using role components to implement collaboration- based designs,‖ in Proc. ACM Conf. OOPSLA, San
Jose, CA, 1996, pp. 359–369.
[49] M. Winikoff, "Designing Commitment-Based Agent Interactions,"
IEEE/WIC/ACM International Conference on Intelligent Agent Technology (IAT 2006 Main Conference Proceedings) (IAT'06), 2006. [50] M. Wooldridge, ―An Introduction to Multiagent Systems”, Published by
John Wiley and Sons, 2002.
[51] M. Wooldridge, N. R. Jennings, D. Kinny, ―The Gaia Methodology for Agent-Oriented Analysis and Design‖, Journal of Autonomous Agents
and Multi-Agent Systems, Vol. 3, No. 3, pp. 285-312, 2000.
[52] L. Yu, B.F. Schmid, ―A conceptual framework for agent-oriented and role-based workflow modelling‖, Proc. 1st International Workshop on
Agent-Oriented Information Systems, G. Wagner and E. Yu eds., Heidelberg, June 1999.
[53] L. Zhao, E. Kendall, ―Role modeling for component design,‖ in Proc.
33rd Hawaii Int. Conf. Syst. Sci., 2000, p. 8048.
[54] H.Zhu, ―A Role Agent Model for Collaborative Systems‖, Proceedings
of International Conference on Information and Knowledge Engineering (IKE‟03), USA, 2003.
[55] H. Zhu, M. Zhou, P. Seguin, ―Supporting Software Development With Roles‖, System, Man and Cybernetics, Part A, IEEE Transactions on