Προγραμματισμός

Διακομιστής εφαρμογών, διακομιστής Ιστού: Ποια είναι η διαφορά;

23 Αυγούστου 2002

Ε: Ποια είναι η διαφορά μεταξύ ενός διακομιστή εφαρμογών και ενός διακομιστή Web;

ΕΝΑ:

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

Ας εξετάσουμε το καθένα με περισσότερες λεπτομέρειες.

Ο διακομιστής Web

Ένας διακομιστής Web χειρίζεται το πρωτόκολλο HTTP. Όταν ο διακομιστής Web λαμβάνει ένα αίτημα HTTP, αποκρίνεται με μια απόκριση HTTP, όπως η αποστολή μιας σελίδας HTML. Για να επεξεργαστείτε ένα αίτημα, ένας διακομιστής Web ενδέχεται να ανταποκριθεί με μια στατική σελίδα ή εικόνα HTML, να στείλει μια ανακατεύθυνση ή να μεταβιβάσει τη δημιουργία δυναμικής απόκρισης σε κάποιο άλλο πρόγραμμα όπως σενάρια CGI, JSPs (JavaServer Pages), servlets, ASP (Active Server Pages ), JavaScript από την πλευρά του διακομιστή ή κάποια άλλη τεχνολογία από την πλευρά του διακομιστή. Όποιος και αν είναι ο σκοπός τους, τέτοια προγράμματα από την πλευρά του διακομιστή δημιουργούν μια απόκριση, συνήθως σε HTML, για προβολή σε πρόγραμμα περιήγησης στο Web.

Κατανοήστε ότι το μοντέλο ανάθεσης διακομιστή Web είναι αρκετά απλό. Όταν ένα αίτημα εισέρχεται στον διακομιστή Web, ο διακομιστής Web απλώς διαβιβάζει το αίτημα στο πρόγραμμα που είναι σε θέση να το χειριστεί. Ο διακομιστής Web δεν παρέχει καμία λειτουργικότητα πέρα ​​από την απλή παροχή ενός περιβάλλοντος στο οποίο το πρόγραμμα από την πλευρά του διακομιστή μπορεί να εκτελέσει και να επιστρέψει τις δημιουργούμενες απαντήσεις. Το πρόγραμμα από την πλευρά του διακομιστή παρέχει συνήθως λειτουργίες όπως επεξεργασία συναλλαγών, συνδεσιμότητα βάσης δεδομένων και ανταλλαγή μηνυμάτων.

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

Ο διακομιστής εφαρμογών

Όσον αφορά τον διακομιστή εφαρμογών, σύμφωνα με τον ορισμό μας, ένας διακομιστής εφαρμογών εκθέτει επιχειρηματική λογική σε εφαρμογές πελατών μέσω διαφόρων πρωτοκόλλων, πιθανώς συμπεριλαμβανομένου του HTTP. Ενώ ένας διακομιστής Web ασχολείται κυρίως με την αποστολή HTML για προβολή σε ένα πρόγραμμα περιήγησης στο Web, ένας διακομιστής εφαρμογών παρέχει πρόσβαση σε επιχειρηματική λογική για χρήση από προγράμματα εφαρμογών πελάτη. Το πρόγραμμα εφαρμογής μπορεί να χρησιμοποιήσει αυτήν τη λογική ακριβώς όπως θα καλούσε μια μέθοδο σε ένα αντικείμενο (ή μια συνάρτηση στον διαδικαστικό κόσμο).

Τέτοιοι πελάτες διακομιστών εφαρμογών μπορούν να περιλαμβάνουν GUI (γραφική διεπαφή χρήστη) που εκτελούνται σε υπολογιστή, διακομιστή Web ή ακόμα και σε άλλους διακομιστές εφαρμογών. Οι πληροφορίες που μετακινούνται μεταξύ του διακομιστή εφαρμογών και του πελάτη της δεν περιορίζονται στην απλή σήμανση οθόνης. Αντ 'αυτού, οι πληροφορίες είναι λογική προγράμματος. Δεδομένου ότι η λογική λαμβάνει τη μορφή κλήσεων δεδομένων και μεθόδου και όχι στατικού HTML, ο πελάτης μπορεί να χρησιμοποιήσει την εκτεθειμένη επιχειρηματική λογική όποτε θέλει.

Στις περισσότερες περιπτώσεις, ο διακομιστής εκθέτει αυτήν την επιχειρησιακή λογική μέσω ενός API στοιχείων, όπως το μοντέλο συστατικού EJB (Enterprise JavaBean) που βρίσκεται σε διακομιστές εφαρμογών J2EE (Java 2 Platform, Enterprise Edition). Επιπλέον, ο διακομιστής εφαρμογών διαχειρίζεται τους δικούς του πόρους. Τέτοια καθήκοντα φύλαξης πυλών περιλαμβάνουν ασφάλεια, επεξεργασία συναλλαγών, συγκέντρωση πόρων και ανταλλαγή μηνυμάτων. Όπως ένας διακομιστής Web, ένας διακομιστής εφαρμογών μπορεί επίσης να χρησιμοποιεί διάφορες τεχνικές κλιμάκωσης και ανοχής σφαλμάτων.

Ενα παράδειγμα

Για παράδειγμα, σκεφτείτε ένα ηλεκτρονικό κατάστημα που παρέχει πληροφορίες σχετικά με τις τιμές και τη διαθεσιμότητα σε πραγματικό χρόνο. Πιθανότατα, ο ιστότοπος θα παρέχει μια φόρμα με την οποία μπορείτε να επιλέξετε ένα προϊόν. Όταν υποβάλλετε το ερώτημά σας, ο ιστότοπος εκτελεί αναζήτηση και επιστρέφει τα αποτελέσματα που είναι ενσωματωμένα σε μια σελίδα HTML. Ο ιστότοπος μπορεί να εφαρμόσει αυτήν τη λειτουργικότητα με πολλούς τρόπους. Θα σας δείξω ένα σενάριο που δεν χρησιμοποιεί διακομιστή εφαρμογών και ένα άλλο που χρησιμοποιεί. Βλέποντας πώς διαφέρουν αυτά τα σενάρια θα σας βοηθήσει να δείτε τη λειτουργία του διακομιστή εφαρμογών.

Σενάριο 1: Διακομιστής Web χωρίς διακομιστή εφαρμογών

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

Συνοψίζοντας, ένας διακομιστής Web επεξεργάζεται απλώς αιτήματα HTTP απαντώντας με σελίδες HTML.

Σενάριο 2: Διακομιστής Ιστού με διακομιστή εφαρμογών

Το σενάριο 2 μοιάζει με το σενάριο 1 στο ότι ο διακομιστής Web εξακολουθεί να εκχωρεί τη δημιουργία απόκρισης σε ένα σενάριο. Ωστόσο, μπορείτε πλέον να βάλετε τη λογική της επιχείρησης για την αναζήτηση τιμών σε έναν διακομιστή εφαρμογών. Με αυτήν την αλλαγή, αντί του σεναρίου να γνωρίζει πώς να αναζητά τα δεδομένα και να διατυπώνει μια απάντηση, το σενάριο μπορεί απλά να καλέσει την υπηρεσία αναζήτησης του διακομιστή εφαρμογών. Το σενάριο μπορεί στη συνέχεια να χρησιμοποιήσει το αποτέλεσμα της υπηρεσίας όταν το σενάριο δημιουργεί την απόκριση HTML.

Σε αυτό το σενάριο, ο διακομιστής εφαρμογών εξυπηρετεί τη λογική της επιχείρησης για αναζήτηση πληροφοριών τιμολόγησης ενός προϊόντος. Αυτή η λειτουργικότητα δεν λέει τίποτα σχετικά με την εμφάνιση ή τον τρόπο με τον οποίο ο πελάτης πρέπει να χρησιμοποιήσει τις πληροφορίες. Αντ 'αυτού, ο πελάτης και ο διακομιστής εφαρμογών στέλνουν δεδομένα μπρος-πίσω. Όταν ένας πελάτης καλεί την υπηρεσία αναζήτησης του διακομιστή εφαρμογών, η υπηρεσία απλά αναζητά τις πληροφορίες και τις επιστρέφει στον πελάτη.

Διαχωρίζοντας τη λογική τιμολόγησης από τον κώδικα δημιουργίας απόκρισης HTML, η λογική τιμολόγησης γίνεται πολύ πιο επαναχρησιμοποιήσιμη μεταξύ των εφαρμογών. Ένας δεύτερος πελάτης, όπως μια ταμειακή μηχανή, θα μπορούσε επίσης να καλέσει την ίδια υπηρεσία με έναν υπάλληλο που ελέγχει έναν πελάτη. Αντιθέτως, στο Σενάριο 1 η υπηρεσία αναζήτησης τιμών δεν μπορεί να επαναχρησιμοποιηθεί επειδή οι πληροφορίες είναι ενσωματωμένες στη σελίδα HTML. Για να συνοψίσουμε, στο μοντέλο του σεναρίου 2, ο διακομιστής Web χειρίζεται αιτήματα HTTP απαντώντας με μια σελίδα HTML ενώ ο διακομιστής εφαρμογών εξυπηρετεί τη λογική των εφαρμογών με την επεξεργασία αιτημάτων τιμολόγησης και διαθεσιμότητας.

Προειδοποιήσεις

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

Επιπλέον, οι περισσότεροι διακομιστές εφαρμογών περιέχουν επίσης έναν διακομιστή Web, που σημαίνει ότι μπορείτε να θεωρήσετε έναν διακομιστή Web ένα υποσύνολο ενός διακομιστή εφαρμογών. Ενώ οι διακομιστές εφαρμογών περιέχουν λειτουργικότητα διακομιστή Ιστού, οι προγραμματιστές σπάνια αναπτύσσουν διακομιστές εφαρμογών υπό αυτήν την ιδιότητα. Αντ 'αυτού, όταν απαιτείται, συχνά αναπτύσσουν αυτόνομους διακομιστές Web σε συνδυασμό με διακομιστές εφαρμογών. Ένας τέτοιος διαχωρισμός της λειτουργικότητας βοηθά στην απόδοση (απλά αιτήματα Web δεν επηρεάζουν την απόδοση του διακομιστή εφαρμογών), τη διαμόρφωση ανάπτυξης (αποκλειστικοί διακομιστές Web, ομαδοποίηση κ.λπ.) και επιτρέπει την επιλογή προϊόντων με την καλύτερη ποιότητα.

Ο Tony Sintes είναι ανεξάρτητος σύμβουλος και ιδρυτής της First Class Consulting, μιας συμβουλευτικής εταιρείας που ειδικεύεται στη γεφύρωση διαφορετικών εταιρικών συστημάτων και κατάρτισης. Εκτός από την First Class Consulting, ο Tony είναι ενεργός ανεξάρτητος συγγραφέας, καθώς και συγγραφέας του Sams Teach Yourself Object-Oriented Programming in 21 Days (Sams, 2001; ISBN: 0672321092).

Μάθετε περισσότερα σχετικά με αυτό το θέμα

  • Για περισσότερα άρθρα σχετικά με διακομιστές εφαρμογών, ανατρέξτε στο Διακομιστές εφαρμογών Java τμήμα του JavaWorld 'Τοπ Ευρετήριο

    //www.javaworld.com/channel_content/jw-appserv-index.shtml

  • Θέλουν περισσότερα? Δείτε το Ε & Α Java σελίδα ευρετηρίου για τον πλήρη κατάλογο ερωτήσεων και απαντήσεων

    //www.javaworld.com/columns/jw-qna-index.shtml

  • Για περισσότερες από 100 διορατικές συμβουλές Java από μερικά από τα καλύτερα μυαλά στην επιχείρηση, επισκεφτείτε JavaWorld 'μικρό Συμβουλές Java σελίδα ευρετηρίου

    //www.javaworld.com/columns/jw-tips-index.shtml

  • Μάθετε περισσότερα σχετικά με τους severs εφαρμογών και τους διακομιστές Web στο Επιχείρηση Java συζήτηση

    //forums.idg.net/[email protected]@.ee6b80a

  • Εγγραφείτε JavaWorldΔωρεάν εβδομαδιαία Επιχείρηση Java ενημερωτικό δελτίο ηλεκτρονικού ταχυδρομείου

    //www.javaworld.com/subscribe

  • Θα βρείτε πληθώρα άρθρων που σχετίζονται με την πληροφορική από τις αδελφές εκδόσεις μας στο .net

Αυτή η ιστορία, "Διακομιστής εφαρμογών, διακομιστής Ιστού: Ποια είναι η διαφορά;" δημοσιεύθηκε αρχικά από το JavaWorld.