Πέμπτη 10 Φεβρουαρίου 2011

Δομή και αρχιτεκτονική της εφαρμογής

Μηνύματα

Στην εφαρμογή Jocondus υπάρχουν τέσσερα διαφορετικά μηνύματα:
Query από τον worker στον master
Το μήνυμα αυτό σηματοδοτεί την έναρξη μιας νέας διαδικασίας map reduce.
Query από τον master στον worker
Το μήνυμα αυτό δίνει εντολή στον worker να ψάξει στον πίνακα με τους δρόμους από τους οποίους έχει περάσει και να στείλει την ταχύτητά και την ώρα που πέρασε από τον κάθε δρόμο.
Reply από τον worker στον master
Το μήνυμα αυτό περιέχει τους δρόμους που πέρασε ο worker κατά τη διάρκεια της τελευταίας ώρας μαζί με την ταχύτητα που είχε σε κάθε δρόμο.
Reply από τον master στον worker
Το μήνυμα αυτό περιέχει την τελική απάντηση του master στον worker.



Αρχιτεκτονική του Jocondus Master

Κλάση ServerRunnable

Η κλάση ServerRunnable είναι υπεύθυνη να περιμένει για νέους worker να κάνουν αίτηση tcp σύνδεσης. Όταν γίνει μια αίτηση την δέχεται και ξεκινάει ένα νέο thread με runnable το WorkerRunnable.

Κλάση WorkerRunnable

Η κλάση WorkerRunnable είναι υπεύθυνη να ακούει για μηνύματα που στέλνει ο worker. Σε περίπτωση που λάβει ένα νέο query, τότε ξεκινάει ένα νέο thread με runnable το MapReduceRunnable. Σε περίπτωση που λάβει reply για κάποιο query τότε το προσθέτει στo reduceTable του query στο οποίο αναφέρεται.

Κλάση MapReduceRunnable

Η κλάση MapReduceRunnable φτιάχνει ένα νέο query, το στέλνει σε όλους τους workers, περιμένει να ληφθούν όλα τα replies, κάνει reduce τα δεδομένα και τέλος στέλνει reply στον worker που έκανε το query.



Αρχιτεκτονική του Jocondus Worker

Κλάση JocondusMainActivity

Η κλάση JocondusMainActivity ξεκιναει μια tcp σύνδεση με τον master, καθώς και ένα thread με το runnable ConnectionRunnable. Στη συνέχεια είναι υπεύθυνη για τον χειρισμό του GUI και την αποστολή του query μηνύματος στον master.

Κλάση ConnectionRunnable

Η κλάση ConnectionRunnable είναι υπεύθυνη για να ακούει τα μηνύματα που στέλνει ο master. Σε περίπτωση που λάβει reply τότε το προωθεί στο JocondusMainActivity. Στην περίπτωση που λάβει query τότε ξεκινάει ένα νέο thread με runnable το MapSearchAndReply.

Κλάση MapSearchAndReply

Η κλάση MapSearchAndReply ψάχνει τη λίστα με τους δρόμους από τους οποίους έχει περάσει ο worker και στέλνει το reply μήνυμα στον master.


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

Δημοσίευση σχολίου