Τι είναι οι Υπηρεσίες Ιστού; Architecture, Τύποι, Παράδειγμα

Τι είναι η υπηρεσία Web;

υπηρεσία Web είναι ένα τυποποιημένο μέσο για τη διάδοση της επικοινωνίας μεταξύ των εφαρμογών πελάτη και διακομιστή στο WWW (World Wide Web). Μια υπηρεσία Ιστού είναι μια ενότητα λογισμικού που έχει σχεδιαστεί για να εκτελεί ένα συγκεκριμένο σύνολο εργασιών.

  • Οι υπηρεσίες Ιστού στο cloud computing μπορούν να αναζητηθούν μέσω του δικτύου και μπορούν επίσης να πραγματοποιηθούν ανάλογα.
  • Όταν καλείται, η υπηρεσία Ιστού θα είναι σε θέση να παρέχει τη λειτουργικότητα στον πελάτη, ο οποίος επικαλείται αυτήν την υπηρεσία Ιστού.

Πώς λειτουργούν οι Υπηρεσίες Ιστού;

Πώς λειτουργούν οι Υπηρεσίες Web
Πώς λειτουργούν οι Υπηρεσίες Web

Το παραπάνω διάγραμμα δείχνει μια πολύ απλοϊκή άποψη για το πώς θα λειτουργούσε πραγματικά μια υπηρεσία Ιστού. Ο πελάτης θα καλούσε μια σειρά από κλήσεις υπηρεσιών web μέσω αιτημάτων σε έναν διακομιστή που θα φιλοξενούσε την πραγματική υπηρεσία web.

Αυτά τα αιτήματα γίνονται μέσω αυτού που είναι γνωστό ως κλήσεις απομακρυσμένης διαδικασίας. Οι κλήσεις απομακρυσμένης διαδικασίας (RPC) είναι κλήσεις που γίνονται σε μεθόδους που φιλοξενούνται από τη σχετική υπηρεσία web.

Για παράδειγμα, Amazon παρέχει μια διαδικτυακή υπηρεσία που παρέχει τιμές για προϊόντα που πωλούνται διαδικτυακά μέσω του amazon.com. Η πρόσοψη ή το επίπεδο παρουσίασης μπορεί να είναι σε .Net ή Java αλλά και οι δύο γλώσσες προγραμματισμού θα έχουν τη δυνατότητα να επικοινωνούν με την υπηρεσία Ιστού.

Το κύριο συστατικό του σχεδιασμού μιας υπηρεσίας Ιστού είναι τα δεδομένα που μεταφέρονται μεταξύ του πελάτη και του διακομιστή, και αυτό είναι η XML. XML (επεκτάσιμη γλώσσα σήμανσης) είναι ένα αντίστοιχο της HTML και είναι εύκολα κατανοητή η ενδιάμεση γλώσσα που είναι κατανοητή από πολλές γλώσσες προγραμματισμού.

Έτσι, όταν οι εφαρμογές μιλούν μεταξύ τους, στην πραγματικότητα μιλούν σε XML. Αυτό παρέχει μια κοινή πλατφόρμα για εφαρμογές που έχουν αναπτυχθεί σε διάφορες γλώσσες προγραμματισμού για να συνομιλούν μεταξύ τους.

Οι υπηρεσίες Ιστού χρησιμοποιούν κάτι γνωστό ως SOAP (Simple Object Access Protocol) για την αποστολή των δεδομένων XML μεταξύ των εφαρμογών. Τα δεδομένα αποστέλλονται μέσω κανονικού HTTP. Τα δεδομένα που αποστέλλονται από την υπηρεσία web στην εφαρμογή ονομάζονται μήνυμα SOAP. Το μήνυμα SOAP δεν είναι παρά ένα έγγραφο XML. Εφόσον το έγγραφο είναι γραμμένο σε XML, η εφαρμογή πελάτη που καλεί την υπηρεσία web μπορεί να γραφτεί σε οποιαδήποτε γλώσσα προγραμματισμού.

Γιατί χρειάζεστε μια υπηρεσία Web;

Οι σύγχρονες επιχειρηματικές εφαρμογές χρησιμοποιούν ποικίλες πλατφόρμες προγραμματισμού για την ανάπτυξη εφαρμογών που βασίζονται στο διαδίκτυο. Ορισμένες εφαρμογές ενδέχεται να αναπτυχθούν σε Java, άλλα στο .Net, ενώ κάποια άλλα στο Angular JS, Node.js κ.λπ.

Τις περισσότερες φορές, αυτές οι ετερογενείς εφαρμογές χρειάζονται κάποιο είδος επικοινωνίας για να συμβεί μεταξύ τους. Δεδομένου ότι κατασκευάζονται χρησιμοποιώντας διαφορετικές γλώσσες ανάπτυξης, είναι πολύ δύσκολο να διασφαλιστεί η ακριβής επικοινωνία μεταξύ των εφαρμογών.

Εδώ μπαίνουν οι υπηρεσίες Ιστού. Οι υπηρεσίες Ιστού παρέχουν μια κοινή πλατφόρμα που επιτρέπει πολλαπλές εφαρμογές κατασκευασμένες σε διάφορες γλώσσες προγραμματισμού να έχουν την ικανότητα να επικοινωνούν μεταξύ τους.

Τύπος υπηρεσίας Web

Υπάρχουν κυρίως δύο τύποι διαδικτυακών υπηρεσιών.

  1. Υπηρεσίες Ιστού SOAP.
  2. Ξεκούραστες υπηρεσίες web.

Για να είναι πλήρως λειτουργική μια υπηρεσία web, πρέπει να υπάρχουν ορισμένα στοιχεία. Αυτά τα στοιχεία πρέπει να υπάρχουν ανεξάρτητα από τη γλώσσα ανάπτυξης που χρησιμοποιείται για τον προγραμματισμό της υπηρεσίας Ιστού.

Ας δούμε αυτά τα εξαρτήματα με περισσότερες λεπτομέρειες.

SOAP (Πρωτόκολλο Πρόσβασης Απλού Αντικειμένου)

Το SOAP είναι γνωστό ως πρωτόκολλο ανταλλαγής μηνυμάτων ανεξάρτητο από τη μεταφορά. Το SOAP βασίζεται στη μεταφορά δεδομένων XML ως Μηνύματα SOAP. Κάθε μήνυμα έχει κάτι που είναι γνωστό ως έγγραφο XML. Μόνο η δομή του εγγράφου XML ακολουθεί ένα συγκεκριμένο μοτίβο, αλλά όχι το περιεχόμενο. Το καλύτερο μέρος των υπηρεσιών Ιστού και του SOAP είναι ότι όλα αποστέλλονται μέσω HTTP, που είναι το τυπικό πρωτόκολλο Ιστού.

Εδώ είναι τι αποτελείται ένα μήνυμα SOAP

  • Κάθε έγγραφο SOAP πρέπει να έχει ένα ριζικό στοιχείο γνωστό ως το στοιχείο. Το ριζικό στοιχείο είναι το πρώτο στοιχείο σε ένα έγγραφο XML.
  • Ο «φάκελος» χωρίζεται με τη σειρά του σε 2 μέρη. Το πρώτο είναι η κεφαλίδα και το επόμενο είναι το σώμα.
  • Η κεφαλίδα περιέχει τα δεδομένα δρομολόγησης που είναι βασικά οι πληροφορίες που λένε στο έγγραφο XML σε ποιον πελάτη πρέπει να σταλεί.
  • Το σώμα θα περιέχει το πραγματικό μήνυμα.

Το παρακάτω διάγραμμα δείχνει ένα απλό παράδειγμα της επικοινωνίας μέσω SOAP.

Πρωτόκολλο SOAP

Πρωτόκολλο SOAP

Θα συζητήσουμε το SOAP λεπτομερώς σε αυτό φροντιστήριο.

WSDL (γλώσσα περιγραφής υπηρεσιών Ιστού)

Μια υπηρεσία web δεν μπορεί να χρησιμοποιηθεί εάν δεν μπορεί να βρεθεί. Ο πελάτης που επικαλείται την υπηρεσία Ιστού πρέπει να γνωρίζει πού βρίσκεται πραγματικά η υπηρεσία Ιστού.

Δεύτερον, η εφαρμογή πελάτη πρέπει να γνωρίζει τι κάνει στην πραγματικότητα η υπηρεσία web, ώστε να μπορεί να επικαλεστεί τη σωστή υπηρεσία web. Αυτό γίνεται με τη βοήθεια της WSDL, γνωστής ως γλώσσα περιγραφής υπηρεσιών Web. Το αρχείο WSDL είναι και πάλι ένα αρχείο που βασίζεται σε XML το οποίο βασικά λέει στην εφαρμογή πελάτη τι κάνει η υπηρεσία web. Χρησιμοποιώντας το έγγραφο WSDL, η εφαρμογή-πελάτης θα είναι σε θέση να κατανοήσει πού βρίσκεται η υπηρεσία web και πώς μπορεί να χρησιμοποιηθεί.

Παράδειγμα Web Service

Ένα παράδειγμα υπηρεσιών Web ενός αρχείου WSDL δίνεται παρακάτω.

<definitions>	
   <message name="TutorialRequest">
      <part name="TutorialID" type="xsd:string"/>
   </message>
     
   <message name="TutorialResponse">
      <part name="TutorialName" type="xsd:string"/>
   </message>

   <portType name="Tutorial_PortType">
      <operation name="Tutorial">
         <input message="tns:TutorialRequest"/>
         <output message="tns:TutorialResponse"/>
      </operation>
   </portType>

   <binding name="Tutorial_Binding" type="tns:Tutorial_PortType">
      <soap:binding style="rpc"
         transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="Tutorial">
         <soap:operation soapAction="Tutorial"/>
         <input>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:Tutorialservice"
               use="encoded"/>
         </input>
         
		 <output>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:Tutorialservice"
               use="encoded"/>
         </output>
      </operation>
   </binding>
</definitions>

Οι σημαντικές πτυχές που πρέπει να σημειωθούν σχετικά με τα παραπάνω παραδείγματα δήλωσης WSDL υπηρεσιών web είναι οι εξής:

  1. – Η παράμετρος μηνύματος στον ορισμό WSDL χρησιμοποιείται για τον καθορισμό των διαφορετικών στοιχείων δεδομένων για κάθε λειτουργία που εκτελείται από την υπηρεσία web. Έτσι, στα παραπάνω παραδείγματα υπηρεσιών web, έχουμε 2 μηνύματα που μπορούν να ανταλλάσσονται μεταξύ της υπηρεσίας web και της εφαρμογής πελάτη, το ένα είναι το "TutorialRequest" και το άλλο είναι η λειτουργία "TutorialResponse". Το TutorialRequest περιέχει ένα στοιχείο που ονομάζεται "TutorialID" το οποίο είναι τύπου συμβολοσειράς. Ομοίως, η λειτουργία TutorialResponse περιέχει ένα στοιχείο που ονομάζεται "TutorialName" το οποίο είναι επίσης μια συμβολοσειρά τύπου.
  2. – Αυτό στην πραγματικότητα περιγράφει τη λειτουργία που μπορεί να εκτελεστεί από την υπηρεσία web, η οποία στην περίπτωσή μας ονομάζεται Tutorial. Αυτή η λειτουργία μπορεί να λάβει 2 μηνύματα. Το ένα είναι μήνυμα εισόδου και το άλλο είναι το μήνυμα εξόδου.
  3. – Αυτό το στοιχείο περιέχει το πρωτόκολλο που χρησιμοποιείται. Έτσι, στην περίπτωσή μας, το ορίζουμε να χρησιμοποιεί το http (http://schemas.xmlsoap.org/soap/http). Καθορίζουμε επίσης άλλες λεπτομέρειες για το σώμα της λειτουργίας, όπως τον χώρο ονομάτων και εάν το μήνυμα πρέπει να κωδικοποιηθεί.

Θα συζητήσουμε το "WDSL" λεπτομερώς σε αυτό φροντιστήριο.

Παγκόσμιος Descriptιόν, ανακάλυψη και ενσωμάτωση (UDDI)

Το UDDI είναι ένα πρότυπο για την περιγραφή, τη δημοσίευση και την ανακάλυψη των υπηρεσιών web που παρέχονται από έναν συγκεκριμένο πάροχο υπηρεσιών. Παρέχει μια προδιαγραφή που βοηθά στη φιλοξενία των πληροφοριών σε υπηρεσίες web.

Τώρα συζητήσαμε στο προηγούμενο θέμα για το WSDL και πώς περιέχει πληροφορίες για το τι κάνει στην πραγματικότητα η υπηρεσία Web. Πώς όμως μπορεί μια εφαρμογή πελάτη να εντοπίσει ένα αρχείο WSDL για να κατανοήσει τις διάφορες λειτουργίες που προσφέρει μια υπηρεσία web; Έτσι, το UDDI είναι η απάντηση σε αυτό και παρέχει ένα αποθετήριο στο οποίο μπορούν να φιλοξενηθούν αρχεία WSDL. Έτσι η εφαρμογή πελάτη θα έχει πλήρη πρόσβαση στο UDDI, το οποίο λειτουργεί ως βάση δεδομένων που περιέχει όλα τα αρχεία WSDL.

Ακριβώς όπως ένας τηλεφωνικός κατάλογος έχει το όνομα, τη διεύθυνση και τον αριθμό τηλεφώνου ενός συγκεκριμένου ατόμου, με τον ίδιο τρόπο που το μητρώο UDDI θα έχει τις σχετικές πληροφορίες για την υπηρεσία Ιστού. Για να γνωρίζει μια εφαρμογή πελάτη πού μπορεί να βρεθεί.

Πλεονεκτήματα Υπηρεσιών Ιστού

Καταλαβαίνουμε ήδη γιατί προέκυψαν αρχικά οι υπηρεσίες web, οι οποίες ήταν να παρέχουν μια πλατφόρμα που θα μπορούσε να επιτρέπει σε διαφορετικές εφαρμογές να συνομιλούν μεταξύ τους.

Ας δούμε όμως τη λίστα με τα πλεονεκτήματα των υπηρεσιών web για το γιατί είναι σημαντικό να χρησιμοποιείτε υπηρεσίες web.

  1. Έκθεση της επιχειρησιακής λειτουργικότητας στο δίκτυο – Μια υπηρεσία Ιστού είναι μια μονάδα διαχειριζόμενου κώδικα που παρέχει κάποιο είδος λειτουργικότητας σε εφαρμογές-πελάτες ή τελικούς χρήστες. Αυτή η λειτουργία μπορεί να γίνει επίκληση μέσω του πρωτοκόλλου HTTP, πράγμα που σημαίνει ότι μπορεί να γίνει επίκληση και μέσω Διαδικτύου. Σήμερα όλες οι εφαρμογές βρίσκονται στο διαδίκτυο, γεγονός που καθιστά πιο χρήσιμο τον σκοπό των υπηρεσιών Ιστού. Αυτό σημαίνει ότι η υπηρεσία Ιστού μπορεί να βρίσκεται οπουδήποτε στο Διαδίκτυο και να παρέχει την απαραίτητη λειτουργικότητα όπως απαιτείται.
  2. Διαλειτουργικότητα μεταξύ εφαρμογών – Οι υπηρεσίες Ιστού επιτρέπουν σε διάφορες εφαρμογές να συνομιλούν μεταξύ τους και να μοιράζονται δεδομένα και υπηρεσίες μεταξύ τους. Όλοι οι τύποι εφαρμογών μπορούν να συνομιλούν μεταξύ τους. Έτσι, αντί να γράφετε συγκεκριμένο κώδικα που μπορεί να γίνει κατανοητός μόνο από συγκεκριμένες εφαρμογές, μπορείτε τώρα να γράψετε γενικό κώδικα που είναι κατανοητός από όλες τις εφαρμογές
  3. Ένα Τυποποιημένο Πρωτόκολλο που όλοι κατανοούν – Οι υπηρεσίες Ιστού χρησιμοποιούν τυποποιημένο πρωτόκολλο βιομηχανίας για την επικοινωνία. Και τα τέσσερα επίπεδα (Service Transport, XML Messaging, Service Description, και Service Discovery layers) χρησιμοποιεί καλά καθορισμένα πρωτόκολλα στη στοίβα πρωτοκόλλων υπηρεσιών web.
  4. Μείωση του κόστους επικοινωνίας – Οι υπηρεσίες Ιστού χρησιμοποιούν SOAP μέσω πρωτοκόλλου HTTP, ώστε να μπορείτε να χρησιμοποιήσετε το υπάρχον φθηνό διαδίκτυο για την υλοποίηση υπηρεσιών web.

Υπηρεσίες Διαδικτύου Archiδομή

Κάθε πλαίσιο χρειάζεται κάποιο είδος αρχιτεκτονικής για να βεβαιωθείτε ότι ολόκληρο το πλαίσιο λειτουργεί όπως επιθυμείτε, παρομοίως, στις υπηρεσίες web. Ο Υπηρεσίες Διαδικτύου Archiδομή αποτελείται από τρεις διακριτούς ρόλους όπως δίνονται παρακάτω:

  1. Provider – Ο πάροχος δημιουργεί την υπηρεσία web και την καθιστά διαθέσιμη στην εφαρμογή πελάτη που θέλει να τη χρησιμοποιήσει.
  2. Αιτητής – Ο αιτών δεν είναι παρά η εφαρμογή πελάτη που πρέπει να επικοινωνήσει με μια υπηρεσία web. Η εφαρμογή πελάτη μπορεί να είναι .Net, Java, ή οποιαδήποτε άλλη εφαρμογή που βασίζεται στη γλώσσα που αναζητά κάποιο είδος λειτουργικότητας μέσω μιας υπηρεσίας web.
  3. Μεσίτης – Ο μεσίτης δεν είναι παρά η εφαρμογή που παρέχει πρόσβαση στο UDDI. Το UDDI, όπως συζητήθηκε στο προηγούμενο θέμα επιτρέπει στην εφαρμογή πελάτη να εντοπίσει την υπηρεσία web.

Το παρακάτω διάγραμμα δείχνει πώς αλληλεπιδρούν μεταξύ τους ο πάροχος υπηρεσιών, ο αιτών υπηρεσία και το μητρώο υπηρεσίας.

Υπηρεσίες Διαδικτύου Archiδομή

Υπηρεσίες Διαδικτύου Archiδομή
  1. Δημοσίευση – Ένας πάροχος ενημερώνει τον μεσίτη (μητρώο υπηρεσιών) για την ύπαρξη της υπηρεσίας Ιστού χρησιμοποιώντας τη διεπαφή δημοσίευσης του μεσίτη για να κάνει την υπηρεσία προσβάσιμη στους πελάτες
  2. Εύρεση – Ο αιτών συμβουλεύεται τον μεσίτη για να εντοπίσει μια δημοσιευμένη υπηρεσία Ιστού
  3. Δένω – Με τις πληροφορίες που έλαβε από τον μεσίτη (μητρώο υπηρεσιών) σχετικά με την υπηρεσία Ιστού, ο αιτών μπορεί να δεσμεύσει ή να επικαλεστεί την υπηρεσία Ιστού.

Χαρακτηριστικά διαδικτυακής υπηρεσίας

Οι υπηρεσίες Ιστού έχουν τα ακόλουθα ειδικά χαρακτηριστικά συμπεριφοράς:

  1. Βασίζονται σε XML – Το Web Services χρησιμοποιεί XML για να αναπαραστήσει τα δεδομένα στα επίπεδα αναπαράστασης και μεταφοράς δεδομένων. Η χρήση XML εξαλείφει κάθε είδους εξάρτηση δικτύωσης, λειτουργικού συστήματος ή πλατφόρμας, καθώς η XML είναι η κοινή γλώσσα κατανοητή από όλους.
  2. Χαλαρά συζευγμένο – Χαλαρή σύζευξη σημαίνει ότι ο πελάτης και η υπηρεσία web δεν συνδέονται μεταξύ τους, πράγμα που σημαίνει ότι ακόμη και αν η υπηρεσία web αλλάξει με την πάροδο του χρόνου, δεν θα πρέπει να αλλάξει τον τρόπο με τον οποίο ο πελάτης καλεί την υπηρεσία web. Η υιοθέτηση μιας χαλαρά συζευγμένης αρχιτεκτονικής τείνει να κάνει τα συστήματα λογισμικού πιο διαχειρίσιμα και επιτρέπει απλούστερη ενοποίηση μεταξύ διαφορετικών συστημάτων.
  3. SyncΧρονική ή Ασύγχρονη λειτουργικότητα - SyncΗ χρονικότητα αναφέρεται στη δέσμευση του πελάτη για την εκτέλεση της υπηρεσίας. Στις σύγχρονες λειτουργίες, ο πελάτης θα περιμένει πραγματικά να ολοκληρώσει μια λειτουργία η υπηρεσία web. Ένα παράδειγμα αυτού είναι πιθανώς ένα σενάριο όπου εκτελείται μια λειτουργία ανάγνωσης και εγγραφής βάσης δεδομένων. Εάν τα δεδομένα διαβάζονται από μια βάση δεδομένων και στη συνέχεια εγγράφονται σε μια άλλη, τότε οι λειτουργίες πρέπει να γίνονται με διαδοχικό τρόπο. Οι ασύγχρονες λειτουργίες επιτρέπουν σε έναν πελάτη να καλέσει μια υπηρεσία και στη συνέχεια να εκτελέσει άλλες λειτουργίες παράλληλα. Αυτή είναι μια από τις κοινές και πιθανώς τις πιο προτιμώμενες τεχνικές για τη διασφάλιση ότι άλλες υπηρεσίες δεν διακόπτονται όταν εκτελείται μια συγκεκριμένη λειτουργία.
  4. Δυνατότητα υποστήριξης κλήσεων απομακρυσμένης διαδικασίας (RPC) – Οι υπηρεσίες Ιστού επιτρέπουν στους πελάτες να επικαλούνται διαδικασίες, λειτουργίες και μεθόδους σε απομακρυσμένα αντικείμενα χρησιμοποιώντας ένα πρωτόκολλο που βασίζεται σε XML. Οι απομακρυσμένες διαδικασίες εκθέτουν τις παραμέτρους εισόδου και εξόδου που πρέπει να υποστηρίζει μια υπηρεσία web.
  5. Υποστηρίζει την ανταλλαγή εγγράφων – Ένα από τα βασικά πλεονεκτήματα της XML είναι ο γενικός τρόπος αναπαράστασης όχι μόνο δεδομένων αλλά και πολύπλοκων εγγράφων. Αυτά τα έγγραφα μπορεί να είναι τόσο απλά όσο να αντιπροσωπεύουν μια τρέχουσα διεύθυνση ή μπορεί να είναι τόσο περίπλοκα όσο να αντιπροσωπεύουν ένα ολόκληρο βιβλίο.

Συνοψίστε αυτήν την ανάρτηση με: