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

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

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

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

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

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

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

* Enterprise Resource Planning ** Customer Relationship Management

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

Η Γλώσσα WS-BPEL 2.0. Εργαστήριο Ανάλυσης Συστημάτων και Τεχνολογίας Λογισμικού. S3Laboratory

Σύνθεση διαδικτυακών υπηρεσιών με χρήση τεχνικών σχεδιασμού ενεργειών

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

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

TECHNICAL REPORT. No. TR TRHP SOA Architecture. and Web Services. Αρχιτεκτονική SOA. και Υπήρεσι ες Ιστού. Παρασκεύή Τσού τσα.

Web Services. και SOAP

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

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

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

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

Σηµασιολογικές Υπηρεσίες Ιστού

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. WSDLBook:

Ιόνιο Πανεπιστήμιο Τμήμα Αρχειονομίας - Βιβλιοθηκονομίας Μεταπτυχιακό Πρόγραμμα Αθήνας Έτος

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 11: Αρχιτεκτονική Cloud

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

Το Πλαίσιο Διαλειτουργικότητας & Υπηρεσιών. Ενημέρωση σχετικά με τις γενικές αρχές και τη. Ενημέρωση σχετικά με τα τεχνολογικά πρότυπα βάσει

Introduction to JAX-WS. Φοιτητής : ηµόπουλος Κωνσταντίνος

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Το Μέλλον για τα Συστήματα Διαχείρισης Ακτινολογικής Εικόνας (PACS)

ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΥΠΗΡΕΣΙΟΣΤΡΕΦΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΩΝ ΓΙΑ RFID ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΗ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΕΡΓΑΣΙΑ

Πανεπιστήμιο Πειραιώς Τμ ή μα Ψήφιακώή ν Συστήμαή τών

Ανάπτυξη Συστήματος Σύνθεσης Υπηρεσιών Ιστού

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ

Βασικές Έννοιες Web Εφαρμογών

Τεχνικές Προδιαγραφές ιαλειτουργικότητας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

JAX-RPC (Web Services) ΕΠΛ 425: Τεχνολογίες ιαδικτύου Μιχάλης Έλληνας

Κεφάλαιο 29. Τεχνητή Νοημοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου

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

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

Διαδίκτυο των Αντικειμένων - IoT.

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ (MSc) στα ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙKH ΕΡΓΑΣΙΑ

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης

ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. «Εξαγωγή Γνώσης από Αποθήκες Υπηρεσιών Παγκόσμιου Ιστού»

Διπλωματική Εργασία. Μέλλιος Θωμάς, Πετρίδης Κοσμάς. Επιβλέπων Καθηγητής: Πρωτόγερος Νικόλαος

Σύγχρονα εργαλεία και τεχνολογίες ανάπτυξης I.S. Το Microsoft.NET

(C) 2010 Pearson Education, Inc. All rights reserved.

LGAF Business Process Modeling Framework

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

ΟΝΤΟΛΟΓΙΕΣ, ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ ΚΑΙ ΕΦΑΡΜΟΓΕΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΔΙΑΚΥΒΕΡΝΗΣΗΣ

Πανεπιστήμιο Πελοποννήσου Τμήμα Επιστήμης & Τεχνολογίας Υπολογιστών Ακαδημαϊκό έτος Πτυχιακή εργασία

Η Διαλειτουργικότητα στην Υπηρεσία του Πολίτη

«Σημασιολογική Αναζήτηση Υπηρεσιών Ιστού βάση των δυνατοτήτων τους» Semantic Matching of Web Services Capabilities

Network Address Translation (NAT)

Τεχνολογία Λογισμικού

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Μηχανή εκτέλεσης ροών εργασίας για συστήματα χαμηλών προδιαγραφών

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Συστήματα ηλεκτρονικής μάθησης με χρήση υπηρεσιών ιστού και ροών εργασίας

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

Δικτυοκεντρικά Πληροφοριακά Συστήματα

"Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0"

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android

ασθενών με χρήση XML Web Services και BPEL

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Διαδικτυακές υπηρεσίες προστιθέμενης αξίας: Τεχνολογικό περιβάλλον

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

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΤΗΜΑΤΑ ΕΠΙΜΕΛΕΙΑ: ΗΛΙΑΣ ΦΥΛΑΚΤΟΥ

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΟΙΚΗΣΗΣ. Ανάπτυξη Πληροφοριακών Συστηµάτων Επισκόπηση Π.Σ. & τεχνικές για Ανάλυση και Ανάπτυξη. πληροφοριακών συστηµάτων

Ανάπτυξηλογισμικού υλοποίησης του ανοικτού πρότυπου EPCALEv1.1 για εφαρμογές RFID

CORBA. Αρχιτεκτονική και 3-tier 3. εφαρµογές. Β. Φλώρος. Μαρτάκος. Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστιακό Πανεπιστήµιο Αθηνών

Διαχείριση Πληροφοριακών Συστημάτων

Αρχιτεκτονική Λογισμικού

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

Αντικειμενοστραφής προγραμματισμός. Κλασικές γλώσσες προγραμματισμού (FORTRAN, C, Pascal) Προσανατολισμός στα δεδομένα

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Test Data Management in Practice

Διαδίκτυο των Αντικειμένων - IoT.

Ευχαριστίες. Σελίδα 3

ΗΛΕΚΤΡΟΝΙΚΟΣ ΦΑΚΕΛΟΣ ΑΣΘΕΝΩΝ ΜΕ ΧΡΗΣΗ ΥΠΗΡΕΣΙΩΝ ΙΑ ΙΚΤΥΟΥ

SSL EDITOR: ΓΡΑΦΙΚΟ ΕΡΓΑΛΕΙΟ ΓΙΑ ΤΗ ΗΜΙΟΥΡΓΙΑ ΜΟΝΤΕΛΩΝ ΣΗΜΑΣΙΟΛΟΓΙΚΗΣ ΠΕΡΙΓΡΑΦΗΣ ΥΠΗΡΕΣΙΩΝ

Η εφαρµογή των αρχιτεκτονικών Service Oriented Architectures σε οργανισµούς και επιχειρήσεις

Διασύνδεση μεταξύ Επιχειρήσεων: Ηλεκτρονική Ανταλλαγή Παραστατικών

Τι είναι η λογική αρχιτεκτονική

Σχεδίαση Middleware Εγχειρίδιο Μελέτης

Κατανεμημένα Συστήματα. Javascript LCR example

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Ηλεκτρονικό Ταχυδρομείο - SMTP

Hosted CRM Εφαρμογές μέσω Internet

University of Macedonia Master in Information Systems. Networking Technologies professors: A. Economides A. Pobortsis AGREEMENT AND ACCOUNTING

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πανεπιστήµιο Πειραιώς Τµήµα : Ψηφιακών Συστηµάτων Πρόγραµµα Μεταπτυχιακών Σπουδών Κατεύθυνση :Ψηφιακών επικοινωνιών και δικτύων.

Διαχείριση Ετερογενών Δικτύων

Επίπεδο δικτύου IP Forwading κτλ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΚΑΤΕΥΘΥΝΣΗ «ΕΥΦΥΕΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ»

Πίνακας Εικόνων. 22/04/2014 Έκδοση 3.0.1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ (MIS) ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Transcript:

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

Περιεχόμενα Εισαγωγή στις Υπηρεσίες Ιστού Ορισμοί Παραδείγματα Σύγκριση με άλλες τεχνολογίες Πρωτόκολλα Υπηρεσιών Ιστού SOAP WSDL UDDI 2

ΕΙΣΑΓΩΓΗ 3

Συνοπτικός (αλλά περιεκτικός) ορισμός Οι υπηρεσίες ιστού είναι αυτόνομες, αρθρωτές (modular)εφαρμογές, που μπορούν να δημοσιευθούν, να εντοπισθούν και να κληθούν μέσω του Διαδικτύου, με τη χρήση κοινώς αποδεκτών προτύπων όπως XML, HTTP, WSDL, UDDIκαιSOAP 4

Τί ορίζεται ως Υπηρεσία Ιστού; IBM: A Web service is an interface that describes a collection of operations thatare network accessible through standardized XML messaging. Web servicesfulfill a specific task or a set of tasks. A Web service is described using astandard, formal XML notion, called its service description, that provides allof the details necessary to interact with the service, including messageformats (that detail the operations), transport protocols, and location. SUN: Web services are software components that can be spontaneouslydiscovered, combined, and recombined to provide a solution to the user'sproblem/request. The Java language and XML are the prominent technologies for Web services. Microsoft: A Web service is a unit of application logic providing data and services toother applications. Applications access Web services via ubiquitous Webprotocols and data formats such as HTTP, XML, and SOAP, with no need toworry about how each Web service is implemented. 5

ΥπηρεσίεςΙστού vs. Ιστότοποι Υπηρεσίες Ιστού Προσανατολισμένες στην προσφορά λειτουργιών Προορίζονται κυρίως για χρήση από συστήματα Αυτοπεριγραφόμενες Μπορούν να συνδυαστούν με άλλες υπηρεσίες Ιστότοποι Προσανατολισμένοι στην προσφορά πληροφορίας Προσανατολισμένοι για χρήση από χρήστες (ανθρώπους) Χωρίς διαθέσιμες περιγραφές Μπορούν να προσφέρουν πληροφορία από πολλές πηγές 6

Παραδείγματα (1/2) Απλές υπηρεσίες ιστού: απαντούν σε απλές ερωτήσεις για πληροφορία ή επιτελούν κάποιες λειτουργίες, όπως π.χ. Ενημέρωση για την τρέχουσα τιμή μιας χρηματιστηριακής μετοχής Ενημέρωση για τον καιρό σε μια περιοχή Μετατροπή από ένα νόμισμα σε ένα άλλο 7

Παραδείγματα (2/2) Σύνθετες υπηρεσίες ιστού: συνδυάζουν πληροφορίες και λειτουργικότητα που προέρχεται από πολλές υπηρεσίες ιστού, προκειμένου να διεκπεραιώσουν μια συγκεκριμένη επιχειρησιακή διεργασία (business process), όπως π.χ. Χρέωση για μια παραγγελία Customer Relationship Management (CRM) 8

Υπηρεσίες Ιστού vs. Συστατικά Λογισμικού(Components) είναι αρθρωτό έχει µια διεπαφή run-time Υπηρεσία Ιστού- Συστατικό (component) µπορεί να προσφερθεί αυτόνοµα µπορεί να κληθεί από οποιαδήποτε γλώσσα µπορεί να αποµονωθεί και να αντικατασταθεί µπορεί να κατατµηθεί (can be distributed) είναι επαναχρησιµοποιήσιµο µπορεί να κληθεί από οποιονδήποτε µε έναν χαλαρό τρόπο πάνω από το δίκτυο (µε την χρήση XML και SOAP) 9

Υπηρεσίες Ιστού vs. Κατανεμημένα Αντικείμενα High coupling EJB Programming language objects CORBA Low coupling Services Coarse grained Fine grained 10

Υπηρεσίες Ιστού vs. Κατανεμημένα Συστατικά Λογισμικού Ομοιότητες: Γλώσσες Περιγραφής Δικτυακή Αλληλεπίδραση Μηχανισμοί Αναζήτησης Διαφορές: Συστατικά Λογισμικού Κύκλος ζωής Instantiation The consumer who requested the instantiation performs operations on the object instance The consumer releases the instance or the runtime system Garbage collects it Υπηρεσίες Ιστού Δεν έχουν τα παραπάνω χαρακτηριστικά Ασχολούνται με XML documents και συμπερίληψη πληροφορίας σε XML Ανεξαρτησία μεταξύ υπηρεσιών 11

Πλεονεκτήματα Υπηρεσιών Ιστού - 1 Αυτό που κυρίως διαφοροποιεί τις Υπηρεσίες Ιστού από αντίστοιχες τεχνολογίες είναι η χρήση κοινά αποδεκτών προτύπων Χρήση HTTP για τη μεταφορά δεδομένων firewall-friendly Χρήση XML για την περιγραφή δεδομένων γενικού σκοπού και ευρέως αποδεκτή σε σχέση με τις τεχνολογίες DCOM ή CORBA πιο κατανοητή από τα πρωτόκολλα DCOM ή CORBA που είναι binary Χρήση της έννοιας του URLγια την ταυτοποίηση των υπηρεσιών ιστού ευρέως διαδεδομένη 12

Πλεονεκτήματα Υπηρεσιών Ιστού - 2 Επίσης οι υπηρεσίες ιστού Προσφέρουν ένα freevsfee economic value proposition HTTP/SOAP server environments vs. ORB frameworks Υποστηρίζουν τη διαλειτουργικότητααφού υποστηρίζουν ανοιχτές τεχνολογίες του Internet αντιμετωπίζουν θέματα διαλειτουργικότητας που έχουν οι προηγούμενες τεχνολογίες 13

ΠΡΩΤΟΚΟΛΛΑ ΥΠΗΡΕΣΙΩΝ ΙΣΤΟΥ 14

Κύκλος Ζωής Υπηρεσιών Ιστού Basic Layer Layer Create Describe Publish Discover Invoke Unpublish Value- Added Layer Composition Security Brokering Transaction Handling Billing Reliability Monitoring Contracting 15

Γιατί χρειαζόμαστε πρωτόκολλα; Για να ξέρουμε τι μεταδίδεται «πάνω στο καλώδιο» και τι περιγράφει αυτό που μεταδίδεται «πάνω στο καλώδιο» Για να βρίσκουμε τις περιγραφές υπηρεσιών Για να μπορούμε να χρησιμοποιούμε τις περιγραφές των υπηρεσιών για να τις καλέσουμε (invoke) και να τις συνθέσουμε (compose) 16

WSAH (Web Services Acronym Hell) XML ebxml DIME WSDL XSD JABBER SOAP-SEC SOAP XML-RPC SAML SOAP-RP XMLP XLANG CPP-CPA UDDI WSFL WSEL P3P DAML-S XML-ENC DISCO DSML X-KISS XKMS XML-DIGSIG PKI TWC (Tylenol with Codeine - which is what you ll need after reading about all of these) 17

Στοίβα Πρωτοκόλλων 18

WSDL, SOAP, UDDI: Αλληλεπιδράσεις Service Provider 1 Service Broker WSDL docs ηµιουργία/ ηµοσίευση Οργανισµού ή Υπηρεσίας UDDI Registry 2 Ανάκτηση WSDL doc Αναζήτηση Οργανισµού ή Υπηρεσίας Κλήση Υπηρεσίας 5 6 23 7 8 Application utilizing Web Services 4 SOAP Message Service Requester 19

Πρωτόκολλα για Υπηρεσίες Ιστού WSDL - Web Service Description Language SOAP - Simple Object Access Protocol UDDI Universal Description, Discovery, and Integration 20

WSDL Web Services Description Language

Τι είναι ηwsdl(1/2) Πρωτόκολλο περιγραφής Υπηρεσιών Ιστού Οι περιγραφές είναι XML documents που περιγράφουν τα interfaces των υπηρεσιών. Συγκεκριμένα περιγράφουν τις λειτουργίες που προσφέρονται τους μηχανισμούς πρόσβασης δεν είναι σε μιασυγκεκριμένη πλατφόρμα τη θέση που είναι διαθέσιμη η υπηρεσία 22

Τι είναι ηwsdl(2/2) To WSDL document περιλαμβάνει μια συλλογή από διάφορους τρόπους αλληλεπίδρασης (interaction paradigms), με τη δυνατότητα να συνδυάζονται λειτουργίες ή ομάδες λειτουργιών σε ένα interface Ο διαχωρισμός των interfaces, bindings and protocols δημιουργούν την ανάγκη για σπονδυλωτές προδιαγραφές Μπορεί να έχουμε διαφορετικές υπηρεσίες που να υλοποιούν το ίδιο interface αλλά να προσφέρουν την υπηρεσία σε διαφορετικές διευθύνσεις και να αλληλεπιδρούν με διαφορετικά πρωτόκολλα Η επικοινωνία μεταξύ πελάτη και υπηρεσίας είναι ασύγχρονη 23

Δομή ενός εγγράφου WSDL Abstractπεριγραφή -> περιγράφει τα interfaces αντίστοιχα με τα παραδοσιακά middleware IDL Concreteπεριγραφή -> protocol bindings και άλλες πληροφορίες 24

Δομή ενός εγγράφου WSDL Abstract περιγραφή Abstract περιγραφή Ορισμούς των port types Kάθε port type είναι μια λογική ομαδοποίηση λειτουργιών Κάθε λειτουργία περιγράφει απλή ανταλλαγή μηνυμάτων Ένα μήνυμα είναι μια μονάδα επικοινωνίας με μια υπηρεσία που αναπαριστά τα δεδομένα που ανταλλάσσονται σε μια μοναδική λογική συναλλαγή (single logical transaction) port types είναι το πιο σημαντικό στοιχείο στο WSDL. Περιγράφει ένα web service, τις λειτουργίες που προσφέρει και τα μηνύματα. Μπορεί να συγκριθεί με μια function library (ή μια κλάση ή ένα module) σε μια γλώσσα προγραμματισμού ή με τα interfaces στις παραδοσιακές middleware IDLs 25

Τα port types: Port Types Είναι το πιο σημαντικό στοιχείο στο WSDL Περιγράφει ένα web service, τις λειτουργίες που προσφέρει και τα μηνύματα. Μπορεί να συγκριθεί με μια function library (ή μια κλάση ή ένα module) σε μια γλώσσα προγραμματισμού ή με τα interfaces στις παραδοσιακές middleware IDLs 26

Δομή ενός εγγράφου WSDL Βήματα ορισμού της abstract περιγραφής (1/2) 1. Ορισμός του συστήματος τύπων δεδομένων που χρησιμοποιείται για την περιγραφή των μηνυμάτων (βασίζεται στο XML Schema) ώστε και οι δύο πλευρές να μεταφράζουν σωστά τα δεδομένα που ανταλλάσσονται. Σημειώστε ότι αυτό είναι διαφορετικό από τα IDLs σε conventional middleware, όπου το σύστημα τύπων επιβάλλεται από την πλατφόρμα (π.χ. CORBA ή J2EE) Τα σχήματα XML έχουν built-in βασικούς τύπους και μπορούν οι χρήστες να ορίζουν πιο σύνθετους τύπους. Επομένως, το πρώτο βήμα στον ορισμό ενός WSDL interface είναι να οριστούν όλοι οι τύποι δεδομένων που θα ανταλλάσσονται ως μέρος των μηνυμάτων μεταξύ των εφαρμογών 2. Ορισμός μηνυμάτων που χρησιμοποιούν αυτούς τους τύπους δεδομένων Κάθε μήνυμα αποτελείται από μέρη που αφορούν στους τύπους δεδομένων εισόδου και εξόδου 27

Δομή ενός εγγράφου WSDL Βήματα ορισμού της abstract περιγραφής (2/2) 3. Ορισμός λειτουργιών ή ορισμόςαλληλεπιδράσεων (transmission primitives) 4 βασικές λειτουργίες: one-way, request-response, notification, solicit-response Σύγχρονες αλληλεπιδράσεις -> request-response, solicit-response Ασύγχρονες αλληλεπιδράσεις -> one-way, notification http://www.roguewave.com/portals/0/products/hydraexpress/docs/4.3. 0/html/rwsfexpwsfabricationug/9-2.html 4. Ομαδοποίηση λειτουργιών σε port types Tα ports μπορούν να επεκτείνουν άλλα ports 28

Δομή ενός εγγράφουwsdl Σχηματικά WSDL definitions abstract part types messages port types operations concrete part bindings services and ports or endpoints 29

Δομή ενός εγγράφου WSDL Γιατί χρειαζόμαστε την concrete περιγραφή(1/2) Οι προηγούμενοι ορισμοί είναι abstract διότι δεν περιέχουν κάποιο concrete binding ή encoding ή ορισμό της υπηρεσίας που υλοποιεί κάποια port types Για τον ορισμό μιας πραγματικής υπηρεσίας χρειάζεται να οριστούν τα συγκεκριμένα port types που υλοποιεί τα transport bindings που τα υλοποιούν και οι διευθύνσεις αυτών των υλοποιήσεων 30

Δομή ενός εγγράφου WSDL Γιατί χρειαζόμαστε την concrete περιγραφή(2/2) Το ίδιο port typeμπορεί να υλοποιηθεί με πολλά bindings να συνδυαστεί με άλλες υλοποιήσεις port types και να σχηματίσει διαφορετικές υπηρεσίες Τα μηνύματα είναι abstract γιατί λείπει πληροφορία για το XML encoding που έχουν και το protocol binding. Ο ίδιος τύπος δεδομένων μπορεί να γίνει encoded σ ένα μήνυμα με διαφορετικούς κανόνες και το ίδιο μήνυμα μπορεί να ανταλλαγεί με διαφορετικά protocol bindings 31

Δομή ενός εγγράφου WSDL Concrete περιγραφή Αποτελείται από 3 μέρη Interface Bindings:περιγράφουν τη σύνδεση (binding)της διεπαφής(interface) με τοπρωτόκολλο μεταφοράς (transport protocol) Ports: ορίζουν το endpoint ή την διεύθυνση δικτύου (network address) μίας σύνδεσης Services:ορίζουν την υπηρεσία, ως συλλογή όλων των συνδέσεων(bindings) μιας διεπαφής 32

Δομή ενός εγγράφου WSDL Concrete περιγραφή- Interface Bindings Interface Bindings περιγράφουν τη σύνδεση (binding)της διεπαφής (interface) με τοπρωτόκολλο μεταφοράς (transport protocol)για όλα τα μηνύματα που περιγράφονται σ ένα port type, π.χ. Μπορεί να ορίζουν RPC-style operation (οπότε τα input/output είναι οι παράμετροι του procedure call) ή document-style operation(όπου τα input/output μηνύματα μεταφέρουν documents) Πως μεταφέρονται τα μηνύματα: με SOAP protocol και ΗΤΤP transport bindings(ή SMTP) Κανόνεςκωδικοποίησης (Encoding rules) e.g. Κωδικοποίηση κατά γράμμα (literal encoding)για document style interactions, SOAP encoding για RPC-style interactions 33

Δομή ενός εγγράφου WSDL Concrete περιγραφή- Ports or Endpoints Ports ή Εndpoints Συνδυάζουν την πληροφορία που υπάρχει στο Interface Bindings με μια διεύθυνση δικτύου (με ένα URI) όπου μπορεί κάποιος να έχει πρόσβαση στο port type Αυτό δεν χρειάζεται στα παραδοσιακά middleware λόγω της κεντρικοποιημένηςυποδομής που διαχειρίζεται τις διευθύνσεις 34

Services Δομή ενός εγγράφου WSDL Concrete περιγραφή- Services Λογικές ομαδοποιήσεις των ports Θεωρητικά ένα Web service μπορεί να είναι διαθέσιμο σε διαφορετικά URIs, και μπορεί να συνδυάζει τελείως διαφορετικά είδη ports. Στην πράξη, συνήθως ένα έγγραφο WSDL ομαδοποιεί σχετικά ports που είναι διαθέσιμα στην ίδια διεύθυνση Μια άλλη ομαδοποίηση είναι εκείνη όπου τα διάφορα ports αναπαριστούν διαφορετικά bindings των ίδιων port types. Αυτό επιτρέπει κάποιος να έχει πρόσβαση στην ίδια λειτουργικότητα με διαφορετικά transport protocols και interaction styles 35

Δομή ενός εγγράφουwsdl Σχηματικά WSDL definitions abstract part types messages port types operations concrete part bindings services and ports or endpoints 36

Στοιχεία ενός εγγράφου WSDL WSDL document Types (type information for the document, e.g., XML Schema) Message 1 Message 2 Message 3 Message 4 Message 5 Operation 1 Operation 2 Operation 3 Interface (abstract service) Message 6 description of the service Abstract binding 1 endpoint 1 binding 2 endpoint 2 binding 3 endpoint 3 Service (the interface in all its available implementations) binding 4 endpoint 4 Concrete description of the service 37

WSDLΠαράδειγμα <?xml version="1.0"?> <definitions name="procurement" targetnamespace=http://example.com/procurement/definitions xmlns:tns="http://example.com/procurement/definitions" xmlns:xs=http://www.w3.org/2001/xmlschema xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/ xmlns="http://schemas.xmlsoap.org/wsdl/" > <message name="ordermsg"> <part name="productname" type="xs:string"/> <part name="quantity" type="xs:integer"/> </message> abstract part messages <porttype name="procurementporttype"> <operation name="ordergoods"> <input message = "OrderMsg"/> </operation> </porttype> operation and port type <binding name="procurementsoapbinding" type="tns:procurementporttype"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="ordergoods"> <soap:operation soapaction="http://example.com/ordergoods"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="procurementservice"> <port name="procurementport" binding="tns:procurementsoapbinding"> <soap:address location="http://example.com/procurement"/> </port> </service> </definitions> concrete part binding port and service 38

Χρήση ενός εγγράφου WSDL Ως συμβόλαιο που περιγράφει Πως μπορείς να κάνεις interact με την υπηρεσία Τι δεδομένα χρειάζεται να στείλεις και τι να περιμένεις Ποιές λειτουργίες εκτελούνται Το format και τα πρωτόκολλα κλήσης της υπηρεσίας Επιτρέπει σε εργαλεία να παράγουν client και server stubs και τις πληροφορίες που χρειάζονται για την κλήση της υπηρεσίας Επιτρέπει τη δημιουργία σημασιολογίας από τις διάφορες εταιρείες Επιτρέπει δημοσίευση των περιγραφών και επιτρέπει αναζήτηση (σε συνδυασμό με το UDDI) και binding με τις κατάλληλες υπηρεσίες 39

Χρήση της WSDL 40

Η WSDL καλύπτει την περιγραφή των: Είναι αρκετή η WSDL; Μηνυμάτων και των τύπων τους Υποστηριζόμενων λειτουργιών και των προτύπων συναλλαγών για κάθε λειτουργία Τελικών URLs και των πρωτοκόλλων που πρέπει να χρησιμοποιηθούν Αλλά δεν μπορεί να καλύψει θέματα όπως: Σημασιολογική περιγραφή των υπηρεσιών, λειτουργιών και μηνυμάτων, πχ. Τι πραγματικά κάνει μια λειτουργία; Σε ποια πραγματική έννοια αντιστοιχεί ένα μήνυμα; Περιγραφή των πιθανών συνολικών συναλλαγών που μπορούμε να έχουμε με μια υπηρεσία, π.χ. με πoια σειρά πρέπει να πραγματοποιηθούν οι κλήσεις των προσφερόμενων λειτουργιών μιας υπηρεσίας, στο πλαίσιο κάποιου σεναρίου Περιγραφή των πολιτικών και των κανόνων που διέπουν τη λειτουργία μιας υπηρεσίας 41

SOAP -Simple Object Access Protocol

Τι είναι τοsoap? To W3C άρχισε να ασχολείται με το SOAP από1999. Η τρέχουχα Version είναι η 1.2 (Απρίλιος 2007) Το SOAP καλύπτει τις εξής περιοχές: Την μορφή των μηνυμάτων για μία μονόδρομη επικοινωνία που περιλαμβάνει και τον τρόπο με τον οποίο μπορεί να πακεταριστεί ένα μήνυμα σε ένα XML document Μια περιγραφή για το πώςένα SOAP μήνυμα(ήένα XML κείμενο το οποίο αποτελεί έναsoap μήνυμα) πρέπει να μεταφερθείπάνω από τοhttp (γιαweb based συναλλαγές) ή πάνω από το SMTP(για e-mail συναλλαγές) Ένα σύνολο κανόνων οι οποίοι πρέπει να ακολουθηθούν κατά την επεξεργασία ενός SOAP μηνύματοςκαι μία κατηγοριοποίηση των εμπλεκομένων στην επεξεργασία ενός μηνύματος. Επιπλέον καθορίζει τα μέρη του μηνύματος στα οποία μπορούν να έχουν πρόσβαση οι συμμετέχοντες στην συναλλαγή και το πώς μπορούν να αντιδράσουν σε περίπτωση σφάλματος του μηνύματος Ένα σύνολο συμβάσεων για το πώς μπορεί να μετατραπεί μία RPC κλήση σε SOAP μήνυμα και αντιστρόφως, καθώς και πως μπορεί να υλοποιηθεί μία RPC επικοινωνία (πως ένας χρήστης κάνει μία RPC κλήση, πως μεταφράζεται σε ένα SOAP μήνυμα, πως μεταφέρεται, πως μετατρέπεται σε μια RPC κλήση στον server, πως μετατρέπεται η απάντηση του server σε ένα SOAP μήνυμα, πως στέλνεται στον client ως αποτέλεσμα της RPC κλήσης) 43

SOAP μηνύματα Τα μηνύματα έχουν την μορφή φακέλων στους οποίους οι εφαρμογές εναποθέτουν τα δεδομένα που ανταλλάσσονται Ένα μήνυμα έχει 2 μέρη: header: το οποίο μπορεί να χωριστεί σε blocks body: το οποίο μπορεί να χωριστεί σε blocks Το SOAP δεν καθορίζει τι πρέπει να κάνει κάποιος με το header και το body, παρά μόνο ορίζει ότι το header δεν είναι υποχρεωτικό να υπάρχει ενώ το body είναι Η χρήση του header και τουbody, ωστόσο είναι υπονοούμενη. Το body είναι για τα δεδομένα της εφαρμογής. Τοheader είναι για δεδομένα της υποδομής SOAP Envelope SOAP header Header Block SOAP Body Body Block 44

SOAP Τύποι μηνυμάτων 45

Κωδικοποιήσεις μηνυμάτων <ProductItem> <name> </name> <type> </type> <make> </make> </ProductItem> <ProductItem name= type= make= /> <ProductItem name= > <type> </type> <make> </make> </ProductItem> 46

<SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Header> <t:transaction xmlns:t="some-uri" SOAP-ENV:mustUnderstand="1"> 5 </t:transaction> </SOAP-ENV:Header> SOAP παράδειγμα <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m="some-uri"> <symbol>def</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 47

SOAP Παράδειγμα κλήσης POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "http://example.com/stockquote.xsd" <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m="http://example.com/stockquote.xsd"> <symbol>ms</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 48

SOAP Παράδειγμα απόκρισης HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:getlasttradepriceresponse mlns:m="http://example.com/stockquote.xsd"> <Price>143</Price> </m:getlasttradepriceresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 49

Χρήση SOAP εντός του υπηρεσιοστρεφούς μοντέλου HTTP POST SOAP Envelope SOAP header Transactional context SOAP Body Name of Procedure SERVICE REQUESTER In parameter 1 In parameter 2 SERVICE PROVIDER RPC call Procedure SOAP engine HTTP engine HTTP Acknowledgement HTTP engine SOAP engine SOAP Envelope SOAP header Transactional context SOAP Body Return parameter 50

UDDI Universal Description, Discovery, and Integration

Τι είναι τοuddi? Universal Description, Discovery and Integration Μια υπηρεσία καταλόγου όπου οι εταιρείες μπορούν να καταγράφουν τα web services που παρέχουν και οι πελάτες μπορούν να βρίσκουν πληροφορίες Δημιουργήθηκε το 2000, με το όραμα να δημιουργήσει μια δημόσια ή ιδιωτική δυναμική υποδομή μεσάζοντα μεταξύ πελατών και παρόχων υπηρεσιών ιστού. Δεν υιοθετήθηκε ευρέως. Η IBM, Microsoft, andsap ανακοίνωσαν ότι κλείνουν τα public UDDI nodesinjanuary2006.h ομάδα του OASIS που δημιουργούσε τα specifications για το UDDI αποφάσισε ότι ολοκλήρωσε τη δουλειά το 2007, και η ομάδα αυτή πλέον δεν υπάρχει. Σήμερα βρίσκουμε UDDI συστήματα μέσα σε εταιρείες 52

Είδος πληροφορίας στο UDDI white pages information:πληροφορίες σχετικά με το ποιος παρέχει την υπηρεσία (όνομα, διεύθυνση, contact person, κτλ.) yellow pages information: τι τύπου υπηρεσίες προσφέρονται και μία λίστα με τις υπηρεσίες που προσφέρονται green pages information: τεχνικές πληροφορίες σχετικά με την χρήση του κάθε ενός service που προσφέρεται, συμπεριλαμβανομένων και δεικτών σε WSDL περιγραφές των υπηρεσιών (οι οποίες δεν αποθηκεύονται στο UDDI registry) 53

Στοιχεία του UDDI Μια καταχώρηση στο UDDI registry είναι ένα XML κείμενο το οποίο αποτελείται από διάφορα στοιχεία, τα πιο σημαντικά από αυτά είναι: businessentity: περιγραφή του οργανισμού που παρέχει την υπηρεσία businessservice: περιγραφή μιας υπηρεσίας που προσφέρει ένα business entity. bindingtemplate: περιγραφή των τεχνικών θεμάτων της προσφερόμενης υπηρεσίας tmodel: ( technical model )ένα γενικό στοιχείο το οποίο χρησιμοποιείται για την αποθήκευση επιπλέον πληροφορίας σχετικά με την υπηρεσία. Τυπικά περιέχει πληροφορίες σχετικά με το πώς μπορεί να χρησιμοποιηθεί, συνθήκες για τη χρήση, εγγυήσεις, κτλ. 54

Δομή τουuddi 55

Παράδειγμα Εγγραφής businessentity TB993 Harbour Metals www.harbourmetals.co.au Serving Inner Sydney Harbour for contacts businessservices identifierbag categorybag Peter Smythe 872-6891 4281 King s Blvd, Sydney, NSW Peter@harbourmetals.co.au businessservice businessservice Key 23T701e54683nf Name Online catalog Description Website where you can BindingTemplates keyedreference EE123 NAICS 0241722 keyedreference DFE-2B D-U-N-S 9876545231 tmodelkeys BindingTemplate 5E2D412E5-44EE- http://www.sydneynet/harbour tmodelinstancedetails tmodelinstanceinfo 4453D6FC-223C-3ED0 http://www.rosetta.net/catalogpip 56

UDDI και WSDL 57

Βιβλιογραφία A. Tsalgatidou, T. Pilioura, An Overview of Standards and Related Technology in Web Services. International Journal of Distributed and Parallel Databases, Special Issue on E-Services, 12(2), Sep 2002, 135-162. Graham et al., Building Web Services with Java: Making Sense of XML, SOAP, WSDL and UDDI, Sams Publishing 2001. G. Alonso, F. Casati, H. Kuno, V. Machiraju, Web Services Comcepts, Architectures and Applications, Springer-Verlag 2004 Werner Vogels, Web Services are not Distributed Objects,IEEE Internet Computing, Nov-Dec 2003. 58

Χρήσιμοι Ιστότοποι SOAP- http://www.w3.org/tr/soap12-part0/ WSDL 2.0 - http://www.w3.org/tr/wsdl20-primer WSDL 1.1 - http://www.w3.org/tr/wsdl UDDI - http://uddi.xml.org/ Πληροφορίες σχετικά με Υπηρεσίες Ιστού http://www.webservicesarchitect.com/ http://www.w3schools.com/webservices/default.a sp 59