Εισαγωγή στην Τεχνολογία JXTA

Σχετικά έγγραφα
Εκπαιδευτικά Περιβάλλοντα Διαδικτύου

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

Επίπεδο Δικτύου: Διαδικτύωση

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Επίπεδο δικτύου IP Forwading κτλ

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

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

Βασίλειος Κοντογιάννης ΠΕ19

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Ασφάλεια Υπολογιστικών Συστημάτων

Υποστήριξη Κινητικότητας στο Internet. Σαράντης Πασκαλής Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών

Βιοϊατρική τεχνολογία

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

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

Συστήματα Διαχείρισης Κινδύνου στα Ασύρματα Δίκτυα. Επιμέλεια: Βασίλης Παλιούρας MSc Information Security, MCSA, CCDA, CCA

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

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Ι. Σημειώσεις Θεωρίας

Α5.1 Εισαγωγή στα Δίκτυα. Α Λυκείου

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

ΔΙΚΤΥΑ (15-17) Π. Φουληράς

Συστήματα Πολυμέσων. Ενότητα 17: Διανομή Πολυμέσων - Πρωτόκολλα πραγματικού χρόνου. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής

Επαναληπτικές Ασκήσεις Μαθήματος

Δίκτυα Η/Υ Θεωρία. Διάλεξη 2η

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας. Υπηρεσίες Internet. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα θ

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Περιεχόμενα. Πρόλογος... xiii

Περίληψη Λαμπρόπουλος

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services

ιαδίκτυα & Ενδοδίκτυα Η/Υ

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης

Δίκτυα Υπολογιστών I

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

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ

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

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων.

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 9: MPLS

Network Address Translation (NAT)

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

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

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου

ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή στα πρωτόκολλα TCP/IP και το INTERNET 2.1. Μέσα μετάδοσης, φυσικές διευθύνσεις

Ανδρέας Παπαζώης. Τμ. Διοίκησης Επιχειρήσεων

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

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

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας

Βασίλειος Κοντογιάννης ΠΕ19

Δίκτυα Θεωρία

ΔΙΚΤΥΑ (13) Π. Φουληράς

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 4: Επίπεδο 3 το πρωτόκολλο IP

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

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

Κεφάλαιο 2. Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον

Τεχνολογίες ιαδικτύου

Σκοπιµότητα των firewalls

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

ίκτυα - Internet Μάθηµα 3ο Ενότητα Β: Το Πρότυπο ΤCP/IP Eισαγωγή - Επικοινωνία µεταξύ δύο Υπολογιστών Παρασκευή 10 NOE 2006 ιευθύνσεις

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών;

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

Εργαστήριο «Δίκτυα Υπολογιστών Ι»

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Μετάδοσης Δεδομένων. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

Εισαγωγή στο πως λειτουργεί το διαδίκτυο

2η Προγραµµατιστική Εργασία

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

Υπηρεσίες Ιστού (Web Services) Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

1.2.1 Το μοντέλο αναφοράς για τη Διασύνδεση Ανοικτών Συστημάτων (OSI) 1 / 19

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Θέματα διπλωματικών εργασιών σε. Συστοιχίες παράλληλης εξυηρέτησης εφαρμογών Διαδικτύου

Ασφάλεια Στο Ηλεκτρονικό Εμπόριο. Λάζος Αλέξανδρος Α.Μ. 3530

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

Δίκτυα Επικοινωνιών ΙΙ: Δρομολόγηση στο Διαδίκτυο, RIP, OSPF

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Συσκευές Τηλεπικοινωνιών και Δικτύωσης. Επικοινωνίες Δεδομένων Μάθημα 9 ο

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

Το ηλεκτρονικό ταχυδρομείο: Aφορά στην αποστολή και λήψη μηνυμάτων με συγκεκριμένη δομή και με συγκεκριμένα πρωτόκολλα. Ο αποστολέας και ο παραλήπτης

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Εξοικείωση με τις εντολές ipconfig και ping

T.E.I. ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

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

Δροµολόγηση (Routing)

ΘΕΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ 2008 / 2009

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Μοντέλο OSI 1.8. Κεφάλαιο 1. ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : Τάξη. : Β Τομέα Πληροφορικής Μάθημα. : Δίκτυα Υπολογιστών I Διδάσκων

Τεχνολογία Πολυμέσων. Ενότητα # 16: Πολυεκπομπή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κάντε κλικ για έναρξη

ΠΥΡΗΝΑΣ ΕΦΑΡΜΟΓΗΣ Γενικά Συμμόρφωση με πρότυπα (PACS Core)

Επίσηµη Εφηµερίδα της Ευρωπαϊκής Ένωσης. (Μη νομοθετικές πράξεις) ΚΑΝΟΝΙΣΜΟΙ

Transcript:

Εισαγωγή στην Τεχνολογία JXTA Γεώργιος Αθανασόπουλος ΠΜΣ 513 Τεχνολογίες Ηλεκτρονικού Εμπορίου Εαρινό Εξάμηνο 2015

ΕΙΣΑΓΩΓΗ

Εισαγωγή Γενικά JXTA Juxtapose = Αντιπαραβάλλω Ένα σύνολο γενικευμένων πρωτοκόλλων ομότιμου-προς-ομότιμο (peer-topeer) που επιτρέπουν σε οποιαδήποτε συσκευή να επικοινωνεί και να συνεργάζεται με άλλες συσκευές ως ομότιμος κόμβος Προσφέρει μια αφαιρετική P2P προσέγγιση των φυσικών δικτύων με σκοπό τη διαλειτουργικότητα Διαθέσιμες υλοποιήσεις των πρωτοκόλλων σε διάφορες γλώσσες προγραμματισμού (Java SE/EE/ME, αλλά και σε C)

Εισαγωγή Στόχοι της Τεχνολογίας JXTA Παροχή μιας πλατφόρμας με τις βασικές λειτουργίες, οι οποίες είναι απαραίτητες σε ένα τυπικό P2P δίκτυο Διαλειτουργικότητα (interoperability) και υπηρεσιοστρέφεια (service orientation) Εντοπισμός και επικοινωνία μεταξύ ομότιμων κόμβων με τη χρήση P2P υπηρεσιών Ανεξαρτησία από γλώσσες προγραμματισμού (Java, C, ), πρωτόκολλα μεταφοράς (HTTP, TCP, ), αλλά και πλατφόρμες εκτέλεσης (Unix, MS Windows, )

Εισαγωγή Εφαρμογές της Τεχνολογίας JXTA Μερικά παραδείγματα: Δυναμική αναζήτηση κόμβων στο δίκτυο, με δυνατότητες προσπέλασης firewalls και NATs Εύκολος διαμοιρασμός πόρων με οποιονδήποτε στα όρια του δικτύου Αναζήτηση περιεχομένου Δημιουργία ομάδων κόμβων (peer groups) που προσφέρουν μια ή περισσότερες υπηρεσίες από κοινού Απομακρυσμένη παρακολούθηση της δραστηριότητας των κόμβων ενός δικτύου Ασφαλής επικοινωνία μεταξύ των κόμβων του δικτύου

Εισαγωγή Διάδοση και Χρήση Jxtadoop Συστήματα βασισμένα στην τεχνολογία JXTA Πηγή: Wikipedia (http://en.wikipedia.org/wiki/jxta)

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΛΟΓΙΣΜΙΚΟΥ & ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Αρχιτεκτονικά Επίπεδα Λογισμικού Physical Devices

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Βασικά Χαρακτηριστικά Χρήση XML εγγράφων (advertisements) για την περιγραφή όλων των δικτυακών πόρων Ανεξαρτησία από κεντρικές naming/addressing authorities, όπως το DNS, με τη χρήση αφαιρετικών δομών και εννοιών Ενιαίο σχήμα διευθυνσιοδότησης των ομότιμων κόμβων, με τη χρήση IDs εκφρασμένων ως URNs (Uniform Resource Names) Αποκεντροποιημένη αναζήτηση βασισμένη σε DHT (Distributed Hash Table) για τη δημιουργία ευρετηρίων

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Peers Οποιαδήποτε δικτυωμένη συσκευή που υλοποιεί ένα ή περισσότερα πρωτόκολλα JXTA (αισθητήρες, κινητά τηλέφωνα, Η/Υ, διακομιστές,...) Κάθε peer λειτουργεί ανεξάρτητα από τους υπόλοιπους peers του δικτύου και αλληλεπιδρά με αυτούς ασύγχρονα Κάθε peer ταυτοποιείται στο δίκτυο με ένα μοναδικό peer ID

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Είδη Peers Minimal Edge Peer Υποστηρίζει αποστολή και λήψη μηνυμάτων Χρησιμοποιείται συνήθως για συσκευές με περιορισμένες δυνατότητες (π.χ. κινητά τηλέφωνα) Full-featured Edge Peer Υποστηρίζει επιπλέον την τοπική αποθήκευση πόρων και έτσι συμμετέχει στη διαδικασία αναζήτησής τους Σε ένα τυπικό δίκτυο, οι περισσότεροι κόμβοι είναι αυτού του είδους Rendezvous Peer Υποστηρίζει επιπλέον τη δρομολόγηση και διάδοση μηνυμάτων Διατηρεί ένα topology map με άλλους παρόμοιους κόμβους υποδομής, το οποίο χρησιμοποιείται για την ορθή πραγματοποίηση των παραπάνω λειτουργιών Κάθε ομάδα κόμβων πρέπει να περιλαμβάνει τουλάχιστον ένα rendezvous peer Relay Peer Υποστηρίζει όλες τις λειτουργίες του full-featured edge peer και επιπλέον χρησιμοποιείται ως ενδιάμεσος, για την επικοινωνία μεταξύ κόμβων που βρίσκονται από τις δύο πλευρές firewalls ή NATs Super Peer: Ενσωματώνει όλες τις παραπάνω λειτουργίες!

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Peer Groups Μια ομάδα από peers που έχουν συμφωνήσει στη χρήση ενός κοινού συνόλου υπηρεσιών Ένα peer group ταυτοποιείται στο δίκτυο με ένα μοναδικό peer group ID Τα peer groups δημιουργούν ιεραρχίες Οι peers μπορούν να ανήκουν ταυτόχρονα σε περισσότερα από ένα peer groups World Peer Group και Net Peer Group: προκαθορισμένα peer groups στα οποία ανήκουν εξ ορισμού όλοι οι peers

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Χρησιμότητα των Peer Groups Ασφάλεια Επιβολή συγκεκριμένων πολιτικών ασφαλείας Περιορισμός πρόσβασης στους διαμοιραζόμενους πόρους Ελεγχόμενη Εμβέλεια Διαίρεση του δικτύου σε περιοχές Προσδιορισμός τοπικών, εξειδικευμένων περιοχών Ορισμός εμβέλειας αναζητήσεων Παρακολούθηση (monitoring) τμημάτων του δικτύου Έλεγχος αν οι peers είναι online, ενδοσκόπηση κίνησης, κτλ.

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Ιεραρχική σχέση των Peer Groups default groups child-of Peer Group B World Peer Group child-of Network Peer Group child-of Peer Group A child-of Peer Group C Κάθε group έχει ακριβώς έναν πατέρα Οι αναζητήσεις πραγματοποιούνται μέσα στα όρια καθενός group Το advertisement καθενός group δημοσιεύεται στο ίδιο, καθώς και στον πατέρα του Ωστόσο, ένας κόμβος μπορεί να ανήκει σε περισσότερα από ένα groups

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Παράδειγμα Πολλαπλών Peer Groups Κόμβοι αποθηκών με βιβλία Κόμβοι αποθηκών με ηλεκτρονικές συσκευές A B Κόμβοι αποθηκών με ρούχα P2P Εφαρμογή για τη σύνδεση των αποθηκών ενός Ηλεκτρονικού Καταστήματος

Peer services Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Network Services Διαθέσιμες μόνο στον peer που τις δημοσιεύει Είναι πιθανό να διατίθενται πολλαπλά στιγμιότυπα της ίδιας peer service σε διαφορετικούς peers, αλλά το κάθε στιγμιότυπο έχει το δικό του advertisement Peer Group services Αποτελούν μια συλλογή από στιγμιότυπα μιας υπηρεσίας που προσφέρεται από όλους τους peers ενός peer group Δημοσιεύονται ως μέρος του peer group advertisement

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Προκαθορισμένα Peer Group Services Discovery service Χρησιμοποιείται για την αναζήτηση πόρων στο peer group (π.χ. peers, groups, pipes, services) Membership service Χρησιμοποιείται για την αποδοχή ή απόρριψη αιτήσεων για πρόσβαση στο peer group Προκειμένου να συνδεθούν οι peers πρέπει πρώτα να εντοπίσουν έναν peer που είναι ήδη μέλος Access service Αξιολογεί αιτήσεις που πραγματοποιόυνται μεταξύ των peers Pipe service Χρησιμοποιείται για τη δημιουργία και διαχείριση συνδέσεων με pipes μεταξύ των μελών του peer group Resolver service Χρησιμοποιείται για την αποστολή επερωτήσεων γενικού σκοπού Οι peers μπορούν να ορίσουν και να ανταλλάσσουν επερωτήσεις για εύρεση οποιασδήποτε πληροφορίας Monitoring service Επιτρέπει σ' έναν peer να ελέγχει άλλα μέλη στο peer group

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Τύποι Modules Module Class Χρησιμοποιείται για τη διαφήμιση της ύπαρξης μιας συμπεριφοράς Αναπαριστά την αναμενόμενη συμπεριφορά και το αναμενόμενο binding για την υποστήριξη του module Ταυτοποιείται από ένα μοναδικό ModuleClassID Module Specification Χρησιμοποιείται για την πρόσβαση ή κλήση ενός module Παρέχει τη λειτουργικότητα που υποννοείται από ένα module class Ταυτοποιείται από ένα μοναδικό ModuleSpecID Module Implementation Υλοποιεί ένα συγκεκριμένο module specification Περιλαμβάνει το ModuleSpecID του σχετικού specification

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Συσχετίσεις μεταξύ των Modules «abstract» Functionality implies provides «JXTA» Module Class «JXTA» Module Specification 1 0..* 1 0..* implements «JXTA» Module Implementation

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Pipes Μηχανισμός για τη μεταφορά μηνυμάτων και την επικοινωνία μεταξύ των peers σε ένα JXTA P2P δίκτυο Βασικά χαρακτηριστικά του μηχανισμού Γενικευμένος Ασύγχρονος Μονής κατεύθυνσης Μή αξιόπιστος Κάθε pipe έχει δύο endpoints Input pipe: το άκρο με το οποίο συνδέεται ο κόμβος που λαμβάνει Output pipe: το άκρο με το οποίο συνδέεται ο κόμβος που στέλνει

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Point-to-point Pipes Βασικοί Τύποι Pipes Secure Unicast Pipes: Επεκτείνουν τα point-to-point pipes προκειμένου να προσφέρουν ένα ασφαλές (secure) και αξιόπιστο (reliable) κανάλι επικοινωνίας μεταξύ δύο κόμβων Propagate Pipes

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Επιπρόσθετοι Μηχανισμοί Επικοινωνίας JXTA Sockets JXTA Bi-directional Pipes

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Messages Αντικείμενα που στέλνονται μεταξύ των peers Βασική μονάδα ανταλλαγής δεδομένων Ένα μήνυμα είναι μια ταξινομημένη ακολουθία ζευγών <όνομα,τιμή> Δύο αναπαραστάσεις: XML και δυαδική Τα πρωτόκολλα του JXTA έχουν οριστεί ως ένα σύνολο μηνυμάτων που ανταλλάσσουν μεταξύ τους οι peers

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Advertisements Αναπαριστούν όλα τα είδη πόρων σ' ένα δίκτυο JXTA (peers, peer groups, pipes, services,...) Ανεξάρτητα από γλώσσες προγραμματισμού, αναπαριστώνται ως XML έγγραφα Τύποι Advertisements Peer Advertisement Peer Group Advertisement Pipe Advertisement Peer Info Advertisement Module Class Advertisement Module Spec Advertisement Module Impl Advertisement Rendezvous Advertisement

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Παράδειγμα Pipe Advertisement

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες Security Μέσω κατάλληλων επεκτάσεων, η τεχνολογία JXTA μπορεί να υποστηρίξει Εμπιστευτικότητα (Confidentiality) Τα περιεχόμενα ενός μηνύματος δε φανερώνονται σε μη εξουσιοδοτημένα άτομα Πιστοποίηση (Authentication) Ο αποστολέας είναι αυτός που ισχυρίζεται πως είναι Εξουσιοδότηση (Authorization) Ο αποστολέας είναι εξουσιοδοτημένος να στείλει ένα μήνυμα Ακεραιότητα Δεδομένων (Data Integrity) Το μήνυμα δεν υπόκειται σε αλλαγές, είτε κατά λάθος είτε εσκεμμένα, κατά τη μετάδοσή του Αναιρεσιμότητα (Refutability) Το μήνυμα μεταδόθηκε από αναγνωρισμένο αποστολέα και δεν αποτελεί αντίτυπο ενός προηγούμενου μηνύματος

Αρχιτεκτονική Λογισμικού και Βασικές Έννοιες IDs urn:jxta:uuid-59616261646162614a78746150325033f3bc76ff13c2414cbc0ab663666da53903 Ταυτοποιούν με μοναδικό τρόπο τις διάφορες οντότητες ενός δίκτυου JXTA Αποτελούν κανονικό τρόπο αναφοράς προς τις οντότητες αυτές Σε ένα δίκτυο JXTA, τα εξής είδη οντοτήτων ταυτοποιούνται με IDs Peers Peer groups Pipes Contents Module classes Module specifications

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΔΙΚΤΥΟΥ

Αρχιτεκτονική Δικτύου Οργάνωση Δικτύου Η τεχνολογία JXTA δεν υπαγορεύει τον τρόπο οργάνωσης του P2P δικτύου Ωστόσο, συνήθως χρησιμοποιούνται τέσσερα είδη ομότιμων κόμβων Minimal edge peers Full-featured edge peers Rendezvous peers Relay peers

Αρχιτεκτονική Δικτύου Shared Resource Distributed Index (SRDI) Χρησιμοποιείται για τη διάδοση (propagation) μηνυμάτων μέσα σε ένα δίκτυο JXTA Βασικές αρχές λειτουργίας Οι rendezvous peers διατηρούν ευρετήρια των advertisements που δημοσιεύονται από τους edge peers Όταν ένας edge peer δημοσιεύει ένα advertisement, στέλνει στους διαθέσιμους rendezvous peers πληροφορίες για την ευρετηριοποίηση του advertisement Κάθε rendezvous peer διατηρεί μια λίστα με τους rendezvous peers που γνωρίζει, στους οποίους διαδίδει τις πληροφορίες ευρετηριοποίησης βάσει μιας προκαθορισμένης συνάρτησης κατακερματισμού (hash function)

Αρχιτεκτονική Δικτύου Λειτουργία SRDI

Αρχιτεκτονική Δικτύου Παράδειγμα Χρήσης SRDI Διάδοση επερωτήσεων μέσω Rendezvous Peers

Αρχιτεκτονική Δικτύου Επικοινωνία μέσω Firewalls και NAT Οι ακόλουθες συνθήκες πρέπει να ισχύουν: Τουλάχιστον ένας peer εντός του firewall γνωρίζει τουλάχιστον έναν peer εκτός του firewall Τόσο ο peer εντός του firewall όσο και ο peer εκτός του firewall υποστηρίζουν από κοινού το πρωτόκολλο HTTP ή το πρωτόκολλο TCP To firewall επιτρέπει την επίτευξη συνδέσεων HTTP ή TCP Επιπλέον, απαιτείται η χρήση relay peers!

Αρχιτεκτονική Δικτύου Παράδειγμα Επικοινωνίας μέσω Firewall TCP/IP HTTP

ΠΡΩΤΟΚΟΛΛΑ JXTA

Πρωτόκολλα JXTA Γενικά Στοιχεία Τα πρωτόκολλα της τεχνολογίας JXTA* προτυποποιούν τον τρόπο με τον οποίο οι peers Ανακαλύπτουν ο ένας τον άλλο Αυτο-οργανώνονται σε peer groups Διαφημίζουν και ανακαλύπτουν δικτυακές υπηρεσίες Επικοινωνούν μεταξύ τους Επιτηρούν/ελέγχουν ο ένας τον άλλο Όλα τα προκαθορισμένα πρωτόκολλα είναι ασύγχρονα και βασίζονται στο μοντέλο query/response Ένας κόμβος δεν είναι υποχρεωμένος να υλοποιήσει όλα τα προκαθορισμένα πρωτόκολλα, παρά μόνο αυτά που σκοπεύει να χρησιμοποιήσει Είδη πρωτοκόλλων PDP: Peer Discovery Protocol PIP: Peer Information Protocol PRP: Peer Resolver Protocol PBP: Pipe Binding Protocol ERP: Endpoint Routing Protocol RVP: Rendezvous Protocol * http://jxta.kenai.com/specifications/specifications.html

Πρωτόκολλα JXTA Peer Discovery Protocol (PDP) Χρησιμοποιείται για την αναζήτηση πόρων (peers, peer groups, services, pipes,...) Οι επερωτήσεις αναζήτησης διαδίδονται με συνδυασμένη χρήση rendezvous peers και multicast requests Ένας peer μπορεί να λάβει 0, 1, ή περισσότερες απαντήσεις σε ένα αίτημα για αναζήτηση

Πρωτόκολλα JXTA Παράδειγμα Λειτουργίας PDP Book Advertisement of E D E RDV 2 Discovery request: Book[title= JXTA Programming ] Book Advertisement of F A RDV 1 RDV 3 F B C G H

Πρωτόκολλα JXTA Peer Information Protocol (PIP) Παρέχει ένα σύνολο μηνυμάτων για την ανάκτηση πληροφορίας σχετικής με την κατάσταση ενός peer Αποστολή μηνύματος ping για την εξακρίβωση της κατάστασης του peer Απόκριση με ένα μήνυμα τύπου PeerInfo που περιλαμβάνει Πιστοποιητικό αποστολέα, IDs αποστολέα και παραλήπτη, χρόνος κατά τον οποίο ο peer είναι online, peer advertisement Παραδείγματα χρήσης Προσδιορισμός χρήσης μιας peer υπηρεσίας Έλεγχος συμπεριφοράς ενός peer (monitoring) Επαναδρομολόγηση για βελτίωση της απόδοσης του δικτύου

Πρωτόκολλα JXTA Παράδειγμα Λειτουργίας PIP Peer A acts as a monitor of the P2P network PeerInfo of B A B PeerInfo of C PIP request to C PIP request to B C

Πρωτόκολλα JXTA Peer Resolver Protocol (PRP) Επιτρέπει στους peers να στέλνουν γενικού σκοπού αιτήματα σε άλλους peers και να αναγνωρίζουν τις αντίστοιχες αποκρίσεις Αποτελεί τη βάση για τα εξής πρωτόκολλα Πρωτόκολλο Peer Discovery Πρωτόκολλο Peer Information Μπορεί να εξεικευτεί ανάλογα με τις απαιτήσεις της εφαρμογής

Πρωτόκολλα JXTA Pipe Binding Protocol (PBP) Χρησιμοποιείται για το binding ενός pipe advertisement με ένα pipe endpoint ανεξάρτητα από την υλοποίηση του pipe Ένα peer pipe endpoint στέλνει ένα query για την εύρεση ενός άλλου pipe endpoint συνδεδεμένου με το ίδιο pipe advertisement Προαιρετικά μπορεί να περιλαμβάνει το peer ID υποδεικνύοντας ότι μόνο ο συγκεκριμένος peer πρέπει να αποκριθεί στο query Καθένας peer που έχει συνδεθεί με το συγκεκριμένο pipe αποκρίνεται στο query Η απόκριση περιλαμβάνει το pipe ID, τον αποκρινόμενο peer, και μια τιμή αληθείας που υποδεικνύει αν το input pipe υπάρχει στο συγκεκριμένο peer

Πρωτόκολλα JXTA Endpoint Routing Protocol (ERP) Ορίζει ένα σύνολο μηνυμάτων για την εύρεση πληροφορίας δρομολόγησης Σχετικές επερωτήσεις αποστέλλονται στους relay peers Οι relay peers αποκρίνονται στέλνοντας πληροφορία δρομολόγησης υπό τη μορφή ακολουθίας από hops Οι αποκρίσεις περιλαμβάνουν Peer ID του προορισμού Peer ID & peer advertisement του δρομολογητή Ακολουθία ενός ή περισσοτέρων relay peers Η πληροφορία δρομολόγησης περιλαμβάνει Τα peer IDs του peer εκκίνησης και του peer προορισμού Ένα TTL για τη διαδρομή Μια ακολουθία από gateway peer IDs

Πρωτόκολλα JXTA Rendezvous Protocol (RVP) Υπεύθυνο για τη διάδοση μηνυμάτων σε ένα peer group Επιτρέπει στους peers να συνδεθούν με μια υπηρεσία Διάδοση μηνυμάτων και λήψη διαδεδομένων μηνυμάτων ελέγξουν τον τρόπο διάδοσης ενός μηνύματος TTL, διάγνωση επαναληπτικών κύκλων κατά τη διάδοση,... Χρησιμοποιείται από τα ακόλουθα πρωτόκολλα Πρωτόκολλο Peer Resolver Πρωτόκολλο Pipe Binding

ΣΥΜΠΕΡΑΣΜΑΤΑ

Συμπεράσματα Τί προσφέρει η τεχνολογία JXTA... Ένα αφαιρετικό πλαίσιο (framework) προγραμματισμού για την ανάπτυξη P2P εφαρμογών Ένα σύνολο καλά ορισμένων πρωτοκόλλων και την υλοποίησή τους για την υποστήριξη των βασικών λειτουργιών ενός P2P δικτύου Αφαιρετικούς μηχανισμούς ενιαίας διευθυνσιοδότησης κόμβων και ταυτοποίησης πόρων (μέσω IDs), καθώς και αφαιρετικούς μηχανισμούς επικοινωνίας (μέσω pipes) Το σχήμα διευθυνσιοδότησης εξασφαλίζει την απόδοση μοναδικών διευθύνσεων στους κόμβους, ενώ είναι ανεξάρτητο από παραδοσιακές υπηρεσίες ονοματοδοσίας (π.χ. DNS) Επεκτασιμότητα και υπηρεσιοστρέφεια

Συμπεράσματα...και τί ΔΕΝ προσφέρει Υλοποίηση του Peer Παρόλα αυτά, παρέχει όλα τα απαραίτητα στοιχεία, που μπορούν να χρησιμοποιηθούν για την προγραμματιστική υλοποίησή του Μηχανισμούς αναζήτησης υψηλής ακρίβειας και ανάκλησης Η προκαθορισμένη υπηρεσία αναζήτησης δεν εγγυάται ότι θα υπάρξει απάντηση σε κάποια αναζήτηση Ισχυρούς εγγενείς μηχανισμούς ασφάλειας και εμπιστευτικότητας Ωστόσο, υπάρχοντες μηχανισμοί μπορούν εύκολα να ενσωματωθούν στον κώδικα και να χρησιμοποιηθούν σε ένα JXTA P2P δίκτυο

Για περισσότερες πληροφορίες JXTA Technology http://jxta.kenai.com/ http://java.net/projects/jxta/ JXTA Java Standard Edition v2.5: Programmers Guide Διαθέσιμο στο site του μαθήματος (e-class) JXTA Technology: Creating Connected Communities Διαθέσιμο στο site του μαθήματος (e-class)

ΕΡΓΑΣΤΗΡΙΟ JXTA

Εργαστήριο JXTA Γενικά Στοιχεία Θα χρησιμοποιηθεί η έκδοση 2.5 της υλοποίησης της τεχνολογίας JXTA σε Java (JXSE 2.5) Περιβάλλον ανάπτυξης: Eclipse ή NetBeans και JRE >= 1.6 Στόχος είναι η υλοποίηση ενός κόμβου, που θα ενσωματώνει όλες τις στοιχειώδεις λειτουργίες δικτύου, με κατάλληλη χρήση των μηχανισμών που παρέχει η υλοποίηση JXSE Ο κόμβος στη συνέχεια θα μπορεί εύκολα να επεκταθεί με λειτουργίες επιπέδου εφαρμογής, οι οποίες θα λαμβάνουν τη μορφή P2P υπηρεσιών

Εργαστήριο JXTA Γενική Τοπολογία P2P Δικτύου E 2 E 1 RDV E 1 RDV RDV E 1 E 2 E 4 E 2 E 3 E 3

Εργαστήριο JXTA Αρχιτεκτονική Peer Connection Handler Incoming messages Connection Listener Connection Handler App Services Connection Handler Multi-thread environment Online Peer Resolver Broadcaster Service Client Multicast Mechanism Incoming broadcast messages Outgoing broadcast messages Outgoing messages

Περισσότερα στο εργαστήριο... Τέλος Διαλέξεως