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



Σχετικά έγγραφα
ANDROID Προγραμματισμός Εφαρμογών

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΓΙΑ ΤΟΝ ΕΛΕΓΧΟ ΤΩΝ HX-GO02 & HX-GO1

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

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Εφαρµογές WebGIS Open Source

ιαχείριση Τηλεφωνικών Κλήσεων

Σύστημα διαχείρισης περιεχομένου (Content Management System)

Gmail: Η προσέγγιση της Google στο ηλεκτρονικό ταχυδρομείο

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

/software/web_tools/webapps/speller/.

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Οδηγίες Εργασίας 1 Facility-Game

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός:

Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων Σωτήρης Γυφτόπουλος

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Ειδικό Τεύχος : Linux και Ηχος. Η Υποδοµή

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

Περίληψη ιπλωµατικής Εργασίας

Linux Terminal Server Project

WIRELESS SENSOR NETWORKS (WSN)

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

Τοίχος προστασίας Firewall

winbank wallet App wallet

Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος

Λειτουργικά Συστήματα Η/Υ

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

Οικονομική Προσφορά Κατασκευή Ιστοσελίδας

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών

Javascript. του project /software/web_tools/webapps/search_engine/.

Connecto. Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Άγγελος Σφακιανάκης. Επιφάνεια Άμεσης Σύνδεσης

Λειτουργικά Συστήματα (Λ/Σ)

ΔΙΕΥΘΥΝΣΗ ΨΗΦΙΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΥΠΗΡΕΣΙΑΣ ΑΠΟΣΤΟΛΗΣ ΚΩΔΙΚΩΝ ΜΙΑΣ ΧΡΗΣΗΣ ΜΕΣΩ ΓΡΑΠΤΟΥ ΜΗΝΥΜΑΤΟΣ SMS (SMS TOKEN)

Εγκατάσταση του εκτυπωτή από το CD λογισμικού και τεκμηρίωσης

Οδηγίες Ανάκτησης Password λογαριασμού URegister

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

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

Ανάπτυξη διαδικτυακής εφαρμογής σε περιβάλλον κινητών συσκευών με λειτουργικό σύστημα Android

Σύστημα Αναθέσεων. Σχεδιασμός Υποσυστημάτων

Δίκτυα Υπολογιστών Ενότητα 9: Dynamic Host Configuration Protocol- DHCP

Εισαγωγή στο περιβάλλον Code::Blocks

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

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

$./MirrorInitiator -n <MirrorServerAddress> -p <MirrorServerPort> \\ -s <ContentServerAddress1:ContentServerPort1:dirorfile1:delay1, \\

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

HTTP API v1.6 SMSBOX.GR HTTP API v

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Διαχείριση Επιλογών Διαμόρφωσης

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΤΗΣ ΠΛΑΤΦΟΡΜΑΣ CORPMAIL

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

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

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

Ελεύθερο Ανοικτό Λογισμικό

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012

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

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

2. Εισαγωγή Δεδομένων σε Σχεσιακή Βάση Δεδομένων

1.2 Jason BDI Αρχιτεκτονική

Χρήση του Office 365 σε τηλέφωνο Android

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

QEMS TUTORIAL CRM. Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS.

Συλλογικοί Κατάλογοι & Διαδίκτυο

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

Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7. Ασκήσεις στο IP Fragmentation

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

Lexicon Software Pachutzu

Τεχνολογία Λογισμικού

Μποχρίνη Σταυρούλα ΑΜ:3173 Σταθόπουλος Αναστάσιος ΑΜ:3220

Διαγράμματα Κλάσεων στη Σχεδίαση

Αποστολή και λήψη μέσω SMARTER MAIL

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

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΛΟΓΑΡΙΑΣΜΩΝ ΗΛΕΚΤΡΟΝΙΚΗΣ ΑΛΛΗΛΟΓΡΑΦΙΑΣ ( accounts)

Κεφάλαιο 4. Λογισμικό Συστήματος

Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων)

2 η Εργαστηριακή Άσκηση

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

Διπλωματική Εργασία. Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης

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

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

Εγχειρίδιο Διαχειριστή. (Υπηρεσία Αναζήτησης Συνεπιβατών)

GPS Tracker ΤRΑΚΚΥ Personal

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

Fragmentation and Exclusion: Understanding and Overcoming the Multiple Impacts of the European Crisis (Fragmex)

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ GPRS 1. ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ GOOGLE EARTH

Transcript:

Κατανεμημένα Συστήματα Android Grid Application Θωμάς Αντώνιος (3050073) Καραβέλλας Θεμιστοκλής (3050055)

1. Εισαγωγή Το Android αποτελεί ένα λειτουργικό σύστημα για κινητές συσκευές. Το λειτουργικό αυτό σύστημα αναπτύχθηκε από την Google και την Open Handset Alliance. Είναι βασισμένο σε Linux πυρήνα και αυτό που το κάνει να ξεχωρίζει από τα υπόλοιπα λειτουργικά συστήματα αυτού του είδους είναι η δυνατότητα που παρεχει στους προγραμματιστές, να αναπτύσουν προγράμματα για το λειτουργικό συστημα και τη συσκευή στην οποία είναι αγκατεστημένο,χρησιμοποιώντας βιβλιοθήκες της Java που αναπτύχθηκαν και στις οποίες παρέχεται πρόσβαση από τη Google. Η εργασία μας αφορα την λειτουργία ενός κατανεμημένου συστήματος σε επίπεδο κινητής συσκεής στην οποία είναι εγκατεστημένο το Android. Για την επίτευξη της λειτουργίας δημιουργήσαμε δύο εφαρμογές οι οποίες λειτουργούν και λαμβάνουν το αποτέλεσμα τους μέσω της υλοποίησης ενός κατανεμημένου συστήματος. 1. Η πρώτη εφαρμογή που αναπτύξαμε προσθέτει ένα πλήθος τυχαίων ακέραιων αριθμών που βρίσκονται στο διάστημα από το 1 έως το 100. Το πλήθος των αριθμών που θα προστεθουν καθορίζεται από το χρήστη κατά την εκκίνηση του προγράμματος. Οι αριθμοί διανέμονται στους διαθέσιμους προς εργασία κόμβους οι οποίοι είναι συνδεδεμένοι στο σύστημα. Ο κάθε κόμβος πρέπει να προσθέσει τους αριθμούς που του έχουν σταλεί και να επιστρέψει το άθροισμα. Αφού αυτή η εργασία ολοκληρωθεί από τον κάθε κόμβο-εργατη το πρόγραμμα το οποίο εκτελεί ο χρήστης αναλαμβάνει να προσθέσει όλα τα επιμέρους αποτελέσματα-αθροίσματα που έχει λάβει από τους υπόλοιπους κόμβους του δικτύου, δίνοντας στον χρήστη τοτ ελικό αποτέλεσμα. 2. Η δεύτερη εφαρμογή που αναπυξαμε εκτελεί τη λειτουργία ενός φίλτρου ανεπιθύμητων μηνυμάτων το οποίο μπορεί να εξετάζει κάθε εισερχόμενο SMS. Η εφαρμογή υλοποιεί έναν listener ο οποίος για κάθε εισερχόμενο μήνυμα εμφανίζει την επιλογή του ελέγχου του περιεχομένου του. Κατα τον έλεγχο αυτό το κείμενο του εισερχόμενου μηνύματος διασπάται στις λέξεις από τις οποίες αποτελείται και διανέμεται στους κόμβους εργάτες του συστήματος. Οι κόμβοι εργάτες θα πρέπει να ελέγξουν για κάθε δωσμένη λέξη, αν ανήκει σε ένα σύνολο λέξεων οι οποίες συναντώνται συχνά σε ανεπιθύμητα μηνύματα. Για κάθε λέξη η οποία ανήκει σ αυτό το σύνολο αυξάνει την τιμή ενός μετρητή κατά μία μονάδα. Ολοκληρώνοντας τους ελέγχους, ο κάθε κόμβος-εργάτης στέλνει την τιμή του μετρητή στο πρόγραμμα που εκτελεί ο χρήστης. Η εφαρμογή αθροίζει τις τιμές των μετρητών και αν αυτές ξεπερνούν μια συγκεκριμένη τιμή τότε το μήνυμα χαρακτιρίζεται ώς ανεπιθύμητο.

2. Ο κώδικας Η υλοποίηση της κάθε εφαρμογής έχει αναπτυχθεί με τη χρήση εννέα packages. Για τις εφαρμογές θα αναφερθούμε σε κάποια από τα ποιο σημαντικά: gr.aueb.cs.androidgrid: Στο πακέτο αυτο γίνεται η ρύθμιση τoυ configuration με το οποίο θα λειτουργήσει το σύστημα. Ορίζονται οι διευθύνσεις για τον server,τον client,τους workers καθώς και οι παράμετροι λειτουργίας τους μέσα στο σύστημα. gr.aueb.cs.androidgrid.admin: Περιέχει την υλοποίηση των εργασιών του Admin του συστήματος. Παρέχει κυρίως πληροφορίες σχετικά με τη λειτουργία. gr.aueb.cs.androidgrid.server: Εδώ βρίσκεται η υλοποίηση των λειτουργιών του κόμβου o ο οποίος είναι server του συστήματος. Έχει μεθόδους για επικοινωνία με όλους τους κόμβους του συστήματος και καθορίζει την κίνηση των δεδομένων μέσα σ αυτό.ο Server αποτελεί το κομβικό σημείο που συνδέει τους διάφορους κόμβους και είναι υψίστης σημασίας η παρουσία του για τη λειτουργία του συστήματος. gr.aueb.cs.androidgrid.client: Εδώ υλοποιείται η λειτουργία του client μέσα στο δίκτυο. Καθορίζεται το διαθέσιμο σύνολο εργασιών αλλά και η επικοινωνία με το server. gr.aueb.cs.androidgrid.worker: Όμοια με τον client εδώ υπάρχουν κλάσεις που καθορίζουν τις εργασίες που μπορεί να εκτελέσει ο worker και παρέχουν πληροφορίες σχετικά με αυτές. gr.aueb.cs.androidgrid.messages: Είναι το πακέτο στο οποίο υλοποιούνται όλα τα μηνύματα με τα οποία επικοινωνούν οι κόμβοι μεταξύ τους. gr.aueb.cs.androidgrid.dummy: Στο πακέτο αυτό γίνεται η υλοποίηση της καθε μίας από τις εφαρμογές. Καθορίζουμε τον τρόπο με τον οποίο θέλουμε να λειτουργήσουν και μπορούν να λειτουργήσουν o client, ο worker και ο server στα πλαίσια της εφαρμογής. Ρυθμίζουμε τον τρόπο με τον οποίο επεξεργάζεται o worker τα δεδομένα που του αποστέλονται. Καθορίζουμε τις ενέργειες της client εφαρμογής που εκτελεί ο χρήστης και τις παραμέτρους του server που ρυθμίζει την επικοινωνία ανάμεσα στους κόμβους. Στο Grid συστημά μας ακόμα θα υλοποιήσουμε το virtual file system του JCGrid και τη χρήση SSL_Sockets τα οποία στην παρούσα έκδοση δεν είναι λειτουργικά. Παραπάνω τεκμηρίωση θα γράψουμε στο androidgrid.blogspot.com και θα προσπαθήσουμε να γράψουμε javadoc. Θεωρώντας ότι η εργασία μπορεί να φανεί χρήσιμη στην κοινότητα developers του Android θα την ανεβάσουμε σαν open source project και θα προσπαθήσουμε να την ανανέωνουμε τακτικά με νέες εκδόσεις και λειτουργίες.

3. ScreenShots Α) Εφαρμογή πρόσθεσης τυχαίων αριθμών.

B) Εφαρμογή φίλτρου ανεπιθύμητων μηνυμάτων: