THE AGENT SYSTEMS ENGINEERING METHODOLOGY (ASEME) Νικόλαος Σπανουδάκης ΕΕΔΙΠ ΙΙ Γενικό Τμήμα Πολυτεχνείου Κρήτης Αθήνα, 18 Μαΐου, 2011
Περιεχόμενα παρουσίασης Εισαγωγή Παρουσίαση των μοντέλων της Γλώσσας Μοντελοποίησης Πρακτόρων (Agent MOdeling Language – AMOLA) Παρουσίαση της Μεθοδολογίας Δημιουργίας Πρακτοροστραφών Συστημάτων (Agent Syst. Engineering Methodology – ASEME) Δια και ενδο-πρακτορικός έλεγχος (inter and intra-agent control) Συμπεράσματα – Μελλοντικές επεκτάσεις 12/5/ Ν. Σπανουδάκης
Τοποθέτηση στον επιστημονικό χώρο Η Τεχνολογία Λογισμικού (Software Engineering, IEEE, 1990) : Εφαρμόζει μια συστηματική, μεθοδική προσέγγιση στην ανάπτυξη, λειτουργία και συντήρηση του λογισμικού Μια διαδικασία ανάπτυξης λογισμικού (software process) απαντά στα ερωτήματα (Boehn, 1988): Τι θα κάνουμε μετά; Για πόσο χρόνο θα συνεχίσουμε να το κάνουμε; Μια μεθοδολογία ανάπτυξης λογισμικού (software methodology) είναι ένα προδιαγεγραμμένο και οργανωμένο σύνολο τεχνικών και κανόνων οι οποίοι ορίζουν από ποιον και με ποια σειρά θα χρησιμοποιηθούν οι τεχνικές (Tolvanen, 1998) 12/5/20113 Ν. Σπανουδάκης
Πρακτοροστραφής Μηχανική Λογισμικού Agent Oriented Software Engineering (AOSE) Από τον χώρο της κατανεμημένης τεχνητής νοημοσύνης και των συστημάτων πολλαπλών πρακτόρων (ΣΠΠ) – Multi-Agent Systems (MAS) δημιουργήθηκε η ανάγκη για την ανάπτυξη λογισμικού το οποίο θα είναι (Wooldridge and Jennings, 1995; Weiss, 2003): Αυτόνομο (autonomous) Κοινωνικό (social) Αντιδραστικό (reactive) Ικανό να παίρνει πρωτοβουλίες (pro-active) Προσαρμοστικό (adaptive) Διαρκές (persistent) 12/5/20114 Ν. Σπανουδάκης
Οι πιο γνωστές μεθοδολογίες AOSE The Gaia Methodology (Wooldridge et al., 2000) Agent UML (Odell et al., 2000) Multi-agent Systems Engineering (Deloach et al., 2001) PASSI (Burrafato and Cossentino, 2002) Prometheus (Padgham and Winikoff, 2003) Tropos (Bresciani et al., 2004) ADELFE, Ingenias, … 12/5/20115 Ν. Σπανουδάκης
Γιατί χρειαζόμαστε μια νέα Μεθοδολογία; Τι λείπει; Μια σαφής διαδικασία μετατροπής των μοντέλων των διαφορετικών φάσεων σε πρόγραμμα υπολογιστή (Model-driven Engineering orientation) Η απεικόνιση πολύπλοκων συστημάτων σε διαφορετικά επίπεδα αφαίρεσης (abstraction) Μια μέθοδος ενσωμάτωσης των πρωτοκόλλων επικοινωνίας και των ικανοτήτων ενός πράκτορα Η δυνατότητα μοντελοποίησης ΣΠΠ ανεξάρτητα από το χρησιμοποιούμενο μοντέλο σκέψης (agent mental model) χρησιμοποιώντας τις έννοιες της ικανότητας και λειτουργίας (capability and functionality) Βοήθεια στην αναγνώριση των πρακτόρων Η προσέγγιση των μη-λειτουργικών απαιτήσεων … 12/5/20116 Ν. Σπανουδάκης
Προεπισκόπηση της ASEME 12/5/20117 Ν. Σπανουδάκης
Μηχανική Οδηγούμενη από Μοντέλα Model Driven Engineering (MDE) MDE (Beydeda et al., 2005) είναι η συστηματική χρήση μοντέλων ως πρωταρχικά εργαλεία καθόλο τον κύκλο ζωής του έργου λογισμικού στοχεύοντας σε φορητότητα, διαλειτουργικότητα και επαναχρησιμότητα Βασίζεται σε μετασχηματισμούς μοντέλων και σε μεταμοντέλα (Jouault and Bézivin, 2006) 12/5/20118 Ν. Σπανουδάκης
Μετασχηματισμοί Μοντέλων Model Transformation Μετασχηματισμός: Είσοδος: το μοντέλο πηγής Ma που είναι σύμφωνο με το μεταμοντέλο MMa Έξοδος: το μοντέλο στόχος Mb που είναι σύμφωνο με το μεταμοντέλο MMb Τέσσερις τύποι μετασχηματισμών (Langlois et al., 2007 ): Μοντέλο σε μοντέλο (M2M) Μοντέλο σε κείμενο (M2T) Κείμενο σε μοντέλο (T2M) Κείμενο σε κείμενο (T2T) 12/5/20119 Ν. Σπανουδάκης
Το μεταμεταμοντέλο ecore Του Eclipse Modeling Framework (EMF) 12/5/2011 Ν. Σπανουδάκης 10
Μοντέλα AMOLA: Ανάλυση Απαιτήσεων Το Μοντέλο Δραστών- Στόχων (SAG) βασίζεται στο actor diagram της μεθοδολογίας Tropos Το μεταμοντέλο του ορίζεται σύμφωνα με το μεταμεταμοντέλο Ecore (EMF) Meetings Manager Personal Assistant Request new meeting Learn user habits Faculty Personnel Manage meetings 12/5/ Ν. Σπανουδάκης
12/5/2011 System Μοντέλα AMOLA: Ανάλυση Συστήματος To Διάγραμμα Περίπτωσης Χρήσης (SUC) βασισμένο στα UML use cases Και το μεταμοντέλο του Personal Assistant Request new meeting Manage meetings Learn user habits Faculty Personnel 12 Ν. Σπανουδάκης Meetings Manager
Μοντέλα AMOLA: Ανάλυση Συστήματος (συνέχεια) Το Μοντέλο Ρόλων (SRM) βασίζεται στο Gaia roles model And its metamodel definition Role: Personal Assistant Capabilities and Protocols: learn user habits, request new meeting: personal assistant, … Activities: learn user preference, update user preferences, … Liveness: personal assistant = request new meeting || learn user habits learn user habits = learn user preference. update user preferences … 12/5/ Ν. Σπανουδάκης
Όπου η γραμματική για τις φόρμουλες ορίζεται με BNF: Η σημασία των συμβολισμών 12/5/2011 Ν. Σπανουδάκης 14 OperatorInterpretation x. yx followed by y x | yx or y occurs x*x occurs 0 or more times x+x occurs 1 or more times x ω x occurs infinitely often [x]x is optional x || yx and y interleaved |x ω | n x occurs infinitely often n times in parallel
AMOLA: Φάση Σχεδίασης inter και intra-agent control Μεταμοντέλο: 12/5/ Ν. Σπανουδάκης Τα μοντέλα δια (EAC) και ενδο- πρακτορικού ελέγχου (IAC) βασίζονται στο διάγραμμα καταστάσεων
Βασισμένο στον τυπικό ορισμό ενός διαγράμματος καταστάσεων: Τέτοιοι ορισμοί είναι αναγκαίοι για τον ορισμό εργαλείων CASE (Computer- aided software engineering) 12/5/2011 Ν. Σπανουδάκης 16
Μεθοδολογία ASEME Ορίζεται σύμφωνα με το Μεταμοντέλο Περιγραφής Διαδικασιών Ανάπτυξης Λογισμικού SPEM (Software Process Engineering Metamodel) της OMG Συμβολισμοί: 12/5/2011 Ν. Σπανουδάκης 17
Οι Μετασχηματισμοί στην ASEME Οι μετασχηματισμοί είναι πλήρως αυτοματοποιημένοι Το μοντέλο μιας προηγούμενης φάσης μετασχηματίζεται σε ένα αρχικό μοντέλο της επόμενης φάσης (initial model) Ο μηχανικός επεξεργάζεται και ραφινάρει το αρχικό μοντέλο δημιουργώντας την τελική έκδοση (refined model) 12/5/ Ν. Σπανουδάκης
ASEME: Φάση Ανάλυσης Απαιτήσεων 12/5/2011 Ν. Σπανουδάκης 19
Δημιουργία και Επεξεργασία του Μοντέλου Δραστών-Στόχων (SAG) Meetings Manager Personal Assistant Request new meeting Learn user habits 12/5/ Ν. Σπανουδάκης
ASEME: Φάση Ανάλυσης Συστήματος 12/5/ Ν. Σπανουδάκης
Ο μετασχηματισμός SAG 2 SUC Meetings Manager Personal Assistant Request new meeting Learn user habits Meetings Manager Personal Assistant Request new meeting Learn user habits 12/5/ Ν. Σπανουδάκης
Επεξεργασία του μοντέλου SUC Meetings Manager Personal Assistant Request new meeting Learn user habits Send new request Receive new results Update user preferences Learn user preference Send new results Receive new request > 12/5/ Ν. Σπανουδάκης
Ο μετασχηματισμός SUC 2 SRM Meetings Manager Personal Assistant Request new meeting Learn user habits Send new request Receive new results Update user preferences Learn user preference Send new results Receive new request > 12/5/ Ν. Σπανουδάκης
Ο μετασχηματισμός SUC 2 SRM Personal Assistant > Role: Capabilities and Protocols: Activities: Personal Assistant Learn user habits Request new meeting Learn user habits Send new request Receive new results Learn user preference Update user preferences Request new meeting Send new request Receive new results Update user preferences Learn user preference 12/5/ Ν. Σπανουδάκης
Εκλέπτυνση SRM Role: Personal Assistant Capabilities and Protocols: manage meetings, learn user habits, negotiate meeting date, request change meeting, request new meeting Activities: get user request, read schedule, show results, learn user preference, update user preferences, send change request, receive change results, send new request, receive new results, receive proposed date, decide response, send results, receive outcome, update schedule Liveness: personal assistant = ? manage meetings = get user request ? read schedule ? request change meeting ? request new meeting? show results learn user habits = learn user preference ? update user preferences request new meeting = send new request. receive new results request change meeting = send change request. receive change results negotiate meeting date = receive proposed date. (decide response. send results. receive outcome)+ ? update schedule 12/5/ Ν. Σπανουδάκης
Εκλέπτυνση SRM Role: Personal Assistant Capabilities and Protocols: manage meetings, learn user habits, negotiate meeting date, request change meeting, request new meeting Activities: get user request, read schedule, show results, learn user preference, update user preferences, send change request, receive change results, send new request, receive new results, receive proposed date, decide response, send results, receive outcome, update schedule Liveness: personal assistant = (manage meetings. learn user habits) ω || (negotiate meeting date) ω manage meetings = get user request. (read schedule | request change meeting | request new meeting). show results learn user habits = learn user preference. update user preferences request new meeting = send new request. receive new results request change meeting = send change request. receive change results negotiate meeting date = receive proposed date. (decide response. send results. receive outcome)+. update schedule 12/5/ Ν. Σπανουδάκης
ASEME: Φάση Σχεδίασης 12/5/ Ν. Σπανουδάκης
Μετασχηματισμός SRM 2 IAC Liveness: personal assistant = (manage meetings. learn user habits) ω || (negotiate meeting date) ω learn user habits = learn user preference. update user preferences x || y xωxω x. y 12/5/ Ν. Σπανουδάκης
Μετασχηματισμός IAC 2 JADE For each node in S If node is root then create Agent class Else if λ(node)=”BASIC” then create a SimpleBehaviour Else if λ(node)=”AND” then create a ParallelBehaviour (|| gaia op.) Else if sons(node).size() = 2 and there exists transitionExpression x | (node.2, x, node.2) belongs to δ then create a CyclicBehaviour (ω gaia op.) Else if sons(node).size() = 3 and there exists transitionExpression x | (node.2, x, node.2) belongs to δ then create a SimpleBehaviour (+ gaia op.) Else if there exists x belongs to sons(node) | λ(x)=CONDITION then If sons(node).size() = 4 then create a SimpleBehaviour (* gaia op.) Else create a SequentialBehaviour (| gaia op.) End if Else create a SequentialBehaviour (. gaia op.) End if End for 12/5/ Ν. Σπανουδάκης
Δια και ενδο-πρακτορικός έλεγχος Ο δια-πρακτορικός έλεγχος (EAC) είναι ένα διάγραμμα καταστάσεων το οποίο ορίζει την παράλληλη συμπεριφορά δύο ή περισσοτέρων πρακτόρων Ο ενδο-πρακτορικός έλεγχος (IAC) συντονίζει τις αλληλεπιδράσεις μεταξύ των ικανοτήτων ενός πράκτορα Κάθε ρόλος σε ένα μοντέλο EAC μπορεί να ενσωματωθεί σε ένα IAC και μπορεί να εκλεπτυνθεί: Μετατρέποντας μια κατάσταση σε πολύπλοκη κατάσταση (superstate) με υπο-καταστάσεις (substates) Προσθέτοντας καταστάσεις των οποίων οι μεταβάσεις δεν έχουν συνθήκες αμέσως μετά το START state (αρχικοποίηση) ή πριν το END (αποθήκευση αποτελέσματος) Το IAC επιτρέπει την παράλληλη εκτέλεση πολλών δια- πρακτορικών πρωτοκόλλων 12/5/ Ν. Σπανουδάκης
Ενσωματώνοντας ένα μοντέλο EAC σε ένα μοντέλο IAC 12/5/ Ν. Σπανουδάκης
Υπο-διάλογοι (sub-dialogs) 12/5/ Ν. Σπανουδάκης
Ενσωματωμένοι διάλογοι (embedded dialogs) 12/5/ Ν. Σπανουδάκης
Μετασχηματισμός IAC σε μοντέλο διαδικασίας (process model) Εμπειροτεχνική μέθοδος για τον μετασχ/σμό ενός IAC σε μοντέλο διαδικασίας Βοηθάει στην επαλήθευση, προσομοίωση και βελτιστοποίηση (ASK-IT project) 12/5/ Ν. Σπανουδάκης
Εμπειρικά αποτελέσματα εφαρμογής ASEME με τις τεχνολογίες JADE (target agent platform) Rhapsody (CASE tool, target java platform) Eclipse (integrated development environment) EMF – ecore (metamodel definition) OMG MOF (XMI representation of models) OMG HUTN (free text model representation) ATL (M2M transformation) Epsilon (T2M transformation) Xpand (M2T transformation) Micro Saint (process validation and optimization) 12/5/ Ν. Σπανουδάκης
Δουλεύοντας το μοντέλο SAG 12/5/ Ν. Σπανουδάκης
Μετασχηματισμός M2M 12/5/ Ν. Σπανουδάκης
Μετασχηματισμός M2M (συνέχεια) 12/5/ Ν. Σπανουδάκης
Το πλάνο του μετασχηματισμού 12/5/2011 Ν. Σπανουδάκης 40 XMI: XML Metadata Interchange
Μετασχηματισμός T2M 12/5/ Ν. Σπανουδάκης
Μετασχηματισμός M2T 12/5/ Ν. Σπανουδάκης
Μετασχηματισμός M2T - JADE 12/5/ Ν. Σπανουδάκης
Μετασχηματισμός M2T–Market miner 12/5/ Ν. Σπανουδάκης
Συμπεράσματα Η ASEME (μαζί με την AMOLA) είναι μια οδηγούμενη από μοντέλα μεθοδολογία ανάπτυξης συστημάτων πρακτόρων η οποία: Ξεκινάει από την ανάλυση απαιτήσεων και φτάνει στην δημιουργία του κώδικα Ενσωματώνει τους ρόλους των πρακτόρων σε διάφορα πρωτόκολλα στις ικανότητες ενός πράκτορα χρησιμοποιώντας ένα κοινό φορμαλισμό (statechart) Έχει επαληθευτεί εμπειρικά με δύο εφαρμογές σε πραγματικά συστήματα και μία σαν παράδειγμα για την αντιπαράθεσή της με άλλες αντίστοιχες μεθοδολογίες 12/5/ Ν. Σπανουδάκης
Μελλοντικές Επεκτάσεις Δημιουργία καλύτερων γραφικών εργαλείων στο eclipse για την υποστήριξη των φάσεων ανάπτυξης Βελτίωση του αυτόματα δημιουργούμενου κώδικα για το JADE, ενσωμάτωση περισσότερης πληροφορίας από τις εκφράσεις μετάβασης, ενσωμάτωση σε περιβάλλον OSGi Αυτοματοποίηση του μετασχηματισμού του IAC σε process model (επιλογή ανάμεσα από XPDL, BPMN, ??) Ανάλυση απόδοσης σε μεγάλης κλίμακας συστήματα Συστηματική συλλογή και επεξεργασία εμπειρικών αποτελεσμάτων χρήσης της ASEME και σύγκριση με άλλες μεθοδολογίες ίσως στα πλαίσια κάποιου μεταπτυχιακού μαθήματος Δυνατότητα του πράκτορα να εκμεταλλευτεί την πληροφορία της λειτουργίας του IAC στο run-time (σύγχρονος χώρος έρευνας: για να εμφανίσει ικανότητα αυτό-ελέγχου (self- assessment) και αυτο-επισκευής (self-healing) (σύγχρονος χώρος έρευνας: autonomic systems) Εξελικτικές Μέθοδοι στα statecharts για προσαρμοστικότητα (σύγχρονος χώρος έρευνας: adaptive systems) 12/5/ Ν. Σπανουδάκης
Βρείτε περισσότερες πληροφορίες Στην διατριβή μου Σε δημοσιευμένα άρθρα σε AAIJ 06, EUMAS 07, IAT 08, AIMSA 08, AIAI 09 (submitted extended version for JEIS), PRIMA 09 Στο Ή μέσω ηλ. ταχ/μείου στο 12/5/2011 Ν. Σπανουδάκης 47 Ευχαριστώ για την π ροσοχή σας !!!
ASEME: Φάση Ανάλυσης Συστήματος Πίνακας Λειτουργιών (στο SRM) 12/5/ Ν. Σπανουδάκης
An instance of the community 12/5/2011 Ν. Σπανουδάκης 49