Κατανεμημένες Εφαρμογές και Ηλεκτρονικό Εμπόριο -> Πελάτες και Διακομιστές -> Ενδιάμεσο λογισμικό
{Main Text}

3 Εξατομικευμένο Λογισμικό

Η επικοινωνία μεταξύ του πελάτη και του διακομιστή δεν είναι άμεση. Συχνά, όταν ένας πελάτης απαιτεί μία υπηρεσία από έναν διακομιστή το αίτημα περνά μέσω πολλών ενδιαμέσων στρωμάτων λογισμικού που παρεμβάλλονται μεταξύ των πελατών και των διακομιστών. Αυτό το ενδιάμεσο λογισμικό ονομάζεται ενδιάμεσο λογισμικό (middleware). Αποτελεί ζωτικό μέρος κάθε συστήματος πελάτη-διακομιστή. Ευτυχώς, τις περισσότερες φορές, ο προγραμματιστής και ο σχεδιαστής δεν χρειάζεται ν' ανησυχούν για το πώς λειτουργεί. Χρειάζεται μόνο να το χρησιμοποιούν μέσω επικλήσεων μεθόδων. Η έννοια του middleware είναι κάπως ομιχλώδης. Ο καλύτερος ορισμός είναι των Orfali, Harkey και Edwards [2]:

Το Middleware είναι ένας ευρύς όρος που καλύπτει όλα τα κατανεμημένα λογισμικά που χρειάζονται για την υποστήριξη της συνεργασίας πελατών και διακομιστών....Πού αρχίζει το middleware και πού τελειώνει; Αρχίζει με την ομάδα API στην πλευρά του πελάτη που χρησιμοποιείται για την επίκληση μιας υπηρεσίας, και καλύπτει την μεταβίβαση του αιτήματος στο δίκτυο και την αντίστοιχη απάντηση.

Το καλύτερο παράδειγμα middleware είναι το λογισμικό διεπαφής ενός browser και του Παγκόσμιου Ιστού. Όταν γίνεται αίτηση για μια ιστοσελίδα, ας πούμε όταν ένας χρήστης κάνει κλικ σ' έναν υπερσύνδεσμο μιας σελίδας, ένα κείμενο, που αποτελεί μέρος ενός πρωτοκόλλου, αποστέλλεται στο middleware ρωτώντας για την σελίδα. Στην συνέχεια, το middleware θα εντοπίσει την σελίδα, θα την ανακτήσει και θα την στείλει πίσω στον browser. Τμήμα του middleware είναι ένα πρωτόκολλο που το αφορά η ανεύρεση σελίδων, η παρακολούθηση λαθών, η αναφορά λαθών, η μεταβίβαση δεδομένων και η επικοινωνία με τα κατώτερα στρώματα λογισμικού, που αποτελεί μέρος του TCP/IP που συζητήθηκε στο προηγούμενο κεφάλαιο.

Υπάρχουν δύο κατηγορίες middleware [1]: το γενικό middleware και η υπηρεσία middleware. Το γενικό middleware είναι λογισμικό που συσχετίζεται με υπηρεσίες που ζητούνται από όλους τους πελάτες και τους διακομιστές. Κανονικά το περισσότερο από αυτό το middleware αφορά τα λειτουργικά συστήματα. Το τυπικό λογισμικό που υπάγεται σ' αυτό το πλαίσιο περιλαμβάνει:

Η υπηρεσία middleware συσχετίζεται με μία συγκεκριμένη υπηρεσία όπως η εκτύπωση αρχείων σ' έναν απομακρυσμένο υπολογιστή. Τα τυπικά παραδείγματα περιλαμβάνουν:

Πριν να προχωρήσουμε σ' αυτό αξίζει να ρίξουμε μια πιο λεπτομερή ματιά σε μια γενική μορφή τεχνολογίας γνωστή ως middleware σε μήνυμα. Παρέχει ένα απλό παράδειγμα γενικού middleware.

3.1 Ενδιάμεσο λογισμικό σε μήνυμα

Το middleware σε μήνυμα (MOM) είναι λογισμικό που διαχειρίζεται τις συναλλαγές μεταξύ πελατών-διακομιστών. Ένα τυπικό κομμάτι MOM περιλαμβάνει έναν αριθμό ουρών που περιέχουν μηνύματα και δεδομένα προερχόμενα είτε από έναν πελάτη είτε ένα διακομιστή. Οι πελάτες - για παράδειγμα, ένας πωλητής που χρησιμοποιεί έναν φορητό υπολογιστή - καταθέτουν συνεχώς αιτήματα στο MOM και ο διακομιστής θα τα παραλάβει, θ' ανταποκριθεί σ' αυτά και θα καταθέσει όσα δεδομένα πρέπει ν' αποσταλούν πίσω στο MOM. Το middleware μεσολαβεί μεταξύ των πελατών και διακομιστών. Αυτό το λογισμικό έχει ορισμένα προτερήματα: οι πελάτες δεν χρειάζεται να είναι συνέχεια συνδεδεμένοι - μπορούν απλά να τοποθετήσουν δεδομένα στο middleware και ν' αποσυνδεθούν, συλλέγοντας τις απαντήσεις αργότερα. Επίσης, το μοντέλο διεπαφής είναι απλό: αποτελείται μόνο από τον πελάτη που τοποθετεί δεδομένα σε μια ουρά που συντηρείται από το middleware και από τον διακομιστή που απομακρύνει τα δεδομένα, τα επεξεργάζεται και τοποθετεί μία απάντηση πίσω στην ουρά. Χάρη σ' αυτήν την απλότητα το MOM χρησιμοποιείται συχνά για την σύνδεση λογισμικού με συστήματα κληροδότησης.

Σειρές MQ
Χωρίς αμφιβολία το κυριότερο ενδιάμεσο λογισμικό σε μήνυμα είναι οι Σειρές MQ που αναπτύχθηκε από την IBM. Επεξεργάζεται τέσσερεις τύπους μηνυμάτων: Τα Τα ανεξάρτητα δοτοδέματα (Datagrams) είναι μονόδρομα μηνύματα χωρίς την επιστροφή απαντητικού μηνύματος, π.χ. το σήμα ότι ένας πελάτης είναι συνδεδεμένος. Τα μηνύματα αίτησης (Request Messages) χρησιμοποιούνται όταν ο αποστολέας περιμένει απάντηση, π.χ. όταν στέλνει ένα ερώτημα στην βάση δεδομένων. Τα απαντητικά μηνύματα (Reply Messages) είναι τα μηνύματα που αποστέλλονται ως απάντηση σε μηνύματα αίτησης. Και, τέλος, τα μηνύματα αναφοράς (Report Messages) χρησιμοποιούνται για να δώσουν σήμα σ' έναν πελάτη ότι κάποιο αναπάντεχο γεγονός έχει συμβεί. Για παράδειγμα, ότι ένας διακομιστής έχει βλάβη. Το API των MQSeries είναι εξαιρετικά απλό και αποτελείται από μόνο 11 κλήσεις προγράμματος.

Ολοκλήρωση Συστήματος, MOM και ο Όμιλος VF
Η Όμιλος VF είναι μία από τις μεγαλύτερες κατασκευάστριες εταιρείες ρούχων στις ΗΠΑ. Όπως πολλές άλλες εταιρείες αναπτύχθηκε εν μέρει με την συγχώνευση άλλων εταιρειών που συμπλήρωσαν την κύρια επιχείρηση. Αυτό σημαίνει ότι στα τέλη του 1990 ο όμιλος διαχειριζόταν έναν μεγάλο αριθμό ετερογενών συστημάτων. Ως μέρος μιας επιχείρησης αναδιοργάνωσης του συστήματος ο όμιλος αποφάσισε να ενοποιήσει όλα τα συστήματα έτσι ώστε τα δεδομένα του ενός συστήματος, π.χ. το σύστημα παραγγελιών, να μπορούν να επικοινωνούν μ' ένα άλλο σύστημα, π.χ. μ' ένα λογιστικό σύστημα. Η εταιρεία επέλεξε ως συνδετικό λογισμικό το MOM προϊόν της MQSeries. Το λογισμικό αυτό έχει έναν πολύ απλό προγραμματισμό διεπαφής. Αντί ν' αλλάξουν όλο το λογισμικό των υπαρχόντων συστημάτων ώστε να επικοινωνούν με άλλα λογισμικά, το τμήμα MIS αποφάσισε να χρησιμοποιήσει το MOM μια και η διεπαφή του είναι απλή και η διαχείρισή του γίνεται κεντρικά. Για παράδειγμα, η MQSeries δίενι την δυνατότητα στο προσωπικό να συντονίσει τους αλγορίθμους που χρησιμοποιεί με στόχο ν' ανταποκριθεί στις αλλαγές του ρυθμού συναλλαγών. Το να πραγματοποιηθεί μία τέτοια αναβάθμιση τοπικά στα διάφορα συστήματα του Ομίλου VF θα ήταν ένας πραγματικός εφιάλτης.

Αξίζει να τονίσουμε ότι υπάρχουν θα συναντήσετε πολλούς τύπους εξατομικευμένου λογισμικού κι αυτό είναι μόνο ένα παράδειγμα
Σειρές MQ
Ο Οργανισμός VF

 

Η επεξεργασία βάσεων δεδομένων περιγράφεται στο  Κεφάλαιο 5

Το RMI αναλύεται περισσότερο στο Κεφάλαιο 9

Ενδιάμεσο λογισμικό σε μήνυμα

Ένα παράδειγμα MOM που χρησιμοποιείται για την ολοκλήρωση περιγράφεται στο δεύτερο χρωματιστό κουτί παρακάτω

Οι Σειρές MQ των προϊόντων εξατομικευμένου λογισμικού χρησιμοποιήθηκαν ευρύτατα στο σύστημα των  Ολυμπιακών Αγώνες του Σύδνεϋ που περιγράφηκε στο Κεφάλαιο 1