Σύνθεση διαδικτυακών υπηρεσιών με χρήση τεχνικών σχεδιασμού ενεργειών Ουρανία Χατζή raniah@hua.gr Χαροκόπειο Πανεπιστήμιο 29 Νοεμβρίου 2007
Outline Web Service Overview Standards & Model Syntactic vs Semantic Information Σύνθεση διαδικτυακών υπηρεσιών Πλεονεκτήματα χρήσης planning Σχεδιασμός ενεργειών (planning) Παραδείγματα STRIPS & PDDL Η σύνθεση διαδικτυακών υπηρεσιών σαν πρόβλημα planning Προτεινόμενη προσέγγιση The VLEPpO Tool Στοιχεία που μπορούν να αναπαρασταθούν Case Study Future work 2/30
Web Services Overview Συστήματα λογισμικού σχεδιασμένα ώστε να υποστηρίζουν αλληλεπίδραση μεταξύ υπολογιστών πάνω από κάποιο δίκτυο (ορισμός από W3C) Ανεξαρτησία από την υλοποίηση: επιτυγχάνεται συνεργασία μεταξύ συστημάτων υλοποιημένων σε διαφορετικές γλώσσες και πλατφόρμες, καθώς και διάθεση παλαιοτέρων συστημάτων στο δίκτυο. Ο ορισμός των interfaces των διαδικτυακών υπηρεσιών είναι κατανοητός από υπολογιστή (machine interpretable) 3/30
Web Services Standards (1/4) Description Web Services Description Language (WSDL): XML format describing web services as a set of endpoints 4/30
Web Services Standards (2/4) types: ορισμός τύπων δεδομένων (πχ XSD) message: αφηρημενος ορισμός των μηνυμάτων που ανταλάσσονται operation: αφηρημένος ορισμός λειτουργιών που υποστηρίζονται από την υπηρεσία porttype: αφηρημένο σύνολο υπηρεσιών που υποστηρίζονται από ένα endpoint binding: συγκεκριμένο πρωτόκολλο και format δεδομένων για κάθε porttype port: endpoint που ορίζεται σαν συνδυασμός binding και διεύθυνσης δικτύου service: συλλογή από endpoints (περισσότερες από μια υπηρεσίες μπορούν να περιγραφούν στο ίδιο WSDL αρχείο) 5/30
Web Services Standards (3/4) Communication Simple Object Access Protocol (SOAP): πρωτόκολλο για ανταλλαγή πληροφοριών μέσω δομημένων μηνυμάτων 6/30
Web Services Standards (4/4) Discovery Universal Description, Discovery and Integration (UDDI): Μητρώο (registry) για δημοσίευση και εντοπισμό web services White pages: known identifiers Yellow pages: categorization Green pages: technical information 7/30
Web Service Model 8/30
Syntactic vs Semantic Information Το WSDL λειτουργεί στο συντακτικό επίπεδο, έλλειψη σημασιολογικής περιγραφής WS Η κατηγοριοποίηση στο UDDI δεν είναι κατανοητή από υπολογιστές, άρα δεν είναι εύκολος ο αυτόματος εντοπισμός web services Οι σημασιολογικές πληροφορίες μπορούν να βοηθήσουν στην αυτόματη εύρεση και στην αυτόματη σύνθεση διαδικτυακών υπηρεσιών Παραδείγματα προτύπων που περιλαμβάνουν σημασιολογικές επεκτάσεις: SAWSDL, WSDL-S, OWL-S, WSMO 9/30
Σύνθεση διαδικτυακών υπηρεσιών Οι απλές διαδικτυακές υπηρεσίες πολλές φορές δεν είναι αρκετές για να καλύψουν τις ανάγκες των χρηστών Σύνθετες διαδικτυακές υπηρεσίες μπορούν να δώσουν λύση στο πρόβλημα αυτό Μερική ή ολική διάταξη υπηρεσιών - οι έξοδοι κάποιων web services δρουν σαν είσοδοι σε άλλες Οι σύνθετες διαδικτυακές υπηρεσίες καλύπτουν κυρίως τις περιπτώσεις: Μη ύπαρξης υπηρεσίας που διαθέτει ακριβώς την απαιτούμενη λειτουργικότητα Ανάγκης για ολοκληρωμένη παροχή αλληλοεξαρτώμενων υπηρεσιών 10/30
Σύνθεση διαδικτυακών υπηρεσιών name phone address directions Phone number Directions Address Finder finder service journey data Airline tickets booking arrival date & time Transportation booking taxi reservation dates hotel address Hotel reservation accommodation tickets 11/30
Σύνθεση διαδικτυακών υπηρεσιών Υπάρχουσες προσπάθειες: κυρίως συντακτική προσέγγιση (BPEL4WS, WSFL, XLANG etc) Μη αυτόματος ορισμός των αλληλεπιδράσεων και της ανταλλαγής δεδομένων μεταξύ των υπηρεσιών, επομένως η σύνθεση γίνεται πιο δύσκολη καθώς ο αριθμός των διαθέσιμων υπηρεσιών αυξάνεται Νέες προοσεγγίσεις: αξιοποίηση σημασιολογικών πληροφοριών για αυτόματη σύνθεση διαδικτυακών υπηρεσιών Χρήση τεχνικών Τεχνητής Νοημοσύνης, ειδικά σχεδιασμού ενεργειών (planning) 12/30
Πλεονεκτήματα χρήσης planning Αξιοποίηση έρευνας στον χώρο του planning για βελτιστοποίηση της διαδικασίας δημιουργίας σύνθετων διαδικτυακών υπηρεσιών Αυτοματοποίηση διαδικασίας σύνθεσης Νέες σύνθετες υπηρεσίες μπορούν να δημιουργηθούν on demand από τις διαθέσιμες απλές, χωρίς να χρειάζεται σχεδιασμός εκ των προτέρων Η διαδικασία planning είναι δυναμική, επομένως σε περίπτωση μη διαθεσιμότητας κάποιας υπηρεσίας μπορεί να ζητηθεί ένα εναλλακτικό πλάνο που θα συμπεριλαμβάνει άλλες υπηρεσίες 13/30
Σχεδιασμός ενεργειών (planning) Διαδικασία εύρεσης μιας ακολουθίας ενεργειών (actions) οι οποίες όταν εκτελεστούν οδηγούν στην επίτευξη κάποιων στόχων Ένα πρόβλημα planning P αναπαρίσταται ως μια τριάδα <Ι, G, A> όπου: Το Ι αποτελεί μια περιγραφή της αρχικής κατάστασης του κόσμου Το G είναι ένα σύνολο επιθυμητών στόχων Το Α αποτελεί το σύνολο των διαθέσιμων ενεργειών Μια ακολουθία ενεργειών π ={Α 1,Α 2,...,Α n }: Α i ονομάζεται πλάνο (plan) Α Ένα πλάνο που εφαρμόζεται στην Ι καιπετυχαίνειτοg αποτελεί λύση στο πρόβλημα P 14/30
Planning Παράδειγμα (1/2) Αρχική κατάσταση Ι: {robotat(b), at(ball1,a), free(rob)} Διαθέσιμες ενέργειες Α Move(from,to) Pick(ball) Drop(ball) Στόχοι G {at(ball1,b), robotat(a)} 15/30
Planning Παράδειγμα (2/2) Λύση: Move(B, A) Pick(ball1) Move(A, B) Drop(ball1) Move(B, A) 16/30
STRIPS & PDDL STRIPS formalism: Initial state Goal state Actions: preconditions and results (add/delete lists) Planning Domain Definition Language (PDDL): Πρότυπο για περιγραφή domains και προβλημάτων planning Η αρχική έκδοση βασίστηκε στον STRIPS formalism Οι επόμενες εκδόσεις εμπλουτίστηκαν για να συμπεριλάβουν περισσότερα στοιχεία planning 17/30
Simple PDDL example (domain & problem) 18/30
Η σύνθεση διαδικτυακών υπηρεσιών σαν πρόβλημα σχεδιασμού ενεργειών Αποτέλεσμα σύνθετης υπηρεσίας Goal State Απλές διαδικτυακές υπηρεσίες Τελεστές (Actions) Είσοδοι, απαιτήσεις preconditions Έξοδοι, αποτελέσματα results Περιγραφή σύνθετης διαδικτυακής υπηρεσίας (σειρά από κλήσεις απλών υπηρεσιών) Πλάνο Εναλλακτική προσέγγιση: HTN Planning αποσύνθεση του αρχικού σύνθετου στόχου σε απλούστερους μέχρι να βρεθούν απλές υπηρεσίες που να τους ικανοποιούν 19/30
Προτεινόμενη προσέγγιση Χρήση κλασικού και HTN planning για την σύνθεση διαδικτυακών υπηρεσιών Ανάπτυξη εργαλείου για την αναπαράσταση και σύνθεση σημασιολογικά εμπλουτισμένων διαδικτυακών υπηρεσιών Στοιχεία WS (είσοδοι, έξοδοι, απαιτήσεις και αποτελέσματα) αναπαρίστανται με όρους planning Περιγραφές semantic web services με χρήση SAWSDL & OWL-S Οι σύνθετες διαδικτυακές υπηρεσίες παράγονται καλώντας planners οι οποίοι με τη σειρά τους είναι υλοποιημένοι σαν web services 20/30
The VLEPpO Tool Visual Language for Enhanced Planning Problem Orchestration Ολοκληρωμένο σύστημα για σχεδιασμό και επίλυση πεδίων ορισμού (domains) και προβλημάτων planning με γραφικό τρόπο (δεν περιορίζεται σε προβλήματα σύνθεσης web services) Γραφικό περιβάλλον, διασύνδεση με PDDL, έλεγχοι εγκυρότητας για planning domains και τα αντίστοιχα προβλήματα Καλύπτεται το μεγαλύτερο και πιο συχνά χρησιμοποιούμενο υποσύνολο και των 3 εκδόσεων της PDDL Υλοποίηση σε Java 21/30
Στοιχεία της PDDL που μπορούν να αναπαρασταθούν στο VLEPpO (1/2) Class Function Operator Relation Constant Derived Predicate AND, OR, NOT nodes for AND/OR trees Problem 22/30
Στοιχεία της PDDL που μπορούν να αναπαρασταθούν στο VLEPpO (2/2) :typing requirement Διαφορετική αντιμετώπιση του μοντέλου Entity-Relation με ή χωρίς το συγκεκριμένο requirement Numerical Expressions Συνδυασμός από functions, comparisons και assignments Durative actions Οι operators έχουν διάρκεια, οι προϋποθέσεις και τα αποτελέσματα έχουν temporal annotations Timed initial literals Comments 23/30
Case Study (1/5) Αρχικές πληροφορίες: ονόματα και IDs Πρόβλημα: Καθορισμός διαδρομής μεταξύ δύο διευθύνσεων Διαθέσιμες υπηρεσίες: Εύρεση διεύθυνσης από όνομα και ΙD Εύρεση διεύθυνσης από τηλέφωνο ΕύρεσητηλεφώνουαπόόνομακαιID Εύρεση περιοχής από ταχυδρομικό κώδικα και τηλέφωνο Υπηρεσίες παροχής πληφοροριών για δρομολόγια μετρό και λεωφορείων Καθορισμός οδηγιών διαδρομής δεδομένης διεύθυνσης και δρομολογίων μέσων μαζικής συγκοινωνίας 24/30
Case Study (2/5) Οι οντότητες του προβλήματος αναπαρίστανται σαν κατηγορήματα (relations/predicates): person, address, phone number, area etc. (person?firstname1 firstname?lastname2 lastname?idnumber3 IDnumber) 25/30
Case Study (3/5) Οι απλές διαδικτυακές υπηρεσίες αναπαρίστανται σαν operators 26/30
Case Study (4/5) Αφού δημιουργηθεί το domain, μπορούμε να ορίσουμε προβλήματα που αντιστοιχούν σε αυτό Τα πραγματικά δεδομένα που θα δοθούν σαν δεδομένα εισόδου στο σύστημα περιγράφονται στην αρχική κατάσταση του προβλήματος Η επιθυμητή διαδικτυακή υπηρεσία περιγράφεται σαν τελική κατάσταση (στόχος) του προβλήματος 27/30
Case Study (5/5) Κλήση του planning web service παράγει πλάνα Δυνατότητα χρήσης διαφορετικού planner ανάλογα με το πρόβλημα που αντιμετωπίζεται Επιλογή εναλλακτικού πλάνου σε περίπτωση μη διαθεσιμότητας κάποιου web service 28/30
Future Work Ανάπτυξη νέου planner που θα υλοποιηθεί σαν web service και θα συμπεριλαμβάνει και HTN planning Οπτική αναπαράσταση και δυνατότητα επέμβασης στα παραγόμενα πλάνα, άρα και στις παραγόμενες σύνθετες διαδικτυακές υπηρεσίες Αυτοματοποίηση παραγωγής PDDL από OWL-S Πειραματισμός με web services που έχουν περιγραφεί σε OWL-S μέσω SAWSDL 29/30
Ευχαριστώ! Ερωτήσεις; 30/30