Κατασκευή Web Services και τα ΥΠΌΛΟΙΠΑ Τρόπο

Home

πρώτα θα παρέχει μια σύντομη εισαγωγή για να ΞΕΚΟΥΡΑΣΤΟΎΝ και μετά να περιγράφουν τον τρόπο
για την κατασκευή Web services στο ΥΠΌΛΟΙΠΟ στυλ.

Τι είναι το ΥΠΌΛΟΙΠΟ;

ΥΠΌΛΟΙΠΟ είναι ένας όρος που επινοήθηκε από τον Roy Fielding στο Διδακτορική διατριβή [1]
περιγράψτε ένα αρχιτεκτονική δικτυακά συστήματα. ΥΠΌΛΟΙΠΑ είναι
ένα αρκτικόλεξο που στέκεται για την Αναπαραστατική Μέλος Μεταφορά.

Γιατί το λένε Παραστατικής Μέλος Μεταφορά;

Το Διαδίκτυο αποτελείται από πόρων. Ένας πόρος είναι κάθε στοιχείο ενδιαφέροντος.
Για παράδειγμα, τα Αεροσκάφη της Boeing Corp μπορεί να καθορίσει ένα 747 πόρων.
Οι πελάτες επιτρέπεται να έχουν πρόσβαση σε αυτόν τον πόρο με αυτό το URL:

http://www.boeing.com/aircraft/747

εκπροσώπηση των πόρων που επιστρέφονται
(π. χ., Boeing747.html). Η αναπαράσταση μέρη για την εφαρμογή-πελάτη σε ένα κράτους. Το
αποτέλεσμα ο πελάτης που διέρχονται από μια υπερ-σύνδεση σε Boeing747.html είναι άλλο
ο πόρος είναι προσβάσιμες. Η νέα εκπροσώπηση μέρη για την εφαρμογή-πελάτη
σε ένα ακόμη κράτος. Έτσι, η εφαρμογή-πελάτης αλλαγές (μεταφοράs)
κράτος με κάθε πόρο αναπαράσταση –> Παραστατικής Μέλος Μεταφορά!

Εδώ είναι ο Roy Fielding την εξήγηση της έννοιας της Αναπαράστασης Μέλος Μεταφορά:

“Αναπαραστατική Μέλος Μεταφοράς προορίζεται να προκαλέσει μια εικόνα του πώς μια καλά σχεδιασμένη
Web εφαρμογή συμπεριφέρεται: ένα δίκτυο από ιστοσελίδες (ένα εικονικό κράτος-μηχανή), όπου
ο χρήστης μέσα από μια αίτηση, επιλέγοντας τους συνδέσμους (state transitions), με αποτέλεσμα
στην επόμενη σελίδα (που αντιπροσωπεύει το επόμενο στάδιο της αίτησης) να μεταφερθεί στο
από το χρήστη και να καταστεί για τη χρήση τους.”

το Κίνητρο για ΞΕΚΟΎΡΑΣΗ

Το κίνητρο για το ΥΠΌΛΟΙΠΟ ήταν να συλλάβει τα χαρακτηριστικά του Web, το οποίο
έκανε το Web επιτυχής. Στη συνέχεια αυτά τα χαρακτηριστικά χρησιμοποιούνται για την
οδηγός για την εξέλιξη του Web.

ΥΠΌΛΟΙΠΟ – Ένα Αρχιτεκτονικό Στυλ, Δεν είναι μια Τυπική

ΥΠΌΛΟΙΠΟ δεν είναι τυποποιημένη. Δεν θα δείτε το W3C βάζει ένα ΥΠΌΛΟΙΠΟ προδιαγραφή.
Δεν θα δείτε IBM και η Microsoft και η Sun πώληση ΥΠΌΛΟΙΠΟ δημιουργός toolkit. Γιατί;
Επειδή τα ΥΠΌΛΟΙΠΑ είναι απλά ένα αρχιτεκτονικό στυλ. Δεν μπορείτε να το μπουκάλι αυτό το στυλ. Σας
μπορεί μόνο να το καταλάβεις, και το σχέδιό σας Web υπηρεσίες σε αυτό το στυλ. (Ανάλογη με
η client-server αρχιτεκτονική. Δεν υπάρχει client-server standard.)

Ενώ τα ΥΠΌΛΟΙΠΑ δεν είναι ένα πρότυπο, που κάνει χρήση προτύπων:

Το Κλασικό ΥΠΌΛΟΙΠΟ Σύστημα

Το Διαδίκτυο είναι ένα ΥΠΌΛΟΙΠΟ σύστημα! Πολλές από αυτές τις υπηρεσίες Web που έχετε
χρησιμοποιώντας αυτά τα πολλά χρόνια – βιβλίο-παραγγελία υπηρεσιών, υπηρεσιών αναζήτησης,
σε απευθείας σύνδεση λεξικό υπηρεσίες, κ. λπ. – το ΥΠΌΛΟΙΠΟ που βασίζεται σε υπηρεσίες Web. Αλίμονο,
έχετε χρησιμοποιήσει το ΥΠΌΛΟΙΠΟ, το ΥΠΌΛΟΙΠΟ κτίριο υπηρεσιών και δεν το ξέρεις.

ΥΠΌΛΟΙΠΟ αφορά την “μεγάλη εικόνα” του Web. Δεν ασχολείται με
λεπτομέρειες υλοποίησης (π. χ., με χρήση Java servlets ή CGI για να εφαρμόσει μια υπηρεσία Web).
Ας δούμε ένα παράδειγμα δημιουργίας ενός Web service από το ΥΠΌΛΟΙΠΟ “μεγάλη εικόνα” προοπτική.

Μέρη Depot Υπηρεσίες Web

Μέρη Αποθήκη, Inc (φανταστική εταιρεία) έχει αναπτυχθεί ορισμένες υπηρεσίες web για να ενεργοποιήσετε τη
πελάτες:

Ας εξετάσουμε πώς καθεμία από τις υπηρεσίες αυτές εφαρμόζονται σε ένα Ξεκούραστο τρόπο.

Πάρετε τον Κατάλογο Μερών

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

http://www.parts-depot.com/parts

Σημείωση ότι “το πώς” η υπηρεσία web δημιουργεί τη λίστα των εξαρτημάτων που είναι εντελώς διαφανή
στον υπολογιστή-πελάτη. Όλα ο πελάτης ξέρει ότι αν αυτός/αυτή υποβάλλει το παραπάνω URL, στη συνέχεια,
ένα έγγραφο που περιέχει τη λίστα με τα μέρη που επιστρέφονται.
Δεδομένου ότι η εφαρμογή είναι διαφανής για τους πελάτες,
Μέρη Depot είναι ελεύθερος να τροποποιήσει την υποκείμενη εφαρμογή της παρούσας
πόρων, χωρίς να επηρεάζουν τους πελάτες. Αυτή είναι η χαλαρή σύζευξη.

Εδώ είναι το έγγραφο που ο πελάτης λαμβάνει:

<;xml version="1.0"?>
<p:Μέρη φάκελοxmlns:σ="http://www.parts-depot.com" 
φάκελοxmlns:xlink="http://www.w3.org/1999/xlink">
<Μέρος id="00345" xlink:href="http://www.parts-depot.com/parts/00345"/>
<Μέρος id="00346" xlink:href="http://www.parts-depot.com/parts/00346"/>
<Μέρος id="00347" xlink:href="http://www.parts-depot.com/parts/00347"/>
<Μέρος id="00348" xlink:href="http://www.parts-depot.com/parts/00348"/>
</p:Μέρη>

[ας Υποθέσουμε ότι μέσα από το περιεχόμενο της διαπραγμάτευσης, η υπηρεσία διαπίστωσε ότι
ο πελάτης θέλει την αναπαράσταση XML (για μηχανή-προς-μηχανή επεξεργασίας).]
Σημειώστε ότι τα τμήματα λίστα με συνδέσμους για να λάβετε λεπτομερείς πληροφορίες για το κάθε μέρος.
Αυτό είναι ένα βασικό χαρακτηριστικό της ΑΝΆΠΑΥΣΗΣ. Ο πελάτης μεταφορές από το ένα κράτος μέλος στο
την επόμενη από την εξέταση και την επιλογή μεταξύ των εναλλακτικών URLs
σε απάντηση του εγγράφου.

Λάβετε Λεπτομερείς Δεδομένων

Η υπηρεσία web διαθέτει μια διεύθυνση URL σε κάθε τμήμα των πόρων. Παράδειγμα, εδώ είναι
πώς ένας υπολογιστής-πελάτης ζητά ένα μέρος 00345:

http://www.parts-depot.com/parts/00345

Εδώ είναι το έγγραφο που ο πελάτης λαμβάνει:

<;xml version="1.0"?>
<p:Μέρος φάκελοxmlns:σ="http://www.parts-depot.com" 
φάκελοxmlns:xlink="http://www.w3.org/1999/xlink">
<Μέρος-ID>00345</Part-ID>
<Όνομα>Widget-Ένα</Name>
<Description>Αυτό το μέρος χρησιμοποιείται εντός του frap συνέλευση</Description>
<Προδιαγραφή xlink:href="http://www.parts-depot.com/parts/00345/specification"/>
<UnitCost νόμισμα="USD">0.10</UnitCost>
<Ποσότητα>10</Ποσότητα>
</p:Μέρος>

και Πάλι παρατηρήστε πώς τα δεδομένα αυτά συνδέονται με ακόμα περισσότερα στοιχεία – προδιαγραφή
για αυτό το κομμάτι μπορεί να βρεθεί από που διέρχονται από την υπερ-σύνδεση. Κάθε απάντηση
έγγραφο που επιτρέπει στον πελάτη να τρυπάνι κάτω για να πάρετε πιο λεπτομερείς πληροφορίες.

Υποβολή PO

Η υπηρεσία web διαθέτει μια διεύθυνση URL για να υποβάλει PO. Ο πελάτης δημιουργεί ένα ΠΟ
παράδειγμα έγγραφο, το οποίο πληροί τις PO σχήμα που Μέρη Depot έχει σχεδιαστεί
(και δημοσιότητα σε ένα έγγραφο WSDL). Ο πελάτης υποβάλλει PO.xml ως ωφέλιμο φορτίο
ένα HTTP POST.

Το PO υπηρεσία ανταποκρίνεται HTTP POST με μια διεύθυνση URL για να το υποβάλει PO. Έτσι,
ο πελάτης μπορεί να ανακτήσει το PO οποιαδήποτε στιγμή μετά (για την ενημέρωση/επεξεργασία).
Το PO έχει γίνει ένα κομμάτι των πληροφοριών που είναι κοινόχρηστο μεταξύ του πελάτη και
ο server. Τα κοινόχρηστα στοιχεία (PO) δίνεται μια διεύθυνση (URL) από το διακομιστή
και εκτίθεται ως Web service.

Λογικές διευθύνσεις Url έναντι Φυσικές διευθύνσεις Url

ο πόρος είναι μια εννοιολογική οντότητα. Μια αναπαράσταση είναι μια συγκεκριμένη εκδήλωση
από τον πόρο. Αυτό το URL:

http://www.parts-depot.com/parts/00345

είναι μια λογική διεύθυνση URL, δεν είναι μια φυσική διεύθυνση URL. Έτσι, δεν χρειάζεται να είναι, για παράδειγμα,
μια στατική HTML σελίδα για κάθε μέρος. Στην πραγματικότητα, αν υπήρχε ένα εκατομμύριο μέρη, τότε μια
εκατομμύρια στατικές HTML σελίδες, δεν θα είναι ένα πολύ ελκυστικό σχεδιασμό.

[Εφαρμογή λεπτομέρεια: Μέρη Depot μπορούσε να εφαρμόσει την υπηρεσία που παίρνει λεπτομερείς
δεδομένα σχετικά με ένα συγκεκριμένο μέρος και να χρησιμοποιούν ένα Java Servlet, το οποίο αναλύει τη συμβολοσειρά
μετά το όνομα του κεντρικού υπολογιστή, χρησιμοποιεί το αριθμός μερών ερώτημα για τα μέρη της βάσης δεδομένων, να διατυπώσουν
τα αποτελέσματα του ερωτήματος, όπως XML και, στη συνέχεια, επιστροφή στο XML ως το ωφέλιμο φορτίο της απόκρισης HTTP.]

Ως ένα θέμα του στυλ διευθύνσεις Url δεν θα πρέπει να αποκαλύψει την υλοποίηση τεχνική που χρησιμοποιείται.
Θα πρέπει να είναι ελεύθεροι να αλλάξετε την εφαρμογή σας, χωρίς να επηρεάζουν τους πελάτες ή
παραπλανητικές διευθύνσεις Url.

REST Web Services Χαρακτηριστικά

Εδώ είναι τα χαρακτηριστικά ΥΠΌΛΟΙΠΟ:

Αρχές ΥΠΌΛΟΙΠΟ Υπηρεσία Web Design

1. Το κλειδί για τη δημιουργία Web Services στο ΥΠΌΛΟΙΠΟ δίκτυο (δηλαδή, το Web)
προσδιορίστε όλες τις εννοιολογικές οντότητες που επιθυμούν να εκθέσουν ως υπηρεσίες.
Παραπάνω είδαμε μερικά παραδείγματα των πόρων: κατάλογος εξαρτημάτων,
λεπτομερής μέρος δεδομένα, εντολή αγοράς.

2. Δημιουργήσετε μια διεύθυνση URL για κάθε πόρο.
Οι πόροι πρέπει να είναι ουσιαστικά, δεν ρήματα. Για παράδειγμα, μην χρησιμοποιείτε αυτό:

http://www.parts-depot.com/parts/getPart?id=00345

Σημείωση το ρήμα, getPart. Αντ ‘ αυτού, χρησιμοποιήστε ένα ουσιαστικό:

http://www.parts-depot.com/parts/00345

3. Κατηγοριοποίηση τους πόρους σας, ανάλογα με το αν οι πελάτες μπορούν να λαμβάνουν μόνο ένα
εκπροσώπηση των πόρων, ή το αν οι πελάτες μπορούν να τροποποιήσουν (προσθήκη σε) το
πόρο. Για την πρώην, να κάνει αυτούς τους πόρους προσβάσιμα με ένα HTTP GET.
Για αργότερα, να κάνει αυτούς τους πόρους είναι προσβάσιμη χρησιμοποιώντας το HTTP POST, PUT, και/ή να ΔΙΑΓΡΆΨΕΤΕ.

4. Όλοι οι πόροι είναι προσβάσιμο μέσω HTTP GET, θα πρέπει να παρενέργεια δωρεάν. Δηλαδή, το
πόρος θα πρέπει να επιστρέφει μια αναπαράσταση του πόρου. Η επίκληση της
πόρων δεν θα πρέπει να οδηγεί σε τροποποίηση του πόρου.

5. Κανένας άντρας/η γυναίκα είναι ένα νησί. Ομοίως, καμία εκπροσώπηση θα πρέπει να είναι ένα νησί. Σε άλλες
λέξεις, βάλτε υπερ-συνδέσεις εντός των πόρων αναπαραστάσεις για να επιτρέψει στους πελάτες να
τρυπάνι κάτω για περισσότερες πληροφορίες και/ή να λάβει τις σχετικές πληροφορίες.

6. Σχέδιο για να αποκαλύψει τα δεδομένα σταδιακά. Μην αποκαλύψει τα πάντα σε ένα ενιαίο έγγραφο απάντησης.
Παρέχει υπερ-συνδέσεις για να λάβετε περισσότερες λεπτομέρειες.

7. Καθορίστε τη μορφή των δεδομένων απόκρισης χρησιμοποιώντας ένα σχήμα (DTD, το W3C Σχήματος, RelaxNG, ή Schematron).
Για τις υπηρεσίες αυτές που απαιτούν ένα POST ή να ΘΈΣΕΙ σε, επίσης, παρέχει ένα σχήμα για να το
καθορίστε τη μορφή της αντίδρασης.

8. Περιγράψτε πώς οι υπηρεσίες σας να γίνει επίκληση χρησιμοποιώντας είτε ένα WSDL έγγραφο, ή απλά
ένα έγγραφο HTML.

Περίληψη

Αυτό το άρθρο περιγράφεται ΥΠΌΛΟΙΠΟ ως αρχιτεκτονικό στυλ. Στην πραγματικότητα, είναι
η αρχιτεκτονική του Web. ΥΠΌΛΟΙΠΟ περιγράφει αυτό που κάνει το Web
λειτουργεί καλά. Ακολουθώντας το ΥΠΌΛΟΙΠΟ αρχές, τις υπηρεσίες σας
λειτουργήσουν καλά στο πλαίσιο του Web.

Σε ένα μελλοντικό άρθρο θα γράψω σχετικά με την εξέλιξη του Web χρησιμοποιώντας
το ΥΠΌΛΟΙΠΟ αρχές.

Αναγνώριση

Ευχαριστίες στον Robert Leftwich και ο Φίλιππος Eskelin για τις πολύ χρήσιμες παρατηρήσεις στη δημιουργία αυτού του εγγράφου.

Αρχικά στο http://www.xfront.com/REST-Web-Services.html