Τι είναι η Υπηρεσία Ιστού;
Η υπηρεσία Ιστού είναι ένα τυποποιημένο μέσο για τη διάδοση της επικοινωνίας μεταξύ των εφαρμογών πελάτη και διακομιστή στο World Wide Web. Η υπηρεσία Ιστού είναι μια ενότητα λογισμικού που έχει σχεδιαστεί για να εκτελεί ένα συγκεκριμένο σύνολο εργασιών.
- Οι υπηρεσίες Web στο cloud computing μπορούν να αναζητηθούν μέσω του δικτύου και μπορούν επίσης να χρησιμοποιηθούν ανάλογα.
- Όταν καλείται, η διαδικτυακή υπηρεσία θα μπορούσε να παρέχει τη λειτουργικότητα στον πελάτη, ο οποίος επικαλείται αυτήν την υπηρεσία ιστού.
Σε αυτό το σεμινάριο Web Service, θα μάθετε τα βασικά των υπηρεσιών Web-
- Πώς λειτουργούν οι Υπηρεσίες Web;
- Γιατί χρειάζεστε μια υπηρεσία Ιστού;
- Τύπος υπηρεσίας Web
- Πλεονεκτήματα Υπηρεσιών Ιστού
- Αρχιτεκτονική Υπηρεσιών Ιστού
- Χαρακτηριστικά υπηρεσίας διαδικτύου
- Υπηρεσίες web SOAP.
- RESTful υπηρεσίες Ιστού.
- Κάθε έγγραφο SOAP πρέπει να έχει ένα ριζικό στοιχείο γνωστό ως το στοιχείο
. Το ριζικό στοιχείο είναι το πρώτο στοιχείο σε ένα έγγραφο XML. - Ο "φάκελος" με τη σειρά του χωρίζεται σε 2 μέρη. Το πρώτο είναι η κεφαλίδα και το επόμενο είναι το σώμα.
- Η κεφαλίδα περιέχει τα δεδομένα δρομολόγησης που είναι βασικά οι πληροφορίες που αναφέρουν το έγγραφο XML στον οποίο πελάτης πρέπει να σταλεί.
- Το σώμα θα περιέχει το πραγματικό μήνυμα.
Πώς λειτουργούν οι Υπηρεσίες Web;

Το παραπάνω διάγραμμα δείχνει μια πολύ απλοϊκή εικόνα για το πώς θα λειτουργούσε πραγματικά μια υπηρεσία Ιστού. Ο πελάτης θα επικαλούσε μια σειρά από κλήσεις υπηρεσίας Ιστού μέσω αιτημάτων σε έναν διακομιστή που θα φιλοξενούσε την πραγματική υπηρεσία Ιστού.
Αυτά τα αιτήματα υποβάλλονται μέσω αυτού που είναι γνωστό ως κλήσεις απομακρυσμένης διαδικασίας Οι Απομακρυσμένες Διαδικασίες Κλήσεις (RPC) είναι κλήσεις που γίνονται σε μεθόδους που φιλοξενούνται από τη σχετική υπηρεσία Ιστού.
Για παράδειγμα, η Amazon παρέχει μια διαδικτυακή υπηρεσία που παρέχει τιμές για προϊόντα που πωλούνται στο διαδίκτυο μέσω του amazon.com. Το επίπεδο διεπαφής ή παρουσίασης μπορεί να βρίσκεται σε .Net ή Java, αλλά οποιαδήποτε από τις γλώσσες προγραμματισμού θα έχει τη δυνατότητα να επικοινωνεί με την υπηρεσία Ιστού.
Το κύριο συστατικό μιας σχεδίασης υπηρεσίας ιστού είναι τα δεδομένα που μεταφέρονται μεταξύ του πελάτη και του διακομιστή, και είναι το XML. Το XML (Extensible markup language) είναι ένα αντίστοιχο σε HTML και είναι εύκολο να κατανοηθεί η ενδιάμεση γλώσσα που κατανοείται από πολλές γλώσσες προγραμματισμού.
Έτσι, όταν οι εφαρμογές μιλούν μεταξύ τους, στην πραγματικότητα μιλούν σε XML. Αυτό παρέχει μια κοινή πλατφόρμα για εφαρμογές που αναπτύχθηκαν σε διάφορες γλώσσες προγραμματισμού για να μιλούν μεταξύ τους.
Οι υπηρεσίες Ιστού χρησιμοποιούν κάτι γνωστό ως SOAP (Simple Object Access Protocol) για την αποστολή των δεδομένων XML μεταξύ εφαρμογών. Τα δεδομένα αποστέλλονται μέσω κανονικού HTTP. Τα δεδομένα που αποστέλλονται από την υπηρεσία web στην εφαρμογή ονομάζονται μήνυμα SOAP. Το μήνυμα SOAP δεν είναι παρά ένα έγγραφο XML. Δεδομένου ότι το έγγραφο είναι γραμμένο σε XML, η εφαρμογή πελάτη που καλεί την υπηρεσία Ιστού μπορεί να γραφτεί σε οποιαδήποτε γλώσσα προγραμματισμού.
Γιατί χρειάζεστε μια υπηρεσία Ιστού;
Οι σύγχρονες επιχειρηματικές εφαρμογές χρησιμοποιούν ποικίλες πλατφόρμες προγραμματισμού για την ανάπτυξη διαδικτυακών εφαρμογών. Ορισμένες εφαρμογές μπορεί να αναπτυχθούν σε Java, άλλες σε .Net, ενώ άλλες σε Angular JS, Node.js κ.λπ.
Τις περισσότερες φορές, αυτές οι ετερογενείς εφαρμογές χρειάζονται κάποιο είδος επικοινωνίας για να συμβούν μεταξύ τους. Δεδομένου ότι κατασκευάζονται χρησιμοποιώντας διαφορετικές γλώσσες ανάπτυξης, καθίσταται πραγματικά δύσκολο να διασφαλιστεί η ακριβής επικοινωνία μεταξύ εφαρμογών.
Εδώ έρχονται οι υπηρεσίες διαδικτύου. Οι υπηρεσίες Ιστού παρέχουν μια κοινή πλατφόρμα που επιτρέπει σε πολλές εφαρμογές που βασίζονται σε διάφορες γλώσσες προγραμματισμού να έχουν τη δυνατότητα να επικοινωνούν μεταξύ τους.
Τύπος υπηρεσίας Web
Υπάρχουν κυρίως δύο τύποι διαδικτυακών υπηρεσιών.
Προκειμένου μια υπηρεσία Ιστού να είναι πλήρως λειτουργική, υπάρχουν ορισμένα στοιχεία που πρέπει να είναι στη θέση τους. Αυτά τα στοιχεία πρέπει να υπάρχουν ανεξάρτητα από οποιαδήποτε γλώσσα ανάπτυξης χρησιμοποιείται για τον προγραμματισμό της υπηρεσίας διαδικτύου.
Ας δούμε αυτά τα συστατικά με περισσότερες λεπτομέρειες.
SOAP (Πρωτόκολλο Πρόσβασης Απλού Αντικειμένου)
Το SOAP είναι γνωστό ως πρωτόκολλο ανταλλαγής μηνυμάτων ανεξάρτητο από τη μεταφορά. Το SOAP βασίζεται στη μεταφορά δεδομένων XML ως μηνύματα SOAP. Κάθε μήνυμα έχει κάτι που είναι γνωστό ως έγγραφο XML. Μόνο η δομή του εγγράφου XML ακολουθεί ένα συγκεκριμένο μοτίβο, αλλά όχι το περιεχόμενο. Το καλύτερο μέρος των υπηρεσιών Ιστού και του SOAP είναι ότι όλα αποστέλλονται μέσω HTTP, το οποίο είναι το τυπικό πρωτόκολλο Ιστού.
Εδώ αποτελείται από ένα μήνυμα SOAP
Το παρακάτω διάγραμμα δείχνει ένα απλό παράδειγμα της επικοινωνίας μέσω SOAP.

Θα συζητήσουμε λεπτομερώς το SOAP σε αυτό το σεμινάριο.
WSDL (γλώσσα περιγραφής υπηρεσιών Web)
Μια υπηρεσία Ιστού δεν μπορεί να χρησιμοποιηθεί εάν δεν μπορεί να βρεθεί . Ο πελάτης που επικαλείται την υπηρεσία Ιστού πρέπει να γνωρίζει πού βρίσκεται πραγματικά η υπηρεσία Ιστού.
Δεύτερον, η εφαρμογή πελάτη πρέπει να γνωρίζει τι πραγματικά κάνει η υπηρεσία Ιστού, ώστε να μπορεί να επικαλεστεί τη σωστή υπηρεσία Ιστού. Αυτό γίνεται με τη βοήθεια του WSDL, γνωστού ως γλώσσα περιγραφής υπηρεσιών Web. Το αρχείο WSDL είναι και πάλι ένα αρχείο που βασίζεται σε XML, το οποίο ουσιαστικά λέει στην εφαρμογή πελάτη τι κάνει η υπηρεσία web. Χρησιμοποιώντας το έγγραφο WSDL, η εφαρμογή πελάτη θα μπορούσε να καταλάβει πού βρίσκεται η υπηρεσία web και πώς μπορεί να χρησιμοποιηθεί.
Παράδειγμα υπηρεσίας Ιστού
Ακολουθεί ένα παράδειγμα υπηρεσιών Web ενός αρχείου WSDL.
Οι σημαντικές πτυχές που πρέπει να σημειωθούν σχετικά με τα παραπάνω παραδείγματα δήλωσης WSDL των υπηρεσιών Ιστού είναι οι εξής:
- Η παράμετρος μηνύματος στον ορισμό WSDL χρησιμοποιείται για τον καθορισμό των διαφόρων στοιχείων δεδομένων για κάθε λειτουργία που εκτελείται από την υπηρεσία web. Έτσι, στα παραπάνω παραδείγματα υπηρεσιών διαδικτύου, έχουμε 2 μηνύματα που μπορούν να ανταλλάσσονται μεταξύ της υπηρεσίας ιστού και της εφαρμογής πελάτη, το ένα είναι το "TutorialRequest" και το άλλο είναι η λειτουργία "TutorialResponse". Το TutorialRequest περιέχει ένα στοιχείο που ονομάζεται "TutorialID" το οποίο είναι του τύπου string. Ομοίως, η λειτουργία TutorialResponse περιέχει ένα στοιχείο που ονομάζεται "TutorialName" το οποίο είναι επίσης μια συμβολοσειρά τύπου. -
- Στην πραγματικότητα περιγράφεται η λειτουργία που μπορεί να εκτελεστεί από την υπηρεσία διαδικτύου, η οποία στην περίπτωσή μας ονομάζεται Tutorial. Αυτή η λειτουργία μπορεί να λάβει 2 μηνύματα. το ένα είναι ένα μήνυμα εισαγωγής και το άλλο είναι το μήνυμα εξόδου. - Αυτό το στοιχείο περιέχει το πρωτόκολλο που χρησιμοποιείται. Έτσι, στην περίπτωσή μας, το ορίζουμε για χρήση http ( http://schemas.xmlsoap.org/soap/http ). Προσδιορίζουμε επίσης άλλες λεπτομέρειες για το σώμα της λειτουργίας, όπως το χώρο ονομάτων και εάν το μήνυμα πρέπει να κωδικοποιηθεί.
Θα συζητήσουμε λεπτομερώς το "WDSL" σε αυτό το σεμινάριο.
Καθολική περιγραφή, ανακάλυψη και ενοποίηση (UDDI)
Το UDDI είναι ένα πρότυπο για την περιγραφή, τη δημοσίευση και την ανακάλυψη των διαδικτυακών υπηρεσιών που παρέχονται από έναν συγκεκριμένο πάροχο υπηρεσιών. Παρέχει μια προδιαγραφή που βοηθά στη φιλοξενία των πληροφοριών στις υπηρεσίες Ιστού
Τώρα συζητήσαμε στο προηγούμενο θέμα σχετικά με το WSDL και πώς περιέχει πληροφορίες σχετικά με το τι πραγματικά κάνει η υπηρεσία Web. Αλλά πώς μπορεί μια εφαρμογή πελάτη να εντοπίσει ένα αρχείο WSDL για να κατανοήσει τις διάφορες λειτουργίες που προσφέρει μια υπηρεσία Ιστού; Έτσι το UDDI είναι η απάντηση σε αυτό και παρέχει ένα αποθετήριο στο οποίο μπορούν να φιλοξενηθούν αρχεία WSDL. Έτσι, η εφαρμογή πελάτη θα έχει πλήρη πρόσβαση στο UDDI, το οποίο λειτουργεί ως βάση δεδομένων που περιέχει όλα τα αρχεία WSDL.
Ακριβώς όπως ένας τηλεφωνικός κατάλογος έχει το όνομα, τη διεύθυνση και τον αριθμό τηλεφώνου ενός συγκεκριμένου ατόμου, όπως και το μητρώο UDDI θα έχει τις σχετικές πληροφορίες για την υπηρεσία διαδικτύου . Για να γνωρίζει μια εφαρμογή πελάτη, πού μπορεί να βρεθεί.
Πλεονεκτήματα Υπηρεσιών Ιστού
Καταλαβαίνουμε ήδη γιατί δημιουργήθηκαν οι υπηρεσίες διαδικτύου, δηλαδή η παροχή μιας πλατφόρμας που θα μπορούσε να επιτρέπει σε διαφορετικές εφαρμογές να μιλούν μεταξύ τους.
Αλλά ας δούμε τη λίστα των πλεονεκτημάτων των υπηρεσιών Ιστού για το γιατί είναι σημαντικό να χρησιμοποιείτε τις υπηρεσίες Ιστού.
-
Έκθεση επιχειρησιακής λειτουργικότητας στο δίκτυο - Μια υπηρεσία ιστού είναι μια μονάδα διαχειριζόμενου κώδικα που παρέχει κάποια λειτουργικότητα σε εφαρμογές πελατών ή τελικούς χρήστες. Αυτή η λειτουργικότητα μπορεί να γίνει επίκληση μέσω του πρωτοκόλλου HTTP που σημαίνει ότι μπορεί επίσης να γίνει επίκληση μέσω του Διαδικτύου. Σήμερα όλες οι εφαρμογές είναι στο Διαδίκτυο, γεγονός που καθιστά τον σκοπό των υπηρεσιών Ιστού πιο χρήσιμο. Αυτό σημαίνει ότι η υπηρεσία Ιστού μπορεί να βρίσκεται οπουδήποτε στο Διαδίκτυο και να παρέχει την απαραίτητη λειτουργικότητα όπως απαιτείται.
-
Διαλειτουργικότητα μεταξύ εφαρμογών - Οι υπηρεσίες Ιστού επιτρέπουν σε διάφορες εφαρμογές να μιλούν μεταξύ τους και να μοιράζονται δεδομένα και υπηρεσίες μεταξύ τους. Όλοι οι τύποι εφαρμογών μπορούν να μιλούν μεταξύ τους. Έτσι, αντί να γράφετε συγκεκριμένο κώδικα που μπορεί να γίνει κατανοητός μόνο από συγκεκριμένες εφαρμογές, μπορείτε τώρα να γράψετε γενικό κώδικα που μπορεί να γίνει κατανοητός από όλες τις εφαρμογές
-
Ένα τυποποιημένο πρωτόκολλο που όλοι κατανοούν - Οι υπηρεσίες Web χρησιμοποιούν τυποποιημένο πρωτόκολλο βιομηχανίας για την επικοινωνία. Και τα τέσσερα επίπεδα (Service Transport, XML Messaging, Service Desk και Service Discovery) χρησιμοποιούν καλά καθορισμένα πρωτόκολλα στη στοίβα πρωτοκόλλων υπηρεσιών διαδικτύου.
-
Μείωση κόστους επικοινωνίας - Οι υπηρεσίες Web χρησιμοποιούν SOAP μέσω πρωτοκόλλου HTTP, ώστε να μπορείτε να χρησιμοποιήσετε το υπάρχον internet χαμηλού κόστους για την υλοποίηση διαδικτυακών υπηρεσιών.
Αρχιτεκτονική Υπηρεσιών Ιστού
Κάθε πλαίσιο χρειάζεται κάποιο είδος αρχιτεκτονικής για να διασφαλίσει ότι ολόκληρο το πλαίσιο λειτουργεί όπως επιθυμείται, ομοίως, στις υπηρεσίες Ιστού. Η Αρχιτεκτονική Υπηρεσιών Ιστού αποτελείται από τρεις διαφορετικούς ρόλους όπως δίνονται παρακάτω:
- Πάροχος - Ο πάροχος δημιουργεί την υπηρεσία διαδικτύου και την καθιστά διαθέσιμη σε εφαρμογή πελάτη που θέλει να τη χρησιμοποιήσει.
- Requestor - Ένας αιτών δεν είναι τίποτα άλλο από την εφαρμογή πελάτη που πρέπει να επικοινωνήσει με μια υπηρεσία Ιστού. Η εφαρμογή πελάτη μπορεί να είναι .Net, Java ή οποιαδήποτε άλλη εφαρμογή που βασίζεται στη γλώσσα που αναζητά κάποιο είδος λειτουργικότητας μέσω μιας υπηρεσίας Ιστού.
- Broker - Ο μεσίτης δεν είναι παρά η εφαρμογή που παρέχει πρόσβαση στο UDDI. Το UDDI, όπως συζητήθηκε στο προηγούμενο θέμα επιτρέπει στην εφαρμογή πελάτη να εντοπίσει την υπηρεσία Ιστού.
Το παρακάτω διάγραμμα δείχνει πώς αλληλεπιδρούν ο πάροχος υπηρεσιών, ο αιτών υπηρεσιών και το μητρώο υπηρεσιών.

- Δημοσίευση - Ένας πάροχος ενημερώνει τον μεσίτη (μητρώο υπηρεσιών) για την ύπαρξη της υπηρεσίας διαδικτύου χρησιμοποιώντας τη διεπαφή δημοσίευσης του μεσίτη για να κάνει την υπηρεσία προσβάσιμη στους πελάτες
- Εύρεση - Ο αιτών συμβουλεύεται τον μεσίτη για να εντοπίσει μια δημοσιευμένη υπηρεσία ιστού
- Δεσμευμένος - Με τις πληροφορίες που απέκτησε από τον μεσίτη (μητρώο υπηρεσιών) σχετικά με την υπηρεσία Ιστού, ο αιτών μπορεί να δεσμεύσει ή να επικαλεστεί την υπηρεσία Ιστού.
Χαρακτηριστικά υπηρεσίας διαδικτύου
Οι υπηρεσίες Ιστού έχουν τα ακόλουθα ειδικά χαρακτηριστικά συμπεριφοράς:
-
Βασίζονται σε XML - Οι Υπηρεσίες Ιστού χρησιμοποιούν XML για την αναπαράσταση των δεδομένων στα επίπεδα αναπαραγωγής και μεταφοράς δεδομένων. Η χρήση του XML εξαλείφει κάθε εξάρτηση δικτύωσης, λειτουργικού συστήματος ή πλατφόρμας, καθώς η XML είναι η κοινή γλώσσα που κατανοείται από όλους.
-
Loosely Coupled - χαλαρά συνδεδεμένο σημαίνει ότι ο πελάτης και η διαδικτυακή υπηρεσία δεν συνδέονται μεταξύ τους, πράγμα που σημαίνει ότι ακόμη και αν η υπηρεσία web αλλάζει με την πάροδο του χρόνου, δεν θα πρέπει να αλλάζει τον τρόπο με τον οποίο ο πελάτης καλεί την υπηρεσία web. Η υιοθέτηση μιας χαλαρά συνδεδεμένης αρχιτεκτονικής τείνει να κάνει τα συστήματα λογισμικού πιο διαχειρίσιμα και επιτρέπει την απλούστερη ενοποίηση μεταξύ διαφορετικών συστημάτων.
-
Σύγχρονη ή ασύγχρονη λειτουργικότητα - Ο συγχρονισμός αναφέρεται στη δέσμευση του πελάτη στην εκτέλεση της υπηρεσίας. Σε σύγχρονες λειτουργίες, ο πελάτης θα περιμένει στην πραγματικότητα την υπηρεσία Ιστού για να ολοκληρώσει μια λειτουργία. Ένα παράδειγμα αυτού είναι πιθανώς ένα σενάριο όπου εκτελείται μια λειτουργία ανάγνωσης και εγγραφής μιας βάσης δεδομένων. Εάν τα δεδομένα διαβάζονται από μια βάση δεδομένων και στη συνέχεια γράφονται σε άλλη, τότε οι εργασίες πρέπει να γίνονται με διαδοχικό τρόπο. Οι ασύγχρονες λειτουργίες επιτρέπουν στον πελάτη να καλέσει μια υπηρεσία και στη συνέχεια να εκτελέσει παράλληλα άλλες λειτουργίες. Αυτή είναι μια από τις κοινές και πιθανώς τις πιο προτιμώμενες τεχνικές για να διασφαλιστεί ότι δεν διακόπτονται άλλες υπηρεσίες όταν πραγματοποιείται μια συγκεκριμένη λειτουργία.
-
Δυνατότητα υποστήριξης κλήσεων απομακρυσμένης διαδικασίας (RPC) - Οι υπηρεσίες Web επιτρέπουν στους πελάτες να επικαλούνται διαδικασίες, λειτουργίες και μεθόδους σε απομακρυσμένα αντικείμενα χρησιμοποιώντας ένα πρωτόκολλο που βασίζεται σε XML. Οι απομακρυσμένες διαδικασίες εκθέτουν παραμέτρους εισόδου και εξόδου που πρέπει να υποστηρίζει μια υπηρεσία Ιστού.
-
Υποστηρίζει ανταλλαγή εγγράφων - Ένα από τα βασικά πλεονεκτήματα της XML είναι ο γενικός τρόπος αναπαραγωγής όχι μόνο δεδομένων αλλά και περίπλοκων εγγράφων. Αυτά τα έγγραφα μπορεί να είναι τόσο απλά όσο αντιπροσωπεύουν μια τρέχουσα διεύθυνση ή μπορεί να είναι τόσο περίπλοκα όσο να αντιπροσωπεύουν ένα ολόκληρο βιβλίο.