Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο Oκτώ - O ρόµος της Microsoft: DCO M, OLE και ActiveX



Σχετικά έγγραφα
Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο Έξη - Συνδετικά Kριτήρια Aντικειµένων και Συστατικών

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο Ένδεκα - Στρατηγική Σύγκριση

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Προοπτικές. Kεφάλαιο Tρία - Mεγέθους και ιαµελισµού Eνός Συστήµατος σε Συστατικά

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο εκαέξη - Συναρµολόγηση Συστατικών

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο ύο - Tι Eίναι και Tι δεν Eίναι Συστατικό

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Σημειώσεις θεωρίας για το μάθημα "Κατανεμημένα Συστήματα Ελέγχου"

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο εκατρία - Aρχιτεκτονική Συστατικών

2.1 Αντικειµενοστρεφής προγραµµατισµός

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Αποµακρυσµένη κλήση διαδικασιών

Σύστηµα CORBA. Κατανεµηµένα Συστήµατα 18-1

Α. Ερωτήσεις Ανάπτυξης

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΑΡΑΓΩΓΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο Eπτά - H ιεύθυνση Συνόλων Aντικειµένων (O MG): CORBA και OMA

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο ώδεκα - Kαθορισµός Προτύπων Περιοχών

Δομημένος Προγραμματισμός

ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων

ENOTHTA 8 IAXEIPIΣH KAI ΣYΣTHMATA APXEIΩN

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο Πέντε - Tα Όρια του Προγραµµατισµού

Αρχιτεκτονική πελάτη-εξυπηρέτη Οι διεργασίες που εκτελούνται στο δίκτυο είναι είτε πελάτες (clients) είτε εξυπηρέτες (servers). Εξυπηρέτης: παθητικός,

Εισαγωγή στην Πληροφορική

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Περιεχόμενα. Προλεγόμενα... ix Κεφάλαιο 1 Εισαγωγή Κεφάλαιο 2 Δεδομένα και εκφράσεις Κεφάλαιο 3 Λογικές συνθήκες και δομές ελέγχου...

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Διαφορές single-processor αρχιτεκτονικών και SoCs

4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Λειτουργικά Συστήματα (Λ/Σ)

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Μαλούτα Θεανώ Σελίδα 1

Κατανεµηµένος Προγραµµατισµός & Προγραµµατισµός στο ιαδίκτυο

Κεφάλαιο 10 ο Υποπρογράµµατα

Ε-85: Ειδικά Θέµατα Λογισµικού

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

Μάθηµα 3. Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας

Λειτουργικά Συστήματα (Λ/Σ)

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program)

Επεξεργασία πραγµατικού χρόνου Κατάτµηση της µνήµης

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Δίκτυα ΙΙ. Κεφάλαιο 7

ΛΟΓΙΣΜΙΚΟ (software)

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος?

Ανάπτυξη και Σχεδίαση Λογισμικού

Σχεδιασµός βασισµένος σε συνιστώσες

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη Λειτουργικά Συστήματα

Μεθοδολογίες Παραγωγής Λογισµικού

Ελεγχος Πρόσβασης (Access Control)

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

OptiplanFlex. Χαρακτηριστικά


ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

Κατανεµηµένα Αντικείµενα 16-1

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Λιβανός Γιώργος Εξάμηνο 2017Β

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Αντικειμενοστρεφής Προγραμματισμός

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Ενότητα 3 (κεφάλαιο 16) Επαναχρησιμοποίηση Λογισμικού

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Τεχνολογία Λογισμικού

Διαχείριση Ενέργειας (BEMS)

ΑΡΧΙΜΗΔΗΣ ΙΙΙ Ενίσχυση Ερευνητικών Ομάδων στο ΤΕΙ Δυτικής Μακεδονίας» - MIS

Εργαλεία του JDK. Β.1 Εργαλεία του JDK. Β.2 Μεταγλωττιστής javac. Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω.

ENOTHTA 9 AΣΦAΛEIA KAI ΠPOΣTAΣIA

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Κατανεµηµένασυστήµατα αρχείων

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

Λύσεις διαχείρισης υπολογιστών-πελατών και λύσεις εκτύπωσης Universal Printing Solutions

Χρήστος Στασινός. ουλεύοντας με τη. Microsoft Access ΑΘΗΝΑ

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

Ευχαριστίες...xi Εισαγωγή...xiii. ΚΕΦΑΛΑΙΟ 1 Άνοιγµα και εκτέλεση ενός προγράµµατος Visual Basic.NET

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Κλάσεις και Αντικείµενα

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

Transcript:

Kεφάλαιο Oκτώ - O ρόµος της Microsoft: DCO M, OLE και ActiveX 1

8.1 Tο Bασικό Πρότυπο Σύνδεσης: COM Πρότυπο σύνδεσης για συστατικά αντικείµενα. Ιδανική για εφαρµογή αυτoύ του προτύπου, η Java. Xαρακτηριστικά προτύπου: υαδική σταθερά που ορίζει (για λογαριασµό κάποιου πελάτη), την ύπαρξη µιας διασύνδεσης, που σε δυαδικό επίπεδο αποτελεί δείκτη θέσης σε κόµβο διασύνδεσης. O κόµβος καθορίζει ένα άλλο δείκτη στο πρώτο πεδίο ενός πίνακα διεργασιών (µεθόδων). Η αυτοπαράµετρος κάθε µεθόδου δεικνύει το αντικείµενο στο οποίο ανήκει. Μέσω αυτής µπορεί να συσχετισθεί ένας κόµβος µε µια περίπτωση µεταβλητής. Kάθε συστατικό του προτύπου CO M µπορεί να αναφέρεται σε πολλούς κόµβους και εποµένως αντικείµενα και σύνολα µεθόδων. Σαν ενδείκτης κάθε αντικειµένου COM υπάρχει επιστροφή του ιδίου δείκτη σε κάθε κόµβο, από τη δεύτερη κοινή διασύνδεση στις µεθόδους, IUnknovn. Ωστόσο ο ίδιος ο κόµβος διασύνδεσης δεν είναι µοναδικός σε κάθε αντικείµενο COM. Στον ορισµό του το IUnknovn περιλαµβάνει τις εξής διαδοχές: HRESULT QueryInterface([in]constiid,[out,iid_is(iid)] Iunknown iid); Unsigned long AddRef(); Unsighed long Release(); Tο QueryInterface είναι η πρώτη κοινή µέθοδος κάθε αντικειµένου, η οποία αφού πάρει τον ενδείκτη της διασύνδεσης που τον καλεί (IID ή GUID), ελέγχει αν αυτή υποστηρίζεται από το CO M αντικείµενο. M ετον προαναφερθέντα τρόπο αριθµούνται από κάθε αντικείµενο CO M οι αναφορές κόµβων διασύνδεσης που σχετίζονται µε αυτό. Έτσι πάντως δηµιουργείται εξάρτηση του συστατικού από τον κόµβο (αν υπάρχει µόνο ένας) που αν δεσµεύει πολλούς πόρους (αρκετή µνήµη),θα πρέπει να χρησιµοποιηθεί ξεχωριστή αρίθµηση ούτως ώστε να απαλλαγεί από αυτή τη διασύνδεση το συντοµότερο δυνατό. Στο AddRef γίνεται η καθ αυτό αρίθµηση για αντικείµενα και κόµβους. To Release µειώνει την αρίθµηση για κάθε κόµβο ή αντικείµενο που φεύγει και όταν η αρίθµηση φθάσει στο µηδέν, το αντικείµενο COM αποµονώνεται και το ίδιο όλες οι αποκλειστικές διασυνδέσεις ελευθερώνοντας µνήµη. O ρόµος τη Microsoft: DCO M OLE και ActiveX 2

υαδικές µεταβλητές πελατών Κόµβος διασύνδεσης A ιεργ A1 ιεργ A2 Κόµβος διασύνδεσης B Aντικείµενο 1 ιεργ B1 ιεργ B2 ιεργ B3 Κόµβος διασύνδεσης Γ Aντικείµενο 2 ιεργ Γ1 ιεργ Γ2 Σχ. 8.1 Aντικείµενο COM µε πολλαπλές διασυνδέσεις. O ρόµος τη Microsoft: DCO M OLE και ActiveX 3

8.2 Eπαναχρησιµοποίηση αντικειµένου COM To πρότυπο COM αν και δεν παρέχει υποστήριξη για διαδοχή, υποστηρίζει την επαναχρήσιµοποίηση των αντικειµένων µε δύο τύπους καλουµένους συγκράτηση και ενοποίηση. IUnknown IUnknown IStream... inner IStream... Read Read Write {inner.read} {inner.write} Write { } { } Eξωτερικό αντικείµενο Eσωτερικό αντικείµενο Σχ. 8.2 Συγκράτηση στο επίπεδο αντικειµένων. O ρόµος τη Microsoft: DCO M OLE και ActiveX 4

Eπαναχρησιµοποίηση αντικειµένου COM H συγκράτηση εφαρµόζει απλές τεχνικές σύνθεσης όπου ένα αντικείµενο κρατά αποκλειστικές αναφορές σε άλλο (βλ. σχ. 8.2). Tοαντικείµενο αυτό καλείται εξωτερικό και εννοιολογικά περιέχει το δεύτερο εσωτερικό. Στη επικοινωνία τους το εξωτερικό προωθεί κλήσεις στο εσωτερικό (βλ. σχ. 8.3). Xαρακτηριστικά της µεθόδου: Επαναχρησιµοποίηση εφορµογών που συγρατούνται σε άλλα συστατικά. Πλήρης διαφάνεια κλήσεων. Ελαττωµένη απόδοση σε βαθειές ιεραρχίες συγράτησης. Aυτό µας οδηγεί στη ανάγκη για χρησιµοποίηση ενοποίησης. Στο πρότυπο ενοποίησης αντί για προώθηση κλήσεων, δίδεται απ ευθείας αναφορά διασυνδέσεως µε την ζητουµένη εφαρµογή και υπάρχει συνεργασία µε το εσωτερικό αντικείµενο. Προϋπόθεση φυσικά είναι να µην υπάρχει διήθηση διεργασιών. IUnknown IUnknown IStream... inner IStream... Read Read Write {inner.read} {inner.write} Write { } { } Eσωτερικό αντικείµενο Eξωτερικό αντικείµενο Σχ. 8.3 H ιδέα της συγράτησης άλλου αντικειµένου. O ρόµος τη Microsoft: DCO M OLE και ActiveX 5

Eπαναχρησιµοποίηση αντικειµένου COM Eπίσης στή ενοποίηση το εσωτερικό αντικείµενο χρησιµοποιεί το IUnknown του εξωτερικού, ουτως ώστε το δικό του QueryInterface να υποστηρίζει και τις διασυνδέσεις του εξωτερικού (βλ. σχ. 8.4).Η διαδοχή στη ενοποίηση είναι απεριόριστη. IUnknown Eξωτερικό αντικείµενο IStream inner IUnknown... Read Write { } { } Eσωτερικό αντικείµενο Σχ. 8.4 Eνοποίηση. O ρόµος τη Microsoft: DCO M OLE και ActiveX 6

8.3 ιασυνδέσεις και Πολυµορφισµός Aλληλοδιαδοχή των διασυνδέσεων CO M µέσω του IUnknown,IDisplatch και IPersist. Eντούτοις οι αναφορές σ αυτές τις διασυνδέσεις δεν είναι επαρκώς σαφείς παρά µόνο µε τη χρήση του QueryInterface. O πολυµορφισµός στην COM βασίζεται σε σύνολα διασυνδέσεων, που κάθε τύπος αντικειµένου υποστηρίζει (βλ. σχ. 8.5).Ο έλεγχος επί του προκειµένου γίνεται µε κλήσεις QueryInterface για κάθε διασύνδεση που απαιτείται. 8.3.1 Kατηγορίες Tα προαναφερθέντα υπονοούν ένα µεγάλο αριθµό κλήσεων του QueryInterface, για επιβεβαίωση ότι οι απαιτούµενες διασυνδέσεις εφαρµόζονται. Για επαρκή υποστήριξη των συνόλων διασυνδέσεων το CO M ορίζει τις κατηγορίες. Aυτές έχουν την δική τους ταυτότητα αναφοράς CATID (category identifier)και περιέχουν σύνολα αναφορών διασυνδέσεων. Ένα αντικείµενο µπορεί να ανήκει σε πολλές κατηγορίες (βλ. σχ. 8.6). M ιά κατηγορία ορίζει όχι µόνο ποιες τουλαχιστον διασυνδέσεις υποστηρίζονται, αλλά και ποιες µεθόδοι σε αυτές τις διασυνδέσεις εφαρµόζονται. M ιά κατηγορία µπορεί να ορίσει όχι µόνο τις διασυνδέσεις µεταφοράς δεδοµένων ενός αντικειµένου, αλλά και τους συγκεκριµένους τύπους δεδοµένων ή µέσων. IOleCommandTarget IPrint IOleDocumentView IOleInPlaceActiveObject IOleInPlaceObject Σχ. 8.5 Oιτύποι CO M είναι σύνολα αναφορών διασυνδέσεων - οι υποτύποι είναι υπερσύνολα. O ρόµος τη Microsoft: DCO M OLE και ActiveX 7

Kατηγορίες Kατηγορία A IOne IThree ITwo IFive IFour Kατηγορία B Σχ. 6 Kατηγορίες CO M. 8.3.2 Εκδόσεις ιασυνδέσεων Μετά από κάθε έκδοση της µια διασύνδεση πρέπει να παραµένει αναλλοίωτη. Μια αναφορά διασύνδεσης IID (interface identifier) της CO M χρησιµεύει και για καθορισµό του αριθµού έκδοσης. Ως εκ τούτου ένα συστατικό µπορεί να χρησιµοποιήσει πολλές εκδόσεις της ίδιας διασύνδεσης σαν να ήταν διαφορετικές. O ρόµος τη Microsoft: DCO M OLE και ActiveX 8

8.4 ηµιουργία αντικειµένων CO M και βιβλιοθήκη CO M Πληροφορίες που επιτρέπουν την κλήση δηµιουργίας νέου αντικειµένου CO M: IID - δεν υπάρχει σαφής αντιστοιχία µιας υπηρεσίας προς µια µόνο διασύνδεση. Καθορισµός τάξεως µε CLSID (classidentifier) που µέσω βιβλιοθήκης CO M καλεί νέες περιπτώσεις αντικειµένων - CoCreateIntance που χρησιµοποιεί µια συγκεκριµένη τάξη (CLSID) και επιστρέφει το τύπο διασύνδεσης IID. Μπορεί επίσης να καθορίσει ποιοι εξυπηρετητές θα ήταν αποδεκτοί και από τον καταχωριτή συστήµατος (system registry)-µέσω Service Control Manager SC M, της CO M να εντοπίσει ένα εξυπηρετητή. Tο CO M συσχετίζει την νέα περίπτωση τάξης CLSID σε ένα συστατικό που την περιέχει. Αυτός ο καταχωριτής συστήµατος της CO M αντιστοιχεί στις αποθήκες εφαρµογών της CORBA. Kαταχωριτής συστήµατος:ποίοι εξυπηρετητές είναι διαθέσιµοι και ποιές τάξεις υποστηρίζουν. Είδη εξυπηρετητών: Inprocess servers - αντικείµενα που εκτελούν στις διεργασίες πελατών. Ενεργοποίηση µέσω DLL. Localservers - αντικείµενα σε ξεχωριστές διεργασίες στην ίδια µηχανή. Remoteservers - αντικείµενα σε διαφορετικές µηχανές. Ενεργοποίηση µέσω SC M. Ο εξυπηρετητής του COM περιέχει µια ή περισσότερες τάξεις για τις οποίες έχει δηµιουργούς αντικειµένων (factory objects).οι διασυνδέσεις αυτού είναι IClassFactory -IClassFactory2 όπου αναµένονται οδηγίες (βλ. σχ. 8.7). O ρόµος τη Microsoft: DCO M OLE και ActiveX 9

ηµιουργία αντικειµένων CO M και βιβλιοθήκη CO M Aρχικά γίνεται η καταχώριση των τάξεων ενός δηµιουργού αντικειµένου στο CO M και ακολούθως η διασύνδεση CoCreateInstance δηµιουργεί νέες περιπτώσεις. Για χρησιµοποίηση γενικότερων τάξεων CLSID η COM επιτρέπει σε µια τάξη να προσποιείται την άλλη µε τα χαρακτηριστικά τους στον καταχωριτή συστήµατος. Tάξη A Tάξη B IClassFactory IClassFactory2 IClassFactory IClassFactory2 Eξυπηρετητής CO M Σχ. 8.7 Eξυπηρετητής CO M µε δύο τάξεις, η κάθε µία µε δηµιουργό αντικείµενο. O ρόµος τη Microsoft: DCO M OLE και ActiveX 10

8.5 Εισαγωγή Aντικειµένων, Eµµονή, οµή Aποθήκευσης,Παρονοµασίες Ο πιό ευθύς τρόπος για ένα αντικείµενο να πάρει τις αρχικές τιµές του, είναι από µια πηγή πληροφοριών µέσω µιας οµάδας διασυνδέσεων, όπως IPersistFile και IPersistStream. Tα δεδοµένα φυλάττονται σε δοµηµένη αποθήκη του COM. Στο CO M οι αναφορές αντικειµένων µπορούν να γίνονται δια ονόµατος (moniker): Εύρεση και φόρτωση απαιτούµενου εξυπηρετητή. ηµιουργία και αναφορά αντικειµένων. Παροχή αρχικών τιµών. Tα αντικείµενα monikerπεριέχουν µια λογική οδό πρόσβασης σε κάποιο άλλο αντικείµενο που µπορεί να περιέχεται σε κάποια δοµηµένη αποθήκη. Tο CO M ορίζει τρόπο απ ευθείας αναφοράς σε έµµονα αντικείµενα δια µέσου ονόµατος. Οι τάξεις και τα αντικείµενα φυλάττονται ξεχωριστά. Κάθε φόρτωση του ιδίου αντικειµένου, παίρνει και διαφορετική ταυτότητα. Το ίδιο και αν η κλήση γίνεται µέσωmoniker. Aν δύο αντικείµενα µοιράζονται ένα τρίτο, τότε όταν φορτώνονται, το τρίτο πρέπει να φορτωθεί µόνο µια φορά, και η αναφορά του να σταλεί στα δύο πρώτα (βλ.σχ. 8.8). A B A Stream A Γ Γ A B Γ... B A Γ B Σχ. 8.8 ιατήρηση µοιράσµατος αντικειµένου. O ρόµος τη Microsoft: DCO M OLE και ActiveX 11

8.6 Από το CO M στο Kατανεµηµένο CO M (DCO M) Το DCO M χρησιµοποιεί τους αντιπροσώπους και προσαρµοστές ενός αντικειµένου στην επικοινωνία διεργασιών του πελάτη και εξυπηρετητή αντίστοιχα, όπως παρουσιάζονται στο COM. Στη επικοινωνία µεθόδων στην ίδια µηχανή, το CO M συσχετίζει όλους τους απλούς τύπους δεδοµένων σε δίαυλους από bytes. Aν στην επικοινωνία παρεµβάλλεται η αναφορά κάποιας διασύνδεσης, τότε αυτή πρέπει να καταχωρηθεί σε αναφορά αντικειµένου,που το CO M χρειάζεται για να ελέγξη αν υπάρχει το αντίστοιχο αντικείµενο-αντιπρόσωπος. Tο CO M έτσι επιλέγει την αντίστοιχη διασύνδεση και περνά αυτή την αναφορά αντί της αρχικής. (OID,IPID) Προσαρµοστής A A κλήση Αντιπρόσωπος A Επικοινωνία διεργασιών κλήση Προσαρµοστής A B Προσαρµοστής B Αντιπρόσωπος B ιεργασία πελάτη ιεργασία εξυπηρετητή Σχ. 8.9 Συνταξη και αποσύνταξη αναφορών διασυνδέσεων σε διεργασίες της ιδίας µηχανής. O ρόµος τη Microsoft: DCO M OLE και ActiveX 12

Από το CO M στο Kατανεµηµένο CO M (DCO M) Στο σχ. 8.9 ο πελάτης καλεί το αντικείµενο A. H καλούµενη µέθοδος παίρνει µία παράµετρο-αναφορά στο αντικείµενο B. Στη κλήση µεσολαβεί ένας τοπικός αντιπρόσωπος του αντικειµένου A. Ο αντιπρόσωπος A αποφασίζει ένα OID (object identifier) για το αντικείµενο B και ένα δείκτη διασύνδεσης IPID (interface pointerid) για τη µετάδοση της συγκεκριµένης διασύνδεσης. Tα OID και IPID στέλνονται µαζί µε το ID του πελάτη στον προσαρµοστή του εξυπηρετητή A που χρησιµοποιεί το OID για εντοπισµό του τοπικού προσαρµοστή B και το IPID για εντοπισµό της συγκεκριµένης διασύνδεσης. Mόνο τότε ο προσαρµοστής A θα εκδόσει την αρχική κλήση και θα δώση την αναφορά διασύνδεσης του τοπικού προσαρµοστή B στο αντικείµενο A. Στη DCO M Oι τύποι δεδοµένων διαφέρουν από µηχανή σε µηχανή. Οι αναφορές αντικειµένων χρειάζονται περισσότερες πληροφορίες από το OID και IPID. Υπάρχει στή αναφορά αντικειµένων και ένας ενδείκτης εξαγωγέα αντικειµένων O XI D (object exported id), ο οποίος συνδέει τα εξαχθέντα από ένα εξυπηρετητή αντικείµενα. H σύνδεση µε τον εξαγωγέα δίδει πληροφορίες για το απόµακρο αντικείµενο OXID. Eπιπρόσθετα από τη σύνδεση αντικειµένων COM σε διαφορετικές µηχανές υπάρχουν διαδικασίες ασφάλειας και διάγνωσης βλάβης. H ασφάλεια ιεραρχείται σε: Μηχανές. Εξυπηρετητές CO M. ιασυνδέσεις CO M. Oι προσβάσεις ελέγχονται απο τό Access Control List ACL και η επαλήθευση µπορεί να γίνει ανά: Σύνδεση. Μήνυµα. έσµη πληροφοριών. O ρόµος τη Microsoft: DCO M OLE και ActiveX 13

8.7 Mετα-πληροφορίες και Aυτοµατισµοί MI DL (MicrosoftIDL) µεταγλωττιστής: απαραίτητος για χρήση CO M IDLπεριγραφή συνδέσεων και τάξεων του συστήµατος. Ο MIDL µεταγλωττιστής υποκαθιστά τις αντικειµενοστρεφείς γλώσσες στη δηµιουργία αντιπροσώπων, προσαρµοστών και βιβλιοθηκών τύπων διασυνδέσεων και τάξεων. H πρόσβαση σε τέτοια βιβλιοθήκη γίνεται µέσω CLSID - πληροφορίες τύπων τάξεων από τον καταχωριτή CO M. Tο διάβασµα τέτοιας βιβλιοθήκης γίνεται µέσω της διασύνδεσης ITypeLib. H απόκτηση πληροφοριών για τον τύπο κάθε στοιχείου της βιβλιοθήκης γίνεται µέσω της διασύνδεσης ITypeInfo. Στο πλαίσιο του CO M ο αυτοµατισµός επιτυγχάνεται µέσω προγραµµατισµού διασυνδέσεων και βιβλιοθηκών τύπων (type libraries). 8.8 Άλλες Yπηρεσίες του CO M Οµοιόµορφη µεταφορά δεδοµένων. Aπόσπαση διασυνδέσεων και διπλές διασυνδέσεις. Εξαχθέντες διασυνδέσεις και συνδεόµενα αντικείµενα. Οµοιόµορφη µεταφορά δεδοµένων. Με την εφαρµογή της διασύνδεσης IDataObject κάθε αντικείµενο (µεταφοράς) δεδοµένων µπορεί να παίρνει µέρος σε πίνακες επιλογών, µεταφορές σε αρχεία και λειτουργίες διόδων. Απαραίτητη είναι η προσυµφωνία στο σχήµα των δεδοµένων και το µέσο µεταφοράς. Άλλες διασυνδέσεις υποστηρίζουν τη σύνδεση αντικειµένων εκεί όπου ο παραλήπτης πρέπει να ειδοποιηθεί για νέους αποστολείς. O ρόµος τη Microsoft: DCO M OLE και ActiveX 14

Άλλες Yπηρεσίες του CO M Αποσπασµένες διασυνδέσεις και διπλές διασυνδέσεις. Οι αποσπασµένες διασυνδέσεις έχουν καθορισµένο αριθµό µεθόδων από την διασύνδεση IDispatch. Επίσης συνδυάζουν όλες τις µεθόδους της διασύνδεσης τους στη µέθοδο Invoke που µε µεταβλητό τύπο καταχωρίσεων συνδυάζει όλες τις πιθανές παραµέτρους σε µία.ο καταχωριτής αυτός είναι αυτοπεριγραφόµενος δηλ.περιέχει τύπο και τιµή.κάθε µέθοδος καλείται µέσω του DISPID (dispatch identifier). H δοµή του IDispatch είναι: Interface IDispatch:Iunknown{ HRESULT GetTypeInfoCount([out]bool available); HRESULT GetTypeInfo (unsighed int itinfo, [out] ItypeInfo typeinfo); HRESULT GetIDsOfNames([in] names[],[out]dispid dispid[]); HRESULT Invoke ([in] DISP dispid,[in] DISPPARAMS dispparams,[out]variant result,[out]excpinfo einfo,[out]int argerr); } Πλεονέκτηµα: Οι αποσπασµένες διασυνδέσεις µπορούν να χρησιµοποιηθούν σε γενικούς µηχανισµούς προώθησης όπως µεταφραστές τη Visual Basic. Έτσι µπορεί να καλεί οποιεσδήποτε λειτουργίες χωρίς την ανάγκη µεταγλώττισης των διασυνδέσεων τους. M ειονεκτήµατα: Μειωµένη απόδοση. Περιορισµοί στις αποσπασµένες µεθόδους σύµφωνα µε το σύνολο των τύπων VARIANT και σε µια επιστρεφόµενη τιµή. Πολυπλοκότητα στην εφαρµογή κάθε διασύνδεσης. Στις διπλές διασυνδέσεις µεσολαβεί η µεταγλώττιση των πελατών ως προς την διασύνδεση και εποµένως η απ ευθείας κλήσεις µεθόδων, µε αυξηµένη απόδοση. O ρόµος τη Microsoft: DCO M OLE και ActiveX 15

Άλλες Yπηρεσίες του CO M Πλεονέκτηµα: Οι αποσπασµένες διασυνδέσεις µπορούν να χρησιµοποιηθούν σε γενικούς µηχανισµούς προώθησης όπως µεταφραστές της Visual Basic. Έτσι µπορεί να καλεί οποιεσδήποτε λειτουργίες χωρίς την ανάγκη µεταγλώττισης των διασυνδέσεών τους. M ειονεκτήµατα: Μειωµένη απόδοση. Περιορισµοί στις αποσπασµένες µεθόδους σύµφωνα µε το σύνολο των τύπων VARIANT και σε µια επιστρεφόµενη τιµή. Πολυπλοκότητα στην εφαρµογή κάθε διασύνδεσης. Στις διπλές διασυνδέσεις µεσολαβεί η µεταγλώττιση των πελατών ως προς την διασύνδεση και εποµένως η απ ευθείας κλήσεις µεθόδων µε αυξηµένη απόδοση. Εξαχθέντες διασυνδέσεις και συνδεόµενα αντικείµενα. Μπορεί να γίνει χρήση µιας εξαχθείσας διασύνδεσης µόνο απο άντικείµενα COM που είναι συνδεδεµένα µε τα αντικείµενα που το παρέχουν. Πλήρως συνδεόµενο αντικείµενο είναι ένα αντικείµενο CO M που εξάγει διασυνδέσεις.eπίσης απαιτείται η εφαρµογή της διασύνδεσης IConnectionPointContainer που βρίσκει και καταµετρά σηµεία σύνδεσης των συνδεόµενων αντικειµένων. Για κάθε τέτοια διασύνδεση πρέπει να υπάρχει σηµείο σύνδεσης, που εκτός της κλήσης στην εξαχθείσα διασύνδεση, εφαρµόζει τη διασύνδεση IConnectionPoint που καθιστά (µε αναφορά άλλου αντικειµένου), καταµετρά και τερµατίζει συνδέσεις. Kάθε συνδεόµενο αντικείµενο ανιχνεύει στα σηµεία την αντίστοιχη διασύνδεση και ενεργοποιεί την απαιτούµενη µέθοδο. Tα συνδεόµενα αντικείµενα παρέχουν ένα οµοιόµορφο πρότυπο διάδοσης αλλαγών. Καθώς εξαχθέντες και εισαχθέντες διασυνδέσεις ταιριάζουν, η διάδοση γίνεται µε κανονικές ενεργοποιήσεις µεθόδων. O ρόµος τη Microsoft: DCO M OLE και ActiveX 16

8.9 Σύνθετα Kείµενα και Σύνδεση -Eνσωµάτωση Aντικειµένων (OLE) Tο OLE αποτελεί καθιερωµένο λογισµικό διασύνδεσης αντικειµένων σύνθετου κειµένου της Microsof, και παρέχει τεχνολογία επί των υπηρεσιών του COM µε επικεντρωµένες εφαρµογές διαδοχής σε ένα κειµενοστρεφές πρότυπο. Αυτό οδηγεί στη δηµιουργία αντικειµένων µε τη ρύθµιση του OLE (αντικείµενα ActiveX). Εντούτοις το OLE υποστηρίζει και αυτεξούσιες εφαρµογές µε διαφορετικό βαθµό ενσωµάτωσης. Γι αυτό και οι τεχνολογίες στο OLE καταλήγουν υποβέλτιστες η αχρείαστα πολύπλοκες εν συγκρίση µε το OpenDoc. ιάκριση µεταξύ Υποδοχών ξένου κειµένου - δέχονται µέρη κειµένου από εξυπηρετητές. Eξυπηρετητών κειµένου - κατέχουν, εκθέτουν και τροποποιούν κείµενο. Πολλοί υποδοχείς κειµένου είναι επίσης εξυπηρετητές κειµένου που υποστηρίζουν ξένα αλλά και τοπικά µέρη. Οι εφαρµογές της Microsoft s Word, Excel, Powerpoint, αποτελούν τέτοιο παράδειγµα. Η ικανότητα να εκδίδονται ενσωµατωµένα αντικείµενα επι τόπου στη τρέχουσα εφαρµογή (όπως Word κείµενα ενώ τρέχουµε Excel),καλείται in- place editing. Αυτά γίνονται σε συµφωνία απλού υποδοχέα και εξυπηρετητή. Επιπλέον πρέπει να υπάρχει συµφωνία στα άλλα θέµατα της διασύνδεσης του χρήστη. O ρόµος τη Microsoft: DCO M OLE και ActiveX 17

8.10 Υποδοχείς και Eξυπηρετητές OLE H προαναφερθείσα αλληλεπίδραση είναι αρκετά περίπλοκη, για να υποστηριχθεί µια ολοκληρωµένη κειµενοστρεφής διασύνδεση. Στη περίπτωση της OLE η υποστήριξη αυτεξούσιων εφαρµογών µε ολοκλήρωση OLE περιπλέκει ακόµη περισσότερο τα πράγµατα. Η OLE πρέπει να παράσχει ολοκλήρωση κειµένου για όλα τα είδη εξυπηρετητή: Eνδοδιεργασιών. Tοπικός όπου χρειάζεται αντιπρόσωπος εξυπηρετητή (χειριστής διαεπεξεργασιών) που να εκτελεί τη διεργασία του υποδοχέα. Απόµακρος που εξυπηρετείται από τις υπηρεσίες του DCO M. Η βάση της αλληλεπίδρασης των υποδοχέων και εξυπηρετητών κειµένου, ορίζεται από δύο διασυνδέσεις του υποδοχέα σαν πελάτη και επτά του εξυπηρετητή µε αντικείµενο περιεχοµένων. Η αλληλεπίδραση µεταξύ του χειριστή διαεπεξεργασιών σε ένα υποδοχέα µε αντικείµενο περιεχοµένων, και ένα τοπικό εξυπηρετητή. Ο χειριστής διαεπεξεργασιών υποστηρίζει ξεχωριστή τάξη µε δικό της δηµιουργό αντικειµένων (βλ. σχ. 8.10). O ρόµος τη Microsoft: DCO M OLE και ActiveX 18

Υποδοχείς και Eξυπηρετητές OLE Aντικείµενο πελάτη IOleClientSite IAdviceSink Aντικείµενο Yποδοχέα Aντικείµενο εξυπηρετητή IOleObject IDataObject IOleObject IDataObject IPersitStorage IPersistStorage IRunnableObject IOleCache2 IOleCacheControl IViewObject2 IAdviceSink IClassFactory2 IClassFactory2 IClassFactory2 Yποδοχέας Xειριστής διεργασιών Tοπικός εξυπηρετητής Σχ. 8.10 Yποδοχέας κειµένου και διασυνδέσεις εξυπηρετητή στη OLE. O ρόµος τη Microsoft: DCO M OLE και ActiveX 19

8.11 Eλεγχος: Aπό τη Visual Basic µέσω OLE στη ActiveX Στο πρότυπο της VisualBasic Controls(VBX) η οδήγηση του συστήµατος ενσωµατώνεται σε συνδετικούς τύπους που επιτρέπουν τη σύναψη κώδικα που επιτρέπει την επικοινωνία µεθόδων ελέγχου. Οι εφαρµογές συναρµολογούνται από τη σύνθεση µεθόδων ελέγχου σε τύπους, αν και ο τελικός κώδικας είναι και πάλι σε µορφή προγράµµατος. Οι εφαρµογές VBX εκτείνονται από απλές µεθόδους ελέγχου µέχρι µικροεφαρµογές. Μειονεκτήµατα: Στενή δέσµευση µε τη Visual Basic. Περιοριστική µορφή τύπων της Visual Basic. Χρησιµοποιώντας µεθόδους OLE control(oc X),αποκτούµε πρόσβαση σε υπηρεσίες COM. Προϋπόθεση είναι το CO M αντικείµενο να εφαρµόσει ένα µεγάλο αριθµό διασυνδέσεων (βλ. σχ. 8.11). Κάθε µέθοδος OCX πέρα από την σηµαντική λειτουργικότητα, έχει πολύ µεγάλο βάρος διασυνδέσεων. Από το OCX προήλθε το ActiveX µε επιπλέον συνθήκες Πρέπει να εφαρµοστεί από αυτοκαταχωρούµενο εξυπηρετητή που έχει την δυνατότητα να καταχωρεί τις τάξεις του στον καταχωριτή CO M. Οι µεθόδοι ελέγχου παραµένουν αντικείµενα COM που υποστηρίζονται από ειδικό εξυπηρετητή. Στον έλεγχο υπάρχει ένας µεγάλος αριθµός προαιρετικών διεργασιών. Οι διασυνδέσεις είναι κανονικές διασυνδέσεις COM αλλά και εξαχθέντες. Kαθώς αυτές αποτελούν µηχανισµό ειδοποίησης αλλαγών, υποδοµούν ένα σύστηµα πηγών συµβάντων που σηµατοδοτούν αλλαγές. Λόγω της αδυναµίας παροχής, εκ µέρους του υποδοχέα, διασυνδέσεων σε όλες τις µεθόδους ελέγχου που έχει, υπάρχει η ανάγκη χρησιµοποίησης εξαχθέντων αποσπασµένων διασυνδέσεων από βιβλιοθήκη τύπων ελέγχου(idispatch). Οι ιδιότητες των υποδοχέων, ως αναφορά τις µεθόδους ελέγχου πού διαθέτουν, ρυθµίζουν τη συµπεριφορά και την εµφάνιση και η ActiveX καθορίζει διασυνδέσεις για χειρισµό των ιδιοτήτων αυτών. O ρόµος τη Microsoft: DCO M OLE και ActiveX 20

Έλεγχος: Aπό τη Visual Basic µέσω OLE στη ActiveX IOleInPlaceActiveObject IOleInPlaceObject IOleObject IDataObject IviewObject2 IRunnableObject IOleCache2 IPersistStorage IPersistStreamInit ISpecifyPropertyPages IconnectionPointContainer IConnectionPoint IProvideClassInfo2 IDispatch IOleControl Σχ. 8.11 Yποχρεωτικές διασυνδέσεις για το πρότυπο συνδυασµού αντικειµένων OLE. O ρόµος τη Microsoft: DCO M OLE και ActiveX 21

8.12 Υπηρεσίες Ο εξυπηρετητής διεκπεραιώσεων της Microsoft, για εφαρµογές βασισµένες στο CO M. ιατηρεί διεργασίες για χειρισµό κλήσεων από αντικείµενα COM. Kατέχει ευρετήριο συστατικών σε διεργασίες εξυπηρετητή - κατάταξη συστατικών. Παρέχει στοιχεία για την δηµιουργία και τερµατισµό των συνδέσεων. Αναλαµβάνει την διαχείρηση πολλαπλών πηγών πληροφοριών, όπως πολλαπλές βάσεις δεδοµένων. εν έχει καθόλου υποστήριξη σφαλµάτων πέρα από τις ιδιότητες των διεκπεραιώσεων. Καθόλου εξισορρόπιση φόρτου εργασίας στις διαθέσιµες µηχανές. Παρέχει υποστήριξη για τις βάσεις δεδοµένων: Microsoft s SQL εξυπηρετητής και βάσεις δεδοµένων µε διασυνδέσεις ODBC. IBM s SN A LU6.2. TIP. XA. Στα συστατικά CO M προσδίδονται δυνατότητες για εκτέλεση µιας διεκπεραίωσης. Tότε, τη στιγµή της δηµιουργίας του συστατικού αντικειµένου, ο εξυπηρετητής διεκπεραιώσεων επεµβαίνει και προσθέτει εντολές στις λειτουργίες του συστατικού µε περιορισµούς του COM. Με συναθροίσµατα COM προσθέτει τις απαιτούµενες διασυνδέσεις σε αντικείµενα. Ο εξυπηρετητής αυτόµατα εντοπίζει αναφορές σε άλλα αντικείµενα COM από συστατικό διεκπεραίωσης και εκτείνει τον χειρισµό της διεκπεραίωσης σ αυτά. Για συστατικά που χρειάζονται απ ευθείας γνώση των διεκπεραιώσεων υπάρχει η βιβλιοθήκη GetOblectContext για την πρόσβαση της οποίας χρησιµοποιείται η διασύνδεση IObjectContext. COM+ Επέκταση του CO M µε ελαφρές διεργασίες όπως απαιτείται από τη Java virtual machine. εν αντικαθιστά το DCOM. Η υποδοµή κατά την εκτέλεση µπορεί να επεκταθεί από τρίτα συστατικά. Πλήρης συµβατότητα µε Java. Ασφάλεια και διεκπεραιώσεις ειδικά για CO M+. O ρόµος τη Microsoft: DCO M OLE και ActiveX 22