Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 9: Web Services Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής
Σκοποί ενότητας Σκοπός της παρούσας ενότητας είναι να εξοικειωθούν οι φοιτητές με τις βασικές έννοιες των υπηρεσιών διαδικτύου 2
Περιεχόμενα ενότητας Ορισμός των Web Services Γιατί web services? Web service implementation Web services architecture Web services stack SOAP - Simple Object Access Protocol WSDL - Web Services Description Language UDDI 3
Ορισμός των Web Services Εφαρµογές λογισµικού προσπελάσιμες μέσω Internet µέσω τυποποιηµένης αποστολής µηνυµάτων σε XML για απ ευθείας αλληλεπίδραση μεταξύ εφαρμογών Οι υπηρεσίες διαδικτύου μπορούν να προσπελαστούν με χρήση browsers, αλλά δεν απαιτείται η χρήση ούτε browser ούτε HTML Οι υπηρεσίες διαδικτύου παρέχουν έναν ανεξάρτητο από δεδομένα μηχανισμό παρουσίασης των υπηρεσιών της επιχείρησης, με χρήση standard XML πρωτοκόλλων 4
Ορισμός by IBM Web services είναι μια νέα γενιά εφαρμογών web. Είναι αυτόπεριγραφικές, ανεξάρτητες, αρθρωτές εφαρμογές που μπορούν να δημοσιευτούν, να εντοπιστούν και να κληθούν από το web. Web services εκτελούν συναρτήσεις, που μπορεί να είναι οτιδήποτε από ένα απλό αίτημα έως μια περίπλοκη επιχειρησιακή διαδικασία. Μόλις μια υπηρεσία διαδικτύου αναπτυχθεί, άλλες εφαρμογές (και άλλες υπηρεσία διαδικτύου) μπορούν να αναζητήσουν και να την καλέσουν. 5
Γιατί web services? Κλήση/ενοποίηση λογισμικών λειτουργιών πάνω από ένα δίκτυο Β2Β διεπιχειρησιακές συνεργασίες πάνω από ένα δίκτυο Web Αποστολή αιτήσεων για υπηρεσίες μέσω HTTP πρωτοκόλλου Άλλες λύσεις: Corba, DCOM της Microsoft Προβλήματα διαλειτουργικότητας Έλλειψη προτυποποίησης 6
Web services (1) Επιτρέπουν ένα πρόγραμμα σε έναν υπολογιστή να καλέσει μία λειτουργία σε έναν άλλο υπολογιστή χωρίς να δίνουν σημασία στα ακόλουθα: Λειτουργικό σύστημα Γλώσσα προγραμματισμού Κατασκευαστής Τοποθεσία στο διαδίκτυο 7
Web services (2) Ανεξάρτητες από την αρχιτεκτονική schema descriptions discovery standards Απλές Η δημιουργία Web Services είναι εύκολη, γρήγορη και απλή Το data schema είναι εύκολα αναγνώσιμο από τον άνθρωπο Χρησιμοποιείται οποιαδήποτε προγραμματιστική γλώσσα Interoperable Όλες οι Web Services μιλούν με τα ίδια standards μπορούν να επικοινωνήσουν μεταξύ τους Microsoft, IBM, Sun έχουν συμφωνήσει και χρησιμοποιούν τα ίδια standards 8
Web service implementation Υλοποιούνται σαν επέκταση ενός Web Server Χρησιμοποιούν το standard http πρωτόκολλο, αλλά... Αντί να ζητούν (request) μία σελίδα, ζητούν την κλήση μίας λειτουργίας χρησιμοποιώντας GET, POST ή το SOAP Αντί να επιστρέφεται μία σελίδα, επιστρέφεται το αποτέλεσμα της λειτουργίας είτε ως απλό περιεχόμενο είτε ως περιεχόμενο σε SOAP 9
Web services architecture Architecture components Service: η υλοποίηση μίας web service Service Description: περιέχει τις πληροφορίες της διασύνδεσης και της υλοποίησης της υπηρεσίας Roles Service Provider: η πλατφόρμα που φιλοξενεί την υπηρεσία Service Requestor: η εφαρμογή που καλεί μία υπηρεσία Discovery Agency: ένα σύνολο από περιγραφές υπηρεσιών στο οποίο οι service providers δημοσιεύουν τις περιγραφές των υπηρεσιών τους Interactions between the three roles Publish Find Interact 10
Web services stack Transport layer HTTP, FTP, SMTP Packaging layer SOAP (Simple Object Access Protocol) Επιτρέπει στις εφαρμογές να ανταλλάσσουν πληροφορία μέσω του HTTP Description layer WSDL (Web Services Description Language) Χρησιμοποιείται για την περιγραφή των Web services και για το πώς να αποκτηθεί η πρόσβαση σε αυτές Discovery layer UDDI (Universal Description, Discovery, and Integration project) 11
SOAP Simple Object Access Protocol Ένα πρωτόκολλο επικοινωνίας για την πρόσβαση σε μία web service Βασίζεται στην XML Πρωτόκολλο επικοινωνίας μεταξύ εφαρμογών Μία διαμόρφωση (formal) για την αποστολή μηνυμάτων Σχεδιάστηκε για την επικοινωνία μέσω Internet Είναι ανεξάρτητο από Την πλατφόρμα Την γλώσσα προγραμματισμού Είναι απλό και επεκτάσιμο Είναι standard από το W3C 12
SOAP Το πρωτόκολλο SOAP καθορίζει: Μία σειρά συμβάσεων για την χρησιμοποίηση SOAP μηνυμάτων Ένα σύνολο κανόνων για κάθε οντότητα που επεξεργάζεται SOAP μηνύματα Τον τρόπο μεταφοράς μηνύματος SOAP 13
SOAP συντακτικό (1) Ένα μήνυμα σε SOAP είναι ένα απλό XML αρχείο και περιέχει: Απαραίτητα ένα στοιχείο Envelope Αναγνωρίζει το XML αρχείο ως ένα SOAP μήνυμα Προαιρετικά ένα στοιχείο Header Απαραίτητα ένα στοιχείο Body Περιέχει πληροφορίες κλήσης και απάντησης Προαιρετικά ένα στοιχείο Fault Περιέχει πληροφορίες σχετικές με λάθη που γίνονται κατά την επεξεργασία του μηνύματος 14
SOAP συντακτικό (2) <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soapenvelope" soap:encodingstyle="http://www.w3.org/2001/12/soap -encoding"> <soap:header>......</soap:header> <soap:body>...... <soap:fault>...... </soap:fault> </soap:body> </soap:envelope> 15
SOAP request (1) <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope soap:encodingstyle="http://www.w3.org/2001/12/soapencoding"> <soap:body> <m:getprice xmlns:m="http://www.test_soap.gr/prices"> <m:item>apples</m:item> </m:getprice> </soap:body> </soap:envelope> 16
SOAP response (2) <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope soap:encodingstyle="http://www.w3.org/2001/12/soapencoding"> <soap:body> <m:getpriceresponse xmlns:m="http://www.test_soap.gr/prices"> <m:price>1.90</m:price> </m:getpriceresponse> </soap:body> </soap:envelope> 17
WSDL Web Services Description Language Βασίζεται στην XML Χρησιμοποιείται για την Περιγραφή των web services Καθορισμός των λειτουργιών και των μεθόδων που παρέχει μία web service Δήλωση της τοποθεσίας των web services Για το πώς θα αποκτηθεί η πρόσβαση σε αυτές Δεν είναι ακόμα standard του W3C 18
WSDL συντακτικό (1) Ένα αρχείο WSDL είναι ένα απλό XML αρχείο και αποτελείται από τα ακόλουθα: <porttype> Οι λειτουργίες που υλοποιεί η web service <message> Τα μηνύματα που χρησιμοποιεί η web service <types> Οι τύποι δεδομένων που χρησιμοποιεί <binding> Το πρωτόκολλο επικοινωνίας που χρησιμοποιεί 19
WSDL συντακτικό (2) <message name="gettermrequest"> <part name="term" type="xs:string"/> </message> <message name="gettermresponse"> <part name="value" type="xs:string"/> </message> <porttype name="glossaryterms"> <operation name="getterm"> <input message="gettermrequest"/> <output message="gettermresponse"/> </operation> </porttype> 20
WSDL συντακτικό (3) <binding type="glossaryterms" name="b1"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap /http"/> <operation> <soap:operation soapaction="http://example.com/getterm"/> <input><soap:body use="literal"/> </input> <output><soap:body use="literal"/> </output> </operation> </binding> 21
Χρήση SOAP & WSDL Η επιχείρηση Α χρησιμοποιεί ένα URL που παρέχεται από την επιχείρηση Β για να ανακτήσει μια λίστα με τις υπηρεσίες που δημοσιεύει η Β Η επιχείρηση Α «κατεβάζει» τα XML schemas (συνήθως σε WSDL) που περιγράφουν την μορφή των μηνυμάτων που αναμένονται από τις υπηρεσίες της εταιρείας Β Η επιχείρηση A σχηματίζει το ανάλογο XML μήνυμα και το αποστέλλει μέσω SOAP στην επιχείρηση Β Η επιχείρηση Β στέλνει μια απάντηση, μέσω SOAP, την οποία η επιχείρηση Α ερμηνεύει χρησιμοποιώντας την πληροφορία για το XML schema που έλαβε στο βήμα 2 22
UDDI Χώρος αποθήκευσης περιγραφών υπηρεσιών διαδικτύου κατά προσέγγιση ισοδύναμος με έναν αυτοματοποιημένο on-line "τηλεφωνικό κατάλογο" των Υπηρεσιών Διαδικτύου Ορίζει μοντέλο δεδομένων (σε XML) και SOAP APIs για καταχώρηση και αναζήτηση πληροφοριών μιας επιχείρησης Τρεις τύποι πληροφοριών για τις υπηρεσίες Διαδικτύου: πληροφορίες "λευκών σελίδων" (όνομα, επαφές για την επιχείρηση ) πληροφορίες "κίτρινων σελίδων" ( τύποι επιχειρήσεων και υπηρεσιών) και πληροφορίες "πράσινων σελίδων" (τεχνικά στοιχεία υπηρεσίας) 23
Τέλος Ενότητας
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Πατρών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 25
Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. 26
Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Ιωάννης Γαροφαλάκης, 2015. «Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό». Έκδοση: 1.0. Πάτρα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/ceid1093/. 27
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 28