Web Services - Intro Υποψηφ. Διδάκτορας Αθανασόπουλος Γιώργος Εργαστήριο Ανάλυσης Συστημάτων και Τεχνολογίας Λογισμικού
© George AthanasopoulosDaemon – Web Services Intro 2 Contents 1.Service Oriented Architectures 2.Introduction to Web Services 3.Basic Protocols SOAP WSDL UDDI
Service Oriented Architecture
© George AthanasopoulosDaemon – Web Services Intro 4 ΟΡΙΣΜΟΣ “Αυτόνομες, αρθρωτές εφαρμογές που μπορούν να δημοσιευθούν, να εντοπισθούν και να κληθούν μέσω του Internet και οι οποίες βασίζονται σε standards όπως XML, HTTP, WSDL, UDDI και SOAP”
© George AthanasopoulosDaemon – Web Services Intro 5 ΠΑΡΑΔΕΙΓΜΑΤΑ (1/2) o Απλές υπηρεσίες δικτύου: απαντούν σε απλές ερωτήσεις για πληροφορία ή επιτελούν κάποιες λειτουργίες, όπως π.χ. ÞΕνημέρωση για την τρέχουσα τιμή μιας χρηματιστηριακής μετοχής ÞΕνημέρωση για τον καιρό σε μια περιοχή ÞΜετατροπή από ένα νόμισμα σε ένα άλλο
© George AthanasopoulosDaemon – Web Services Intro 6 ΠΑΡΑΔΕΙΓΜΑΤΑ (2/2) o Σύνθετες υπηρεσίες δικτύου: συνδυάζουν πληροφορίες και λειτουργικότητα που προέρχεται από πολλές υπηρεσίες δικτύου, προκειμένου να διεκπεραιώσουν μια συγκεκριμένη δουλειά (business task), όπως π.χ. ÞΧρέωση για μια παραγγελία ÞCustomer Relationship Management (CRM)
© George AthanasopoulosDaemon – Web Services Intro 7 ΕΝΑ ΠΛΗΡΕΣ ΠΑΡΑΔΕΙΓΜΑ Χρήση των υπηρεσιών δικτύου για το χτίσιμο ενός portal που προσφέρει τις παρακάτω υπηρεσίες: • Παρακολούθηση του χρηματιστηρίου σε πραγματικό χρόνο: αγορά της υπηρεσίας από έναν data vendor. • Ενημέρωση για την τρέχουσα τιμή μιας μετοχής: χτίσιμο καινούριας υπηρεσίας. • Διαχείριση Πορτοφόλιο: χτίσιμο καινούριας υπηρεσίας. • Εργαλείο για νομισματική μετατροπή: χρησιμοποίηση ήδη υπάρχουσας λειτουργικότητας
© George AthanasopoulosDaemon – Web Services Intro 8 WS vs. CΟΜPONENT (Rick van der Lans) A component- …is callable by anyone in a loosely coupled style over the Internet using XML and SOAP …is modular …has a run-time interface …is autonomously deployable …is callable from any language …is disconnectable and replaceable …is distributable …is toolable A Web Service-
© George AthanasopoulosDaemon – Web Services Intro 9 High coupling Fine grainedCoarse grained Low coupling Services CORBA Programming language objects EJB Increasing Levels of Abstraction DISTRIBUTED OBJECTS vs. SERVICES
© George AthanasopoulosDaemon – Web Services Intro 10 Service Oriented Architecture Η Υπηρεσιοστραφής αρχιτεκτονική καθορίζει ένα σύνολο συνιστωσών (components) των οποίων οι διεπαφές μπορούν να περιγραφούν, να δημοσιευθούν και να αναζητηθούν από το δίκτυο {W3C}
© George AthanasopoulosDaemon – Web Services Intro 11 Service Model
© George AthanasopoulosDaemon – Web Services Intro 12 Service Model: Roles o Ο service provider: είναι υπεύθυνος για την ανάπτυξη, την περιγραφή, την δημοσίευση μιας υπηρεσίας σε ένα ή περισσότερα registries και για την λήψη και επεξεργασία μηνυμάτων από ένα ή περισσότερους service requestors. Ένας service provider, μπορεί να είναι μία εταιρεία ή οργανισμός ο οποίος προσφέρει ένα Web service μέσω δικτύου. Μπορούμε να φανταστούμε ένα service provider ως το "server side" τμήμα μίας client-server σχέσης μεταξύ των service requestor και service provider o Ο service requestor: είναι υπεύθυνος για την αναζήτηση της περιγραφής ενός Web service, η οποία είναι δημοσιευμένη σε ένα ή περισσότερα service registries, και την χρήση της περιγραφής αυτής για την σύνδεση (bind) και την κλήση (invoke) του Web service που προσφέρεται από κάποιον service providers. Κάθε χρήστης της υπηρεσίας μπορεί να θεωρηθεί ως service requestor. Μπορούμε να φανταστούμε έναν service requestor ως το "client side" τμήμα μίας client-server σχέσης μεταξύ των service requestor και service provider o Το service registry: είναι υπεύθυνο για την διαφήμιση της περιγραφής ενός Web service η οποία καταχωρήθηκε σε αυτό από ένα service provider και για την διευκόλυνση των service requestors στην αναζήτηση υπηρεσιών από την λίστα περιγραφών που έχει καταχωρημένες. Ο ρόλος του service registry role είναι να παρέχει μία match-maker λειτουργία μεταξύ του service requestor και του service provider. Εφ’όσον το service registry κάνει την αντιστοίχιση δεν είναι απαραίτητη η παρουσία του στο όλο σκηνικό, μιά και η επικοινωνία συμβαίνει πλέον μεταξύ του service requestor και του service provider μόνο
© George AthanasopoulosDaemon – Web Services Intro 13 Service Model: Operations o Find a Service: Η λειτουργία αυτή εκτελείτε από έναν service requestor για την ανακάλυψη μιας υπηρεσίας to locate a service. o Publish a Service Description: Ο service provider δημοσιεύει την περιγραφή ενός Web service το οποίο διαθέτει. Η περιγραφή αυτή περιέχει την απαραίτητη πληροφορία για την συνδιαλλαγή με την υπηρεσία, συμπεριλαμβανομένων και της διεύθυνσης δίκτυου, πρωτοκόλλου μεταγωγής, και τύπων μηνυμάτων που ανταλλάσσονται. o Bind to the Service: Όταν ο service requestor ανακαλύψει την κατάλληλη υπηρεσία, μπορεί να την καλέσει, κατά την εκτέλεση του χρησιμοποιώντας την πληροφορία που υπάρχει στην περιγραφή της υπηρεσίας.
© George AthanasopoulosDaemon – Web Services Intro 14 Service Life Cycle Composition Security Brokering Transaction Handling Billing Reliability MonitoringContracting Value- Added Layer Basic Layer CreateDescribePublishDiscover Invoke Unpublish
I. Introduction to Web Services
© George AthanasopoulosDaemon – Web Services Intro 16 Web Service: Definitions o IBM: ÞA Web service is an interface that describes a collection of operations that are network accessible through standardized XML messaging. Web services fulfill a specific task or a set of tasks. A Web service is described using a standard, formal XML notion, called its service description, that provides all of the details necessary to interact with the service, including message formats (that detail the operations), transport protocols, and location. o SUN: ÞWeb services are software components that can be spontaneously discovered, combined, and recombined to provide a solution to the user's problem/request. The Java™ language and XML are the prominent technologies for Web services. o Microsoft: ÞA Web service is a unit of application logic providing data and services to other applications. Applications access Web services via ubiquitous Web protocols and data formats such as HTTP, XML, and SOAP, with no need to worry about how each Web service is implemented.
© George AthanasopoulosDaemon – Web Services Intro 17 Web Service: The Wire Stack
© George AthanasopoulosDaemon – Web Services Intro 18 WSDL, SOAP, UDDI: Interaction Retrieve WSDL doc SOAP Message Find Business or Service Create business or service Invoke Service Service Provider Service Requester Service Broker WSDL docs Application utilizing e-services UDDI Registry XSD docs Servlets, CGI, Perl
SOAP
© George AthanasopoulosDaemon – Web Services Intro 20 What is SOAP? o To W3C άρχισε να ασχολείται με το SOAP από Η παρούσα πρόταση του W3C βρίσκεται στην Version 1.2 o Το SOAP καλύπτει τις εξής περιοχές: ÞΤην μορφή των μηνυμάτων για μία μονόδρομη επικοινωνία που περιλαμβάνει και τον τρόπο με τον οποίο μπορεί να πακεταριστεί ένα μήνυμα σε ένα XML document ÞΜια περιγραφή για το πώς ένα SOAP μήνυμα (ή ένα XML κείμενο το οποίο αποτελεί ένα SOAP μήνυμα) πρέπει να μεταφερθεί πάνω από το HTTP (για Web based συναλλαγές) ή πάνω από το SMTP(για συναλλαγές) ÞΈνα σύνολο κανόνων οι οποίοι πρέπει να ακολουθηθούν κατά την επεξεργασία ενός SOAP μηνύματος και μία κατηγοριοποίηση των εμπλεκομένων στην επεξεργασία ενός μηνύματος. Επιπλέον καθορίζει τα μέρη του μηνύματος στα οποία μπορούν να έχουν πρόσβαση οι συμμετέχοντες στην συναλλαγή και το πώς μπορούν να αντιδράσουν σε περίπτωση σφάλματος του μηνύματος ÞΈνα σύνολο συμβάσεων για το πώς μπορεί να μετατραπεί μία RPC κλήση σε SOAP μήνυμα και αντιστρόφως, καθώς και πως μπορεί να υλοποιηθεί μία RPC επικοινωνία (πως ένας χρήστης κάνει μία RPC κλήση, πως μεταφράζεται σε ένα SOAP μήνυμα, πως μεταφέρεται, πως μετατρέπεται σε μια RPC κλήση στον server, πως μετατρέπεται η απάντηση του server σε ένα SOAP μήνυμα, πως στέλνεται sent to the client, and passed on to the client as the return of the RPC call)
© George AthanasopoulosDaemon – Web Services Intro 21 SOAP messages o Τα μηνύματα έχουν την μορφή φακέλων στους οποίους οι εφαρμογές εναποθέτουν τα δεδομένα που ανταλλάσσονται o Ένα μήνυμα έχει 2 μέρη: Þheader: το οποίο μπορεί να χωριστεί σε blocks Þbody: το οποίο μπορεί να χωριστεί σε blocks o Το SOAP δεν καθορίζει τι πρέπει να κάνει κάποιος με το header και το body, παρά μόνο ορίζει ότι το header δεν είναι υποχρεωτικό να υπάρχει ενώ το body είναι o Η χρήση του header και του body, ωστόσο είναι υπονοούμενη. Το body είναι για τα δεδομένα της εφαρμογής. Το header είναι για δεδομένα της υποδομής SOAP Envelope SOAP header Header Block SOAP Body Body Block
© George AthanasopoulosDaemon – Web Services Intro 22 SOAP example, header and body <SOAP-ENV:Envelope xmlns:SOAP-ENV=" SOAP-ENV: encodingStyle=" <t:Transaction xmlns:t="some-URI" SOAP-ENV:mustUnderstand="1"> 5 DEF From the: Simple Object Access Protocol (SOAP) 1.1. © W3C Note 08 May 2000
© George AthanasopoulosDaemon – Web Services Intro 23 SOAP Envelope SOAP header Transactional context SOAP Body Input parameter 1 Input parameter 2 Name of Procedure HTTP POST SOAP Envelope SOAP header Transactional context SOAP Body Return parameter HTTP Acknowledgement SERVICE REQUESTERSERVICE PROVIDER RPC call HTTP engine SOAP engine Procedure HTTP engine SOAP engine SOAP in Model
WSDL
© George AthanasopoulosDaemon – Web Services Intro 25 What is WSDL? o H Web Services Description Language προδιαγραφή είναι στην working draft 2.0 version (November 2003) o H παρούσα έκδοση του WSDL 1.1 περιγράφει πως μπορούν να περιγραφούν τα διακριτά μέρη από τα οποία αποτελείται ένα Web service: ÞAbstract description, περιλαμβάνει: •το σύστημα τύπων το οποίο χρησιμοποιείται για την περιγραφή των μηνυμάτων(based on XML Schema) •τα μηνύματα τα οποία συμμετέχουν σε μία κλήση •τις λειτουργίες (operations) οι οποίες αποτελούνται από διάφορα πρότυπα ανταλλαγής μηνυμάτων (message exchange patterns) •την διεπαφή (interface) που ομαδοποιεί τις λειτουργίες (operations) οι οποίες απαρτίζουν ένα abstract service ÞConcrete description περιλαμβάνει: •την σύνδεση (binding) της διεπαφής (interface) με το πρωτόκολλο συνδιαλλαγής (transport protocol) •το endpoint ή την διεύθυνση δικτύου network address μίας σύνδεσης •την υπηρεσία, ως συλλογή όλων των συνδέσεων μιας διεπαφής
© George AthanasopoulosDaemon – Web Services Intro 26 WSDL specification abstract part types messages operations port types concrete part bindings services and ports WSDL structure
© George AthanasopoulosDaemon – Web Services Intro 27 Elements of WSDL WSDL document Types (type information for the document, e.g., XML Schema) Message 1Message 4Message 3Message 2 Operation 1Operation 3Operation 2 Message 6Message 5 Interface (abstract service) binding 1 endpoint 1 binding 2 endpoint 2 binding 3 endpoint 3 binding 4 endpoint 4 Service (the interface in all its available implementations) Abstract description of the service Concrete description of the service
© George AthanasopoulosDaemon – Web Services Intro 28 WSDL Example (1/2)
© George AthanasopoulosDaemon – Web Services Intro 29 WSDL Example (2/2)
UDDI
© George AthanasopoulosDaemon – Web Services Intro 31 What is UDDI? o Το UDDI αποτελεί ίσως την μόνη πρόταση που έχει μεταβληθεί τόσες πολλές φορές από την δημιουργίας της. Η τελευταία version είναι η 3 (July 2002): ÞΗ version 1 καθόριζε την βάση για την δημιουργία ενός business registry ÞΗ version 2 προσάρμοσε την λειτουργία του registry στο SOAP και το WSDL ÞΗ version 3 επανακαθορίζει τον ρόλο και τον σκοπό των UDDI registries, δίνοντας έμφαση στις of private υλοποιήσεις, και αντιμετωπίζει το πρόβλημα των συναλλαγών με private και public UDDI registries o Αρχικά το UDDI θεωρήθηκε ότι αποτελεί ένα “Universal Business Registry” παρόμοιο με τις μηχανές αναζήτησης (π.χ., Google) το οποίο θα χρησιμοποιείτο ως βασικός μηχανισμός αναζήτησης υπηρεσιών οι οποίες προσφέρονται από εταιρείες παγκοσμίως. o Στην παρούσα κατάσταση το UDDI είναι περισσότερο “προσγειωμένο” και αναγνωρίζει την πραγματικότητα στις B2B συναλλαγές. Παρουσιάζεται ως το “infrastructure για Web services”, παίζοντας τον ρόλο μιας name και directory υπηρεσίας (i.e., binder στο RPC) εφαρμοσμένης στη τεχνολογία των Web services η οποία κατά κόρον χρησιμοποιείται σε περιορισμένα περιβάλλοντα (internally within a company or among a predefined set of business partners)
© George AthanasopoulosDaemon – Web Services Intro 32 UDDI data o Μια καταχώρηση στο UDDI registry είναι ένα XML κείμενο το οποίο αποτελείται από διάφορα στοιχεία, τα πιο σημαντικά από αυτά είναι: ÞbusinessEntity : περιγραφή του οργανισμού που παρέχει την υπηρεσία ÞbusinessService: λίστα με τις υπηρεσίες που προσφέρει ένα business entity. ÞbindingTemplate: περιγραφή των τεχνικών θεμάτων της προσφερόμενης υπηρεσίας ÞtModel: (“technical model”) ένα γενικό στοιχείο το οποίο χρησιμοποιείται για την αποθήκευση επιπλέον πληροφορίας σχετικά με την υπηρεσία. Τυπικά περιέχει πληροφορίες σχετικά με το πώς μπορεί να χρησιμοποιηθεί,, συνθήκες για την χρήση, εγγυήσεις, κτλ. o Όλα τα στοιχεία αυτά παρέχουν: Þwhite pages information:πληροφορίες σχετικά με το ποιος παρέχει την υπηρεσία (όνομα, διεύθυνση, contact person, κτλ.) Þyellow pages information: τι τύπου υπηρεσίες προσφέρονται και μία λίστα με τις υπηρεσίες που προσφέρονται Þgreen pages information: τεχνικές πληροφορίες σχετικά με την χρήση του κάθε ενός service που προσφέρεται, συμπεριλαμβανομένου και δείκτες σε WSDL περιγραφές των υπηρεσιών (οι οποίες δεν αποθηκεύονται στο UDDI registry)
© George AthanasopoulosDaemon – Web Services Intro 33 Summary of the data in UDDI
© George AthanasopoulosDaemon – Web Services Intro 34 UDDI and WSDL
© George AthanasopoulosDaemon – Web Services Intro 35 We Are The Champions…. The End …… !!!