Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α"

Transcript

1 Α Ρ Ι Σ Τ Ο Τ Ε Λ Ε Ι Ο Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Θ Ε Σ Σ Α Λ Ο Ν Ι Κ Η Σ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α «ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ ΗADOOP» Trajectories Management of Moving Objects in Hadoop «ΣΑΝΙΔΑ ΣΤΑΥΡΟΥΛΑ» ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: Παπαδόπουλος Απόστολος, Επίκουρος Καθηγητής ΘΕΣΣΑΛΟΝΙΚΗ 2014

2

3 Η μεταπτυχιακή αυτή εργασία πραγματοποιήθηκε στο Τμήμα Πληροφορικής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης, στα πλαίσια του μεταπτυχιακού προγράμματος «Π.Μ.Σ Πρόγραμμα Μεταπτυχιακών Σπουδών στην Πληροφορική» και κατατέθηκε τον Φεβρουάριο του Επιβλέπων καθηγητής ήταν ο κ. Παπαδόπουλος Απόστολος

4

5 ΠΕΡΙΛΗΨΗ Π Ε Ρ Ι Λ Η Ψ Η Μια από τις σημαντικότερες προκλήσεις στην αποδοτική διαχείριση δεδομένων είναι η αποθήκευση, η επερώτηση και η ανάλυση μεγάλων όγκων δεδομένων. Λαμβάνοντας υπόψη ότι η θέση και ο χρόνος είναι σημαντικά χαρακτηριστικά τα οποία συχνά συνοδεύουν τα αντικείμενα, στην εργασία αυτή, μελετάμε τη διαχείριση μεγάλων συνόλων δεδομένων τροχιών (massive trajectory datasets) με βάση το προγραμματιστικό μοντέλο MapReduce. Συγκεκριμένα, μελετάμε την λειτουργία της «ένωσης-join» μεταξύ ενός ενδεχομένως μεγάλου συνόλου δεδομένων το οποίο αποτελείται από περιοχές ενδιαφέροντος (regions of interest) και ενός ογκώδους συνόλου δεδομένων τροχιών το οποίο αναπαριστά την κίνηση ενός συνόλου κινούμενων αντικειμένων. Η έξοδος της λειτουργίας της «ένωσης-join» είναι ένα σύνολο εγγραφών οι οποίες αναπαριστούν την τομή μεταξύ τμημάτων των τροχιών (segments) και χωρικών περιοχών (spatial region) μαζί με τα αντίστοιχα χρονικά στιγμιότυπα (time instances). Το αποτέλεσμα αυτό παρουσιάζει ιδιαίτερο ενδιαφέρον για διάφορες εφαρμογές όπως, η συμπλήρωση των τροχιών με σημασιολογικό περιεχόμενο, ο χαρακτηρισμός των τροχιών χρησιμοποιώντας την πληροφορία που περιέχεται στις περιοχές ενδιαφέροντος ή ακόμη η ανίχνευση τροχιών οι οποίες παραβιάζουν απαγορευμένες ζώνες/περιοχές. Τέτοιου είδους έξοδος μπορεί επίσης να χρησιμοποιηθεί για να υποστηρίξει άλλες λειτουργίες. ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ τροχιές, χωροχρονικά δεδομένα, κινούμενα αντικείμενα, λειτουργία join, MapReduce, Hadoop ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE V

6

7 ABSTRACT A B S T R A C T One of the most important challenges for efficient data management is the storage, querying and analysis of massive datasets. Taking into account that location and time are important attributes that frequently accompany objects, in this work, we study the management of massive trajectory datasets based on the MapReduce programming paradigm. In particular, we explore the join operation between a potentially large set containing regions of interest and a massive set of trajectories representing the motion of a set of moving objects. The output of this join operation is a set of records representing the intersection between trajectory segments and spatial regions along with the corresponding time instances. This is an interesting result in order to complement trajectories with semantic content, to annotate trajectories using information contained in regions of interest, or to detect trajectories violating restricted areas, just to name a few applications. This kind of output can be used to support other operations as well. KEYWORDS trajectories, spatiotemporal data, moving objects, join processing, MapReduce, Hadoop ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE VΙΙ

8

9 ΕΥΧΑΡΙΣΤΙΕΣ Ε Υ Χ Α Ρ Ι Σ Τ Ι Ε Σ Η παρούσα διπλωματική εργασία πραγματοποιήθηκε στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, στο τμήμα Πληροφορικής, στα πλαίσια του μεταπτυχιακού προγράμματος σπουδών με τίτλο «ΠΜΣ - Πρόγραμμα Μεταπτυχιακών Σπουδών στην Πληροφορική», κατά το έτος Η ολοκλήρωση της μεταπτυχιακής αυτής εργασίας θα ήταν αδύνατη χωρίς την πολύτιμη υποστήριξη του καθηγητή μου, Επίκουρου Καθηγητή του Τμήματος Πληροφορικής του ΑΠΘ, κ. Παπαδόπουλου Απόστολου. Του εκφράζω ένα βαθύ ευχαριστώ για όλη την βοήθεια και την υποστήριξη που μου προσέφερε, καθ όλη τη διάρκεια εκπόνησης αυτής της εργασίας. Τέλος, θα ήθελα να ευχαριστήσω πολύ την οικογένειά μου για την αμέριστη συμπαράστασή τους. Αποτέλεσαν ένα ανεκτίμητο στήριγμα για μένα και σε αυτούς οφείλω όλη την πορεία των σπουδών μου, μέχρι σήμερα. <Φεβρουάριος 2014> Σανιδά Σταυρούλα ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE ΙΧ

10

11 ΠΕΡΙΕΧΟΜΕΝΑ Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α ΠΕΡΙΛΗΨΗ... V EXECUTIVE SUMMARY... VII ΕΥΧΑΡΙΣΤΙΕΣ... IX ΠΕΡΙΕΧΟΜΕΝΑ... XI ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ... XIV ΛΙΣΤΑ ΠΙΝΑΚΩΝ... XV ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΜΟΝΤΕΛΟΥ ΠΑΡΑΔΕΙΓΜΑ ΧΡΗΣΗΣ ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Η ΕΝΝΟΙΑ ΤΗΣ ΤΡΟΧΙΑΣ ΕΙΣΑΓΩΓΗ ΣΤΟ SPATIOTEMPORAL JOIN ΟΡΙΣΜΟΣ ΠΡΟΒΛΗΜΑΤΟΣ ΠΡΟΣΕΓΓΙΣΗ ΕΠΙΛΥΣΗΣ ΑΛΓΟΡΙΘΜΟΙ SPATIOTEMPORAL JOIN ΑΛΓΟΡΙΘΜΟΣ UPA ΑΛΓΟΡΙΘΜΟΣ SPA Παραλλαγή SPA-PS Παραλλαγή SPA-SS ΣΥΝΟΨΗ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 4: ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ CLUSTER ΚΑΙ ΔΕΔΟΜΕΝΑ ΜΕΛΕΤΗ ΕΞΙΣΟΡΡΟΠΗΣΗΣ ΦΟΡΤΟΥ ΜΕΛΕΤΗ ΑΠΟΔΟΣΗΣ ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE XI

12 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 5: ΒΕΛΤΙΩΣΕΙΣ ΚΙΝΗΤΡΟ ΒΕΛΤΙΩΣΗ JOIN ΚΕΦΑΛΑΙΟ 6: ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΡΑΡΤΗΜΑ I: ΑΝΑΦΟΡΕΣ ΠΑΡΑΡΤΗΜΑ IΙ: ΑΚΡΩΝΥΜΑ ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE ΧΙΙ

13

14 ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ Λ Ι Σ Τ Α Σ Χ Η Μ ΑΤ Ω Ν ΕΙΚΟΝΑ 1.1: ΔΙΚΤΥΟ GPS ΕΙΚΟΝΑ 2.1: ΥΠΟΒΟΛΗ ΕΡΓΑΣΙΑΣ ΣΕ HADOOP CLUSTER ΕΙΚΟΝΑ 2.2: ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΟΥ HADOOP ΕΙΚΟΝΑ 2.3: HIGH LEVEL ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ HADOOP ΕΙΚΟΝΑ 2.4: ΛΟΓΙΚΗ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ HDFS EIΚΟΝΑ 2.5: ΛΟΓΙΚΗ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ MAPREDUCE ΕΙΚΟΝΑ 2.6: ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ ΤΩΝ ΣΥΝΑΡΤΗΣΕΩΝ MAP/REDUCE ΕΙΚΟΝΑ 2.7: ΛΟΓΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ ΤΗΣ ΣΥΝΑΡΤΗΣΗΣ MAP ΕΙΚΟΝΑ 2.8: ΛΟΓΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ ΤΗΣ ΣΥΝΑΡΤΗΣΗΣ REDUCE ΕΙΚΟΝΑ 2.9: ΥΠΟΒΟΛΗ ΕΡΓΑΣΙΑΣ ΣΤΟ MAPREDUCE ΕΙΚΟΝΑ 2.10: ΡΟΗ ΔΕΔΟΜΕΝΩΝ ΣΤΟ MAPREDUCE EIΚΟΝΑ 2.11: ΕΚΤΕΛΕΣΗ ΤΗΣ ΕΡΓΑΣΙΑΣ WORDCOUNT ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE ΕΙΚΟΝΑ 2.12: WORD_CΣOUNT.JAVA ΕΙΚΟΝΑ 3.1: RAW TRAJECTORY ΕΙΚΟΝΑ 3.2: STRUCTURED TRAJECTORY ΕΙΚΟΝΑ 3.3: SEMANTIC TRAJECTORY ΕΙΚΟΝΑ 3.4: ΣΤΙΓΜΙΟΤΥΠΟ ΠΡΟΒΛΗΜΑΤΟΣ SPATIAL JOIN EIΚΟΝΑ 3.5: ΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ SPATIAL JOIN ΕΙΚΟΝΑ 3.6: ΣΥΜΜΕΤΡΙΚΗ VS. K-D TREE ΔΙΑΜΕΡΙΣΗ ΤΟΥ ΧΩΡΟΥ ΕΙΚΟΝΑ 3.7: ΑΛΓΟΡΙΘΜΟΣ UPA ΕΙΚΟΝΑ 3.8: ΑΛΓΟΡΙΘΜΟΣ SPA-PS ΕΙΚΟΝΑ 3.9: ΑΛΓΟΡΙΘΜΟΣ SPA-SS ΕΙΚΟΝΑ 4.1: ΤΥΠΙΚΗ ΑΠΟΚΛΙΣΗ VS. ΠΛΗΘΟΣ PARTITIONS EIΚΟΝΑ 4.2: ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ VS. ΠΛΗΘΟΣ PARTITIONS ΕΙΚΟΝΑ 4.3: ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ VS. ΜΕΓΕΘΟΣ ΣΥΝΟΛΟΥ ΔΕΔΟΜΕΝΩΝ ΕΙΚΟΝΑ 4.4: ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ VS. ΠΛΗΘΟΣ REDUCE TASKS ΕΙΚΟΝΑ 4.5: ΤΥΠΙΚΗ ΑΠΟΚΛΙΣΗ VS. ΡΥΘΜΟΣ ΔΕΙΓΜΑΤΟΛΗΨΙΑΣ ΕΙΚΟΝΑ 5.1: ΠΟΣΟΣΤΟ ΧΡΟΝΟΥ ΕΚΤΕΛΕΣΗΣ ΑΝΑ ΦΑΣΗ MAPREDUCE ΕΙΚΟΝΑ 5.2: PSSJ VS. SPSSJ ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE XIV

15 ΛΙΣΤΑ ΠΙΝΑΚΩΝ Λ Ι Σ Τ Α Π Ι Ν Α Κ Ω Ν ΠΙΝΑΚΑΣ 1.1: ΕΦΑΡΜΟΓΕΣ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ ΤΗΣ ΤΡΟΧΙΑΣ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΠΙΝΑΚΑΣ 4.1: ΠΑΡΑΜΕΤΡΟΙ ΚΑΙ ΤΙΜΕΣ ΠΙΝΑΚΑΣ 4.2: ΣΥΝΟΛΑ ΔΕΔΟΜΕΝΩΝ ΤΡΟΧΙΩΝ ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE XV

16 ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ Κ Ε Φ Α Λ Α Ι Ο 1 : Ε Ι Σ Α Γ Ω Γ Η ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 16

17 ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ ΕΙΣΑΓΩΓΗ Μέσα στο χρόνο, οι άνθρωποι ανέπτυξαν διάφορους τρόπους για τον προσδιορισμό της θέσης τους πάνω στη γη και την πλοήγησή τους από τη μια περιοχή στην άλλη. Οι πρώτοι ναυτικοί βασίζονταν σε παρατήρηση των ουράνιων σωμάτων, όπως ο ήλιος και τα αστέρια, για να υπολογίσουν την θέση τους. Το 1920 μαρτυράται η εμφάνιση μιας πιο εξελιγμένης τεχνικής, της ραδιοπλοήγησης. Η τεχνική αυτή βασιζόταν κατά κύριο λόγο σε ραδιοσυχνότητες, οι οποίες επέτρεπαν στους πλοηγητές να εντοπίζουν την κατεύθυνση της κίνησης των εγκατεστημένων στην ξηρά πομπών όταν αυτοί ήταν εντός εμβέλειας. Αργότερα, η ανάπτυξη των τεχνητών δορυφόρων κατέστησε δυνατή την μετάδοση ακριβέστερων ραδιοσημάτων και άνοιξε το δρόμο σε μια νέα εποχή στην τεχνολογία πλοήγησης. Οι δορυφόροι χρησιμοποιήθηκαν για πρώτη φορά στην εύρεση της θέσης με ένα απλό αλλά αξιόπιστο ναυτικό σύστημα στο δισδιάστατο χώρο, γνωστό με την ονομασία Transit. Το Transit έθεσε τα θεμέλια για ένα σύστημα που αργότερα θα έφερνε την επανάσταση στο χώρο της πλοήγησης, το Παγκόσμιο Σύστημα Θεσιθεσίας (GPS) 1. Η εξέλιξη στον χώρο της πλοήγησης, από την πρώτη εμφάνιση του GPS έως και σήμερα είναι μεγάλη. Τα τελευταία χρόνια, όλο και περισσότερες κινητές συσκευές (mobile devices) εξοπλίζονται με συστήματα παρακολούθησης (tracking systems), τα οποία αναμεταδίδουν πληροφορία σχετικά με την ακριβή θέση (χωρική πληροφορία) των συσκευών, ανά τακτά χρονικά διαστήματα (χρονική πληροφορία). Κινητά τηλέφωνα εξοπλισμένα με GPS, οχήματα με εξοπλισμό πλοήγησης, αλλά και πλήθος συσκευών GPS που χρησιμοποιούνται σε laptops, βραχιόλια, κολιέ ή ακόμα τα λεγόμενα έξυπνα παπούτσια (smart shoes) αποτελούν μερικά μόνο παραδείγματα. Οι αισθητήρες παρακολούθησης παράγουν έναν μεγάλο όγκο δεδομένων τα οποία μπορούν να αποθηκευτούν σε χωροχρονικές βάσεις δεδομένων (spatiotemporal databases) για περαιτέρω επεξεργασία και ανάλυση. Τα ιστορικά αυτά δεδομένα μπορούν να χρησιμοποιηθούν σε διάφορα πεδία εφαρμογών όπως, η μελέτη 1 Το GPS (Global Positioning System), Παγκόσμιο Σύστημα Θεσιθεσίας είναι ένα παγκόσμιο σύστημα εντοπισμού θέσης, το οποίο βασίζεται σε ένα "πλέγμα" εικοσιτεσσάρων δορυφόρων της Γης, στους οποίους υπάρχουν ειδικές συσκευές, οι οποίες ονομάζονται "δέκτες GPS". Οι δέκτες αυτοί παρέχουν ακριβείς πληροφορίες για τη θέση ενός σημείου, το υψόμετρό του, την ταχύτητα και την κατεύθυνση της κίνησης του. Επίσης, σε συνδυασμό με ειδικό λογισμικό χαρτογράφησης μπορούν να απεικονίσουν γραφικά τις πληροφορίες αυτές. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 17

18 ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ γεωγραφικών φαινομένων, η μετανάστευση ζώων, η παρακολούθηση της κίνησης μιας ομάδας ή/και μεμονομένων ατόμων, η παρακολούθηση της τροχιάς οχημάτων κ.α. Στον Πίνακα 1.1, δίνονται μερικά παραδείγματα οντοτήτων των οποίων η παρακολούθηση της τροχιάς θα μπορούσε να αποδειχθεί χρήσιμη σε πολλές εφαρμογές. Πίνακας 1.1: Εφαρμογές παρακολούθησης της τροχιάς κινούμενων αντικειμένων Moving Points People: Movements of a terrorist/spy/criminal Animals: Determine trajectories of birds, whales, Which distance do they traverse, at which speed? How often do they stop? Where are the whales now? Did their habitats move in the last 20 years? Satellites, spacecraft, planets: Which satellites will get close to the route of this spacecraft within the next 4 hours? Cars: Taxis: Which one is closest to a passenger request position? Trucks: Which routes are used regularly? Did the trucks with dangerous goods come close to a high risk facility? Planes: Were any two planes close to a collision? Are two planes heading towards each other (going to crash)? Did planes cross the air territory of state X? Moving Regions Countries: What was the largest extent ever of the Roman empire? On which occasions did any two states merge? (Reunification, etc.) Which states split into two or more parts? How did the Serb-occupied areas in former Yugoslavia develop over time? When was the maximal extent reached? Forests, Lakes: How fast is the Amazon rain forest shrinking? Is the dead sea shrinking? What is the minimal and maximal extent of river X during the year? Glaciers: Does the polar ice cap grow? Does it move? Where must glacier X have been at time Y (backward projection)? Storms: Where is the tornado heading? When will it reach Florida? Troops, armies: Hannibal going over the alps. Show his trajectory. When did he pass village X? ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 18

19 ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ At what speed does this plane move? What is its top speed? Did Iraqi planes cross the 39th degree? Ships: Are any ships heading towards shallow areas? Find strange movements of ships indicating illegal dumping of waste. Rockets, missiles, tanks, submarines: All kinds of military analyses Scalar functions over space, e.g. temperature: Where has the 0-degree boundary been last midnight? Continents: History of continental shift Ο όγκος των χωροχρονικών δεδομένων (spatiotemporal data) που συλλέγονται από τις διάφορες συσκευές αυξάνεται εκθετικά, με αποτέλεσμα να προκύπτει πρόβλημα όσον αφορά την αποδοτική διαχείριση τους. Ο πολλαπλασιασμός των κινητών συσκευών σε συνδυασμό με την ικανότητά τους να συλλέγουν και να αποθηκεύουν δεδομένα με υψηλή συχνότητα, έχει ήδη οδηγήσει στην «έκρηξη» των διαθέσιμων χωροχρονικών δεδομένων. Οι τάξεις μεγέθους των δεδομένων αυτών είναι τέτοιες που καθίσταται δύσκολη έως αδύνατη η επεξεργασία και η διαχείρισή τους από τις συμβατικές αρχιτεκτονικές και αλγορίθμους. Οι απαιτήσεις επεξεργασίας και ανάλυσης ξεπερνούν την υπολογιστική χωρητικότητα των παραδοσιακών κεντρικοποιημένων συστημάτων και τεχνολογιών, με αποτέλεσμα να απαιτείται η διαίρεσή τους σε μικρότερα σύνολα και η κατανομή τους μεταξύ χιλιάδων μηχανών, οι οποίες μπορούν να δρούν παράλληλα για την παραγωγή των αποτελεσμάτων μέσα σε αποδεκτά χρονικά πλαίσια. Εικόνα 1.1: Δίκτυο GPS ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 19

20 ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ Η ανάγκη για επεξεργασία πάρα πολύ μεγάλων όγκων δεδομένων ταυτόχρονα, σε κατανεμημένα συστήματα όπου υπάρχουν μαζικές παράλληλες μηχανές και ο τρόπος διαχείρισης των πιθανών σφαλμάτων, απασχόλησε για μεγάλο χρονικό διάστημα τους ερευνητές. Στόχος, ήταν η εύρεση μιας εύκολης λύσης, η οποία θα παρείχε εκτέλεση υψηλού επιπέδου εφαρμογών και αποδέσμευση των προγραμματιστών από πολύπλοκες υλοποιήσεις. Την λύση έδωσε η Google με την δημοσίευση του μοντέλου MapReduce. Το μοντέλο περιγράφεται αναλυτικά στην επόμενη ενότητα. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 20

21 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Κ Ε Φ Α Λ Α Ι Ο 2 : Τ Ο Μ Ο Ν Τ Ε Λ Ο M APR E D U C E ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 21

22 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Στο κεφάλαιο αυτό περιγράφεται το προγραμματιστικό μοντέλο MapReduce, το οποίο υποστηρίζει την κατανεμημένη επεξεργασία σε συστοιχίες υπολογιστών (clusters). 2.1 ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ Η σημερινή εποχή χαρακτηρίζεται από κατακλυσμό δεδομένων. Οι άνθρωποι ανεβάζουν βίντεο στο Διαδίκτυο, πραγματοποιούν λήψη εικόνων με το κινητό τους τηλέφωνο, ανταλάσσουν μηνύματα με φίλους, ενημερώνουν την κατάστασή τους στο Facebook, αφήνουν το σχόλιο τους σε σελίδες του ιστού, επιλέγουν την προβολή διαφημίσεων κ.ο.κ. Οι μηχανές, από την άλλη πλευρά παράγουν και αποθηκεύουν όλο και περισσότερα δεδομένα. Η εκθετική αύξηση του όγκου των δεδομένων, αποτέλεσε αρχικά πρόκληση για εταιρείες αιχμής όπως, οι γνωστές σε όλους μας Google [I], Yahoo[II], Amazon[III] και Microsoft[IV]. Οι εταιρείες αυτές χρειάστηκε να επεξεργαστούν terabytes και petabytes δεδομένων ώστε να μπορούν να αποφανθούν για το ποιες ιστοσελίδες είναι οι πιο δημοφιλείς, ποια βιβλία εμφανίζουν μεγαλύτερη ζήτηση, και ποιες διαφημίσεις προσελκύουν το ενδιαφέρον των χρηστών. Τα υπάρχοντα εργαλεία, ωστόσο, αποδείχθηκαν ανεπαρκή για την επεξεργασία αυτού του όγκου δεδομένων. Έτσι, η Google ήταν η πρώτη εταιρεία η οποία δημοσίευσε το MapReduce, ένα σύστημα το οποίο χρησιμοποίησε για την κλιμάκωση των μεγάλων αναγκών της για επεξεργασία δεδομένων. Το σύστημα αυτό συγκέντρωσε το ενδιαφέρον πολλών. Πληθώρα εταιρειών αντιμετώπιζε τις ίδιες προκλήσεις κλιμάκωσης, ωστόσο δεν ήταν εφικτή για αυτές η δημιουργία ενός μοντέλου αντίστοιχου του MapReduce. Την ευκαιρία αυτή εκμεταλλεύτηκε ο Doug Cutting, ο οποίος προχώρησε στην ανάπτυξη μιας έκδοσης ανοιχτού λογισμικού για το MapReduce, η οποία ονομάστηκε Hadoop[VIII]. Το σύστημα αυτό ήταν τόσο αναγκαίο που δέχτηκε σύντομα την υποστήριξη τόσο από την Yahoo όσο και από άλλους. Σήμερα, το Hadoop αποτελεί τον πυρήνα της υπολογιστικής υποδομής διαφόρων εταιρειών όπως οι Yahoo[II], Facebook[V], LinkedIn[VI], και το Twitter[VII]. Επιπλέον, πολλές παραδοσιακές εταιρείες έχουν αρχίσει να υιοθετούν το σύστημα αυτό. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 22

23 ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ Το Hadoop είναι ένα πλαίσιο λειτουργίας ανοιχτού κώδικα κατάλληλο για την συγγραφή και την εκτέλεση κατανεμημένων εφαρμογών σε συστοιχίες υπολογιστών (clusters), οι οποίες επεξεργάζονται πολύ μεγάλο όγκο δεδομένων. Η κατανεμημένη επεξεργασία είναι ένα ευρύ και ποικίλο πεδίο, αλλά οι παράγοντες που διακρίνουν το Hadoop είναι ότι χαρακτηρίζεται από: Προσβασιμότητα Το Hadoop μπορεί να τρέξει σε μεγάλα clusters αποτελούμενα από πολλές μηχανές ή σε υπηρεσίες cloud computing όπως το Amazon s Elastic Computer Cloud (EC2) Ευρωστία Λόγω του ότι προορίζεται να τρέχει σε συμβατικές μηχανές, το Hadoop έχει αναπτυχθεί με βάση τη θεώρηση των συχνών αστοχιών του υλικού. Έτσι, είναι σε θέση να διαχειρίζεται τα περισσότερα από τα σφάλματα αυτής της μορφής Κλιμάκωση Το Hadoop κλιμακώνεται γραμμικά για να χειριστεί περισσότερα δεδομένα με την προσθήκη περισσότερων κόμβων στο cluster Ευκολία στη χρήση Το Hadoop επιτρέπει στον χρήστη να γράφει γρήγορα και εύκολα αποδοτικό κώδικα κατάλληλο για παράλληλη επεξεργασία Η ευκολία και η προσβασιμότητα του Hadoop, του δίνει ένα ισχυρό προβάδισμα στην συγγραφή και την εκτέλεση κατανεμημένων προγραμμάτων. Ακόμη και φοιτητές μπορούν εύκολα και φθηνά να δημιουργήσουν το δικό τους Hadoop cluster. Από την άλλη πλευρά, η ευρωστία και η κλιμάκωσή του το καθιστούν κατάλληλο για τις πιο απαιτητικές εργασίες στο Yahoo και στο Facebook. Τα χαρακτηριστικά αυτά κάνουν το Hadoop δημοφιλές τόσο σε ακαδημαϊκό επίπεδο, όσο και στον τομέα της βιομηχανίας. Εικόνα 2.1: Υποβολή εργασίας σε Hadoop cluster ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 20

24 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Η Εικόνα 2.1, απεικονίζει την αλληλεπίδραση ενός χρήστη με ένα Hadoop cluster. Όπως φαίνεται και στην εικόνα, ένα Hadoop cluster είναι στην ουσία ένα σύνολο από συμβατικές διασυνδεδεμένες μηχανές. Όλη η αποθήκευση και η επεργασία των δεδομένων πραγματοποιείται μέσα στα όρια αυτού του cloud από computers. Διαφορετικοί χρήστες μπορούν να υποβάλλουν τις δικές τους εργασίες στο Hadoop, από διαφορετικούς clients, οι οποίες μπορεί να είναι οι προσωπικές τους desktop μηχανές σε τοποθεσίες πολύ απομακρυσμένες από το Hadoop cluster. Εικόνα 2.2: Tο περιβάλλον του Hadoop Το περιβάλλον του Hadoop απεικονίζεται στην Εικόνα 2.2. Όπως βλέπουμε το Hadoop αποτελείται από δύο μεγάλα υποσυστήματα: Το Hadoop Distributed File System (HDFS), το οποίο είναι υπεύθυνο για την διαχείριση των δεδομένων (I/O) Το MapReduce, το οποίο είναι υπεύθυνο για την εκτέλεση (CPU) και τρέχει πάνω από το HDFS 2. To I/O του MapReduce κατευθύνεται από/και προς το HDFS. 2 Το HDFS (Hadoop Distributed File System) αποτελεί την συνιστώσα αποθήκευσης του Hadoop. Πρόκειται για ένα κατανεμημένο σύστημα αρχείων, το οποίο είναι βελτιστοποιημένο για υψηλό throughput και δουλεύει καλύτερα με μεγάλα σύνολα δεδομένων (της τάξης των gigabytes και μεγαλύτερα). ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 24

25 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Η Εικόνα 2.3, δείχνει την υψηλού επιπέδου αρχιτεκτονική του Hadoop. Πρόκειται ξεκάθαρα για μια master-slave αρχιτεκτονική, στην οποία υπάρχει ένας μόνο master και πολλοί slaves. Κάθε κόμβος του Hadoop cluster, είτε πρόκειται για τον master είτε για κάποιο slave, τρέχει δύο daemons, ο ένας από τους οποίους είναι υπεύθυνος για το κομμάτι της διαχείρισης των δεδομένων ενώ ο άλλος για το κομμάτι της επεξεργασίας. Συγκεκριμένα, ο κόμβος master τρέχει τον Name-Node και τον Job- Tracker, ενώ κάθε slave τρέχει έναν Data-Node και έναν Task-Tracker daemon. Ο κόμβος master (Name-Node) είναι υπεύθυνος για την διαχείριση των λειτουργιών του συστήματος αρχείων (file system namespace), όπως να ανοίγει, να κλείνει και να μετονομάζει αρχεία και φακέλους, αλλά και για την ανάθεση των blocks των δεδομένων στους slaves. Στο κομμάτι της επεξεργασίας των δεδομένων, ο master (Task-Tracker) αποτελεί το σημείο διασύνδεσης μεταξύ του χρήστη και του περιβάλλοντος MapReduce. Όταν υποβάλλεται μια νέα εργασία MapReduce, o master την εισάγει σε μια ουρά από εργασίες σε αναμονή και τις εκτελεί με βάση το σχήμα first-come/first-served. Επιπλέον, αναθέτει τις διεργασίες map και reduce στους slaves. Κάθε slave (Data-Node) είναι υπεύθυνος να εξυπηρετεί αιτήματα ανάγνωσης και εγγραφής από την πελάτη, μαζί με την δημιουργία, τη διαγραφή και την αντιγραφή block δεδομένων πάντα υπό την καθοδήγηση του master (Name-Node). Επιπλέον, κάθε κόμβος slave εκτελεί εργασίες με βάση τις εντολές που δέχεται από τον master, ενώ χειρίζεται και τη μεταφορά των δεδομένων μεταξύ των φάσεων map και reduce. Εικόνα 2.3: High level αρχιτεκτονική του Hadoop ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 25

26 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Στην Εικόνα 2.4 παρουσιάζεται μια λογική αναπαράσταση της λειτουργίας ενός Hadoop cluster, όσον αφορά το κομμάτι διαχείρισης των δεδομένων (HDFS). Μέσα από την εικόνα διαφαίνεται η λειτουργία των Name-Node και Data-Node daemons όπως περιγράφηκε προηγουμένως. Εικόνα 2.4: Λογική λειτουργία του HDFS Στην Εικόνα 2.5 απεικονίζεται, αντίστοιχα, η λογική αναπαράσταση της λειτουργίας ενός Hadoop cluster, όσον αφορά το κομμάτι της επεξεργασίας δεδομένων (MapReduce). Οι δύο συνιστώσες οι οποίες διαδραματίζουν σημαντικό ρόλο στην συγκεκριμένη περίπτωση είναι ο Job-Tracker και ο Task-Tracker. Όπως βλέπουμε, αρχικά ο πελάτης υποβάλλει μια εργασία για εκτέλεση στο Hadoop cluster. Ο κόμβος master δέχεται το αίτημα του πελάτη και σπάει την εργασία αυτή σε μικρότερα κομμάτια, τα οποία στην συνέχεια αναθέτει μεταξύ των slaves. Επίσης, γίνεται ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 26

27 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE αναφορά των διεργασίων map και reduce οι οποίες περιγράφονται στην συνέχεια του εγγράφου. Εικόνα 2.5: Λογική λειτουργία του MapReduce Έχοντας κάνει μια γρήγορη επισκόπηση της πλατφόρμας του Hadoop, καθώς και των βασικών συνιστωσών του, μπορούμε να περάσουμε στην μελέτη της υπολογιστικής μηχανής του Hadoop, του MapReduce. 2.2 Η ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΜΟΝΤΕΛΟΥ Το MapReduce αποτελεί ένα προγραμματιστικό μοντέλο παράλληλης επεξεργασίας το οποίο προτάθηκε από την Google (2004) για την επεξεργασία ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 27

28 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE μεγάλων συνόλων δεδομένων σε συστοιχίες υπολογιστών (clusters) αποτελούμενες από χιλιάδες μηχανές. Το μοντέλο MapReduce είναι ευρέως διαδεδομένο και αρκετά απλό στην χρήση του, αφού αποκρύπτει από το χρήστη τις λεπτομέρειες που αφορούν την παραλληλοποίηση, την ανοχή σφαλμάτων, την βελτιστοποίηση, την επικοινωνία μεταξύ των μηχανών και την εξισορρόπηση του φόρτου. Το μοντέλο MapReduce αποτελεί, όπως αναφέρθηκε και παραπάνω, την καρδιά επεξεργασίας του Hadoop. Μέσω μιας απλής και ταυτόχρονα ισχυρής διεπαφής, η οποία βασίζεται σε δύο συναρτήσεις που καθορίζονται από τον χρήστη, το μοντέλο MapReduce μπορεί να χρησιμοποιηθεί για να εκφραστεί ένα μεγάλο εύρος προβλημάτων. Συγκεκριμένα, η ιδέα του μοντέλου MapReduce είναι να δέχεται ως είσοδο ένα σύνολο από ζεύγη <κλειδί-εισόδου, τιμή-εισόδου> και να παράγει στην έξοδο ένα σύνολο από ζεύγη της μορφής <κλειδί-εξόδου, αποτέλεσμα>. Ο προγραμματιστής εκφράζει τον εκάστοτε αλγόριθμο με βάση τις συναρτήσεις map και reduce. Η συνάρτηση map δέχεται σαν είσοδο ένα ζεύγος <κλειδί-εισόδου, τιμή-εισόδου> και παράγει σαν έξοδο ένα ζεύγος <κλειδί-εξόδου, τιμή-εξόδου>. Η έξοδος της συνάρτησης map, ταξινομημένη με βάση το κλειδί-εξόδου, αποτελεί την είσοδο στην συνάρτηση reduce. Η συνάρτηση reduce παίρνει σαν είσοδο την έξοδο της συνάρτησης map στην μορφή κλειδί-ενδιάμεσες τιμές και την επεξεργάζεται. Συνήθως για κάθε κλειδί έχουμε μία τιμή στην έξοδο. Η μορφή της εισόδου και εξόδου για τις συναρτήσεις map και reduce φαίνεται καλύτερα στην Εικόνα 2.6. Για την επίλυση ενός προβλήματος με το μοντέλο MapReduce, ο προγραμματιστής πρέπει να υλοποιήσει τουλάχιστον την συνάρτηση map. Κάποιες απλές εργασίες μπορούν να υλοποιηθούν μόνο με την χρήση της συνάρτησης map. Εικόνα 2.6: Είσοδος/έξοδος των συναρτήσεων Map/ Reduce Οι Εικόνες 2.7 και 2.8 απεικονίζουν την λογική αναπαράσταση των συναρτήσεων map και reduce που περιγράφηκαν παραπάνω. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 28

29 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Εικόνα 2.7: Λογική αναπαράσταση της συνάρτησης Map Εικόνα 2.8: Λογική αναπαράσταση της συνάρτησης Reduce Στην Εικόνα 2.9, περιγράφεται ο τρόπος υποβολής μια εργασίας στο περιβάλλον εκτέλεσης MapReduce. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 29

30 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Εικόνα 2.9: Υποβολή εργασίας στο MapReduce Τέλος, στην Εικόνα 2.10 απεικονίζεται η ροή των δεδομένων εισόδου για το μοντέλο MapReduce. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 30

31 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Εικόνα 2.10: Ροή δεδομένων στο MapReduce ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 31

32 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE 2.3 ΠΑΡΑΔΕΙΓΜΑ ΧΡΗΣΗΣ Στην ενότητα αυτή παρουσιάζεται ένα απλό παράδειγμα χρήσης του MapReduce με σκοπό την καλύτερη κατανόηση της λειτουργίας του μοντέλου. ΠΡΟΒΛΗΜΑ ΜΕΤΡΗΣΗΣ ΣΥΧΝΟΤΗΤΑΣ ΕΜΦΑΝΙΣΗΣ ΛΕΞΕΩΝ Στόχος του προβλήματος είναι η μέτρηση της συχνότητας εμφάνισης κάθε λέξης που συναντάται σε μια μεγάλη συλλογή από αρχεία κειμένου. ΕΙΣΟΔΟΣ ΣΤΟ ΠΡΟΒΛΗΜΑ Μια μεγάλη συλλογή από αρχεία κειμένου. ΕΞΟΔΟΣ/ΛΥΣΗ Μια λίστα από μοναδικές λέξεις, όπου για κάθε λέξη αναφέρεται η συχνότητα εμφάνισής της στη συλλογή των αρχείων κειμένου. Ας θεωρήσουμε ότι η συλλογή κειμένων αποτελείται από ένα μοναδικό έγγραφο το οποίο περιλαμβάνει μόνο την πρόταση: «Do as I say, not as I do» Τότε, αυτό που θα πάρουμε ως αποτέλεσμα είναι η διπλανή λίστα λέξεων, όπου κάθε λέξη συνοδεύεται από την συχνότητα εμφάνισής της στην πρόταση. Καλούμε το πρόβλημα αυτό word counting. Όταν η συλλογή των εγγράφων είναι μικρή, ένα απλό πρόγραμμα, όπως αυτό που περιγραφεται από τον παρακάτω ψευδοκώδικα, μπορεί να αποδειχθεί αρκετό. Το πρόγραμμα σαρώνει όλα τα έγγραφα. Για κάθε έγγραφο, οι λέξεις εξάγονται η μία μετά την άλλη χρησιμοποιώντας μια τεχνική tokenization. Σε κάθε λέξη αντιστοιχεί ένας μετρητής ο οποίος καλείται wordcount ο οποίος αυξάνεται κατά 1 σε κάθε εμφάνιση της λέξης. Στο τέλος, η συνάρτηση display εμφανίζει όλα τα entries του wordcount. Ψευδοκώδικας «Word Counting» 1: define wordcount as Multiset; 2: for each document in documentset { 3: T = tokenize(document); 4: for each token in T { 5: wordcount[token]++; 6: } 7: } 8: display(wordcount) ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 32

33 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Το παραπάνω πρόγραμμα θα δουλεύει καλά ώσπου η συλλογή των εγγράφων προς επεξεργασία γίνει πολύ μεγάλη. Για παράδειγμα, έστω ότι θέλουμε να κατασκευάσουμε ένα spam filter, ώστε να αναγνωρίσουμε τις λέξεις οι οποίες εμφανίζονται συχνά σε spam s. Η σάρωση όλων των s χρησιμοποιώντας μόνο μια μηχανή θα είναι εξαιρετικά χρονοβόρα. Ωστόσο, μπορούμε να επιταχύνουμε την όλη διαδικασία τροποποιώντας το παραπάνω πρόγραμμα ώστε να κατανέμει την εργασία μεταξύ διαφορετικών μηχανών. Έτσι, κάθε μηχανή θα επεξεργάζεται ένα κλάσμα του συνολικού όγκου των s. Όταν όλες οι μηχανές ολοκληρώσουν την εργασία τους, μια δεύτερη φάση επεξεργασίας θα συνδυάσει τα ενδιάμεσα αποτελέσματα των μηχανών. Στην συνέχεια περιγράφουμε την κατανεμημένη εκτέλεση της εργασίας word counting στο περιβάλλον MapReduce. ΥΛΟΠΟΙΗΣΗ ΣΕ MAPREDUCE Όπως περιγράφηκε και παραπάνω, η ανάπτυξη ενός προγράμματος σε MapReduce απαιτεί την υλοποίηση δύο συναρτήσεων, της map και της reduce. Η συνάρτηση map, αφού δεχθεί την είσοδο, δίνει στην έξοδο ζευγάρια της μορφής <word, 1>. Όπου word είναι κάθε λέξη η οποία συναντάται μέσα στο κείμενο. Όταν η συνάρτηση map ολοκληρώσει την εκτέλεσή της θα περάσει την έξοδό της στην συνάρτηση reduce. Η συνάρτηση reduce θα αθροίσει τις μοναδιαίες τιμές για κάθε μεμονωμένη λέξη και θα δώσει στην έξοδο το πλήθος εμφάνισης κάθε μοναδικής λέξης μέσα στα αρχεία εισόδου. Στην Εικόνα 2.11, φαίνεται ένα παράδειγμα εκτέλεσης της λειτουργίας word counting στο περιβάλλον MapReduce. Εικόνα 2.11: Εκτέλεση της εργασίας WordCount σε περιβάλλον MapReduce ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 33

34 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Στην Εικόνα 2.12, απεικονίζεται η υλοποίηση του προβλήματος word counting στην γλώσσα προγραμματισμού Java. Όπως βλέπουμε, το πρόγραμμα σπάει σε δύο λογικές συναρτήσεις, τη map και τη reduce. Οι συναρτήσεις αυτές εκτελούνται σειριακά. Εικόνα 2.12 Word_count.java ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 34

35 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Κ Ε Φ Α Λ Α Ι Ο 3 : S P AT I O T E M P O R A L J O I N ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 35

36 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN SPATIOTEMPORAL JOIN Στο κεφάλαιο αυτό περιγράφεται το πρόβλημα του spatial join μεταξύ ενός συνόλου τροχιών (trajectories) κινούμενων αντικειμένων και ενός συνόλου περιοχών ενδιαφέροντος (regions). Επειδή, όταν δουλεύουμε με κινούμενα αντικείμενα τα αρχεία εισόδου είναι συνήθως πολύ μεγάλα σε μέγεθος κάθε στάδιο προεπεξεργασίας πρέπει να εκτελεστεί σε κατανεμημένο περιβάλλον. Στη συνέχεια του κεφαλαίου προτείνονται τρεις αλγόριθμοι επίλυσης του προβλήματος, οι οποίοι αφορούν σε κατανεμημένο περιβάλλον εκτέλεσης και βασίζονται στο μοντέλο MapReduce. 3.1 Η ΕΝΝΟΙΑ ΤΗΣ ΤΡΟΧΙΑΣ Πριν προχωρήσουμε παραπέρα στην μελέτη του spatial join, θα ήταν καλό να κατανοήσουμε αρχικά την βασική έννοια της τροχιάς ενός κινούμενου αντικειμένου. Τροχιά (trajectory) είναι μια περιγραφή της φυσικής κίνησης ενός κινούμενου αντικειμένου με την πάροδο του χρόνου, σε μία από τις ακόλουθες βασικές αναπαραστάσεις των τροχιών: Raw trajectory, είναι η καταγραφή των θέσεων ενός αντικειμένου σε καθορισμένα χρονικά διαστήματα, δοθέντος ενός κινούμενου αντικειμένου και ενός χρονικού διαστήματος. Αναπαριστάται ως μια ακολουθία γεωμετρικών θέσεων (xi, yi, ti) στον δισδιάστατο χώρο. Εικόνα 3.1: Raw Trajectory ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 36

37 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Structured trajectory, προκύπτει από την σύνθεση raw trajectories σε τμήματα (segments). Εικόνα 3.2: Structured Trajectory Semantic trajectory, εκφράζει την application oriented σημασία χρησιμοποιώντας 4 συνιστώσες (stop, move, begin, end). Οι συνιστώσες αυτές δεν αποτελούν πλέον χωρο-χρονικές θέσεις, αλλά σημασιολογικά αντικείμενα τα οποία συνδέονται στη γενική γεωγραφική γνώση. Εικόνα 3.3: Semantic Trajectory ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 37

38 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN 3.2 ΕΙΣΑΓΩΓΗ ΣΤΟ SPATIOTEMPORAL JOIN Ορισμός προβλήματος Το πρόβλημα στο οποίο επικεντρώνεται η παρούσα εργασία ορίζεται ως εξής: Η είσοδος καθορίζεται από μια συλλογή χωρικών περιοχών R (spatial regions) και μια συλλογή από τροχιές T (trajectories). Δοθέντων αυτών των δύο συνόλων δεδομένων, ο στόχος μας είναι να υπολογίσουμε την πράξη του spatial join, δηλαδή να εντοπίσουμε όλα τα ζευγάρια (r, t), όπου r R, t T τέτοια ώστε το r να τέμνει το t σε κάποια χρονική στιγμή ts. Μάλιστα η εκτέλεση της πράξης του spatial join τοποθετείται σε κατανεμημένο περιβάλλον (cluster υπολογιστών) και βασίζεται στο προγραμματιστικό μοντέλο MapReduce. Στην Εικόνα 3.4 απεικονίζεται ένα στιγμιότυπο του προβλήματος. Συγκεκριμένα, απεικονίζονται δύο τροχιές κινούμενων αντικειμένων (trajectories), οι T1 και Τ2, καθώς και δύο περιοχές ενδιαφέροντος (regions of interest), οι R1 και R2. Στο σημείο αυτό αξίζει να σημειώσουμε ότι, για λόγους απλότητας οι περιοχές θεωρείται ότι είναι ορθογώνια παραλληλόγραμμα, με τις πλευρές τους να είναι παράλληλες προς τους άξονες x και y. Η ίδια προσέγγιση υιοθετείται σε όλη την έκταση του εγγράφου, καθώς και στην υλοποίηση των αλγορίθμων. Ωστόσο, σε μια διαφορετική περίπτωση όπου οι περιοχές δεν είναι απαραιτήτως ορθογώνιες μπορούμε να κάνουμε μια απλοποίηση θεωρώντας το minimum bounding rectangle (ΜBR) κάθε περιοχής. R1 Τ1 R2 Τ2 Εικόνα 3.4: Στιγμιότυπο προβλήματος spatial join ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 38

39 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Η είσοδος στο πρόβλημα υπολογισμού του spatial join για το παραπάνω στιγμιότυπo θα είναι δύο αρχεία, το αρχείο των τροχιών και το αρχείο των περιοχών. Το αρχείο των τροχιών (trajectory dataset) αντιστοιχεί σε μια συλλογή εγγραφών που αναπαριστούν τις τροχιές κίνησης ενός συνόλου κινούμενων αντικειμένων. Θεωρούμε ότι η προσέγγιση που ακολουθείται για την αναπαράσταση των τροχιών είναι η αναπαράσταση Raw Trajectory, όπως αναφέρθηκε παράπανω. Το αρχείο των περιοχών (region dataset) αναπαριστά μια συλλογή περιοχών ενδιαφέροντος (regions of interest) στο δισδιάστατο χώρο. Θεωρούμε ότι οι περιοχές ενδιαφέροντος είναι ορθογώνιες περιοχές στο χώρο με τις πλευρές του παράλληλες προς τους δύο άξονες του δισδιάστατου χώρου, όπως αναφέρθηκε και παραπάνω. Τα αρχεία αυτά θα έχουν την παρακάτω μορφή: Αρχείο τροχιών Τ1, t11, ts11 T1, t12, ts12 Αρχείο περιοχών R1, bl1, tr1 R2, bl2, tr2 T1, t13, ts13 T1, t14, ts14 T2, t21, ts21 T2, t22, ts22 Όπως βλέπουμε, στο αρχείο των τροχιών περιέχονται εγγραφές της μορφής <Τi, tij, tsij>, όπου Τi είναι το αναγνωριστικό ενός κινούμενου αντικειμένου, tij είναι μια καταγεγραμμένη θέση της τροχιάς του αντικειμένου Ti και tsij είναι η χρονική στιγμή καταγραφής της θέσης ij. Αντίθετα, στο αρχείο των περιοχών περιέχονται εγγραφές της μορφής <Ri, bli, tri>, όπου Ri είναι το αναγνωριστικό μιας περιοχής ενδιαφέροντος, ενώ οι τιμές bli και tri αναπαριστούν το κάτω αριστερό και το πάνω δεξιό άκρο της κάθε περιοχής. Στο σημείο αυτό να διευκρινύσουμε ότι, σε όλη την έκταση του εγγράφου θεωρούμε ότι οι περιοχές ενδιαφέροντος που δίνονται ως είσοδος στο πρόβλημα είναι ορθογώνιες, για χάριν απλότητας. Επίσης, θεωρούμε ότι τα αντικείμενα που μελετάμε ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 39

40 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN κινούνται στο δισδιάστατο χώρο (2D) επομένως όλα τα σημεία θα αναπαριστώνται ως ζεύγη <longitude, latitude>. R1 s12 s13 Τ1 R2 Τ2 s23 s24 Εικόνα 3.5: Λύση προβλήματος spatial join Στην Εικόνα 3.5, δίνεται η λύση του προβλήματος για το στιγμιότυπο της Εικόνας 3.4. Η εκτέλεση της λειτουργίας του spatial join στο στιγμιότυπο αυτό δίνει ως αποτέλεσμα στην έξοδο τις ακόλουθες εγγραφές: <Τ1, s12, R1, ts12_1, ts12_2> <T1, s13, R1, ts13_1, ts13_2> <Τ2, s22, R2, ts22_1, ts22_2> <T2, s24, R2, ts24_1, ts24_2> όπου η πρώτη τιμή κάθε εγγραφής είναι το αναγνωριστικό του κινούμενου αντικειμένου, η δεύτερη τιμή αντιστοιχεί σε ένα τμήμα της τροχιάς, η τιμή Ri αναπαριστά μια περιοχή ενδιαφέροντος, ενώ οι τιμές ts_1 και ts_2 απεικονίζουν τα χρονικά στιγμιότυπα τα οποία αντιστοιχούν στα σημεία τομής του τμήματος με την περιοχή. Εδώ, πρέπει να σημειώσουμε ότι για τον υπολογισμό των χρονικών αυτών στιγμιοτύπων χρησιμοποιούμε την παραδοχή ότι τα αντικείμενα κινούνται με σταθερή ταχύτητα ακολουθώντας τους κανόνες της ευθύγραμμης ομαλής κίνησης. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 40

41 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Προσέγγιση επίλυσης Όπως αναφέρθηκε και παραπάνω, όταν δουλεύουμε με κινούμενα αντικείμενα, τα αρχεία εισόδου στο πρόβλημα του spatial join είναι συνήθως μια μεγάλη συλλογή από καταγεγραμμένες θέσεις (positions) της τροχιάς τους, οι οποίες αναφέρονται από τα αντικείμενα σε συγκεκριμένες χρονικές στιγμές (timestamps). Ωστόσο, τα δεδομένα αυτά ενίοτε μπορεί να έχουν την μορφή τροχιών (trajectories) ή τμημάτων τροχιών (segments). Επιπλέον, τα αρχεία αυτά είναι μεγάλα σε μέγεθος και επομένως κάθε στάδιο προεπεξεργασίας τους πρέπει να εκτελεστεί σε κατανεμημένο περιβάλλον, για λόγους απόδοσης. Το πρώτο βήμα προεπεξεργασίας που πρέπει να εκτελεστεί είναι η σύνθεση των τροχιών ή των τμημάτων των τροχιών από τα αρχικά δεδομένα εισόδου. Μόλις δημιουργηθούν οι τροχιές ή τα τμήματα, θα πρέπει να διαμεριστούν και να κατανεμηθούν μεταξύ των κόμβων του cluster χρησιμοποιώντας ένα σχήμα που βασίζεται στην έννοια των tiles. Στην Εικόνα 3.6, απεικονίζονται δύο διαφορετικές στρατηγικές διαμέρισης του χώρου σε tiles. Η πρώτη διαμερίζει τον χώρο σε ισομεγέθη tiles χωρίς να λαμβάνει υπόψη την κατανομή των δεδομένων εισόδου στο χώρο, ενώ αντίθετα η δεύτερη στρατηγική διαμέρισης λαμβάνει υπόψη την κατανομή. Το δεύτερο βήμα, μετά την διαμέριση των τροχιών ή καλύτερα των τμημάτων των τροχιών στους κόμβους του cluster, είναι η εκτέλεση της λειτουργίας του spatial join μεταξύ των τμημάτων (segments) που προέκυψαν από το προηγούμενο βήμα και των περιοχών ενδιαφέροντος. Ωστόσο, μέχρι στιγμής δεν έγινε λόγος για τρόπο διαχείρισης της συλλογής των χωρικών περιοχών. Στο σημείο αυτό, είναι σημαντικό να αναφέρουμε ότι το σύνολο δεδομένων των περιοχών ενδιαφέροντος θεωρείται ότι είναι σημαντικά μικρότερο σε μέγεθος σε σχέση με τη συλλογή των τροχιών. Έτσι, αντί να δοθεί ως αρχείο εισόδου στο πρόβλημα μαζί με το αρχείο των τροχιών, επιλέγεται να αποθηκευτεί στην distributed cache του Hadoop, θεωρώντας βέβαια ότι το μέγεθός του είναι κατάλληλο. Όλοι οι κόμβοι του cluster έχουν πρόσβαση στην distributed cache, επομένως η συλλογή των περιοχών είναι προσπελάσιμη από όλους τους κόμβους κατά την εκτέλεση της λειτουργίας του join. Κάθε κόμβος λοιπόν εκτελεί την πράξη του spatial join μεταξύ της συλλογής των περιοχών στην cache και των διαμερίσεων των τροχιών που λαμβάνει ως είσοδο. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 41

42 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Εικόνα 3.6: Συμμετρική vs. K-d tree διαμέριση του χώρου Μια συνηθισμένη προσέγγιση, η οποία υιοθετείται για την εκτέλεση του spatial join, βασίζεται σε δύο φάσεις. Στην πρώτη φάση του join χρησιμοποιείται μια απλοποιημένη αναπαράσταση των χωρικών περιοχών ενδιαφέροντος (π.χ. Minimum Bounding Rectangles - MBRs) και επιστρέφεται ένα σύνολο από υποψήφια ζεύγη τμημάτων-τροχιών και περιοχών ενδιαφέροντος τα οποία θα ελεγχούν για το αν ικανοποιούν το ερώτημα join. Στην δεύτερη φάση, από τα υποψήφια ζεύγη <segment, region> δίνονται στην έξοδο μόνο αυτά που ικανοποιούν το ερώτημα του spatial join. Η προσέγγιση αυτή των δύο βημάτων αναφέρεται ως «filter and refinement process». Στην συνέχεια παρουσιάζονται τρεις αλγόριθμοι υπολογισμού του spatial join, οι οποίοι αναπτύχθηκαν στα πλαίσια αυτής της διπλωματικής. Και οι τρεις αλγόριθμοι χρησιμοποιούν το σχήμα διαμέρισης του χώρου το οποίο βασίζεται στα tiles, ενώ για την εκτέλεση του spatial join υιοθετούν την προσέγγιση «filter and refinement». 3.3 ΑΛΓΟΡΙΘΜΟΙ SPATIOTEMPORAL JOIN Στην ενότητα αυτή παρουσιάζονται τρεις αλγόριθμοι υπολογισμού του spatial join μεταξύ ενός συνόλου τροχιών και ενός συνόλου περιοχών. Οι αλγόριθμοι αυτοί υλοποιήθηκαν στηριζόμενοι στο προγραμματιστικό μοντέλο MapReduce, και αφορούν τόσο τις φάσεις προεπεξεργασίας (δημιουργία τροχιών και διαμέριση) που αναφέρθηκαν παραπάνω όσο και την εκτέλεση της λειτουργίας του join. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 42

43 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Αλγόριθμος UPA Μια αφελής προσέγγιση στην επίλυση του προβλήματος του spatial join είναι ο αλγόριθμος UPA (Uniformity-based Processing Algorithm). Ο αλγόριθμος αυτός βασίζεται στην συμμετρική διαμέριση του χώρου και απαιτεί δύο κύκλους MapReduce. Εν συντομία, ο πρώτος κύκλος είναι υπεύθυνος για την διαμέριση των δεδομένων, ενώ ο δεύτερος κύκλος εκτελεί το spatial join σε κάθε partition που προκύπτει από τον πρώτο κύκλο. Στην Εικόνα 3.7 απεικονίζεται η λογική του αλγορίθμου UPA. Εικόνα 3.7: Αλγόριθμος UPA ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 43

44 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN 1 ος κύκλος UPA Ο κύκλος αυτός είναι υπεύθυνος για την διαμέριση του χώρου και εν συνεχεία την κατανομή των τμημάτων των τροχιών. Κατά την διάρκεια της φάσης Map, κάθε mapper διαβάζει το κομμάτι της εισόδου που του αντιστοιχεί, το οποίο είναι μια συλλογή εγγραφών της μορφής <trajectory-id, longitude, latitude, timestamp> και μεταφέρει τα δεδομένα. Κάθε reducer, συλλέγει τις θέσεις (locations) ενός αντικειμένου και δημιουργεί τα segments τα οποία στην συνέχεια κατανέμει με βάση την συμμετρική διαμέριση του χώρου που έχει πραγματοποιήσει. Η έξοδος του πρώτου κύκλου γράφεται στο σύστημα αρχείων HDFS και αποτελείται από εγγραφές της μορφής <partition, segment>. 2 ος κύκλος UPA Κατά τον δεύτερο κύκλο πραγματοποιείται το spatial join μεταξύ των δύο συλλογών. Κατά την διάρκεια της φάσης Map, κάθε mapper διαβάζει το κομμάτι της εισόδου που του αντιστοιχεί, το οποίο περιέχει εγγραφές της μορφής <partition, segment>. Κάθε mapper αναπαράγει την είσοδο του, ενώ κάθε reducer εκτελεί το spatial join μεταξύ των segments που δέχτηκε ως είσοδο και των regions που διαβάζει από την distributed cache. Η τελική έξοδος γράφεται πίσω στο HDFS. Ένα θετικό χαρακτηριστικό της UPA προσέγγισης είναι ότι απαιτεί μόνο δύο κύκλους MapReduce. Αυτό οφείλεται κυρίως στο ότι ακολουθεί την στρατηγική της συμμετρικής διαμέρισης του χώρου η οποία εκτελείται στην φάση reduce του πρώτου κύκλου. Το μέγεθος κάθε partition αποφασίζεται πριν την εκτέλεση και εξαρτάται μόνο από το μέγεθος του χώρου ενδιαφέροντος. Ο βασικός περιορισμός που χαρακτηρίζει την συγκεκριμένη προσέγγιση είναι ότι η συμμετρική διαμέριση μπορεί να οδηγήσει σε μη ισορροπημένο cluster όσον αφορά το φόρτο εργασίας, κυρίως στην περίπτωση εκείνη που τα δεδομένα ακολουθούν skew κατανομή. Συγκεκριμένα, οι πυκνές περιοχές του χώρου θα οδηγήσουν τους αντίστοιχους reducers στην εκτέλεση περισσότερης εργασίας, προκαλώντας κακή ισορροπία φόρτου. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 44

45 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Αλγόριθμος SPA Καθώς στον πραγματικό κόσμο είναι αδύνατο να προβλέψουμε την κίνηση των αντικειμένων, χρειαζόμαστε μια εναλλακτική προσέγγιση η οποία να μπορεί να αντιμετωπίσει τα θέματα που πιθανώς να προκύπτουν από την κατανομή των δεδομένων. Για το σκοπό αυτό, στην προσέγγιση που παρουσιάζεται στον παρόν υποκεφάλαιο υιοθετούμε την τεχνική της τυχαίας δειγματοληψίας με σκοπό να επιλέξουμε ένα μικρό ποσοστό των δεδομένων εισόδου (τμημάτων των τροχιών) και να προχωρήσουμε στη διαμέριση του χώρου με βάση αυτό το δείγμα. Στην περίπτωση αυτή, η διαμέριση του χώρου πραγματοποιείται χρησιμοποιώντας μια μη συμμετρική στρατηγική διαμέρισης η οποία βασίζεται στην ιδέα του k-d tree. Αυτό είναι ένα από τα βασικά χαρακτηριστικά της προσέγγισης SPA (Sampling-based Processing Algorithm). Στην Εικόνα 3.3, φαίνεται το κέρδος που αποφέρει η προσέγγιση αυτή στην περίπτωση ενός συνόλου σημείων. Είναι προφανές, ότι η συμμετρική διαμέριση μπορεί να οδηγήσει σε κακή κατανομή των σημείων στα κελιά, οδηγώντας σε μείωση της απόδοσης κατά την επεξεργασία. Στον κόσμο του MapReduce, τα προβλήματα ισορροπίας φόρτου συνήθως έχουν να κάνουν με το γεγονός υπερφόρτωσης κάποιων reducers, προκαλώντας bottleneck. Η τυχαία δειγματοληψία χρησιμοποιείται συχνά ως εργαλείο για την μείωση του μεγέθους ενός συνόλου δεδομένων, έτσι ώστε να εκτελέσουμε κάποιο στάδιο προεπεξεργασίας ή εκπαίδευσης πριν την εκτέλεση του βασικού αλγορίθμου. Για παράδειγμα, η τυχαία δειγματοληψία μπορεί να χρησιμοποιηθεί πριν την εκτέλεση του clustering έτσι ώστε να δώσει μια ιδέα για το πόσα clusters περιέχονται στα δεδομένα. Στην περίπτωση μας, η τυχαία δειγματοληψία χρησιμοποιείται για να βοηθήσει στην διαμέριση του χώρου, αποκαλύπτοντας τις πυκνές περιοχές του χώρου των δεδομένων. Με βάση τον τρόπο με τον οποίο πραγματοποιείται η δειγματοληψία διακρίνουμε δύο παραλλαγές του SPA, οι οποίες περιγράφονται στη συνέχεια Παραλλαγή SPA-PS Η πρώτη παραλλαγή του SPA πραγματοποιεί δειγματοληψία πάνω στα αρχικά δεδομένα (locations) και καλείται SPA-PS (Sampling-based Processing Algorithm ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 45

46 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN using Point Sampling). Ο αλγόριθμος αυτός εκτελείται σε τρεις κύκλους MapReduce όπως φαίνεται στην Εικόνα ος κύκλος SPA-PS Ο πρώτος κύκλος είναι υπεύθυνος για την δειγματοληψία και την δημιουργία των partitions. Στον κύκλο αυτό, κάθε mapper διαβάζει την είσοδο του, η οποία αποτελείται από εγγραφές της μορφής <objectid, location, time>, και με βάση τον ρυθμό δειγματοληψίας ο οποίος καθορίζεται από τον χρήστη, επιλέγει ένα ποσοστό της εισόδου του και το στέλνει στην έξοδο. Κατά την διάρκεια της φάσης reduce, ενεργοποιείται ένας μοναδικός reducer ο οποίος λαμβάνει ως είσοδο το συνολικό δείγμα που παράχθηκε από όλους τους mappers και πραγματοποιεί την διαμέριση του χώρου. Αυτό επιτυγχάνεται χρησιμοποιώντας το ίδιο κλειδί στα ζευγάρια key, value τα οποία παράγονται από τους mappers. Τέλος, ο reducer γράφει στο HDFS την περιγραφή (bounding box) της κάθε διαμέρισης. 2 ος κύκλος SPA-PS Κατά τη διάρκεια του δεύτερου κύκλου, παράγονται τα τμήματα των τροχιών και κατανέμονται στα partitions. Συγκεκριμένα, κάθε mapper διαβάζει την είσοδό του, η οποία περιέχει εγγραφές της μορφής <objectid, location, time> και στέλνει τις εγγραφές στην έξοδο. Κάθε reducer παράγει τα τμήματα των τροχιών τα όρια των partitions που υπολογίστηκαν στον προηγούμενο κύκλο, αναθέτει τα segments στα κατάλληλα partitions. Η έξοδος του δεύτερου κύκλου περιέχει εγγραφές της μορφής <partition, segment>. Στο σημείο αυτό αξίζει να σημειωθεί ότι, αν ένα segment διαπερνά τα όρια ενός partition, τότε το segment σπάει στα όρια κάθε partition και επομένως παράγονται περισσότερες από μια εγγραφές για αυτό το segment. 3 ος κύκλος SPA-PS Ο κύκλος αυτός εκτελεί το join μεταξύ του συνόλου των περιοχών που βρίσκονται αποθηκευμένες στην cache και των partitions. Συγκεκριμένα, κάθε mapper διαβάζει την είσοδο του και την αναπαράγει στην έξοδο. Στην συνέχεια, κάθε reducer εκτελεί το spatial join μεταξύ των regions στην cache και των partitions που προέκυψαν από τους mappers. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 46

47 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Εικόνα 3.8: Αλγόριθμος SPA-PS ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 47

48 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Παραλλαγή SPA-SS Όπως περιγράφηκε παραπάνω, η δειγματοληψία εκτελείται πάνω στις χωρικές θέσεις των κινούμενων αντικειμένων κατά τη φάση map του πρώτου κύκλου. Δηλαδή, ο αλγόριθμος SPA-PS χρησιμοποιεί τις θέσεις για να αναγνωρίσει την κατανομή των τμημάτων των τροχιών. Η προσέγγιση αυτή είναι καλή στην περίπτωση που τα τμήματα των τροχιών είναι σχετικά μικρά, δηλαδή αντιστοιχούν σε αντικείμενα τα οποία κινούνται με μια λογική ταχύτητα. Ωστόσο, μεγάλα τμήματα τροχιών τα οποία αντιστοιχούν σε αργά κινούμενα αντικείμενα μπορεί να δημιουργήσουν προβλήματα. Για το λόγο αυτό προτείνεται μια δεύτερη παραλλαγή του αλγορίθμου SPA, η οποία βασίζεται σε δειγματοληψία των segments και όχι των locations. Η εναλλακτική αυτή προσέγγιση καλείται SPA-SS (Sampling-based Processing Algorithm using Segment Sampling) και απαιτεί τρεις κύκλους MapReduce. Ο αλγόριθμος SPA-SS απεικονίζεται στην Εικόνα ος κύκλος SPA-SS Ο κύκλος αυτός είναι υπεύθυνος για την δημιουργία των segments από τα αρχικά δεδομένα. Οι mappers περνούν την έξοδό τους στην φάση reduce, όπου κάθε reducer παράγει έξοδο της μορφής <objectid, segment>. 2 ος κύκλος SPA-SS Στο δεύτερο κύκλο MapReduce, οι mappers πραγματοποιούν δειγματοληψία πάνω στα segments που προέκυψαν από την προηγούμενη φάση και αναπαράγουν το δείγμα αυτό στην έξοδο τους προς έναν συγκεκριμένο reducer. Ο reducer αυτός είναι υπεύθυνος για την δημιουργία των ορίων των partitions τα οποία θα χρησιμοποιηθούν στον επόμενο γύρο για την διαμέριση των δεδομένων και την εκτέλεση του join. 3 ος κύκλος SPA-SS Στον τελευταίο κύκλο, κάθε mapper διαβάζει την είσοδό του και με βάση τα όρια διαμέρισης τα οποία παράχθηκαν στον προηγούμενο κύκλο, δίνει στην έξοδο εγγραφές της μορφής <partition, segment>. Έπειτα, κάθε reducer λαμβάνει την είσοδό του και προχωρά στην εκτέλεση του join. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 48

49 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Εικόνα 3.9: Αλγόριθμος SPA-SS ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 49

50 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Σύνοψη αλγορίθμων Με βάση τα σχεδιαγράμματα των αλγορίθμων SPA-PS και SPA-SS που δίνονται στις Εικόνες 3.8 και 3.9, αλλά και όσα αναφέρθηκαν παραπάνω, βλέπουμε ότι οι δύο προσεγγίσεις διαφέρουν ουσιαστικά στην φάση της δειγματοληψίας. Ο αλγόριθμος SPA-PS πραγματοποιεί δειγματοληψία πάνω στα locations, ενώ ο αλγόριθμος SPA-SS εκτελεί δειγματοληψία πάνω στα segments. Όπως αποδεικνύεται και μέσα από την πειραματική μελέτη που παρουσιάζεται στην επόμενη ενότητα, οι δύο αυτοί αλγόριθμοι δεν παρουσιάζουν διαφορά στην απόδοση. Ωστόσο, ο αλγόριθμος SPA-SS είναι η κατάλληλη επιλογή στην περίπτωση που τα αρχικά δεδομένα εισόδου έχουν την μορφή segments. Στην περίπτωση αυτή, η δειγματοληψία πάνω στα segments θα αποκαλύψει την κατανομή των δεδομένων. Επιπλέον, να σημειώσουμε ότι σε μια τέτοια περίπτωση απαιτούνται μόνο δύο κύκλοι MapReduce, αφού ο κύκλος της δημιουργίας των segments δεν χρειάζετα ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 50

51 ΚΕΦΑΛΑΙΟ 4: ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ Κ Ε Φ Α Λ Α Ι Ο 4 : Π Ε Ι Ρ Α Μ ΑΤ Ι Κ Η Μ Ε Λ Ε Τ Η ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 51

52 ΚΕΦΑΛΑΙΟ 4: ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ Στην ενότητα αυτή, παρουσιάζουμε την πειραματική αξιολόγηση των αλγορίθμων που παρουσιάστηκαν στην προηγούμενη ενότητα. Συγκεκριμένα, συγκρίνουμε τον αλγόριθμο Baseline ή UPA, ο οποίος απαιτεί δύο κύκλους MapReduce με τις δύο παραλλαγές του αλγορίθμου SPA ο οποίος βασίζεται στην δειγματοληψία, δηλαδή τους αλγορίθμους SPA-PS και SPA-SS, οι οποίοι απαιτούν τρεις φάσεις MapReduce. Ο στόχος της μελέτης αυτής είναι να αναγνωριστεί η πιο αποδοτική υλοποίηση της λειτουργίας του spatial join μεταξύ ενός συνόλο τροχιών (trajectories) και ενός συνόλου χωρικών περιοχών ενδιαφέροντος (spatial regions of interest) στο περιβάλλον MapReduce. Τα πειράματα έχουν χωριστεί σε δύο διαφορετικά σύνολα. Το πρώτο σύνολο εστιάζει σε θέματα εξισορρόπησης φόρτου, ενώ το δεύτερο μελετά την απόδοση των τριών τεχνικών όσον αφορά τον χρόνο εκτέλεσης αλλά και τις δυνατότητες κλιμάκωσης τους. 4.1 CLUSTER ΚΑΙ ΔΕΔΟΜΕΝΑ Οι αλγόριθμοι υλοποιήθηκαν για την έκδοση του Hadoop, ενώ όλα τα πειράματα έτρεξαν σε ένα cluster αποτελούμενο από 16 κόμβους (nodes). Κάθε κόμβος του cluster τρέχει το λειτουργικό Fedora Linux version σε επεξεργαστή Pentium Dual Core 3.20GHz CPU με 2GB μνήμη RAM. Επιπλέον, κάθε κόμβος τρέχει έναν Task Tracker και Data Node daemon, ενώ υπάρχει ένας ανεξάρτητος server ο οποίος ενεργεί ως Job Tracker και Name Node. Κάθε κόμβος υποστηρίζει την εκτέλεση τριών map tasks και δύο reduce tasks ταυτόχρονα. Η διαθέσιμη μνήμη για κάθε map task είναι 200MB ενώ για κάθε reduce task έχει οριστεί στα 300MB. Τέλος, για λόγους συμβατότητας όλοι οι αλγόριθμοι υλοποιήθηκαν με την JAVA SDK 1.6. Τα σύνολα δεδομένων που χρησιμοποιήθηκαν στα πειράματα, που περιγράφονται παρακάτω, δημιουργήθηκαν με τον GSTD Generator (Generate Spatio- Temporal Data) μέσω του οποίου καθορίστηκε το μέγεθος αλλά και η κατανομή των δεδομένων. Συγκεκριμένα, δημιουργήθηκαν σύνολα δεδομένων που ακολουθούν την uniform, την normal και τη skew κατανομή. Το μικρότερο dataset που χρησιμοποιήθηκε έχει μέγεθος 200MB, ενώ το μεγαλύτερο ξεπερνά τα 4GB. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 52

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. ΤΕΙ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΥΣ Θέμα: ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Φοιτήτρια: Κοντζοπούλου Παναγιώτα Εισαγωγή

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο 2016-2017 Υποχρεωτική εργασία Τα τελευταία χρόνια, λόγω της τεράστιας αύξησης της ποσότητας της πληροφορίας που έχουμε

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

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

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

MapReduce Εισαγωγή. MapReduce. ηµήτρης Λεβεντέας

MapReduce Εισαγωγή. MapReduce. ηµήτρης Λεβεντέας Εισαγωγή MapReduce ηµήτρης Λεβεντέας 6 Μαΐου 2010 Εισαγωγή Ορισµός Τι είναι Ορισµός Το MapReduce είναι ένα framework λογισµικού που είσηχθηκε από την Google για να υποστηρίξει κατανεµηµένο υπολογισµό σε

Διαβάστε περισσότερα

EPL 660: Lab 4 Introduction to Hadoop

EPL 660: Lab 4 Introduction to Hadoop EPL 660: Lab 4 Introduction to Hadoop Andreas Kamilaris Department of Computer Science MapReduce Πρόβλημα: Ανάγκη για επεξεργασία μεγάλου όγκου δεδομένων στα συστήματα ανάκτησης πληροφορίας. Λύση: κατανομή

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

Διαβάστε περισσότερα

Πληροφοριακά Συστήματα Διοίκησης

Πληροφοριακά Συστήματα Διοίκησης Πληροφοριακά Συστήματα Διοίκησης Μεγάλα Δεδομένα ΠΜΣ Λογιστική Χρηματοοικονομική και Διοικητική Επιστήμη ΤΕΙ Ηπείρου Bytes 1KB = 2 10 1MB = 2 20 1GB = 2 30 1TB = 2 40 1PB = 2 50 1EB = 2 60 1ZB = 2 70 1YB

Διαβάστε περισσότερα

Πληροφοριακά Συστήματα Διοίκησης

Πληροφοριακά Συστήματα Διοίκησης Πληροφοριακά Συστήματα Διοίκησης Μεγάλα Δεδομένα ΠΜΣ Λογιστική Χρηματοοικονομική και Διοικητική Επιστήμη ΤΕΙ Ηπείρου @ 2017 Bytes 1KB = 2 10 1MB = 2 20 1GB = 2 30 1TB = 2 40 1PB = 2 50 1EB = 2 60 1ZB =

Διαβάστε περισσότερα

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση Εργαστηριακή Άσκηση Οι Αλγόριθμοι Χρονοπρογραμματισμού First Come First Serve (FCFS), Shortest Job First (SJF), Round Robin (RR), Priority Weighted (PRI) Επιμέλεια: Βασίλης Τσακανίκας Περιεχόμενα Αλγόριθμοι

Διαβάστε περισσότερα

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ 2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,

Διαβάστε περισσότερα

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

Διαβάστε περισσότερα

Επερωτήσεις σύζευξης με κατάταξη

Επερωτήσεις σύζευξης με κατάταξη Επερωτήσεις σύζευξης με κατάταξη Επερωτήσεις κατάταξης Top-K queries Οι επερωτήσεις κατάταξης επιστρέφουν τις k απαντήσεις που ταιριάζουν καλύτερα με τις προτιμήσεις του χρήστη. Επερωτήσεις κατάταξης Top-K

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

Διαβάστε περισσότερα

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη

Διαβάστε περισσότερα

ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΩΝ & ΑΝΑΘΕΣΗΣ ΑΝΘΡΩΠΙΝΩΝ ΠΟΡΩΝ ΣΕ ΠΟΛΛΑΠΛΑ ΕΡΓΑ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕ ΠΟΛΛΑΠΛΕΣ ΟΜΑΔΕΣ

ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΩΝ & ΑΝΑΘΕΣΗΣ ΑΝΘΡΩΠΙΝΩΝ ΠΟΡΩΝ ΣΕ ΠΟΛΛΑΠΛΑ ΕΡΓΑ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕ ΠΟΛΛΑΠΛΕΣ ΟΜΑΔΕΣ Σχολή Μηχανικής και Τεχνολογίας Πτυχιακή εργασία ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΩΝ & ΑΝΑΘΕΣΗΣ ΑΝΘΡΩΠΙΝΩΝ ΠΟΡΩΝ ΣΕ ΠΟΛΛΑΠΛΑ ΕΡΓΑ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕ ΠΟΛΛΑΠΛΕΣ ΟΜΑΔΕΣ Ηλίας Κωνσταντίνου Λεμεσός,

Διαβάστε περισσότερα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Σχολή Επικοινωνίας και Μέσων Ενημέρωσης Πτυχιακή εργασία Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Εύρος Χριστοδούλου Λεμεσός, Μάιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΚΟΙΝΩΝΙΑΣ

Διαβάστε περισσότερα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

Διαβάστε περισσότερα

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης Μάθημα 7 ο Αλγόριθμοι Χρονοδρομολόγησης Σκοπός του μαθήματος Στην ενότητα αυτή θα εξηγήσουμε το ρόλο και την αξιολόγηση των αλγορίθμων χρονοδρομολόγησης, και θα παρουσιάσουμε τους κυριότερους. Θα μάθουμε:

Διαβάστε περισσότερα

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

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ

Διαβάστε περισσότερα

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον Δανάη Κούτρα Eργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Εθνικό Μετσόβιο Πολυτεχνείο Θέματα Σκοπός της διπλωματικής

Διαβάστε περισσότερα

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Μεταπτυχιακό Δίπλωμα Ειδίκευσης Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Δρ. Κακαρόντζας Γεώργιος Επίκουρος Καθηγητής Τμ. Μηχανικών Πληροφορικής Τ.Ε. Μηχανική Λογισμικού για Διαδικτυακές

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΕΠΙΛΥΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΔΟΣΗΣ ΣΕ ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ ΜΕ ΣΥΣΚΕΥΕΣ ΔΙΑΚΡΙΤΩΝ ΤΙΜΩΝ ΙΣΧΥΟΣ ΜΕ ΤΗ ΧΡΗΣΗ

Διαβάστε περισσότερα

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Διπλωματική Εργασία Μεταπτυχιακού Προγράμματος στην Εφαρμοσμένη Πληροφορική Κατεύθυνση: Συστήματα Υπολογιστών

Διαβάστε περισσότερα

25SMEs2009 ΠΑΡΑΔΟΤΕΑ ΕΝΟΤΗΤΑΣ ΕΡΓΑΣΙΩΝ 5: ΟΛΟΚΛΗΡΩΣΗ ΣΥΣΤΗΜΑΤΟΣ. 5.1 Ολοκλήρωση Υποσυστημάτων Πλατφόρμας Διαχείρισης Αισθητήρων

25SMEs2009 ΠΑΡΑΔΟΤΕΑ ΕΝΟΤΗΤΑΣ ΕΡΓΑΣΙΩΝ 5: ΟΛΟΚΛΗΡΩΣΗ ΣΥΣΤΗΜΑΤΟΣ. 5.1 Ολοκλήρωση Υποσυστημάτων Πλατφόρμας Διαχείρισης Αισθητήρων 25SMEs2009 ΠΑΡΑΔΟΤΕΑ ΕΝΟΤΗΤΑΣ ΕΡΓΑΣΙΩΝ 5: ΟΛΟΚΛΗΡΩΣΗ ΣΥΣΤΗΜΑΤΟΣ 5.1 Ολοκλήρωση Υποσυστημάτων Πλατφόρμας Διαχείρισης Αισθητήρων REVISION HISTORY Revision Description of Changes Author Date Draft #1 First

Διαβάστε περισσότερα

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

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΑΝΑΠΤΥΞΗ ΕΙΚΟΝΙΚΗΣ ΠΛΑΤΦΟΡΜΑΣ ΠΡΟΣΟΜΟΙΩΣΗΣ ΤΗΣ ΠΑΡΑΜΟΡΦΩΣΗΣ ΑΝΘΡΩΠΙΝΟΥ ΗΠΑΤΟΣ ΜΕ ΤΗ ΧΡΗΣΗ ΑΠΤΙΚΟΥ ΜΕΣΟΥ Δηµήτρης Δούνας

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ Χριστοδούλου Αντρέας Λεμεσός 2014 2 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Διαβάστε περισσότερα

RobotArmy Περίληψη έργου

RobotArmy Περίληψη έργου RobotArmy Περίληψη έργου Στην σημερινή εποχή η ανάγκη για αυτοματοποίηση πολλών διαδικασιών γίνεται όλο και πιο έντονη. Συνέχεια ακούγονται λέξεις όπως : βελτιστοποίηση ποιότητας ζωής, αυτοματοποίηση στον

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Εξαγωγή γεωγραφικής πληροφορίας από δεδομένα παρεχόμενα από χρήστες του

Διαβάστε περισσότερα

ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ

ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Τα τμήματα ενός ηλεκτρονικού υπολογιστή είναι: 1. Επεξεργαστής 2. Μνήμη RAM και ROM 3. Κάρτα γραφικών 4. Μητρική Πλακέτα 5. Σκληρός Δίσκος 6. DVD / Blue Ray 7. Τροφοδοτικό

Διαβάστε περισσότερα

Διερεύνηση χαρτογράφησης Ποσειδωνίας με χρήση επιβλεπόμενης ταξινόμησης οπτικών δορυφορικών εικόνων

Διερεύνηση χαρτογράφησης Ποσειδωνίας με χρήση επιβλεπόμενης ταξινόμησης οπτικών δορυφορικών εικόνων Σχολή Μηχανικής και Τεχνολογίας Μεταπτυχιακή διατριβή Διερεύνηση χαρτογράφησης Ποσειδωνίας με χρήση επιβλεπόμενης ταξινόμησης οπτικών δορυφορικών εικόνων Αναστασία Υφαντίδου Λεμεσός, Νοέμβριος 2017 ΤΕΧΝΟΛΟΓΙΚΟ

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης Δομές Δεδομένων και Αλγόριθμοι Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Στόχοι Μαθήματος Η σχεδίαση και ανάλυση αλγορίθμων και δομών δεδομένων αποτελεί σημαντικό τμήμα της πληροφορικής.

Διαβάστε περισσότερα

Approximation of distance between locations on earth given by latitude and longitude

Approximation of distance between locations on earth given by latitude and longitude Approximation of distance between locations on earth given by latitude and longitude Jan Behrens 2012-12-31 In this paper we shall provide a method to approximate distances between two points on earth

Διαβάστε περισσότερα

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ

Διαβάστε περισσότερα

Πτυχιακή διατριβή. Η επίδραση της τασιενεργής ουσίας Ακεταλδεΰδης στη δημιουργία πυρήνων συμπύκνωσης νεφών (CCN) στην ατμόσφαιρα

Πτυχιακή διατριβή. Η επίδραση της τασιενεργής ουσίας Ακεταλδεΰδης στη δημιουργία πυρήνων συμπύκνωσης νεφών (CCN) στην ατμόσφαιρα ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ Πτυχιακή διατριβή Η επίδραση της τασιενεργής ουσίας Ακεταλδεΰδης στη δημιουργία πυρήνων συμπύκνωσης νεφών (CCN)

Διαβάστε περισσότερα

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα είναι μικρότεροι το 1000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Διάρκεια: 3,5 ώρες Καλή

Διαβάστε περισσότερα

Διαχείριση Έργων Πληροφορικής Εργαστήριο

Διαχείριση Έργων Πληροφορικής Εργαστήριο Διαχείριση Έργων Πληροφορικής Εργαστήριο «Εισαγωγή στο MS Project- Διάγραμμα Gantt» Μ.Τσικνάκης, Ρ.Χατζάκη Ε. Μανιαδή, Ά. Μαριδάκη 1. Εισαγωγή στο Microsoft Project To λογισμικό διαχείρισης έργων MS Project

Διαβάστε περισσότερα

Ανάλυση, Στατιστική Επεξεργασία και Παρουσίαση Δεδομένων με χρήση Ανοικτών Λογισμικών Δρ. Φίλιππος Σοφός

Ανάλυση, Στατιστική Επεξεργασία και Παρουσίαση Δεδομένων με χρήση Ανοικτών Λογισμικών Δρ. Φίλιππος Σοφός Ανάλυση, Στατιστική Επεξεργασία και Παρουσίαση Δεδομένων με χρήση Ανοικτών Λογισμικών Δρ. Φίλιππος Σοφός ΠΕΡΙΓΡΑΜΜΑ ΠΑΡΟΥΣΙΑΣΗΣ Διερεύνηση αναγκών Επιλογή του Octave Χαρακτηριστικά και περιβάλλον εργασίας

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

Διαβάστε περισσότερα

Πίνακας περιεχοµένων

Πίνακας περιεχοµένων Πίνακας περιεχοµένων ΠΡΩΤΟ ΜΕΡΟΣ... 1 Κεφάλαιο 1 Εισαγωγή στα συστήµατα ρευµάτων δεδοµένων... 3 1.1 Εισαγωγή... 3 1.2 Η ανεπάρκεια των συµβατικών Σ Β... 4 1.3 Το µοντέλο ρεύµατος δεδοµένων... 7 1.4 Ερωτήµατα

Διαβάστε περισσότερα

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή 1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 451 Εξόρυξη Δεδομένων στον Παγκόσμιο Ιστό I. Στόχος ΑΣΚΗΣΗ 1 Ανάλυση συσχετίσεων ανάμεσα σε προϊόντα Διδάσκων: Γιώργος Πάλλης Υπεύθυνος Εργασίας: Παύλος Αντωνίου

Διαβάστε περισσότερα

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

Διαβάστε περισσότερα

Εφαρμογή Διαχείρισης Στόλου Οχημάτων «RouteΤracker»

Εφαρμογή Διαχείρισης Στόλου Οχημάτων «RouteΤracker» Λειτουργικά Χαρακτηριστικά Εφαρμογή Διαχείρισης Στόλου Οχημάτων «RouteΤracker» Εφαρμογή Διαχείρισης Στόλου Οχημάτων «RouteΤracker» Η εφαρμογή διαχείρισης στόλου οχημάτων RouteTracker δίνει τη δυνατότητα

Διαβάστε περισσότερα

Υπολογιστική Νέφους: Εργαστήριο 1

Υπολογιστική Νέφους: Εργαστήριο 1 Υπολογιστική Νέφους: Εργαστήριο 1 Εικονικές Μηχανές και μετρήσεις απόδοσης Αρκολάκης Δημήτριος Τμήμα Προηγμένων Συστημάτων Πληροφορικής Πανεπιστήμιο Πειραιώς Πειραιάς, Αττική, Ελλάς meetsospapei@gmail.com

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΜΟΣ ΕΠΙΓΕΙΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΛΥΣΟΚΙΝΗΣΗΣ ΓΙΑ ΜΕΤΑΦΟΡΑ ΤΡΟΛΕΪ

ΣΧΕΔΙΑΣΜΟΣ ΕΠΙΓΕΙΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΛΥΣΟΚΙΝΗΣΗΣ ΓΙΑ ΜΕΤΑΦΟΡΑ ΤΡΟΛΕΪ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΣΧΕΔΙΑΣΜΟΣ ΕΠΙΓΕΙΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΛΥΣΟΚΙΝΗΣΗΣ ΓΙΑ ΜΕΤΑΦΟΡΑ ΤΡΟΛΕΪ Μάριος Σταυρίδης Λεμεσός, Ιούνιος 2017 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Διαβάστε περισσότερα

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

Μαζικός Παραλληλισμός λ με Map - Reduce. Μοντέλο Θέματα υλοποίησης Παραδείγματα διαχείρισης δεδομένων

Μαζικός Παραλληλισμός λ με Map - Reduce. Μοντέλο Θέματα υλοποίησης Παραδείγματα διαχείρισης δεδομένων Μαζικός Παραλληλισμός λ με Map - Reduce Μοντέλο Θέματα υλοποίησης Παραδείγματα διαχείρισης δεδομένων Ευχαριστίες Οι διαφάνειες στηρίζονται σε μεγάλο βαθμό στο υλικό που είναι διαθέσιμο από το εργαστήριο

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

Standard Template Library (STL) C++ library

Standard Template Library (STL) C++ library Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Standard Template Library (STL) C++ library Δομές Δεδομένων Μάριος Κενδέα kendea@ceid.upatras.gr Εισαγωγή Η Standard Βιβλιοθήκη προτύπων

Διαβάστε περισσότερα

Ανάκτηση πληροφορίας

Ανάκτηση πληροφορίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ανάκτηση πληροφορίας Ενότητα 6: Ο Αντεστραμμένος Κατάλογος Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

ΠΙΛΟΤΙΚΗ ΕΦΑΡΜΟΓΗ ΑΥΤΟΝΟΜΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΛΟΗΓΗΣΗΣ ΓΙΑ ΤΗΝ ΠΑΡΑΓΩΓΗ ΥΨΗΛΗΣ ΑΝΑΛΥΣΗΣ ΟΡΘΟΦΩΤΟΓΡΑΦΙΩΝ ΓΕΩΡΓΙΚΩΝ ΕΚΤΑΣΕΩΝ

ΠΙΛΟΤΙΚΗ ΕΦΑΡΜΟΓΗ ΑΥΤΟΝΟΜΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΛΟΗΓΗΣΗΣ ΓΙΑ ΤΗΝ ΠΑΡΑΓΩΓΗ ΥΨΗΛΗΣ ΑΝΑΛΥΣΗΣ ΟΡΘΟΦΩΤΟΓΡΑΦΙΩΝ ΓΕΩΡΓΙΚΩΝ ΕΚΤΑΣΕΩΝ Σχολή Μηχανικής & Τεχνολογίας Τμήμα Πολιτικών & Μηχανικών Γεωπληροφορικής Μεταπτυχιακή διατριβή ΠΙΛΟΤΙΚΗ ΕΦΑΡΜΟΓΗ ΑΥΤΟΝΟΜΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΛΟΗΓΗΣΗΣ ΓΙΑ ΤΗΝ ΠΑΡΑΓΩΓΗ ΥΨΗΛΗΣ ΑΝΑΛΥΣΗΣ ΟΡΘΟΦΩΤΟΓΡΑΦΙΩΝ ΓΕΩΡΓΙΚΩΝ

Διαβάστε περισσότερα

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

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ Χαρίτων Ευσταθιάδης Σοφία Γεωργιάδου Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής ΕΠΛ 425

Διαβάστε περισσότερα

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή Οι σηµερινές δραστηριότητες των επιχειρήσεων δηµιουργούν την ανάγκη για όσο το δυνατό µεγαλύτερη υποστήριξη από τα πληροφοριακά τους

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΑ 3 και 9 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΕΣ Δεδομένα αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της δηλαδή.

Διαβάστε περισσότερα

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 9: Πληροφοριακά Συστήματα Ορισμοί

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 9: Πληροφοριακά Συστήματα Ορισμοί Εισαγωγή στα Πληροφοριακά Συστήματα Ενότητα 9: Πληροφοριακά Συστήματα Ορισμοί Κωνσταντίνος Ταραμπάνης Τμήμα Οργάνωσης & Διοίκησης Επιχειρήσεων ΕΙΣΑΓΩΓΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κωνσταντίνος Ταραμπάνης

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Α.Μ. 123/04 ΕΠΙΒΛΕΠΩΝ: ΣΑΜΑΡΑΣ ΝΙΚΟΛΑΟΣ ΘΕΣΣΑΛΟΝΙΚΗ, ΙΟΥΝΙΟΣ 2007 Περιεχόμενα

Διαβάστε περισσότερα

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

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

Διαβάστε περισσότερα

Συστήματα Πληροφοριών Διοίκησης

Συστήματα Πληροφοριών Διοίκησης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Τεχνολογικό Εκπαιδευτικό Ίδρυμα Πειραιά Συστήματα Πληροφοριών Διοίκησης Ενότητα 2: Γενική θεώρηση και κατάταξη συστημάτων πληροφοριών διοίκησης Διονύσιος Γιαννακόπουλος, Καθηγητής Τμήμα

Διαβάστε περισσότερα

«Αξιολόγηση ατόμων με αφασία για Επαυξητική και Εναλλακτική Επικοινωνία, σύμφωνα με το μοντέλο συμμετοχής»

«Αξιολόγηση ατόμων με αφασία για Επαυξητική και Εναλλακτική Επικοινωνία, σύμφωνα με το μοντέλο συμμετοχής» Σχολή Επιστημών Υγείας Τμήμα Αποκατάστασης ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Αξιολόγηση ατόμων με αφασία για Επαυξητική και Εναλλακτική Επικοινωνία, σύμφωνα με το μοντέλο συμμετοχής» Χρυσάνθη Μοδέστου Λεμεσός, Μάιος,

Διαβάστε περισσότερα

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές

Διαβάστε περισσότερα

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

Διαβάστε περισσότερα

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

The challenges of non-stable predicates

The challenges of non-stable predicates The challenges of non-stable predicates Consider a non-stable predicate Φ encoding, say, a safety property. We want to determine whether Φ holds for our program. The challenges of non-stable predicates

Διαβάστε περισσότερα

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

Διαβάστε περισσότερα

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο -

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο - ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου

Διαβάστε περισσότερα

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Μάθημα 3: Αρχιτεκτονική Υπολογιστών Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται

Διαβάστε περισσότερα

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Διάλεξη 14: Δέντρα IV - B-Δένδρα ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 14: Δέντρα IV - B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - 2-3 Δένδρα, Εισαγωγή και άλλες πράξεις - Άλλα Δέντρα: Β-δένδρα, Β+-δέντρα,

Διαβάστε περισσότερα

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

Διαβάστε περισσότερα

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

Διαβάστε περισσότερα

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος ΑΣΚΗΣΗ Δημιουργία Ευρετηρίων Συλλογής Κειμένων Σκοπός της άσκησης είναι η υλοποίηση ενός συστήματος επεξεργασίας

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων Λειτουργικά Συστήματα Ι Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων Δομή Η/Υ Ο Η/Υ αποτελείται από δυο βασικά στοιχεία: Υλικό (το ηλεκτρονικό-μηχανικό μέρος πχ συσκευές, πλακέτες κλπ) Λογισμικό

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΟΤΕΧΝΙΚΗ ΑΝΑΛΥΣΗ ΕΝΟΣ ΕΝΕΡΓΕΙΑΚΑ ΑΥΤΟΝΟΜΟΥ ΝΗΣΙΟΥ ΜΕ Α.Π.Ε

ΟΙΚΟΝΟΜΟΤΕΧΝΙΚΗ ΑΝΑΛΥΣΗ ΕΝΟΣ ΕΝΕΡΓΕΙΑΚΑ ΑΥΤΟΝΟΜΟΥ ΝΗΣΙΟΥ ΜΕ Α.Π.Ε Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. ΟΙΚΟΝΟΜΟΤΕΧΝΙΚΗ ΑΝΑΛΥΣΗ ΕΝΟΣ ΕΝΕΡΓΕΙΑΚΑ ΑΥΤΟΝΟΜΟΥ ΝΗΣΙΟΥ ΜΕ Α.Π.Ε Πτυχιακή Εργασία Φοιτητής: Γεμενής Κωνσταντίνος ΑΜ: 30931 Επιβλέπων Καθηγητής Κοκκόσης Απόστολος Λέκτορας

Διαβάστε περισσότερα

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ο αλγόριθμος ταξινόμησης Radix Sort -Δυο εκδοχές: Most Significant Digit (MSD) και Least Significant

Διαβάστε περισσότερα

MBR Ελάχιστο Περιβάλλον Ορθογώνιο (Minimum Bounding Rectangle) Το µικρότερο ορθογώνιο που περιβάλλει πλήρως το αντικείµενο 7 Παραδείγµατα MBR 8 6.

MBR Ελάχιστο Περιβάλλον Ορθογώνιο (Minimum Bounding Rectangle) Το µικρότερο ορθογώνιο που περιβάλλει πλήρως το αντικείµενο 7 Παραδείγµατα MBR 8 6. Πανεπιστήµιο Πειραιώς - Τµήµα Πληροφορικής Εξόρυξη Γνώσης από εδοµένα (Data Mining) Εξόρυξη Γνώσης από χωρικά δεδοµένα (κεφ. 8) Γιάννης Θεοδωρίδης Νίκος Πελέκης http://isl.cs.unipi.gr/db/courses/dwdm Περιεχόµενα

Διαβάστε περισσότερα

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

Διαβάστε περισσότερα

Κεφάλαιο 1ο. 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων

Κεφάλαιο 1ο. 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων Κεφάλαιο 1ο 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων http://leitourgika-systhmata-epal-b.ggia.info Creative Commons License 3.0 Share-Alike Πολυπρογραμματισμός

Διαβάστε περισσότερα

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης Αναστάσιος Α. Νάνος ananos@cslab.ntua.gr Επιβλέπων: Νεκτάριος

Διαβάστε περισσότερα

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος Ηµεροµηνία Παράδοσης: Δευτέρα, 3 Απριλίου 2017, ώρα 23:59. Τρόπος Παράδοσης:

Διαβάστε περισσότερα

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling) Μάθημα 6 ο Χρονοδρομολόγηση (Scheduling) Σκοπός του μαθήματος Στην ενότητα αυτή θα εξηγήσουμε το ρόλο και τη λειτουργία της χρονοδρομολόγησης σε ένα Λειτουργικό Σύστημα. Θα μάθουμε: Να ορίζουμε τι είναι

Διαβάστε περισσότερα

first block of queries p-th block of queries p

first block of queries p-th block of queries p Εργασία 1η Παράλληλα & Διανεμημένα Συστήματα Μόσχογλου Στυλιανός 6978 Αριστοτέλης Μικρόπουλος 6977 28 Νοεμβρίου 2011 Περιεχόμενα 1 Πρόλογος 2 2 Ο σειριακός k nearest neighbor algorithm 2 2.1 Η λειτουργία

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας σε Νέφη Υπολογιστών

Ανάκτηση Πληροφορίας σε Νέφη Υπολογιστών Πανεπιστήμιο Πατρών Τμήμα Μηχανικών Η/Υ & Πληροφορικής Διπλωματική Εργασία Ανάκτηση Πληροφορίας σε Νέφη Υπολογιστών Ζώης Βασίλειος 4183 Επιβλέπων: Γαροφαλάκης Ιωάννης Εξεταστές: Γαροφολάκης Ιωάννης, Χρήστος

Διαβάστε περισσότερα

WIRELESS SENSOR NETWORKS (WSN)

WIRELESS SENSOR NETWORKS (WSN) WIRELESS SENSOR NETWORKS (WSN) Δρ. Ιωάννης Παναγόπουλος Εργαστήριο Υπολογιστικών Συστημάτων Καθ. Γεώργιος Παπακωνσταντίνου Αθήνα 2008 ΕΙΣΑΓΩΓΗ ΣΤΑ WSN Σε συγκεκριμένες εφαρμογές, επιθυμείται η μέτρηση

Διαβάστε περισσότερα

ΔΕΙΓΜΑΤΟΛΗΨΙΑ ΧΡΟΝΟΣΗΜΑΣΜΕΝΩΝ, ΑΚΟΛΟΥΘΙΑΚΩΝ, ΣΥΝΘΕΤΩΝ ΤΥΠΩΝ ΔΕΔΟΜΕΝΩΝ

ΔΕΙΓΜΑΤΟΛΗΨΙΑ ΧΡΟΝΟΣΗΜΑΣΜΕΝΩΝ, ΑΚΟΛΟΥΘΙΑΚΩΝ, ΣΥΝΘΕΤΩΝ ΤΥΠΩΝ ΔΕΔΟΜΕΝΩΝ ΔΕΙΓΜΑΤΟΛΗΨΙΑ ΧΡΟΝΟΣΗΜΑΣΜΕΝΩΝ, ΑΚΟΛΟΥΘΙΑΚΩΝ, ΣΥΝΘΕΤΩΝ ΤΥΠΩΝ ΔΕΔΟΜΕΝΩΝ Δομή παρουσίασης Εισαγωγή Βασικές Έννοιες Σχετικές μελέτες Εφαρμογή Δεδομένων Συμπεράσματα Εισαγωγή Μελέτη και προσαρμογή των διάφορων

Διαβάστε περισσότερα

Η θέση ύπνου του βρέφους και η σχέση της με το Σύνδρομο του αιφνίδιου βρεφικού θανάτου. ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ

Η θέση ύπνου του βρέφους και η σχέση της με το Σύνδρομο του αιφνίδιου βρεφικού θανάτου. ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Η θέση ύπνου του βρέφους και η σχέση της με το Σύνδρομο του αιφνίδιου βρεφικού θανάτου. Χρυσάνθη Στυλιανού Λεμεσός 2014 ΤΕΧΝΟΛΟΓΙΚΟ

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ > ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΡΙΣΜΟΣ: Το Cloud Computing είναι η ονοµασία της τεχνολογίας η οποία επιτρέπει στους χρήστες να

Διαβάστε περισσότερα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

Διαβάστε περισσότερα

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας

Διαβάστε περισσότερα

Μετρήσεις ηλιοφάνειας στην Κύπρο

Μετρήσεις ηλιοφάνειας στην Κύπρο Πτυχιακή εργασία Μετρήσεις ηλιοφάνειας στην Κύπρο Ιωσήφ Μικαίος Λεμεσός, Μάιος 2018 1 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ

Διαβάστε περισσότερα

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 4 «Αρχιτεκτονικές ΛΣ» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 1. Μονολιθικά συστήματα Αρχιτεκτονικές ΛΣ 2. Στρωματοποιημένη αρχιτεκτονική 3. Αρχιτεκτονική

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα