Upload
helmut
View
37
Download
0
Embed Size (px)
DESCRIPTION
THE AGENT SYSTEMS ENGINEERING METHODOLOGY (ASEME). Νικόλαος Σπανουδάκης [email protected] ΕΕΔΙΠ ΙΙ Γενικό Τμήμα Πολυτεχνείου Κρήτης Αθήνα , 18 Μαΐου, 2011. Περιεχόμενα παρουσίασης. Εισαγωγή - PowerPoint PPT Presentation
Citation preview
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): Αυτόνομο (autonomous) Κοινωνικό (social) Αντιδραστικό (reactive) Ικανό να παίρνει πρωτοβουλίες (pro-active) Προσαρμοστικό (adaptive) Διαρκές (persistent)
12/5/2011 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
Τέσσερις τύποι μετασχηματισμών (Langlois et al., 2007): Μοντέλο σε μοντέλο (M2M) Μοντέλο σε κείμενο (M2T) Κείμενο σε μοντέλο (T2M) Κείμενο σε κείμενο (T2T)
MMM
MMb
Ma
Legend
conformsTo transformation
MMtMMa
Mb
Tab
M2M
executes
12/5/2011 9Ν. Σπανουδάκης
Το μεταμεταμοντέλο 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
habitsFaculty
Personnel
Manage meetings
12/5/2011 11Ν. Σπανουδάκης
12/5/2011
System
Μοντέλα AMOLA: Ανάλυση Συστήματος To Διάγραμμα Περίπτωσης
Χρήσης (SUC) βασισμένο στα UML use cases
Και το μεταμοντέλο του
Personal Assistant
Request new meeting
Manage meetings
Learn user habits
FacultyPersonnel
12Ν. Σπανουδάκης
Meetings Manager
Μοντέλα AMOLA: Ανάλυση Συστήματος (συνέχεια) Το Μοντέλο Ρόλων
(SRM) βασίζεται στο Gaia roles model
And its metamodel definition
Role: Personal AssistantCapabilities 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 habitslearn user habits = learn user preference. update user preferences…
12/5/2011 13Ν. Σπανουδάκης
Όπου η γραμματική για τις φόρμουλες ορίζεται με BNF:
liveness → { formula } formula → leftHandSide = expression leftHandSide → string expression → term | parallelExpression | orExpression | sequentialExpression parallelExpression → term || term || … || term orExpression → term | term | … | term sequentialExpression → term . term . … . term term → basicTerm | (expression) | [expression] | term* | term+ | termω | |termω|number basicTerm → string number → digit | digit number digit → 1 | 2 | 3 | … string → letter | letter string letter → a | b | c | …
Η σημασία των συμβολισμών
12/5/2011 Ν. Σπανουδάκης 14
Operator Interpretationx . y x followed by yx | y x or y occursx* x occurs 0 or more timesx+ x occurs 1 or more timesx ω x occurs infinitely often[x] x is optional
x || y x and y interleaved|x ω|n x occurs infinitely often n
times in parallel
AMOLA: Φάση Σχεδίασης inter και intra-agent control
Μεταμοντέλο:
12/5/2011 15Ν. Σπανουδάκης
Τα μοντέλα δια (EAC) και ενδο-πρακτορικού ελέγχου (IAC) βασίζονται στο διάγραμμα καταστάσεων
Βασισμένο στον τυπικό ορισμό ενός διαγράμματος καταστάσεων:
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.
δ ⊆ S × TE × S is the set of state transitions, where TE is a set of transitionExpression
elements.
Τέτοιοι ορισμοί είναι αναγκαίοι για τον ορισμό εργαλείων 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/2011 18Ν. Σπανουδάκης
ASEME: Φάση Ανάλυσης Απαιτήσεων
12/5/2011 Ν. Σπανουδάκης 19
Requirements Analysis
Define goals
Requirementsdocument
Define actors Define requirements for each goal
SAG RPG
Firm Representative
Business Consultant
Δημιουργία και Επεξεργασία του Μοντέλου Δραστών-Στόχων (SAG)
Meetings Manager
Personal Assistant
Request new
meeting
Learn user
habits
12/5/2011 20Ν. Σπανουδάκης
ASEME: Φάση Ανάλυσης Συστήματος
Refine use cases
SAG2SUC Define Functionalities
SUC2SRMDefine agent interaction protocols
SAG
RPG
AIP
SRMSUC FT
Define the Liveness formulas
Analysis
Analyst
12/5/2011 21Ν. Σπανουδάκης
Ο μετασχηματισμός SAG 2 SUC
Meetings Manager
Personal Assistant
Request new
meeting
Learn user
habitsMeetings Manager
Personal Assistant
Request new meeting
Learn user habits
12/5/2011 22Ν. Σπανουδάκης
Επεξεργασία του μοντέλου 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
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
12/5/2011 23Ν. Σπανουδάκης
Ο μετασχηματισμός 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
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
12/5/2011 24Ν. Σπανουδάκης
Ο μετασχηματισμός SUC 2 SRM
Personal Assistant
<<include>>
<<include>>
<<include>>
<<include>>
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/2011 25Ν. Σπανουδάκης
Εκλέπτυνση SRMRole: Personal AssistantCapabilities and Protocols:manage meetings, learn user habits,negotiate meeting date, request change meeting, request new meetingActivities: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 scheduleLiveness:personal assistant = ?manage meetings = get user request ? read schedule ? request change meeting ? request new meeting? show resultslearn user habits = learn user preference ? update user preferencesrequest new meeting = send new request. receive new resultsrequest change meeting = send change request. receive change resultsnegotiate meeting date = receive proposed date. (decide response. send results. receive outcome)+ ? update schedule
12/5/2011 26Ν. Σπανουδάκης
Request new meeting Negotiate meeting date
Participants Personal Assistant Meetings Manager Personal Assistant Meetings Manager
Rules for engaging
He needs to create a meeting
- He needs to create or participate to a meeting
He has a meeting with more than one participants that has no date assigned to it
Outcomes He has received a confirmation of the meeting creation
- He has scheduled participation to a meeting
He has arranged a meeting that met all the participants needs
Process request new meeting = send new request. receive new results
request new meeting = receive new request. send new results
negotiate meeting date = receive proposed date. (decide response. send results. receive outcome)+
negotiate meeting date = (decide on date. send proposed date. receive results)+. send fixed date.
Εκλέπτυνση SRMRole: Personal AssistantCapabilities and Protocols:manage meetings, learn user habits,negotiate meeting date, request change meeting, request new meetingActivities: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 scheduleLiveness:personal assistant = (manage meetings. learn user habits)ω || (negotiate meeting date)ω
manage meetings = get user request. (read schedule | request change meeting | request new meeting). show resultslearn user habits = learn user preference. update user preferencesrequest new meeting = send new request. receive new resultsrequest change meeting = send change request. receive change resultsnegotiate meeting date = receive proposed date. (decide response. send results. receive outcome)+. update schedule
12/5/2011 27Ν. Σπανουδάκης
ASEME: Φάση Σχεδίασης
Define inter-agent control model
Define intra-agent control model
Define components
Available Message Types
Ontology Declarative or procedural knowledge
RPGAIP
EAC
SRM
IAC
FT
Design
Designer
Gaia operators transformation templates
Define transition expressions
Define ontology
RPG
Define messages performatives
AIP2EAC
OntologyAvailable message types
AIP
EAC
Designer
Define inter-agent control model
EAC
Ontology
Gaia operators transformation templates
Define transition expressions
RPG
Import transition expressions from the inter-
agent control model
SRM2IAC
IAC
SRM
Designer
Define intra-agent control model
12/5/2011 28Ν. Σπανουδάκης
Μετασχηματισμός SRM 2 IACLiveness:
personal assistant = (manage meetings. learn user habits)ω || (negotiate meeting date)ω
learn user habits = learn user preference. update user preferences
learn user habits
manage meetings
update user preferences
learn user preference
negotiate meeting date
x || y
x
y
xω SxSx
x . y Sx
Sy
Sx
Sy
L.2...
L
xωOR
x
L.1START
L.2
x.yOR
L.2.3...y
L.2.2...x
L.2.1START
L.2.4END
12/5/2011 29Ν. Σπανουδάκης
Μετασχηματισμός IAC 2 JADEFor 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 ifEnd for
12/5/2011 30Ν. Σπανουδάκης
Δια και ενδο-πρακτορικός έλεγχος Ο δια-πρακτορικός έλεγχος (EAC) είναι ένα διάγραμμα
καταστάσεων το οποίο ορίζει την παράλληλη συμπεριφορά δύο ή περισσοτέρων πρακτόρων
Ο ενδο-πρακτορικός έλεγχος (IAC) συντονίζει τις αλληλεπιδράσεις μεταξύ των ικανοτήτων ενός πράκτορα
Κάθε ρόλος σε ένα μοντέλο EAC μπορεί να ενσωματωθεί σε ένα IAC και μπορεί να εκλεπτυνθεί: Μετατρέποντας μια κατάσταση σε πολύπλοκη κατάσταση
(superstate) με υπο-καταστάσεις (substates) Προσθέτοντας καταστάσεις των οποίων οι μεταβάσεις δεν έχουν
συνθήκες αμέσως μετά το START state (αρχικοποίηση) ή πριν το END (αποθήκευση αποτελέσματος)
Το IAC επιτρέπει την παράλληλη εκτέλεση πολλών δια-πρακτορικών πρωτοκόλλων
12/5/2011 31Ν. Σπανουδάκης
personal assistant
learn user habits
update user preferences
learn user preference
manage meetings
show results
get user request
request new meeting
send new request
receive new results
request change meeting
send change request
receive change results
read schedule
c
negotiate meeting date
Ενσωματώνοντας ένα μοντέλο EAC σε ένα μοντέλο IAC
12/5/2011 32Ν. Σπανουδάκης
Υπο-διάλογοι (sub-dialogs)personal assistant
learn user habits
update user preferences
learn user preference
manage meetings
show results
get user request
request new meeting
send new request
receive new results
request change meeting
send change request
receive change results
read schedule
c
negotiate meeting datereceive
proposed date
update schedule
decide response
send results
receive outcome
provide schedule
information
receive schedule request
read schedule
send schedule
12/5/2011 33Ν. Σπανουδάκης
Ενσωματωμένοι διάλογοι (embedded
dialogs)Request for Services
service provider (sp) service requester (sr)
receive request
message
Request(sr,sp,request)/t1 = 10000
send request
message
process request
Request(sr,sp,request)/t2 = 10000
request ≠�∅
receive response message
Inform(sp,sr,results) ∨Refuse(sp,sr,results) ∨ Failure(sp,sr,results) ∨
timeout(t1) = True
send response message
Inform(sp,sr,results) ∨ Refuse(sp,sr,results) ∨
Failure(sp,sr,results)
cresults ≠�∅
timeout(t2) = True
request for services SP
request for services SPω … 10 times
broker
receive request
message
send response message
process request
cservice match
invoke data management
request for services SR
receive message
send message
c
c
12/5/2011 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Ν. Σπανουδάκης
Το πλάνο του μετασχηματισμού
12/5/2011 Ν. Σπανουδάκης 40
Ecore.ecore
SUC.ecore
SAGModel.xmi
ATLSAG.ecore
SUCModelInitial.xmi
SAG2SUC.atl
M2M
XMI: XML Metadata Interchange
Μετασχηματισμός 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) για να εμφανίσει ικανότητα αυτό-ελέγχου (self-assessment) και αυτο-επισκευής (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 Activities Functionalities
communicate
invoke OSGi service
send message
<decomposition> <uses>Legend:
get user coordinates
service user
machine learning
MIDP record technology
JADE FIPA AMSreceive message
learn user habits
request for services
present information to the user
learn user preference
search broker JADE FIPA DF
update user preferences
get user preferences
Human-Machine Interface (HMI)
get user order
handle dangerous situation
invoke heart rate service
determine user condition algorithm
12/5/2011 48Ν. Σπανουδάκης
An instance of the community
12/5/2011 Ν. Σπανουδάκης 49