Ένα μοντέλο Πελάτη / Εξυπηρετητή είναι μία αρχιτεκτονική δικτύου, στην οποία συμμετέχουν οι υπολογιστές των χρηστών που αναφέρονται ως πελάτες (clients) και οι οποίοι συνδέονται με ένα ή περισσότερα ισχυρά υπολογιστικά συστήματα εξυπηρετητές (servers) τα οποία τους παρέχουν διάφορες υπηρεσίες.

 Αρχιτεκτονική Client / Server

Σύμφωνα με την αρχιτεκτονική Πελάτη / Εξυπηρετητή (clientserver), oι εξυπηρετητές παρέχουν στους πελάτες διάφορες υπηρεσίες, όπως για παράδειγμα πρόσβαση σε κοινόχρηστες μονάδες Εισόδου – Εξόδου (πχ σαρωτές, εκτυπωτές), Βάσεις Δεδομένων, Τηλεπικοινωνιακές Υποδομές, Πολυμέσα (Multimedia) κ.ά.

 

Για τη σύνδεση μεταξύ εξυπηρετητή και πελάτη απαιτείται (όπως σε κάθε δίκτυο) μία φυσική σύνδεση (καλώδιο, ασύρματη ζεύξη κ.ά.) και επιπλέον για την υλοποίηση της μεταξύ τους επικοινωνίας, κάποιο Λ.Σ. με υποστήριξη δικτύου (π.χ. Unix, Windows Server κα) σε κάποιο πρωτόκολλο επικοινωνίας (π.χ. TCP/ IP). Ο διαχειριστής του συστήματος είναι αυτός που θα αποφασίσει ποια εργαλεία θα εγκατασταθούν στον εξυπηρετητή και στους πελάτες και πως θα γίνει ο επιμερισμός των εργασιών του κάθε υπολογιστή του δικτύου. Οι πελάτες μπορεί να είναι πλήρη υπολογιστικά συστήματα οπότε η επεξεργασία των δεδομένων πραγματοποιείται στον υπολογιστή του τελικού χρήστη ή και απλά τερματικά (dummy terminals) όπου χρησιμοποιούνται μόνο για είσοδο δεδομένων ή εντολών από τον χρήστη και εμφάνιση αποτελεσμάτων στην οθόνη. Σε αυτήν την περίπτωση η επεξεργασία των δεδομένων γίνεται από τον εξυπηρετητή [1] .

 

Εικόνα  3.3.1 Σχηματική αναπαράσταση ενός δικτύου εξυπηρετητή-πελάτη

Η δυνατότητα εγκατάστασης κάθε είδους λογισμικού και αρχείων δεδομένων σε κεντρικά υπολογιστικά συστήματα είναι η βασική έννοια αυτής της αρχιτεκτονικής. Έτσι, παρέχεται η δυνατότητα να αξιοποιηθούν από διαφορετικούς υπολογιστές πελάτες. Σε αυτή την αρχιτεκτονική, επικρατεί η λεγόμενη κατανεμημένη επεξεργασία. Η κατανεμημένη επεξεργασία ήρθε ως αποτέλεσμα της ανάπτυξης των δικτύων και των πρώτων συστημάτων βάσεων δεδομένων που «τρέχουν» σε αυτά. Με αυτόν τον τρόπο το μοντέλο εξυπηρετητή - πελάτη είχε ευρεία διάδοση καθόσον διάφορες εφαρμογές, συνεργαζόμενες μεταξύ τους, καταφέρνουν να έχουν πρόσβαση σε δεδομένα από τον εξυπηρετητή μιας βάσης δεδομένων [2] . Στον υπολογιστή πελάτη υπάρχει κάποιο πρόγραμμα διεπαφής (interface) το οποίο παραλαμβάνει τα δεδομένα που έστειλε ο εξυπηρετητής και αναλαμβάνει να τα παρουσιάσει στον χρήστη [3] . Η επικοινωνία μεταξύ πελάτη και εξυπηρετητή ξεκινά πάντα από την πλευρά του πελάτη ο οποίος και χρειάζεται υπηρεσίες από τον εξυπηρετητή [4] . Στο επόμενο σχήμα (Εικόνα 3.3.2) δίδεται απλοποιημένα σχηματική αναπαράσταση της λειτουργίας ενός μοντέλου εξυπηρετητή - πελάτη.

 

Εικόνα   3.3.2 Απλοποιημένη σχηματική αναπαράσταση λειτουργίας εξυπηρετητή - πελάτη

Σε αυτό το μοντέλο λειτουργίας, ο εξυπηρετητής δεν ξεκινά καμία ενέργεια. Αλλά αναμένει να λάβει αιτήματα από τον πελάτη μέσω του δικτύου. Ο εξυπηρετητής απαντά ακόμα και όταν πολλοί πελάτες αποστείλουν ταυτόχρονα αιτήματα. Από τη στιγμή που ο εξυπηρετητής δέχεται από τον πελάτη ένα αίτημα, πρέπει να ελεγχθεί εάν ο πελάτης είναι εξουσιοδοτημένος να λάβει την απάντηση. Αν ο πελάτης δεν είναι εξουσιοδοτημένος, ο εξυπηρετητής απορρίπτει το αίτημα και στέλνει σχετικό μήνυμα στον πελάτη. Αν ο πελάτης έχει εξουσιοδότηση τότε ο εξυπηρετητής επεξεργάζεται την αίτηση [5] . Ανεξάρτητα από τις απαιτήσεις των διαφόρων εφαρμογών η βασική εργασία του εξυπηρετητή είναι: Η εξυπηρέτηση των υπολογιστών πελάτες που αποστέλλουν αιτήματα.

Ο χρήστης μέσω κάποιας εκτελούμενης εφαρμογής, αλληλεπιδρά με τον υπολογιστή του (πελάτη), ο οποίος υλοποιεί ένα μεγάλο τμήμα της. Ο εξυπηρετητής ενεργοποιείται μόνο στην περίπτωση που πρέπει να απαντήσει σε αιτήματα του υπολογιστή πελάτη. Στην αρχιτεκτονική αυτή οι υπολογιστές πελάτες επιτελούν τέσσερις βασικές λειτουργίες:

  • Παροχή μιας εύκολης διασύνδεσης χρηστών.
  • Αποστολή αιτημάτων.
  • Αποδοχή απαντήσεων.
  • Παροχή επεξεργασίας πληροφοριών από τον χρήστη.
Πλεονεκτήματα - μειονεκτήματα

Τα πλεονεκτήματα και μειονεκτήματα σε ένα σύστημα Πελάτη – Εξυπηρετητή διαφοροποιούνται ανάλογα με την υλοποίηση που εφαρμόζεται. Στα πλεονεκτήματα περιλαμβάνονται:

  • Κεντρική διαχείριση: Η ύπαρξη του εξυπηρετητή βοηθά τον διαχειριστή του δικτύου σε εργασίες παραμετροποίησης του δικτύου όπως είναι ο καθορισμός των δικαιωμάτων πρόσβασης ή η κατανομή των πόρων.
  • Βελτιωμένη διαχείριση: Όλα τα αρχεία αποθηκεύονται κεντρικά. Με αυτόν τον τρόπο η διαχείριση των αρχείων, καθώς και η εύρεσή τους γίνεται ευκολότερη.
  • Εύκολη δημιουργία αντιγράφων ασφαλείας: Επειδή όλα τα δεδομένα είναι αποθηκευμένα στον εξυπηρετητή γίνεται ευκολότερα η λήψη αντιγράφων ασφαλείας.
  • Ευκολότερη αναβάθμιση: Αλλαγές μπορούν να γίνουν εύκολα απλώς αναβαθμίζοντας τον εξυπηρετητή. Επίσης νέοι πόροι μπορούν να προστεθούν στο δίκτυο εφαρμόζοντας τις απαραίτητες αλλαγές στον εξυπηρετητή - πελάτη [6] .
  • Μείωση κόστους εγκατάστασης εφαρμογών: Το κόστος μιας εφαρμογής που εγκαθίσταται σε έναν εξυπηρετητή και χρησιμοποιείται από πολλούς χρήστες είναι συνήθως χαμηλότερο από το κόστος προμήθειας χωριστής εφαρμογής για κάθε χρήστη.
  • Διευκόλυνση πρόσβασης: Ο εξυπηρετητής μπορεί να είναι προσβάσιμος μέσω δικτύου από διαφορετικές πλατφόρμες (πχ συστήματα βασισμένα σε windows και ταυτόχρονα συστήματα βασισμένα σε Linux).

Τα βασικά μειονεκτήματα της αρχιτεκτονικής αυτής είναι:

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

[1] Ειδικές περιπτώσεις αυτού του μοντέλου δικτυακής λειτουργίας είναι οι υλοποιήσεις Thin client και Zero client. Στην πρώτη περίπτωση οι υπολογιστές πελάτες είναι χαμηλών απαιτήσεων και ουσιαστικά οι λειτουργίες που εκτελούνται σε αυτούς είναι επεξεργασία εικόνας, τοπικές αποθηκεύσεις και είσοδος / έξοδος. Στη δεύτερη περίπτωση οι υπολογιστές πελάτες είναι ακόμη χαμηλότερων απαιτήσεων και οι λειτουργίες που εκτελούνται σε αυτούς είναι είσοδος / έξοδος. Σε σχολεία κυρίως πρωτοβάθμιας εκπαίδευσης είναι επιλέξιμες.

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

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

[4] Η διαδικασία της επικοινωνίας μπορεί να αναλυθεί στα παρακάτω βήματα: 1. Ο χρήστης στέλνει ένα αίτημα, μέσω του πελάτη, στον εξυπηρετητή. 2. Ο server «ακούει» το αίτημα του πελάτη.  3. Από τη στιγμή που ο εξυπηρετητής λάβει το αίτημα, ελέγχει αν ο χρήστης έχει δικαίωμα πρόσβασης. 4. Ο εξυπηρετητής επεξεργάζεται το αίτημα. 5. Ο εξυπηρετητής επιστρέφει τα αποτελέσματα στον πελάτη. 6. Ο πελάτης δέχεται τα αποτελέσματα και τα παρουσιάζει στον χρήστη. Στα τέσσερα από τα έξι βήματα ο εξυπηρετητής είναι αυτός που παίζει το σημαντικότερο ρόλο και για αυτό θεωρείται η καρδιά της εφαρμογής client - server. Ο εξυπηρετητής υπάρχει για να «απαντήσει» στα αιτήματα του πελάτη, και ο πελάτης εξαρτάται από την αξιοπιστία και την απάντηση σε αποδεκτό χρόνο του εξυπηρετητή.

[5] Η επεξεργασία του αιτήματος περιλαμβάνει την παραλαβή του, την μετατροπή του σε μια μορφή που ο εξυπηρετητής μπορεί να χρησιμοποιήσει και την επεξεργασία του ίδιου του αιτήματος. Όταν ολοκληρωθεί η επεξεργασία, ο εξυπηρετητής αποστέλλει την πληροφορία στον πελάτη. Μετά, ο πελάτης μπορεί να μεταφράσει και να χρησιμοποιήσει την πληροφορία. Στις εφαρμογές πελάτη - εξυπηρετητή δεν υπάρχει διάκριση των «ευθυνών». Αυτό εξαρτάται από τις ανάγκες της εκάστοτε εφαρμογής. Υπάρχουν εφαρμογές με ισχυρό μοντέλο πελάτη που του παρέχονται περισσότερες λειτουργίες όπως για παράδειγμα οι εξυπηρετητές βάσεων δεδομένων και αρχείων που έχουν ισχυρούς πελάτες, ενώ σε αντίθεση οι εξυπηρετητές εφαρμογών και συναλλαγών έχουν ισχυρούς εξυπηρετητές.

[6] Σε πολλές περιπτώσεις και το profile των χρηστών του κάθε υπολογιστή πελάτη μπορεί να καθοριστεί και να ληφθεί από τον εξυπηρετητή ώστε να εφαρμοστεί στο υπολογιστή πελάτη (mandatory users profiles).