MIAC: Methodology for Intelligent Agents Componentware
Total Page:16
File Type:pdf, Size:1020Kb
MIAC: Methodology for Intelligent Agents Componentware vorgelegt von Diplom-Informatiker Axel Heßler von der Fakult¨at IV { Elektrotechnik und Informatik der Technischen Universit¨at Berlin zur Erlangung des akademischen Grades Doktor der Ingenieurwissenschaften - Dr.-Ing. - genehmigte Dissertation Promotionsausschuss: Vorsitzender: Prof. Dr. Klaus Obermayer Berichter: Prof. Dr. Dr. h.c. Sahin Albayrak Berichter: Prof. Dr. Rainer Unland Tag der wissenschaftlichen Aussprache: 17. Dezember 2012 Berlin 2013 D 83 Abstract The DAI-Labor at Technische Universit¨at Berlin has concerned itself with Agent-Orientation for more than 15 years. Numerous projects have studied the application of the Agent-Oriented Programming (AOP) paradigm to real-world problems in diverse application areas such as automotive, enter- tainment, production control, connected living, office and software enginee- ring (as applying research results on the field itself). Distributed artificial intelligence and agent technology promise to be the key factors to engi- neering large-scale, distributed and complex software systems and services. They make it easy to understand large problem fields, and provide means to their solution, based on natural, plain and intelligible metaphors. Unfortunately, the research area of Agent-Orientation is not a homoge- neous scientific sector. It shows a high degree of diversification in all aspects of software engineering. For software industry it is not easy to use research results due to an unmanageable and disjoint amount of small solutions, and often numberless distinct answers to the same question. On top of this co- mes the fact that no or not many products support the industrial software engineer for the development of agent-based software systems and services. In practice, software engineering is well-understood as can be seen in the software game industry or, as the more recent example, in social media. It is now time to choose an integrative approach that picks the best of both worlds and thereby relates agent-oriented solutions to best practices in software engineering. It should enable software engineers to comprehend when to use which method and technique to understand and solve the what in time and budget. This thesis integrates three keystones of Agent-Oriented Software Engi- neering (AOSE): • an agent-oriented framework, • the agent-oriented methodology • an agent-oriented and agent-based tool suite. i The result is submitted to an iterative and incremental process itself in order to streamline these building blocks for fast and efficient development of agent-based applications and services. The methodological approach is directed towards development of app- lications built on a knowledge-based, service-oriented, multi-agent compo- nent architecture. The methodology is named Methodology for Intelligent Agent Componentware (MIAC). MIAC guides you through the process of working out the artifacts which then can be directly implemented, tested and deployed. MIAC is an attempt towards a lean, industrial strength, agent-oriented software-engineering process. The architecture and its implementation, Java-based Intelligent Agent Componentware (JIAC), has undergone a streamlining process itself. Where JIAC IV has been a full-featured, agent-oriented framework that incorpo- rates many Artificial Intelligence (AI) concepts, the successor JIAC V is a modular architecture that provides a minimal but powerful agent core and infrastructure, and then offers optional plugins that can be used to address different aspects of an agent-based solution. Parallel to that, developer and management tools support the metho- dology and complement the framework. Here, the starting point was a full- featured tool suite that supports all development aspects in a 1:1 mapping. While advancing the framework and methodology and building on a stan- dard developer platform, the tool suite itself became more streamlined, modular and easier to use. Finally, the results of this thesis are products that have been develo- ped, applied and evaluated in projects together with students of the TU Berlin, other Competence Centers of the DAI-Labor and also with partners from different industrial sectors. While many Agent-Oriented (AO) metho- dologies and tools usually reflect theories and laboratory experiments, the framework, methodology and tools presented in this thesis have developed market-ready prototypes and competitive solutions that have also success- fully shown their value in different programming contests. ii Zusammenfassung Das DAI-Labor der Technischen Universit¨at Berlin besch¨aftigt sich seit uber¨ 15 Jahren mit Agentenorientierung. Zahlreiche Projekte haben die Anwendung des agentenorientierten Programmierparadigmas auf reale Pro- bleme in verschiedenen Anwendungsgebieten, wie z.B. dem Automotive- Bereich, der Unterhaltung, der Produktionskontrolle, dem vernetztes Woh- nen, dem Buro¨ , und der Softwaretechnik (als Anwendung auf sich selbst), untersucht. Verteilte kunstliche¨ Intelligenz und Agententechnologien sind die Schlussel¨ fur¨ ingenieurm¨aße Entwicklung von großen, komplexen und verteilten Softwaresystemen und Diensten. Sie vereinfachen das Verst¨andnis unubersichtlicher¨ Probleme, stellen Hilfsmittel zu deren L¨osung bereit, und fußen dabei auf naturlichen,¨ einfachen und verst¨andlichen Metaphern. Leider ist das Forschungsgebiet der Agentenorientierung kein homoge- ner Wissenschaftszweig. Es zeigt ein hohes Maß an Diversifikation in al- len Aspekten der Softwaretechnik. Fur¨ die Softwareindustrie ist es schwie- rig, die Forschungsergebnisse zu nutzen, aufgrund der unuberschaubaren¨ Menge an Einzell¨osungen, wobei man noch aus unz¨ahligen, gleichartigen L¨osungsans¨atzen fur¨ ein Problem w¨ahlen muss. Dazu kommt, dass es keine oder kaum Produkte gibt, die den Softwareingenieur in der Industrie bei der Entwicklung von agentenbasierten Systemen und Diensten unterstutzen.¨ In der Praxis ist Softwaretechnik eine wohlverstandene Ingenieurswis- senschaft, wie man am Beispiel der Spielesoftware-Industrie oder, als neues- tes Beispiel, den Social Media sehen kann. Es ist jetzt an der Zeit, einen integrativen Ansatz zu erarbeiten, der die besten Aspekte beider Welten ausw¨ahlt und dabei die agentenorientierten L¨osungen mit den bew¨ahrten Verfahren der Softwaretechnik verbindet. Das soll dem Softwareingenieur verst¨andlich machen, wann er welche Methode oder Technik benutzt, um das Was zu verstehen und zu l¨osen; und das in der vorgegebenen Zeit und dem finanziellen Rahmen. Diese Arbeit integriert drei Grundpfeiler der agentenorientierten Soft- wareentwicklung: • ein agentenorientiertes Rahmenwerk iii • eine agentenorientierte Methodologie • einen agentenorientierten und agentenbasierten Werkzeugkasten Das Ergebnis wird selbst einem interativen und inkrementellen Prozess un- terworfen, um diese Bausteine fur¨ die schnelle und effiziente Entwicklung von agentenbasierten Anwendungen und Diensten so rationell wie m¨oglich zu gestalten. Der methodologische Ansatz richtet sich dabei auf die Entwicklung von Anwendungen auf der Basis einer wissensbasierten, dienstorientierten, mehragentischen Komponentenarchitektur. Er heißt Methodology for Intel- ligent Agent Componentware (kurz: MIAC). MIAC fuhrt¨ durch den Prozess zur Herausarbeitung jener Artefakte, die direkt implementiert, getestet und benutzt werden k¨onnen. MIAC strebt dabei einen schlanke, in der Industrie akzeptierten, agentenorientierten Softwareentwicklungsprozess an. Die Architektur und die Implementierung des Rahmenwerks, Java-based Intelligent Agent Componentware (JIAC), unterliegt dabei dem selben Ra- tionalisierungsprozess. JIAC IV ist noch ein umfangreiches, agentenori- entiertes Rahmenwerk, welches sehr viele unterschiedliche Konzepte der kunstlichen¨ Intelligenz ein sich vereint. Der Nachfolger JIAC V ist eine modulare Architektur, die einen minimalen, aber leistungsf¨ahigen Agenten- kern und eine entsprechende Infrastruktur bereitstellt. Dazu bietet JIAC V ein Reihe von Erweiterungen, die optional sind und bestimmte Aspekte einer agentenbasierten L¨osung adressieren. Parallel dazu unterstutzen¨ Entwickler- und Administratorwerkzeuge die Methodologie und erg¨anzen das Rahmenwerk. Der Ausgangspunkt dabei ist ein komplette Werkzeugunterstutzung¨ fur¨ den gesamten Entwicklungs- zyklus. Mit der fortschreitenden Entwicklung der Methodologie und des Rahmenwerks, zusammen mit der Benutzung einer Standardplattform fur¨ Entwicklerwerkzeuge, konnte die Werkzeugunterstutzung¨ selbst rationali- siert und vereinfacht werden. Die Ergebnisse dieser Arbeit sind Produkte, die in Zusammenarbeit mit Studenten der TU Berlin, anderen Kompetenzzentren des DAI-Labors und mit Partnern aus unterschiedlichen Industriebereichen entwickelt wurden. Normalerweise reflektieren agentenorientierte Methodologien und Werkzeu- ge theoretische Arbeiten oder Laborexperimente. Mit dem Rahmenwerk, der Methodologie und den Werkzeugen, die in dieser Arbeit vorgestellt wer- den, wurden bereits produktnahe Prototypen entwickelt, und sie haben ihre Leistungsf¨ahigkeit in verschiedenen Programmierwettbewerben erfolgreich gezeigt. iv Danksagung Die Entwicklung einer Methodologie zur Entwicklung von Software dauert in der Regel mehrere Jahre. Ich danke Prof. Dr. Sahin Albayrak fur¨ die langfristige Unterstutzung¨ meiner Arbeit. Ich danke meinen Kollegen Dr. Benjamin Hirsch, Dr. Jan Keiser, Tho- mas Konnerth, Claus Schenk, Silvan Kaiser, Tobias Kuster,¨ Marcel Patzlaff, Tuguldur, Nils Masuch, Marco Lutzenberger,¨ Michael Burkhard, Alexander Thiele,