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



Σχετικά έγγραφα
14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Remote Method Invocation (RMI)

Διδάσκων: Παναγιώτης Ανδρέου

Ειδικά Θέματα Προγραμματισμού

Εισαγωγή στον Κατανεμημένο Προγραμματισμό

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

CORBA. Αρχιτεκτονική και 3-tier 3. εφαρµογές. Β. Φλώρος. Μαρτάκος. Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστιακό Πανεπιστήµιο Αθηνών

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

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1

Πληροφορίες. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Ζητήµατα Επικοινωνίας Πελάτη-Εξυπηρετητή. Εξυπηρετητής

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

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

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

Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET. Τεχνολογίες Τηλεκπαίδευσης & Εφαρµογές - Ιούλιος

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

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net

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

HY335 4ο Φροντιστήριο

Μελέτη Μεθοδολογιών ικτυακής Επικοινωνίας Αρθρωµάτων Λογισµικού

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

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

Απομακρυσμένα αντικείμενα (Remote Objects) Κατανεμημένα Συστήματα 1

Μεθοδολογίες ικτυακής Επικοινωνίας Αρθρωµάτων Λογισµικού

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

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

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux

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

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

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

7.2 Τεχνολογία TCP/IP

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

Κεφάλαιο 1. Βασικά Στοιχεία της Java... 13

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Σύστηµα Java RMI. Κατανεµηµένα Συστήµατα 17-1

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

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

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

Αντικειμενοστραφής προγραμματισμός. Κλασικές γλώσσες προγραμματισμού (FORTRAN, C, Pascal) Προσανατολισμός στα δεδομένα

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

Κατανεμημένα Συστήματα

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ 1. CORBA (Common Object Request Broker Architecture - Αρχιτεκτονική ιαµεσολάβησης για Αιτήµατα Κοινών Αντικειµένων)

ΚΕΦΑΛΑΙΟ 17: Web Services Εισαγωγή

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

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

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper.

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

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

Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης

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

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

Υπολογιστές και ίκτυα Η/Υ.

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

Δίκτυα Επικοινωνιών ΙΙ: Network Programming TCP Sockets

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

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

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4

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

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

ΤΕΙ ΗΠΕΙΡΟΥ. ΜΑΘΗΜΑ: Πρωτόκολλα Επικοινωνίας ιαδικτύου. Εξάµηνο: 3ον. Κεφάλαιο 8 ον : ΕπίπεδοΕφαρµογής (Application Layer) Στεργίου Ελευθέριος

Interprocess Communication

Η Γλώσσα WS-BPEL 2.0. Εργαστήριο Ανάλυσης Συστημάτων και Τεχνολογίας Λογισμικού. S3Laboratory

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

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ / ΕΠΑΛ(Α & Β ΟΜΑΔΑ) ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 11/12/2011 ΑΠΑΝΤΗΣΕΙΣ

{ πρωτόκολλο, τοπική-διεύθυνση, τοπική-διεργασία, απομακρυσμένη-διεύθυνση, απομακρυσμένη-διεργασία }

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

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

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

Επικοινωνία Client/Server

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

4 η ιάλεξη: Signals UDP Sockets

Κατανεμημένα Συστήματα. Javascript LCR example

ΠΡΩΤΟΚΟΛΛΟ TCP/IP ΜΑΚΡΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ

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

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα

Distributed Systems II

Εργαστήριο Δικτύων Υπολογιστών

Ταχύτητα, Απλότητα & Αξιοπιστία

Λογισµικό (Software SW) Γλώσσες

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

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

7.2.2 Σχέση OSI και TCP/IP

ιαδικτυακές Εφαρµογές

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

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

JAX-RPC (Web Services) ΕΠΛ 425: Τεχνολογίες ιαδικτύου Μιχάλης Έλληνας

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP

Λογισμικό Δικτύων Πέτρος Λάμψας 2007

Network Address Translation (NAT)

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

Δομές Δεδομένων (Data Structures)

Επιτεύγµατα των Λ.Σ.

Κατανεμημένα Συστήματα

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

Transcript:

Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002

Μεταβίβαση Μηνυµάτων (Message Passing) Η επικοινωνία στα κατανεµηµένα συστήµατα βασίζεται στη µεταβίβαση µηνυµάτων Όταν µια διεργασία Α θέλει να επικοινωνήσει µε µια διεργασία Β σε έναν άλλο κόµβο του κατανεµηµένου συστήµατος, δηµιουργεί το µήνυµα και χρησιµοποιεί µια κλήση συστήµατος που έχει ως αποτέλεσµα να πάρει το ΛΣ το µήνυµα και να το στείλει µέσα από το δίκτυο στη διεργασία Β Οι Α και Β πρέπει να συµφωνήσουν στο νόηµα των bits που στέλνονται! Σελίδα 2

Τρόποι Υλοποίησης Επικοινωνίας Στόµια (Sockets) Κλήσεις Αποµακρυσµένων ιαδικασιών (Remote Procedure Calls (RPCs)) Αποµακρυσµένη Επίκληση Μεθόδου (Remote Method Invocation (RMI)) CORBA Εγγραφή Αντικειµένου (Object Registration) Σελίδα 3

Στόµια (Sockets) Ορίζεται ως το «άκρο της επικοινωνίας» (endpoint for communication) Πρόκειται ουσιαστικά για το συνδυασµό διεύθυνσης IP και θύρας (port) Όλες οι θύρες < 1024 θεωρούνται «γνωστές» (wellknown). Για παράδειγµα: το TELNET χρησιµοποιεί τη θύρα 23 το FTP χρησιµοποιεί τη θύρα 21 ο HTTP server χρησιµοποιεί τη θύρα 80 Σελίδα 4

Στόµια (συνέχεια) Κόµβος Χ ιεύθυνση ΙΡ: 146.86.5.20 socket 146.86.5.20/1625 Web server ιεύθυνση ΙΡ: 161.25.19.8 socket 161.25.19.8/80 Σελίδα 5

Νήµατα Ελέγχου (Threads of Control) Ένα νήµα (lightweight process) είναι η βασική µονάδα που χρησιµοποιεί την ΚΜΕ. Αποτελείται από ένα προσδιοριστή του thread, ένα µετρητή εντολών προγράµµατος, ένα σύνολο καταχωρητών και µια στοίβα Μοιράζεται µε τα άλλα νήµατα που ανήκουν στην ίδια διεργασία το τµήµα κώδικα, το τµήµα δεδοµένων, και άλλους πόρους του ΛΣ όπως ανοικτά αρχεία Μια παραδοσιακή διεργασία έχει ένα νήµα ελέγχου. Λόγω του ότι κατέχει πολλά νήµατα, µια διεργασία µπορεί να κάνει ταυτόχρονα περισσότερες της µιας εργασίες Σελίδα 6

Οφέλη από τη χρήση νηµάτων Απόκριση (Responsiveness) ιαµοιρασµός Πόρων Οικονοµία Πόρων Υπολογιστικού Συστήµατος (µνήµης και χρόνου ΚΜΕ) Αξιοποίηση πολυεπεξεργαστικών αρχιτεκτονικών Σελίδα 7

Sockets και Java Sockets Αν θεωρήσουµε τον προσδιορισµό µιας σύνδεσης µεταξύ νηµάτων µια πεντάδα της µορφής {protocol, local_addr, local_process, foreign_address, foreign_process}, τότε ένα socket µπορεί να θεωρηθεί ως µια από τις δύο τριάδες. Χρειάζονται δύο sockets για να προσδιορίσουν δύο νήµατα που επικοινωνούν H Java παρέχει: Connection-Oriented (TCP) Sockets (Socket Class) Connection-less (UDP) Sockets (DatagramSocket Class) Multicast Connection-less Socket (MulticastSoscket class) Σελίδα 8

Παράδειγµα Υλοποίησης server socket σε Java public Server() { // create the socket the server will listen to try { s = new ServerSocket(5155); System.out.println("Server is listening..."); try { while (true) { client = s.accept(); // create a separate thread to service the request c = new Connection(client); c.start(); Σελίδα 9

Παράδειγµα Υλοποίησης client socket σε Java import java.net.*; import java.io.*; public class Client { public Client() { Socket s = new Socket("127.0.0.1",5155); InputStream in = s.getinputstream(); BufferedReader bin = new BufferedReader(new InputStreamReader(in)); System.out.println(bin.readLine()); s.close(); Σελίδα 10

Κλήσεις Αποµακρυσµένων ιαδικασιών (Remote Procedure Calls RPCs) Τα στόµια θεωρούνται µηχανισµοί χαµηλού επιπέδου (low-level mechanisms) Τα RPCs προσφέρουν µια µορφή επικοινωνίας υψηλού επιπέδου Στην περίπτωση αυτή ο πελάτης κάνει µια κλήση µιας συνάρτησης ή διαδικασίας (function ή procedure) σε έναν «αποµακρυσµένο» εξυπηρετητή χρησιµοποιώντας τους κανονικούς µηχανισµούς κλήσης των διαδικασιών Σελίδα 11

Αποµακρυσµένη Επίκληση Μεθόδου (Remote Method Invocation RMI) Η έκδοση της Java για τo RPC Ένα νήµα µπορεί να καλέσει µια µέθοδο σε ένα αποµακρυσµένο αντικείµενο (invoke a method on a remote object) Ένα αντικείµενο θεωρείται αποµακρυσµένο αν «κατοικεί» σε µια διαφορετική εικονική µηχανή (Java Virtual Machine) Σελίδα 12

Αποµακρυσµένη Επίκληση Μεθόδου (συνέχεια) Σελίδα 13

RPC εναντίον RMI To RPC υποστηρίζει το συναρτησιακό προγραµµατιστικό στυλ (procedural programming) To RMI υποστηρίζει το αντικειµενοστραφές προγραµµατιστικό στυλ (object-oriented programming) Οι παράµετροι στο RPC είναι συνηθισµένες δοµές δεδοµένων (data structures) Οι παράµετροι στο RMI είναι αντικείµενα Σελίδα 14

Μοντέλο Κατανεµηµένων Αντικειµένων A remote invocation B local C invocation local E invocation local invocation D remote invocation F Κάθε διεργασία περιέχει αντικείµενα, κάποια από τα οποία µπορούν να δεχθούν αποµακρυσµένες επικλήσεις, άλλα µόνο τοπικές επικλήσεις Αυτά που µπορούν να λάβουν αποµακρυσµένες επικλήσεις καλούνται αποµακρυσµένα αντικείµενα (remote objects) Τα αντικείµενα χρειάζεται να γνωρίζουν την αναφορά των αποµακρυσµένων αντικειµένων µιας άλλης διεργασίας προκειµένου να καλέσουν τις µεθόδους τους Η αποµακρυσµένη διεπαφή (remote interface) προσδιορίζει τις µεθόδους που µπορούν να κληθούν από απόσταση Σελίδα 15

Παραποµπές και Πλαίσια (Stubs and Skeletons) H παραποµπή (stub) είναι ένας ενδιάµεσος (proxy) για το αποµακρυσµένο αντικείµενο. Βρίσκεται στη µεριά του πελάτη Η παραποµπή συγκεντρώνει (marshals) τις παραµέτρους και τις αποστέλλει στον εξυπηρετητή σε ένα «δέµα» (parcel) Το πλαίσιο (skeleton) είναι στη µεριά του εξυπηρετητή Το πλαίσιο εξάγει τις παραµέτρους και τις παραδίδει στον εξυπηρετητή, όπου και καλείται η µέθοδος. Τα αποτελέσµατα επιστρέφουν µε δέµα στον πελάτη Σελίδα 16

Συγκέντρωση και Πέρασµα Παραµέτρων (Marshalling) Σελίδα 17

Αρχιτεκτονική της αποµακρυσµένης επίκλησης µεθόδου object A client proxy for B Request server skeleton & dispatcher for B s class remote object B Reply Remote Communication reference module module Communication module Remote reference module Σελίδα 18

Συγκέντρωση και Πέρασµα Παραµέτρων (συνέχεια) Το RMI είναι έτσι φτιαγµένο ώστε να είναι διαφανείς οι παραποµπές και τα πλαίσια, ώστε να καλούνται οι µέθοδοι ως να πρόκειται για τοπικές µεθόδους Αν οι παράµετροι είναι τοπικές περνιούνται µε αντίγραφα µε τεχνική γνωστή και ως object serialization. Αν οι παράµετροι είναι αποµακρυσµένες περνιούνται µε αναφορά Τοπικά αντικείµενα για να περαστούν παράµετροι σε αποµακρυσµένα αντικείµενα θα πρέπει να υλοποιούν τη διεπαφή java.io.serializable Σελίδα 19

CORBA To RMI είναι τεχνολογία Java-to-Java H CORBA είναι Middleware που επιτρέπει σε διαφορετικές εφαρµογές πελάτη και εξυπηρετητή να επικοινωνήσουν Η Interface Definition Language (IDL) είναι ένας γενικός τρόπος να περιγραφεί µια διεπαφή προς µια υπηρεσία που παρέχεται από ένα αποµακρυσµένο αντικείµενο Το Object Request Broker (ORB) επιτρέπει σε πελάτες και εξυπηρετητές να επικοινωνήσουν µέσω της IDL Το Internet InterORB Protocol (IIOP) είναι ένα πρωτόκολλο που προσδιορίζει πως επικοινωνούν τα ORBs Σελίδα 20

Μοντέλο CORBA Σελίδα 21