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

Σχετικά έγγραφα
Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι.

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

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

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

(C) 2010 Pearson Education, Inc. All rights reserved.

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

ΕΠΛ 012. JavaScripts

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

Εντοπισμός τερματισμού. Κατανεμημένα Συστήματα 1

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

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

HY150a Φροντιστήριο 3 24/11/2017

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

Basic Missions

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

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

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

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

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

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

JAVASCRIPT 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990,

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Το αίτημα (http request) για την αποστολή μηνύματος γίνεται στον server μας στο URL με τις ακόλουθες μεταβλητές.

1. Τρόποι πρόσβασης στο σας

Δομές Δεδομένων & Αλγόριθμοι

SOAP API. Table of Contents

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

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διαβάστε στο Παράρτημα Α.1 πώς θα γράψετε ένα πρόγραμμα PHP για την παροχή δεδομένων σε μορφή διαφορετική από την HTML.

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

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

PHP 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Μορφοποίηση υπό όρους : Μορφή > Μορφοποίηση υπό όρους/γραμμές δεδομένων/μορφοποίηση μόο των κελιών που περιέχουν/

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

«Συγχρονισμός ρολογιών υπό την παρουσία σφαλμάτων»

Χειµερινό Εξάµηνο

Διάλεξη 4: Εκλογή Προέδρου σε Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

Εκλογήαρχηγού. Εισαγωγή Ισχυρά συνδεδεµένος γράφος ακτύλιος µίας κατεύθυνσης Τοπολογία δένδρου. Κατανεµηµένα Συστήµατα 06-1

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

ΒΟΗΘΕΙΑ ΓΙΑ ΤΟ ΗΛΕΚΤΡΟΝΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ( )

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

HTTP API v1.6 SMSBOX.GR HTTP API v

ΦΥΣ 145 Υπολογιστικές Μέθοδοι στη Φυσική. Πρόοδος 26 Μαρτίου 2007 Ομάδα 1 η

TMA4115 Matematikk 3

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Προγραμματισμός Υπολογιστών με C++

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

How to register an account with the Hellenic Community of Sheffield.

Εγχειρίδιο χρήσης συστήματος ηλεκτρονικής αλληλογραφίας της Ελληνικής Ομοσπονδίας Μπριτζ

Παράλληλη Επεξεργασία Κεφάλαιο 8 ο Προγράμματα Περάσματος Μηνυμάτων

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

ΠΡΟΣΩΠΙΚΗ ΘΥΡΙ Α ΑΛΛΗΛΟΓΡΑΦΙΑΣ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Οδηγίες χρήσης υλικού D U N S Registered

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

Συντονισμός και συμφωνία

Σημειωματάριο Τετάρτης 18 Οκτ. 2017

Εργαστήριο 9. Styling with Javascript

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

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

CYTA Cloud Server Set Up Instructions

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15

Instruction Execution Times

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Οδηγίες χρήσης. Registered. Οδηγίες ένταξης σήματος D-U-N-S Registered στην ιστοσελίδα σας και χρήσης του στην ηλεκτρονική σας επικοινωνία

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

Σύστημα Διαμοιρασμού Βιβλιογραφικών Αναφορών. Κοντοτάσιου Ιωάννα ΑΜ 3125 Μπέσσας Απόστολος ΑΜ 3171

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

Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Μηχανή αναζήτησης βασισμένη σε AJAX και Soundex. Πτυχιακή Εργασία

2 Composition. Invertible Mappings

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Προγραμματισμός Ι. Πίνακες, Δείκτες, Αναφορές και Δυναμική Μνήμη. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

API: Applications Programming Interface

Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων

Ενότητα 2 Εργαλεία για την αναζήτηση εργασίας: Το Βιογραφικό Σημείωμα

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

Προγραμματισμός ΙΙ (Java) 6. Διαχείριση δεδομένων

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

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

Transcript:

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

Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate with web servers, and much more. is easy to learn. You will enjoy it. http://www.w3schools.com/js/

Javascript Μεταβλητές & Συναρτήσεις Απλές μεταβλητές: iablename = 5; iablename = str ; Αντικείμενα: obj = new Object(); Ανάθεση τιμών σε αντικείμενα: obj.attributename obj.attributename = 5; ή obj[ attributename ] =5; = a string value ; ή obj[ attributename ] = a string value ; Διαγραφή τιμών από αντικείμενα: delete obj.attributename; Ανάγνωση τιμών από αντικείμενα: obj.attributename; //επιστρέφει την τιμή που είναι καταχωρημένη στην παράμετρο attributename. Συναρτήσεις: function functionname() { //do stuff here function functionname() { //do stuff here return out; function functionname(input1, input2) { //do stuff here

PeerJS PeerJS wraps the browser's WebRTC implementation to provide a complete, configurable, and easy-to-use peer-topeer connection API. Equipped with nothing but an ID, a peer can create a P2P data or media stream connection to a remote peer. API Key: http://peerjs.com/peerserver peer = new Peer({key: 'your_api_key');

PeerJS Βασικές λειτουργίες Δημιουργία κόμβου: peer = new Peer('pick-an-id', {key: 'myapikey'); peer = new Peer({key: 'myapikey'); Σύνδεση σε άλλο κόμβο: conn = peer.connect('another-peers-id'); conn.on('open', function(){ ); conn.send('hi!'); Διαχείριση μηνυμάτων από άλλους κόμβους: peer.on('connection', function(conn) { conn.on('data', function(data){ ); ); // Will print 'hi!' console.log(data);

Δομή του κώδικα Αρχεία που θα σας δίνονται. server.html Ο Θα Server που υλοποιεί την τοπολογία. Όλες οι διεργασίες του προβλήματος συνδέονται σε αυτόν και αυτός αναλαμβάνει να προωθήσει τα μηνύματα που στέλνουν στους παραλήπτες του. δίνετε έτοιμος. client.html Ο Client που υλοποιεί τον κώδικα της κάθε διεργασίας.

Client Κάθε Βασικές διεργασία συνδέεται μέσω του server και μίας τοπολογίας ορισμένης σε αυτόν με άλλες διεργασίες. λειτουργίες Αρχικοποίηση Εκτέλεση μεταβλητών και κατάστασης. του γύρου Επεξεργασία εισερχόμενων μηνυμάτων και αποστολή μηνυμάτων.

Client - Ανταλλαγή Μηνυμάτων Εισερχόμενα δεδομένα Αντικείμενο Αντικείμενο receiveddata. Περιλαμβάνει τα εξής στοιχεία: receiveddata.round;// receiveddata.message;//τα επιστρέφει τον τρέχον γύρος εκτέλεσης δεδομένα που έλαβε από την διεργασία αποστολέα. Για παράδειγμα receiveddata.message.iablename θα επιστρέψει την τιμή που είναι αποθηκευμένη στο iablename που έστειλε ο αποστολέας. datatosend Σε Εναλλακτικά αυτό το αντικείμενο καταχωρείται ότι θέλετε να στείλει η διεργασία. Παράδειγμα: datatosend.attributename = value; ή datatosend[ attributename ]=value; μπορείτε να χρησιμοποιείτε την παρακάτω μέθοδο που θα δίνετε στον κώδικα του client. //example: addtomessage[ ID, nodeid]; function addtomessage(key, value) { datatosend[key] = value;

LCR Algorithm Πρόβλημα Δίκτυο Αρχηγός Οι Γύρος Επόμενοι εκλογής αρχηγού. δακτυλίου. εκλέγεται αυτός με τη μεγαλύτερη ταυτότητα. διεργασίες γνωρίζουν μόνο την ταυτότητά τους. 1: Οι Διεργασίες στέλνουν την ταυτότητά τους στον δεξιόστροφο γείτονα. γύροι: Μόλις μία διεργασία λάβει μία ταυτότητα, τότε: Αν Αν Αν είναι μεγαλύτερη από την δική της την προωθεί στον δεξιόστροφο γείτονα. είναι μικρότερη τότε δεν κάνει τίποτα. είναι ίδια με την δική της τότε εκλέγεται αρχηγός.

Server Τοπολογία LCR Δίκτυο 8 Κάθε Δακτυλίου Διεργασίες διεργασία στέλνει μήνυμα στον δεξιόστροφο γείτονά της

Client LCR Αρχικοποίηση //initialization Επεξεργασία nodeid;//η τιμή καταχωρείται αυτόματα. leader = false; γύρου Γίνεται στην συνάρτηση processround(receiveddata). Δέχεται Επεξεργάζεται Στέλνει σαν είσοδο ένα μήνυμα που της έστειλε κάποια άλλη διεργασία στον προηγούμενο γύρο. το μήνυμα. το μήνυμα που θα λάβει η γειτονική της διεργασία στον επόμενο γύρο.

Client LCR Εκτέλεση γύρου function processround(receiveddata) { round = receiveddata.round; if (round == 0) { //if round is 0 then send my id. addtomessage("id", nodeid); else { //if received message contains attribute ID then do stuff if (receiveddata.message.hasownproperty("id")) { inid = receiveddata.message.id; //if received id is larger than own id then forward it. if (inid > nodeid) { addtomessage("id", inid); else if (inid == nodeid) { //if received id is the same as my id then i am the leader. leader = true; addlog("i am the leader!!!");