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

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

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 9: Web Services. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

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

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

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

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

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

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

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

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

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

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

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

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

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

Remote Method Invocation (RMI)

Πανεπιστήμιο Πειραιώς Τμ ή μα Ψήφιακώή ν Συστήμαή τών

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

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

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

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

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

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

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

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

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

* Enterprise Resource Planning ** Customer Relationship Management

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

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

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. WSDLBook:

Διπλωματική Εργασία. Μέλλιος Θωμάς, Πετρίδης Κοσμάς. Επιβλέπων Καθηγητής: Πρωτόγερος Νικόλαος

Α.Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ JAVA WEB SERVICES ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. που εκπονήθηκε από την φοιτήτρια:

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

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

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

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

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία ( ) Υπηρεσία FTP (File Transfer Protocol)

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

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

Το Μέλλον για τα Συστήματα Διαχείρισης Ακτινολογικής Εικόνας (PACS)

Σύνθεση διαδικτυακών υπηρεσιών με χρήση τεχνικών σχεδιασμού ενεργειών

Ανάπτυξη Συστήματος Σύνθεσης Υπηρεσιών Ιστού

Αρχιτεκτονικές Συστημάτων

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

Βασικές Έννοιες Web Εφαρμογών

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

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

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

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

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

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

Τι είναι η Spring. Η Spring είναι ένα ελεύθερο (open source) περιβάλλον εργασίας για εφαρμογές Java. Μπορεί να περιγραφεί ως:

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

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

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

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

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

Το Πλαίσιο Διαλειτουργικότητας & Υπηρεσιών. Ενημέρωση σχετικά με τις γενικές αρχές και τη. Ενημέρωση σχετικά με τα τεχνολογικά πρότυπα βάσει

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

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

TECHNICAL REPORT. No. TR TRHP SOA Architecture. and Web Services. Αρχιτεκτονική SOA. και Υπήρεσι ες Ιστού. Παρασκεύή Τσού τσα.

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

Δικτυοκεντρικά Πληροφοριακά Συστήματα

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

«Σημασιολογική Αναζήτηση Υπηρεσιών Ιστού βάση των δυνατοτήτων τους» Semantic Matching of Web Services Capabilities

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

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

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ (MSc) στα ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙKH ΕΡΓΑΣΙΑ

Πανεπιστήμιο Πελοποννήσου Τμήμα Επιστήμης & Τεχνολογίας Υπολογιστών Ακαδημαϊκό έτος Πτυχιακή εργασία

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

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

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

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

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

Network Address Translation (NAT)

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

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

ασθενών με χρήση XML Web Services και BPEL

Introduction to JAX-WS. Φοιτητής : ηµόπουλος Κωνσταντίνος

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

Ομότιμα συστήματα p2p systems ΠΡΙΝΕΑ ΜΑΡΙΑ 10 ΕΞΑΜΗΝΟ

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

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

EPL 660: Lab 4 Introduction to Hadoop

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

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

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

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

ΔΙΚΤΥΑ ΔΗΜΟΣΙΑΣ ΧΡΗΣΗΣ ΚΑΙ ΔΙΑΣΥΝΔΕΣΗ ΔΙΚΤΥΩΝ Ενότητα #13: Διαχείριση δικτύων

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

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

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

Transcript:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ ΔΙΑΛΕΞΗ 4 ΔΙΔΑΣΚΩΝ: ΑΝΑΡΓΥΡΟΣ ΣΙΔΕΡΗΣ <sideris@epp.teiher.gr> <https://eclass2.teicrete.gr/courses/tp182/> ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ ΤΕΙ ΚΡΗΤΗΣ

ΜΟΝΤΕΛΑ ΔΙΚΤΥΑΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 2

Γενικά ΜΟΝΤΕΛΑ ΔΙΚΤΥΑΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Mainframe Μοντέλο. Μοντέλο Πελάτη-Εξυπηρετητή (Client-Sever). 2-tier 3-tier Μοντέλο Peer to Peer. Τοπολογία Αλγόριθμοι. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 3

Μοντέλο Mainframe Όλες οι διεργασίες εκτελούνται μέσα σε ένα κεντρικό υπολογιστή. Η επικοινωνία μεταξύ χρηστών και κεντρικού υπολογιστή γίνεται μέσω απλών τερματικών. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 4

Μοντέλο Client-Server Στο μοντέλο αυτό υπάρχει τουλάχιστον ένας πελάτης και ένας εξυπηρετητής. Οι πελάτες αιτούνται, οι εξυπηρετητές απαντούν. Πελάτης ή εξυπηρετητής μπορεί να είναι μια διεργασία, εφαρμογή ή συσκευή. Συνήθως ο πελάτης αρχίζει την επικοινωνία ενώ ο εξυπηρετητής επεξεργάζεται τις αιτήσεις και στέλνει πίσω τις απαντήσεις. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 5

Χαρακτηριστικά του C/S μοντέλου Συμμετρικές Λειτουργίες Ανεξάρτητο τοποθεσίας (Location Transparency). Ανεκτικό σε λάθη Ανεξάρτητο από το είδος πλατφόρμας. Διαμοιρασμό πόρων Επεκτασιμότητα 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 6

Λειτουργικές μονάδες του C/S μοντέλου (1) Τρείς λειτουργικές μονάδες: Μονάδα Αναπαράστασης (Presentation Logic/User Interface) Μονάδα Εφαρμογής (Application/Business Logic). Μονάδα Υπηρεσίας Δεδομένων (Data Service). Μονάδα Αναπαράστασης (Presentation Logic/User Interface) Συλλογή πληροφοριών από χρήστη. Αποστολή των πληροφοριών στην μονάδα εφαρμογής για επεξεργασία. Αποδοχή αποτελεσμάτων από την μονάδα εφαρμογής. Παρουσίαση αποτελεσμάτων στον χρήστη. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 7

Λειτουργικές μονάδες του C/S μοντέλου (2) Μονάδα Εφαρμογής (Application/Business Logic). Δέχεται τα δεδομένα από την μονάδα αναπαράστασης. Αλληλεπιδρά με την μονάδα υπηρεσίας δεδομένων ώστε να εκτελέσει τις απαιτούμενες εργασίες. Στέλνει τα αποτέλεσματα των εργασιών στην μονάδα υπηρεσίας. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 8

Λειτουργικές μονάδες του C/S μοντέλου (3) Μονάδα Υπηρεσίας Δεδομένων (Data Service). Αποθήκευση Δεδομένων. Ανάκτηση Δεδομένων. Διαχείριση Δεδομένων. Ακεραιότητα Δεδομένων. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 9

Αρχιτεκτονική 2-tier (C/S) (1) Σε αυτή την αρχιτεκτονική η μονάδα εφαρμογής βρίσκεται: Εξολοκλήρου μέσα στην μονάδα αναπαράστασης. Εξολοκλήρου μέσα στην μονάδα υπηρεσίας δεδομένων με την μορφή αποθηκευμένων επεξεργασιών. Μοιρασμένη ανάμεσα στις μονάδες υπηρεσίας δεδομένων και αναπαράστασης. Κλάσεις του 2-tier μοντέλου Host based processing (dumb client). Server based processing. Cooperative processing. Client based Processing. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 10

Host based Processing Host based processing (dumb client). Περιβάλλον όπου υπάρχει ένας κεντρικός υπολογιστής που τα κάνει όλα. Ο ρόλος του πελάτης είναι περιορισμένος. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 11

Server based processing. Server based processing. Ο πελάτης παρέχει την διεπαφή (interface). Thin client, Fat Server 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 12

Cooperative processing Cooperative processing. Κατανεμημένη επεξεργασία 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 13

Client based Processing Client based Processing. Όλη η επεξεργασία λαμβάνει χώρα στον πελάτη. Fat client, Thin Server 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 14

Αρχιτεκτονική 3-tier (C/S) Σε αυτή την αρχιτεκτονική η μονάδα εφαρμογής είναι χωρισμένη από τις μονάδες παρουσίασης και υπηρεσίας δεδομένων. Με αυτό τον τρόπο οι επεξεργασίες μπορούν να διαχωριστούν πλήρως από την διεπαφή χρήστη και την διαχείριση των δεδομένων. Παράδειγμα: Ο πελάτης (1ος tier) αιτείται υπηρεσίες μέσω της μονάδας εφαρμογής (2 ος tier) η οποία επικοινωνεί με τον εξυπηρετητή (3 ος tier) για την διεκπεραίωση τω αιτήσεων. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 15

3-tier vs 2-tier 2-tier Κατάλληλο για μικρά project. Μικρό αριθμό χρηστών. Χαμηλό φόρτο εργασίας. 3-tier Κατάλληλο για μεγάλα project. Μεγάλο αριθμό χρηστών. Διαμοιρασμός φόρτου. Ασφαλέστερο. Επαναχρησιμοποίηση κώδικα. Επεκτάσιμο. Ιδανικό για εργασία σε ομάδες. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 16

Προκλήσεις του C/S μοντέλου Συντήρηση-Διαχείριση. Οι πελάτες και οι εξυπηρετητές τρέχουν σε διαφορετικά συστήματα λογισμικού και υλικού. Είναι διασκορπισμένοι μέσα στο δίκτυο. Είναι πρόκληση να κρατηθούν όλα τα μέρη ενημερωμένα σε τυχόν αλλάγες λειτουργικών παραμέτρων. Αναβάθμιση. Λόγω της αλληλεξάρτησης του πελάτη με τον εξυπηρετητή σε περίπτωση αναβάθμισης του ενός επηρεάζεται και ο άλλος. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 17

Peer to Peer μοντέλο Ομότιμες οντότητες. Ο ρόλος του πελάτη και του εξυπηρετητή συνυπάρχουν σε κάθε οντότητα. Κάθε οντότητα συνεισφέρει πόρους τόσο σε αποθηκευτικό χώρο, εύρος ζώνης και υπολογιστική ισχύ. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 18

Κατηγοριοποίηση P2P συστημάτων Ανάλογα με την εφαρμογή τους. Διαμοιρασμός αρχείων (Kazaa, Napster). Τηλεφωνία (Skype). Video/Audio Streaming (Peercast, Freecast). Ομάδες συζητήσεων (IRC, Usenet). Εκτέλεση χρονοβόρων διεργασιών (SETI). Ανάλογα την αρχιτεκτονική τους. Κεντρικά p2p συστήματα. Αποκεντρωμένα p2p συστήματα ( καθαρό p2p). Υβριδικά p2p συστήματα. Ανάλογα την δομή τους. Δομημένα p2p συστήματα. Μη δομημένα p2p συστήματα. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 19

Κεντρικά P2P Συστήματα (1) Υπάρχει ένας κεντρικός υπολογιστής. Κάθε p2p οντότητα καταχωρεί πληροφορίες (διεύθυνση,περιεχόμενο ) στο κεντρικό υπολογιστή. Κάθε p2p οντότητα χρησιμοποιεί τις αποθηκευμένες πληροφορίες στον κεντρικό υπολογιστή για να εντοπίσει το επιθυμητό περιεχόμενο. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 20

Κεντρικά P2P Συστήματα (2) Πλεονεκτήματα Αποτελεσματική έρευνα/ανακάλυψη περιεχομένου. Περιορισμένη χρήση του εύρους ζώνης. Κάθε κόμβος δεν χρειάζεται να έχει πληροφορίες για την κατάσταση των γειτόνων του. Μειονεκτήματα Κεντρικό σημείο αποτυχίας. Περιορισμένη επεκτασιμότητα. Κεντρικό σημείο ελέγχου. Παράδειγμα Napster. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 21

Αποκεντρωμένα p2p συστήματα (1) Σε αυτά τα συστήματα δεν υπάρχει κεντρικός υπολογιστής. Κάθε κόμβος χρησιμοποιεί το δίκτυο για να βρεί κάποιον άλλο Κάθε κόμβος γνωρίζει συνήθως μόνο τους άμεσους γείτονες του. Η συνεργασία μεταξύ των γειτόνων αποφέρει το επιθυμητό αποτέλεσμα (εύρεση αρχείων). 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 22

Αποκεντρωμένα p2p συστήματα (2) Πλεονεκτήματα: Μη ύπαρξη κεντρικού σημείου αποτυχίας. Κάθε κόμβος έχει πληροφορίες για την κατάσταση μόνο των γειτόνων του. Μειονεκτήματα: Χρονοβόρες έρευνες ανακάλυψης αρχείων. Εξάντληση των διαθέσιμων δικτυακών πόρων (bandwidth). Παράδειγμα: Gnutella 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 23

Υβριδικά p2p συστήματα (1) Συνδυάζει χαρακτηριστικά των δύο προηγούμενων αρχιτεκτονικών. Ύπαρξη κόμβων (Υπέρκόμβοι) που είναι πιο «ισότιμοι» από τους άλλους. Οι Υπερκόμβοι εξυπηρετούν τους κόμβους της γειτονιάς τους. Η επικοινωνία με κόμβους άλλων γειτονιών γίνεται μέσω των υπερκόμβων. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 24

Υβριδικά p2p συστήματα (2) Πλεονεκτήματα: Αποτελεσματικό στην έρευνα και εντοπισμό περιεχομένου. Δυναμική διαχείριση των υπερκόμβων. Επεκτασιμότητα Μειονεκτήματα: Κεντρικά σημεία διαχείρισης. Παράδειγμα: Kazaa 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 25

Οφέλη των p2p συστημάτων Διαμοιρασμός φόρτου. Ανεκτικά σε περιπτώσεις σφάλματος σε ένα ή περισσότερους κόμβους. Για την περίπτωση του «καθαρού» p2p μοντέλου. Απουσία κεντρικού ελέγχου!!! 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 26

Προκλήσεις των p2p συστημάτων Απροβλεπτότητα Αξιοπιστία Διαθεσιμότητα Έλεγχος κόμβων και περιεχομένου. Αποτελεσματική έρευνα και ανακάλυψη κόμβων και περιεχομένου. Ασφάλεια. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 27

Υλοποίηση Δικτυακών Εφαρμογών 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 28

ΔΙΕΠΑΦΕΣ ΔΙΚΤΥΑΚΩΝ ΕΦΑΡΜΟΓΩΝ Sockets RPC (Remote Procedure Call) RMI (Remote Method Invocation) CORBA (Common Object Request Broker) Web Services 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 29

Ιεραρχία τεχνολογιών 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 30

Sockets (1) Τι είναι socket; Τερματικό σημείο επικοινωνίας δικτυακών προγραμμάτων. Είναι μια διεπαφή που δίνει πρόσβαση στις εφαρμογές στις υπηρεσίες του δικτύου. Περιλαμβάνει την διεύθυνση, θύρα και είδος πρωτοκόλλου επικοινωνίας που χρησιμοποιεί το τερματικό σημείο σύνδεσης. 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 31

Sockets (2) Tα socket αναπτύχθηκαν πρώτη φορά από το πανεπιστήμιο Berkeley σε unix συστήματα (BSD Sockets). Λόγω της μεγάλης τους επιτυχίας υιοθετήθηκαν και από άλλους κατασκευαστές λογισμικού (WinSock, java sockets, MacTcp). Τα sockets στην πράξη είναι ένα σύνολο από: Κλήσεις συστήματος (ρουτίνες). Δομές. Οι κλήσεις συστήματος παρέχουν τις υπηρεσιές δικτύου όπως: Καθορισμός τερματικών σημείων επικοινωνίας. Άνοιγμα/κλείσιμο σύνδεσης. Αποστολή/λήψη δεδομένων. Διαχείριση σφαλμάτων. Οι δομές περιγράφουν τα δεδομένα που υπάρχουν στο δίκτυο: Διευθύνσεις. Θύρες. 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 32

Είδη των Sockets Connection-oriented Παρέχουν αξιόπιστες υπηρεσίες σύνδεσης. TCP socket Connectionless Μη αξίοπιστη μετάδοση δεδομένων. UDP socket Raw Παρέχει πρόσβαση σε κατώτερου επιπέδου πρωτόκολλλα δικτύου. IP, ICMP 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 33

Λειτουργίες των sockets με σύνδεση (1) Κλήσεις συστήματος στην μεριά του εξυπηρετητή. Socket(): Δημιουργεί το τερματικό σημείο σύνδεσης, προσδίορίζει το πρωτόκολλο επικοινωνίας. Bind(): καταχωρεί και προσαρτά το socket στήν επιθυμητή θύρα επικοινωνίας. Listen(): Παρακολουθεί για τυχόν αιτήσεις σύνδεσης. Accept: Αποδοχή σύνδεσης. Read(): Λήψη Δεδομένων. Write(): Αποστολή Δεδομένων. Κλήσεις συστήματος στην μεριά του πελάτη. Socket(): Δημιουργεί το τερματικό σημείο σύνδεσης, προσδίορίζει το πρωτόκολλο επικοινωνίας. Connect(): Αίτηση σύνδεσης. Read(): Λήψη Δεδομένων. 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 34

Λειτουργίες των sockets με σύνδεση (2) 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 35

Λειτουργίες των sockets χωρίς σύνδεση (1) Κλήσεις συστήματος στην μεριά του εξυπηρετητή. Socket(): Δημιουργεί το τερματικό σημείο σύνδεσης, προσδιορίζει το πρωτόκολλο επικοινωνίας. Bind(): καταχωρεί και προσαρτά το socket στήν επιθυμητή θύρα επικοινωνίας. recvfrom(): Λήψη Δεδομένων. sendto(): Αποστολή Δεδομένων. Κλήσεις συστήματος στην μεριά του πελάτη. Socket(): Δημιουργεί το τερματικό σημείο σύνδεσης, προσδίορίζει το πρωτόκολλο επικοινωνίας. recvfrom(): Λήψη Δεδομένων. sendto(): Αποστολή Δεδομένων. 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 36

Λειτουργίες των sockets χωρίς σύνδεση (2) 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 37

Sockets με σύνδεση vs χωρίς σύνδεση Με σύνδεση Εύκολα στον προγραμματισμό. Το πρωτόκολλο μεταφοράς (TCP) κάνει την βαριά δουλειά (πχ έλεγχος για λάθη, επανεκπομπές). Απαιτείται ξεχωριστό socket για κάθε σύνδεση. Χωρίς σύνδεση Λιγότερα overhead Κανένας περιορισμός σε αριθμό πελατών. 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 38

Παράδειγμα Server σε Java /** * * @author irons */ public class Main { } (1) /** * @param args the command line arguments */ public static void main(string[] args) { // TODO code application logic here } new server(); 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 39

Παράδειγμα Server σε Java /** * * @author irons */ import java.io.*; import java.net.*; public class server { ServerSocket myserver; Socket myclient; PrintStream send_message; public server() { myserver = null; myclient = null; send_message = null; (2) 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 40

Παράδειγμα Server σε Java (3) try { myserver = new ServerSocket(56000); } catch (IOException e) { System.out.println(e); } try { myclient = myserver.accept(); System.out.println("Connection from "+myclient.getinetaddress().gethostaddress()); send_message = new PrintStream(myclient.getOutputStream()); send_message.println("hello"); } catch (IOException e) { System.out.println(e); } 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 41

Παράδειγμα Server σε Java (4) try { send_message.close(); } } myclient.close(); myserver.close(); } catch (IOException e) { System.out.println(e); } 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 42

Παράδειγμα Client σε Java /** * * @author irons */ public class Main { } (1) /** * @param args the command line arguments */ public static void main(string[] args) { // TODO code application logic here new Client(); } 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 43

Παράδειγμα Client σε Java /** * * @author irons */ import java.io.*; import java.net.*; public class Client { Socket myclient; BufferedReader recv_message; String message; public Client() { myclient = null; recv_message = null; message = null; (2) 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 44

Παράδειγμα Client σε Java (3) try { myclient = new Socket("127.0.0.1", 56000); recv_message = new BufferedReader(new InputStreamReader(myclient.getInputStream())); message = recv_message.readline(); System.out.println(message); } catch (IOException e) { System.out.println(e); } try { recv_message.close(); myclient.close(); } catch (IOException e) { System.out.println(e); } } } 04/28/10 Σιδέρης Ανάργυρος-sideris@epp.teiher.gr 45

Παρέχουν: Web Services Διαλειτουργικότητα μεταξύ ετερογενών εφαρμογών. Επιτρέποντας: Την έκδοση, εντοπισμό και χρήση υπηρεσιών. Με τη χρήση: UDDI (Universal Description, Discovery and Integration) WSDL (Web Service Description Language) SOAP (Simple Object Access Protocol) XML (Extra Markup Language) 04/28/10 Ανάργυρος Σιδέρης 46

Web Service Stack Καταχώρηση/Ανακάλυψη υπηρεσίας (UDDI) Περιγραφή Υπηρεσίας (WSDL) XML ανταλλαγή μηνυμάτων (SOAP) Περιγραφή δεδομένων (XML) UDDI: Universal Description, Discovery and Integration WSDL: Web Services Description Language SOAP: Simple Object Access Protocol XML: Extra Markup Language 04/28/10 Ανάργυρος Σιδέρης 47

Λειτουργία Web Services Μητρώο υπηρεσιών (Service Registry) Εύρεση Καταχώρηση Πελάτης Web υπηρεσιών Προσάρτηση/Κλήση Παροχέας Web υπηρεσιών 04/28/10 Ανάργυρος Σιδέρης 48

UDDI Είναι ένα πρότυπο για μητρώα υπηρεσιών. Τριών ειδών ευρετήρια: White pages: Πληροφορίες για τις εταιρίες που παρέχουν τις υπηρεσίες (όνομα, διεύθυνση...). Yellow pages: Ταξινόμηση υπηρεσιών ανάλογα με την λειτουργία τους. Green pages: Παρέχει πληροφορίες για τη τοποθεσία και τις διεπαφές μιας υπηρεσίας. Συνήθως είναι το WSDL αρχείο που έχει δημιουργηθεί για την web υπηρεσία. Η επικοινωνία με το UDDI γίνεται μέσω του SOAP. Το UDDI παρέχει τα κατάλληλα εργαλεία για την καταχώρηση και αναζήτηση υπηρεσιών. 04/28/10 Ανάργυρος Σιδέρης 49

WSDL (1) Παρέχει: Περιγραφή των Web υπηρεσιών. Διεπαφές, μεθόδους. Εντοπισμό των Web υπηρεσιών. Είναι γραμμένο σε XML. Βασικά στοιχεία του WSDL εγγράφου: Στοιχείο <types> <message> <porttype> <binding> Λειτουργία Προσδιορισμός του τύπου των δεδομένων (π.χ. ακέραιος) Προσδιορισμός των μηνυμάτων (π.χ. Ορίσματα μιας μεθόδου) Προσδιορισμός των υποστηριζόμενων λειτουργιών (π.χ. διεπαφή μεθόδου) Προσδιορισμός των πρωτοκόλλων επικοινωνίας (π.χ SOAP) 04/28/10 Ανάργυρος Σιδέρης 50

WSDL (2) Προσδιορίζονται 4 τρόποι επικοινωνίας: One-way: Λήψη μηνύματος χωρίς αποστολή απάντησης. Request-Response: Λήψη μηνύματος και αποστολή απάντησης. Solicit-Response: Αποστολή μηνύματος και αναμονή για λήψη απάντησης. Notification: Αποστολή μηνύματος χωρίς αναμονή για λήψη απάντησης. 04/28/10 Ανάργυρος Σιδέρης 51

WSDL (3) <definitions> <message name="getname"> <!-- Ορίζουμε το όνομα του μηνύματος --> <part name="name" type="xs:string"/> <!-- Ορίζουμε τo όνομα της μεταβλητής για το μήνυμα και τον τύπο της --> </message> <message name="getgreeting"> <!-- Ορίζουμε το όνομα του μηνύματος --> <part name="greeting" type="xs:string"/> <!-- Ορίζουμε τo όνομα της μεταβλητής για το μήνυμα και τον τύπο της --> </message> <porttype name="greeting_srv"> <!-- Ορίζουμε το όνομα της Web υπηρεσίας --> <operation name="setgreeting"> <!-- Ορίζουμε το όνομα της μεθόδου που θα επιτελέσει τη υπηρεσία --> <input message="getname"/> <!-- Ορίζουμε την είσοδο στη μέθοδο --> <output message="getgreeting"/> <!-- Ορίζουμε την έξοδο από τη μέθοδο --> </operation> </porttype> <binding type="greeting_srv" name="test"> <!-- Ορίζουμε τo ένα όνομα για την προσάρτηση και αντιστοιχούμε με τη Web υπηρεσία--> 04/28/10 Ανάργυρος Σιδέρης 52 <soap:binding style="document"

SOAP (1) Το SOAP επιτρέπει στις εφαρμογές να ανταλλάσσουν μηνύματα πάνω από το HTTP. Το πρωτόκολλο επικοινωνίας για πρόσβαση σε Web υπηρεσίες. Χρησιμοποιεί το XML. Είναι ανεξάρτητο από γλώσσες προγραμματισμού και πλατφόρμες υλοποίησης. Η χρησιμοποίηση του HTTP σαν πρωτόκολλο μεταφοράς επιτρέπει την επικοινωνία ακόμα και μέσω τοίχων προστασίας Γιατί; 04/28/10 Ανάργυρος Σιδέρης 53

SOAP (2) Ένα SOAP μήνυμα είναι ένα XML έγγραφο που αποτελείται από τα εξής στοιχεία: Envelope: Προσδιορίζει το XML έγγραφο σαν SOAP μήνυμα. Header: Περιέχει πληροφορίες επικεφαλίδας. Body: Περιέχει πληροφορίες σχετικά με την κλήση και απάντηση της SOAP επικοινωνίας. Fault: Περιέχει τυχόν λάθη και πληροφορίες για την κατάσταση της SOAP επικοινωνίας. 04/28/10 Ανάργυρος Σιδέρης 54

SOAP Envelope Το envelope ορίζει ότι το XML έγγραφο είναι SOAP μήνυμα Το xmlns:soap ορίζει το envelope σαν SOAP. (Υποχρεωτικό πεδίο) Το encodingstyle ορίζει το τύπο των δεδομένων στο SOAP μήνυμα. Παράδειγμα: <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding">... Εδώ εισάγετε το υπόλοιπο μήνυμα... 04/28/10 Ανάργυρος Σιδέρης 55

SOAP Header (1) Το header περιέχει ειδικές πληροφορίες για την εφαρμογή (π.χ. πιστοποίηση) και είναι προαιρετικό. Είναι το πρωτο στοιχείο μετά το envelope. Όλα τα στοιχεία μέσα στην επικεφαλίδα πρέπει να είναι με namespace Τρεις ιδιότητες για κάθε στοιχείο: mustunderstand (0 1): Ορίζει εάν ο παραλήπτης πρέπει υποχρεωτικά να επεξεργαστεί το εν λόγω στοιχείο ή όχι. actor: Προσδιορίζει την οντότητα η οποία πρέπει να επεξεργαστεί το εν λόγω στοιχείο. encodingstyle: καθορίζει το τύπο δεδομένων του στοιχείου καθώς και όλων των παιδιών του. 04/28/10 Ανάργυρος Σιδέρης 56

SOAP Header (2) Παράδειγμα: <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:header> <m:nams xmlns:m="http://www.mysite.gr/employes/" soap:mustunderstand="1">2 </m:nams> </soap:header> </soap:envelope> 04/28/10 Ανάργυρος Σιδέρης 57

SOAP Body Περιέχει το SOAP μήνυμα. Παράδειγμα αίτησης/απάντησης: <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soapenvelope" soap:encodingstyle="http://www.w3.org/2001/12/so ap-encoding"> <soap:body> <m:getname xmlns:m="http://www.mysite.gr/students"> <m:am>22</m:am> </m:getname> </soap:body> </soap:envelope> <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soapenvelope" soap:encodingstyle="http://www.w3.org/2001/12/so ap-encoding"> <soap:body> <m:getnameresponse xmlns:m="http://www.mysite.gr/students"> <m:name> Argiris </m:name> </m:getnameresponse> </soap:body> </soap:envelope> 04/28/10 Ανάργυρος Σιδέρης 58

SOAP Fault Είναι προαιρετικό και εμπεριέχεται σαν παιδί στο SOAP body. Υπάρχει ένα τέτοιο στοιχείο ανά μήνυμα. Περιέχει τα εξής υποστοιχεία: faultcode: κωδικός σφάλματος. faultstring: σύντομη περιγραφή του σφάλματος. faultactor: ποιος το προκάλεσε. detail: λεπτομερής περιγραφή του σφάλματος. SOAP κωδικοί λάθους VersionMismatch MustUnderstand Client Server Περιγραφή Μη έγκυρο namespace στο SOAP Envelope. Ένα στοιχείο του Header με τη ιδιότητα mustunderstand=1 δεν έγινε κατανοητή. Μη έγκυρη μορφοποίηση μηνύματος η λανθασμένη περιέχουσα πληροφορία. Πρόβλημα στον εξυπηρετητή και το μήνυμα δεν επεξεργάστηκε. 04/28/10 Ανάργυρος Σιδέρης 59

SOAP/HTTP Παράδειγμα αίτησης απάντησης: POST /InRecords HTTP/1.1 Host: www.mysite.gr Content-Type: application/soap+xml; charset=utf-8 Content-Length: 221 <?xml version="1.0"?> <soap:envelope soap:encodingstyle="http://www.w3.org/2001/12/soa p-encoding"> <soap:body xmlns:m="http://www.mysite.gr/students"> <m:getname> <m:am>22</m:am> </m:getname> </soap:body> HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: 321 <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soapenvelope" xmlns:soap="http://www.w3.org/2001/12/soapenvelope" soap:encodingstyle="http://www.w3.org/2001/12/soa p-encoding"> <soap:body xmlns:m="http://www.mysite.gr/students"> <m:getnameresponse> <m:name> Argiris </m:name> </m:getnameresponse> </soap:body> </soap:envelope> </soap:envelope> 04/28/10 Ανάργυρος Σιδέρης 60

ΒΙΒΛΙΟΓΡΑΦΙΑ "Δίκτυα Υπολογιστών", A.S. Tanenbaum, Εκδόσεις Παπασωτηρίου, 3η έκδοση. "Computer Networking: A Top - Down Approach Featuring the Internet", J.F.Kurose, K.W.Ross,Addison Wesley, 20043, 3rd edition 04/28/10 Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων, ΤΕΙ Κρὴτης 61