Κατανεμημένα Συστήματα με Java. Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Σχετικά έγγραφα
Κατανεμημένα Συστήματα. Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 9: Web Services. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services

Τεχνολογία Πολυμέσων. Ενότητα # 2: Εφαρμογές πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 17: Πρωτόκολλα μετάδοσης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture)

ΚΕΦΑΛΑΙΟ 17: Web Services Εισαγωγή

Εισαγωγή στην Επιστήμη των Υπολογιστών

Τεχνολογία Πολυμέσων. Ενότητα # 16: Πολυεκπομπή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα. Ενότητα # 2: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

Τεχνολογία Πολυμέσων. Ενότητα # 7: Θεωρία πληροφορίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 19: Τηλεδιάσκεψη Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Κινητά και Διάχυτα Συστήματα. Ενότητα # 8: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Μοντελοποίηση Λογικών Κυκλωμάτων

Τεχνολογία Πολυμέσων. Ενότητα # 15: Συγχρονισμός πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Στέλλα Λάμπουρα

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Ενότητα 6 (κεφάλαιο 19) Υπηρεσιοκεντρική Αρχιτεκτονική

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Κινητά και Διάχυτα Συστήματα. Ενότητα # 4: Απομακρυσμένα αντικείμενα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Κατανεμημένα Συστήματα με Java. Ενότητα # 16: Κατανεμημένα συστήματα αντικειμένων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 1: Εισαγωγικό Μάθημα

Τεχνολογία Πολυμέσων. Ενότητα # 20: Υπηρεσίες καλύτερης προσπάθειας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Υπηρεσίες Ιστού (Web Services) Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Τεχνολογία Πολυμέσων. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 18: Ροή πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εισαγωγή στην Πληροφορική

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:07. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 9: MPLS

Θέματα υπολογισμού στον πολιτισμό

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Αριθμητική Ανάλυση. Ενότητα 1: Εισαγωγή Βασικές Έννοιες. Φραγκίσκος Κουτελιέρης Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών

Κινητά και Διάχυτα Συστήματα. Ενότητα # 6: Εφαρμογές DHT Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εισαγωγή στην Πληροφορική

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΜΑΘΗΜΑ: Δίκτυα Υψηλών Ταχυτήτων

Τεχνολογία Πολυμέσων. Ενότητα # 12: Κωδικοποίηση βίντεο: H.26x Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Αυτοματοποιημένη χαρτογραφία

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Παράλληλη Επεξεργασία Κεφάλαιο 7 ο Αρχιτεκτονική Συστημάτων Κατανεμημένης Μνήμης

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Τεχνολογία Πολυμέσων. Ενότητα # 11: Κωδικοποίηση εικόνων: JPEG Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP

* Enterprise Resource Planning ** Customer Relationship Management

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Ειδικά Θέματα Δικτύων ΙΙ. Ενότητα 8: Δρομολόγηση κατάστασης ζεύξης (Μέρος 2) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Θέματα Συστημάτων Πολυμέσων. Ενότητα # 8: MPEG Διδάσκων: Γεώργιος Πολύζος Τμήμα: Μεταπτυχιακό Πρόγραμμα Σπουδών Επιστήμη των Υπολογιστών

Λειτουργικά Συστήματα

Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 6: Κατανομή φόρτου Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 7: Τοπικά δίκτυα

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας. Υπηρεσίες Internet. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα θ

Διαχείριση Πολιτισμικών Δεδομένων

Εισαγωγή στους Αλγορίθμους

Διδακτική της Πληροφορικής

Κινητά και Διάχυτα Συστήματα. Ενότητα # 10: Κατανομή φόρτου Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εισαγωγή στην Πληροφορική

Βάσεις Περιβαλλοντικών Δεδομένων

Πληροφορίες για το μάθημα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης

Εισαγωγή στην Πληροφορική

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η

Τεχνολογία Πολυμέσων. Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Transcript:

Κατανεμημένα Συστήματα με Java Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Οικονομικό Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Οι εικόνες προέρχονται από το βιβλίο «Κατανεμημένα Συστήματα με Java», Ι. Κάβουρας, Ι. Μήλης, Γ. Ξυλωμένος, Α. Ρουκουνάκη, 3 η έκδοση, 2011, Εκδόσεις Κλειδάριθμος. 3

Σκοποί ενότητας Κατανόηση της χρησιμότητας των υπηρεσιών Ιστού και του τρόπου περιγραφής τους. Εξοικείωση με τις προσεγγίσεις υλοποίησης βασισμένες στο SOAP και με στυλ REST και σύγκριση των προσεγγίσεων. 4

Περιεχόμενα ενότητας Εισαγωγή Γλώσσα περιγραφής υπηρεσιών Ιστού Υπηρεσίες Ιστού βασισμένες στο SOAP Υπηρεσίες Ιστού με στυλ REST Σύγκριση μεταξύ SOAP και REST Σχεδιασμός και υλοποίηση υπηρεσιών Ιστού 5

Εισαγωγή Μάθημα: Κατανεμημένα Συστήματα με Java, Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

SOA και WS (1 από 3) Υπηρεσιοστρεφής αρχιτεκτονική Service-oriented architecture (SOA) Βασίζεται σε υπηρεσίες από έναν πάροχο Χρήση από καταναλωτές/πελάτες/αιτούντες Υπηρεσίες Ιστού (Web Services, WS) Παρέχονται μέσω του Ιστού Προσπελάσιμες μέσω πρωτοκόλλων Ιστού Παράδειγμα: HTTP, SMTP, αλλά όχι RMI 7

SOA και WS (2 από 3) Διεπαφή ή συμβόλαιο WS Πού βρίσκεται η υπηρεσία Πώς μπορεί να προσπελαστεί Περιγραφή για μηχανή ή για άνθρωπο Επεκτάσιμη γλώσσα σήμανσης (XML) Αναπαράσταση δεδομένων επικοινωνίας Επιτρέπει διαφάνεια γλώσσας Άλλη γλώσσα για πελάτη και υπηρεσία 8

SOA και WS (3 από 3) Παράδειγμα: κληρονομημένα συστήματα Ο πάροχος έχει μία βάση σε COBOL Εκθέτει τη βάση μέσω μιας σειράς WS Οι πελάτες χρησιμοποιούν άλλη γλώσσα Χαλαρά συνδεδεμένη αρχιτεκτονική Είδη υπηρεσιών Ιστού WS που βασίζονται στο SOAP WS με στυλ REST 9

Γλώσσα περιγραφής υπηρεσιών Ιστού Μάθημα: Κατανεμημένα Συστήματα με Java, Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Τι είναι η WSDL; Γλώσσα περιγραφής υπηρεσιών Ιστού Web services description language (WSDL) Βασίζεται στην XML Έγγραφο WSDL Περιγράφει μία ή περισσότερες WS Αποτελεί το συμβόλαιό τους Κατάλληλο για επεξεργασία από μηχανή Πολλά διαθέσιμα εργαλεία 11

Έγγραφα WSDL (1 από 9) Βασικά στοιχεία εγγράφου WSDL Description: το ριζικό στοιχείο Documentation: τεκμηρίωση για άλλο στοιχείο Import: έγγραφο WSDL με άλλο χώρο ονομάτων Include: έγγραφο WSDL με τον ίδιο χώρο ονομάτων Types: τύποι που χρησιμοποιεί η υπηρεσία Interface: λειτουργίες που υποστηρίζονται Binding: πρωτόκολλο προσπέλασης Service: πού βρίσκεται η υπηρεσία 12

Έγγραφα WSDL (2 από 9) <?xml version="1.0"?> <description targetnamespace="http://cs.aueb.gr/gs" xmlns="http://www.w3.org/ns/wsdl" xmlns:wsoap="http://www.w3.org/ns/wsdl/soap" xmlns:gs="http://cs.aueb.gr/gs"> Στοιχείο description Ρίζα του εγγράφου Δηλώσεις χώρων ονομάτων που χρησιμοποιεί 13

Έγγραφα WSDL (3 από 9) <types> <xsd:schema targetnamspace="http://cs.aueb.gr/gs" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="gsreq" type="xsd:string"/> <xsd:element name="gsresp" type="xsd:string"/> </xsd:schema> </types> Στοιχείο types: τύποι που χρησιμοποιούνται Τύποι εισόδου, εξόδου και σφαλμάτων Συνήθως χρήση της γλώσσας XML Schema 14

Έγγραφα WSDL (4 από 9) <interface name="gint"> <operation name="convert" pattern="http://www.w3.org/ns/wsdl/in-out" style="http://www.w3.org/ns/wsdl/style/iri"> <input messagelabel="in" element="gs:gsreq"/> <output messagelabel="out" element="gs:gsresp"/> </operation> </interface> Στοιχείο interface: λειτουργίες υπηρεσίας Κάθε λειτουργία περιγράφεται με στοιχείο operation Περιέχει στοιχεία name, pattern και style 15

Έγγραφα WSDL (5 από 9) Ιδιότητες του στοιχείου operation Name: όνομα, μοναδικό μέσα στο interface Pattern: σχηματομορφή ανταλλαγής μηνυμάτων Πλήθος και σειρά μηνυμάτων που ανταλλάσσονται Style: πρόσθετοι περιορισμοί στη λειτουργία Input: μηνύματα εισόδου λειτουργίας Output: μηνύματα εξόδου λειτουργίας MessageLabel: ρόλος στη σχηματομορφή 16

Έγγραφα WSDL (6 από 9) Σχηματομορφές ανταλλαγής μηνυμάτων (MEP) In-Only: δέχεται μόνο μήνυμα Robust In-Only: μπορεί να δημιουργήσει σφάλμα In-Out: δέχεται μήνυμα και παράγει μήνυμα In-Optional-Out: μπορεί να μην παράξει μήνυμα Out-Only: παράγει μόνο μήνυμα Robust Out-Only: μπορεί να δημιουργήσει σφάλμα Out-In: παράγει μήνυμα και δέχεται μήνυμα Out-Optional-In: μπορεί και να μην δεχτεί μήνυμα 17

Έγγραφα WSDL (7 από 9) <binding name="gbind" interface="gs:gint" type="http://www.w3.org/ns/wsdl/soap" wsoap:protocol= "http://www.w3.org/2003/05/soap/bindings/http/"> <operation ref="gs:convert" wsoap:mep="http: //www.w3.org/2003/05/soap/mep/request-response"/> </binding> Στοιχείο binding: πρωτόκολλο μετάδοσης Πρωτόκολλο (SOAP) και παράμετροι (HTTP) MEP της κάθε λειτουργίας (request-response) 18

Έγγραφα WSDL (8 από 9) <service name="gs" interface="gs:gint"> <endpoint name="gend" binding="gs:gbind" address="http://cs.aueb.gr/gs"> </service> </description> Στοιχείο service: σημείο πρόσβασης Endpoint: αναφέρεται σε ένα binding Δίνει τη διεύθυνση επικοινωνίας 19

Έγγραφα WSDL (9 από 9) Στοιχείο Documentation Παρέχει απλή περιγραφή του στοιχείου Service Συμπερίληψη άλλων αρχείων Import: σε διαφορετικό χώρο ονομάτων Include: στον ίδιο χώρο ονομάτων Ορισμός σφαλμάτων Στοιχεία Fault στο στοιχείο Interface Ιδιότητες infault/outfault στα στοιχεία Operation 20

Υπηρεσίες Ιστού βασισμένες στο SOAP Μάθημα: Κατανεμημένα Συστήματα με Java, Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Τι είναι το SOAP; Απλό πρωτόκολλο προσπέλασης αντικειμένων Simple object access protocol (SOAP) Ανταλλαγή μηνυμάτων γραμμένων σε XML Δομή, μεταφορά και επεξεργασία μηνυμάτων Ένας αποστολέας και ένας τελικός παραλήπτης Πιθανόν πολλοί ενδιάμεσοι Ορίζουν μία διαδρομή μηνύματος 22

Μηνύματα SOAP (1 από 3) Μήνυμα SOAP: έγγραφο XML Περιέχει έναν φάκελο SOAP Επικεφαλίδα (προαιρετική) Πληροφορίες επεξεργασίας και δρομολόγησης Ορατές στους ενδιάμεσους Σώμα (υποχρεωτικό) Πληροφορίες για τον τελικό παραλήπτη Αόρατες στους ενδιάμεσους 23

Μηνύματα SOAP (2 από 3) Μεταφορά μηνυμάτων SOAP Συνήθως πάνω από HTTP/HTTPS Εναλλακτικά πάνω από SMTP, FTP, AMQP Μπορεί να γίνεται και μέσω JMS Κωδικοποίηση μηνυμάτων SOAP Η XML βασίζεται σε κείμενο Τι γίνεται όταν έχουμε δυαδικά δεδομένα; 24

Μηνύματα SOAP (3 από 3) Κωδικοποίηση MIME (π.χ. Base64) Πολύ μεγάλη επιβάρυνση SOAP με επισυνάψεις (SwA) Επισύναψη δυαδικών δεδομένων Προβλήματα ασφάλειας με το μη ενιαίο μήνυμα Βελτιστοποίηση μετάδοσης μηνυμάτων (MTOM) Πακετάρισμα δυαδικών δεδομένων XML (XOP) Εισάγει τα δεδομένα στο μήνυμα στην επεξεργασία 25

Υπηρεσίες Ιστού με στυλ REST Μάθημα: Κατανεμημένα Συστήματα με Java, Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Τι είναι το REST; (1 από 2) Μεταφορά παραστατικής κατάστασης Representational state transfer (REST) Δόμηση κατανεμημένων συστημάτων υπερμέσων Βασίζεται σε πόρους που έχουν URL Κάθε πόρος έχει μία κατάσταση Η αναπαράσταση δίνει την κατάσταση του πόρου Έχει κάποιον τύπο διαδικτυακού μέσου (MIME) Παράδειγμα: text/html για έγγραφα HTML 27

Τι είναι το REST; (2 από 2) Πελάτης REST Σε στάδιο μετάβασης ή ανάπαυσης Η μετάβαση γίνεται στέλνοντας αιτήσεις Οι αιτήσεις αφορούν πόρο του εξυπηρετητή Περιέχουν αναπαραστάσεις των πόρων Υπηρεσίες Ιστού με στυλ REST Το URL της υπηρεσίας είναι το URL ενός πόρου Αντί για λειτουργίες έχουμε μεθόδους HTTP Μπορούν να περιγράφονται και με WSDL 28

Σύγκριση μεταξύ SOAP και REST Μάθημα: Κατανεμημένα Συστήματα με Java, Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Διαφορές SOAP και REST (1 από 3) Υπηρεσία Ιστού SOAP HTTP (συνήθως) Υπηρεσία Ιστού HTTP (συνήθως) Τι είναι το κάθε ένα; (α) (β) SOAP: πρωτόκολλο επικοινωνίας Πρότυπο κατασκευής υπηρεσιών Ιστού Χρήση εργαλείων για κατασκευή υπηρεσιών REST: στυλ σχεδίασης Δεν χρειάζεται πρόσθετο λογισμικό 30

Διαφορές SOAP και REST (2 από 3) Περιγραφή υπηρεσιών SOAP: υποχρεωτικά σε WSDL Μεγάλη ευελιξία στις υπηρεσίες Σύνθετα σχήματα επικοινωνίας Οικονομική χρήση δυαδικών δεδομένων REST: προαιρετικά σε WSDL Χρήση μόνο των μεθόδων του HTTP Απλά σχήματα επικοινωνίας 31

Διαφορές SOAP και REST (3 από 3) Διαθέσιμες μέθοδοι SOAP: Χρήση μόνο της μεθόδου POST Δεν μπορεί να αποθηκευθεί σε κρυφές μνήμες Δεν ξέρουμε αν μια αίτηση είναι ασφαλής Πρέπει να εξετάσουμε το περιεχόμενό της REST: χρήση διάφορων μεθόδων HTTP Μπορεί να μπουν σε μνήμη cache Οι αιτήσεις με GET είναι πάντα ασφαλείς 32

Σχεδιασμός και υλοποίηση υπηρεσιών Ιστού Μάθημα: Κατανεμημένα Συστήματα με Java, Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Τεχνικές σχεδιασμού WS (1 από 3) Κώδικας Προδιαγραφές WSDL Εργαλείο κώδικα σε WSDL (α) Εργαλείο WSDL σε κώδικα Προδιαγραφές WSDL Σκελετός κώδικα Συνθετική προσέγγιση / κώδικας πρώτα (β) Αρχικά γράφουμε τον κώδικα της υπηρεσίες Μετά παράγουμε το έγγραφο WSDL Χρήση αυτοματοποιημένων εργαλείων Δεν απαιτεί γνώσεις WSDL Το έγγραφο WSDL έχει περιττά στοιχεία 34

Τεχνικές σχεδιασμού WS (2 από 3) Αναλυτική προσέγγιση / συμβόλαιο πρώτα Αρχικά γράφουμε το έγγραφο WSDL Μετά δημιουργούμε σκελετούς τάξεων Χρήση αυτοματοποιημένων εργαλείων Τέλος γράφουμε τον κώδικα Οδηγεί σε πιο σωστό σχεδιασμό Πρώτα διεπαφή και μετά υλοποίηση Απαιτεί καλή γνώση της WSDL 35

Τεχνικές σχεδιασμού WS (3 από 3) Τρόπος διάθεσης υπηρεσιών Μέσω SOAP, μέσω REST, ή και τα δύο Καλό είναι να έχουμε πάντα έγγραφα WSDL Ακόμη κι όταν χρησιμοποιούμε REST Σαφής περιγραφή των υπηρεσιών Υλοποίηση πελατών Αυτόματη δημιουργία σκελετών από WSDL Άλλη μία χρησιμότητα των εγγράφων WSDL 36

Τέλος Ενότητας # 18 Μάθημα: Κατανεμημένα Συστήματα με Java, Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής