Transcript Διαφάνεια 1
THE AGENT SYSTEMS ENGINEERING METHODOLOGY (ASEME) Νικόλαος Σπανουδάκης [email protected] ΕΕΔΙΠ ΙΙ Γενικό Τμήμα Πολυτεχνείου Κρήτης Αθήνα, 18 Μαΐου, 2011 Περιεχόμενα παρουσίασης Εισαγωγή Παρουσίαση των μοντέλων της Γλώσσας Μοντελοποίησης Πρακτόρων (Agent MOdeling Language – AMOLA) Παρουσίαση της Μεθοδολογίας Δημιουργίας Πρακτοροστραφών Συστημάτων (Agent Syst. Engineering Methodology – ASEME) Δια και ενδο-πρακτορικός έλεγχος (inter and intra-agent control) Συμπεράσματα – Μελλοντικές επεκτάσεις 12/5/2011 Ν. Σπανουδάκης 2 Τοποθέτηση στον επιστημονικό χώρο Η Τεχνολογία Λογισμικού (Software Engineering, IEEE, 1990) : Μια διαδικασία ανάπτυξης λογισμικού (software process) απαντά στα ερωτήματα (Boehn, 1988): Εφαρμόζει μια συστηματική, μεθοδική προσέγγιση στην ανάπτυξη, λειτουργία και συντήρηση του λογισμικού Τι θα κάνουμε μετά; Για πόσο χρόνο θα συνεχίσουμε να το κάνουμε; Μια μεθοδολογία ανάπτυξης λογισμικού (software methodology) είναι ένα προδιαγεγραμμένο και οργανωμένο σύνολο τεχνικών και κανόνων οι οποίοι ορίζουν από ποιον και με ποια σειρά θα χρησιμοποιηθούν οι τεχνικές (Tolvanen, 1998) 12/5/2011 Ν. Σπανουδάκης 3 Πρακτοροστραφής Μηχανική Λογισμικού Agent Oriented Software Engineering (AOSE) Από τον χώρο της κατανεμημένης τεχνητής νοημοσύνης και των συστημάτων πολλαπλών πρακτόρων (ΣΠΠ) – Multi-Agent Systems (MAS) δημιουργήθηκε η ανάγκη για την ανάπτυξη λογισμικού το οποίο θα είναι (Wooldridge and Jennings, 1995; Weiss, 2003): 12/5/2011 Αυτόνομο (autonomous) Κοινωνικό (social) Αντιδραστικό (reactive) Ικανό να παίρνει πρωτοβουλίες (pro-active) Προσαρμοστικό (adaptive) Διαρκές (persistent) Ν. Σπανουδάκης 4 Οι πιο γνωστές μεθοδολογίες 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/2011 Ν. Σπανουδάκης 5 Γιατί χρειαζόμαστε μια νέα Μεθοδολογία; Τι λείπει; Μια σαφής διαδικασία μετατροπής των μοντέλων των διαφορετικών φάσεων σε πρόγραμμα υπολογιστή (Model-driven Engineering orientation) Η απεικόνιση πολύπλοκων συστημάτων σε διαφορετικά επίπεδα αφαίρεσης (abstraction) Μια μέθοδος ενσωμάτωσης των πρωτοκόλλων επικοινωνίας και των ικανοτήτων ενός πράκτορα Η δυνατότητα μοντελοποίησης ΣΠΠ ανεξάρτητα από το χρησιμοποιούμενο μοντέλο σκέψης (agent mental model) χρησιμοποιώντας τις έννοιες της ικανότητας και λειτουργίας (capability and functionality) Βοήθεια στην αναγνώριση των πρακτόρων Η προσέγγιση των μη-λειτουργικών απαιτήσεων … 12/5/2011 Ν. Σπανουδάκης 6 Προεπισκόπηση της ASEME 12/5/2011 Ν. Σπανουδάκης 7 Μηχανική Οδηγούμενη από Μοντέλα Model Driven Engineering (MDE) MDE (Beydeda et al., 2005) είναι η συστηματική χρήση μοντέλων ως πρωταρχικά εργαλεία καθόλο τον κύκλο ζωής του έργου λογισμικού στοχεύοντας σε φορητότητα, διαλειτουργικότητα και επαναχρησιμότητα Βασίζεται σε μετασχηματισμούς μοντέλων και σε μεταμοντέλα (Jouault and Bézivin, 2006) 12/5/2011 Ν. Σπανουδάκης 8 Μετασχηματισμοί Μοντέλων Model Transformation Μετασχηματισμός: Είσοδος: το μοντέλο πηγής Ma που είναι σύμφωνο με το μεταμοντέλο MMa Έξοδος: το μοντέλο στόχος Mb που είναι σύμφωνο με το μεταμοντέλο MMb MMM MMa Τέσσερις τύποι μετασχηματισμών (Langlois et al., 2007): Ma Μοντέλο σε μοντέλο (M2M) Μοντέλο σε κείμενο (M2T) Legend Κείμενο σε μοντέλο (T2M) Κείμενο σε κείμενο (T2T) conformsTo 12/5/2011 Ν. Σπανουδάκης MMt MMb Tab M2M executes Mb transformation 9 Το μεταμεταμοντέλο ecore Του Eclipse Modeling Framework (EMF) 12/5/2011 Ν. Σπανουδάκης 10 Μοντέλα AMOLA: Ανάλυση Απαιτήσεων Το Μοντέλο ΔραστώνΣτόχων (SAG) βασίζεται στο actor diagram της μεθοδολογίας Tropos Meetings Manager Learn user habits Το μεταμοντέλο του ορίζεται σύμφωνα με το μεταμεταμοντέλο Ecore (EMF) Faculty Personnel Personal Assistant Request new meeting 12/5/2011 Manage meetings Ν. Σπανουδάκης 11 Μοντέλα AMOLA: Ανάλυση Συστήματος To Διάγραμμα Περίπτωσης Χρήσης (SUC) βασισμένο στα UML use cases Και το μεταμοντέλο του System Learn user habits Request new meeting Personal Assistant Meetings Manager 12/5/2011 Faculty Personnel Manage meetings Ν. Σπανουδάκης 12 Μοντέλα AMOLA: Ανάλυση Συστήματος (συνέχεια) Το Μοντέλο Ρόλων (SRM) βασίζεται στο Gaia roles model 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/2011 Ν. Σπανουδάκης And its metamodel definition 13 Όπου η γραμματική για τις φόρμουλες ορίζεται με BNF: → { formula } → leftHandSide = expression → string → term | parallelExpression | orExpression | sequentialExpression parallelExpression → term || term || … || term orExpression → term | term | … | term sequentialExpression → term . term . … . term term → basicTerm | (expression) | [expression] | term* | term+ ω | term ω number | |term | basicTerm → string number → digit | digit number digit →1|2|3|… string → letter | letter string letter →a|b|c|… liveness formula leftHandSide expression 12/5/2011 Ν. Σπανουδάκης Η σημασία των συμβολισμών Operator x.y x|y x* x+ xω [x] x || y |x ω|n Interpretation x followed by y x or y occurs x occurs 0 or more times x occurs 1 or more times x occurs infinitely often x is optional x and y interleaved x occurs infinitely often n times in parallel 14 AMOLA: Φάση Σχεδίασης inter και intra-agent control Τα μοντέλα δια (EAC) και ενδοπρακτορικού ελέγχου (IAC) βασίζονται στο διάγραμμα καταστάσεων 12/5/2011 Ν. Σπανουδάκης Μεταμοντέλο: 15 Βασισμένο στον τυπικό ορισμό ενός διαγράμματος καταστάσεων: Definition 3.7. A statechart is a tuple (L, δ) where: L = (S, λ, Var, Name, Activity) is an ordered rooted tree structure representing the states of the statechart. S⊆ℕ* is the set of all nodes in the tree. λ: S{AND, OR, BASIC, START, END, CONDITION} is a mapping from the set of nodes to labels giving the type of each node. For l∈S let AND(l) denote that λ(l)=AND. Similarly OR(l) denotes that λ(l)=OR and the same holds for all labels. START and END denote those nodes without activity, which exist so that execution can start and end inside OR-states. BASIC corresponds to a basic state. A condition state is denoted as CONDITION. START, END, BASIC and CONDITION nodes are leaves of L. Var is a mapping from nodes to sets of variables. var(l) stands for the subset of local variables of a particular node l. Name is a mapping from nodes to their names. name(l) stands for the name of a particular node l. Activity is a mapping from nodes to their algorithms in text format implementing the processes of the respective states. activity(l) stands for the algorithm of a particular state that is represented by node l. Τέτοιοι ορισμοί είναι αναγκαίοι για τον ορισμό εργαλείων CASE (Computeraided software engineering) δ ⊆ S × TE × S is the set of state transitions, where TE is a set of transitionExpression elements. 12/5/2011 Ν. Σπανουδάκης 16 Μεθοδολογία ASEME Ορίζεται σύμφωνα με το Μεταμοντέλο Περιγραφής Διαδικασιών Ανάπτυξης Λογισμικού SPEM (Software Process Engineering Metamodel) της OMG Συμβολισμοί: 12/5/2011 Ν. Σπανουδάκης 17 Οι Μετασχηματισμοί στην ASEME Οι μετασχηματισμοί είναι πλήρως αυτοματοποιημένοι Το μοντέλο μιας προηγούμενης φάσης μετασχηματίζεται σε ένα αρχικό μοντέλο της επόμενης φάσης (initial model) Ο μηχανικός επεξεργάζεται και ραφινάρει το αρχικό μοντέλο δημιουργώντας την τελική έκδοση (refined model) 12/5/2011 Ν. Σπανουδάκης 18 ASEME: Φάση Ανάλυσης Απαιτήσεων Requirements Analysis Requirements document Define actors SAG Define goals RPG Define requirements for each goal Business Consultant Firm Representative 12/5/2011 Ν. Σπανουδάκης 19 Δημιουργία και Επεξεργασία του Μοντέλου Δραστών-Στόχων (SAG) Meetings Manager 12/5/2011 Request new meeting Ν. Σπανουδάκης Learn user habits Personal Assistant 20 ASEME: Φάση Ανάλυσης Συστήματος Analysis SAG Refine use cases SAG2SUC Define agent interaction protocols SUC Define the Liveness formulas AIP SUC2SRM RPG Define Functionalities SRM FT Analyst 12/5/2011 Ν. Σπανουδάκης 21 Ο μετασχηματισμός SAG 2 SUC Meetings Meetings Manager Manager 12/5/2011 Request new Request meeting new meeting Ν. Σπανουδάκης Learn Learn user user habits habits Personal Personal Assistant Assistant 22 Επεξεργασία του μοντέλου SUC Learn user habits Meetings Manager <<include>> Receive new request <<include>> Send new request <<include>> Send new results 12/5/2011 Request new meeting <<include>> Receive new results Ν. Σπανουδάκης Personal Assistant <<include>> Learn user preference <<include>> Update user preferences 23 Ο μετασχηματισμός SUC 2 SRM Learn user habits Meetings Manager <<include>> Receive new request <<include>> Send new request <<include>> Send new results 12/5/2011 Request new meeting <<include>> Receive new results Ν. Σπανουδάκης Personal Assistant <<include>> Learn user preference <<include>> Update user preferences 24 Ο μετασχηματισμός SUC 2 SRM Role: Capabilities and Protocols: Learn userhabits Learn user habits Activities: Personal<<include>> Assistant Request newmeeting Personal Request new Assistant meeting Learn user <<include>> Learnpreference user preference Send new <<include>> Send request new request <<include>> Receive new Receive new results results 12/5/2011 Ν. Σπανουδάκης Update user Update user preferences preferences 25 Εκλέπτυνση SRM Role: Personal Assistant Capabilities and Protocols: Request new meeting Negotiate meeting date manage meetings,Personal learn user habits, Meetings Manager Participants Assistant Personal Assistant Meetings Manager negotiate meeting date, request change meeting, request new meeting He has a meeting with He needs to create or Activities: Rules for He needs to create a more than one participate to a meeting participants that has no getengaging user request, read schedule, show results, meeting date assigned to it learn user preference, update user preferences, He has received a He has scheduled He has arranged a send change request, receive change results, send new request, receive new results, Outcomes confirmation of the participation to a meeting that met all receive proposed date, decide response, send results, receive outcome, update meeting creation meeting theschedule participants needs Liveness: negotiate meeting date negotiate meeting date new meeting = receive proposed = (decide on date. personal assistant request = ? new meeting request = receive new Process = send new request. date. (decide send proposed date. request. send new ? request change meeting ? request new manage meetings receive = get user request ? read schedule new results response. send results. receive results)+. send results meeting? show results receive outcome)+ fixed date. 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/2011 Ν. Σπανουδάκης 26 Εκλέπτυνση 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/2011 Ν. Σπανουδάκης 27 ASEME: Φάση Σχεδίασης Define inter-agent control model Design AIP EAC Gaia operators transformation templates RPG Define inter-agent control model SRM FT Define intra-agent control model Define components AIP2EAC Define messages performatives AIP RPG Define ontology Available message types Designer Define transition expressions Ontology Define intra-agent control model Available Message Types Designer EAC Ontology IAC Declarative or procedural knowledge SRM Gaia operators transformation templates SRM2IAC EAC RPG Import transition expressions from the interagent control model Define transition expressions Designer IAC 12/5/2011 Ν. Σπανουδάκης Ontology 28 Μετασχηματισμός SRM 2 IAC Liveness: personal assistant = (manage meetings. learn user habits)ω || (negotiate meeting date)ω learn user habits = learn user preference. update user preferences negotiate meeting date x manage meetings x || y y L OR xω xω Sx Sx L.1 START L.2 ... x L.2 OR x.y x . y L.2.1 START learn user habits learn user preference 12/5/2011 update user preferences Ν. Σπανουδάκης Sx Sx L.2.2 ... x L.2.3 ... Sy y L.2.4 END Sy 29 Μετασχηματισμός 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/2011 Ν. Σπανουδάκης 30 Δια και ενδο-πρακτορικός έλεγχος Ο δια-πρακτορικός έλεγχος (EAC) είναι ένα διάγραμμα καταστάσεων το οποίο ορίζει την παράλληλη συμπεριφορά δύο ή περισσοτέρων πρακτόρων Ο ενδο-πρακτορικός έλεγχος (IAC) συντονίζει τις αλληλεπιδράσεις μεταξύ των ικανοτήτων ενός πράκτορα Κάθε ρόλος σε ένα μοντέλο EAC μπορεί να ενσωματωθεί σε ένα IAC και μπορεί να εκλεπτυνθεί: Μετατρέποντας μια κατάσταση σε πολύπλοκη κατάσταση (superstate) με υπο-καταστάσεις (substates) Προσθέτοντας καταστάσεις των οποίων οι μεταβάσεις δεν έχουν συνθήκες αμέσως μετά το START state (αρχικοποίηση) ή πριν το END (αποθήκευση αποτελέσματος) Το IAC επιτρέπει την παράλληλη εκτέλεση πολλών διαπρακτορικών πρωτοκόλλων 12/5/2011 Ν. Σπανουδάκης 31 Ενσωματώνοντας ένα μοντέλο EAC σε ένα μοντέλο IAC personal assistant manage meetings get user request request new meeting request change meeting c send change request send new request receive new results negotiate meeting date show results read schedule receive change results learn user habits learn user preference 12/5/2011 update user preferences Ν. Σπανουδάκης 32 Υπο-διάλογοι (sub-dialogs) personal assistant manage meetings get user request show results request new meeting request change meeting c send change request send new request receive new results read schedule receive change results negotiate meeting date receive proposed date decide response provide schedule information receive schedule request read schedule send results send schedule receive outcome learn user habits learn user preference 12/5/2011 update user preferences update schedule Ν. Σπανουδάκης 33 Ενσωματωμένοι διάλογοι (embedded dialogs) broker Request for Services request for services SPω service requester (sr) service provider (sp) … 10 times request for services SP request ≠∅ send request message Request(sr,sp,request) /t1 = 10000 receive response message Inform(sp,sr,results) ∨ Refuse(sp,sr,results) ∨ Failure(sp,sr,results) ∨ timeout(t1) = True 12/5/2011 receive request message receive request c message send response message Request(sr,sp,request) /t2 = 10000 process request process request invoke data c management service c match send results ≠∅ c response message request for services SR timeout(t2) = True Inform(sp,sr,results) ∨ receive send Refuse(sp,sr,results) ∨ message message Failure(sp,sr,results) Ν. Σπανουδάκης 34 Μετασχηματισμός IAC σε μοντέλο διαδικασίας (process model) Εμπειροτεχνική μέθοδος για τον μετασχ/σμό ενός IAC σε μοντέλο διαδικασίας Βοηθάει στην επαλήθευση, προσομοίωση και βελτιστοποίηση (ASK-IT project) 12/5/2011 Ν. Σπανουδάκης 35 Εμπειρικά αποτελέσματα εφαρμογής 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/2011 Ν. Σπανουδάκης 36 Δουλεύοντας το μοντέλο SAG 12/5/2011 Ν. Σπανουδάκης 37 Μετασχηματισμός M2M 12/5/2011 Ν. Σπανουδάκης 38 Μετασχηματισμός M2M (συνέχεια) 12/5/2011 Ν. Σπανουδάκης 39 Το πλάνο του μετασχηματισμού Ecore.ecore SAG.ecore ATL SUC.ecore SAG2SUC.atl SAGModel.xmi M2M SUCModelInitial.xmi XMI: XML Metadata Interchange 12/5/2011 Ν. Σπανουδάκης 40 Μετασχηματισμός T2M 12/5/2011 Ν. Σπανουδάκης 41 Μετασχηματισμός M2T 12/5/2011 Ν. Σπανουδάκης 42 Μετασχηματισμός M2T - JADE 12/5/2011 Ν. Σπανουδάκης 43 Μετασχηματισμός M2T–Market miner 12/5/2011 Ν. Σπανουδάκης 44 Συμπεράσματα Η ASEME (μαζί με την AMOLA) είναι μια οδηγούμενη από μοντέλα μεθοδολογία ανάπτυξης συστημάτων πρακτόρων η οποία: Ξεκινάει από την ανάλυση απαιτήσεων και φτάνει στην δημιουργία του κώδικα Ενσωματώνει τους ρόλους των πρακτόρων σε διάφορα πρωτόκολλα στις ικανότητες ενός πράκτορα χρησιμοποιώντας ένα κοινό φορμαλισμό (statechart) Έχει επαληθευτεί εμπειρικά με δύο εφαρμογές σε πραγματικά συστήματα και μία σαν παράδειγμα για την αντιπαράθεσή της με άλλες αντίστοιχες μεθοδολογίες 12/5/2011 Ν. Σπανουδάκης 45 Μελλοντικές Επεκτάσεις Δημιουργία καλύτερων γραφικών εργαλείων στο eclipse για την υποστήριξη των φάσεων ανάπτυξης Βελτίωση του αυτόματα δημιουργούμενου κώδικα για το JADE, ενσωμάτωση περισσότερης πληροφορίας από τις εκφράσεις μετάβασης, ενσωμάτωση σε περιβάλλον OSGi Αυτοματοποίηση του μετασχηματισμού του IAC σε process model (επιλογή ανάμεσα από XPDL, BPMN, ??) Ανάλυση απόδοσης σε μεγάλης κλίμακας συστήματα Συστηματική συλλογή και επεξεργασία εμπειρικών αποτελεσμάτων χρήσης της ASEME και σύγκριση με άλλες μεθοδολογίες ίσως στα πλαίσια κάποιου μεταπτυχιακού μαθήματος Δυνατότητα του πράκτορα να εκμεταλλευτεί την πληροφορία της λειτουργίας του IAC στο run-time (σύγχρονος χώρος έρευνας: models@runtime) για να εμφανίσει ικανότητα αυτό-ελέγχου (selfassessment) και αυτο-επισκευής (self-healing) (σύγχρονος χώρος έρευνας: autonomic systems) Εξελικτικές Μέθοδοι στα statecharts για προσαρμοστικότητα (σύγχρονος χώρος έρευνας: adaptive systems) 12/5/2011 Ν. Σπανουδάκης 46 Βρείτε περισσότερες πληροφορίες Στην διατριβή μου Σε δημοσιευμένα άρθρα σε AAIJ 06, EUMAS 07, IAT 08, AIMSA 08, AIAI 09 (submitted extended version for JEIS), PRIMA 09 Στο http://users.isc.tuc.gr/~nispanoudakis Ή μέσω ηλ. ταχ/μείου στο [email protected] Ευχαριστώ για την προσοχή σας!!! 12/5/2011 Ν. Σπανουδάκης 47 ASEME: Φάση Ανάλυσης Συστήματος Πίνακας Λειτουργιών (στο SRM) Capabilities handle dangerous situation Activities determine user condition Functionalities algorithm invoke heart rate service invoke OSGi service get user coordinates service user present information to the user get user order get user preferences learn user habits request for services update user preferences Human-Machine Interface (HMI) MIDP record technology learn user preference machine learning search broker JADE FIPA DF send message communicate Legend: 12/5/2011 receive message <decomposition> JADE FIPA AMS <uses> Ν. Σπανουδάκης 48 An instance of the community 12/5/2011 Ν. Σπανουδάκης 49