Μηνύματα(messages) και υποδοχές(sockets)
Η εφαρμογή μας αποτελείται από τρεις βασικές δομοενότητες λογισμικού (modules), τον server, τον worker και τον client. Οι δομοενότητες αυτές επικοινωνούν μεταξύ τους με μηνύματα (messages). Η ανταλλαγή των μηνυμάτων πραγματοποιείται μέσω των αντίστοιχων υποδοχών (sockets) που υπάρχουν σε κάθε κόμβο. Συγκεκριμένα υπάρχουν οι υποδοχές του server (server sockets) οι υποδοχές των workers (worker sockets) και οι υποδοχές των clients (client sockets).
Εφαρμογή και επικοινωνία κόμβων
Στην εφαρμογή μας ο client θα έχει δύο κύρια modules. Ένα για την εμφάνιση της φόρμας εισόδου/εξόδου δεδομένων/αποτελεσμάτων κι ένα για την αποστολή/λήψη των δεδομένων/αποτελεσμάτων από και προς τον server.
Ο server περιλαμβάνει τέσσερα κύρια modules. Το πρώτο είναι αυτό της επικοινωνίας με τον client για λήψη/αποστολή δεδομένων/αποτελεσμάτων.Έπειτα το module διάσπασης δεδομένων. Ακολουθεί το module της επικοινωνίας με τους workers για αποστολή/λήψη δεδομένων/αποτελεσμάτων και τέλος το module σύνθεσης δεδομένων.
Ο worker έχει δύο κύρια modules. To module επικοινώνίας με τον server για αποστολή/λήψη δεδομένων/αποτελεσμάτων και το module σύνθεσης δεδομένων.
Ειδικότερα:
Βήμα 1ο
CLIENT: Με την εκκίνηση της εφαρμογής αρχικά δημιουργούνται τα sockets των server, client και worker, στη συνέχεια εγκαθιδρύεται μια νέα συνεδρία (session) μεταξύ client και server, ακολουθεί η εκτέλεση του κύριου σώματος της εφαρμογής και μετά εγκαθιδρύεται συνεδρία (session) μεταξύ server και workers.
Στην φόρμα εισαγωγής δεδομένων του client (InputForm) ο χρήστης εισάγει μια ακολουθία φυσικών αριθμών και τελεστών η οποία αποτελεί μία συμβολοσειρά (string). Αν η συμβολοσειρα σθμφωνεί με το προβλεπόμενο μορφότυπο, τότε πατώντας το πλήκτρο ΟΚ τα δεδοένα θα αποστέλλονται στον server μέσω του module επικοινωνίας με τον server.
Βήμα 2ο
SERVER: Αρχικά εγκαθιδρύεται συνεδρία μεταξύ server και workers και αφού ο server διασπάσει την σμβολοσειρά εισόδου σε επι-μέρους αθροίσματα (module διάσπασης) τα διαμοιράζει στους διαθέσιμους workers (module επικοινωνίας με τους workers).
Βήμα 3ο
WORKER: O worker λαμβάνει το επι-μέρους άθροισμα από τον server και το υπολογίζει (module σύνθεσης) και στη συνέχεια επιστρέφει στον server τα αποτελέσματα (module επικοινωνίας με server).
Βήμα 4ο
SERVER: O server αφού λάβει τα επι-μέρους αθροίσματα από τους workers τα συνθέτει και τα αθροίζει (module σύνθεσης) υπολογίζοντας το τελικό άθροισμα. Έπειτα αποστέλλει το άθροισμα αυτό στον client (module επικοινωνίας με client).
Βήμα 5ο
CLIENT: O client λαμβάνει το τελικό άθροισμα από τον server (module επικοινωνίας με server) και αυτό εμφανίζεται ως συμβολοσειρά στη φόρμα εξόδου (OutputForm).
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου