Αρχικά από την πλευρά του worker , με την εκκίνηση του επιλέγει μία τυχαία διαδρομή στον δοθέντα γράφο που αντιπροσωπεύει την προσομοίωση ενός χάρτη και συνδέεται με τον server. Έπειτα φορτώνει το γραφικό του περιβάλλον που αποτελείται από τον γράφο και ένα κουμπί , το οποίο προτρέπει τον χρήστη να το επιλέξει αν επιθυμεί να βρει την «κίνηση» μέσα στον χώρο του γράφου. Για λόγους απλοποίησης τα δεδομένα του γράφου είναι στατικά.
Στην περίπτωση που ο χρήστης πατήσει το κουμπί Compute traffic αποστέλλεται ένα μήνυμα στον server τύπου QUERY , το οποίο προκαλεί την εξής αλληλουχία βημάτων :
- Ο server δημιουργεί ένα μήνυμα ερώτησης ( QUERY )
- Αποστέλλει το μήνυμα αυτό σε όλους τους υπόλοιπους κόμβους τύπου worke, προκαλώντας τους να ελέγξουν αν έχουν περάσει από τους κόμβους του υπογράφου του αρχικού γράφου, που περιέχονται στο μήνυμα
- Αν έχει περάσει από κάποια ακμή, ο κάθε worker υπολογίζει την ταχύτητα και την χρονική στιγμή του γεγονότος αυτού για κάθε ερωτώμενο «δρόμο».
- Οι workers αποστέλλουν τα αποτελέσματα τους στον server μέσω μηνύματος REPLY
- O server κάνει την διαδικασία reduce στα δεδομένα που λαμβάνει υπολογίζοντας τα βάρη των ακμών σύμφωνα με την ταχύτητα κίνησης των workers και την χρονική στιγμή που ατή έλαβα χώρα.
- Και τελικά αποστέλλει στον αρχικό worker το αποτέλεσμα του υπολογισμού της κίνησης στον γράφο μέσω ενός μηνύματος REPLY
- Ο worker αυτός λαμβάνοντας τα δεδομένα , χρωματίζει κατάλληλα τον γράφο ώστε να γίνει η οπτική αναπαράσταση για τον χρήστη. Οι χρωματισμοί αυτοί είναι κοντά στο πράσινο για δρόμους με χαμηλή κίνηση , κίτρινο για μέτρια και κόκκινο και πορτοκαλί για υψηλή κίνηση
- Η διαδικασία μπορεί να επαναληφθεί
Ακολουθούν τρία παραδείγματα εκτέλεσης του προγράμματος :




Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου