Σύστηµα CORBA οµή συστήµατος Μεταβίβαση παραµέτρων Μοντέλα επικοινωνίας υναµικές κλήσεις Αναφορές αντικειµένων Ονόµατα αντικειµένων ιαχείριση αντικειµένων Υλοποίηση συστηµάτων CORBA Κατανεµηµένα Συστήµατα 18-1
οµήσυστήµατος Πελάτης Κορµός ORB Λειτουργικό Υλισµικό Αντικείµενο Σκελετός ORB Λειτουργικό Υλισµικό ίκτυο ιασύνδεσης Common Object Request Broker Architecture (CORBA) Σχεδιάστηκε από το OMG (Object Management Group) ιαλειτουργικότητα ανάµεσα σε εφαρµογές Ανεξαρτησία από γλώσσα και λειτουργικό Object Request Broker (ORB) Πυρήνας του συστήµατος CORBA Υποστήριξη επικοινωνίας ανάµεσα στα αντικείµενα Εντοπισµός των υπηρεσιών CORBA Κατανεµηµένα Συστήµατα 18-2
Υπηρεσίες CORBA οµήσυστήµατος Παρέχονται από το σύστηµα Παρόµοιες µε υπηρεσίες λειτουργικού Υπηρεσίες ονοµασίας, συναλλαγών, γεγονότων Γλώσσα ορισµού διεπαφών (IDL) Ορισµός των αποµακρυσµένων διεπαφών Ανεξάρτητη από γλώσσα προγραµµατισµού Απεικονίζεται σε C, C++, Smalltalk, COBOL, Ada, Java Η γλώσσα πελάτη και εξυπηρετητή µπορεί να διαφέρει Μοντέλο συστήµατος CORBA Παρέχει αποµακρυσµένα γένια αντικείµενα Όχι απαραίτητα πραγµατικά αντικείµενα Αποµακρυσµένη αναφορά και υλοποίηση διεπαφής Κατανεµηµένα Συστήµατα 18-3
Μεταβίβασηπαραµέτρων οµή γλώσσας IDL Παρόµοια σύνταξη µε C++ Ευκολίες προεπεξεργασίας της C++ Προσθέτει ορισµένες λέξεις κλειδιά οµή αρχείων IDL Αποτελούνται από δοµοενότητες Κάθε δοµοενότητα είναι µία εµβέλεια ονοµασίας Κάθε δοµοενότητα περιέχει διεπαφές και δηλώσεις Κάθε διεπαφή περιέχει µεθόδους και τύπους Τύποι γλώσσας IDL Octet, short, long, unsigned short, unsigned long Double, char, booleanκαι any (οτιδήποτε) Array, string, record, sequence, enumeratedκαι union Κατανεµηµένα Συστήµατα 18-4
Μεταβίβασηπαραµέτρων Τύπος Object: αναφορές αντικειµένων Κατάλληλος για οποιοδήποτε αντικείµενο Όνοµα τύπου = IDL:όνοµα_τύπου:αριθµός_έκδοσης Ιδιότητες διεπαφών: δεδοµένα αντικειµένων Μπορεί να είναι readonly Υπογραφές µεθόδων: παρόµοιες µε C++ Κάθε παράµετρος µπορεί να είναι in, out ή inout Μέθοδοι oneway: ο πελάτης δεν εµποδίζεται κατά την κλήση Raises για ορισµό εξαιρέσεων αντικειµένου Το σύστηµα ρίχνει και εξαιρέσεις επικοινωνίας Μεταβίβαση παραµέτρων Πρωταρχικοί και δοµηµένοι τύποι µε τιµή Αντικείµενα µε αναφορά (αντιγραφή τιµής αναφοράς) Κατανεµηµένα Συστήµατα 18-5
Μεταβίβασηπαραµέτρων Τύπος valuetype: struct + υπογραφές µεθόδων Παριστάνει αντικείµενα αντικειµενοστρεφών γλωσσών Μεταβίβαση παραµέτρων valuetype µε τιµή Αντιγράφονται τα περιεχόµενα του struct Ο παραλήπτης δηµιουργεί ένα νέο αντικείµενο Ο παραλήπτης πρέπει να διαθέτει τον κατάλληλο κώδικα Το αντικείµενο αρχικοποιείται µε βάση το struct Κληρονοµικότητα διεπαφών Η IDL επιτρέπει πολλαπλή κληρονοµικότητα διεπαφών Η διεπαφή µπορεί να προσθέτει νέα χαρακτηριστικά εν επιτρέπεται ο επανακαθορισµός µεθόδων και ιδιοτήτων Κάθε διεπαφή είναι συµβατή µε τους υπερτύπους της Όλες οι διεπαφές είναι συµβατές µε τον τύπο Object Κατανεµηµένα Συστήµατα 18-6
Μοντέλαεπικοινωνίας Παραγωγός Καταναλωτής Παραγωγός Κανάλι Καταναλωτής Παραγωγός Καταναλωτής Τύποι αποµακρυσµένων κλήσεων µεθόδων Σύγχρονες αποµακρυσµένες κλήσεις Σηµασιολογία κλήσης το πολύ µία φορά Μονόδροµες µέθοδοι: δεν επιστρέφουν αποτελέσµατα Αναβληθείσες αιτήσεις: χωριστή αναµονή αποτελεσµάτων Υπηρεσία γεγονότων Ορίζει γεγονότα που παράγονται και καταναλώνονται Μοντέλο εξώθησης: ο παραγωγός στέλνει στον καταναλωτή Μοντέλο έλξης: ο καταναλωτής ρωτάει τον παραγωγό Κατανεµηµένα Συστήµατα 18-7
Μοντέλαεπικοινωνίας Παραγωγός Καταναλωτής Παραγωγός Κανάλι Καταναλωτής Παραγωγός Καταναλωτής Κανάλια γεγονότων Επικοινωνία ανάµεσα σε πολλούς παραγωγούς και καταναλωτές Χρήση µοντέλου εξώθησης ή µοντέλου έλξης Πληρεξούσιοι για επικοινωνία µε το κανάλι Περιορισµοί καναλιών γεγονότων εν αποθηκεύουν τα γεγονότα εν επιτρέπουν φιλτράρισµα στον παραλήπτη Όλα τα γεγονότα αντιµετωπίζονται µε τον ίδιο τρόπο εν είναι αξιόπιστα Κατανεµηµένα Συστήµατα 18-8
Μοντέλαεπικοινωνίας Υπηρεσίαειδοποιήσεων Αντιµετωπίζει τους περιορισµούς των καναλιών γεγονότων Χρήση φίλτρων για επιλογή γεγονότων Ενηµέρωση για τη διαθεσιµότητα γεγονότων Αποφυγή απώλειας γεγονότων λόγω έλλειψης παραλήπτη Προαιρετική αξιοπιστία καναλιού Προαιρετικές προτεραιότητες γεγονότων Υπηρεσία µηνυµάτων Επίµονη επικοινωνία µε ουρές µηνυµάτων Τα µηνύµατα αποθηκεύονται από το σύστηµα Ασύγχρονη επικοινωνία πελάτη και εξυπηρετητή Προσπέλαση µε δύο τρόπους Μοντέλο επανάκλησης και µοντέλο ψηφοφορίας Κατανεµηµένα Συστήµατα 18-9
Μοντέλαεπικοινωνίας Πελάτης Επανάκληση Πληρεξούσιος ORB (α) Πελάτης Πληρεξούσιος ORB (β) Απόκριση Μοντέλο επανάκλησης Ο πελάτης ορίζει µία διεπαφή επανάκλησης Όταν φτάσουν τα αποτελέσµατα καλείται η διεπαφή Υλοποίηση διεπαφής από τον πελάτη Μοντέλο ψηφοφορίας Ο πελάτης ρωτάει τη διεπαφή απόκρισης Υλοποίηση διεπαφής από τον ORB Ο εξυπηρετητής βλέπει µόνο σύγχρονες κλήσεις Κατανεµηµένα Συστήµατα 18-10
Μοντέλαεπικοινωνίας Πρωτόκολλο επικοινωνίας ORB GIOP: γενικό πρωτόκολλο επικοινωνίας ORB ιαλειτουργικότητα µεταξύ διαφορετικών ORB Χρησιµοποιεί αξιόπιστα πρωτόκολλα µεταφοράς Πάνω από το TCP εξειδικεύεται σε IIOP Οκτώ είδη µηνυµάτων Αίτηση κλήσης: αναγνωριστικό κλήσης και παράµετροι Απόκριση κλήσης: περιέχει το αναγνωριστικό της κλήσης Αίτηση και απόκριση εντοπισµού υλοποίησης Ακύρωση αίτησης: δεν εγγυάται ότι δεν θα εκτελεστεί Κλείσιµο σύνδεσης: προειδοποίηση στο άλλο άκρο Σφάλµα µηνύµατος: για όλα τα σφάλµατα Θραύσµα: για τεµαχισµό µεγάλων µηνυµάτων Κατανεµηµένα Συστήµατα 18-11
Στατικές κλήσεις υναµικέςκλήσεις Ο πελάτης γνωρίζει τη διεπαφή εκ των προτέρων Χρήση εξειδικευµένου πληρεξούσιου και σκελετού Προσαρµογέαςαντικειµένων στην πλευρά του εξυπηρετητή Πληρεξούσιος και σκελετός παράγονται αυτόµατα από την ΙDL υναµικές κλήσεις (DII) Χρήση γενικού πληρεξούσιου και σκελετού Αναφορά, αναγνωριστικό µεθόδου και λίστες παραµέτρων Το αντικείµενο πρέπει να κατανοεί τις δυναµικές κλήσεις Κατασκευή δυναµικών κλήσεων Αποθήκη διεπαφών µε τα στοιχεία των διεπαφών Καταχώριση ονόµατος τύπου και στοιχείων διεπαφής Μέθοδοι και παράµετροι κλήσεως των µεθόδων Κατανεµηµένα Συστήµατα 18-12
υναµικέςκλήσεις Κατασκευήδυναµικών κλήσεων Αναζήτηση διεπαφής στην αποθήκη από τον πελάτη Κάθε αναφορά περιέχει και το κατάλληλο όνοµα τύπου Η αποθήκη διεπαφών έχει τυποποιηµένη διεπαφή Αποθήκη υλοποιήσεων Στοιχεία υλοποίησης και ενεργοποίησης αντικειµένων Η αποθήκη υλοποιήσεων δεν έχει τυποποιηµένη διεπαφή Χρησιµοποιείται µόνο από τον προσαρµογέα αντικειµένων Αναφορές αντικειµένων Οι διεργασίες έχουν αναφορές προς πληρεξούσιους Οι πληρεξούσιοι έχουν τα στοιχεία επικοινωνίας Αποµακρυσµένες αναφορές: IOR Αναγνωριστικό αποθήκης διεπαφών Προφίλ µε ετικέτες για κάθε πρωτόκολλο Κατανεµηµένα Συστήµατα 18-13
Αναφορέςαντικειµένων IOR IIOP Έκδοση IP TCP Προσαρµογέας Αντικείµενο Άλλα Προφίλ πρωτοκόλλου IIOP ιεύθυνση IP και θύρα TCP εξυπηρετητή Αναγνωριστικό προσαρµογέα και αντικειµένου Πρόσθετες πληροφορίες κλήσης Άµεση δέσµευση Αναζήτηση διεπαφής σε αποθήκη και φόρτωση πληρεξούσιου Έµµεση δέσµευση Αρχικά παραποµπή σε αποθήκη υλοποιήσεων Ενεργοποίηση του αντικειµένου αν χρειάζεται Κατάλληλη για επίµονα αντικείµενα Στη συνέχεια ανακατεύθυνση στο αντικείµενο Κατανεµηµένα Συστήµατα 18-14
Ονόµατααντικειµένων Συµφραζόµενο ονοµασίας: πεδίο εµβέλειας Αντιστοίχιση ονοµάτων σε αντικείµενα ή συµφραζόµενα Ιεραρχική οργάνωση συµφραζοµένων εν υπάρχει καθολική ρίζα στο σύστηµα ονοµασίας Το αρχικό συµφραζόµενο επιστρέφεται από τον ORB Όνοµα αντικειµένου Ακολουθία δοµών NameComponent Κάθε δοµή περιέχει το όνοµα και το είδος Το είδος εξαρτάται από την εφαρµογή Μέθοδοι διεπαφής NamingContext void bind (in Name n, in Object obj): δέσµευση void unbind (in Name n): επαναδέσµευση void bind_new_context (in Name n): νέο συµφραζόµενο Object resolve (in Name n): επίλυση ονόµατος Κατανεµηµένα Συστήµατα 18-15
ιαχείρισηαντικειµένων Αντικείµενο 1 Αντικείµενο 2 POA 1 Αντικείµενο 3 Αντικείµενο 4 POA 2 Φορητός Προσαρµογέας Αντικειµένων (POA) Μετατρέπει τυχαίο κώδικα σε αντικείµενο CORBA Η υλοποίηση ενός αντικειµένου είναι ένας υπηρέτης Κλήση κατάλληλου υπηρέτη για κάθε κλήση µεθόδου Τυποποιηµένος τρόπος κλήσης ανεξάρτητα από ORB Κάθε POA έχει διαφορετική πολιτική ενεργοποίησης Προετοιµασία αντικειµένων ORB Κλήση του POA µετά τη δηµιουργία του υπηρέτη Αντιστοίχιση υπηρέτη µε τοπική αναφορά στον POA Συνδυασµός µε στοιχεία POA για αποµακρυσµένη αναφορά Κατανεµηµένα Συστήµατα 18-16
Υλοποίησησυστηµάτων CORBA Συγγραφή διεπαφής σε IDL Μεταγλώττιση σε επιθυµητές γλώσσες Πρόγραµµα υπηρέτη Πρέπει να υλοποιεί την αποµακρυσµένη διεπαφή Επικοινωνία µε πελάτη µέσω ORB / POA / σκελετού Πρόγραµµα εξυπηρετητή ηµιουργία και αρχικοποίηση ORB Ενεργοποίηση διαχειριστή POA ηµιουργία υπηρετών και εγγραφή τους στον ORB Μετατροπή τοπικών αναφορών σε αποµακρυσµένες Ανεύρεση αρχικού συµφραζοµένου ονοµασίας έσµευση ονόµατος αντικειµένου µε αποµακρυσµένη αναφορά Αναµονή για αποµακρυσµένες κλήσεις Κατανεµηµένα Συστήµατα 18-17
Υλοποίησησυστηµάτων CORBA Πρόγραµµα πελάτη ηµιουργία και αρχικοποίηση ORB Ανεύρεση αρχικού συµφραζοµένου ονοµασίας Αναζήτηση αναφοράς από όνοµα αντικειµένου Κλήση µεθόδων αποµακρυσµένων αντικειµένων Υλοποίηση µε Java Κάθε ενότητα IDL γίνεται ένα πακέτο Java Άµεση απεικόνιση των περισσότερων τύπων Οι εξαιρέσεις της IDL απεικονίζονται σε τάξεις της Java Τι γίνεται όταν έχουµε πολλές παραµέτρους out; Κάθε παράµετρος out αντιστοιχίζεται σε µία παράµετρο Holder Ο καλών περνάει µια υπόσταση της τάξης Holder Η τάξη Holder περιέχει την τιµή της παραµέτρου Κατανεµηµένα Συστήµατα 18-18