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

Σχετικά έγγραφα
Αποµακρυσµένη κλήση διαδικασιών

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

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

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

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

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

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

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

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

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

Πρωτόκολλα Διαδικτύου

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

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

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

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

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

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

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

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

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

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

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP.

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

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

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

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

Οδηγίες EQL Desktop (rev ) ΣΥΝ ΕΣΗ S-710 ΜΕ ΚΑΛΩ ΙΟ USB ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

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

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

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

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

6.2 Υπηρεσίες Διαδικτύου

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

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

Network Address Translation (NAT)

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

Ζητήματα Σχεδίασης Λογισμικού Πελάτη

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

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

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

50 Ketseo,Theoni Sarif,Omar 104

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901

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

FTP - (File Transfer Protocol ) Πρωτόκολλο Μεταφοράς Αρχείων

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. DICOM Επικοινωνία Γενικά

Κεφάλαιο 7.3. Πρωτόκολλο TCP

Εγχειρίδιο Συναρτήσεων. Socket *sopen(const int type, const int protocol, const char *host, const char *service)

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

HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη

Η γλώσσα προγραμματισμού C

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

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

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

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

ιαχείριση Τηλεφωνικών Κλήσεων

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

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

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

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

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

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

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ Α2Α

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

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

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

7.7 Πρωτόκολλο ARP. 1. Το πρωτόκολλο ARP μετατρέπει τις διευθύνσεις IP στις αντίστοιχες φυσικές. Σ Λ

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

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

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

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

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

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

3.3.2 Το πρωτόκολλο δυναμικής διευθέτησης υπολογιστή DHCP

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

Πανεπιστήμιο Ιωαννίνων

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Εργαστηριακή Άσκηση 5

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού

Δίκτυα Η/Υ στην Επιχείρηση

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

Μεθόδων Επίλυσης Προβλημάτων

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

Remote Method Invocation (RMI)

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Διαχείριση Δικτύων Εργαστήριο (Διαφάνειες)

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

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

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

Transcript:

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1

Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC, εισάγεται η έννοια της ψευδορουτίνας (stub) στην πλευρά τόσο του client όσο και του server Η ύπαρξη και λειτουργία του δικτύου κρύβεται από ένα RPC communication package, (γνωστό και ως RPC Runtime) το οποίο εκτελείται στους client και server Η υλοποίηση λοιπόν του μηχανισμού RPC βασίζεται στα εξής μέρη (components): client client stub RPC Runtime server stub server Επικοινωνία -RPC 2

Υλοποίηση RPC Υλοποίηση ψευδορουτινών Οι διαφορές μεταξύ ψευδορουτινών για διαφορετικές διαδικασίες είναι βασικά στο interface Interface: διαδικασίες που καλούνται από τον πελάτη και υλοποιούνται από τον εξυπηρετητή Γλώσσα ορισµού διεπαφών (IDL) Τυποποιηµένη περιγραφή παραµέτρων διαδικασιών Συνήθως ανεξάρτητη από γλώσσες προγραµµατισµού Αυτόµατη δηµιουργία κορµών/ψευδορουτινών από την IDL Χρήση βιβλιοθήκης για επικοινωνία και πρόταξη Σύνδεση κορµών µε πελάτη και εξυπηρετητή Π.χ. SUN XDR, DCE RPC Επικοινωνία -RPC 3

Υλοποίηση RPC Client: μία διεργασία η οποία εκτελεί την κλήση της απομακρυσμένης διαδικασίας Client stub: η ψευδορουτίνα που μόλις λάβει την κλήση από τον client πακετάρει την πληροφορία καθορισμού της απομακρυσμένης υπορουτίνας και διευθετεί τα ορίσματα σε ένα μήνυμα καλεί το RPC Runtime να στείλει το μήνυμα μόλις παραλάβει την απάντηση, την ξεπακετάρει και την παραδίδει στον client RPC Runtime: αναλαμβάνει το πρωτόκολλο επικοινωνίας RPC. Είναι υπεύθυνο για retransmissions, acknowledgements, encryption κλπ Επικοινωνία -RPC 4

Υλοποίηση RPC Server stub: η ψευδορουτίνα που μόλις λάβει την κλήση από τον client μέσω του τοπικού RPC Runtime ξεπακετάρει την πληροφορία και εκτελεί την κλήση στην κατάλληλη - τοπική πλέον - διαδικασία στον server μόλις λάβει τα αποτελέσματα της εκτέλεσης από τον server, την πακετάρει (με διευθέτηση δεδομένων) και καλεί το RPC Runtime να στείλει το μήνυμα Server: Η διαδικασία η οποία μόλις λάβει την κλήση από το server stub εκτελεί την κατάλληλη διαδικασία και επιστρέφει τα αποτελέσματα Επικοινωνία -RPC 5

Υλοποίηση RPC Επικοινωνία -RPC 6

RPC στο Σύστημα DCE Κατανεµηµένο περιβάλλον επεξεργασίας (DCE) Μοντέλο πελάτη-εξυπηρετητή µε ενδιάµεσο λογισµικό Παρέχονται υπηρεσίες DCE και υπηρεσίες χρήστη Όλη η επικοινωνία γίνεται µέσω RPC Αυτόµατη µετατροπή τύπων δεδοµένων Κατάλληλο για διάφορες γλώσσες προγραµµατισµού Περιγραφή διεπαφών σε IDL Μοναδικό αναγνωριστικό για τη διεπαφή Περιγραφή παραµέτρων διαδικασιών Περιγραφή σταθερών και τύπων Απεικόνιση στην επιθυµητή γλώσσα προγραµµατισµού Επικοινωνία -RPC 7

RPC στο Σύστημα DCE Επικοινωνία -RPC 8

RPC στο Σύστημα DCE Επικοινωνία -RPC 9

RPC στο Σύστημα DCE Επικοινωνία πελάτη και εξυπηρετητή Ο εξυπηρετητής εγγράφεται στην υπηρεσία ευρετηρίου Καταχωρείται το όνοµα και η διεύθυνση του εξυπηρετητή Ο εξυπηρετητής εγγράφεται στην τοπική υπηρεσία θυρών Καταχωρείται η θύρα στην οποία αναµένει ο εξυπηρετητής Ο πελάτης εντοπίζει τη διεύθυνση και θύρα του εξυπηρετητή Η διεύθυνση της υπηρεσίας ευρετηρίου πρέπει να είναι γνωστή (πχ fixed ή μέσω αρχικού broadacst) Ο server μπορεί να διαγραφεί από την υπηρεσία ευρετηρίου όταν δεν επιθυμεί να προσφέρει πλέον υπηρεσίες Επικοινωνία -RPC 10

RPC στο Σύστημα DCE Επικοινωνία -RPC 11

RPC στο Σύστημα SUN Καθορίζει format για μηνύματα, παραμέτρους, αποτελέσματα Παράδειγμα μηνύματος RPC με UDP Επικοινωνία -RPC 12

RPC στο Σύστημα SUN Μία συλλογή απομακρυσμένων διαδικασιών αποτελεί ένα πρόγραμμα Κάθε πρόγραμμα έχει ένα μοναδικό νούμερο (στον server) και έναν αριθμό έκδοσης (version number) Κάθε διαδικασία του προγράμματος έχει και αυτή ένα νούμερο (μοναδικό εντός προγράμματος) Μία διαδικασία σε ένα server καθορίζεται μοναδικά από: {program-number, version-number, procedure-number} Υπάρχει αυτόματη null procedure με νούμερο 0, η οποία δεν δέχεται ορίσματα, ούτε επιστρέφει τίποτε, αλλά χρησιμοποιείται ως ping για έλεγχο λειτουργίας RPC service στον host Τα νούμερα προγραμμάτων είναι: Επικοινωνία -RPC 13

RPC στο Σύστημα SUN Ορίζεται ένα timeout, και ένας συνολικός χρόνος αναμονής total_time (default 5 και 25 αντίστοιχα) Μετά την πρώτη εκπομπή, ο client περιμένει απάντηση για χρονικό διάστημα ίσο με timeout Αν δεν λάβει απάντηση, επανεκπέμπει όσες φορές χρειαστεί, έως ότου εκπνεύσει ο total_time Αν εκπνεύσει, τότε το RPC Runtime επιστρέφει timeout error Χρησιμοποιεί XDR για ορίσματα, αποτελέσματα και header data Επικοινωνία -RPC 14

RPC στο Σύστημα SUN Χρησιμοποιεί ένα binder (rpcbind deamon) σε κάθε server μηχάνημα (στα well-known ports 111/tcp, 111/udp) Με rpcinfo παίρνουμε κατάλογο όλων των registered προγραμμάτων από τον binder Ο binder είναι και αυτός ένα RPC πρόγραμμα με νούμερο 100000, version=2 Ο binder ξεκινά πριν από όλους τους servers Κάθε RPC server στην εκκίνησή του συνδέεται με ένα socket (ή δημιουργεί νέο) και κάνει registration στον rpcbind (μέσω ενός RPC call) τα program number, version number, και socket (protocol, port number) Ο RPC client στέλνει τα program number, version number, και protocol στον binder και μαθαίνει το port number του server Κατόπιν ο client στέλνει RPC call message στο socket του server, ο οποίος εκτελεί την κατάλληλη διαδικασία Επικοινωνία -RPC 15

RPC στο Σύστημα SUN Επικοινωνία -RPC 16

RPC στο Σύστημα SUN Επικοινωνία -RPC 17

RPC στο Σύστημα SUN Επικοινωνία -RPC 18

Υλοποίηση SUN RPC Απαιτείται η περιγραφή του RPC interface μιας εφαρμογής (ποιες απομακρυσμένες διαδικασίες προσφέρονται και με τι ορίσματα, όνομα προγράμματος και version number κλπ) Γράφεται από τον προγραμματιστή σε ένα IDL (interface definition language) που ονομάζεται RPCL και αποτελεί επέκταση του XDR ιατίθεται compiler (rpcgen) για αυτόματη δημιουργία stub routines, header file, xdr filter file Ο προγραμματιστής γράφει επίσης την απομακρυσμένη διαδικασία, και το πρόγραμμα client Επικοινωνία -RPC 19

Υλοποίηση SUN RPC Επικοινωνία -RPC 20

Υλοποίηση SUN RPC Επικοινωνία -RPC 21

Υλοποίηση SUN RPC Μετατροπή Τοπικής ιαδικασίας σε Απομακρυσμένη Έστω το πρόγραμμα (printmsg.c), το οποίο τυπώνει ένα μήνυμα στην κονσόλα Ν φορές, και τρέχει σε έναν Η/Υ Η μετατροπή του σε πρόγραμμα που τυπώνει σε απομακρυσμένους Η/Υ, μέσω RPC απαιτεί την εξής διαδικασία: γράφουμε ένα protocol specification σε γλώσσα RPC (msg.x) το οποίο περιγράφει την απομακρυσμένη έκδοση του `printmessage() εκτελούμε rpcgen msg.x και δημιουργούνται αυτόματα τα αρχεία (αυτόματη δημιουργία ονόματων): msg.h // include file msg_xdr.c //XDR filters msg_clnt.c // client stub msg_svc.c //server stub Επικοινωνία -RPC 22

Υλοποίηση SUN RPC Μετατροπή Τοπικής ιαδικασίας σε Απομακρυσμένη Στη συνέχεια γράφουμε το client πρόγραμμα rprintmsg.c και το απομακρυσμένο πρόγραμμα msg_proc.c Κατόπιν δημιουργούμε το εκτελέσιμο αρχείο του server: gcc msg_proc.c msg_svc.c msg_xdr.c o msg_server Και το εκτελέσιμο του client: gcc rprintmsg.c msg_clnt.c msg_xdr.c o rprintmsg Αν ο msg_server εκτελείται στο background στη μηχανή hostxxx.epp.teicrete.gr, μπορούμε να τυπώσουμε 10 «Hello» από απομακρυσμένο Η/Υ με την εντολή rprintmsg hostxxx.epp.teicrete.gr Hello 10 Επικοινωνία -RPC 23

Παράδειγμα RPC - II Επικοινωνία -RPC 24

Παράδειγμα RPC Επικοινωνία -RPC 25

Παράδειγμα RPC Επικοινωνία -RPC 26

Παράδειγμα RPC Επικοινωνία -RPC 27

Παράδειγμα RPC Επικοινωνία -RPC 28