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

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

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

Transcript

1 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΟΠΤΙΚΟΠΟΙΗΣΗ ΡΕΥΜΑΤΩΝ ΤΡΟΧΙΑΣ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της Παρασκευής Κεφαλληνού Επιβλέπων : Τιμολέων Σελλής Καθηγητής Ε.Μ.Π. Αθήνα, Ιούλιος 2005

2

3 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΟΠΤΙΚΟΠΟΙΗΣΗ ΡΕΥΜΑΤΩΝ ΤΡΟΧΙΑΣ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της Παρασκευής Κεφαλληνού Επιβλέπων : Τιμολέων Σελλής Καθηγητής Ε.Μ.Π. η Εγκρίθηκε από την τριμελή εξεταστική επιτροπή την 11P P Ιουλίου Τιμολέων Σελλής Ιωάννης Βασιλείου Νεκτάριος Κοζύρης Καθηγητής Ε.Μ.Π. Καθηγητής Ε.Μ.Π. Επίκ. Καθηγητής Ε.Μ.Π. Αθήνα, Ιούλιος 2005

4 ... ΠΑΡΑΣΚΕΥΗ Π. ΚΕΦΑΛΛΗΝΟΥ ιπλωματούχος Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών Ε.Μ.Π All rights reserved

5 ΣΥΝΟΨΗ Αντικείμενο της διπλωματικής εργασίας είναι ο σχεδιασμός και η υλοποίηση μιας εφαρμογής που προσφέρει τη δυνατότητα παρακολούθησης και επεξεργασίας τροχιών κινούμενων αντικείμενων στο πλαίσιο ενός φιλικού γραφικού περιβάλλοντος διεπαφής. Τα κινούμενα αντικείμενα είναι σημειακά και η θέση τους μεταβάλλεται δυναμικά. Οι πληροφορίες που τα αφορούν εισέρχονται στο σύστημα με τη μορφή ρευμάτων δεδομένων, η επεξεργασία των οποίων συνίσταται κυρίως στην αποτίμηση ερωτημάτων διαρκείας. Τα τελευταία εκτελούνται συνεχώς και τα αποτελέσματά τους ενημερώνονται με την άφιξη νέων δεδομένων. Η εφαρμογή οπτικοποιεί την τρέχουσα θέση και την τροχιά κάθε αντικειμένου πάνω σε χάρτη. Παράλληλα παρέχει τη δυνατότητα ταυτόχρονης υποβολής πολλαπλών ερωτημάτων διαρκείας και παρουσίασης των αποτελεσμάτων τους μέσω κατάλληλης γραφικής διασύνδεσης. Η εφαρμογή δοκιμάστηκε στην παρακολούθηση κίνησης οχημάτων στο οδικό δίκτυο της Αθήνας. Τα ερωτήματα διαρκείας που παρουσιάζουν μεγαλύτερο ενδιαφέρον σε αυτές τις συνθήκες, εξετάζουν τις χωρικές συσχετίσεις αντικειμένων, κινούμενων και στατικών. Τα σημαντικότερα είναι ερωτήματα με επιλογή χωρικού παραθύρου (range queries), χωρικής περιοχής (spatial containment queries), απόστασης (distance queries), εγγύτερου γείτονα (nearest neighbor queries), τα οποία στο πλαίσιο της εφαρμογής υλοποιήθηκαν παρακάμπτοντας τους περιορισμούς της γλώσσας ερωταποκρίσεων. Η σύνταξη των ερωτημάτων με στατικά χωρικά κατηγορήματα μπορεί να πραγματοποιηθεί αλληλεπιδρώντας με το χάρτη, με χρήση κατάλληλων σχεδιαστικών εργαλείων. Η ανανέωση των αποτελεσμάτων γίνεται σταδιακά, σε πραγματικό χρόνο και ακολουθεί το ρυθμό άφιξης των δεδομένων. Η διαχείριση των χωροχρονικών ρευμάτων δεδομένων πραγματοποιείται από το TelegraphCQ, ένα πρωτότυπο Σύστημα ιαχείρισης Ρευμάτων εδομένων, που στηρίζεται στην PostgreSQL. Η απεικόνιση των στατικών και δυναμικών δεδομένων γίνεται με χρήση των βιβλιοθηκών MapObjects-Java της ESRI και το περιβάλλον διεπαφής αναπτύχθηκε πάνω στις βιβλιοθήκες γραφικών της JAVA. ΛΕΞΕΙΣ ΚΛΕΙ ΙΑ: Ερωτήματα διαρκείας Κινούμενα Αντικείμενα Οπτικοποίηση Ρεύματα δεδομένων Χωροχρονικά δεδομένα

6

7 ABSTRACT The aim of this thesis is the development of a graphical tool that enables the visualization and processing of moving object trajectories. Moving objects are modelled as points whose location changes dynamically. Movement information arrives at the system in the form of data streams and it is elaborated continuously. This is achieved by employing continuous queries, a new type of queries, whose results are continuously updated. The trajectory of each object is visualized on a map together with its current location. The GUI also provides graphical forms and tables for query design, submission and result viewing. Finally, there is support for simultaneous execution of multiple queries. The application is evaluated in the context of car movement monitoring, in Athens' street network. In this case we are mostly interested on queries that examine the spatial correlations between static and moving objects. The application focuses on range, spatial containment, distance and nearest neighbor queries. The implementation of the previous queries is achieved even in cases when it is not supported by the underlying system. Spatial queries are executed against the streaming data by using graphical tools, using the map representation. Results are produced on-line, incrementally according to the data arrival rate. The implementation tools are: TelegraphCQ, a prototype Data Stream Management System built over PostgreSQL, for the data stream management, ESRI 's MapObjects-Java for the spatial (static and dynamic) object rendering and Java programming language for the GUI development. KEYWORDS: Continuous Queries Data streams Moving objects Spatiotemporal data Visualization

8 Σημείωση: Τα γεωγραφικά δεδομένα που χρησιμοποιήθηκαν στην εφαρμογή, όπως και το υπόλοιπο χαρτογραφικό υλικό, αποτελεί πνευματική ιδιοκτησία της ΕΡΑΤΟΣΘΕΝΗΣ Α.Ε., την οποία ευχαριστούμε για την ευγενική προσφορά.

9 Πίνακας Περιεχομένων Κεφάλαιο Εισαγωγή Γενικά Ρεύματα εδομένων Ερωτήματα Κινούμενα αντικείμενα Αντικείμενο διπλωματικής εργασίας Σχετικές εργασίες ιάρθρωση του τεύχους...6 Κεφάλαιο Ρεύματα εδομένων Γενικά Περιγραφή ρευμάτων Ερωτήματα σε ρεύματα δεδομένων Βασικοί ορισμοί Ερωτήματα διαρκείας Αποτελέσματα ερωτημάτων διαρκείας Εκτέλεση ερωτημάτων διαρκείας βάσει του χρόνου ή βάσει περιεχομένου Ερωτήματα διαρκείας με τελεστές συνάθροισης Ενεργά - ανενεργά ερωτήματα διαρκείας Ερωτήματα με βάρη Παράθυρα Τα παράθυρα ως προσεγγιστική μέθοδος Χρονικά παράθυρα Αλγόριθμοι για ρεύματα δεδομένων Απεριόριστες απαιτήσεις σε μνήμη Προσεγγιστικές απαντήσεις σε ερωτήματα Επισκόπηση συστημάτων ρευμάτων δεδομένων Κεφάλαιο Κινούμενα Αντικείμενα Γενικά Μοντέλο αναπαράστασης κινούμενων αντικειμένων Το αφηρημένο μοντέλο κίνησης αντικειμένων Το διακριτό μοντέλο κίνησης των αντικειμένων... 22

10 3.3. Η τροχιά κινούμενων αντικειμένων Η αβεβαιότητα στην αναπαράσταση της κίνησης Τελεστές Χωρικοί τελεστές Χρονικοί τελεστές Χωροχρονικοί τελεστές Γενικοί τελεστές Κατηγοριοποίηση ερωτημάτων ιάρκεια εκτέλεσης Στιγμή υποβολής σε σχέση με το παρόν Χρονική μεταβλητότητα των κατηγορημάτων και κινητικότητα των αντικειμένων Βασικοί τύποι ερωτημάτων Επιλογή σημαντικότερων ερωτημάτων σε χωροχρονικά δεδομένα Κεφάλαιο Αρχιτεκτονική εφαρμογής Περιγραφή της αρχιτεκτονικής του συστήματος Εικόνα4.1: Αρχιτεκτονική εφαρμογής Ρεύματα τροχιάς αντικειμένων Σύστημα ιαχείρισης Ρευμάτων εδομένων Ερωτήματα ιαρκείας Χάρτης Γραφικό περιβάλλον διασύνδεσης Κεφάλαιο Υλοποίηση Προγραμματιστικά εργαλεία TelegraphCQ Ανάγκη για προσαρμοστικότητα Τεχνολογικό υπόβαθρο Βασικά δομικά συστατικά του Συστήματος Telegraph Τύποι οντοτήτων του Telegraph Ο ρόλος των Eddies και SteMs στην προσαρμοστικότητα της επεξεργασίας Fjords, η μονάδα διασύνδεσης μεταξύ των οντοτήτων Κλιμάκωση μέσω της μονάδας Flux Αρχικά Συστήματα υποστήριξης ερωτημάτων διαρκείας Κύρια χαρακτηριστικά του TelegraphCQ Σχεδιασμός του συστήματος Η μονάδα εκτέλεσης ερωτημάτων στο TeleraphCQ Πρόσβαση στα δεδομένα... 48

11 Επεκτάσεις του TelegraphCQ PostgreSQL MapObjects Java Βασικές προγραμματιστικές οντότητες Connect BaseQuery ContinuousQueries Φόρμες σύνταξης ερωτημάτων Πίνακες προβολής αποτελεσμάτων Υποβολή ερωτημάτων στο TelegraphCQ Υλοποίηση ερωτήματος εγγύτερου γείτονα (Νearest Νeighbor) Map (χάρτης) Απεικόνιση στατικών χωρικών δεδομένων Χαρτογραφικές λειτουργίες Μηχανισμός ανανέωσης γραφικών δυναμικών δεδομένων Επανεκκίνηση των γραφικών στρωμάτων των δυναμικών δεδομένων Παρακολούθηση συγκεκριμένων αντικειμένων (monitor) Εικόνα 5.13: Κεντρικό παράθυρο εφαρμογής MainMap Βασικές μονάδες του περιβάλλοντος διεπαφής Ο χάρτης Το μενού Μενού «Αρχείο» (File) Μενού «Ερώτημα» (Query) Μενού «Παρακολούθηση» (Monitor) Μενού «Βοήθεια» (Help) Η γραμμή εργαλείων Πλαίσια πληροφορίας Συντονισμός - συνδυασμός μονάδων εφαρμογής Κεφάλαιο Εκτέλεση ερωτημάτων διαρκείας Ερωτήματα στο πλαίσιο της εφαρμογής Σχήμα δεδομένων Περιορισμοί στην εκτέλεση ερωτημάτων Εκτελούμενα Ερωτήματα Ερώτημα με επιλογή χωρικού Παραθύρου (Range Query) Ερωτήματα με επιλογή περιοχής διαφόρων τύπων (Containment Query) Ερώτημα ταυτότητας Ερωτήματα απόστασης Ερωτήματα ταύτισης... 77

12 6.4.6 Ερωτήµατα µε συναθροιστικές συναρτήσεις Ερωτήµατα µε οµαδοποίηση, GROUP BY, HAVING Ερωτήµατα µε σύνδεση Κεφάλαιο Επίλογος Συµπεράσµατα Μελλοντικές επεκτάσεις Επίλογος Παραρτήµατα Α. Εκτενής Περίληψη Β. Βιβλιογραφικές αναφορές Γ. Γλωσσάρι... 97

13 Κεφάλαιο 1 Εισαγωγή 1.1 Γενικά Η εξάπλωση των δικτύων προσδίδει κινητικότητα στα δεδομένα,διαμορφώνοντας ένα περιβάλλον δυναμικής πληροφορίας όπου μεγάλοι όγκοι δεδομένων καταφθάνουν με κυμαινόμενο ρυθμό και απαιτούν επεξεργασία σε πραγματικό χρόνο. Τα κλασικά σχεσιακά Συστήματα ιαχείρισης Βάσεων εδομένων αδυνατούν να ανταποκριθούν στις νέες συνθήκες καθώς έχουν σχεδιαστεί υπό ένα στατικότερο πρίσμα, όπου: τα δεδομένα βρίσκονται αποθηκευμένα στο σύστημα είναι πάντα προσβάσιμα ενδιαφέρει μόνο η παρούσα κατάστασή τους δίνουν ιδιαίτερη βαρύτητα στην ακρίβεια των αποτελεσμάτων επεξεργασίας και όχι στο ρυθμό παραγωγής τους. Την ανεπάρκεια των Σ Β σε τέτοια ρευστά περιβάλλοντα πληροφορίας έρχονται να καλύψουν τα Συστήματα ιαχείρισης Ρευμάτων εδομένων (Σ Ρ ). Αυτά αποτελούν μια νέα προσέγγιση που επιδιώκει να παρέχει την απαιτούμενη ευελιξία και προσαρμοστικότητα. Εδώ τα δεδομένα διαθέτουν μορφή ρευμάτων, η επεξεργασία των οποίων συνίσταται κυρίως στην αποτίμηση ερωτημάτων διαρκείας.τα τελευταία εκτελούνται συνεχώς και τα αποτελέσματά τους ενημερώνονται με την άφιξη νέων δεδομένων. Τα Σ Ρ επιχειρούν να αντιμετωπίσουν κατάλληλα τις έντονες ανάγκες επεξεργασίας, τις διακυμάνσεις στο φόρτο εργασίας, στο ρυθμό άφιξης των δεδομένων αλλά και όποιες μεταβολές προκύψουν από εξωτερικούς παράγοντες (απαιτήσεις χρηστών, ποιότητα μετάδοσης κλπ.). Σε αυτό το πλαίσιο αναπτύσσονται εφαρμογές παρακολούθησης (monitoring applications) σε διάφορους τομείς, όπως χρηματιστηριακές υπηρεσίες, δίκτυα αισθητήρων, μηχανές αναζήτησης στο διαδίκτυο κ.α. Ιδιαίτερο ενδιαφέρον παρουσιάζει η παρακολούθηση κινούμενων αντικειμένων, καθώς τα δεδομένα που διαχειρίζεται διαθέτουν εκτός από δυναμικό και χωροχρονικό χαρακτήρα. Προκύπτει, λοιπόν, το ζήτημα της αναπαράστασης της πληροφορίας 1

14 κίνησης σε μια Βάση εδομένων, το οποίο αντιμετωπίζεται με την εκμετάλλευση των ρευμάτων δεδομένων, προσθέτοντάς τους πεδία χωρικής πληροφορίας (συντεταγμένες θέσης). Το αποτέλεσμα αυτής της διαδικασίας είναι τα ρεύματα τροχιάς. Ένα ακόμη σημαντικό χαρακτηριστικό της πληροφορίας κίνησης είναι ότι μπορεί να απεικονιστεί σε χάρτη. Με αυτό τον τρόπο αποδίδεται αμεσότερα και σαφέστερα η ουσία της σε σχέση με την αριθμητική της αναπαράσταση. Στο πλαίσιο της διπλωματικής εργασίας επιχειρείται η μοντελοποίηση της πληροφορίας κίνησης μέσω των ρευμάτων τροχιάς, η οπτικοποίηση της σε χάρτη, αλλά και η διατύπωση και εκτέλεση κατάλληλων ερωτημάτων για την επεξεργασία της, μέσω ενός φιλικού γραφικού περιβάλλοντος διεπαφής. 1.2 Ρεύματα εδομένων Τα Συστήματα ιαχείρισης Ρευμάτων εδομένων (Σ Ρ ) έχουν προταθεί για να καλύψουν ανάγκες σε περιβάλλοντα έντονης και δυναμικής επεξεργασίας, όπου τα δεδομένα παράγονται συνεχώς, με μεταβλητό ρυθμό και άγνωστο συνολικό μέγεθος. Επίσης, οι συνθήκες μετάδοσης των στοιχείων είναι αβέβαιες ενώ επιβάλλεται η επεξεργασία τους σε πραγματικό χρόνο. Σε τέτοιες απαιτήσεις τα συμβατικά Συστήματα ιαχείρισης Βάσεων εδομένων (Σ Β ) δεν ανταποκρίνονται επαρκώς. Ως ρεύμα δεδομένων (data stream) μπορεί να θεωρηθεί μια ακολουθία στοιχείων που παράγονται διαρκώς από κάποια πηγή δεδομένων (π.χ. ένας αισθητήρας μέτρησης θερμοκρασίας, επισκέψεις σε ιστοσελίδες κλπ.). Μπορεί μεν τα στοιχεία του ρεύματος να διατηρούν την γνώριμη μορφή της σχεσιακής πλειάδας (tuple), αλλά το ρεύμα στο σύνολό του παρουσιάζει κάποια ιδιαίτερα χαρακτηριστικά. Οι πλειάδες δεν βρίσκονται αποθηκευμένες σε στατικούς πίνακες, αλλά καταφθάνουν στο σύστημα διαρκώς, με κυμαινόμενο ρυθμό. Το μέγεθος του ρεύματος μπορεί να είναι απεριόριστο. Το σύστημα δεν ελέγχει τη διάταξη ή τον ρυθμό με τον οποίο καταφθάνουν τα δεδομένα. Κάθε στοιχείο του ρεύματος μετά την επεξεργασία του είτε αποθηκεύεται είτε απορρίπτεται. Επομένως, μελλοντικές προσπελάσεις του είναι είτε ιδιαίτερα δαπανηρές είτε εντελώς αδύνατες. 1.3 Ερωτήματα Τα ερωτήματα (queries) που τίθενται σε ρεύματα δεδομένων μοιάζουν αρκετά μ εκείνα που υποβάλλονται στα περιεχόμενα μιας τυπικής βάσης δεδομένων. Είναι το βασικό εργαλείο επεξεργασίας των δεδομένων και παρουσιάζουν κάποια νέα χαρακτηριστικά σε σχέση με αυτά των κλασικών σχεσιακών βάσεων δεδομένων. Τα ερωτήματα μπορούν να κατηγοριοποιηθούν ανάλογα με την διάρκεια κατά την οποία παραμένουν ενεργά. Γίνεται λοιπόν διάκριση σε ερωτήματα στιγμιοτύπου (snapshot ή one-time queries) που εξετάζουν την κατάσταση των δεδομένων του συστήματος μόνο τη χρονική στιγμή της υποβολής τους (pull model) και σε ερωτήματα διαρκείας (continuous queries) που εκτελούνται για μεγάλα χρονικά διαστήματα μέχρι να αποφασιστεί η αναστολή ή ο τερματισμός τους. Αυτά μπορούν να επιστρέφουν δεδομένα χωρίς να απαιτείται η επαναλαμβανόμενη υποβολή τους. Τα ερωτήματα διαρκείας αποτελούν το βασικότερο εργαλείο επεξεργασίας των ρευμάτων δεδομένων και σ αυτά επικεντρώνεται η εργασία αυτή. Στην εκτέλεση των ερωτημάτων διαρκείας θα πρέπει να τονιστεί ο ρόλος των παραθύρων (windows). Πρόκειται για δομές που επιτρέπουν την απόσπαση πεπερασμένου πλήθους πλειάδων από το απειράριθμο ρεύμα. Από την μία λοιπόν μετριάζουν τον όγκο των δεδομένων που θα 2

15 συμμετάσχουν στον υπολογισμό της απάντησης, ενώ από την άλλη αποδίδουν έμφαση στα πιο πρόσφατα στοιχεία, κάτι χρήσιμο σε πολλές εφαρμογές. Τα ερωτήματα προσδιορίζονται και βάσει του χρόνου υποβολής τους σε σχέση με τον χρόνο άφιξης των δεδομένων. Έτσι, τα ερωτήματα που είναι γνωστά εκ των προτέρων (πριν ξεκινήσει η εισροή των δεδομένων) χαρακτηρίζονται ως προκαθορισμένα (predefined) και συνήθως είναι ερωτήματα διαρκείας. Σε αντιδιαστολή, τα περιστασιακά ερωτήματα (ad hoc) υποβάλλονται online σε κάποια επόμενη φάση, αφού τα ρεύματα δεδομένων αρχίσουν να εισέρχονται στο σύστημα. 1.4 Κινούμενα αντικείμενα Τα κινούμενα αντικείμενα είναι χωρικά αντικείμενα των οποίων η έκταση ή η θέση μεταβάλλεται με την πάροδο του χρόνου. Στην παρούσα περίπτωση, η κίνηση των αντικειμένων μοντελοποιείται ως μια ακολουθία σημειακών παρατηρήσεων στο δισδιάστατο επίπεδο, οπότε ενδιαφέρει μόνο η θέση τους. Η ακολουθία συγκροτεί το ρεύμα τροχιάς: κάθε πλειάδα του αποτελείται από το χρονόσημο (timestamp) και τις συντεταγμένες της τρέχουσας θέσης ενός αντικειμένου. Βεβαίως, αν και η κίνηση είναι στην πραγματικότητα συνεχής, παίρνει διακριτή μορφή όταν πρόκειται να αναπαρασταθεί στον υπολογιστή (π.χ. διαδοχικά στίγματα από GPS). Τα δεδομένα έχουν χωροχρονικό χαρακτήρα, εφόσον εκτός από τις ιδιότητες των χωρικών και των χρονικών δεδομένων, διαθέτουν και άλλες πρόσθετες που προκύπτουν από τον συνδυασμό τους (λ.χ. ταχύτητα). Επισημαίνεται επίσης η σημασία του χρονικού χαρακτήρα των στοιχείων ως προς τη δυνατότητα διάταξης που προσδίδει στα δεδομένα και που είναι απαραίτητος και για τη διαχείριση των ρευμάτων. 1.5 Αντικείμενο διπλωματικής εργασίας Στόχος της διπλωματικής εργασίας είναι η ανάπτυξη μιας εφαρμογής η οποία θα προσφέρει τη δυνατότητα παρακολούθησης και επεξεργασίας δεδομένων τροχιάς κινούμενων αντικείμενων, μέσω ενός γραφικού περιβάλλοντος, φιλικού προς το χρήστη (Εικόνα 1.1). Τα σχετικά με την κίνηση δεδομένα έχουν την ιδιότητα να μπορούν να οπτικοποιηθούν και με αυτόν τον τρόπο να αποδίδουν αποτελεσματικότερα την πληροφορία που μεταφέρουν. Σε αντίθεση με άλλου είδους δεδομένα, όπως παραδείγματος χάριν καταγραφές για την οικονομική κατάσταση μιας εταιρίας, τα δεδομένα που περιγράφουν κίνηση στον πραγματικό κόσμο μπορούν να αναπαρασταθούν στο δισδιάστατου χώρο της οθόνης αποδίδοντας έτσι την ουσία της πληροφορίας. Ο χρήστης, αντιλαμβάνεται με μεγαλύτερη ευκολία και σαφήνεια την πληροφορία κίνησης αντικειμένων παρακολουθώντας την οπτική αναπαράσταση των δεδομένων παρά εξετάζοντας πλειάδες. Η εφαρμογή ενσωματώνει τις εξής βασικές λειτουργίες : Απεικόνιση στατικών γεωγραφικών δεδομένων της περιοχή όπου πραγματοποιείται η κίνηση των αντικειμένων. υνατότητα σύνδεσης με το Σύστημα ιαχείρισης Ρευμάτων εδομένων, δηλαδή με τη Βάση εδομένων που επεξεργάζεται την πληροφορία κίνησης. Αποστολή ρευμάτων δεδομένων στη Βάση, με καθορισμό βασικών παραμέτρων όπως το ρυθμό άφιξης και το αρχείο πηγή. On - line παρακολούθηση της κίνησης των αντικειμένων στο χάρτη, με προβολή της τρέχουσας θέσης τους και της ως τώρα τροχιάς τους. 3

16 Υποβολή ερωτημάτων διαφόρων τύπων όπως : γενικά (generic), με επιλογή περιοχής (range) ή εγγύτερου γείτονα (nearest-neighbor). Επίσης, υποστηρίζει την ταυτόχρονη εκτέλεσή τους και την άμεση προβολή των αποτελεσμάτων τους σε ξεχωριστούς πίνακες. Μία από τις λειτουργίες της εφαρμογής είναι η απεικόνιση στατικών χωρικών δεδομένων, δηλαδή του χώρου όπου πραγματοποιείται η κίνηση σε συνδυασμό με διάφορες χαρτογραφικές λειτουργίες όπως μεγέθυνση, σμίκρυνση, προβολή και αλλαγή κλίμακας, προβολή των συντεταγμένων επιλεγμένων σημείων του χάρτη, καθώς επίσης και την μεμονωνμένη παρουσίαση κάποιων εκ των στρωμάτων πληροφορίας που τον αποτελούν, όπως τα όρια της έκτασης της περιοχής, το οδικό δίκτυο και τα ονόματα των επιμέρους συνοικιών. Επιπλέον, διαθέτει τη δυνατότητα σύνδεσης με τη βάση που επεξεργάζεται τα δεδομένα και αποστολής ρευμάτων δεδομένων σε αυτή, μέσω φόρμας που δέχεται παραμετρικά το όνομα ενός ASCII αρχείου που περιέχει τα δεδομένα για τις τροχιές των αντικειμένων και τον επιθυμητό ρυθμό άφιξής τους στο σύστημα. Η παραμετροποίηση επιτρέπει στον χρήστη να επεξεργαστεί μια ποικιλία δεδομένων και να εξετάσει τη συμπεριφορά της εφαρμογής σε διάφορες συνθήκες φόρτου εργασίας. Μόλις τα δεδομένα που περιγράφουν τροχιές φτάσουν στη Βάση, στέλνονται στο χάρτη προς οπτικοποίηση. Οι θέσεις και οι τροχιές όλων των αντικειμένων προβάλλονται ταυτόχρονα και με κατάλληλο συμβολισμό. Χρησιμοποιώντας τις χαρτογραφικές λειτουργίες(μεγέθυνση, σμίκρυνση κλπ.) ο χρήστης είναι σε θέση να εποπτεύει όσα και όποια αντικείμενα επιθυμεί. Παράλληλα παρουσιάζεται σε κατάλληλο πλαίσιο η χρονική στιγμή στην οποία αντιστοιχεί η απεικονιζόμενη πληροφορία. Τέλος, διατίθεται ένας μηχανισμός που επιτρέπει την διαφοροποιημένη προβολή μεμονωμένων αντικειμένων, η παρακολούθηση των οποίων κρίνεται σημαντικότερη από των υπολοίπων (monitor). Μια πολύ βασική λειτουργία της εφαρμογής είναι ότι επιτρέπει και διευκολύνει την υποβολή ερωτημάτων διαρκείας. Η σύνταξη κάθε ερωτήματος πραγματοποιείται μέσω ειδικής φόρμας. Ο χρήστης καλείται να επιλέξει το είδος του ερωτήματος που τον ενδιαφέρει ανάμεσα σε τρεις κατηγορίες: Γενικό (Generic query). Η φόρμα σύνταξης αποτελείται από ένα απλό πλαίσιο κειμένου. Με επιλογή περιοχής (range query). Η φόρμα διαθέτει ειδικά εργαλεία για το σχεδιασμό της περιοχής στο χάρτη Εγγύτερου γείτονα (nearest-neighbor query). Αρκεί η συμπλήρωση της «ταυτότητας» του αντικειμένου με βάση το οποίο επιθυμείται η απάντηση. Μετά την έναρξης της εκτέλεσης ενός ερωτήματος, ο χρήστης είναι σε θέση να το αναστείλει, να τροποποιήσει τη διατύπωσή του του εκτός από τα χαρακτηριστικά που επιστρέφονται στην απάντηση και στη συνέχεια να το επανεκκινήσει. Τα ερωτήματα μπορούν να υποβληθούν ανά πάσα στιγμή, οι απαντήσεις λαμβάνονται εφ' όσον έχει γίνει η σύνδεση με τη βάση και τα αποτελέσματα προβάλλονται σε ξεχωριστούς πίνακες με την ανανέωση τους να ακολουθεί το ρυθμό παραγωγής τους. Το μοντέλο του πραγματικού κόσμου που υιοθετήθηκε για το σχεδιασμό της εφαρμογής είναι η κυκλοφορία οχημάτων διαφόρων τύπων (ταξί, αστυνομικά, περιπολικά, ι.χ.) στο οδικό δίκτυο της Αθήνας. 4

17 Πληροφορία κίνησης αντικειμένων Χάρτης Απεικόνιση χωρικών δεδομένων Εποπτεία, υποβολή ερωτημάτων διαρκείας TelegraphCQ Υποβολή ερωτημάτων Επιστροφή αποτελεσμάτων GUI, Γραφικό περιβάλλον διεπαφής Οπτικοποίηση, προβολή αποτελεσμάτων Χρήστης Εικόνα 1.1: Κύριες λειτουργίες της εφαρμογής. 1.6 Σχετικές εργασίες Η εφαρμογή υλοποιήθηκε με το συνδυασμό πολύ διαφορετικών μεταξύ τους τεχνολογιών. Η φύση των δεδομένων και ο τρόπος επεξεργασίας τους αποτελούν το βασικό άξονα της ανάπτυξής της. Τα δεδομένα αφορούν πληροφορία κινούμενων αντικειμένων. Συγκεκριμένα έχουν χωροχρονικό χαρακτήρα και μορφή ρευμάτων δεδομένων. Για την επεξεργασία τους χρησιμοποιείται κάποιο από τα ειδικά ανεπτυγμένα συστήματα διαχείρισης ρευμάτων δεδομένων (Σ Ρ ). Η μοντελοποίηση χωροχρονικών δεδομένων και η ανάπτυξη Σ Ρ είναι ανοιχτά ερευνητικά θέματα, επομένως και τα σχετικά εργαλεία που διατίθενται βρίσκονται ως επί το πλείστον σε δοκιμαστικό στάδιο. Αρχικά, έπρεπε να αντιμετωπιστεί το πρόβλημα της απόδοσης ενός κατάλληλου μοντέλου δεδομένων για την αναπαράσταση της χωροχρονικής πληροφορίας, η οποία συνδυάζει ιδιότητες τόσο των χωρικών όσο και τον χρονικών δεδομένων με ένα μοναδικό τρόπο, έτσι ώστε η μοντελοποίηση και η διαχείριση της, αν και χρησιμοποιεί υπάρχουσες τεχνικές που αναπτύχθηκαν για το κάθε είδος, να απαιτεί μια νέα προσέγγιση. Επομένως κρίθηκε απαραίτητη η μελέτη των προτάσεων που έχουν γίνει σε αυτό το πλαίσιο, τόσο για την εμπέδωση των χαρακτηριστικών και των ιδιαιτεροτήτων των χωροχρονικών δεδομένων, όσο και για την επιλογή του κατάλληλου για την εφαρμογή μοντέλου. Τα ρεύματα δεδομένων εισάγουν νέες προκλήσεις στην επεξεργασία. Τα συστήματα διαχείρισης ρευμάτων δεδομένων (Σ Ρ ) αποτελούν μια νέα, πειραματική προς το παρόν πρόταση στον χώρο των βάσεων δεδομένων, που επιχειρεί να ανταποκριθεί στις ανάγκες ενός πιο δυναμικού περιβάλλοντος πληροφορίας. Έχουν υλοποιηθεί κάποια από αυτά (πχ. TelegraphCQ, STREAM, Aurora), με το καθένα να έχει δώσει ιδιαίτερη βαρύτητα σε διαφορετικά μέρη της επεξεργασίας. Επομένως, η μελέτη και η σύγκρισή τους αποτέλεσε σημαντικό τμήμα της προετοιμασίας της εφαρμογής, ώστε να προτιμηθεί το πιο ενδεδειγμένο στις παρούσες συνθήκες. Τα εργαλεία που χρησιμοποιήθηκαν για την ανάπτυξη του περιβάλλοντος διεπαφής και την απεικόνιση των δεδομένων είναι κάποιες βιβλιοθήκες της JAVA σε συνδυασμό με αυτές των GIS MapObjects, τα οποία έχουν χρησιμοποιηθεί σε πληθώρα εμπορικών εφαρμογών και δεν παρουσιάζουν κάποιο θεωρητικό ενδιαφέρον στο πλαίσιο της εφαρμογής. 5

18 1.7 ιάρθρωση του τεύχους Η εργασία οργανώνεται σε δύο μέρη, Στο πρώτο (κεφάλαια 2-3) επιχειρείται η ανασκόπηση των θεωρητικών μοντέλων που παρείχαν το κίνητρο αλλά και τα εργαλεία ανάπτυξής της. Στο δεύτερο (κεφάλαια 4-7) περιγράφεται το τεχνικό μέρος της εργασίας, δηλαδή οι διαδικασίες σχεδιασμού, υλοποίησης και δοκιμαστικής λειτουργίας της εφαρμογής. Αναλυτικά: Στο 2 ο Κεφάλαιο παρουσιάζονται οι βασικές αρχές των Συστημάτων ιαχείρισης Ρευμάτων εδομένων. Εξετάζονται οι διαφορές ως προς την μορφή των δεδομένων και τον τρόπο επεξεργασίας τους σε σχέση με τα παραδοσιακά σχεσιακά Συστήματα ιαχείρισης Βάσεων εδομένων. Βαρύτητα δίνεται στην περιγραφή των ρευμάτων δεδομένων, των ερωτημάτων διαρκείας και των αναγκών επεξεργασίας που συνεπάγεται η υιοθέτησή τους. Το 3 ο Κεφαλαίο αναφέρεται στα Συστήματα Κινούμενων Αντικειμένων. Αρχικά αναλύεται το πρόβλημα της μοντελοποίησης της κίνησης. Παραθέτονται τα δύο μοντέλα, του αφηρημένου και του διακριτού που χρησιμοποιούνται. ίνεται ορισμός της τροχιάς των κινούμενων αντικειμένων. Στη συνέχεια, γίνεται κατηγοριοποίηση των ερωτημάτων που τα αφορούν, με κριτήρια τις ιδιότητες των δεδομένων τα οποία εξετάζουν (χωρικές, χρονικές κλπ) και το είδος των τελεστών με τους οποίους διατυπώνονται. Τέλος, γίνεται επιλογή των σημαντικότερων ερωτημάτων για την παρακολούθηση της κίνησης. Το 4 ο Κεφάλαιο εκθέτει την ανάλυση που απαιτήθηκε για την υλοποίηση της εφαρμογής. Αναπτύσσονται τα κριτήρια επιλογής των ρευμάτων τροχιάς ως μοντέλο για την αναπαράσταση της κίνησης των αντικειμένων. Επίσης δίνεται το περίγραμμα της αρχιτεκτονικής της εφαρμογής, με σύντομη ανασκόπηση των λειτουργιών και ιδιοτήτων των βασικών μονάδων από τις οποίες υλοποιείται. Τα προγραμματιστικά εργαλεία πάνω στα οποία αναπτύσσεται η εφαρμογή περιγράφονται αναλυτικά στο 5 ο Κεφάλαιο. Συγκεκριμένα, παρουσιάζεται το Σύστημα ιαχείρισης Ρευμάτων εδομένων TelegraphCQ και γίνεται αναφορά στα PostgreSQL, Java, MapObjects. Ακόμη, αποδίδονται οι λεπτομέρειες υλοποίησης της εφαρμογής με την παράθεση των βασικών προγραμματιστικών οντοτήτων που την απαρτίζουν και την ανάλυση των ιδιοτήτων, λειτουργιών και τρόπων συνεργασίας τους. Το 6 ο Κεφάλαιο αφορά τον τρόπο αξιοποίησης της εφαρμογής και επεξεργασίας των δεδομένων των ρευμάτων τροχιάς. ίνονται οι αδυναμίες της γλώσσας ερωταποκρίσεως του Συστήματος ιαχείρισης Ρευμάτων εδομένων, οι οποίες επιβάλουν περιορισμούς στα ερωτήματα διαρκείας που μπορούν να διατυπωθούν. Με βάσει αυτούς τους περιορισμούς πραγματοποιείται στη συνέχεια η επιλογή των ερωτημάτων που παρουσιάστηκαν στο 3 ο Κεφάλαιο, ώστε να είναι εκτελέσιμα. Τέλος,τα συμπεράσματα από το σχεδιασμό, ανάπτυξη και λειτουργία της εφαρμογής παρατίθενται στο 7 ο Κεφάλαιο. Εδώ αναφέρονται και οι μελλοντικές επεκτάσεις που θα μπορούσε να ακολουθήσει η εφαρμογή σε ένα ωριμότερο στάδιο. Ευχαριστίες Θα ήθελα να ευχαριστήσω τον Κώστα Πατρούμπα για την υποστήριξή του και να του ευχηθώ καλή συνέχεια στην προσπάθειά του. 6

19 Κεφάλαιο 2 Ρεύματα εδομένων 2.1 Γενικά Τα ρεύματα δεδομένων αποτελούν μια νέα πρόταση στον χώρο των βάσεων δεδομένων, που προέκυψε από την αδυναμία των παραδοσιακών Συστημάτων ιαχείρισης Βάσεων εδομένων (Σ Β ) να ανταποκριθούν στις επεξεργαστικές ανάγκες πιο δυναμικής πληροφορίας. Ένα ρεύμα δεδομένων απαρτίζεται από στοιχεία τα οποία παράγονται διαρκώς και απαιτούν άμεση παρακολούθηση και επεξεργασία, ώστε η εξαγωγή πληροφοριών που μεταφέρουν να γίνει σε πραγματικό χρόνο. Οι εφαρμογές παρακολούθησης στις οποίες εμφανίζεται συνήθως η ανάγκη για δυναμική επεξεργασία ρευμάτων δεδομένων αναπτύχθηκαν βασιζόμενες στην μεγάλη εξάπλωση των δικτύων. Αυτές επεξεργάζονται, αναλύουν και αντιδρούν σχεδόν άμεσα σε ποικίλες μορφές δεδομένων. Οι σημαντικότερες είναι: Χρηματιστηριακές - οικονομικές (πχ. Παρακολούθηση των τιμών χρηματιστηριακών δεικτών). Ασφαλείας του διαδικτύου. Εξετάζουν τα ρεύματα πακέτων που ανταλλάσσονται. Υπηρεσίες ιστοσελίδων που εμπλέκουν on line παρακολούθηση απόδοσης, παραμετροποίηση και καταμερισμό του φόρτου εργασίας. Παρακολούθηση αισθητήρων, οι οποίοι εξάγουν τις μετρήσεις τους και τις αποστέλλουν με την μορφή ρευμάτων προς ανάλυση και επεξεργασία. Παρακολούθηση πιστωτικών καρτών. Στρατιωτικού περιεχομένου. 7

20 2.2 Περιγραφή ρευμάτων Όλες οι εφαρμογές που αναφέρθηκαν παραπάνω επεξεργάζονται δυναμικά δεδομένα τα οποία παράγονται συνεχώς, με μεταβλητό ρυθμό, άγνωστο μέγεθος, αβέβαιες συνθήκες μετάδοσης ενώ επιβάλλεται η επεξεργασία τους με την μικρότερη δυνατή καθυστέρηση. Αυτές οι ιδιότητες αποτελούν κάποια κάποια από τα βασικότερα χαρακτηριστικά των ρευμάτων δεδομένων. Ένα ρεύμα δεδομένων μπορεί να θεωρηθεί σαν μια ακολουθία στοιχείων που παράγονται διαρκώς από μία πηγή, την πηγή δεδομένων, η οποία μπορεί να είναι ένας αισθητήρας μέτρησης φυσικών μεγεθών (πχ. θερμοκρασία), διαδικτυακές συναλλαγές που γίνονται μέσω ροών πακέτων, μια μετοχή της οποίας η τιμή παρακολουθείται συνεχώς, κλπ. Τα στοιχεία του ρεύματος μπορούν να διατηρούν την μορφή της σχεσιακής πλειάδας, αλλά το ρεύμα σαν το σύνολό τους παρουσιάζει κάποια ιδιαίτερα χαρακτηριστικά: Οι πλειάδες δεν βρίσκονται αποθηκευμένες σε στατικούς πίνακες, αλλά καταφθάνουν στο σύστημα διαρκώς, με ακαθόριστο ρυθμό. Το μέγεθος του ρεύματος μπορεί να είναι απεριόριστο. Το σύστημα δεν ελέγχει τη σειρά ή τον ρυθμό με τον οποίο καταφθάνουν τα δεδομένα. Κάθε στοιχείο του ρεύματος μετά την επεξεργασία του είτε αποθηκεύεται είτε απορρίπτεται, με αποτέλεσμα μελλοντικές προσπελάσεις του να είναι ιδιαίτερα δαπανηρές ή ακόμη και αδύνατες. Στα παραδοσιακά Σ Β τα δεδομένα διατηρούνται αποθηκευμένα στο σύστημα και όταν ο χρήστης χρειαστεί κάποια σχετική πληροφορία υποβάλλει ένα ερώτημα και του επιστρέφεται η ανάλογη απάντηση (pull model). Αντιθέτως, όταν τα δεδομένα έχουν την μορφή ρευμάτων δεν αποθηκεύονται αλλά εισέρχονται συνεχώς στο σύστημα και συμμετέχουν στον υπολογισμό μιας σειράς ερωτημάτων που έχουν ήδη ενεργοποιηθεί, επιτάσσοντας την κατάλληλη ανταπόκριση από τον επεξεργαστή ερωτημάτων (push model). Κατ' αυτόν τον τρόπο, αποδίδεται στον χρήστη ένας μάλλον «παθητικός» ρόλος, αφού αρκείται στο να ρυθμίζει παραμέτρους του συστήματος, να υποβάλλει ερωτήματα και να παρατηρεί την εξέλιξη των αποτελεσμάτων τους. Από την άλλη, το σύστημα αδυνατεί να οργανώσει και να χειριστεί τα δεδομένα και την εκτέλεση των ερωτημάτων ολοκληρωτικά και με ακρίβεια όπως στα κλασσικά Σ Β, παρά περιορίζεται στο να αντιδράσει στη ροή τους με το δυνατότερο αποτελεσματικό τρόπο. Ακόμη, καθώς τα ρεύματα δεδομένων αποτελούν συνήθως παράγωγα μετρήσεων τα οποία μεταδίδονται μέσω δικτύων, ο ρυθμός άφιξης τους διακατέχεται από αστάθεια και αβεβαιότητα. εδομένα που χάνονται κατά την μετάδοση, καταιγιστικοί ρυθμοί άφιξης, δικτυακές ανωμαλίες είναι κάποιες από τις καταστάσεις που παρατηρούνται συχνά στις εφαρμογές των ρευμάτων δεδομένων. Επιπλέον, ο όγκος των δεδομένων εκτός του ότι είναι πολύ μεγάλος, είναι και άγνωστος, καθιστώντας έτσι αδύνατο τον ορισμό του μεγέθος μνήμης που απαιτείται για την επεξεργασία τους. Οι πλειάδες των ρευμάτων δεδομένων συνήθως εφοδιάζονται και με ένα πεδίο όπου αναγράφεται το χρονικό ορόσημο, ώστε να υπάρχει ένδειξη της χρονικής στιγμής ή άφιξης της πληροφορίας. Η χρονική ένδειξη και η διάταξη που επιβάλλει στα δεδομένα του ρεύματος είναι εξαιρετικά σημαντική τόσο για στην απόδοση της σημασίας των δεδομένων όσο και κατά την επεξεργασία τους από διάφορα ερωτήματα. Επίσης, στις πλειάδες μπορεί να καταγράφεται και η πηγή προέλευσης τους, αφού συμβαίνει να εισέρχονται στο σύστημα πολλά ρεύματα από διαφορετικές πηγές (πχ. ένδειξη θέσης από διάφορα οχήματα που στέλνεται μέσω GPS). Η παρουσία ρευμάτων δεδομένων δεν αποκλείει την συνύπαρξη τους στο σύστημα με στατικά δεδομένα, αποθηκευμένα σε σχέσεις και συχνά προκύπτει η ανάγκη σύνδεσης (join) μεταξύ δεδομένων που βρίσκονται στις δύο αυτές μορφές. Σημειώνεται εδώ ότι ο πολύ μικρός 8

21 βαθμός μεταβλητότητας των στατικών δεδομένων απλοποιεί το ζήτημα διαχείρισης των δοσοληψιών, αφού σπανίως συμβαίνουν ταυτόχρονα μεταβολές σε στατικές σχέσεις και με την επεξεργασία ρευμάτων. Τέλος, οι εφαρμογές παρακολούθησης συνήθως απαιτούν απαντήσεις σε πραγματικό χρόνο, οπότε ο ρυθμός παραγωγής τους πρέπει να συμβαδίζει με το ρυθμό άφιξης των δεδομένων. Συνεπώς η χρήση δευτερευόντων αποθηκευτικών χώρων δεν ενδείκνυται στην αντιμετώπιση του μεγάλου όγκου δεδομένων, αφού η πρόσβαση σε αυτούς καθυστερεί την επεξεργασία. Η αμεσότητα στην εξαγωγή της απάντησης επιτάσσει την εκμετάλλευση μόνο της κυρίας μνήμης, της οποίας το μέγεθος είναι περιορισμένο. Η κύρια μνήμη μπορεί να διατηρεί κάθε στιγμή ένα μικρό τμήμα του ρεύματος δεδομένων. Επομένως, η επεξεργασία κάθε πλειάδας θα πρέπει να γίνεται σύντομα μετά την άφιξη της στο σύστημα και μετά αυτή να είτε να απορρίπτεται είτε να αρχειοθετείται, συνήθως με τη μορφή περιλήψεων (data synopses, summaries). ηλαδή κάθε στοιχείο του ρεύματος είναι διαθέσιμο για μικρό χρονικό διάστημα μετά από την άφιξη του. 2.3 Ερωτήματα σε ρεύματα δεδομένων Βασικοί ορισμοί Τα ερωτήματα που διατυπώνονται σε ένα Σύστημα ιαχείρισης Ρευμάτων εδομένων θυμίζουν αρκετά αυτά που υποβάλλονται στα δεδομένα ενός κλασικού Σ Β, αλλά με κάποιες σημαντικές διαφοροποιήσεις αναφορικά με: την διάρκεια κατά την οποία είναι ένα ερώτημα ενεργό το χρόνο υποβολή τους σε σχέση με τον χρόνο άφιξης των δεδομένων. Η πρώτη διαφοροποίηση επιχειρεί να αποδώσει τη διάκριση ανάμεσα στα ερωτήματα που εκτελούνται μόνο μια φορά και αυτά που εκτελούνται για μεγαλύτερο χρονικό διάστημα. Τα πρώτα χαρακτηρίζονται ως ερωτήματα στιγμιοτύπου (snapshot ή one-time queries) και εξετάζουν την κατάσταση των δεδομένων του συστήματος μόνο τη δεδομένη χρονική στιγμή. Αυτός ο τύπος ερωτημάτων είναι που χρησιμοποιείται και στα παραδοσιακά Σ Β, όπου ο χρήστης αντλεί τις ζητούμενες πληροφορίες από το σύστημα (pull model). Τα ερωτήματα που εκτελούνται διαρκώς έχουν νόημα και εξαιρετικά μεγάλη σημασία μόνο στα συστήματα διαχείρισης ρευμάτων δεδομένων (Σ Ρ ). Ονομάζονται ερωτήματα διαρκείας (continuous queries) καθώς εκτελούνται για μεγάλα χρονικά διαστήματα μέχρι να αποφασιστεί ρητά η αναστολή ή ο τερματισμός τους. Οι απαντήσεις τους είτε αποθηκεύονται και ανανεώνονται είτε εξάγονται υπό την μορφή ενός νέου ρεύματος δεδομένων. Οι δύο τύποι αποτελεσμάτων είναι κατάλληλοι για διαφορετικού είδους ερωτήματα. Για παράδειγμα, σε ερωτήματα συνάθροισης (aggregate queries) όπου παράγονται λίγες πλειάδες από ένα μεγάλο σύνολο δεδομένων είναι προτιμότερη η αποθήκευση και η ανανέωση, ενώ σε ερωτήματα με σύνδεση (join queries) όπου στο αποτέλεσμα μετέχει μεγάλος αριθμός πλειάδων προτιμάται η εξαγωγή του με την μορφή ρεύματος. Η δεύτερη διαφοροποίηση γίνεται με βάση τον χρόνο υποβολής του ερωτήματος και συγκεκριμένα εξετάζει αν το ερώτημα διατυπώθηκε και υποβλήθηκε πριν την έναρξη της άφιξης των δεδομένων ή μετά. Τα ερωτήματα που είναι γνωστά εκ των προτέρων χαρακτηρίζονται ως προκαθορισμένα (predefined) και συνήθως είναι ερωτήματα διαρκείας, χωρίς να αποκλείεται ο σχεδιασμός και προγραμματισμός μελλοντικής εκτέλεσης ερωτημάτων στιγμιοτύπου. Σε αντιδιαστολή με τα προκαθορισμένα ερωτήματα, τα περιστασιακά ερωτήματα (ad hoc) υποβάλλονται σε κάποια επόμενη φάση, αφού αρχίσουν να εισέρχονται στο σύστημα τα ρεύματα δεδομένων. Τα ad-hoc ερωτήματα διαρκείας περιπλέκουν αρκετά την επεξεργασία ερωτημάτων, 9

22 γιατί καθώς δεν είναι εκ των προτέρων γνωστά, δεν μπορούν να συμπεριληφθούν στην κατάστρωση και βελτιστοποίηση του πλάνου εκτέλεσης ερωτημάτων (query optimization). Ένα ακόμη πρόβλημα που συναντάται συχνά σε αυτό το είδος ερωτημάτων είναι ότι ενδέχεται να αναφέρονται σε δεδομένα που έχουν ήδη παρέλθει από το σύστημα και επομένως είναι πολύ δύσκολη η ανάκτησή τους. Αυτή η δυσκολία αντιμετωπίζεται είτε με βεβαίωση ότι το ερώτημα εκτελείται στα δεδομένα που θα καταφθάσουν μετά την υποβολή του, είτε με χρήση δομών σύνοψης, που συγκρατούν επιλεκτικά πληροφορία για παρωχημένα δεδομένα Ερωτήματα διαρκείας Τα ερωτήματα διαρκείας αποτελούν το βασικότερο εργαλείο επεξεργασίας των ρευμάτων δεδομένων. Σε αντίθεση με τα κλασικά συστήματα διαχείρισης βάσεων (Σ Β ) όπου το σύνολο των δεδομένων είναι προκαθορισμένο και η υποβολή ερωτημάτων σε αυτά εκκινεί τους υπολογισμούς, σε ένα σύστημα διαχείρισης ρευμάτων (Σ Ρ ) υπάρχει ένα ενεργό σύνολο ερωτημάτων στο οποίο τροφοδοτούνται τα ρεύματα ενώ ο ρυθμός υπολογισμού των απαντήσεων θα πρέπει να συμβαδίζει με το ρυθμό άφιξης των δεδομένων. Η διαρκής εκτέλεση των ερωτημάτων σε συνδυασμό με την αβεβαιότητα ως προς το μέγεθος των δεδομένων και το ρυθμό άφιξής τους, προϋποθέτουν μια διαφορετική προσέγγιση όσο αναφορά τη σημασιολογία, το είδος των χρησιμοποιούμενων τελεστών αλλά και το τεχνολογικό υπόβαθρο επεξεργασίας τους. Η διάθεση των πόρων του συστήματος, η κατάστρωση των πλάνων εκτέλεσης (query plan), ο ορισμός νέων δομών όπως των χρονικών παραθύρων, η ανάπτυξη αλγορίθμων επεξεργασίας που πραγματοποιούν την μεγαλύτερη δυνατή συλλογή πληροφορίας με ένα μόνο πέρασμα των δεδομένων, η διατύπωση των ερωτημάτων είναι κάποιοι από τους τομείς όπου απαιτείται αναθεώρηση και σχεδιασμός σε ένα Σ Ρ Αποτελέσματα ερωτημάτων διαρκείας Τα αποτελέσματα των ερωτημάτων διαρκείας παρουσιάζουν κάποια ενδιαφέροντα σημεία ως προς τον αποθηκευτικό χώρο που χρειάζονται για την παραγωγή τους και τις πράξεις που μπορούν να εκτελεστούν σε αυτά : Έστω ότι ένα ερώτημα «φιλτράρει» ένα ρεύμα δεδομένων επιλέγοντας πλειάδες βάσει κάποιου κριτηρίου και ότι η απάντηση πρέπει να είναι διαθέσιμη ανά πάσα στιγμή. Τότε τα αποτελέσματα θα πρέπει να αποθηκεύονται. εδομένου ότι το μέγεθος του ρεύματος δεδομένων δεν είναι καθορισμένο, δεν μπορεί να προσδιοριστεί το απαιτούμενο μέγεθος μνήμης για τη διατήρηση του αποτελέσματος που προκύπτει. Μια λύση στο παραπάνω πρόβλημα είναι η εξαγωγή των αποτελεσμάτων με την μορφή ρευμάτων. Το πρόβλημα του περιορισμένου αποθηκευτικού χώρου μετατοπίζεται τώρα στην παραγωγή των αποτελεσμάτων και όχι στην αποθήκευσή τους, καθώς ο υπολογισμός κάποιων ερωτημάτων όπως αυτά που περιέχουν σύνδεση ενός ρεύματος με τον εαυτό του, απαιτεί την καταγραφή όλου του ρεύματος δεδομένων. Λαμβάνοντας τα παραπάνω υπ' όψιν γίνονται φανερές οι δυσκολίες που παρουσιάζονται αν επιτραπούν ενημερώσεις (updates) και διαγραφές (deletions) στις πλειάδες των απαντήσεων. Η ανάγκη για ανανέωση δεν προκύπτει απαραίτητα από αλλαγές στο ρεύμα δεδομένων, αλλά μπορεί να προκύψει λόγω της φύσης του ίδιου του ερωτήματος (πχ. ερώτημα με συναθροιστικούς τελεστές οι οποίοι λαμβάνουν υπ' όψιν όλο το ρεύμα για την παραγωγή της απάντησης). 10

23 Τέλος, καθώς η συμπεριφορά των αποτελεσμάτων συνήθως ακολουθεί αυτή του επεξεργαζόμενου ρεύματος, χαρακτηρίζεται από αστάθεια και αβεβαιότητα. Η αντιμετώπιση αυτών των προβλημάτων στηρίζεται είτε 1) στην χρήση περιορισμών στον χρησιμοποιούμενο χώρο μνήμης για την υπολογισμό και αποθήκευση των απαντήσεων, είτε 2) στην υιοθέτηση μεθόδων παραγωγής προσεγγιστικών απαντήσεων η οποία παρουσιάζεται πιο ρεαλιστική και αποτελεσματική υπό τις παρούσες συνθήκες Εκτέλεση ερωτημάτων διαρκείας βάσει του χρόνου ή βάσει περιεχομένου Τα ερωτήματα διαρκείας είναι συνεχώς ενεργά, αλλά ο υπολογισμός των αποτελεσμάτων τους μπορεί είτε να υποδεικνύεται από μεταβολές των δεδομένων (change based) είτε να πραγματοποιείται ανά τακτά χρονικά διαστήματα, ορισμένα από τον χρήστη. Στην πρώτη περίπτωση η χρονική απόκριση είναι καλύτερη, αλλά ενδέχεται να γίνεται άσκοπη κατανάλωση πόρων όταν δεν υπάρχει ανάγκη για άμεσα αποτελέσματα. Όταν ο υπολογισμός των ερωτημάτων ενεργοποιείται περιοδικά για ορισμένο χρονικό διάστημα, το σύστημα εμφανίζει καλύτερη συμπεριφορά και περισσότερες δυνατότητες κλιμάκωσης (scalability) Ερωτήματα διαρκείας με τελεστές συνάθροισης Οι τελεστές συνάθροισης(aggregate operators) παράγουν μια «περιληπτική» τιμή των δεδομένων στα οποία εφαρμόζονται. Τα ρεύματα δεδομένων ενδέχεται να μεταφέρουν αρκετά λεπτομερή πληροφορία με ανεπαίσθητες μεταβολές μεταξύ των διαδοχικών στοιχείων. Επομένως, τα ερωτήματα διαρκείας με συναθροιστικούς τελεστές μπορούν να αποτελέσουν ένα πολύ χρήσιμο εργαλείο επεξεργασίας καθώς μπορούν να δώσουν την τάση μεταβολής των στοιχείων. Πχ. Μπορεί να ενδιαφέρει περισσότερο τον χρήστη η πληροφορία του μέσου αριθμού οχημάτων σε μια περιοχή, παρά ο αριθμός των οχημάτων στην περιοχή ανά χρονική στιγμή (υποτίθεται ότι η πληροφορία θέσης των οχημάτων έχει τη μορφή ρεύματος δεδομένων). Αυτά τα ερωτήματα μπορούν να διακριθούν σε τρεις βασικές κατηγορίες: Ερωτήματα για μεμονωμένα στοιχεία (point aggregates). Οι συναθροιστικές συναρτήσεις εφαρμόζονται στα δεδομένα του ρεύματος που αφορούν ένα συγκεκριμένο αντικείμενο (πχ. «Ποια είναι η μέση απόσταση των υπόλοιπων οχημάτων από το όχημα με ταυτότητα #»). Ερωτήματα για ένα σύνολο στοιχείων (range aggregates). Σε αυτή την περίπτωση η συναθροιστική συνάρτηση εφαρμόζεται στα στοιχεία του ρεύματος που ανήκουν σε μια ομάδα από αντικείμενα που ικανοποιούν κάποια συνθήκη (πχ. «Ποιος ο μέσος αριθμός οχημάτων στην περιοχή;»). Ερωτήματα σε στοιχεία βαθμιαίας ηλικίας (aged aggregates). Τα ερωτήματα αυτής της κατηγορίας εφαρμόζονται όταν επιθυμείται η εξαγωγή πληροφορίας από διάφορες χρονικές περιόδους. Τα δεδομένα κάθε χρονικής περιόδου μπορεί να συμμετέχουν στον υπολογισμό της απάντησης με διαφορετικό βαθμό σπουδαιότητας, με τα παλαιότερα να έχουν τον μικρότερο. Συγκεκριμένα, κατά την εκτέλεση αυτών των ερωτημάτων είναι σαν να εφαρμόζεται στο ρεύμα δεδομένων ένα παράθυρο ενώ στην εξαγωγή του αποτελέσματος προσμετρούν πολύ περισσότερο τα πιο πρόσφατα δεδομένα (πχ. «Ποιος ο μέσος αριθμός οχημάτων στην περιοχή τον τελευταίο μήνα;», με τα δεδομένα να έχουν φθίνουσα βαρύτητα κατά την απομάκρυνσή τους από το παρόν). 11

24 2.3.6 Ενεργά ανενεργά ερωτήματα διαρκείας Τα ερωτήματα αφού υποβληθούν στο σύστημα μπορούν να βρεθούν σε μία από τις δύο καταστάσεις που ακολουθούν: να είναι ενεργά να είναι ανενεργά. Και στις δύο περιπτώσεις τα ερωτήματα λαμβάνονται υπ' όψιν κατά την κατάστρωση του πλάνου εκτέλεσης και την κατανομή των πόρων του συστήματος. Η διαφορά τους είναι ότι τα ανενεργά ερωτήματα δεν παράγουν αποτελέσματα με την άφιξη νέων δεδομένων Ερωτήματα με βάρη Η επεξεργαστική δυνατότητα ενός συστήματος διαχείρισης ρευμάτων δεδομένων συνήθως χαρακτηρίζεται από τη συνολική ρυθμαπόδοση (throughput) και όχι από τις επιδόσεις μεμονωμένων ερωτημάτων. Παρ' όλ' αυτά, σε κάποιες περιπτώσεις προκύπτει ανάγκη ιεράρχησης των διάφορων ερωτημάτων. Αυτή επιτυγχάνεται με την απόδοση συγκεκριμένου βάρους σε κάθε ερώτημα. Το βάρος αποτελεί το κριτήριο με το οποίο θα γίνει προσέγγιση στην παραγωγή των αποτελεσμάτων. ηλαδή η απάντηση ενός ερωτήματος με μικρή βαρύτητα θα προκύψει με μεγαλύτερη προσέγγιση από κάποιου με μεγαλύτερη, αν οι συνθήκες το επιβάλουν. Σε αυτό το πλαίσιο, τα ανενεργά ερωτήματα έχουν μηδενική βαρύτητα. Η βαρύτητα των ερωτημάτων μπορεί να χρησιμοποιηθεί και για τον χρονοπρογραμματισμό (scheduling) των ερωτημάτων, αποδίδοντας μεγαλύτερη προτεραιότητα στην εκτέλεση ερωτημάτων με μεγάλη βαρύτητα. Τέλος, τα βάρη μπορούν να αποτρέψουν ένα ερώτημα από το να καταναλώσει όλους τους πόρους του συστήματος και να τους στερήσει από τα υπόλοιπα ερωτήματα (starvation). 2.4 Παράθυρα Τα παράθυρα ως προσεγγιστική μέθοδος Όπως προαναφέρθηκε, ένα σύστημα διαχείρισης ρευμάτων δεδομένων αδυνατεί να προβλέψει τον αποθηκευτικό χώρο που θα χρειαστεί για την καταγραφή όλου του ρεύματος και κατά συνέπεια δεν μπορεί να εγγυηθεί ότι θα τον παρέχει. Γι' αυτό το λόγο υιοθετούνται κάποιες προσεγγιστικές μέθοδοι, οι οποίες καλούνται να αξιοποιήσουν με τον καλύτερο δυνατό τρόπο τους πόρους του συστήματος. Η σημαντικότερη ίσως από αυτές είναι τα παράθυρα (windows), τα οποία περιορίζουν το μέρος των δεδομένων πάνω στο οποίο εκτελείται το ερώτημα. Τα παράθυρα ορίζουν το τμήμα των δεδομένων που λαμβάνεται υπ' όψιν στον υπολογισμό του ερωτήματος. Το επιλεγμένο τμήμα αποτελείται από διαδοχικές πλειάδες του ρεύματος που εμπίπτουν στο παράθυρο. Ένα ερώτημα διαρκείας με παράθυρο, εκτελείται επανελειμμένα για κάθε νέο τμήμα παραθύρου επιστρέφοντας μια ακολουθία αποτελεσμάτων. Συνεπώς το σύστημα θα πρέπει να είναι σε θέση να παράγει και να διαχειριστεί αυτή τη ροή αποτελεσμάτων με ομαλό τρόπο. Η λήψη των αποτελεσμάτων πραγματοποιείται είτε μετά από απαίτηση του χρήστη, είτε με ανανέωση του αποτελέσματος. Σημειώνεται ότι παράθυρα μπορούν να χρησιμοποιηθούν και σε ερωτήματα στιγμιοτύπου. Τα παράθυρα είναι απαραίτητα στον υπολογισμό ερωτημάτων με συνδέσεις (joins) ή συναθροιστικούς τελεστές (aggregate operators) οι οποίοι για τον υπολογισμό της απάντησής τους προϋποθέτουν την ανάγνωση όλου του ρεύματος δεδομένων. Οι δύο σημαντικότερες κατηγορίες παραθύρων είναι τα κυλιόμενα (sliding windows) και τα παράθυρα χρονικού 12

25 οροσήµου (landmark windows). Η ανάπτυξη µηχανισµού παραθύρων επιβάλλει τον ορισµό νέων δοµών και τεχνικών ώστε τα ερωτήµατα να εκτελούνται περιοδικά µε την άφιξη καθορισµένου αριθµού πλειάδων, ενώ δεν αποκλείεται τα παράθυρα να ορίζονται για δεδοµένα που έχουν περάσει ήδη από το σύστηµα, να είναι διάσπαρτα ή επικαλυπτόµενα. Οι τεχνικές αναζήτησης µε την χρήση παραθύρων εντάσσονται στη γενικότερη κατηγορία των χρονικών ερωτηµάτων στις σχεσιακές βάσεις δεδοµένων και κυριότερα στις ακολουθιακές (sequence databases), χρονικές (temporal databases) και βάσεις δεδοµένων πραγµατικού χρόνου (real-time databases). Η βασικότερη διαφορά των ερωτηµάτων που υποβάλλονται σε αυτές είναι ότι ενδιαφέρονται για ολόκληρη την ιστορική εξέλιξη µιας τιµής στο χρόνο, ενώ τα παράθυρα εστιάζουν στην επεξεργασία των στοιχείων του ρεύµατος µόνο τη στιγµή της άφιξης τους στο σύστηµα Χρονικά παράθυρα Τα παράθυρα συγκρινόµενα µε τις υπόλοιπες µεθόδους προσέγγισης, έχουν να επιδείξουν πολλές θετικές ιδιότητες : Είναι ντετερµινιστικά. Σε αντίθεση µε άλλες τεχνικές προσέγγισης (πχ, τυχαία δειγµατοληψία), όπου τα δεδοµένα που συµµετέχουν στον υπολογισµό της απάντησης επιλέγονται µε τυχαίο τρόπο και µπορεί να οδηγήσουν σε µη ρεαλιστικά αποτελέσµατα, τα παράθυρα ακολουθούν µια ντετερµινιστική διαδικασία επιλογής, που ελαχιστοποιεί αυτή την πιθανότητα. Έχουν σαφή και εύκολο στην κατανόηση ορισµό ώστε να µην υπάρχουν αµφιβολίες για το ποια δεδοµένα αφορά η απάντηση του ερωτήµατος. Μία από τις σηµαντικότερες ιδιότητές είναι ότι εστιάζουν στα πιο πρόσφατα δεδοµένα. Σε εφαρµογές µε ρεύµατα δεδοµένων συχνά ο χρήστης ενδιαφέρεται περισσότερο για την κατάσταση των πιο πρόσφατων δεδοµένων, παρά για την ιστορία της εξέλιξής τους. Τα παράθυρα πραγµατοποιούν αυτόν ακριβώς τον διαχωρισµό, περιορίζοντας την εκτέλεση των ερωτηµάτων στα νεώτερα δεδοµένα (αυτό ισχύει κατά κύριο λόγο για τα κυλιόµενα παράθυρα). Συνεπώς, µπορεί να ισχυριστεί κανείς ότι τα παράθυρα δεν αποτελούν απλώς τεχνική µείωσης του όγκου των δεδοµένων ώστε να βελτιώνεται η απόδοση του συστήµατος, αλλά ότι αποτελούν αναπόσπαστο µέρος της σηµασιολογίας του ερωτήµατος. Οι σηµαντικότερες τεχνολογικές προκλήσεις που σχετίζονται µε την χρήση παραθύρων, είναι η απόδοση χρονοσήµων στα στοιχεία του ρεύµατος και η εκµετάλλευσή τους κατά την κατάστρωση του σχεδίου εκτέλεσης ερωτηµάτων, ώστε να γίνει βέλτιστη κατανοµή πόρων του συστήµατος. Επιπλέον, θα πρέπει να συνταχθούν και οι κατάλληλες δηλώσεις τους σε SQL. Τέλος, θα πρέπει να ληφθεί υπ' όψιν ότι η χρήση παραθύρων αν και περιορίζει το µέγεθος της απαιτούµενης µνήµης για την εκτέλεση του ερωτήµατος, δεν µπορεί να εγγυηθεί την επάρκειά της. Η εφαρµογή παραθύρων σε ένα ρεύµα δεδοµένων προϋποθέτει ότι τα στοιχεία του υπόκεινται σε κάποια διάταξη. Η διάταξη συνήθως επιτυγχάνεται µε την προσθήκη ενός επιπλέον χαρακτηριστικού σε κάθε πλειάδα δεδοµένων, το οποίο είτε αντιστοιχεί στον αύξοντα αριθµό πλειάδας (λογικός χρόνος) είτε σε κάποια χρονική στιγµή (φυσικός χρόνος) και ονοµάζεται χρονόσηµο (timestamp). Όταν χρησιµοποιείται ο λογικός χρόνος οι απαιτήσεις σε µνήµη είναι γνωστές εκ των προτέρων, ενώ όταν χρησιµοποιείται ο φυσικός χρόνος οι απαιτήσεις ποικίλλουν και εξαρτώνται από το ρυθµό άφιξης των στοιχείων. Το χρονόσηµο µπορεί να αποδίδεται είτε έµµεσα από το σύστηµα (implicit timestamp), παραδείγµατος χάριν να αντιστοιχεί στην τιµή του ρολογιού του συστήµατος τη στιγµή της άφιξής του στοιχείου είτε να αποτελεί µέρος της σηµασιολογίας του στοιχείου, αντιστοιχίζοντας το στη χρονική στιγµή που έλαβε χώρα ένα 13

26 πραγματικό γεγονός γεγονός. Το τελευταίο αποδίδεται σε κάθε στοιχείο ρητά τη στιγμή παραγωγής του (explicit timestamp). Τα implicit timestamps εξασφαλίζουν τη διάταξη των δεδομένων στο σύστημα και διευκολύνουν τη επεξεργασία, στερούνται όμως τη φυσική έννοια του χρόνου που είναι απαραίτητη σε κάποιες εφαρμογές. Ένα ακόμη θέμα που αφορά τα χρονόσημα είναι η απόδοσή τους σε πλειάδες αποτελεσμάτων ερωτημάτων στα οποία συμμετέχουν πολλά ρεύματα. Μια χαρακτηριστική περίπτωση είναι τα ερωτήματα με σύνδεση μεταξύ δύο διαφορετικών ρευμάτων. Μία προσέγγιση είναι το χρονόσημο να ορίζεται βάσει της χρονική στιγμής παραγωγής του στοιχείου. Η τεχνική αυτή λέγεται best- effort, αφήνει στο σύστημα τον καθορισμό του χρονοσήμου (implicit timestamp) και παρέχει αρκετή ευελιξία στην επεξεργασία. Παρουσιάζει το μειονέκτημα ότι καθιστά αδύνατο τον ακριβή ορισμό κυλιόμενων παραθύρων στα αποτελέσματα. Η άλλη προσέγγιση αφήνει στον χρήστη την απόφαση για το ποιο χρονόσημο θα χρησιμοποιηθεί στο αποτέλεσμα (stricter approach). Παραδείγματος χάριν θα μπορούσε να δηλωθεί ότι η πλειάδα της απάντησης θα παίρνει το χρονόσημο που έχει το στοιχείο που βρίσκεται πρώτο στην έκφραση FROM του ερωτήματος. Αν και με αυτή την μέθοδο δίνεται η απαραίτητη σημασιολογική βαρύτητα στη διάταξη των αποτελεσμάτων, προκύπτουν διάφορα προβλήματα κατά την υλοποίηση της. Ένα από αυτά είναι ότι η σειρά παραγωγής των πλειάδων δε συμπίπτει απαραίτητα με τη σειρά που επιβάλλουν τα χρονόσημα, γεγονός που οδηγεί στη δέσμευση επιπρόσθετου αποθηκευτικού χώρου για την αναδιάταξή τους και σε επιπλέον καθυστέρηση κατά την εξαγωγή του αποτελέσματος. Σε ένα Σ Ρ είναι πιθανό να χρησιμοποιούνται και οι δύο τεχνικές, ανάλογα με τις ανάγκες της εφαρμογής για αποδοτική επεξεργασία (best-effort approach) των ερωτημάτων και απόδοση σημασιολογικής αξίας των αποτελεσμάτων (stricter approach), με συνηθέστερη την χρήση της τελευταίας. Άλλα χρονικά χαρακτηριστικά των παραθύρων, είναι η χρονική μονάδα με την οποία ορίζονται (δευτερόλεπτο, λεπτό, ώρα κοκ.) και η κατεύθυνση της κίνησής τους (παράλληλη προς την εξέλιξη του χρόνου ή ανάποδα). Ακόμη, το παράθυρο καθορίζει και το είδος των ερωτημάτων που υποστηρίζονται, παραδείγματος χάριν, ένα παράθυρο οροσήμου ευνοεί την υποβολή συναθροιστικών ερωτημάτων. Τα ερωτήματα διαρκείας μπορούν να κατηγοριοποιηθούν ανάλογα με το είδος παραθύρου που χρησιμοποιούν σε: Ερωτήματα στιγμιοτύπου (one-time ή snapshot queries). Αυτά εκτελούνται μόνο μία φορά, μετά την υποβολή τους, πάνω στα δεδομένα που ορίζει το παράθυρο. Η αφετηρία και το πέρας του παραθύρου βρίσκονται σε συγκεκριμένες χρονικές στιγμές του παρελθόντος (πχ. «Ποια οχήματα βρέθηκαν στο δακτύλιο τη χρονική στιγμή t i ;» ). Ερωτήματα χρονικού οροσήμου (landmark queries). Σε αυτά τα ερωτήματα η αφετηρία βρίσκεται σε μια καθορισμένη στιγμή του παρελθόντος, αλλά το πέρας του μεταβάλλεται και ακολουθεί την άφιξη των νέων στοιχείων, συνεπώς το μέγεθος των δεδομένων τα οποία λαμβάνουν μέρος στον υπολογισμό συνεχώς αυξάνεται(πχ. «Ποια οχήματα διέσχισαν τα σύνορα της περιοχής τη χρονική στιγμή t i ως τώρα;» ). Ερωτήματα κυλιόμενου παραθύρου (sliding window queries). Τα παράθυρα που χρησιμοποιούνται σε αυτά τα ερωτήματα έχουν μεταβαλλόμενη αρχή και τέλος, δηλαδή και τα δύο μετακινούνται με την χρονική εξέλιξη των στοιχείων. Το τέλος βρίσκεται στην πιο πρόσφατη χρονική στιγμή και η αρχή στη χρονική στιγμή του παρελθόντος που απέχει από το παρόν όσο είναι το εύρος του παραθύρου. Το τελευταίο μπορεί να είναι σταθερό ή όχι, ενώ η κίνηση του παραθύρου μπορεί να είναι ομαλή ή να παρουσιάζει άλματα ή να κινείται αντίθετα προς την πρόοδο των στοιχείων (πχ. «Πού βρίσκεται το όχημα με ταυτότητα # κάθε λεπτό;»). Ερωτήματα χρονικής σύνδεσης ζώνης (temporal band-join queries). Η χρονική σύνδεση ζώνης διευκολύνει την εφαρμογή σύνδεσης μεταξύ πολλαπλών ρευμάτων, ορίζοντας τα 14

27 τμήματα / ζώνες (bands) σε κάθε ρεύμα που λαμβάνονται υπ' όψιν κάθε φορά στον υπολογισμό του ερωτήματος. Συνήθως η αρχή και το πέρας κάθε παραθύρου στα συνδεόμενα ρεύματα συμπίπτουν (πχ. «Ποια οχήματα απέχουν λιγότερο από x m από το όχημα με ταυτότητα # κάθε λεπτό;» ). 2.5 Αλγόριθμοι για ρεύματα δεδομένων Τα συμβατικά Σ Β δεν μπορούν να ανταποκριθούν στις επεξεργαστικές ανάγκες που εισάγει η δυναμική φύση των ρευμάτων δεδομένων. Κατά συνέπεια, σχεδιάζονται και προτείνονται νέοι αλγόριθμοι που θα πρέπει να τηρούν κάποιες βασικές προϋποθέσεις όπως: Να γίνεται η ελάχιστη δυνατή κατανάλωση μνήμης, αφού κάθε φορά μόνο ένα μικρό μέρος του ρεύματος θα μπορεί να φυλαχτεί στο σύστημα. Ο ρυθμός παραγωγής των αποτελεσμάτων να ακολουθεί το ρυθμό άφιξης του ρεύματος, χωρίς ο αλγόριθμος να είναι ενήμερος για την κατάσταση των δεδομένων που θα φτάσουν μελλοντικά. Η ενημέρωση των αποτελεσμάτων τους να μπορεί να γίνεται και σταδιακά, ώστε να παρουσιάζουν καλύτερες επιδόσεις και να είναι σε θέση να προσφέρουν στους χρήστες ενδιάμεσα αποτελέσματα. Ιδιαίτερη βαρύτητα δίνεται στους αλγορίθμους οι οποίοι «διαβάζουν» τα δεδομένα μόνο μια φορά, με ένα πέρασμα. Η πολυπλοκότητα σε χώρο συνήθως ορίζεται βάσει της παραμέτρου Ν που αντιπροσωπεύει το πλήθος των στοιχείων που έχουν περάσει ενώ η πολυπλοκότητα σε χρόνο εκφράζεται ανά στοιχείο ρεύματος. Η επίδοση των αλγορίθμων συνήθως μετράται με βάση την εξάρτησή τους από το Ν. Ο αλγόριθμος με τη βέλτιστη δυνατή απόδοση δε θα πρέπει να εξαρτάται από αυτό, περίπτωση σχεδόν αδύνατη, αφού το Ν είναι μάλλον απεριόριστο. Έχει αποδειχθεί ύπαρξη κάτω ορίου για το Ν σε κάποιες περιπτώσεις ενώ η επίλυση ενός προβλήματος θεωρείται ικανοποιητική όταν καταναλώνει μόνο Ο(poly(logN)) χώρο και Ο(poly(logN)) χρόνο ανά στοιχείο ή ερώτημα Απεριόριστες απαιτήσεις σε μνήμη Θεωρώντας ότι το συνολικό μέγεθος ενός ρεύματος δεν είναι εκ των προτέρων γνωστό και ότι ενδέχεται να είναι απεριόριστο, προκύπτει το πρόβλημα του προσδιορισμού της απαιτούμενης μνήμης για την επεξεργασία του. Στα κλασικά Σ Β, αν ο χώρος της κυρίως μνήμης δεν επαρκεί για τα δεδομένα, χρησιμοποιούνται αλγόριθμοι που εκτελούν ένα μέρος της επεξεργασίας στο δίσκο. Η λύση αυτή δεν μπορεί να εφαρμοστεί αποδοτικά σε συστήματα διαχείρισης ρευμάτων γιατί η ανάκτηση δεδομένων σε δευτερεύοντα αποθηκευτικά μέσα καθυστερεί σημαντικά την εξέλιξη της επεξεργασίας, ενώ οι αλγόριθμοι αυτοί δεν υποστηρίζουν ερωτήματα διαρκείας. Οι εφαρμογές στις οποίες τα δεδομένα έχουν την μορφή ρευμάτων απαιτούν απόκριση των ερωτημάτων σε πραγματικό χρόνο (real - time). Στην απαίτηση για έγκαιρες απαντήσεις έρχεται να προστεθεί ο πιθανός καταιγισμός δεδομένων στο σύστημα, κατά τη διάρκεια του οποίου εισέρχονται πολλά νέα δεδομένα χωρίς να έχει περατωθεί η επεξεργασία των προηγούμενων. Συνεπώς, προκύπτει η αναγκαιότητα για πολύ μικρό χρόνο επεξεργασίας ανά πλειάδα και μάλιστα μικρότερο από χρόνο μεσολάβησης μεταξύ των αφίξεων δύο διαδοχικών πλειάδων στο σύστημα. 15

28 Καθώς η πρόσβαση στο δίσκο εισάγει σημαντική καθυστέρηση, οι αλγόριθμοι επεξεργασίας ρευμάτων επικεντρώνονται στην χρήση μόνο της κυρίως μνήμης. Ενδιαφέρον παρουσιάζει ο διαχωρισμός των ερωτημάτων ανάλογα με την ακρίβεια των απαντήσεών τους όταν χρησιμοποιείται μόνο η κυρίως μνήμη. Το βασικό κριτήριο είναι το εκτιμώμενο μέγεθος του εισερχόμενου ρεύματος. Είναι προφανές ότι χωρίς αυτή την πληροφορία δεν μπορεί να γίνει ο προσδιορισμός της απαιτούμενης μνήμης. Οι ίδιες δυσκολίες ανακύπτουν και κατά την εκτέλεση ερωτημάτων που εμπεριέχουν σύνδεση (join) δύο ή περισσότερων διαφορετικών ρευμάτων σε κάποιο πεδίο. Ένας τρόπος αντιμετώπισης είναι η χρήση περιορισμών, δηλαδή η βεβαιότητα ότι τα πεδία σύνδεσης μπορούν να πάρουν την τιμή τους μόνο από ένα περιορισμένο σύνολο. Η βεβαιότητα αυτή ανακτάται είτε με μελέτη των χαρακτηριστικών των δεδομένων είτε επιβάλλοντας τα κατάλληλα κατηγορήματα (predicates) στο ερώτημα. Συμπερασματικά, μπορεί να ειπωθεί ότι χωρίς περιορισμούς στο σύνολο των τιμών και χωρίς εκτίμηση του μεγέθους του ρεύματος, δεν είναι δυνατός ο προσδιορισμός της απαιτούμενης μνήμης για την εκτέλεση του ερωτήματος Προσεγγιστικές απαντήσεις σε ερωτήματα Ιδανικά, κάθε ερώτημα σε ένα σύστημα διαχείρισης ρευμάτων δεδομένων θα λάμβανε έγκαιρες και ακριβείς απαντήσεις. Από την ανάλυση που προηγήθηκε είναι εμφανές ότι στην πραγματικότητα αυτό δεν είναι συνήθως εφικτό. Επισημαίνονται οι κυριότεροι λόγοι γι' αυτή την αδυναμία: Μεγάλες ποσότητες δεδομένων εισέρχονται στο σύστημα με μεταβαλλόμενο και ενδεχομένως ασταθή ρυθμό. Τα ερωτήματα διαρκείας που έχουν υποβληθεί είναι πολλά, περίπλοκα με μεγάλες απαιτήσεις ως προς την επεξεργασία τους. Επιπλέον, τα ερωτήματα μπορούν να υποβάλλονται ή να καταργούται δυναμικά, ενώ τα δεδομένα καταφθάνουν, δυσχεραίνοντας την κατάστρωση πλάνων για τη βελτιστοποίηση της εκτέλεσής τους. Οι πόροι και η υπολογιστική δυνατότητα του συστήματος είναι περιορισμένοι. Συνεπώς, τα συστήματα διαχείρισης ρευμάτων λόγω συνθηκών αντιμετωπίζουν τα δεδομένα με αρκετά διαφορετικό τρόπο από τα Σ Β, και αντί να επικεντρώνονται στην ακρίβεια των απαντήσεων επιχειρούν να παράγουν προσεγγιστικές απαντήσεις όσο το δυνατόν ταχύτερα και με μικρότερη απόκλιση από τις ακριβείς. Ο στόχος πλέον είναι να να εντοπίζονται οι πιο ενδιαφέρουσες ή αντιπροσωπευτικές τάσεις των δεδομένων ενώ ταυτόχρονα να γίνεται η καλύτερη δυνατή διαχείριση των πόρων του συστήματος. Προς αυτή την κατεύθυνση μπορεί να γίνει εκμετάλλευση τεχνικών που έχουν αναπτυχθεί για ελάττωση δεδομένων (data reduction) και δημιουργία συνόψεων (synopsis construction). Μαζική επεξεργασία (batch processing). Αυτή η μέθοδος ουσιαστικά δίνει ακριβείς απαντήσεις αλλά με το κόστος της καθυστέρησης. Αντί να επεξεργάζεται κάθε πλειάδα μεμονωμένα μόλις εισέλθει στο σύστημα, περιμένει να σχηματιστεί ένα σύνολο από αυτές και τις επεξεργάζεται ομαδικά, ώστε να επιταχυνθεί η εκτέλεση των ερωτημάτων. Προτιμάται όταν η άφιξη των δεδομένων εμφανίζει απρόσμενη και καταιγιστική συμπεριφορά (bursty). Συνεπώς η απάντηση είναι προσεγγιστική γιατί δεν είναι συνεχώς ενημερωμένη, αλλά ανανεώνεται περιοδικά. Περιλήψεις ή συνόψεις δεδομένων (summaries or data synopses). Οι συνόψεις επιχειρούν να προσφέρουν μια συνοπτική αναπαράσταση της εισερχόμενης πληροφορίας, με κόστος την μείωση της ακρίβειας του αποτελέσματος. Μια σύνοψη θα πρέπει να έχει 16

29 σημαντικά μικρότερο μέγεθος από αυτό των δεδομένων που αναπαριστά, θα πρέπει να μπορεί να υπολογιστεί με μία μόνο ανάγνωση των δεδομένων και να ακολουθεί το ρυθμό άφιξής τους. Ο επεξεργαστής ερωτημάτων θεωρητικά μπορεί να συνδυάζει στοιχεία από διάφορες περιλήψεις κατά τον υπολογισμό της απάντησης. Οι περιλήψεις αποτελούν και ένα σημαντικό εργαλείο σε περιπτώσεις όπου δεν υπάρχουν κατάλληλες δομές για τη διαχείριση των δεδομένων που επεξεργάζεται ένα ερώτημα. Τέτοια ερωτήματα είναι αυτά που περιέχουν συνδέσεις και συναθροιστικούς τελεστές, τα οποία θα απαιτούσαν τη συντήρηση όλου του ρεύματος δεδομένων για την παραγωγή της απάντησής τους, ενώ τώρα χρησιμοποιούν την πληροφορία που συγκρατείται στις συνόψεις. Πεδία αναζήτησης και προβληματισμού όσο αναφορά την χρήση συνόψεων, είναι το κατά πόσο μπορεί να υπολογιστεί η ακρίβεια των απαντήσεων που υπολογίζονται με αυτές, η επιλογή των καταλληλότερων τεχνικών περίληψης σε διάφορες συνθήκες άφιξης ρευμάτων αλλά και ο συνολικός καταμερισμός μνήμης ανάμεσα σε διαφορετικές συνόψεις που ανταγωνίζονται γι' αυτή και ο οποίος θα πρέπει να είναι δυναμικός και προσαρμοζόμενος στις αλλαγές που αφορούν είτε τα ερωτήματα είτε τα ίδια τα δεδομένα. Οι σημαντικότερες τεχνικές περίληψης είναι: τα σκίτσα (sketching), η τυχαία δειγματοληψία (random sampling), τα wavelets και τα ιστογράμματα. 2.6 Επισκόπηση συστημάτων ρευμάτων δεδομένων Κάποια συστήματα που υλοποιούν ερωτήματα διαρκείας με χρήση ενός περιορισμένου σύνολου εντολών της SQL είναι τα: Tapestry, Alert, Xfilter, Xyleme, Tribeca. Άλλα που ασχολούνται με την αποδοτική εκτέλεση ερωτημάτων διαρκείας σε στατικά δεδομένα είναι τα OpenCq, NiagaraCQ. Σχετικά με τη διαχείριση ρευμάτων είναι και τα συστήματα που εκτελούν ερωτήματα σε διατεταγμένες πλειάδες δεδομένων, όπως συστήματα χρονικών ή ακολουθιακών Βάσεων δεδομένων (πχ. το Chronicle). Τα συστήματα διαχείρισης ρευμάτων δεδομένων παρουσιάζουν αρκετές ομοιότητες με αυτά που χρησιμοποιούν υλοποιημένες όψεις (materialized views). Οι τελευταίες θυμίζουν αρκετά ερωτήματα διαρκείας τόσο όσο αναφορά την «αυτοσυντήρηση» τους, δηλαδή την αποθήκευση αρκετών δεδομένων ώστε να διατηρείται η όψη ακόμα κι όταν η Βάση εδομένων δεν είναι διαθέσιμη όσο και τη «λήξη» δεδομένων, δηλαδή πότε κάποιο δεδομένο μπορεί να θεωρηθεί άχρηστο και να απομακρυνθεί. Οι σημαντικότερες διαφορές ανάμεσα στις όψεις και τα ερωτήματα διαρκείας είναι ότι τα αποτελέσματα των τελευταίων μπορούν να εξάγονται με τη μορφή ρευμάτων δεδομένων. Επίσης, τα ερωτήματα διαρκείας μπορούν να εκτελούνται και μόνο με append-only δεδομένα, δεν ενδιαφέρονται τόσο για την ακρίβεια των αποτελεσμάτων και θα πρέπει να μπορούν να προσαρμόζονται στα μεταβαλλόμενα χαρακτηριστικά των δεδομένων. Υλοποιημένα Συστήματα ιαχείρισης Ρευμάτων εδομένων είναι τα: TelegraphCQ, STREAM, Aurora. Το TelegraphCQ εστιάζει στην ευελιξία και προσαρμοστικότητα εκτέλεσης ερωτημάτων διαρκείας, εισάγοντας τον μηχανισμό Eddy. Απευθύνεται σε έντονα και ασταθή περιβάλλοντα πληροφορίας. Στην ανάπτυξη του STREAM ιδιαίτερη βαρύτητα δόθηκε στην αποτελεσματική εκμετάλλευση περιορισμένης μνήμης κατά την επεξεργασία των ερωτημάτων. Εξετάζει τρόπους παραγωγής προσεγγιστικών απαντήσεων και επιχειρεί να προσδιορίσει τις απαιτήσεις σε μνήμη. Τέλος, το Aurora επιδιώκει να παρέχει στους χρήστες τη δυνατότητα να επιλέγουν δυναμικά την ποιότητα υπηρεσιών που επιθυμούν (Quality of Service) για την υλοποίηση των ερωτημάτων και στη συνέχεια να την χρησιμοποιούν για την κατανομή του φόρτου εργασίας. 17

30

31 Κεφάλαιο 3 Κινούμενα Αντικείμενα 3.1. Γενικά Οι τεχνολογικές εξελίξεις στο χώρο των δικτύων και στον χώρο των συστημάτων γεωγραφικού εντοπισμού (GPS) έχουν ωθήσει την ανάπτυξη εφαρμογών παρακολούθησης κινούμενων αντικειμένων. Τα κινούμενα αντικείμενα είναι χωρικά αντικείμενα των οποίων η θέση ή η έκταση ή και τα δύο αλλάζουν με την πάροδο του χρόνου. Η μεταβολή αυτή μπορεί να είναι διακριτή (πχ. Αλλαγή των ορίων ενός αγροτεμαχίου) ή συνεχής (κίνηση αεροσκαφών). Στο χώρο των βάσεων δεδομένων ιδιαίτερο ενδιαφέρον παρουσιάζει η μοντελοποίηση της κίνησης όταν αυτή αφορά τη συνεχή μεταβολή της θέσης των αντικειμένων, δηλαδή της διαρκούς κίνησης. Σε αυτό το πλαίσιο προβληματίζει η κινητικότητα της πληροφορίας, δηλαδή ο τρόπος με τον οποίο αλλάζουν τα δεδομένα και οι απρόβλεπτες απαιτήσεις των χρηστών για την επεξεργασία τους. Ακόμη, πρέπει να τονιστεί το γεγονός ότι η κίνηση αποτελεί ένα χωροχρονικό φαινόμενο και ότι αποδίδεται με χωρικές και χρονικές συνιστώσες οι οποίες είναι άρρηκτα συνδεόμενες μεταξύ τους. Συνεπώς μια χωροχρονική βάση δεδομένων μπορεί να θεωρηθεί σαν ένα σύστημα κινούμενων αντικειμένων και κατά την ανάπτυξη της μπορούν να συνδυαστούν ιδέες και λύσεις από τα συγγενικά πεδία των χωρικών και χρονικών βάσεων δεδομένων. Ο φόρτος εργασίας ενός συστήματος κινούμενων αντικειμένων επηρεάζεται σημαντικά από το ρυθμό αλλαγών των στοιχείων του. Ο τελευταίος μπορεί να εκφραστεί με τον αριθμό ενημερώσεων (updates) στη βάση και εξαρτάται από τους εξής παράγοντες : τον αριθμό των αντικειμένων την επιθυμητή ακρίβεια στην καταγραφή της θέσης τις διαταραχές στην πορεία τους από εξωγενείς συνθήκες τις δομές αναπαράστασης των αντικειμένων στο σύστημα. ύο είναι οι βασικές προσεγγίσεις που έχουν προταθεί για τη συχνότητα με την οποία πρέπει να ενημερώνονται οι θέσεις των αντικειμένων. Η μία υποθέτει ότι με σταθερή ταχύτητα για κάποιο χρονικό διάστημα και γνωστή την τωρινή θέση, μπορούν να προβλεφθούν με κάποια ακρίβεια οι μελλοντικές θέσεις του αντικειμένου με χρήση γραμμικών συναρτήσεων ως προς τον χρόνο. Επομένως, η ανανέωση γίνεται στις τιμές των παραμέτρων (πχ. ταχύτητα) και όχι στην τιμές των σημειακών θέσεων. Η άλλη προσέγγιση ακολουθεί μια διαδικασία παρεμφερή με την 19

32 εξόρυξη δεδομένων (data mining), δηλαδή επιλέγει τη συλλογή και την πληρέστερη περιγραφή της θέσης των αντικειμένων. Η επεξεργασία τους γίνεται εκ των υστέρων, με ερωτήματα που καλύπτουν την ιστορική πορεία των αντικειμένων. Ένα από τα βασικότερα ζητήματα που πρέπει να αντιμετωπιστούν κατά τη σχεδίαση ενός συστήματος κινούμενων αντικειμένων είναι η αναπαράσταση της κίνησης. Η μοντελοποίηση της κίνησης ενός αντικειμένου γίνεται συνήθως με την τροχιά του (trajectory), η οποία αποτελείται από το ζευγάρι των χωρικών συντεταγμένων (x,y) στο επίπεδο σε συνδυασμό με την χρονική στιγμή (t) στην οποία αντιστοιχούν. Η δομή που διατηρεί την τροχιά θα πρέπει να εξασφαλίζει τη συνέχεια της τροχιάς (trajectory preservation), δηλαδή ότι τα τμήματά της θα διαδέχονται το ένα το άλλο. Η πληροφορία που εμπεριέχεται στην τροχιά δεν αφορά μόνο πρωτογενή στοιχεία σχετικά με τη σημειακή θέση, αλλά διαθέτει και πιο σύνθετες διαστάσεις που προκύπτουν από το συνδυασμό των χωρικών και χρονικών χαρακτηριστικών της (λ.χ. ταχύτητα, διανυθείσα απόσταση). Τέλος, πολύ σημαντικό είναι το θέμα της διατύπωσης και επεξεργασίας των ερωτημάτων που θα εφαρμοστούν πάνω στα δεδομένα των κινούμενων αντικειμένων. Ο τύπος ερωτημάτων που θα εφαρμοστεί επηρεάζει αποφασιστικά τον τρόπο αναπαράστασης των δεδομένων. Η εισαγωγή ή η χρήση κατάλληλων εκφράσεων στη σύνταξη των ερωτημάτων ώστε να συλλαμβάνεται η επιθυμητή πληροφορία, η βελτιστοποίηση στην εκτέλεση τους, η επιλογή μεθόδων προσπέλασης των δεδομένων είναι κάποια από τα σχετικά ζητήματα προς διερεύνηση. 3.2 Μοντέλο αναπαράστασης κινούμενων αντικειμένων Τα πρωταρχικά χωρικά αντικείμενα που καταγράφονται συνήθως σε μια χωρική βάση δεδομένων είναι το σημείο, η γραμμή και η περιοχή. Στις χωροχρονικές βάσεις δεδομένων θεωρείται ότι τα παραπάνω στοιχεία μπορούν να κινούνται στο χώρο. Τα κινούμενα σημεία και γραμμές μπορούν να μετατοπίζονται ενώ οι περιοχές μπορούν επιπλέον να αλλάζουν σχήμα ή έκταση. Σημαντικότερα θεωρούνται τα κινούμενα σημεία και πολύγωνα, καθώς οι γραμμές μπορούν να προκύψουν και σαν προβολές κίνησης άλλων αντικειμένων. Η ανάλυση που ακολουθεί εστιάζει στα σημειακά κινούμενα αντικείμενα καθώς είναι τα πιο στοιχειώδη και μπορεί να γενικευτεί στη συνέχεια για πιο σύνθετα σχήματα. Η μοντελοποίηση των αντικειμένων μπορεί να γίνει πάνω σε ένα αφηρημένους τύπους δεδομένων (abstract data types). Οι τελευταίοι, εισάγουν βοηθητικές έννοιες για τον ορισμό λειτουργιών (operations) πάνω στα δεδομένα. Το σύνολο των τύπων δεδομένων και των λειτουργιών αποτελούν μια άλγεβρα κινούμενων αντικειμένων, η οποία μπορεί να οδηγήσει στο σχηματισμό μιας γλώσσας ερωταποκρίσεων ενός Συστήματος ιαχείρισης Βάσεων εδομένων και στη δημιουργία ενός πλήρους μοντέλου. Οι αφηρημένοι τύποι δεδομένων όμως παρ' ότι συλλαμβάνουν ικανοποιητικά τα χωροχρονικά φαινόμενα, δεν μπορούν να αναπαρασταθούν συνολικά στον υπολογιστή. Συνεπώς είναι απαραίτητος ο ορισμός ενός διακριτού μοντέλου αναπαράστασης, το οποίο περιορίζει την κίνηση σε στιγμιότυπα. Καταλήγοντας, η μοντελοποίηση της κίνησης απαιτεί την ανάπτυξη και των δύο μοντέλων, του αφηρημένου για τη γενική μελέτη των φαινομένων και του διακριτού για την υλοποίηση του σε ένα υπολογιστικό σύστημα. 20

33 3.2.1 Το αφηρημένο μοντέλο κίνησης αντικειμένων Η πλήρης αναπαράσταση της κίνησης θα απαιτούσε τον ορισμό και χειρισμό άπειρων συνόλων. Το αφηρημένο μοντέλο κίνησης εξασφαλίζει τη συνέπεια, απλότητα και εκφραστική ικανότητα στο χειρισμό τέτοιων συνόλων όπως επίσης και την κλειστότητα (closure) των οριζόμενων τύπων που σχετίζονται με αυτά, χωρίς να λαμβάνει υπ' όψιν τους περιορισμούς της αναπαράστασής τους σε κάποιο υπολογιστικό σύστημα. Η κίνηση σε αυτή την περίπτωση εκλαμβάνεται ως μετασχηματισμός από το άπειρο πεδίο του χρόνου στο άπειρο πεδίο του χώρου και στόχος είναι η περιγραφή της θέσης ενός σημειακού αντικειμένου μέχρι την τρέχουσα χρονική στιγμή. Η διατύπωση του μοντέλου περιλαμβάνει τους εξής τύπους δεδομένων: στοιχειώδεις τύποι δεδομένων, int, real string, bool οι οποίοι αντιπροσωπεύουν τους ακεραίους, πραγματικούς, χαρακτήρες και δυαδικές τιμές (TRUE/FALSE). Σε αυτούς προστίθεται και ο τύπος ο οποίος αντιστοιχεί στην αόριστη τιμή (undefined). Χωρικοί τύποι δεδομένων. Ο τύπος point αναφέρεται σε μεμονωμένα σημεία στο δισδιάστατο επίπεδο, ο τύπος points σε ένα πεπερασμένο σύνολο σημείων που εκλαμβάνεται σαν μια οντότητα, ο τύπος line σε μια πεπερασμένη ομάδα συνεχών καμπυλών στο επίπεδο. Ο τύπος region χρησιμοποιείται για την περιγραφή της περιοχής, η οποία θεωρείται σαν ένα πεπερασμένο σύνολο χωριστών επιφανειών που δεν είναι κενές στο εσωτερικό τους και που μπορεί αν εμφανίζουν οπές ή να βρίσκονται μέσα σε οπές άλλων επιφανειών. Χρονικός τύπος instant, o οποίος είναι ισομορφικός των πραγματικών αριθμών. Κατασκευαστές τύπων. Ο κατασκευαστής τύπων range δημιουργεί τύπους των οποίων οι τιμές είναι διακριτά σύνολα (ανά δύο διαφορετικών) διαστημάτων επί του πεδίου τιμών του κατηγορήματος. Ο κατασκευαστής intime παράγει τύπους που συσχετίζουν τις τιμές κάποιου πεδίου σε μια δοσμένη χρονική στιγμή. Τέλος, ο κατασκευαστής τύπων moving σχηματίζει τύπους συναρτήσει του χρόνου. Χωροχρονικοί τύποι. ύο σημαντικοί τύποι που κατασκευάζονται με τον moving είναι οι mpoint και mregion. Ο πρώτος αναφέρεται στο κινούμενο σημείο και ο δεύτερος στην κινούμενη περιοχή. Θεωρείται ότι και οι χωρικές και οι χρονικές διαστάσεις είναι ισομορφικές προς το σύνολο των πραγματικών αριθμών. Ο τύπος mpoint (Εικόνα 3.1) περιγράφει τη θέση ενός αντικειμένου ως συνάρτηση του χρόνου, η οποία μπορεί να πάρει την μορφή καμπύλης στο σύστημα τριών διαστάσεων (x,y,t), χωρίς να σημαίνει ότι αυτή θα πρέπει να είναι συνεχής. Ο τύπος mregion (Εικόνα 3.2) αναφέρεται στις κινούμενες περιοχές, οι οποίες σχηματίζουν τρισδιάστατους όγκους στον χώρο (x,y,t). Η τομή της καμπύλης του κινούμενου σημείου με το επίπεδο t=t 0 επιστρέφει ένα σημείο point αν η καμπύλη είναι ορισμένη εκεί, ενώ η τομή του επιπέδου με την κινούμενη περιοχή επιστρέφει μια περιοχή region ή το κενό σύνολο (αν δεν υπάρχει τομή). Σημειώνεται ότι και άλλοι πρόσθετοι χωροχρονικοί τύποι μπορούν να κατασκευασθούν με χρήση του moving όπως η κινούμενη απόσταση. Το μοντέλο ορίζει και κάποιες βασικές λειτουργίες πάνω στα δεδομένα: Λειτουργίες σχετικές με τα μη χρονικά χαρακτηριστικά των δεδομένων. Τέτοιες είναι συνθήκες επιλογής με κριτήρια (πχ. INSIDE, >=), πράξεις συνόλων (UNION,DIFFERENCE), λειτουργίες συναθροισης, πράξεις με αριθμητικά αποτελέσματα (μέτρηση αποστάσεων, εμβαδού) και πράξεις εύρεσης κατεύθυνσης της κίνησης. Λειτουργίες σχετικές με τα χωρικά και τα χρονικά χαρακτηριστικά των δεδομένων. Εφαρμόζονται στους τύπους που παράγονται από τον κατασκευαστή mpoint και 21

34 Εικόνα 3.1: Κινούμενο σημείο στο αφηρημένο μοντέλο κίνησης (Πηγή: [TSPM98]). Εικόνα 3.2: Κινούμενη περιοχή στο αφηρημένο μοντέλο κίνησης (Πηγή: [TSPM98]). αποτελούν μια επέκταση των παραπάνω ώστε να συμπεριλαμβάνουν τους χρονικά εξαρτώμενους τύπους. Για παράδειγμα, ο τελεστής INSIDE θα μπορεί να εφαρμοστεί και μεταξύ mpoint και mregion ή μεταξύ mpoint και region ή μεταξύ point και mregion. Τέλος, ορίζονται και λειτουργίες σχετικές μόνο με τα χρονικά χαρακτηριστικά των δεδομένων, οι οποίες επιστρέφουν χρονικές συναρτήσεις (πχ. ταχύτητα) Το διακριτό μοντέλο κίνησης των αντικειμένων Το διακριτό μοντέλο κίνησης αντικειμένων αποτελεί μια προσέγγιση της πραγματικής κίνησης, αφού επιχειρεί να αντιστοιχίσει ένα άπειρο φαινόμενο σε ένα περιορισμένο αριθμό στιγμιοτύπων του. Επίσης, περιέχει υποσύνολο μόνο των τιμών του αφηρημένου μοντέλου κίνησης. Παρουσιάζει παρόμοια προβλήματα με την αναπαράσταση των αντικειμένων σε μια χωρική βάση δεδομένων, όπου μια καμπύλη αναγκαστικά αντιπροσωπεύεται από μια πολυγραμμή, μια περιοχή από ένα πολύγωνο κλπ. Συνεπώς, η κίνηση ενός σημειακού αντικειμένου στο διακριτό μοντέλο (Εικόνα 3.3) μπορεί να θεωρηθεί σαν μια διακοπτόμενη ή μη πολυγραμμή στο τρισδιάστατο σύστημα αξόνων (x,y,t). Το διακριτό μοντέλο κίνησης ανταποκρίνεται στις περιορισμένες δυνατότητες αναπαράστασης ενός υπολογιστικού συστήματος καθώς η πεπερασμένη του μορφή οδηγεί εύκολα σε κατάλληλες δομές δεδομένων και σε αλγορίθμους για την επεξεργασία τους. Παρ' όλ' αυτά παρουσιάζει δυσκολίες στον ορισμό τύπων και λειτουργιών, οι οποίες οφείλονται στις αναγκαστικές προσεγγίσεις. Γα παράδειγμα, προκύπτει το ζήτημα του προσδιορισμού της θέσης του αντικειμένου μεταξύ δυο διαδοχικών διακριτών χρονικών στιγμών t i και t i+1, το οποίο αντιμετωπίζεται συνήθως είτε με την χρήση γραμμικής παρεμβολής είτε με μεγαλύτερου βαθμού πολυωνυμικές προσεγγίσεις (splines). 22

35 Εικόνα 3.3: Κινούμενο σημείο στο διακριτό μοντέλο κίνησης (Πηγή: [EGSV98]). Εικόνα 3.4: Κινούμενη περιοχή στο διακριτό μοντέλο κίνησης (Πηγή: [EGSV98]). υσκολίες παρουσιάζονται και στη δημιουργία κατασκευαστή αντίστοιχού με του moving του αφηρημένου μοντέλου, καθώς δεν είναι δυνατός ο μετασχηματισμός κάποιων συμβατικών τύπων σε χρονικά εξαρτώμενους. Προς αυτή την κατεύθυνση έχει προταθεί η τεχνική της τμηματικής αναπαράστασης με την οποία η χρονική εξέλιξη ενός μεγέθους διασπάται σε τμήματά, το καθένα από τα οποία προσεγγίζεται αυτοτελώς με μια απλή χρονική συνάρτηση. Επιπλέον, αντί του κατασκευαστή moving μπορεί να εισαχθεί ο κατασκευαστής mapping ο οποίος λαμβάνει ως παράμετρο μια μοναδιαία έκφραση της μεταβολής, ενώ φροντίζει να κάνει διάκριση μεταξύ των διαφορετικών χρονικών διαστημάτων. Συνοψίζοντας, μια υλοποιήσιμη πρόταση για ένα Σ Β, είναι η χρήση γραμμικών συναρτήσεων για την περιγραφή δομών κινούμενων σημείων ή επιφανειών, πολυωνύμων δευτέρου βαθμού για τους κινούμενους πραγματικούς αριθμούς, ενώ για την υλοποίηση των λειτουργιών μπορούν να χρησιμοποιηθούν αλγόριθμοι που έχουν αναπτυχθεί στο πλαίσιο της Υπολογιστικής Γεωμετρίας ή παραλλαγές τους Η τροχιά κινούμενων αντικειμένων Η τροχιά ενός αντικειμένου αποτελείται από την καταγραφή των διαδοχικών θέσεών του. Αν και η ακριβής αναπαράσταση της τροχιάς απαιτεί τη συνεχή καταγραφή της θέσης ενός αντικειμένου με την πάροδο του χρόνου, τόσο η τεχνολογία της λήψης θέσης και μετάδοσης (πχ. GPS, δίκτυα τηλεπικοινωνιών) όσο και η δυνατότητα αναπαράστασης των υπολογιστικών συστημάτων επιβάλλουν την λήψη θέσεων ανά διακριτές χρονικές στιγμές. Συνεπώς η τροχιά προκύπτει σαν μια δειγματοληψία της αρχικής κίνησης και σχηματίζεται από τριάδες (x,y,t), όπου (x,y) οι συντεταγμένες κάθε θέσης, οι οποίες συνδέονται άρρηκτα με μια συγκεκριμένη χρονική στιγμή (t), το χρονικό ορόσημο (timestamp). Ο τρόπος αποθήκευσης της τροχιάς παρουσιάζει κάποια προβλήματα, καθώς τίθεται το θέμα προσδιορισμού της θέσης του αντικειμένου μεταξύ δύο διαδοχικών σημείων δειγματοληψίας. 23

36 Συνεπώς εγκαταλείπεται η προσέγγιση αποθήκευσης του δείγματος των θέσεων με την μορφή πλειάδων σε ένα τυπικό πίνακα βάσης δεδομένων, αφού αφήνει απροσδιόριστες τις ενδιάμεσες τιμές. Αντ' αυτού, επιδιώκεται ο σχηματισμός μιας πολυγραμμής (polyline) η οποία θα αναπαριστά ολόκληρη την κίνηση και που θα μπορεί στη συνέχεια να αποθηκευτεί σε μια χωρική βάση δεδομένων. Η δημιουργία της πολυγραμμής επιτυγχάνεται είτε με την χρήση γραμμικής παρεμβολής, η οποία προσεγγίζει τα τμήματα της καμπύλης της τροχιάς με γραμμικό τρόπο είτε με την χρήση συνθετότερων τεχνικών, όπως των πολυωνυμικών συναρτήσεων. Η πρώτη προτιμάται στις περισσότερες περιπτώσεις λόγω ευκολίας και απλότητας, ενώ η δεύτερη όταν επιθυμείται περισσότερη ακρίβεια και εξαγωγή επιπλέον πληροφοριών. Για παράδειγμα η χρήση πολυωνύμων τρίτου βαθμού (κυβικών συναρτήσεων) επιτρέπει τον υπολογισμό μεγεθών όπως της ταχύτητας (από την πρώτη παράγωγο του πολυωνύμου), της επιτάχυνσης (από τη δεύτερη παράγωγο του πολυωνύμου) και συμβιβάζει την απλότητα υπολογισμών με την ακρίβεια. Υπενθυμίζεται ότι οι περισσότεροι αλγόριθμοι Υπολογιστικής Γεωμετρίας αφορούν γραμμικά σχήματα, οπότε η χρήση συνθετότερων συναρτήσεων επιβάλλει την εξεύρεση νέων αλγορίθμων και συναρτήσεων για διάφορες λειτουργίες. 3.4 Η αβεβαιότητα στην αναπαράσταση της κίνησης Η κίνηση ενός αντικειμένου δεν μπορεί να αναπαρασταθεί στο σύστημα με ακρίβεια γιατί: Η καταγραφή της θέσης του είναι εξ' ορισμού ανακριβής, καθώς είναι αδύνατο να ταυτίζεται με την πραγματική θέση κάθε χρονική στιγμή εμφανίζοντας ορισμένη απόκλιση (deviation). Η αναπαράσταση της κίνησης πραγματοποιείται με ένα συγκεκριμένο βαθμό αβεβαιότητας (uncertainty),αφού ακόμη και αν είναι ακριβώς γνωστές δύο διαδοχικές θέσεις δείγματα, δεν είναι σίγουρος ο τύπος της ενδιάμεσης διαδρομής (λ.χ. ευθύγραμμο τμήμα, τεθλασμένη, καμπύλη). Επομένως, στην καταγραφή της κίνησης υπεισέρχεται το σφάλμα δειγματοληψίας, το οποίο αν προσδιορισθεί μπορεί να περιορίσει τον αριθμό των πιθανών ενδιάμεσων θέσεων. Οι συσκευές καταγραφής συντεταγμένων (πχ. GPS) αλλά και σφάλματα στην μετάδοση προσθέτουν σφάλματα μέτρησης, τα οποία επηρεάζονται από το ρυθμό δειγματοληψίας. Όσο μεγαλύτερος είναι ο ρυθμός δειγματοληψίας τόσο πληρέστερη είναι η γνώση της πορείας των αντικειμένων. Οι παραπάνω παράγοντες αφορούν την καταγραφή των συντεταγμένων θέσης. Το χρονικό ορόσημο θεωρείται γενικά χωρίς σφάλμα. Η επεξεργασία των ερωτημάτων επηρεάζεται από την αβεβαιότητα. Ένας τρόπος αντιμετώπισης είναι η απόδοση πιθανοτήτων στις απαντήσεις (πχ. Κάποια καταγεγραμμένη τροχιά ενδέχεται να ικανοποιεί το κριτήριο επιλογής του ερωτήματος ή όλες οι πιθανές τροχιές πρέπει να το ικανοποιούν). Τέλος, οι απαντήσεις πρέπει να θεωρούνται προσεγγιστικές,μια και στηρίζονται σ' ότι έχει καταγραφεί μέχρι τη στιγμή υποβολής του ερωτήματος χωρίς να αποκλείονται μελλοντικές μεταβολές. 24

37 3.5 Ερωτήµατα σε κινούµενα αντικείµενα Τα κινούµενα αντικείµενα είναι χωρικά αντικείµενα που εξελίσσονται ή αλλάζουν µε την πάροδο του χρόνου. Η διατύπωση των ερωτηµάτων πάνω σε χωροχρονικά δεδοµένα έχει πολυπλοκότητα ανάλογη µε την πληροφορία που επιδιώκουν να αποσπάσουν. Εποµένως υπάρχουν ερωτήµατα απλά, που συγκεντρώνονται σε κάποια από τις διαστάσεις των δεδοµένων και συνθετότερα που επιδιώκουν να συλλάβουν πολυπλοκότερα φαινόµενα. Τα βασικά δοµικά συστατικά των ερωτηµάτων στις βάσεις δεδοµένων είναι οι εξής προτάσεις: Επιλογή (SELECT). Παράθεση των γνωρισµάτων των οποίων οι τιµές πρέπει να ανακτηθούν στην απάντηση Από (FROM). Συλλογή των ονοµάτων των σχέσεων που συµµετέχουν στην εκτέλεση της ερώτησης. Κριτήριο επιλογής (WHERE). Αποτελείται από την ή τις συνθήκες που πρέπει να ικανοποιούν τα στοιχεία των παραπάνω σχέσεων για να προκύψουν στο αποτέλεσµα του ερωτήµατος. Το κριτήριο της επιλογής των ερωτηµάτων εκφράζεται µε τη βοήθεια ενός ή περισσοτέρων τελεστών. 3.6 Τελεστές Ένας τελεστής µπορεί να αντιστοιχεί σε ένα ή σε περισσότερα κατηγορήµατα, να επιστρέφει ένα αντικείµενο ή ένα βασικό τύπο. Στη συνέχεια παρατίθενται οι κυριότεροι τελεστές που χρησιµοποιούνται στα ερωτήµατα χωροχρονικών δεδοµένων. Το µοντέλο του πραγµατικού κόσµου µε βάση το οποίο γίνεται ο σχεδιασµός των παραδειγµάτων είναι η κίνηση οχηµάτων σε ένα οδικό δίκτυο. Απαρτίζεται από κινούµενα σηµεία (οχήµατα) µε κινούµενες περιοχές γύρω από αυτά και µεταβαλλόµενες γραµµές (τροχιές των οχηµάτων), στατικές γραµµές (δρόµοι του οδικού δικτύου) και στατικές περιοχές (οικοδοµικά τετράγωνα, δακτύλιος, κλπ) Χωρικοί τελεστές Οι τελεστές που εφαρµόζονται µεταξύ των χωρικών αντικειµένων µπορούν φυσικά να εφαρµοστούν και µεταξύ των κινουµένων και ο ρόλος τους είναι να «αποκαλύψουν» χωρικές συσχετίσεις µεταξύ τους. Υπάρχουν τελεστές που εκτελούνται σε ένα κατηγόρηµα και άλλοι σε περισσότερα. Άλλοι τελεστές έχουν σαν αποτέλεσµα χωρικά αντικείµενα, ενώ άλλοι κάποια αριθµητική τιµή (πχ. απόσταση). Βασικοί τελεστές που επιστρέφουν χωρικά αντικείµενα Σε αντίθεση µε τις αµιγώς σχεσιακές βάσεις, δεν υπάρχει κοινά αποδεκτή χωρική άλγεβρα ή γλώσσα που εκφράζει χωρικά δεδοµένα στις χωρικές βάσεις. Παρ' όλ' αυτά, υπάρχουν κάποιοι χωρικοί τελεστές που εµφανίζονται συχνότερα και οι οποίοι παρατίθενται στη συνέχεια: Τελεστής ακριβούς οµοιότητας (Exact Match), ο οποίος συγκρίνει την έκταση ενός χωρικού αντικειµένου µε την έκταση ενός άλλου χωρικού αντικειµένου και επαληθεύεται όταν οι εκτάσεις είναι ίσες. Τελεστής σηµείου (Point), ο οποίος δοσµένου ενός συγκεκριµένου σηµείου επιστρέφει όλα τα χωρικά αντικείµενα τα οποία το επικαλύπτουν (Εικόνα 3.5). Μπορεί να θεωρηθεί σαν 25

38 μια ειδική περίπτωση άλλων τελεστών όπως παραθύρου, τομής, περιεχομένου (enclosure). Παράδειγμα: «Εντόπισε τις περιοχές που περιέχουν το σημειακό αντικείμενο Α». Εικόνα 3.5: Τελεστής Σημείου (Πηγή: [GG98] ) Τελεστής παραθύρου (Window, Range). οθέντος ενός ν-διάστατου διαστήματος, επιλέγονται όλα τα αντικείμενα τα οποία έχουν τουλάχιστον ένα σημείο κοινό με αυτό. Οι πλευρές του παραθύρου είναι παράλληλες στους άξονες συντεταγμένων. Στην περίπτωση δισδιάστατων καρτεσιανών συντεταγμένων το παράθυρο είναι ορθογώνιο (Εικόνα 3.6). Ένας γενικότερος τελεστής του είδους είναι ο τελεστής περιοχής που επιτρέπει στην περιοχή αναζήτησης να έχει οποιαδήποτε διεύθυνση ή σχήμα. Παραδείγματα: «Εντόπισε ποια σημειακά αντικείμενα βρίσκονται στο παράθυρο με συντεταγμένες (x1,x2,y1,y2)». «Εντόπισε ποια σημειακά αντικείμενα βρίσκονται στο εσωτερικό του πολυγώνου Β». «Εντόπισε ποια σημειακά αντικείμενα βρίσκονται στο εσωτερικό κυκλικής περιοχής με δοσμένο κέντρο και ακτίνα». Εικόνα 3.6: Τελεστής Παραθύρου (Πηγή: [GG98] ) Τελεστής τομής (Intersection). Με δοσμένο χωρικό αντικείμενο του οποίου η έκταση είναι γνωστή, επιστρέφονται όλα τα χωρικά αντικείμενα τα οποία έχουν τουλάχιστον ένα κοινό σημείο μαζί του (Εικόνα 3.7). Παράδειγμα: «Εντόπισε τις περιοχές που τέμνονται με την περιοχή Α». 26

39 Εικόνα 3.7: Τελεστής Τομής (Πηγή: [GG98] ) Τελεστής «εμπεριέχεται σε» (Enclosure). Με δοσμένο χωρικό αντικείμενο επιστρέφει όλα τα χωρικά αντικείμενα τα οποία περιέχουν το δοσμένο αντικείμενο (Εικόνα 3.8). Υπενθυμίζεται ότι όταν το δοσμένο αντικείμενο είναι σημειακό, ο τελεστής ταυτίζεται με τον τελεστή σημείου. Παράδειγμα: «Εντόπισε τις περιοχές που περιέχουν την περιοχή Α». Εικόνα 3.8: Τελεστής «Εμπεριέχεται σε» (Πηγή: [GG98] ) Τελεστής «εμπεριέχει» (Containment) επιστρέφει όλα τα χωρικά αντικείμενα που εμπεριέχονται στο δοσμένο χωρικό αντικείμενο (Εικόνα 3.9). Ο τελεστής αυτός είναι δυαδικός του προηγούμενου. Επίσης και οι δύο είναι περιορισμένες εκφράσεις του τελεστή τομής, υποχρεώνοντας το αποτέλεσμα της τομής να είναι μία από τις δύο εισόδους. Παράδειγμα: «Εντόπισε τα χωρικά αντικείμενα που περιέχει η περιοχή Α». Εικόνα 3.9: Τελεστής «Εμπεριέχει» (Πηγή: [GG98] ) 27

40 Τελεστής γειτνίασης (Adjacency) επιστρέφει όλα τα χωρικά αντικείμενα που συνορεύουν με το δοσμένο χωρικό αντικείμενο. Παράδειγμα: «Εντόπισε τις περιοχές που συνορεύουν με την περιοχή Α». Εκτός από τους παραπάνω τελεστές που είναι τελεστές επιλογής, πολύ συνηθισμένη είναι και η χρήση του τελεστή ένωσης (Spatial join) δύο συνόλων χωρικών αντικειμένων πάνω σε ένα χωρικό κατηγόρημα. Το κατηγόρημα μπορεί να είναι :τέμνει, εμπεριέχει, εμπεριέχεται από, σύγκριση απόστασης, είναι βόρεια (νότια, ανατολικά δυτικά) από, συνορεύει με. Παραδείγματα: «Εντόπισε το σημειακά αντικείμενα που απέχουν μεταξύ τους λιγότερο από μία δοσμένο απόσταση». «Εντόπισε τις περιοχές που τέμνονται μεταξύ τους». Τελεστής εγγύτερου γείτονα (Nearest Neighbor) με δοσμένο κάποιο χωρικό αντικείμενο επιστρέφει το χωρικό αντικείμενο από το οποίο απέχει λιγότερο. Η απόσταση μεταξύ χωρικών αντικειμένων που έχουν έκταση συνήθως υπολογίζεται ανάμεσα στα κοντινότερα σημεία τους. Παράδειγμα: «Εντόπισε το σημειακό αντικείμενο που απέχει λιγότερο από το σημειακό αντικείμενο Α». Βασικοί τελεστές που επιστρέφουν αριθμητικές τιμές Μια άλλη σημαντική κατηγορία τελεστών σε χωρικά αντικείμενα επιστρέφει αριθμητικές τιμές που περιγράφουν κάποια χαρακτηριστικά μεγέθη των αντικειμένων. Οι σημαντικότεροι είναι: Ο τελεστής μεγέθους έχει σαν αποτέλεσμα το άθροισμα των διαστημάτων ανάμεσα στα στοιχεία που σχηματίζουν ένα χωρικό αντικείμενο. Ο τελεστής μήκους είναι ο τελεστής μεγέθους της γραμμής και επιστρέφει το μήκος της. Παράδειγμα: «Υπολόγισε το μήκος των κοινών συνόρων περιοχών Α και Β». Τελεστής εμβαδού είναι ο τελεστής μεγέθους για την περιοχή και επιστρέφει το εμβαδό της. Παράδειγμα: «Υπολόγισε το εμβαδό της περιοχής Α». Τελεστής περιμέτρου είναι ο τελεστής μεγέθους για τα σύνορα της περιοχής και επιστρέφει το μήκος τους. Παράδειγμα: «Υπολόγισε το μήκος των συνόρων τηςπεριοχής Α». Ένας τελεστής μεγάλης σπουδαιότητας είναι και ο τελεστής απόστασης που εκφράζει το πόσο απέχουν μεταξύ τους δυο χωρικά αντικείμενα. Σε περίπτωση που τα χωρικά αντικείμενα δεν είναι σημεία, είθισται ο υπολογισμός της απόστασης μεταξύ των κοντινότερων σημείων μεταξύ των αντικειμένων. Σε μονοδιάστατα μεγέθη επιστρέφει την απόλυτη διαφορά, ενώ σε δυσδιάστατα την ευκλείδεια απόσταση. Παράδειγμα: «Υπολόγισε την απόσταση μεταξύ των σημειακών αντικειμένων Α και Β». 28

41 Τελεστές διάταξης στο χώρο Ιδιαίτερη βαρύτητα έχουν και οι τελεστές που εξετάζουν τη σχετική διάταξη των αντικειμένων στον χώρο. Οι βασικότεροι είναι οι τελεστές κατεύθυνσης: βόρεια, νότια, ανατολικά, δυτικά. Παράδειγμα: «Εντόπισε τα σημειακά αντικείμενα που βρίσκονται βορειότερα σημειακού αντικειμένου Α» Χρονικοί τελεστές Οι χρονικοί τελεστές με την εφαρμογή τους σε δεδομένα κινούμενων αντικειμένων απομονώνουν κάποιο ή κάποια από τα στιγμιότυπα της κίνησης και μπορεί να έχουν σαν αποτέλεσμα αμιγώς χωρικά αντικείμενα. Οι συνηθέστεροι χρονικοί τελεστές είναι οι : Τελεστής χρονικής στιγμής επιστρέφει το χωρικό αντικείμενο που αντιστοιχεί στην κατάσταση της κίνησης τη δοσμένη χρονική στιγμή. Παράδειγμα: «Εντόπισε τη θέση του κινούμενου σημειακού αντικειμένου Α την χρονική στιγμή t=ti». Τελεστής χρονικού διαστήματος έχει το ίδιο αποτέλεσμα με τον παραπάνω, με τη διαφορά ότι ο χρονικός προσδιορισμός της κίνησης είναι κάποιο χρονικό διάστημα και όχι χρονική στιγμή. Παράδειγμα: «Εντόπισε τα κινούμενα σημειακά αντικειμένα που βρέθηκαν στο εσωτερικό της περιοχής Α το χρονικό διάστημα (t j t i )». Ένας τελεστής που χρησιμοποιείται σε χρονικά δεδομένα, είναι ο τελεστής της διάρκειας ο οποίος επιστρέφει την χρονική διάρκεια ενός χρονικού αντικειμένου. Παράδειγμα: «Υπολόγισε τη διάρκεια της παραμονής του κινούμενου σημειακού αντικειμένου στο εσωτερικό της περιοχής Α». ιάφορες υλοποιήσεις πάνω σε χρονικά και χωροχρονικά δεδομένα προτείνουν την χρήση πιο εξειδικευμένων τελεστών όπως : μέχρι (until), για πάντα (always for), μετά από (after) κτλ. Οι τελεστές αυτοί εξαρτώνται από την υλοποίηση και την εφαρμογή και δεν αποτελούν κοινώς αποδεκτές προτάσεις. Η χρονική διάσταση προσθέτει ένα ακόμη χαρακτηριστικό στα δεδομένα και αυτό είναι ο ρυθμός μεταβολής τους. Τα κινούμενα αντικείμενα, όπως προαναφέρθηκε, είναι χωρικά αντικείμενα τα οποία μεταβάλλονται με την πάροδο του χρόνου. Ο ρυθμός μεταβολή ς σε αδιάστατα μεγέθη είναι ίσος με την παράγωγό τους. Στην περίπτωση των κινούμενων σημείων ο ρυθμός μεταβολής της θέσης τους μπορεί να προσδιορισθεί μετην χρήση των εξής τελεστών: Τελεστής ταχύτητας (speed). Η μεταβολή ορίζεται ως η ευκλείδεια απόσταση μεταξύ δύο θέσεων του και ο ρυθμός ως το πηλίκο αυτής της απόστασης με το χρονικό διάστημα που μεσολάβησε για να βρεθεί το αντικείμενο από την μία θέση στην άλλη. Παράδειγμα: «Υπολόγισε το μέτρο της ταχύτητας του σημειακού κινούμενου αντικειμένου Α». Ο τελεστής ρυθμού μεταβολής κατεύθυνσης υπολογίζει την μεταβολή των κατευθύνσεων (σαν γωνία) ανάμεσα σε δύο θέσεις δια το χρ ονικό διάστημα που 29

42 μεσολάβησε ανάμεσα τους.παράδειγμα: «Υπολόγισε την μεταβολή της κατεύθυνση του κινούμενου αντικειμένου τα τελευταία x λεπτά». Ο τελεστής διανυσματικής ταχύτητας αποτελεί το συνδυασμό των δύο παραπάνω τελεστών και υπολογίζει την ολική μεταβολή στις θέσεις του σημειακού αντικειμένου. Παράδειγμα: «Υπολόγισε το συνολικό ρυθμό μεταβολή της θέσης του σημειακού αντικειμένου Α το τελευταίο λεπτό» Χωροχρονικοί τελεστές Η ύπαρξη της χρονικής ιδιότητας στα κινούμενα αντικείμενα κάνει τα αποτελέσματα των χωρικών τελεστών πάνω σε αυτά, προσωρινά. Επίσης, οδηγεί στον ορισμό νέων, χωροχρονικών τελεστών που σχηματίζονται από ένα σύνολο αμιγώς χωρικών πράξεων με κάποια αυστηρή χρονική αλληλουχία. Οι σχέσεις που προσδιορίζουν αυτοί οι τελεστές μπορούν να χαρακτηρισθούν σαν χρονικές τοπολογικές. Χαρακτηριστικοί τελεστές που τις περιγράφουν είναι οι: Τελεστής «εισέρχεται σε». Ένα κινούμενο σημείο εισέρχεται σε μια περιοχή όταν τέμνει με αυστηρή χρονική σειρά πρώτα το εξωτερικό μιας περιοχής και στη συνέχεια το εσωτερικό της. Παράδειγμα: «Εντόπισε το σημείο από το οποίο το κινούμενο σημειακό αντικείμενο Α εισήλθε στην περιοχή Β». Τελεστής «εξέρχεται από». Ικανοποιείται όταν ένα σημειακό αντικείμενο πραγματοποιεί τις παραπάνω κινήσεις με αντίστροφη φορά. Παράδειγμα: «Εντόπισε τα κινούμενα σημειακά αντικείμενα που εξήλθαν από την περιοχή Β τα τελευταία πέντε λεπτά». Ο τελεστής «διασχίζει» εξετάζει αν αρχικά το κινούμενο σημείο εισέρχεται σε μια περιοχή ενώ αμέσως μετά εξέρχεται από αυτή. Παράδειγμα: «Εντόπισε τα κινούμενα σημειακά αντικείμενα που διέσχισαν την περιοχή Α τα τελευταία 10 λεπτά» Γενικοί τελεστές Εκτός από τη χρονική και χωρική ιδιότητα που διαθέτουν τα χωροχρονικά αντικείμενα, ισχύουν και γι' αυτά οι βασικές σχέσεις που διέπουν τα κλασικά σχεσιακά δεδομένα. Συνεπώς, μπορούν να εφαρμοστούν και σε αυτά όλες οι πράξεις που συναντά κανείς στις κλασσικές σχεσιακές βάσεις δεδομένων. Τελεστές συνόλων Οι τελεστές που ακολουθούν εξετάζουν κυρίως σχέσεις μεταξύ συνόλων αντικειμένων και ακόμα και αν δεν χρησιμοποιούνται αυτοί καθ αυτοί, αποτελούν το σημείο έναρξης για το σχεδιασμό πιο εξειδικευμένων τελεστών όπως κάποιων από τους χωρικούς που περιγράφηκαν προηγουμένως. Οι σημαντικότεροι είναι: Τελεστής «είναι άδειο». Επιστρέφει μια τιμή boolean ανάλογα με το αν το σύνολο έχει ή όχι περιεχόμενο. 30

43 Ο τελεστής τομής εφαρμόζεται ανάμεσα σε δύο ή περισσότερα σύνολα και επιστρέφει τα κοινά τους σημεία. Ο τελεστής ένωσης χρησιμοποιείται μεταξύ δύο ή περισσότερων συνόλων και επιστρέφει ένα σύνολο το οποίο περιέχει όλα τα σημεία που περιέχουν όλα τα άλλα σύνολα μαζί. Ο τελεστής διαφοράς ανάμεσα στο σύνολο Σ1 και στο σύνολο Σ2 επιστρέφει ένα υποσύνολο του Σ1 με στοιχεία όσα δεν ανήκουν στο Σ2. Οι τρεις παραπάνω τελεστές παρουσιάζουν μεγαλύτερο ενδιαφέρον αν τα στοιχεία των συνόλων είναι ίσων διαστάσεων (πχ. περιοχές) Τελεστής που επιστρέφει τον αριθμό των στοιχείων ενός συνόλου. Συναθροιστικοί τελεστές: COUNT, SUM, MAX, MIN, AVG, με τις γνωστές ιδιότητες. Οι τελεστές μπορούν να εφαρμοστούν σε αδιάστατα μεγέθη, ενώ οι MAX και MIN συγκεκριμένα μπορούν να εκτελεστούν μόνο πάνω σε δεδομένα που μπορούν να διαταχθούν. Οι συναθροιστικές συναρτήσεις εξάγουν μια περιληπτική απάντηση των τιμών όλων των δεδομένων του συνόλου που εξετάζουν. Απλές εφαρμογές τους στα χωροχρονικά δεδομένα, είναι πάνω στο πεδίο του χρόνου, της απόστασης και όλων των αριθμητικών μεγεθών που τα περιγράφουν, όπως εξετάστηκαν προηγουμένως. Παράδειγματα: «Υπολόγισε τη μέση διάρκεια παραμονής κινούμενων σημειακών αντικειμένων στο εσωτερικό της περιοχής Α», «Εντόπισε το σημειακό κινούμενο αντικείμενο που απέχει λιγότερο από το σταθερό σημείο Α», «Υπολόγισε το μέγιστο αριθμός κινούμενων αντικειμένων που βρέθηκαν ταυτόχρονα στο εσωτερικό της περιοχής Α τα τελευταία 5 λεπτά» Τελεστές ομαδοποίησης GROUP BY, HAVING. Υπάρχουν περιπτώσεις όπου επιθυμείται η εφαρμογή των συναθροιστικών συναρτήσεων σε υποσύνολα των δεδομένων, βάσει ενός συγκεκριμένου χαρακτηριστικού. Η έκφραση GROUP BY πραγματοποιεί τη ζητούμενη ομαδοποίηση βάσει του γνωρίσματος ομαδοποίησης. Επιπλέον, είναι πιθανό να απαιτούνται στην εξαγωγή της απάντησης μόνο τα αποτελέσματα των υπο ομάδων που ικανοποιούν κάποια συνθήκη. Αυτός είναι και ο ρόλος της έκφρασης HAVING, η οποία πραγματοποιεί το φιλτράρισμα των αποτελεσμάτων των υπο ομάδων ώστε να προβληθούν μόνο τα κατάλληλα. Παράδειγματα: «Εντόπισε τις περιοχές που έχουν περισσότερα από x κινούμενα σημειακά αντικείμενα στο εσωτερικό τους». Τελεστές βασικών τύπων: and, not, or. Παραδείγματα: «Εντόπισε τα κινούμενα σημειακά αντικείμενα που βρίσκονται μέσα στην δοσμένη περιοχή Α και απέχουν λιγότερο από x μέτρα μεταξύ τους», «Εντόπισε τις περιοχές που δεν περιέχουν κανένα κινούμενο αντικείμενο». Στους τελεστές κίνησης περιλαμβάνονται και οι τελεστές προβολής(projection), ένωσης (selection), σύνδεσης (join) των παραδοσιακών σχεσιακών βάσεων. 3.7 Κατηγοριοποίηση ερωτημάτων Όλοι οι τελεστές που περιγράφηκαν παραπάνω είναι οι βασικότεροι για τη διατύπωση ερωτημάτων πάνω σε χωροχρονικά δεδομένα. Επιπλέον, τα ίδια τα ερωτήματα υπόκεινται σε διάφορους κανόνες κατηγοριοποίησης. 31

44 3.7.1 ιάρκεια εκτέλεσης Τα ερωτήματα που αφορούν χωροχρονικά δεδομένα μπορούν να διακριθούν σε: Ερωτήματα στιγμιοτύπου. Τα ερωτήματα στιγμιοτύπου εκτελούνται μόνο τη στιγμή της υποβολής τους και αφορούν δεδομένα ήδη αποθηκευμένα στο σύστημα. Είναι ο μόνος τύπος ερωτημάτων που χρησιμοποιείται στις κλασικές σχεσιακές βάσεις και ανακτά μία συγκεκριμένη εικόνα των δεδομένων στη βάση μια συγκεκριμένη χρονική στιγμή. Παράδειγμα:«Υπολόγισε τον αριθμό των κινούμενων σημειακών αντικειμένων που βρέθηκαν στο εσωτερικό της περιοχής τη συγκεκριμένη χονική στιγμή t ι». Ερωτήματα διαρκείας. Τα ερωτήματα διαρκείας παραμένουν συνεχώς ενεργά μετά την υποβολή τους και αφορούν δεδομένα που συσσωρεύονται στο σύστημα. Αυτή η κατηγορία έχει νόημα κυρίως σε συστήματα που διαχειρίζονται ρεύματα δεδομένων, δηλαδή σε δυναμικά περιβάλλοντα, όπου η κατάσταση της βάσης μεταβάλλεται συνεχώς. Παράδειγμα: «Υπολόγισε το πλήθος των κινούμενων αντικειμένων που βρίσκονται μέσα στην περιοχή το τελευταίο λεπτό» Στιγμή υποβολής σε σχέση με το παρόν Παρελθόν. Ερωτήματα που εκτελούνται πάνω σε παρελθοντικά δεδομένα, ήδη αποθηκευμένα στο σύστημα. Παραδείγματα: «Εντόπισε τη θέση του κινούμενου σημειακού αντικειμένου την χρονική στιγμή ti», «Υπολόγισε τον αριθμό των οχημάτων που βρέθηκαν στο εσωτερικό της περιοχής τα τελευταία 15 λεπτά». Παρόν. Τα ερωτήματα αυτά ενδιαφέρονται μόνο για την τωρινή κατάσταση των χωροχρονικών αντικειμένων. Παράδειγμα: «Εντόπισε τα κινούμενα σημειακά αντικείμενα που απέχουν λιγότερο από x km από το κινούμενο αντικείμενο Α τώρα». Μέλλον. Τα μελλοντικά ερωτήματα ασχολούνται με την πρόβλεψη θέσεων και καταστάσεων των χωροχρονικών αντικειμένων. Για να απαντηθούν απαιτείται επιπρόσθετη πληροφορία όπως η ταχύτητα ή ο προορισμός. Παράδειγμα: «Ειδοποίησε όταν ένα κινούμενο εκτιμάται ότι θα εισέλθει στην περιοχή Β σε λιγότερο από x min» Χρονική μεταβλητότητα των κατηγορημάτων και κινητικότητα των αντικειμένων Ερωτήματα στα οποία το χωρικό κατηγόρημα είναι σταθερό, ενώ τα αντικείμενα κινούνται. Παράδειγμα: «Υπολόγισε τον αριθμό των κινούμενων σημειακών αντικειμένων που απέχουν λιγότερο από x km από το σταθερό σημείο Α». Ερωτήματα με κινούμενα χωρικά κατηγορήματα πάνω σε στάσιμα αντικείμενα. Παράδειγμα: «Εντόπισε ποιο από τα σταθερά σημεία Α, Β, Γ απέχει λιγότερο από το κινούμενο σημειακό αντικείμενο Χ». 32

45 Ερωτήματα με κινούμενα χωρικά κατηγορήματα πάνω σε κινούμενα αντικείμενα. Παράδειγμα: «Υπολόγισε τη μέση απόσταση των κινούμενων σημειακών αντικειμένων από το κινούμενο σημειακό αντικείμενο Α» Βασικοί τύποι ερωτημάτων Ερωτήματα επιλογής (selection queries). Επιλογή των αντικειμένων που ικανοποιούν κάποιο κατηγόρημα (συνήθως χωρικό) μέσα σε κάποιο χρονικό διάστημα ή χρονική στιγμή. Eρωτήματα σύνδεσης (join queries). Επιλογή αντικειμένων που ικανοποιούν ανά ζεύγη κάποιο κατηγόρημα μέσα σε κάποιο χρονικό διάστημα ή χρονική στιγμή. Ερωτήματα κ - εγγύτερου γείτονα. (n- nearest neighbor queries ). Επιλέγονται τα κ πιο κοντινά αντικείμενα σε ένα σημείο, στατικό ή κινούμενο, μέσα σε κάποιο χρονικό διάστημα ή στιγμή. Αναγκαίο είναι να υποστηρίζεται η εκτέλεση ερωτημάτων των αμιγώς χρονικών, χωρικών αλλά και των παραδοσιακών σχεσιακών βάσεων. 3.8 Επιλογή σημαντικότερων ερωτημάτων σε χωροχρονικά δεδομένα Ερώτηματα που ελέγχουν αν ένα κινούμενο αντικείμενο βρίσκεται στο εσωτερικό μιας περιοχής (Containment Query γενικά, Range Query αν η περιοχή είναι ορθογώνια). Παράδειγμα: «Εντόπισε τα κινούμενα σημειακά αντικείμενα που βρέθηκαν στο εσωτερικό της περιοχής Α τα τελευταια x min». Ερώτημα ταυτότητας. Παράδειγμα: «Εντόπισε τη θέση του κινούμενου σημειακού αντικειμένου Α κάθε χρονική στιγμή». Ερωτήματα απόστασης (από κινούμενο ή σταθερό σημείο). Παράδειγμα: «Εντόπισε τα κινούμενα σημειακά αντικείμενα που λιγότερο απο x μέτρα από το όχημα Α». «Εντόπισε τα κινούμενα σημειακά αντικείμενα που απέχουν λιγότερο απο x μέτρα από το σταθερό σημειο (x o,y o )». Ερωτήματα σύνδεσης. Παράδειγμα: «Εντόπισε τα κινούμενα σημειακά αντικείμενα που απέχουν μεταξύ τους λιγότερο απο x μέτρα». Ερωτήματα ταύτισης. Παράδειγμα: «Εντόπισε τα κινούμενα σημειακά αντικείμενα που βρίσκονται στην ίδια θέση την ίδια χρονική στιγμή». Ερωτήματα εγγύτερου γείτονα. Παράδειγμα: «Εντόπισε τον εγγύτερο γείτονα του κινούμενου σημειακού αντικειμένου Α». Ερωτήματα που εξετάζουν αν τα αντικείμενα κινούνται. 33

46 Ερωτήματα που εξετάζουν ποια κινούμενα αντικείμενα εισέρχονται ή εξέρχονται από μια περιοχή. Ερωτήματα που υπολογίζουν χρονικά διαστήματα. Παράδειγμα: «Υπολόγισε το χρονικό διάστημα που μεσολάβησε από τη διέλευση δυο κινούμενων αντικειμένων από το ίδιο σημείο». Ερωτήματα που περιέχουν συναθροιστικές συναρτήσεις. Παράδειγμα: «Ειδοποίησε όταν ο αριθμός των κινούμενων αντικειμένων που περιέχει η περιοχή ξεπεράσει τα 20». 34

47 Κεφάλαιο 4 Αρχιτεκτονική εφαρμογής 4.1 Περιγραφή της αρχιτεκτονικής του συστήματος Σκοπός της εφαρμογής είναι η διαχείριση, επεξεργασία και οπτικοποίηση χωροχρονικών δεδομένων, που περιγράφουν την κίνηση αντικειμένων κι έχουν την μορφή ρευμάτων. Για την επίτευξη αυτού του στόχου χρειάστηκε ο συνδυασμός πολύ διαφορετικών τεχνολογιών. Αρχικά, χρειάστηκε η εύρεση ενός κατάλληλου μοντέλου για την αναπαράσταση της πληροφορίας κίνησης, ώστε να είναι διαχειρίσιμη. Επιλέχθηκε η μοντελοποίησή της μέσω ρευμάτων τροχιάς. Στη συνέχεια, πραγματοποιήθηκε ανάπτυξη της εφαρμογής πάνω στους εξής τρεις βασικοί άξονες: 1)διαχείριση των ρευμάτων δεδομένων που μεταφέρουν την πληροφορία κίνησης των αντικειμένων, 2) γραφική αναπαράσταση τους και 3) παρουσίαση και ολοκλήρωση αυτών και άλλων υπηρεσιών σε ένα γραφικό περιβάλλον διεπαφής. Συνεπώς μπορούν να οριστούν οι εξής τρεις βασικές αρχιτεκτονικές μονάδες της εφαρμογής (Εικόνα 4.1): Σύστημα διαχείρισης Ρευμάτων εδομένων (TelegraphCQ). ιαχειρίζεται τα εισερχόμενα ρεύματα δεδομένων κι εκτελεί τα ερωτήματα διαρκείας που ορίζονται πάνω σε αυτά. Ουσιαστικά είναι το μέσο επεξεργασίας της πληροφορίας των τροχιών κινούμενων αντικειμένων. Χάρτης. Φροντίζει για την οπτικοποίηση στατικών και δυναμικών δεδομένων, ενώ υποστηρίζει και βοηθητικές λειτουργίες σχετικές με την εποπτεία (πχ. αλλαγή κλίμακας, αλλαγή προβολής κινούμενων αντικειμένων. Γραφικό περιβάλλον διεπαφής. Αποτελεί το πλαίσιο υποδοχής του χάρτη και το μέσο επικοινωνίας του χρήστη με το Σύστημα ιαχείρισης Ρευμάτων εδομένων. 35

48 Ρεύματα Δεδομένων TelegraphCQ Σύστημα Διαχείρισης Ρευμάτων Δεδομένων Αποτελέσματα ερωτημάτων διαρκείας MapObjects Χάρτης Στατικά γεωγραφικά δεδομένα JAVA Γραφικό περιβάλλον διεπαφής Οπτικοποίηση Υποβολή ερωτημάτων, eποπτεία Χρήστης Εικόνα4.1: Αρχιτεκτονική εφαρμογής 4.2. Ρεύματα τροχιάς αντικειμένων Η μοντελοποίηση της κίνησης αποτέλεσε έναν από τους πρωταρχικούς στόχους της διπλωματικής εργασίας. Τελικά, επιλέχθηκε η αναπαράσταση της με χρήση των ρευμάτων δεδομένων. Οι σημαντικότεροι λόγοι που οδήγησαν σε αυτή την απόφαση είναι: Ενδέχεται ο όγκος των δεδομένων που αποτυπώνει τη διαρκή κίνηση να είναι πολύ μεγάλος και να καταφθάνει με καταιγιστικό ρυθμό ώστε να είναι διαχειρίσιμος από ένα παραδοσιακό Σύστημα ιαχείρισης Βάσεων εδομένων. Οι ανάγκες επεξεργασίας τους προσεγγίζουν τη φιλοσοφία των ερωτημάτων διαρκείας. Η παρακολούθηση της κίνησης θα απαιτούσε την επαναλαμβανόμενη υποβολή των ίδιων ερωτημάτων, αλλά και την παραγωγή αποτελεσμάτων σε πραγματικό χρόνο. Ιδιαίτερη βαρύτητα δίνεται στην εξέλιξη της κίνησης, επομένως το ενδιαφέρον εστιάζεται στις πιο πρόσφατες καταγεγραμμένες θέσεις. Συνεπώς, η λύση που υιοθετείται στο πλαίσιο της εφαρμογής είναι η αναπαράσταση της κίνησης μέσω ρευμάτων τροχιάς (trajectory streams). Ένα ρεύμα τροχιάς σημειακών κινούμενων αντικειμένων αποτελείται από έναν απεριόριστο αριθμό στοιχείων, κάθε ένα από τα οποία περιέχει τη θέση ενός κινούμενου αντικειμένου, το χρονικό ορόσημο όπου αυτή σημειώνεται καθώς και τις υπόλοιπες ιδιότητες του σχήματος της πλειάδας. 4.3 Σύστημα ιαχείρισης Ρευμάτων εδομένων Η επιλογή των ρευμάτων τροχιάς για την αναπαράσταση της πληροφορίας κίνησης θέτει νέες ανάγκες επεξεργασίας. Όπως έχει περιγραφεί αναλυτικά στο Κεφάλαιο 2, τα παραδοσιακά Συστήματα ιαχείρισης Βάσεων εδομένων αποδεικνύονται ανεπαρκή. Επομένως, επιλέγεται η 36

49 χρήση ενός Συστήματος ιαχείρισης Ρευμάτων εδομένων (Σ Ρ ). Στο πλαίσιο της εφαρμογής, το Σ Ρ έχει δύο βασικές αποστολές: Να εκτελεί ένα απλό ερώτημα διαρκείας (ερώτημα ταυτότητας) που επιστρέφει την ταυτότητα και τη θέση όλων των οχημάτων κάθε χρονική στιγμή. Αυτή η πληροφορία στέλνεται στον χάρτη για την οπτικοποίηση των τροχιών των κινούμενων αντικειμένων. Να εκτελεί όλα τα ερωτήματα που του υποβάλλονται μέσα από το γραφικό περιβάλλον, και να επιστρέφει σε αυτό τα αποτελέσματα τους Ερωτήματα ιαρκείας Τα ερωτήματα διαρκείας δεν αποτελούν μια αυθύπαρκτη οντότητα στην εφαρμογή, αλλά τον ουσιαστικό σύνδεσμο ανάμεσα στο Σύστημα ιαχείρισης Ρευμάτων εδομένων και τα υπόλοιπα μέρη της. Τα ερωτήματα διαρκείας όπως προαναφέρθηκε είναι το κύριο μέσο επεξεργασίας των ρευμάτων δεδομένων. ρουν σαν φίλτρα πάνω στα εισερχόμενα ρεύματα και επιστρέφουν την πληροφορία που ενδιαφέρει. Σκοπός της εφαρμογής είναι η εποπτεία ρευμάτων τροχιάς κινούμενων αντικειμένων. Η εποπτεία στηρίζεται τόσο στην οπτικοποίηση των θέσεων και των τροχιών των αντικειμένων, όσο και στην εκμαίευση συνθετότερης και λεπτομερέστερης πληροφορίας σχετικής με τη συμπεριφορά των αντικειμένων, τις μεταξύ τους συσχετίσεις, την κατάσταση μιας συγκεκριμένης περιοχής κ.α. Ο μόνος διαθέσιμος τρόπος επεξεργασίας είναι η υποβολή κατάλληλων ερωτημάτων διαρκείας και η παρακολούθηση των αποτελεσμάτων τους. Ο σχεδιασμός τους γίνεται με βάση: Τη χωροχρονική φύση των δεδομένων. Τα δεδομένα διαθέτουν χωρικά και χωροχρονικά χαρακτηριστικά τα οποία συνδυάζονται και μεταξύ τους προσδίδοντας νέες, χωροχρονικές ιδιότητες. Τα ερωτήματα θα πρέπει να είναι σε θέση να συλλάβουν όσο γίνεται καλύτερα αυτήν την πληροφορία. Τις ιδιαίτερες εκφράσεις και τους περιορισμούς της γλώσσας ερωταποκρίσεως του συστήματος στη διατύπωση ερωτημάτων. Όπως προαναφέρθηκε, η εφαρμογή υλοποιεί ένα προσχεδιασμένο ερώτημα, ενώ παράλληλα παρέχει στο χρήστη τη δυνατότητα διατύπωσης πολλαπλών ερωτημάτων και παρακολούθησης των αποτελεσμάτων τους. Το βασικό ερώτημα της εφαρμογής επιλέγει από το ρεύμα τροχιών τις συντεταγμένες της τρέχουσας θέσης κάθε αντικειμένου, την ταυτότητα του και τη χρονική στιγμή στην οποία αυτά αντιστοιχούν. Στη συνέχεια τα στέλνει στο χάρτη προς απεικόνιση. Αυτό το ερώτημα παρέχει ουσιαστικά την απαραίτητη πληροφορία για την οπτικοποίηση των ρευμάτων τροχιάς κινούμενων αντικειμένων. Επιπρόσθετα, η εφαρμογή παρέχει τη δυνατότητα σύγχρονης υποβολής και αναστολής ερωτημάτων διαρκείας που συντάσσονται από τον χρήστη. Συνεπώς τα ερωτήματα διαρκείας δεν αποτελούν μόνο τη συνδετική ουσία της εφαρμογής, αλλά και την ουσία ύπαρξής της. 37

50 4.4 Χάρτης Ο χάρτης είναι το βασικότερο εργαλείο παρακολούθησης των δεδομένων στην εφαρμογή, γιατί την μετατρέπει από αριθμητική σε οπτική, η οποία είναι αμεσότερη και σαφέστερη για τον χρήστη. Με τον όρο χάρτης εννοείται εδώ το σύνολο λειτουργιών που διαθέτει η εφαρμογή για την αναπαράσταση γεωγραφικών δεδομένων και των εργαλείων επιλογής γραφικών αντικειμένων. Οι βασικές αρμοδιότητες του χάρτη είναι: Η απεικόνιση στατικών γεωγραφικών δεδομένων. Η απεικόνιση δυναμικών δεδομένων. Η παροχή χαρτογραφικών λειτουργιών. Η επιλογή γραφικών δεδομένων και η μετατροπή τους σε αριθμητικά δεδομένα. Ο χάρτης αναπαριστά στατική χωρική πληροφορία σε στρώματα γραφικών, ένα για κάθε είδος πληροφορίας. Στη συγκεκριμένη εφαρμογή τα στρώματα αφορούν στατικά γεωγραφικά δεδομένα της Αθήνας και είναι τα εξής: ένα για το οδικό δίκτυο, ένα για τα όρια της περιοχής και ένα για τα ονόματα των επιμέρους συνοικιών. Κάθε ένα απεικονίζεται με ξεχωριστό γραφικό ώστε να είναι καλύτερη η αναγνωσιμότητα του χάρτη. Ο χάρτης καλείται να οπτικοποιήσει και δυναμικά χωρικά δεδομένα, σε νέα, επιπρόσθετα στρώματα γραφικών. Υποστηρίζεται η πρόσθεση, αφαίρεση, τροποποίηση στρωμάτων στον χάρτη σε πραγματικό χρόνο. Με αυτό τον τρόπο προβάλλεται η ροή των δεδομένων και οι χωρικές πράξεις που λαμβάνουν χώρα. Τα στρώματα δυναμικών δεδομένων είναι : ένα για την απεικόνιση των θέσεων των αντικειμένων. ένα για τις τροχιές τους. Τα δυναμικά δεδομένα προέρχονται από τα αποτελέσματα του κεντρικού ερωτήματος της εφαρμογής, το οποίο ζητά την τοποθεσία και την ταυτότητα κάθε οχήματος ανά χρονική στιγμή. Οι απαντήσεις αυτού του ερωτήματος χρησιμοποιούνται για την ανανέωση των γραφικών του χάρτη, αντικαθιστώντας τις αναπαραστάσεις των παρωχημένων θέσεων και εμπλουτίζοντας αυτές των τροχιών με νέα τμήματα. Η απεικόνιση των χωρικών δεδομένων γίνεται με τα κατάλληλα γραφικά σύμβολα. Ο χρήστης μπορεί να επιλέξει τη διαφορετική προβολή μεμονωμένων αντικειμένων, ώστε να διευκολυνθεί στην παρακολούθησή τους (monitor). Η δυνατότητα προβολής δυναμικών χωρικών δεδομένων αποτελεί και την απαραίτητη προϋπόθεση συνλειτουργίας του χάρτη με τα ρεύματα δεδομένων. Ο χάρτης προσφέρει επίσης μια σειρά εργαλείων που πραγματοποιούν χαρτογραφικές λειτουργίες, όπως μεγέθυνση, σμίκρυνση, αλλαγή κλίμακας, μετατόπιση, επιλογή των στρωμάτων των στατικών γεωγραφικών δεδομένων που θα προβληθούν, εμφάνιση πληροφοριών για τα στατικά δεδομένα(πχ. ονόματα δρόμων). Όλα τα παραπάνω συνδυάζονται αποτελεσματικά με το δυναμικό χαρακτήρα της εφαρμογής και προσδίδουν στην παρακολούθηση του χάρτη ευελιξία και σαφήνεια. Συχνά, κατά τη διατύπωση ερωτημάτων σε κινούμενα αντικείμενα προκύπτει η ανάγκη διατύπωσης εκφράσεων που περιλαμβάνουν στατικά χωρικά αντικείμενα (περιοχές, σημεία κλπ.), ο ορισμός των οποίων μπορεί να αποδειχθεί περίπλοκος και χρονοβόρος. Για την αντιμετώπιση αυτής της δυσκολίας, ο χάρτης διαθέτει γραφικά εργαλεία μέσω των οποίων μπορεί να επιλέξει εύκολα κανείς μια περιοχή πάνω σε αυτόν. Στη συνέχεια, οι τιμές των επιλεγμένων γραφικών αντικειμένων μεταφράζονται στην αριθμητική πληροφορία όπου αντιστοιχούν, διευκολύνοντας σημαντικά τη σύνταξη του ερωτήματος. Συνεπώς ο χάρτης είναι το μέσο μετατροπής της πληροφορίας από αριθμητική σε οπτική (οπτικοποίηση τροχιών) και αντίστροφα (παραγωγή χωρικών κατηγορημάτων με επιλογή γραφικών αντικειμένων) 38

51 4.5 Γραφικό περιβάλλον διασύνδεσης Το γραφικό περιβάλλον διασύνδεσης ενσωματώνει όλους τους μηχανισμούς οπτικοποίησης και επεξεργασίας δεδομένων κάτω από ένα ενιαίο πλαίσιο. Αποτελεί το μέσο υποδοχής του χάρτη και των λειτουργιών του ενώ ταυτόχρονα παρέχει ένα φιλικό περιβάλλον διάδρασης του χρήστη με το Σύστημα ιαχείρισης Ρευμάτων εδομένων. Αναλυτικότερα, οι κυριότερες λειτουργίες του είναι: η παροχή του πλαισίου προβολής του χάρτη και των εργαλείων του η σύνδεση με το Σύστημα ιαχείρισης Ρευμάτων εδομένων η διάθεση κατάλληλων γραφικών για τη διευκόλυνση ενεργειών του χρήστη σχετικών με την επεξεργασία ρευμάτων τροχιάς (φόρμα αποστολής ρεύματος δεδομένων στο Σ Ρ, φόρμα σχεδιασμού υποβολής ερωτημάτων διαρκείας, πίνακες προβολής αποτελεσμάτων) Ο συνδυασμός όλων των παραπάνω ώστε η εφαρμογή να είναι εύχρηστη και αποδοτική. Ο χάρτης παίζει ένα πολύ βασικό ρόλο στην εφαρμογή, καθώς αποτελεί το κυριότερο εργαλείο εποπτείας. Υλοποιείται με την χρήση μηχανισμών γραφικών αλλά η ενσωμάτωσή του στην εφαρμογή προϋποθέτει τη σύνδεσή του με τα δυναμικά δεδομένα που προκύπτουν από την επεξεργασία των ρευμάτων και τη συμμετοχή του στη διατύπωση ερωτημάτων με χωρικά κατηγορήματα. Αυτή την ανάγκη καλύπτει το γραφικό περιβάλλον, το οποίο παρέχει τόσο τον άξονα των γραφικών πάνω στον οποίο αναπτύσσεται ο χάρτης αλλά και τους μηχανισμούς επικοινωνίας του με το Σύστημα ιαχείρισης Ρευμάτων εδομένων. Η σύνδεση των γραφικών λειτουργιών με το Σ Ρ αποτελεί ένα από τα καίρια σημεία για την αυτάρκεια και τη συνεκτικότητα της εφαρμογής. Με την χρήση ειδικών βιβλιοθηκών γίνεται εφικτό μέσα από το γραφικό περιβάλλον να ξεκινήσει ο χρήστης τη σύνδεση με αυτό, όχι ρητά αλλά στο παρασκήνιο, κάθε φορά που υποβάλλει ένα νέο ερώτημα, ή όταν εκκινεί την εκτέλεση του βασικού ερωτήματος, παρακάμπτοντας έτσι μια χρονοβόρα και άκομψη διαδικασία επικοινωνίας μέσω του παραθύρου εντολών (terminal window). Ένα από τα σπουδαιότερα εργαλεία διάδρασης του περιβάλλοντος διεπαφής με το Σ Ρ είναι η παροχή ενός γραφικού αντικειμένου (φόρμας) μέσα από το οποίο επιλέγεται το αρχείο που θα αποτελέσει το ρεύμα δεδομένων καθώς και ο ρυθμός άφιξής του στο σύστημα. Με αυτόν τον τρόπο αυξάνεται η ευελιξία και η προσαρμοστικότητα της εφαρμογής ως προς τις επιθυμίες του χρήστη για ποικιλία των διαχειρίσιμων δεδομένων και των συνθηκών επεξεργασίας. Οι φόρμες σχεδιασμού και υποβολής των ερωτημάτων διαρκείας αποτελούν μία εξίσου σημαντική λειτουργία που διαθέτει η εφαρμογή. Ο χρήστης είναι σε θέση να διατυπώσει ένα ερώτημα διαρκείας μέσω από το γραφικό περιβάλλον χρησιμοποιώντας την κατάλληλη φόρμα σχεδιασμού και στη συνέχεια να παρακολουθεί τα παραγόμενα αποτελέσματα σε ειδικά διαμορφωμένους πίνακες. Το περιβάλλον διασύνδεσης είναι αυτό που αναλαμβάνει την πραγματική υποβολή των ερωτημάτων στο Σύστημα ιαχείρισης Ρευμάτων εδομένων, τη λήψη αποτελεσμάτων από αυτό καθώς και την προβολή τους. Τα ερωτήματα διαρκείας αν και έχουν παρόμοια σύνταξη, μπορεί να παρουσιάζουν διαφορετικές σχεδιαστικές ανάγκες όσο αναφορά τη διατύπωση των κατηγορημάτων τους. Αυτός είναι και ο λόγος παροχής διάφορων φορμών σύνταξης ερωτημάτων. Συγκεκριμένα, διατίθεται μία απλή φόρμα για το σχεδιασμό γενικότερων ερωτημάτων, μία με σχεδιαστικά εργαλεία που χρησιμοποιείται όταν υπάρχουν χωρικά κατηγορήματα (επιλογή περιοχής) και μία για τη διατύπωση του ερωτήματος του εγγύτερου γείτονα. Επιπλέον, κάθε φόρμα εφοδιάζεται με ένα πίνακα που ενημερώνεται δυναμικά και προβάλλει τα αποτελέσματα του ερωτήματος ακολουθώντας το ρυθμό παραγωγής τους. 'Όλες οι παραπάνω λειτουργίες συνδυάζονται με τέτοιο τρόπο ώστε η εφαρμογή να παρουσιάζεται σαν ένα ενιαίο σύνολο, παρόλο που αποτελείται από μονάδες πολύ διαφορετικής φύσης όπως το σύστημα διαχείρισης ρευμάτων δεδομένων και τον χάρτη. 39

52

53 Κεφάλαιο 5 Υλοποίηση 5.1 Προγραμματιστικά εργαλεία H εφαρμογή υλοποιήθηκε με την εκμετάλλευση αρκετά διαφορετικών τεχνολογιών. Η διαχείριση των χωροχρονικών ρευμάτων δεδομένων πραγματοποιείται από το TelegraphCQ, ένα πρωτότυπο Σύστημα ιαχείρισης Ρευμάτων εδομένων, που στηρίζεται στην PostgreSQL. Το TelegraphCQ έκδοση 0.2 alpha release ενσωματώθηκε στην έκδοση 7.3 της PosgreSQL την οποία παρείχε το λειτουργικό σύστημα Linux (Red Hat 9 Shrike release) όπου εγκαταστάθηκε. Η απεικόνιση των στατικών και δυναμικών δεδομένων γίνεται με χρήση των βιβλιοθηκών MapObjects (Java Edition 2.0) της ESRI και το περιβάλλον διεπαφής αναπτύχθηκε πάνω στις βιβλιοθήκες γραφικών της Java (Version 1.4.2). 5.2 TelegraphCQ Το TelegraphCQ αποτελεί μια νέα πρόταση που υλοποιήθηκε στο Πανεπιστήμιο Berkeley, η οποία επιχειρεί να ανταποκριθεί στις ανάγκες εφαρμογών μεγάλης κλίμακας δικτυακής φύσης που λειτουργούν σε ασταθείς συνθήκες και απαιτούν στενή διάδραση με τους χρήστες. Αντιμετωπίζει τα δεδομένα σαν ρεύματα των οποίων η επεξεργασία πραγματοποιείται με την εκτέλεση ερωτημάτων διαρκείας. Οι κύριοι λόγοι που επιλέχθηκε έναντι των άλλων προτεινόμενων Συστημάτων ιαχείρισης Ρευμάτων εδομένων (STREAM,Aurora) είναι: Η γλώσσα ερωταποκρίσεων του αποτελεί μια τροποποιημένη εκδοχή της SQL, με την οποία υπάρχει εκ των προτέρων εξοικείωση. Υποστηρίζει χωρικούς τύπους δεδομένων και χωρικές πράξεις, ιδιότητα που «κληρονομεί» από την PostgreSQL, πάνω στην οποία έχει αναπτυχθεί. Η δυνατότητα διαχείρισης χωρικής πληροφορίας σε συνδυασμό με το δυναμικό χαρακτήρα των ρευμάτων καθιστά δυνατή την απόδοση της πληροφορίας κίνησης μέσω των ρευμάτων τροχιάς. 41

54 Έχει σχεδιαστεί με έμφαση στην ευελιξία και στην προσαρμοστικότητα, που είναι ιδιαίτερα ωφέλιμες κατά την παρακολούθηση κίνησης (Η περιγραφή που ακολουθεί βασίστηκε στο CCD+03) Ανάγκη για προσαρμοστικότητα Υπάρχει μια σειρά αιτιών που καθιστούν τα παραδοσιακά Συστήματα διαχείρισης Βάσεων εδομένων ανεπαρκή και που οδηγούν στην ανάπτυξη των Συστημάτων ιαχείρισης Ρευμάτων εδομένων. Οι σημαντικότερες από αυτές είναι: Ρεύματα δεδομένων. Τα δεδομένα δε βρίσκονται στατικά αποθηκευμένα στο δίσκο απ' όπου μπορούν να ανακληθούν κατά βούληση, αλλά εισέρχονται στο σύστημα με την μορφή ρευμάτων. Συνεπώς το σύστημα επεξεργασίας δεν είναι σε θέση να διευθύνει τον χειρισμό των δεδομένων παρά αρκείται στο να αντιδράσει όσο το δυνατόν αποτελεσματικότερα στην άφιξή τους. Επίσης, δεν είναι δυνατή η έγκυρη προετοιμασία στατιστικών στοιχείων σχετικών με τα δεδομένα ώστε να διευκολυνθεί η εκτέλεση των ερωτημάτων. Τέλος, σημαντικό ρόλο παίζει και η χρονική διάταξη των στοιχείων των ρευμάτων η οποία οδηγεί σε σημαντικές τροποποιήσεις στη σύνταξη των ερωτημάτων. Ερωτήματα διαρκείας. Τα ερωτήματα διαρκείας είναι συνεχώς ενεργά και λειτουργούν ως φίλτρα στα εισερχόμενα δεδομένα. Στα παραδοσιακά συστήματα ένα νέο ερώτημα απευθύνεται σε ένα σύνολο αποθηκευμένων δεδομένων, ενώ εδώ τα εισερχόμενα δεδομένα απευθύνονται σε ένα σύνολο προϋπαρχόντων ερωτημάτων διαρκείας. Το απεριόριστο μέγεθος των ρευμάτων απαιτεί την τροποποίηση τελεστών όπως των συναθροιστικών (COUNT,MAX,MIN, κλπ), την εισαγωγή μηχανισμών που περιορίζουν το μέγεθος των προς επεξεργασία δεδομένων (παράθυρα), ενώ επιβάλλει την εισαγωγή της έννοιας της προσέγγισης στην παραγωγή των απαντήσεων. Ακόμη, επειδή τα ερωτήματα μπορεί να παραμείνουν ενεργά για μεγάλα χρονικά διαστήματα, θα πρέπει να ανταποκρίνονται σε αλλαγές του φόρτου εργασίας, του ρυθμού άφιξης και των χαρακτηριστικών των δεδομένων. Κοινή επεξεργασία. Ο πιθανά μεγάλος αριθμός ενεργών ερωτημάτων διαρκείας σε συνδυασμό με την ανάγκη εξαγωγής αποτελεσμάτων σε πραγματικό χρόνο, οδηγεί στην ανάπτυξη μηχανισμών που να επιτρέπουν την κοινή επεξεργασία δεδομένων. ηλαδή το κοινό τμήμα επεξεργασίας των ερωτημάτων πραγματοποιείται μόνο μια φορά για τα ίδια δεδομένα. Επίσης, θα πρέπει το σύστημα να χειρίζεται αποτελεσματικά την ασύγχρονη υποβολή, αναστολή και τροποποίηση των ερωτημάτων διαρκείας. Απρόβλεπτες συνθήκες άφιξης. Το περιβάλλον όπου χρησιμοποιούνται συνήθως ρεύματα δεδομένων είναι αρκετά ευάλωτο σε απώλειες δεδομένων που οφείλονται σε σφάλματα συσκευών ή μετάδοσης. Συνεπώς ο ρυθμός άφιξης δεδομένων στο σύστημα δεν είναι προβλέψιμος Τεχνολογικό υπόβαθρο Το TelegraphCQ αποτελεί μέρος ενός ευρύτερου project που ξεκίνησε στο Πανεπιστήμιο του Berkeley το Αρχικά, αναπτύχθηκε το Σύστημα Telegraph, στη σχεδίαση του οποίου δόθηκε ιδιαίτερη βαρύτητα στην προσαρμοστικότητα της επεξεργασίας. Επιθυμείται η δυνατότητα αντιμετώπισης μεταβολών προερχόμενων από απαιτήσεις των χρηστών ή αστάθειες των δικτύων μετάδοσης δεδομένων. Στη συνέχεια, υλοποιήθηκαν τα Συστήματα CACQ και Psoup που επεκτείνουν το Telegraph ώστε να υποστηρίζεται η κοινή επεξεργασία μεταξύ ρευμάτων δεδομένων, χωρίς να εγκαταλείπεται ο αρχικός στόχος για ευελιξία και προσαρμοστικότητα. Οι βασικές αδυναμίες τους είναι: 42

55 1 Περιορισμός στον όγκο των δεδομένων προς επεξεργασία ώστε να χωρούν στην κυρίως μνήμη. 2 εν προβλέπεται η χρονοδρομολόγηση ή μοίρασμα της επεξεργασίας για ερωτήματα με μικρή επικάλυψη. 3 εν υποστηρίζουν την έννοια της ποιότητας υπηρεσιών (Quality of Service) ώστε να ανταποκρίνονται ανάλογα στους περιορισμούς των πόρων. 4 εν προσφέρουν τη δυνατότητα επιλογής λιγότερης ή περισσότερης προσαρμοστικότητας, ώστε να ρυθμίζεται το κόστος στην επεξεργασία που αυτή συνεπάγεται. Το TelegraphCQ είναι μεταγενέστερο και καλείται να ξεπεράσει αυτές τις αδυναμίες Βασικά δομικά συστατικά του Συστήματος Telegraph Η επεξεργασία δεδομένων στο Telegraph πραγματοποιείται από μια σειρά τελεστών ή οντοτήτων οι οποίες καταναλώνουν και παράγουν πλειάδες. Συνεπώς η επεξεργασία παίρνει την μορφή ροής δεδομένων καθώς αυτά ανταλλάσσονται μεταξύ των διαφόρων οντοτήτων σύγχρονα (push) ή ασύγχρονα (pull). Η διαδικασία αυτή πυροδοτείται είτε μέσω περιστασιακών ερωτημάτων (ad-hoc queries) των χρηστών είτε από προκαθορισμένα πλάνα επεξεργασίας. Εικόνα 5.1:Αρχιτεκτονική του Telegraph (Πηγή: [CCD+03]) Τύποι οντοτήτων του Telegraph Το Telegraph αποτελείται από τρεις βασικούς τύπους οντοτήτων (Εικόνα 5.1): 1 Οντότητες πρόσβασης και αποθήκευσης οι οποίες πραγματοποιούν τη διασύνδεση με τις εξωτερικές πηγές δεδομένων. Επιπλέον, φροντίζουν να κρύβουν από το σύστημα τα προβλήματα που παρουσιάζονται κατά την μετάδοση, αποθηκεύοντας προσωρινά τα δεδομένα. Ονομάζονται wrappers και μπορούν να χρησιμοποιηθούν ως HTML/XML screen scrapers( Tess ), ως αντιπρόσωποι για την μεταφορά δεδομένων μέσω δικτύων peer-to-peer( TeleNap ) αλλά και για την ανάγνωση τοπικών αρχείων του συστήματος. 2 Οντότητες εκτέλεσης ερωτημάτων. Η επεξεργασία ερωτημάτων στο Telegraph επιτυγχάνεται με τη δρομολόγηση πλειάδων μεταξύ των διαφόρων οντοτήτων επεξεργασίας. Οι τελευταίες αποτελούν εκδόσεις των κλασικών σχεσιακών τελεστών όπως επιλογή (SELECT), προβολή(project), σύνδεση (JOIN) με τη διαφορά ότι είναι διασωληνωμένες (pipelined) και μη ανασχετικές (non-blocking), ενώ σε αυτές περιλαμβάνεται και μία νέα, η SteM. 43

56 3 Οντότητες δυναμικής δρομολόγησης πλειάδων. Η εκτέλεση ερωτημάτων στο Telegraph δε βασίζεται σε κάποιο προκαθορισμένο πλάνο εκτέλεσης, αλλά πραγματοποιείται από οντότητες που δρομολογούν πλειάδες βάσει των εκάστοτε συνθηκών, με δυνατότητες δυναμικής αναπροσαρμογής και ενώ τα ερωτήματα εξακολουθούν να είναι ενεργά. Οι οντότητες αυτές απλώς παράγουν και καταναλώνουν πλειάδες όπως και οι υπόλοιπες, μόνο που ο ρόλος τους είναι η δρομολόγηση των δεδομένων. Οι βασικότερες είναι οι Eddies, οι οποίοι κατευθύνουν τις πλειάδες στους κατάλληλες οντότητες εκτέλεσης ερωτημάτων, ο Juggle που πραγματοποιεί δυναμική αναδιάταξη των δεδομένων, ενώ ο Flux φροντίζει για τη δρομολόγηση πλειάδων μεταξύ μηχανημάτων μιας συστάδας (cluster) υπολογιστών όταν η επεξεργασία γίνεται παράλληλα. Η διασύνδεση των παραπάνω οντοτήτων γίνεται μέσω της μονάδας Fjords Ο ρόλος των Eddies και SteMs στην προσαρμοστικότητα της επεξεργασίας Μια οντότητα Eddy συνδέεται με ένα σύνολο άλλων οντοτήτων και ο ρόλος της είναι να δρομολογεί πλειάδες σε αυτές ακολουθώντας κάποιο πλάνο δρομολόγησης. Το σύνολο των συνδεόμενων οντοτήτων μπορεί να μεταβάλλεται, όπως επίσης και το πλάνο δρομολόγησης, καθώς ο Eddy είναι σε θέση να παρακολουθεί τη συμπεριφορά και απόδοση κάθε συνδεόμενης οντότητας. Η επεξεργασία μίας πλειάδας από μια οντότητα μπορεί να οδηγήσει στην επιστροφή της πλειάδας στον Eddy ή και στη δημιουργία νέων πλειάδων. Ο Eddy αποβάλλει μια πλειάδα όταν αυτή περάσει από όλες τις συνδεόμενες οντότητες. Αυτή η διαδικασία επιβάλλει την απόδοση ενός πεδίου «κατάστασης» σε κάθε πλειάδα, η οποία υποδεικνύει το σύνολο των οντοτήτων που έχει επισκεφθεί. Το σύνολο των συνδεόμενων οντοτήτων στον Eddy μπορεί να αποτελείται από οποιοδήποτε αριθμό και είδος οντοτήτων, ακόμη και από άλλους Eddies. Η οντότητα SteM (State Module) χρησιμοποιείται σαν ένας προσωρινός χώρος αποθήκευσης ομογενών πλειάδων, ο οποίος πραγματοποιεί το μισό μέρος της λειτουργίας του παραδοσιακού τελεστή σύνδεσης (join). Υποστηρίζει λειτουργίες εισαγωγής (insert), αναζήτησης (probe), ενίοτε και διαγραφής (delete). Όταν μία πλειάδα δρομολογείται σε μία οντότητα SteM, είτε εισάγεται σε αυτή αν ικανοποιεί κάποια συνθήκη κατασκευής είτε συνδυάζεται με τις ήδη αποθηκευμένες ώστε να επιστραφούν τα ζευγάρια τους που ικανοποιούν ένα δοσμένο κατηγόρημα. Η χρήση ευρετηρίων στις μονάδες SteM επιταχύνει την παραπάνω διαδικασία. Με τη συνδυασμένη χρήση οντοτήτων Eddies και SteMs μπορεί να επιτευχθεί η υλοποίηση ενός ευπροσάρμοστου τελεστή σύνδεσης μεταξύ ρευμάτων Fjords, η μονάδα διασύνδεσης μεταξύ των οντοτήτων Η μονάδα Fjords πραγματοποιεί τη διασύνδεση των διάφορων οντοτήτων για το σχηματισμό ενός πλάνου εκτέλεσης. Η μεγαλύτερη προσφορά και καινοτομία που παρουσιάζει είναι ότι επιτρέπει διάφορους συνδυασμούς ασύγχρονης και σύγχρονης σύνδεσης μεταξύ τους. Το μεγαλύτερο πρόβλημα στη συνεργασία μονάδων επεξεργασίας δεδομένων είναι οι διαφορετικοί ρυθμοί παραγωγής και κατανάλωσης πλειάδων από την καθεμιά. Η μονάδα Fjords το παρακάμπτει χρησιμοποιώντας διάφορων ειδών ουρές μεταξύ των οντοτήτων, οι οποίες ρυθμίζουν τον τρόπο διασύνδεσης Κλιμάκωση μέσω της μονάδας Flux Η κλιμάκωση (scalability) αποτελεί ένα μείζον θέμα για τα συστήματα επεξεργασίας ροών δεδομένων. Η παραδοσιακή προσέγγιση ακολουθεί τον οριζόντιο καταμερισμό των τελεστών επεξεργασίας στα μηχανήματα μιας συστάδας, με τη ροή των δεδομένων να αποτελεί το συνδετικό 44

57 τους ιστό. Παρά ταύτα, σε ένα δυναμικό περιβάλλον σαν αυτά στα οποία απευθύνεται το Telegraph, οι τελεστές πρέπει να προσαρμόζουν δυναμικά την κατανομή τόσο της εσωτερική τους κατάστασης όσο και των ενδιάμεσων ρευμάτων δεδομένων, ανάλογα με τις μεταβολές των συνθηκών. Ο ανακαταμερισμός είναι συνήθως μια δύσκολη και απαιτητική διαδικασία την οποία η μονάδα Flux επιδιώκει να πραγματοποιήσει. Η λειτουργία της είναι να παρεμβάλλεται μεταξύ οντοτήτων παραγωγών καταναλωτών, ρυθμίζοντας τη ροή των δεδομένων και τη διαδικασία δρομολόγησης. Ουσιαστικά επεκτείνει την υπάρχουσα μονάδα Exchange, με τη διαφορά ότι επιτρέπει την εξισορρόπηση του καταμερισμού εργασίας (load-balancing) και την ανοχή σε σφάλματα (fault tolerance) Αρχικά Συστήματα υποστήριξης ερωτημάτων διαρκείας CACQ. Αποτέλεσε την πρώτο Σύστημα βασισμένο στο Telegraph που υποστηρίζει την εκτέλεση ερωτημάτων διαρκείας. Η κύρια καινοτομία που πραγματοποιήθηκε για την ανάπτυξη του είναι η τροποποίηση της μονάδος Eddy ώστε να μπορεί να εκτελεί πολλαπλά ερωτήματα ταυτόχρονα. Ένα άλλο σημαντικό χαρακτηριστικό του είναι η χρήση ειδικών ευρετηρίων, των grouped filters σε συνδυασμό με τις μονάδες SteMs για την αύξηση της αποτελεσματικότητας στην επεξεργασία. Θεωρείται ότι ένα ερώτημα μπορεί να διασπαστεί σε κριτήρια που παίρνουν απαντήσεις μόνο δύο τιμών (boolean factors). Κάθε κριτήριο που αφορά μία μεταβλητή μπορεί να αντιστοιχιστεί σε ένα grouped filter ενώ κριτήρια περισσότερων μεταβλητών σε μία SteM. PSoup. Το PSoup επεκτείνει το CACQ προς δύο κατευθύνσεις: 1) Επιτρέπει την πρόσβαση σε ιστορικά δεδομένα, 2) υποστηρίζει τη λειτουργία εκτός σύνδεσης, δηλαδή διαχωρίζει την παραγωγή των αποτελεσμάτων από τη λήψη τους. Η βασική ιδέα πίσω από το PSoup είναι η θεώρηση ερωτημάτων και δεδομένων ως ισότιμα. Η άφιξη νέων δεδομένων πυροδοτεί την εκτέλεση ενεργών ερωτημάτων, ενώ με την υποβολή νέων ερωτημάτων γίνεται πρόσβαση σε ιστορικά δεδομένα. Η εκτέλεση των ερωτημάτων πραγματοποιείται ως σύνδεση μεταξύ αυτών και των δεδομένων (Εικόνα 5.2). Τα αποτελέσματα υλοποιούνται συνεχώς και διατηρούντα μέχρι να ζητηθούν ρητά. Εικόνα 5.2: Psoup (Πηγή: [CCD+03]) Κύρια χαρακτηριστικά του TelegraphCQ Το TelegraphCQ σχεδιάστηκε για να συμπληρώσει τα προηγούμενα Συστήματα στους εξής τομείς: χρονοδρομολόγηση και διαχείριση πόρων για πολλαπλά ερωτήματα 45

58 υποστήριξη για out-of-core δεδομένα διαβάθμιση στην προσαρμοστικότητα δυναμική επιλογή ποιότητας υπηρεσιών (QoS) παράλληλη και κατανεμημένη επεξεργασία σε συστάδες υπολογιστών Παράθυρα Το TelegraphCQ υποστηρίζει την εκτέλεση ερωτημάτων διαρκείας σε οποιονδήποτε συνδυασμό ρευμάτων δεδομένων και στατικών πινάκων. Καθώς τα ρεύματα ενδέχεται να έχουν απεριόριστο μέγεθος, λειτουργίες όπως η σύνδεση (join) είναι πολύ δύσκολο να πραγματοποιηθούν αποτελεσματικά. Η εισαγωγή παραθύρων δίνει μια λύση σε αυτό το πρόβλημα, καθώς απομονώνει τμήματα των ρευμάτων δεδομένων ώστε να συμμετέχει ένα ορισμένο μέρος τους στον υπολογισμό των απαντήσεων κάθε φορά. Οι μηχανισμοί παραθύρων εφαρμόζονται στα δεδομένα που έχουν ήδη φτάσει αλλά και σε αυτά που αναμένονται μελλοντικά. Επίσης παρέχει ευέλικτους μηχανισμούς για τη λήψη των αποτελεσμάτων, υποστηρίζοντας τόσο την άμεση εξαγωγή τους στον χρήστη (push) του CACQ, όσο και την παρουσίασή τους κατά βούληση (pull) του PSoup. Στο TelegraphCQ, το παράθυρο που εφαρμόζεται πάνω σε ένα ρεύμα δεδομένων, ορίζει το σύνολο των πλειάδων που θα συμμετέχουν στον υπολογισμό της απάντησης του ερωτήματος. Με την εκτέλεση του ερωτήματος στα δεδομένα του παραθύρου προκύπτει ένα σύνολο αποτελεσμάτων. Η συνολική απάντηση του παρουσιάζεται στον χρήστη σαν μια ακολουθία αποτελεσμάτων, με κάθε ένα να συσχετίζεται με μια συγκεκριμένη χρονική στιγμή. Ο χρόνος μπορεί να θεωρηθεί ίδιος με το φυσικό (physical), ή να οριστεί σαν μια ακολουθία αριθμημένων πλειάδων (logical). Οι δυο βασικοί τύποι παραθύρων είναι : 1.Κυλιόμενο παράθυρο (sliding window), το παλιότερο και το νεότερο άκρο του μετακινούνται προς τα εμπρός με την άφιξη νέων δεδομένων. 2.Παράθυρο χρονικού ορόσημου (landmark window), το παλιότερο άκρο του είναι σταθερό, ενώ το νεότερο προχωράει προς τα εμπρός με την άφιξη νέων δεδομένων. Το TelegraphCQ υποστηρίζει και τους δύο τύπους παραθύρων, καθώς και άλλους γενικότερους, μέσω ενός κατασκευαστή επαναληπτικού βρόχου(for-loop) με συνθήκη. Ο χρησιμοποιούμενος τύπος παραθύρων επηρεάζει σημαντικά τις απαιτήσεις επεξεργασίας, το σχεδιασμό του επεξεργαστή ερωτημάτων και τον τρόπο κατανομής των πόρων. Τα κυριότερα θέματα προς αντιμετώπιση είναι: 1 Η επιλογή του λογικού (αύξων αριθμός πλειάδας) ή του φυσικού χρονοσήμου (πχ. δευτερόλεπτα). Στην πρώτη περίπτωση οι απαιτήσεις μνήμης είναι γνωστές, ενώ στη δεύτερη όχι. 2 Το είδος παραθύρου που χρησιμοποιείται στο ερώτημα. Παραδείγματος χάριν, για ένα ερώτημα με ένα συναθροιστικό τελεστή όπως MAX, ο υπολογισμός της απάντησης επιτυγχάνεται με την επαναλαμβανόμενη σύγκριση της με τα νεοαφιχθέντα δεδομένα όταν το παράθυρο είναι χρονικού οροσήμου, ενώ όταν είναι κυλιόμενο απαιτείται για την εξαγωγή της, η διατήρηση όλων των δεδομένων που εμπίπτουν στο παράθυρο. 46

59 3 Τέλος, σημαντικός είναι και ο καθορισμός της απόστασης μεταξύ των διαδοχικών παραθύρων (hop size), αφού σε περίπτωση που είναι μεγαλύτερη από το μέγεθος του παραθύρου ενδέχεται να παραληφθούν δεδομένα κατά την εκτέλεση του ερωτήματος Σχεδιασμός του συστήματος Η υλοποίηση του TelegraphCQ πραγματοποιήθηκε με χρήση των C/C++. Ο κυριότερος λόγος που προτιμήθηκαν έναντι της Java, είναι ότι επέτρεψαν την ανάπτυξη του συστήματος πάνω στον προϋπάρχοντα κώδικα της PostgreSQL. Αν και το TelegraphCQ είναι σημαντικά πιο διαφορετικό από τους παραδοσιακούς μηχανισμούς εκτέλεσης ερωτημάτων, θεωρήθηκε σκόπιμη η επαναχρησιμοποίηση έτοιμων μονάδων επεξεργασίας όπου αυτό ήταν δυνατό. Το μοντέλο επεξεργασίας της PostgreSQL δημιουργεί μια διεργασία για κάθε σύνδεση μέσω του Postmaster. Αυτή περιλαμβάνει έναν Listener, ο οποίος ανταποκρίνεται στις αιτήσεις του χρήστη και να επιστρέφει αποτελέσματα σε αυτόν και έναν Executor ερωτημάτων, που εκτελεί τα ερωτήματα που υποβάλει ο χρήστης, αφού γίνει προηγουμένως η κατάλληλη προεργασία (parsing, optimization) και τοποθετηθούν στο πλάνο εκτέλεσης. Οι δομές δεδομένων που είναι κοινές για τις διεργασίες τοποθετούνται στην κοινή μνήμη. Τα μέρη της PostgreSQL τα οποία χρησιμοποιούνται με ελάχιστες αλλαγές στο TelegraphCQ είναι τα : Postmaster, Listener, System Catalog, Query Parser, Optimizer. Οι κυριότερες καινοτομίες του αφορούν την υποστήριξη ρευμάτων δεδομένων, ερωτημάτων διαρκείας, την κοινή επεξεργασία και την προσαρμοστικότητα. Ένα καίριο σχεδιαστικό ζήτημα ήταν η χρήση νημάτων. Η απόδοση νέας διεργασίας εξυπηρέτησης σε κάθε νέα σύνδεση όπως πραγματοποιείται στην PostgreSQL δεν είναι ασφαλής (thread-safe), ενώ η χρήση πολλαπλών νημάτων θεωρείται βασικό χαρακτηριστικό του TelegraphCQ. Τελικά αποφασίστηκε η υιοθέτηση του υπάρχοντος μοντέλου διεργασιών στα τμήματα που επαναχρησιμοποιούνται, ενώ το μοντέλο πολλαπλών νημάτων (multi-threading) ακολουθείται μόνο σε νέα τμήματα. Όπως φαίνεται στην Εικόνα 5.3 οι βασικές διεργασίες είναι τρεις, και είναι αυτές που βρίσκονται σε ελλειπτικά πλαίσια. Η δεξιότερη καλείται FrontEnd, δημιουργείται σε κάθε νέα σύνδεση. έχεται τις αιτήσεις για πολλαπλά ερωτήματα διαρκείας από τον χρήστη και τα εντάσσει σε ένα προσαρμοζόμενο σχέδιο εκτέλεσης. Το τελευταίο τοποθετείται σε μια ουρά πλάνων εκτέλεσης (QPQueue) που βρίσκεται στην κοινή μνήμη και απ όπου θα ληφθούν για να εκτελεστούν από τον Executor. Η διεργασία wrapper αναλαμβάνει τις λειτουργίες μεταφοράς δεδομένων στο σύστημα από τις πηγές τους Η μονάδα εκτέλεσης ερωτημάτων στο TeleraphCQ Ένα πρόβλημα που ανακύπτει είναι η χρήση νημάτων στην εκτέλεση ερωτημάτων, ούτως ώστε να επιτυγχάνεται προσαρμοστικότητα με μικρό κόστος. Θεωρητικά, θα μπορούσε να χρησιμοποιηθεί μια διεργασία για όλα τα ερωτήματα, με την οντότητα Eddy να λειτουργεί σαν ένας γενικότερος χρονοδρομολογητής. Κάτι τέτοιο δε θα ήταν αποδοτικό, αφού η οντότητα Eddy δεν έχει σχεδιαστεί γι αυτό το σκοπό. Από την άλλη, η χρήση διαφορετικού νήματος για την εκτέλεση κάθε ερωτήματος είναι ιδιαίτερα αντιοικονομική, αν και η ύπαρξη πολλαπλών νημάτων είναι επιθυμητή για την εκμετάλλευση των δυνατοτήτων της παράλληλης επεξεργασίας. Η λύση που ακολουθείται είναι η δημιουργία «Αντικειμένων εκτέλεσης» (Execution Objects) σε κάθε ένα από τα οποία αποδίδεται ένα ξεχωριστό νήμα. Τα τελευταία αποτελούνται από έναν χρονοδρομολογητή, ουρές συμβάντων και από ένα σύνολο «Μονάδων διεκπεραίωσης» (Dispatch units), οι οποίες αντιπροσωπεύουν οντότητες εργασίας που πραγματοποιούνται στο σύστημα και που μπορούν να εκτελεστούν βάσει ενός κοινού πλάνου χρονοδρομολόγησης. Η επεξεργασία των μονάδων διεκπεραίωσης μπορεί να πάρει να είναι μία από τις παρακάτω διαδικασίες: 47

60 Εικόνα 5.3: Αρχιτεκτονική του TelegraphCQ (Πηγή: [CCD+03]) 1.Ένα παραδοσιακό πλάνο εκτέλεσης της PostgreSQL με τον κλασικό επεξεργαστή ερωτημάτων. 2.Ένα πλάνο εκτέλεσης με έναν Eddy και τελεστές Fjords. 3. Ένα πλάνο εκτέλεσης σαν το παραπάνω με τη διαφορά ότι θα αναφέρεται σε ένα ερώτημα διαρκείας με κοινή επεξεργασία. Βασικός παράγοντας επιτυχίας της παραπάνω προσέγγισης είναι ο διαχωρισμός των ερωτημάτων σε ομάδες ανάλογα με τα ρεύματα και τους πίνακες δεδομένων πάνω στους οποίους εκτελούνται, ώστε να γίνεται όσο το δυνατόν αποτελεσματικότερα η κοινή επεξεργασία τους Πρόσβαση στα δεδομένα Με την χρήση του μηχανισμού των wrappers, η πρόσβαση στα νεοαφιχθέντα δεδομένα θυμίζει αρκετά αυτή σε παρελθοντικά ή ακόμη και σε στατικά δεδομένα. Καθώς η λήψη δεδομένων μπορεί να προκαλέσει αναστολή των υπόλοιπων λειτουργιών του συστήματος, υλοποιείται σε μια ξεχωριστή διεργασία. Οι πηγές δεδομένων μπορούν να πυροδοτούνται είτε από το σύστημα όπως στις παραδοσιακές βάσεις δεδομένων (pull sources), είτε από μόνες τους (push sources). Ο wrapper μπορεί να επιλέξει τη σύνδεσή του με αυτές, ενώ σε αντίθετη περίπτωση η πηγή θα πρέπει να συνδεθεί σε μια γνωστή θύρα απ' όπου «ακούει» ο wrapper. Οι streamers είναι ένα εργαλείο της διεργασίας των wrappers που δίνουν στα εισερχόμενα ρεύματα δεδομένων την μορφή πλειάδων, ώστε να είναι επεξεργάσιμα από τον εκτελεστή ερωτημάτων Επεκτάσεις του TelegraphCQ Μελλοντικές βελτιώσεις του TelegraphCQ θα μπορούσαν να είναι: Ο καθορισμός του απαιτούμενου βαθμού επικάλυψης επεξεργασίας στην ομαδοποίηση των ερωτημάτων. 48

61 Η δυνατότητα προσδιορισμού της απαιτούμενης προσαρμοστικότητας, καθώς η δρομολόγηση ανά πλειάδα σε περιπτώσεις όπου υπάρχει ενημέρωση για το κόστος πληροφορίας αποδεικνύεται «ακριβή». Οι απαιτήσεις από την μνήμη του συστήματος για τις διάφορες λειτουργίες είναι συχνά αντικρουόμενες (πχ. Αποθήκευση καταιγισμού δεδομένων και διατήρηση ιστορικών δεδομένων). Συνεπώς θεωρείται αναγκαία η δυνατότητα απόδοσης προτεραιότητας σε αυτές που έχουν την μεγαλύτερη αξία για τον χρήστη. Ιδιαίτερα χρήσιμη θεωρείται η ανάπτυξη μηχανισμού λήψης αποτελεσμάτων αντίστοιχων δυνατοτήτων με αυτού της λήψης δεδομένων. Τέλος, επιθυμείται η αποτελεσματικότερη κατανομή και παραλληλισμός της επεξεργασίας ώστε να πραγματοποιείται αποδοτικότερα. 5.3 PostgreSQL Η PostgreSQL είναι ένα αντικειμενο-σχεσιακό Σύστημα ιαχείρισης Βάσεων εδομένων (ORDBMS) που υλοποιήθηκε πάνω στην POSTGRES, έκδοση 4.2. Η τελευταία αναπτύχθηκε στο Πανεπιστήμιο Berkeley. Η POSTGRES εισήγαγε πολλές ιδέες και χαρακτηριστικά τα οποία έγιναν διαθέσιμα σε αντίστοιχα εμπορικά συστήματα πολύ αργότερα. Η PostgreSQL αποτελεί μια open-source επέκταση του αρχικού κώδικα. Υποστηρίζει τις γλώσσες SQL92 και SQL99. Κάποια από τα σημαντικότερα χαρακτηριστικά της είναι: εκτέλεση σύνθετων ερωτημάτων υποστήριξη ξένων κλειδιών υποστήριξη σκανδαλιστών (triggers) υλοποίηση όψεων (views) ακεραιότητα δοσοληψιών (transactional integrity) έλεγχος στην ταυτόχρονη χρήση πολλαπλών εκδόσεων (multiversion concurrency control). Επίσης, η PostgreSQL μπορεί να διευρυνθεί και από τους χρήστες με πολλούς τρόπους. Για παράδειγμα μπορεί κανείς να ορίσει: τύπους δεδομένων συναρτήσεις τελεστές συναθροιστικές συναρτήσεις μεθόδους διαδικαστικές γλώσσες (procedural languages) Τέλος, καθώς παρέχεται με ελεύθερη άδεια, επιτρέπεται η χρήση, τροποποίηση και διανομή της από οποιονδήποτε και για οποιονδήποτε λόγο. 49

62 5.4 MapObjects Η έκδοση MapObjects της ESRI σε Java αποτελεί μια συλλογή ισχυρών εργαλείων που μπορούν να χρησιμοποιηθούν είτε από την πλευρά του χρήστη είτε από την πλευρά του εξυπηρετητή, για τη δημιουργία εφαρμογών GIS (Geographic Information System). Παρέχεται η δυνατότητα εκμετάλλευσης αυτούσιων προγραμματιστικών οντοτήτων για γρήγορη ανάπτυξη αλλά και η πρόσβαση σε μεμονωμένες λειτουργίες για αμεσότερο έλεγχο. Οι εφαρμογές που αναπτύσσονται με τη χρήση των MapObjects μπορούν να πραγματοποιούν απεικόνιση γεωγραφικής πληροφορίας διαφόρων τύπων, πράξεις αναζήτησης και ανάκλησης δεδομένων και παρουσίαση τους σε διάφορα ιεραρχικά επίπεδα (λ.χ. μέσω διαδικτύου, server-side). 5.5 Java Η Java είναι μια αντικειμενοστραφής γλώσσα, ασφαλής και ανεξάρτητη πλατφόρμας. Αντικειμενοστραφής προγραμματισμός (object-oriented programming) είναι μια μεθοδολογία ανάπτυξης λογισμικού, σύμφωνα με την οποία ένα πρόγραμμα γίνεται αντιληπτό σαν μια ομάδα αντικειμένων που συνεργάζονται μεταξύ τους. Τα αντικείμενα δημιουργούνται βάσει προτύπων που καλούνται κλάσεις, τα οποία περιέχουν τα απαραίτητα δεδομένα και μεθόδους. Η ανεξαρτησία πλατφόρμας είναι η δυνατότητα ενός προγράμματος να εκτελείται χωρίς τροποποίηση σε διάφορα περιβάλλοντα υπολογιστών. Τα προγράμματα Java μεταγλωττίζονται σε μια μορφή που καλείται bytecode, που εκτελείται από κάθε λειτουργικό σύστημα, λογισμικό ή συσκευή με διερμηνευτή Java. H Java φροντίζει για τη δέσμευση και αποδέσμευση μνήμης, δεν υποστηρίζει την χρήση δεικτών και επιτρέπει την μονή κληρονομικότητα. Τα βασικότερα χαρακτηριστικά της είναι: Απλότητα Ουδετερότητα στην χρησιμοποιούμενη αρχιτεκτονική(architecture neutral) Ότι είναι αντικειμενοστραφής (Object oriented) Μεταφερσιμότητα υνατότητα κατανεμημένης επεξεργασίας Υψηλή απόδοση Interpreted Υποστήριξη πολλαπλών νημάτων (multithreading) Σταθερότητα υναμικότητα Ασφάλεια 50

63 5.6 Βασικές προγραμματιστικές οντότητες Η γλώσσα προγραμματισμού Java αποτέλεσε το εργαλείο ανάπτυξης του γραφικού περιβάλλοντος διεπαφής αλλά και την πλατφόρμα υλοποίησης των χρησιμοποιούμενων βιβλιοθηκών GIS. Συνεπώς, οι προγραμματιστικές οντότητες της εφαρμογής είναι κλάσεις(classes) της γλώσσας Java. Οι βασικότερες κλάσεις που απαρτίζουν την εφαρμογή είναι: Connect (κλάση σύνδεσης) BaseQuery (κεντρικό ερώτημα) ContinuousQueries (ερωτήματα διαρκείας) Map (χάρτης) MainMap (κεντρική κλάση εφαρμογής) Η Connect φροντίζει για τη διασύνδεση του γραφικού περιβάλλοντος με το Σ Ρ TelegraphCQ. Ο χάρτης είναι το σύνολο των κλάσεων GIS που πραγματοποιούν την οπτικοποίηση της χωρικής πληροφορίας και τις γραφικές λειτουργίες πάνω στα οπτικοποιημένα δεδομένα. Το κεντρικό ερώτημα (BaseQuery) είναι αυτό που τροφοδοτεί τον χάρτη με την πληροφορία κίνησης, επιλέγοντας από το ρεύμα τροχιών την τρέχουσα θέση και ταυτότητα κάθε αντικειμένου ανά χρονική στιγμή. Τα ερωτήματα διαρκείας είναι οι κλάσεις που εκτελούν την υποβολή των ερωτημάτων διαρκείας στο TelegraphCQ μέσω από το γραφικό περιβάλλον διασύνδεσης και την μετέπειτα προβολή των αποτελεσμάτων τους. Τέλος, η κεντρική κλάση είναι αυτή που υλοποιεί το μεγαλύτερο μέρος του γραφικού περιβάλλοντος διεπαφής και ο υποδοχέας όλων των υπολοίπων κλάσεων. Επίσης, μεταξύ των στιγμιοτύπων των παραπάνω οντοτήτων υπάρχουν επιμέρους αλληλοσυσχετίσεις και συνεργασίες καθώς οι περισσότερες επιτελούν βασικές λειτουργίες, απαραίτητες σε διάφορες φάσεις κατά την περίοδο εκτέλεσης της εφαρμογής. Στη συνέχεια αναπτύσσεται λεπτομέρως ο ρόλος και τα βασικά χαρακτηριστικά καθεμιάς από τις βασικές προγραμματιστικές οντότητες. 5.7 Connect Ένας από τους σημαντικότερους στόχους της εφαρμογής είναι η διατύπωση και υποβολή ερωτημάτων διαρκείας. Το σύστημα διαχείρισης ρευμάτων δέχεται ερωτήματα διαρκείας μέσα από συνδέσεις σε έναν ειδικό εξυπηρετητή της postgresql, τον postmaster. Μία σύνδεση μπορεί να υποστηρίξει μόνο ένα ενεργό ερώτημα κάθε φορά. Σε μια εφαρμογή λοιπόν που επιθυμείται η ταυτόχρονη εκτέλεση πολλαπλών ερωτημάτων, είναι απαραίτητη η δημιουργία πολλών συνδέσεων με το TelegraphCQ, μία για κάθε ερώτημα. Αυτή την ανάγκη καλύπτει η κλάση Connect: κάθε στιγμιότυπό της επιστρέφει μια σύνδεση με το Σύστημα ιαχείρισης Ρευμάτων εδομένων (Εικόνα 5.5). Το άλλο βασικό χαρακτηριστικό της, είναι ότι σε σχέση με τον χρήστη πραγματοποιείται στο «παρασκήνιο». Κάθε φορά που ο χρήστης υποβάλλει κάποιο ερώτημα δημιουργείται ένα στιγμιότυπο της Connect και επομένως μία νέα σύνδεση με τον postmaster. Η παραπάνω διαδικασία γίνεται μέσα από κώδικα JAVA, χωρίς την ανάγκη για περαιτέρω ανάμιξη του χρήστη. Το σημαντικό σε αυτήν την ιδιότητα, είναι ότι παρακάμπτει μια «άκομψη» και χρονοβόρα διαδικασία που θα έπρεπε να ακολουθήσει κανείς μέχρι τώρα: 51

64 GUI Γραφικό περιβάλλον διεπαφής Φόρμα υποβολής ερωτημάτων Connect TelegraphCQ Σύστημα Διαχείρισης Ρευμάτων Δεδομένων Εικόνα 5.5: Λειτουργία της κλάσης Connect: Σύνδεση γραφικού περιβάλλοντος διεπαφής με το Σύστημα ιαχείρισης Ρευμάτων εδομένων 1. να ανοίξει ένα παράθυρο εντολών 2. να μπει σαν χρήστης στην postgresql 3. στη συνέχεια να κάνει login σαν χρήστης στον ειδικό postmaster του TelegraphCQ. Η κλάση Connect, χρησιμοποιεί έναν οδηγό μεταγλώττισης (org.postgres.sql driver) που παρέχει η Postgres, ώστε η εκτέλεση των παραπάνω να γίνεται «αθέατα» μέσα από ένα πρόγραμμα σε JAVA. Με τη δημιουργία ενός στιγμιοτύπου της Connect είναι διαθέσημο ένα αντικείμενο τύπου σύνδεσης (connection). Το στιγμιότυπο σύνδεσης χρησιμοποιείται για τη δημιουργία ενός στιγμιοτύπου της κλάσης statement. Η statement παρέχει όλες τις συναρτήσεις που χρειάζονται για την υποβολή SQL εντολών στη βάση. Οι σημαντικότερες μέθοδοι της statement αφορούν την εκτέλεση ερωτήματος, τη λήψη των αποτελεσμάτων του όπως επίσης και τις βασικές πράξεις σε μιά βάση (insert, update, delete). Η συνδιασμένη χρήση των Connect και statement αντικαθιστούν την χρήση παραθύρων εντολών και επιτρέπουν στον χρήστη να έρχεται σε επαφή μόνο με το γραφικό περιβάλλον της εφαρμογής για να ενεργοποιήσει ένα ερώτημα διαρκείας. Συνεπώς, η Connect είναι είναι απαράιτητη για την αυτάρκεια, την ελαστικότητα και τη συνολικότητα της εφαρμογής. 5.8 BaseQuery H BaseQuery είναι η κλάση που παρέχει στο χάρτη τα δεδομένα για την οπτικοποίηση των ρευμάτων τροχιάς των κινούμενων αντικειμένων. Συγκεκριμένα, ρόλος της είναι (Εικόνα 5.6): η διατύπωση και υποβολή του βασικού ερωτήματος στο TelegraphCQ η λήψη των αποτελεσμάτων του και αποστολή τους στον χάρτη προς απεικόνιση. Το βασικό ερώτημα της εφαρμογής είναι απλό, αμετάβλητο και ουσιαστικό: επιστρέφει τη θέση και την ταυτότητα ενός κινούμενου αντικειμένου όπως επίσης και την χρονική στιγμή της «δειγματοληψίας». Αποτελεί το μόνο προκατασκευασμένο ερώτημα διαρκείας της εφαρμογής. ρα σαν φίλτρο στο ρεύμα τροχιών και συγκρατεί τις απαραίτητες για την απεικόνισή του πληροφορίες. Η κλάση BaseQuery περιέχει τη διατύπωση του ερωτήματος σε SQL: SELECT vid,x,y,tcqtime FROM network.vehicles V1 WINDOW V1 ['1 second'] Αφού συνδεθεί με το TelegraphCQ μέσω της Connect και αποκτήσει ένα στιγμιότυπο της κλάσης statement, είναι σε θέση να υποβάλλει το ερώτημα. Στη συνέχεια, χρησιμοποιεί το στιγμιότυπο της statement και αποκτά ένα δείκτη στα αποτελέσματα του ερωτήματος. Η κλάση υλοποιείται σαν νήμα (thread), ώστε να μην «μπλοκάρει» την εφαρμογή με την εκτέλεσή της. Κάθε φορά που το νήμα της ενεργοποιείται μετά την υποβολή του ερωτήματος, φέρνει με το δείκτη την αμέσως επόμενη πλειάδα από το σύνολο των αποτελεσμάτων και τη στέλνει μέσω μιας 52

65 Υποβολή Υποβολή GUI, Γραφικό περιβάλλον διεπαφής Αποστολή ρεύματος Ενεργοποίηση BaseQuery BaseQuery Connect TelegraphCQ Αποτελέσματα Αποτελέσματα Αποτελέσματα Χάρτης - Οπτικοποίηση ρευμάτων τροχιών Εικόνα 5.6: Περιγραφή λειτουργίας της κλάσης BaseQuery συνάρτησης (addremovepoint) στην κεντρική κλάση (MainMap) για να οπτικοποιηθεί. Στη συνέχεια το νήμα της BaseQuery πέφτει σε σύντομη περίοδο αδράνειας. Η addremovepoint συνδέει το στιγμιότυπο της BaseQuery με την ανανέωση του χάρτη. Καθώς και η ανανέωση των δυναμικών στρωμάτων του χάρτη γίνεται με νήματα για την εξοικονόμηση πόρων, υπάρχει περίπτωση εμφάνισης προβλημάτων χρονισμού ανάμεσα στα δύο νήματα, τα οποία αντιμετωπίζονται με τη χρήση flags (μεταβλητών τύπου boolean). 5.9 ContinuousQueries εν υπάρχει κλάση ContinuousQueries. Χρησιμοποιείται εδώ για να ομαδοποιήσει όλες τις κλάσεις που διαθέτει η εφαρμογή για τη σύνταξη, την υποβολή και την προβολή των αποτελεσμάτων των διάφορων ερωτημάτων διαρκείας. Αυτές οι κλάσεις χωρίζονται σε τρεις κατηγορίες: γενικά ερωτήματα - Generic Queries ερωτήματα με επιλογή περιοχής - Range Queries ερωτήματα εγγύτερου γείτονα - Nearest Neighbor Queries Όλα τα παραπάνω είναι ερωτήματα διαρκείας. Για κάθε τύπο ερωτήματος συνεργάζονται δύο κλάσεις, μία που αποτελεί μέρος του περιβάλλοντος διεπαφής (έστω QueryInput), η οποία προσφέρει στον χρήστη τα κατάλληλα γραφικά εργαλεία σύνταξης του ερωτήματος και εποπτείας των αποτελεσμάτων του και μία δεύτερη (έστω Query) που δρα στο «παρασκήνιο» όσο αναφορά τον χρήστη και φροντίζει για την επικοινωνία του γραφικού περιβάλλοντος διεπαφής με το Σύστημα ιαχείρισης Ρευμάτων TelegraphCQ. Τα στιγμιότυπα της κλάσης QueryInput αποτελούν ένα σημαντικό μέρος του γραφικού περιβάλλοντος διεπαφής παρέχοντας τις εξής δυνατότητες: Φόρμα σύνταξης του ερωτήματος. Πίνακα προβολής των αποτελεσμάτων, με δυναμική ανανέωση. Υλοποιείται σε σε ένα ξεχωριστό παράθυρο από αυτό της κυρίως εφαρμογής και διαθέτει δύο καρτέλες, δηλαδή δύο διαφορετικές περιοχές, από τις οποίες μπορεί να επιλέξει κανείς να παρακολουθεί μόνο την μία. Στη μία καρτέλα βρίσκεται μια φόρμα όπου ο χρήστης συντάσσει το ερώτημα που τον ενδιαφέρει και η οποία συνδυάζεται με επιλογές υποβολής, παύσης και 53

66 αποστολής των αποτελεσμάτων του ερωτήματος σε αρχείο. Στην άλλη καρτέλα τοποθετείται ένας πίνακας ο οποίο προβάλλει τα ως τη δεδομένη στιγμή αποτελέσματα του ερωτήματος με τα πιο πρόσφατα να τοποθετούνται στην κορυφή. Ο πίνακας αποτελεσμάτων δημιουργείται μόλις - υποβληθεί το ερώτημα. Ο χρήστης μπορεί να εξετάζει είτε τη φόρμα σχεδιασμού του ερωτήματος είτε τον πίνακα αποτελεσμάτων του. Η κατηγοριοποίηση των ερωτημάτων γίνεται κυρίως για τη διαφορετικότητα που παρουσιάζουν ως προς τις σχεδιαστικές τους ανάγκες. Η κεντρική κλάση μπορεί να δημιουργήσει πολλαπλά στιγμιότυπα της QueryInput με βασικό περιορισμό τις επιπτώσεις της ταυτόχρονης εκτέλεσης τους στους πόρους του συστήματος και στην μείωση απόδοσης της εφαρμογής, αν ως μέτρο της απόδοσης θεωρηθεί ο χρόνος απόκρισης του γραφικού περιβάλλοντος στις ενέργειες του χρήστη και στο ρυθμό εισαγωγής των δεδομένων. Η QueryInput παρέχει ακόμη τις εξής δυνατότητες: Παύση κι επανεκκίνηση του ερωτήματος όπου περιέχει. Τροποποίηση της διατύπωσής του ( εκτός από τα ορίσματα του τελεστή επιλογής SELECT). Αποστολή των αποτελεσμάτων σε αρχείο Φόρμες σύνταξης ερωτημάτων Τα γενικά ερωτήματα (GenericQueryInput) διαθέτουν μόνο ένα απλό πεδίο κειμένου όπου μπορεί να διατυπωθεί το ερώτημα (Εικόνα 5.17). Υπάρχουν ερωτήματα διαρκείας με χωρικά κατηγορήματα όπου συμμετέχουν στατικά γεωγραφικά δεδομένα (λχ. Περιοχές). Καθώς στην εφαρμογή αυτού του είδους η πληροφορία δε διατίθεται με προσβάσιμο από τη σχεσιακή βάση τρόπο, προκύπτουν κάποιες δυσκολίες στην έκφραση, αφού το στατικό χωρικό αντικείμενο θα πρέπει να διατυπωθεί με λεπτομέρεια από τον χρήστη την ώρα σχεδιασμού του ερωτήματος. Το πρόβλημα αυτό αντιμετωπίζεται με μια σειρά γραφικών σχεδιαστικών εργαλείων, τα οποία επιτρέπουν την επιλογή του στατικού χωρικού δεδομένου άμεσα από το γραφικό στρώμα που απεικονίζει την πληροφορία. Η κλάση της οποίας τα στιγμιότυπα διαθέτουν τα παραπάνω εργαλεία και που προσφέρονται για τη διατύπωση ερωτημάτων με στατικά χωρικά αντικείμενα, είναι η RangeQueryInput (Εικόνα 5.18). Αποτελεί μια παραλλαγή της GenericQueryInput συνδυάζοντας το απλό πεδίο κειμένου, που εξακολουθεί να είναι απαραίτητο, με μια σειρά από σχεδιαστικά εργαλεία. Όταν αποφασιστεί η υποβολή του ερωτήματος, οι συντεταγμένες του γραφικού αντικείμενου που επιλέχθηκε μετατρέπονται από pixel στις συντεταγμένες πραγματικού κόσμου όπως ορίζεται από τις ιδιότητες του χάρτη και προστίθενται στο ερώτημα μαζί με τον κατάλληλο χωρικό τελεστή της PostgreSQL(Συνήθως INSIDE). Μια ευκολία που παρέχεται από την εφαρμογή είναι ο επανασχεδιασμός των ορίων της επιλεγμένης περιοχής για σύντομο χρονικό διάστημα. Ο επανασχεδιασμός πραγματοποιείται μετά από επιλογή του χρήστη και είναι αρκετά χρήσιμος όσο αναφορά στην εποπτεία των αποτελεσμάτων. Επισημαίνεται ότι και οι δυο διαφορετικοί τύποι σχεδιασμού ερωτημάτων μπορούν να χρησιμοποιηθούν για τα ίδια ακριβώς ερωτήματα. Ο διαχωρισμός τους επιβάλλεται μόνο για λόγους διευκόλυνσης της σύνταξης. Η τελευταία κατηγορία, αυτή του εγγύτερου γείτονα (NNQueryInput), είναι αρκετά διαφορετική από τις δύο προηγούμενες. Σε αυτήν, το ερώτημα είναι προσχεδιασμένο και ο χρήστης καλείται να συμπληρώσει μόνο μια παράμετρο προτού το υποβάλει: την ταυτότητα του κινούμενου 54

67 GUI, Γραφικό περιβάλλον διεπαφής Χάρτης QueryInput Σχεδιασμός ερωτήματος, προβολή αποτελεσμάτων Ενεργοποίηση Αποτελέσματα Query Υποβολή στο TelegraphCQ, λήψη αποτελεσμάτων Υποβολή Connect Υποβολή TelegraphCQ Αποτελέσματα Αποτελέσματα Εικόνα 5.7: Υποβολή, εκτέλεση ερωτήματος αντικείμενου με βάση το οποίο θα γίνει η εύρεση του εγγύτερου γείτονα (Εικόνα 5.19). Συνεπώς η δομή της φόρμας σχεδιασμού αυτού του ερωτήματος έχει εντελώς διαφορετικό ύφος από αυτό των δύο προηγούμενων Οι διαφορές της με τις υπόλοιπες δε σταματούν εδώ και θα αναλυθούν στη συνέχεια Πίνακες προβολής αποτελεσμάτων Η εμφάνιση των αποτελεσμάτων γίνεται για όλες τις κατηγορίες ερωτημάτων με τον ίδιο τρόπο: τοποθετούνται σε έναν πίνακα αποτελεσμάτων, ο οποίος ενσωματώνεται στο παράθυρο διατύπωσης του ερωτήματος (Εικόνα 5.20). Το πιο πρόσφατο αποτέλεσμα τοποθετείται στην κορυφή του πίνακα, αναγκάζοντας όλα τα προηγούμενα να μετακινηθούν μια θέση προς τα κάτω. Για την υλοποίηση αυτού του μέρους χρησιμοποιούνται δευτερεύουσες κλάσεις(tableresults, TableResultsModel) στις οποίες ορίζεται η μορφή του πίνακα και ο τρόπος με τον οποίο γίνονται οι πράξεις εισαγωγής και διαγραφής από αυτόν Υποβολή ερωτημάτων στο TelegraphCQ Η περιγραφή που προηγήθηκε αφορά τις κλάσεις όπου συμμετέχουν στο γραφικό περιβάλλον με σκοπό τη διατύπωση ερωτημάτων διαρκείας και την εποπτεία των απαντήσεων αλλά η πραγματική υποβολή των ερωτημάτων στο TelegraphCQ και η λήψη των αποτελεσμάτων δε γίνεται από αυτές. Για το σκοπό αυτό χρησιμοποιούνται δευτερεύουσες κλάσεις που δρουν στο παρασκήνιο και φροντίζουν τη σύνδεση του γραφικού περιβάλλοντος με το σύστημα επεξεργασίας ρευμάτων. Είναι οι GenericQuery, RangeQuery, NNQuery. Όταν γίνεται αναφορά στις κοινές τους ιδιότητες, χρησιμοποιείται το όνομα Query το οποίο αντιπροσωπεύει και τις τρεις. Μόλις ο χρήστης επιλέξει την υποβολή του ερωτήματος που σύνταξε στη φόρμα, η QueryInput δημιουργεί ένα στιγμιότυπο της Query. Αυτό παίρνει σαν όρισμα την πρόταση του ερωτήματος σε SQL που σχεδίασε ο χρήστης στη φόρμα. Αρχικά δημιουργεί μια σύνδεση με το TelegraphCQ με ένα στιγμιότυπο της Connect. Αφού του επιστραφεί ένα στιγμιότυπο της κλάσης statement, υποβάλλει το ερώτημα στη βάση δεδομένων(εικόνα 5.7). Όπως και στη BaseQuery, έτσι και εδώ τα αποτελέσματα λαμβάνονται με τη βοήθεια κερσόρων, (ή δεικτών) στο σύνολο των αποτελεσμάτων. Από την υποβολή του ερωτήματος και μετά, η Query δρα ως νήμα (thread) το οποίο παίρνει τις παραγόμενες πλειάδες του αποτελέσματος διαδοχικά και της στέλνει στην QueryInput με κατάλληλη συνάρτηση για να αναπαρασταθούν στον πίνακα αποτελεσμάτων. 55

68 GUI Γραφικό περιβάλλον διασύνδεσης NNQueryInput Ταξινόμηση αποστάσεων, Επιλογή εγγύτερου γείτονα, Προβολή αποτελεσμάτων Ενεργοποίηση NNQuery Επιλογή αποστάσεων Επιλογή περιεχομένου του network.distances Αποτελέσματα TelegraphCQ Ενεργοποίηση StreamDistanceQuery Σύνδεση ρευμάτων, υπολογισμός αποστάσεων Δημιουργία ρεύματος network.distances Εικόνα 5.8: Ερώτημα εγγύτερου γείτονα Ανάμεσα σε δύο διαδοχικές λήψεις πλειάδων το νήμα αδρανεί για ένα μικρό διάστημα. Η χρήση νημάτων είναι απαραίτητη σε αυτές τις απαιτητικές συνθήκες επεξεργασίας, ώστε να εξαλείφεται όσο γίνεται η πιθανότητα κατάχρησης των πόρων από μία λειτουργία είτε αυτή είναι λήψη αποτελεσμάτων είτε είναι η ανανέωση του χάρτη Υλοποίηση ερωτήματος εγγύτερου γείτονα (Νearest Νeighbor) Η υλοποίηση του ερωτήματος του εγγύτερου γείτονα χρειάζεται αναλυτική περιγραφή, διότι διαφέρει σημαντικά από αυτή των υπολοίπων (Generic,Range). Υπενθυμίζεται ότι το TelegraphCQ δεν υποστηρίζει προς το παρόν εμφωλευμένες συναρτήσεις, σύνδεση ενός ρεύματος με τον εαυτό του και παρουσιάζει σημαντικούς περιορισμούς στην εκτέλεση συναθροιστικών συναρτήσεων. Συνεπώς το ερώτημα του εγγύτερου γείτονα δεν είναι άμεσα εκτελέσιμο. Επειδή αποτελεί ένα από τα ερωτήματα με τη μεγαλύτερη βαρύτητα για τα χωροχρονικά δεδομένα, χρειάστηκε η συμβολή της JAVA για να παρακαμφθούν τα παραπάνω προβλήματα και να ενσωματωθεί το ερώτημα στην εφαρμογή. Αναλυτικά, το ερώτημα του εγγύτερου γείτονα «χωρίζεται» σε δύο μικρότερα: Ένα ερώτημα που πραγματοποιεί τη σύνδεση του ρεύματος των οχημάτων με τον εαυτό του (self-join) συνδέοντας δύο ξεχωριστά ρεύματα αλλά πανομοιότυπα. Το ερώτημα επιστρέφει την απόσταση και την ταυτότητα κάθε οχήματος από το ζητούμενο, ανά χρονική στιγμή. Ένα ερώτημα που επιλέγει όλες τις πλειάδες μιας σχέσης τύπου ρεύματος, η οποία περιέχει τα αποτελέσματα του προηγούμενου ερωτήματος. Η εκτέλεση του ερωτήματος του εγγύτερου γείτονα πραγματοποιείται ως εξής: Αρχικά, γίνεται η επιλογή του ζητούμενου αντικειμένου, μέσα από τη φόρμα του NNQueryInput. Με την επιλογή της υποβολής ερωτήματος δημιουργούνται δυο δευτερεύουσες κλάσεις, η StreamDistanceQuery και η NNQuery. Η πρώτη διατυπώνει και υποβάλει το TelegraphCQ το ερώτημα που υπολογίζει τις αποστάσεις, ενώ η δεύτερη αυτό που τις επιλέγει. Ουσιαστικά η StreamDistanceQuery «γεμίζει» με τα αποτελέσματά της μια σχέση τύπου ρεύματος (STREAM) κατασκευασμένη ώστε να περιέχει ρεύματα αποστάσεων (network.distances). Η NNQuery επιλέγει το περιεχόμενο αυτής της σχέσης με τις αποστάσεις και με τη σειρά της στέλνει τις δικές τις απαντήσεις στην NNQueryInput. Η NNQueryInput δεν αρκείται στο να προβάλλει τα αποτελέσματα, αλλά συμμετέχει και στην παραγωγή τους. Συγκεκριμένα, πραγματοποιεί το τελευταίο στάδιο για την εξαγωγή της 56

69 απάντησης, πραγματοποιώντας τη διάταξη στις πλειάδες που της αποστέλλονται και επιλέγοντας να προβάλει αυτή με την μικρότερη τιμή απόστασης. Το ερώτημα του εγγύτερου γείτονα είναι πολύ σημαντικό για τα χωρικά και επομένως και για τα χωροχρονικά δεδομένα και επομένως η επίτευξη της αποτελεσματικής εκτέλεσης του, δεδομένης της φύσης των δεδομένων και των ανεπαρκειών του TelegraphCQ, προσδίδει μεγαλύτερη βαρύτητα στην εφαρμογή. Στην παραπάνω γραφική απεικόνιση (Εικόνα 5.8) παραλήφθηκε το αντικείμενο που δημιουργεί τη σύνδεση (Connect) που μεσολαβεί ανάμεσα στο TelegraphCQ και τις κλάσεις NNQuery και StreamDistanceQuery Map (χάρτης) Η οπτικοποίηση χωρικών πληροφοριών και η διάθεση χαρτογραφικών εργαλείων στηρίζεται στη βιβλιοθήκη κλάσεων GIS των MapObjects και υλοποιούνται μέσα στην κυρίως κλάση, τη MainMap. Σε αυτή την ενότητα γίνεται η περιγραφή των βασικότερων λειτουργιών και χαρακτηριστικών σχετικών με την απεικόνιση χωρικής χωροχρονικής πληροφορίας Απεικόνιση στατικών χωρικών δεδομένων Η κλάση Map είναι από τις σημαντικότερες της εφαρμογής και είναι αυτή που υλοποιεί τον χάρτη. Η απεικόνιση του χάρτη επιτυγχάνεται με τη χρήση γραφικών στρωμάτων που οπτικοποιούν χωρική πληροφορία, η οποία βρίσκεται σε ειδικά αρχεία. Κάθε στρώμα γραφικών (layer) απεικονίζει δεδομένα ενός συγκεκριμένου τύπου με τέτοιο τρόπο ώστε η αναπαράσταση να είναι σαφής και αισθητικά αποδεκτή. Τα τρία στρώματα στατικών δεδομένων που απαρτίζουν τον χάρτη είναι τα εξής (Εικόνα 5.9): τα όρια-έκταση της περιοχής το οδικό δίκτυο τα ονόματα των σημαντικότερων συνοικιών ιατίθενται στο χρήστη γραφικά εργαλεία που του επιτρέπουν ανά πάσα στιγμή να αποφασίσει ποιο στρώμα ή στρώματα του χάρτη από τα παραπάνω θα απεικονίζεται Χαρτογραφικές λειτουργίες Στην κεντρική εφαρμογή δημιουργούνται στιγμιότυπα εργαλείων που επιτελούν χαρτογραφικές λειτουργίες όπως μεγέθυνση (zoom in), σμίκρυνση(zoom out), προβολή όλης της έκτασης (zoom to full extent), μετακίνηση του χάρτη (pan). Επίσης, σε συνδυασμό με τις ιδιότητες του χάρτη τοποθετείται στο παράθυρο της κεντρικής εφαρμογής ένα πλαίσιο κειμένου όπου αναγράφεται η τρέχουσα τιμή της κλίμακας, η οποία μπορεί να τροποποιηθεί. Ο χρήστης μπορεί να αλλάξει την κλιμακα με την οποία προβάλλεται ο χάρτης εισάγοντας σε αυτό το πλαίσο την επιθυμητή τιμή. Αυτές οι λειτουργίες διευκολύνουν σημαντικά στην εποπτεία του χάρτη, επιτρέποντας την παραμετροποίηση στο μέγεθος και εστίαση της περιοχής που παρακολουθείται. Το κεντρικό παράθυρο της εφαρμογής διαθέτει ένα ακόμη πλαίσιο, όπου παρουσιάζονται οι πραγματικές συντεταγμένες που αντιστοιχούν στη θέση του κέρσορα πάνω στον χάρτη. Αναλυτικά, οι συντεταγμένες του κέρσορα δίνονται σε pixel και στη συνέχεια μετατρέπονται μέσω μιας ειδικής συνάρτησης της κλάσης Map σε πραγματικές συντεταγμένες χρησιμοποιώντας την πληροφορία που δίνεται από τα αρχεία κατασκευής των στρωμάτων. 57

70 Εικόνα 5.9: Απεικόνιση στατικών χωρικών δεδομένων Απεικόνιση δυναμικών δεδομένων Με την έναρξη λήψης του πρώτου ρεύματος δεδομένων, δημιουργούνται δύο επιπλέον στρώματα στο χάρτη : ένα που περιέχει την πληροφορία της θέσης κάθε αντικειμένου και ένα με την πληροφορία της ως τώρα τροχιάς του. Τα δύο παραπάνω στρώματα προστίθενται στο χάρτη εμπλουτίζοντας το γραφικό του περιεχόμενο με τις οπτικές αναπαραστάσεις των θέσεων και των τροχιών των κινούμενων αντικειμένων. Η οπτική αναπαράσταση τους γίνεται με τις θέσεις να συμβολίζονται ως σημεία, ενώ για τις τροχιές χρησιμοποιείται ο συμβολισμός γραμμής. Επιπλέον, αυτά τα στρώματα έχουν μια πολύ σημαντική διαφορά από τα υπόλοιπα τρία που σχηματίζουν το χάρτη (έκταση, οδικό δίκτυο, ονόματα συνοικιών) : τα δεδομένα που περιέχουν δεν είναι στατικά, αλλά μεταβάλλονται δυναμικά ακολουθώντας το ρυθμό επεξεργασίας του ρεύματος. Συγκεκριμένα, ενώ τα άλλα στρώματα δημιουργούνται από ειδικού τύπου αρχεία, τα στρώματα των τοποθεσιών και των τροχιών σχηματίζονται από τα δεδομένα που προέρχονται από το ρεύμα τροχιών των αντικειμένων. Η πληροφορία που παρουσιάζουν είναι αυτή που επιστρέφεται από τα αποτελέσματα του ερωτήματος BaseQuery, το οποίο περιγράφηκε παραπάνω. Για το σκοπό αυτό η εφαρμογή συνδυάζει διάφορες δομές και συναρτήσεις των mapobjects που έχουν οριστεί για διαχείριση δυναμικών δεδομένων προς απεικόνιση, οι οποίες διαθέτουν μηχανισμούς συντήρησης, αναζήτησης, προσθήκης και διαγραφής χωρικών δεδομένων όπως η σημειακή θέση και η τροχιά. Οι κυριότερες από αυτές είναι η δομές Feature και FeatureClass. Η δομή Feature ορίζει μια οντότητα χωρικού αντικειμένου και περιέχει τα βασικά χαρακτηριστικά της. Η FeatureClass αποτελεί ένα σύνολο οντοτήτων τύπου Feature. Αναλυτικά, η Feature έχει τη μορφή πλειάδας και στην εφαρμογή χρησιμοποιούνται δύο διαφορετικά στιγμιότυπα της, ένα για τις τοποθεσίες κι ένα για τις τροχιές των κινούμενων αντικειμένων. 58

71 Το στιγμιότυπο για τις τοποθεσίες περιέχει μόνο ένα πεδίο : ένα γνώρισμα γεωμετρικού σημείου, όπως ορίζεται από τις καρτεσιανές συντεταγμένες του. Το Feature για τις τροχιές είναι λίγο πιο σύνθετο, καθώς περιέχει ένα ακόμη γνώρισμα: τον ακέραιο που αποτελεί την ταυτότητα του αντικειμένου. Το επιπλέον γνώρισμα στη δομή των τροχιών δίνεται γιατί εφαρμόζονται πάνω τους συναρτήσεις εύρεσης, οι οποίες χρησιμοποιούν αυτό το πεδίο. Θα μπορούσε να χρησιμοποιηθεί αυτή η δομή και για το στιγμιότυπο των τοποθεσιών, αλλά θα γινόταν άσκοπη κατανάλωση αποθηκευτικού χώρου και αύξηση πολυπλοκότητας. Το Feature των τροχιών περιέχει φυσικά και ένα χαρακτηριστικό γεωμετρικής γραμμής, το οποίο κατασκευάζεται από όλα τα σημεία που συμμετέχουν στην τροχιά κάθε αντικειμένου. Κάθε FeatureClass περιέχει χωρικά δεδομένα ενός μόνο τύπου Feature. Ο ένας τύπος Feature αφορά σημεία κι ο άλλος γραμμές. Συνεπώς, η μία FeatureClass αποθηκεύει τις τρέχουσες τοποθεσίες των κινούμενων αντικειμένων και η άλλη τις ως τώρα τροχιές τους. Για την οπτικοποίηση των δεδομένων που περιέχουν οι FeatureClass χρησιμοποιούνται ειδικά είδη γραφικών στρωμάτων του χάρτη (Εικόνα 5.10), κατάλληλα για δυναμική απεικόνιση (acetate layers): Ένα στρώμα για την απεικόνιση της FeatureClass με τις σημειακές θέσεις. Το σύμβολο που χρησιμοποιείται είναι μικρός κόκκινος κυκλικός δίσκος για κάθε θέση. Ένα στρώμα για την απεικόνιση της FeatureClass των τροχιών με γραφικό σύμβολο ένα μπλε γραμμικό τμήμα για κάθε τροχιά. Επομένως, η FeatureClass παίζει τον ίδιο ρόλο που παίζουν τα αρχεία με τα στατικά γεωγραφικά δεδομένα για την απεικόνιση των στατικών στρωμάτων του χάρτη. H FeatureClass αποδίδει σε κάθε Feature που εισάγεται σε αυτήν ένα αναγνωριστικό η τιμή του οποίου είναι ίδια με την ταυτότητα του κινούμενου αντικειμένου. Η ονοματοδότηση από τη FeatureClass διευκολύνει την επιλεκτική διαγραφή δεδομένων από αυτή. Εκτός από τη διαγραφή, είναι απαραίτητη και η ανάκληση των τιμών των δεδομένων που βρίσκονται μέσα στην εκάστοτε FeatureClass. Επειδή η τελευταία δεν παρέχει κάποιον ανάλογο μηχανισμό αναζήτησης κι ανάκλησης, εφαρμόζονται δύο διαφορετικές μέθοδοι προς αυτή την κατεύθυνση, ένας για τις τοποθεσίες κι ένας για τις τροχιές. Τα σημεία που αναπαριστούν τις τρέχουσες τοποθεσίες των αντικειμένων, αποθηκεύονται εκτός από τη FeatureClass και σε έναν πίνακα μεγέθους ίσου με το μέγιστο πλήθος των αντικειμένων. Η ταυτότητα που αποδίδεται σε κάθε αντικείμενο είναι ένας ακέραιος αριθμός με πεδίο τιμών από το 1 έως το μέγιστο πλήθος κινούμενων αντικειμένων (στο πλαίσιο της εφαρμογής, είναι 1000). Επομένως, μπορεί σε κάθε θέση του παραπάνω πίνακα να αντιστοιχιστεί μία τιμή ταυτότητας και σε αυτή τη θέση να καταχωρηθεί το γεωμετρικό σημείο που αναπαριστά την τρέχουσα τιμή της θέσης του αντικειμένου. Για την ανάκληση της θέσης αρκεί λοιπόν να ανατρέξει κανείς στη θέση του πίνακα με δείκτη την ταυτότητα του αντικειμένου. Η ανάκληση της τροχιάς πραγματοποιείται πολύ διαφορετικά. Γίνεται εκμετάλλευση του επιπρόσθετου πεδίου των Feature που περιέχουν την πληροφορία, το οποίο περιέχει την ταυτότητα. Τα Feature έχουν την μορφή πλειάδων, άρα μπορεί αν εφαρμοστεί στα περιεχόμενα της FeatureClass ένα ερώτημα που επιλέγει κάθε φορά το Feature με τη δοσμένη ταυτότητα. Αφού ανακληθεί το κατάλληλο Feature, μπορεί να γίνει η επεξεργασία του. ύο είναι οι κυρίως λόγοι που οδήγησαν στην χρήση διαφορετικών μεθόδων ανάκλησης για τις δύο FeatureClass: Η συντήρηση ενός πίνακα με τις ως τώρα τροχιές των κινούμενων αντικειμένων όπως και πράξεις όπως εισαγωγή διαγραφή σε κάθε ενημέρωση της FeatureClass θα ήταν υπερβολικά απαιτητική σε πόρους και θα καθυστερούσε σημαντικά όλο τον μηχανισμό 59

72 Εικόνα 5.10: Απεικόνιση δυναμικών χωρικών δεδομένων της οπτικοποίησης. Οι δομές που χρησιμοποιούνται παρέχουν χωρικά ευρετήρια και αποτρέπουν τις αλλεπάλληλες εισαγωγές διαγραφές. Η χρήση αντίστοιχου μηχανισμού ανάκλησης για τις σημειακές θέσεις αποδείχτηκε προβληματικός στην ενημέρωση και δεν επιτεύχθηκε η ανεύρεση της αιτίας. Ενώ η ανανέωση της καταχώρηση της FeatureClass για κάθε αντικείμενο γινόταν σωστά, οι προηγούμενες καταχωρήσεις εξακολουθούσαν να απεικονίζονται. Οι δομές των FeatureClass και Feature σε συνδυασμό με τους μηχανισμούς ανάκτησης δεδομένων προσδίδουν στον χάρτη την απαραίτητη δυναμική ώστε να ανταποκρίνεται στη φύση των δεδομένων τα οποία καλείται να απεικονίσει Μηχανισμός ανανέωσης γραφικών δυναμικών δεδομένων Μείζων ρόλο παίζει η μέθοδος (addremovepoint) η οποία αναλαμβάνει τη διαχείριση και τροφοδοσία του χάρτη με τα δεδομένα των ρευμάτων τροχιάς. Ουσιαστικά συνδέει το κεντρικό ερώτημα BaseQuery με τον χάρτη. Η addremovepoint καλείται κάθε φορά που η BaseQuery παραλαμβάνει μια νέα πλειάδα αποτελεσμάτων της, όπως αυτά προκύπτουν από το φιλτράρισμα της στο ρεύμα δεδομένων. Η λειτουργία της είναι να ενημερώνει τις δομές όπου συντηρούνται οι πληροφορίες για τα δύο δυναμικά στρώματα του χάρτη και κατ' επέκταση τον ίδιο τον χάρτη. Σε κάθε κλήση της, η συνάρτηση πραγματοποιεί τις εξής ενέργειες (Εικόνα 5.11): 1. χρησιμοποιεί την ταυτότητα του αντικειμένου και ανακτά από τον πίνακα όπου καταχωρούνται οι τρέχουσες τοποθεσίες την τελευταία καταχώρηση γι' αυτό το αντικείμενο. Η τιμή αυτή είναι πλέον παρωχημένη, αφού έφτασαν οι νέες συντεταγμένες της θέσης του οχήματος- αντικειμένου. Οπότε η τιμή αυτή αντικαθίσταται στον πίνακα από το νέο σημείο της τοποθεσίας. 2. Για τον ίδιο λόγο διαγράφεται το Feature με την ταυτότητα του αντικειμένου από την αντίστοιχη FeatureClass, καθώς η τελευταία πρέπει να περιέχει μόνο τις πιο πρόσφατες τοποθεσίες προς απεικόνιση. 60

73 BaseQuery Ταυτότητα, τρέχουσα θέση αντικειμένων Αποτελέσματα Εισαγωγή Νέα θέση Ανανέωση καταχώρησης FeatureClass Σημειακών θέσεων Πίνακας με τρέχουσες θέσεις κινούμενων αντικειμένων Νέο τμήμα τροχιάς Ανανέωση τροχιάς FeatureClass Τροχιών Εξαγωγή Προηγούμενη θέση Διαγραφή Χάρτης Εικόνα 5.11: Ανανέωση προβολής δυναμικών δεδομένων 3. Κατασκευάζεται νέο Feature με την ταυτότητα του αντικειμένου, στο οποίο εισάγονται οι συντεταγμένες την νέας τοποθεσίας του και προστίθεται στη FeatureClass των τοποθεσιών. 4. Κατασκευάζει το νέο τμήμα της τροχιάς του αντικειμένου από την αμέσως προηγούμενη τιμή της τοποθεσίας που εξήγαγε από τον πίνακα και από την νέα τιμή της, όπως αυτή λήφθηκε από την BaseQuery. 5. Εφαρμόζει στη FeatureClass ένα ερώτημα που επιστρέφει το Feature με την τροχιά του οχήματος, χρησιμοποιώντας σαν κριτήριο αναζήτησης την τιμή της ταυτότητας. 6. Τέλος ανανεώνει το πεδίο του Feature που περιέχει την τροχιά, προσθέτοντάς του το νέο τμήμα. Η παραπάνω διαδικασία επαναλαμβάνεται για κάθε νέα απάντηση που λαμβάνεται από το κεντρικό ερώτημα και είναι υπεύθυνη για την ανανέωση και τη συνέπεια των δυναμικών στρωμάτων του χάρτη, ως προς τα εισερχόμενα δεδομένα. Τέλος, η addremovepoint τοποθετεί το χρονόσημο που λαμβάνει από τη BaseQuery και το τοποθετεί σε ειδικό πλαίσιο του κεντρικού παραθύρου της εφαρμογής. Με αυτόν τον τρόπο εμπλουτίζονται οι εποπτικές δυνατότητες της εφαρμογής, αφού αναπαρίσταται το σημαντικότερο μέρος της εισερχόμενης πληροφορίας Επανεκκίνηση των γραφικών στρωμάτων των δυναμικών δεδομένων Μια άλλη μέθοδος (Refresh) που υλοποιείται με τις βιβλιοθήκες των MapObjects είναι αυτή που «καθαρίζει» από το χάρτη τα γραφικά αντικείμενα που αναπαριστούν τα δυναμικά 61

74 Εικόνα 5.12: Παρακολούθηση συγκεκριμένου αντικειμένου δεδομένα. Ουσιαστικά αυτή η μέθοδος διαγράφει το περιεχόμενο των δομών FeatureClass που χρησιμοποιούν τα ανανεώσιμα στρώματα του χάρτη από τις μέχρι τώρα καταχωρήσεις τους. Ιδιαίτερη προσοχή δίνεται στο συγχρονισμό των ενεργειών ανανέωσης και διαγραφής, επειδή υλοποιούνται σε διαφορετικά νήματα και ενδέχεται να χειρίζονται τα ίδια δεδομένα. Πρέπει λοιπόν να καθοριστεί η σειρά πρόσβασης σε αυτά, ώστε να αποφευχθούν ασυνέχειες. Αυτό γίνεται με χρήση μεταβλητών boolean, που προστατεύουν τα ευαίσθητα σημεία του κώδικα. Η λειτουργία «εκκαθάρισης» των στρωμάτων του χάρτη από τα δυναμικά δεδομένα είναι ιδιαίτερα χρήσιμη όταν αλλάζει το αρχείο του ρεύματος δεδομένων ή σε περιπτώσεις όπου διευκολύνει την εποπτεία. Η κλήση της μεθόδου είναι προσβάσιμη μέσα από το γραφικό περιβάλλον διεπαφής Παρακολούθηση συγκεκριμένων αντικειμένων (monitor) Συχνά, παρατηρείται η ανάγκη στενότερης παρακολούθησης κάποιων εκ των οχημάτων. Καθώς το εισερχόμενο ρεύμα δεδομένων ενδέχεται να περιέχει πληροφορία για περισσότερα από εκατό οχήματα, ο διαχωρισμός του επιθυμητού οχήματος από τα υπόλοιπα με γραφικό τρόπο είναι απαραίτητος. Για το σκοπό αυτό διατίθεται στην εφαρμογή η δυνατότητα χρήσης διαφορετικού γραφικού συμβόλου για τα οχήματα που χρειάζονται εντονότερη εποπτεία. Αναλυτικότερα, το περιβάλλον διεπαφής εφοδιάζεται με μια ακόμη φόρμα (Εικόνα 5.21), όπου ο χρήστης καλείται να συμπληρώσει την ταυτότητα του αντικειμένου το οποίο επιθυμεί να παρακολουθήσει. Στη συνέχεια, η σημειακή θέση του αντικειμένου παρουσιάζεται με ένα μικρό κυκλικό δίσκο χρώματος διαφορετικού χρώματος (Εικόνα 5.12). Η ξεχωριστή αναπαράσταση της σημειακής θέσης του αντικειμένου εξακολουθεί μέχρι ο χρήστης να αναιρέσει την επιλογή του. Η παρουσίαση των δεδομένων με διαφορετικό γραφικό προϋποθέτει την ύπαρξη ενός επιπλέον στρώματος στον χάρτη. Πράγματι, για το σκοπό αυτό δημιουργείται μία ακόμη FeatureClass, της οποίας μέλη είναι Feature τύπου σημείων τα οποία αντιστοιχούν στις τρέχουσες θέσεις των επιλεγμένων οχημάτων. Η FeatureClassMonitor, όπως λέγεται, ανανεώνεται όπως και η FeatureClass των κοινών σημειακών θέσεων, όποτε φτάνει μια πλειάδα που αφορά κάποιο από τα στοιχεία της από την addremovepoint. Σημειώνεται, πως για αισθητικούς λόγους (αλληλοκάλυψη γραφικών) το χωρικό αντικείμενο μιας σημειακής θέσης μπορεί να ανήκει μόνο σε μια από τις δύο FeatureClass σημείων. Τέλος, η FeatureClass συνδέεται με ένα στρώμα γραφικών που ανανεώνεται δυναμικά και στο οποίο αποδίδεται ο επιθυμητός συμβολισμός. 62

75 Μενού Γραμμή εργαλείων Πλαίσιο πληροφορίας Χάρτης Πλαίσια πληροφορίας Εικόνα 5.13: Κεντρικό παράθυρο εφαρμογής 5.11 MainMap Όλες οι λειτουργίες που αναλύθηκαν προηγουμένως όπως ο σχηματισμός και η συνεχής ανανέωση του χάρτη, ο σχεδιασμός και υποβολή ερωτημάτων διαρκείας, η σύνδεση με το TelegraphCQ χρειάζονται ένα κοινό πλαίσιο σύνδεσης και συντονισμού. Αυτό προσφέρει η κεντρική κλάση της εφαρμογής, MainMap, η οποία δημιουργεί τα στιγμιότυπα των σημαντικότερων κλάσεων όπως του χάρτη(map), του κεντρικού ερωτήματος (BaseQuery), των γενικότερων ερωτημάτων(queryinput) ενώ παράλληλα ορίζει και εκτελεί τις απαραίτητες μεθόδους για το συντονισμό τους (πχ. αddremovepoint). Η MainMap έχει δύο βασικές αποστολές : τη δημιουργία του περιβάλλοντος διεπαφής την ομαλή συνεργασία όλων των διαφορετικών τμημάτων της εφαρμογής Βασικές μονάδες του περιβάλλοντος διεπαφής Το κύριο μέσο γραφικής διασύνδεσης του χρήστη αποτελείται από ένα εξειδικευμένο παράθυρο (JFrame) το οποίο έχει το ρόλο του υποδοχέα όλων των υπόλοιπων γραφικών συστατικών της εφαρμογής (Εικόνα 5.13). Τα βασικά συστατικά του κεντρικού παραθύρου της εφαρμογής είναι: Ο χάρτης Ένα μενού Μια γραμμή εργαλείων Πλαίσια εμφάνισης πληροφορίας 63

76 Εικόνα 5.14: Αναπαράσταση εξέλιξης κίνησης Ο χάρτης Η κεντρική κλάση δημιουργεί το στιγμιότυπο της κλάσης του χάρτη, κατασκευάζει τα στρώματα στατικών χωρικών δεδομένων από τα αντίστοιχα αρχεία και τα προσθέτει σε αυτόν. Ακόμη, δημιουργεί τα δυναμικά στρώματα γραφικών και φροντίζει για την τροφοδοσία τους με δεδομένα από το ρεύμα τροχιών. Αξίζει να σημειωθεί ότι επειδή η ανανέωση των στρωμάτων γραφικών απαιτεί πολλούς πόρους από το σύστημα, η κεντρική κλάση φροντίζει να την υλοποιεί με νήμα (thread) το οποίο ενεργοποιεί περιοδικά. Επίσης ρυθμίζει τις διάφορες παραμέτρους της εμφάνισης του χάρτη, όπως τα γραφικά σύμβολα των στρωμάτων, τις μονάδες μέτρησης που χρησιμοποιούνται (Μέτρα), ορίζει τα χαρτογραφικά εργαλεία μεγέθυνσης, σμίκρυνσης, μετακίνησης και τα συνδέει με τον χάρτη. Τέλος, τοποθετεί όλα τα παραπάνω αντικείμενα στη θέση που τους αντιστοιχεί στο κεντρικό παράθυρο: τον χάρτη στο κέντρο του, να καταλαμβάνει την μεγαλύτερη επιφάνεια και τα χαρτογραφικά εργαλεία σε μια γραμμή εργαλείων αριστερά στο πάνω μέρος Το μενού Η γραμμή μενού που διατίθεται στο βόρειο τμήμα του κεντρικού παραθύρου αποσκοπεί στην διευκόλυνση της πρόσβασης του χρήστη σε καίριες υπηρεσίες της εφαρμογής. Η κατασκευή της έγινε με την εκμετάλλευση εργαλείων που παρέχει η JAVA (πακέτο javax.swing) τα οποία χρησιμοποιούνται ευρέως σε πλήθος εφαρμογών. Η γραμμή του μενού αποτελείται από τέσσερα αναπτυσσόμενα μενού, τα οποία ομαδοποιούν παρεμφερείς λειτουργίες: Μενού «Αρχείο» (File) Μενού «Eρώτημα» (Query) Μενού «Παρακολούθηση» (Monitor) Μενού «Βοήθεια»(Help) 64

77 Μενού «Αρχείο» (File) Το μενού «Αρχείο» συγκροτείται από γραφικά αντικείμενα τα οποία αντιστοιχούν στην ενεργοποίηση εργασιών που αφορούν το σύνολο της εφαρμογής και όχι κάποια μεμονωμένα αντικείμενα. Αυτά είναι: «Άνοιγμα πηγής» (Open Source) «Επιλογή τύπου ρεύματος» (Select Stream Mode) «Σ ύνδεση με το TelegraphCQ» (Connect to TelegraphCQ) «Αποσύνδεση» (Disconnect) «Έξοδος» (Exit) Η επιλογή «Άνοιγμα πηγής» (Open Source) εκκινεί μία από τις σημαντικότερες λειτουργίες και της οποίας οι επιπτώσεις επηρεάζουν όλα τα βασικά στοιχεία της εφαρμογής. Ο ρόλος της είναι η αποστολή ενός αρχείου στο σύστημα διαχείρισης ρευμάτων TelegraphCQ, το οποίο λαμβάνεται σαν ρεύμα δεδομένων. Η αποστολή γίνεται καλώντας εσωτερικά από το πρόγραμμα μια εντολή του συστήματος (cat file prorate.pl localhost 5533 csvwrapper1, network.vehicles1 +rate) η οποία στέλνει ένα απλό αρχείο το οποίο μετατρέπεται σε ρεύμα δεδομένων στο Σύστημα ιαχείρισης Ρευμάτων εδομένων. Ουσιαστικά προσομοιώνει μία πηγή δεδομένων και γίνεται μίμηση του push-model επεξεργασίας. Η επιλογή «Άνοιγμα πηγής» συνοδεύεται με μία φόρμα γραφικών (Εικόνα 5.15), στην οποία ο χρήστης καλείται να συμπληρώσει το όνομα του αρχείου που επιθυμεί να αποσταλεί (file) και έναν ακέραιο αριθμό, ο οποίος αντιστοιχεί στο ρυθμό αποστολής των δεδομένων και που συμβολίζει τον αριθμό πλειάδων που θα φτάνουν στο σύστημα επεξεργασίας ανά δευτερόλεπτο (rate). Η παραμετροποίηση στο ποιο αρχείο θα αποτελέσει το ρεύμα δεδομένων (Εικόνα 5.16) και στο ρυθμό αποστολής του είναι πολύ σημαντική γιατί προσδίδει ευελιξία στην εφαρμογή όσο αναφορά την επεξεργασία δεδομένων, επιτρέποντάς της να χειριστεί διαφορετικά μεγέθη δεδομένων και με διάφορους ρυθμούς. Με αυτόν τον τρόπο διευκολύνεται ο έλεγχος της συμπεριφοράς της εφαρμογής σε διάφορες συνθήκες φόρτου εργασίας, ενώ είναι γίνεται εφικτή η αντιστοίχση του χρόνου επεξεργασίας με τον πραγματικό χρόνο. Επίσης, ρυθμίζοντας κατάλληλα το ρυθμό άφιξης των δεδομένων, τα ρεύματα αποκτούν μια πιο «φυσική» υπόσταση, αφού θυμίζουν περισσότερο το αποτέλεσμα μιας δειγματοληψίας σε αντικείμενα του πραγματικού κόσμου και λιγότερο τον τεχνητό τρόπο παραγωγής τους από ένα προκατασκευασμένο αρχείο. Η αποστολή δεδομένων μπορεί να γίνει επανειλημμένα κατά την περίοδο λειτουργίας της εφαρμογής ενώ κάθε φορά μπορούν να χρησιμοποιηθούν διαφορετικές τιμές για τον ορισμό των παραπάνω μεγεθών (αρχείο ρεύματος, ρυθμός). Εικόνα 5.15: Φόρμα αποστολή αρχείου ρεύματος 65

78 Εικόνα 5.16: Αρχείο ρεύματος Κατά την περίοδο λειτουργίας της εφαρμογής συχνά παρουσιάζεται η ανάγκη μελέτηςσυσχετίσεων μεταξύ των οχημάτων, με κυριότερη αυτή του εγγύτερου γείτονα. Όπως έχει προαναφερθεί όμως, το TelegraphCQ παρουσιάζει αδυναμίες στην εκτέλεση σύνθετων ερωτημάτων και στη σύνδεση ενός στοιχείων του ίδιου ρεύματος. Για να παρακαμφθεί αυτή η δυσκολία, προσφέρεται στον χρήστη η Επιλογή τύπου ρεύματος (Select Stream Mode) η οποία αφορά το είδος του ρεύματος που θα σταλεί στο TelegraphCQ προς επεξεργασία. Προσφέρονται δύο τύποι αποστολής: Ένα ρεύμα τροχιάς κινούμενων αντικειμένων (single mode). ύο όμοια ρεύματα τροχιάς κινούμενων αντικειμένων (double mode). Όταν επιλεχθεί η αποστολή διπλού ρεύματος, τότε με την επιλογή «Άνοιγμα πηγής» στέλνονται στο TelegraphCQ δύο όμοια ρεύματα δεδομένων στα οποία μπορεί να εφαρμοστεί σύνδεση μεταξύ των στοιχείων τους, προσομοιώνοντας τη σύνδεση ενός ρεύματος με τον εαυτό του (self join) η οποία κανονικά δεν είναι εφικτή. Είναι ευνόητο βέβαια ότι με αυτή την επιλογή η ποσότητα πληροφορίας που διακινείται διπλασιάζεται και η κατανάλωση πόρων του συστήματος αυξάνεται κατά πολύ. Γι' αυτό το λόγο δίνεται η επιλογή στο χρήστη : με την αποστολή ενός ρεύματος στερείται την δυνατότητα εκτέλεσης ερωτημάτων που εμπεριέχουν σύνδεση ρεύματος με τον εαυτό του, αλλά γίνεται αποτελεσματικότερη χρήση των διατιθέμενων πόρων, ενώ το αντίστροφο συμβαίνει όταν επιλέξει την αποστολή διπλού ρεύματος. Σημειώνεται ότι προεπιλεγμένος είναι ο τύπος του ενός ρεύματος και ότι υποβολή του ερωτήματος εγγύτερου γείτονα δεν προσφέρεται αν δεν έχει επιλεγεί ο τύπος του διπλού ρεύματος. Τα στοιχεία «Σύνδεση με το TelegraphCQ» και «Αποσύνδεση» διαφοροποιούν την εκτέλεση του Βασικού ερωτήματος (BaseQuery) από την άφιξη των δεδομένων στο Σύστημα. Κατά συνέπεια και η οπτικοποίηση των δυναμικών δεδομένων στον χάρτη πραγματοποιείται μόνο εφ όσον ο χρήστης το επιλέξει ρητά. Επιλέγοντας «Σύνδεση με το TelegraphCQ» ενεργοποιείται το Βασικό ερώτημα και ενημερώνονται τα γραφικά στρώματα δυναμικών δεδομένων του χάρτη, τα οποία αναπαριστούν την πληροφορία κίνησης. Αντιθέτως, όταν επιλεχθεί το στοιχείο «Αποσύνδεση» το Βασικό ερώτημα απενεργοποιείται και η ανανέωση του χάρτη σταματά. Σημειώνεται πως η ύπαρξη ρεύματος τροχιών είναι απαραίτητη για την παροχή δυναμικών δεδομένων στον χάρτη, χωρίς αυτό να σημαίνει ότι επιβάλλει την ανανέωσή του. Τέλος, η εκτέλεση των υπολοίπων ερωτημάτων διαρκείας που έχει υποβάλλει ο χρήστης δεν επηρεάζεται από την οπτικοποίηση ή μη των δυναμικών δεδομένων. Το στοιχείο του μενού «Έξοδος» (Exit) όταν επιλεχθεί, προκαλεί τερματισμό της εφαρμογής και κλείσιμο όλων των γραφικών παραθύρων που συνδέονται με αυτή (κεντρικό, φόρμες ερωτημάτων κλπ.). 66

79 Μενού «Ερώτημα» (Query) Το μενού «Eρώτημα» (Query), συγκροτείται από μια σειρά γραφικών αντικειμένων που ενεργοποιούν την εμφάνιση φόρμας διατύπωσης ερωτήματος. Υπάρχουν τρία αντικείμενα, τα οποία έχουν περιγραφεί σε παραπάνω ενότητα: Γενικά ερωτήματα (GenericQueryInput) Ερωτήματα με επιλογή περιοχής (RangeQueryInput) Ερωτήματα εγγύτερου γείτονα Η επιλογή ενός εκ των ανωτέρων στοιχείων συνεπάγεται τη δημιουργία ενός εσωτερικού παραθύρου, στο οποίο εμφανίζεται η καρτέλα με την αντίστοιχη φόρμα σχεδιασμού (μία διαφορετική για κάθε κατηγορία) και υποβολής του ερωτήματος,σε συνδυασμό με τον πίνακα προβολής των αποτελεσμάτων. Εικόνα 5.17: Φόρμα σύνταξης γενικού ερωτήματος Εικόνα 5.18: Φόρμα σύνταξης ερωτήματος με επιλογή περιοχής Εικόνα 5.19: Εισαγωγή ταυτότητας αντικειμένου για τηνυποβολή ερωτήματος εγγύτερου γείτονα 67

80 Εικόνα 5.20: Προβολή αποτελεσμάτων ερωτήματος Οι απαντήσεις στο ερώτημα του εγγύτερου γείτονα είναι οι μόνες που προβάλλονται εκτός από τους πίνακες, και πάνω στον χάρτη. Συγκεκριμένα, η θέση του αντικειμένου βάσει του οποίου υπολογίζεται η απάντηση παρουσιάζεται συνεχώς με διαφορετικό γραφικό ενώ η απάντηση στο ερώτημα, δηλαδή το όχημα που αποτελεί τον εγγύτερο γείτονα απεικονίζεται διαφοροποιημένο για σύντομο χρονικό διάστημα, ώστε η απεικόνιση να είναι πάντα επίκαιρη (Εικόνα 5.22) Μενού «Παρακολούθηση» (Monitor) Με το μενού παρακολούθησης (monitor) ενεργοποιείται η δυνατότητα του χρήστη να διαχωρίσει χρωματικά την αναπαράσταση μεμονωμένων αντικειμένων ώστε να διευκολύνει την εποπτεία τους. Ουσιαστικά μέσω αυτού του μενού τίθεται σε λειτουργία ο μηχανισμός παρακολούθησης ο οποίος αναλύθηκε στην ενότητα με τι ς ιδιότητες του χάρτη. Εικόνα 5.21: Παράθυρο επιλογής αντικειμένων παρακολούθησης Επιπλέον, το μενού περιέχει το στοιχείο «Επανεκκίνηση απεικόνισης δυναμικών δεδομένων» (Refresh), του οποίας η λειτουργία έχει αναφερθεί και στην ενότητα περιγραφής της μονάδας του χάρτη. Υπενθυμίζεται ότι όταν επιλέγεται, «διαγράφει» από τον χάρτη όλα τα γραφικά που αναπαριστούν δυναμικά δεδομένα, ώστε να διευκολυνθεί η εποπτεία των δεδομένων που θα καταφθάσουν στη συνέχεια, είτε αυτά προέρχονται από ένα διαφορετικό ρεύμα δεδομένων είτε όχι. Η διαδικασία μπορεί να πραγματοποιηθεί οποτεδήποτε ο χρήστης επιλέξει αυτό το στοιχείο του μενού Μενού «Βοήθεια» (Help) Με το μενού «Βοήθεια» (Help) μπορεί να έχει κανείς πρόσβαση σε δύο είδη πληροφορίας, τα οποία προβάλλονται σε ξεχωριστά εσωτερικά παράθυρα: 68

81 Εικόνα 5.22: Απεικόνιση αποτελεσμάτων ερωτήματος εγγύτερου γείτονα στον χάρτη Βασικές οδηγίες για τις ιδιότητες και τους τρόπους χρήσης του περιβάλλοντος διεπαφής. Λίγα στοιχεία για την εφαρμογή (αριθμός και ημερομηνία έκδοσης, σκοπός, όνομα σχεδιαστή κλπ. ). Το περιεχόμενο τον παραθύρων είναι απλό κείμενο με συνδέσμους (links), χωρίς επιπλέον δυνατότητες όπως αναζήτηση με λέξεις κλειδιά ή διαδραστικούς οδηγούς (wizards) και περιέχει τις απαραίτητες οδηγίες ώστε να εξασφαλίζεται η κατανόηση και η λειτουργικότητα της εφαρμογής Η γραμμή εργαλείων Η γραμμή εργαλείων συνδυάζει μια σειρά γραφικών πλήκτρων (buttons) που αντιστοιχούν σε χαρτογραφικές λειτουργίες μαζί με δύο επιπλέον πλήκτρα τα οποία ενεργοποιούν ειδικά αντικείμενα της εφαρμογής. Η γραμμή εργαλείων παρέχει ακόμη μεγαλύτερη αμεσότητα από ότι η γραμμή μενού, ενώ σχεδόν όλα τα στοιχεία της αφορούν γραφικές πράξεις στον χάρτη. Τα κυριότερα πλήκτρα της είναι: μεγέθυνση χάρτη (zoom in) σμίκρυνση χάρτη (zoom out) μετακίνηση του χάρτη (pan) εμφάνιση πληροφοριών για στατικά χωρικά αντικείμενα (ονόματα, αριθμούς δρόμων κλπ.) Προβολή του χάρτη σε πλήρη έκταση (zoom to full extent) Επανεκκίνηση των στρωμάτων δυναμικών δεδομένων (Refresh) Άνοιγμα πηγής (Open Source) Τα τέσσερα πρώτα πλήκτρα συνδυάζονται με τς κατάλληλες ενέργειες πάνω στον χάρτη μέσω του κέρσορα, ο οποίος αποτελεί το εργαλείο επιλογής των αντικειμένων πάνω στα οποία θα εφαρμοστεί η αντίστοιχη πράξη. Το πέμπτο πλήκτρο (zoom to full extent) στην ουσία επαναφέρει τον χάρτη στην αρχική κατάσταση προβολής του, δηλαδή στην εμφάνιση όλης της έκτασής του. Το πλήκτρο της επανεκκίνηση των στρωμάτων που αναπαριστούν τα δυναμικά δεδομένα, δηλαδή τις θέσεις και τις τροχιές των κινούμενων αντικειμένων θέτει σε λειτουργία τον αντίστοιχο μηχανισμό που έχει ήδη εξεταστεί. Η επιλογή του πλήκτρου που αντιστοιχεί στο «Άνοιγμα πηγής» έχει ακριβώς το ίδιο αποτέλεσμα με το αντίστοιχο στοιχείο του μενού και είναι η μόνη που 69

82 δεν έχει κάποιο γραφικό αποτέλεσμα, δηλαδή που δεν οδηγεί στην αλλαγή απεικόνισης του χάρτη. Η γραμμή εργαλείων εφοδιάστηκε με τα δύο τελευταία πλήκτρα, αν και αυτά διατίθενται και στο μενού, λόγω της τακτικής χρήσης τους, της σπουδαιότητάς τους και την ανάγκη άμεσης πρόσβασης σε αυτά Πλαίσια πληροφορίας Το κεντρικό παράθυρο εφαρμογής εφοδιάζεται με τρία πλαίσια πληροφορίας, δύο στο νότιο τμήμα του και ένα στο βόρειο. Η πληροφορία που αναγράφουν ενισχύει σημαντικά τις εποπτικές δυνατότητες της εφαρμογής, καθώς αφορά καίρια χαρακτηριστικά του ρεύματος δεδομένων και την κατάσταση προβολής του χάρτη. Συγκεκριμένα, τα πλαίσια είναι τα εξής: Πλαίσιο χρονοσήμου χρονικής στιγμής (Εικόνα 5.23) Πλαίσιο πραγματικών συντεταγμένων της θέσης του κέρσορα πάνω στον χάρτη (Εικόνα 5.23) Κλίμακα προβολής χάρτη (Εικόνα 5.24). Τα δύο πρώτα βρίσκονται στο νότιο τμήμα του κεντρικού παραθύρου και δεν είναι τροποποιήσιμα. Το πλαίσιο χρονοσήμου παρουσιάζει την χρονική στιγμή στην οποία αντιστοιχούν τα δυναμικά δεδομένα τροχιάς που εμφανίζονται πάνω στον χάρτη. Η τιμή του ανανεώνεται με τις απαντήσεις του βασικού ερωτήματος (BaseQuery) που εκτελείται πάνω στο ρεύμα δεδομένων. Εικόνα 5.23 Πλαίσια θέσης, χρονικού οροσήμου Εικόνα 5.24: Πλαίσιο κλίμακας Το πλαίσιο συντεταγμένων εμφανίζει τις πραγματικές συντεταγμένες στις οποίες αντιστοιχεί η θέση του κέρσορα πάνω στον χάρτη. Το πλαίσιο κλίμακας βρίσκεται στο βόρειο τμήμα του κεντρικού παραθύρου και αναγράφει την τιμή της κλίμακας (πχ. 1: ) με την οποία προβάλλεται ο χάρτης. Το πλαίσιο αυτό μπορεί να τροποποιηθεί από τον χρήστη, ο οποίος μπορεί να τοποθετήσει σε αυτό την τιμή της κλίμακας στην οποία επιθυμεί να γίνει η προβολή. Αναφέρεται εδώ ότι η πληροφορία που παρουσιάζουν τα δύο τελευταία πλαίσια δεν προέρχεται από το ρεύμα δεδομένων, αλλά από τα στατικά δεδομένα του χάρτη και την κατάσταση εμφάνισης του Συντονισμός - συνδυασμός μονάδων εφαρμογής Η MainMap εκτός από το κεντρικό παράθυρο εφαρμογής χρησιμοποιείται σαν βάση και συνδετικός ιστός ανάμεσα στα διάφορα μέρη της εφαρμογής: Αντιστοιχεί τα γραφικά αντικείμενα με τις κατάλληλες ενέργειες (Event listeners) (Εικόνα 5.25). 70

83 Επιλογή Γραφικό αντικείμενο Ενεργοποίηση Ακρόαση Εκκίνηση Ακροατής Συμβάν συμβάντων Διαδικασία Εικόνα 5.25: Ακρόαση συμβάντων γραφικών Συσχετίζει την επεξεργασία του ρεύματος που πραγματοποιεί το βασικό ερώτημα (BaseQuery) με την ανανέωση του χάρτη. Φροντίζει για την περιοδική ανανέωση των γραφικών και το συντονισμό των νημάτων (threads). Η MainMap συνδυάζει το γραφικό περιβάλλον με μεθόδους ακρόασης συμβάντων γραφικών (Event Listeners). Αναλυτικά, σε κάθε γραφικό εργαλείο αντιστοιχεί ένα συμβάν (Event) το οποίο ενεργοποιείται όταν επιλεχθεί το γραφικό. Η κλάση εφοδιάζεται με τους αντίστοιχους ακροατές συμβάντων, των οποίων ο ρόλος είναι να αντιλαμβάνονται την ενεργοποίηση των συμβάντων και να αντιδρούν αναλαμβάνοντας τη διεκπεραίωση της κατάλληλης ενέργειας. Κάποια από τα σημαντικότερα από αυτά είναι: πλήκτρο «Ερώτημα» ( Query ) άνοιγμα παραθύρου ερωτήματος (δημιουργία στιγμιοτύπου QueryInput) πλαίσιο κλίμακας τροποποίηση αναγραφόμενης τιμής αλλαγή προβολής του χάρτη επιλογή «άνοιγμα πηγής» ( Open Source ) Άνοιγμα φόρμας συμπλήρωση φόρμας αποστολή ρεύματος, κοκ. Σημαντικό είναι το έργο που επιτελεί η MainMap όσο αναφορά τη σύνδεση του ρεύματος δεδομένων με τον χάρτη. Όταν αποφασιστεί για πρώτη φορά η αποστολή ρεύματος στο TelegraphCQ (Open Source) πραγματοποιεί τις εξής ενέργειες : ημιουργεί ένα στιγμιότυπο του βασικού ερωτήματος BaseQuery και το εφοδιάζει με μια σύνδεση στο TelegraphCQ μέσω της Connect. ημιουργεί τα στρώματα του χάρτη που απεικονίζουν τη δυναμική πληροφορία των τροχιών, μαζί με τα αντικείμενα που χρησιμοποιούν (Feature, FeatureClass, κλπ. ). Από τη στιγμή που θα λάβουν χώρα οι παραπάνω δημιουργίες, τόσο το βασικό ερώτημα όσο και ο χάρτης είναι σε θέση να υποδεχτούν κατάλληλα τα εισερχόμενα ρεύματα δεδομένων. Μόλις αρχίσει η παραγωγή αποτελεσμάτων του BaseQuery, κάθε απάντηση στέλνεται μέσω της μεθόδου addremovepoint που περιγράφηκε στην ενότητα του χάρτη, στον χάρτη για την ανανέωση της εμφάνισης των ρευμάτων τροχιάς. Αφού δημιουργηθούν τόσο το βασικό ερώτημα όσο και τα στρώματα γραφικών δυναμικών δεδομένων του χάρτη παραμένουν ενεργά μέχρι τον τερματισμό της εφαρμογής. Τέλος, μια σημαντική λειτουργία της MainMap είναι ο συντονισμός των αντικειμένων που χρησιμοποιεί. Καθώς τόσο η λήψη των ερωτημάτων διαρκείας όσο και η ανανέωση των γραφικών είναι εργασίες απαιτητικές σε πόρους του συστήματος, υλοποιούνται σε πολλά διαφορετικά νήματα, τα οποία ενεργοποιούνται περιοδικά. H MainMap είναι υπεύθυνη για την ενεργοποίηση των νημάτων των γραφικών. Ακόμη, επειδή υπάρχουν δεδομένα, όπως οι FeatureClass, στα οποία έχουν πρόσβαση αντικείμενα διαφορετικών νημάτων, η κεντρική κλάση φροντίζει για την ακεραιότητα και ενότητα στην εκτέλεση των πράξεων που τα αφορούν, με την 71

84 χρήση μεταβλητών boolean (flags). Μια τέτοια περίπτωση είναι όταν γίνεται επανεκκίνηση των στρωμάτων γραφικών των δυναμικών δεδομένων (Refresh), δηλαδή διαγραφή των περιεχομένων των FeatureClass ενώ ταυτόχρονα η addremovepoint επιχειρεί να ανανεώσει ένα τμήμα τροχιάς το οποίο πριν τη διακοπή του νήματος της υπήρχε, αλλά όχι πια. Η χρήση flag εξασφαλίζει ότι η διαγραφή των περιεχομένων των FeatureClass δε θα πραγματοποιηθεί πριν τελειώσουν όσες διεργασίες ανανέωσης τους βρίσκονται ήδη σε εξέλιξη. 72

85 Κεφάλαιο 6 Εκτέλεση ερωτημάτων διαρκείας 6.1 Ερωτήματα στο πλαίσιο της εφαρμογής Η εφαρμογή ασχολείται με την επεξεργασία δεδομένων που περιγράφουν κινούμενα αντικείμενα. Το μοντέλο πραγματικού κόσμου που χρησιμοποιείται είναι η κίνηση οχημάτων διαφόρων τύπων όπως ταξί, ασθενοφόρα, περιπολικά και I.X. στο οδικό δίκτυο της Αθήνας. Ο μέγιστος αριθμός οχημάτων που χρησιμοποιείται είναι 1000 ενώ το ρεύμα αφορά καταχωρήσεις των θέσεων των οχημάτων ανά δευτερόλεπτο, κατά τη διάρκεια μιας ώρας. Τα κινούμενα αντικείμενα λοιπόν αντιπροσωπεύουν τα οχήματα. Εκτός από αυτά, υπάρχουν και στατικά γεωγραφικά δεδομένα, όπως το οδικό δίκτυο και οι περιοχές. Τα ερωτήματα ενδιαφέροντος συμπίπτουν με αυτά που αναλύθηκαν στο κεφάλαιο για τα κινούμενα αντικείμενα (κεφάλαιο 4), με τη διαφορά ότι υπόκεινται στους περιορισμούς του συστήματος που τα υλοποιεί. Η προηγούμενη θεωρητική ανάλυση μπορεί να κατευθύνει ικανοποιητικά τον σχεδιαστή ερωτημάτων πάνω σε χωροχρονικά δεδομένα, αλλά αποτελεί μια προσέγγιση που δεν στηρίζεται σε κάποιο υπαρκτό και δοκιμασμένο σύστημα. Οι αμιγώς χωρικοί ή χρονικοί τελεστές όπως και οι σχεσιακοί έχουν οριστεί και χρησιμοποιηθεί στις σε διάφορες υλοποιήσεις, αλλά μέχρι στιγμής δεν υπάρχει κάποιο σύστημα επεξεργασίας χωροχρονικών δεδομένων που να τους υποστηρίζει με όλες τις εκφραστικές τους δυνατότητες. Επομένως, λαμβάνοντας υπ' όψιν τα ερωτήματα με το μεγαλύτερο ενδιαφέρον πάνω στα χωροχρονικά δεδομένα, επιλέγονται αυτά με τη μεγαλύτερη σημασιολογική αξία στα πλαίσια της εφαρμογής ενώ τελικά εκτελούνται όσα από αυτά μπορούν να διατυπωθούν και να υλοποιηθούν από το σύστημα που χρησιμοποιείται. 6.2 Σχήμα δεδομένων Η εφαρμογή εστιάζει στη διαχείριση δυναμικών δεδομένων, δηλαδή σε αυτά που περιγράφουν κινούμενα αντικείμενα. Αυτό σημαίνει πως οι σχέσεις (relations) που χρησιμοποιεί είναι αυτές που διατηρούν την πληροφορία των κινούμενων οχημάτων. Η μορφή κάθε πλειάδας τους έχει ως εξής: 73

86 ομή πλειάδας vid, vtype, pos, x,, y, t, tcqtime vid INTEGER, ταυτότητα του οχήματος vtype VARCHAR, είδος οχήματος (ταξί, ασθενοφόρο, περιπολικό, ΙΧ) pos POINT, περιέχει το ζευγάρι συντεταγμένων της θέσης του οχήματος x REAL, οριζόντια συντεταγμένη της θέσης του οχήματος y REAL, κατακόρυφη συντεταγμένη της θέσης του οχήματος t INTEGER, χρονική στιγμή δειγματοληψίας, σε δευτερόλεπτα tcqtime TIMESTAMP, χρονική στιγμή δειγματοληψίας με τη μορφή ημερομηνίας χρησιμοποιείται στον υπολογισμό του παραθύρου Εικόνα 6.1: Σχήμα εδομένων Παρατηρείται ότι στη δομή των δεδομένων υπάρχει πλεονασμός πληροφορίας, συγκεκριμένα η πληροφορία της τρέχουσας θέσης βρίσκεται τόσο στον τύπο σημείου pos που περιέχει τις συντεταγμένες θέσης, αλλά και στις ίδιες τις συντεταγμένες ξεχωριστά x, y, σαν πραγματικούς αριθμούς, ενώ η πληροφορία της χρονικής στιγμής περιέχεται στο πεδίο tcqtime τύπου timestamp αλλά και σαν ακέραιος στο πεδίο t. Η εξήγηση γι' αυτόν τον πλεονασμό βρίσκεται στις δυνατότητες κάθε τύπου και στις προδιαγραφές επεξεργασίας του συστήματος, TelegraphCQ. Το πεδίο σημείου, pos, μπορεί αν συμμετέχει σε διάφορες χωρικές πράξεις όπως απόσταση (distance), περιοχής (region) κτλ. Από την άλλη, οι συντεταγμένες σαν συνδυασμός δύο πραγματικών αριθμών x,y, μπορούν να χρησιμοποιηθούν και σαν τέτοιοι σε διάφορες πράξεις και συγκρίσεις, όπως ο τελεστής χωρικού παραθύρου(range). Ακόμη, το πεδίο tcqtime είναι απαραίτητο για την εφαρμογή χρονικού παραθύρου πάνω στο ρεύμα όπως επίσης αποτελεί ένα απαραίτητο τμήμα της σημασιολογίας του. Παρ' όλ' αυτά δεν μπορεί να πάρει μέρος σε συγκρίσεις ή σε αφαιρέσεις που χρειάζονται για την εύρεση της χρονικής σειράς ή τον υπολογισμό χρονικών διαστημάτων. Αυτό το κενό έρχεται να καλύψει το πεδίο t, το οποίο ισούται με τη χρονική στιγμή σε δευτερόλεπτα, χρονολογείται από την έναρξη του ρεύματος και το οποίο σαν ακέραιος μπορεί να υποστηρίξει τις παραπάνω πράξεις. Οι περιορισμοί του συστήματος αφορούν την αδυναμία του να εκτελεί σύνθετα ή ένθετα ερωτήματα από τα οποία θα μπορούσαν ίσως να εξαχθούν οι απλούστεροι των συνθετότερων τύπων του pos και του tcqtime για να χρησιμοποιηθούν στις προαναφερθείσες πράξεις. Αυτή η ανεπάρκεια του συστήματος καθιστά απαραίτητη τη χρήση των βοηθητικών πεδίων x, y, t ακόμη και αν οδηγεί σε πλεονασμό πληροφορίας και κατά συνέπεια σε υπολογιστική και αποθηκευτική σπατάλη των πόρων. Επίσης, τα στατικά χωρικά δεδομένα δεν έχουν την μορφή σχέσεων, ώστε να μπορούν να εφαρμοστούν πάνω τους σχεσιακές πράξεις (queries, insert, update, delete), παρά βρίσκονται αποθηκευμένα σε αρχεία ειδικού τύπου. Συνεπώς, τα περισσότερα γεωγραφικά δεδομένα που χρησιμοποιούνται για τη διατύπωση ερωτημάτων προκύπτουν είτε από ρητή περιγραφή τους είτε με βάση την πληροφορία που διατίθεται για τα κινούμενα αντικείμενα. ηλαδή μια στατική περιοχή ορίζεται αναλυτικά (πχ. κυκλική περιοχή με δοσμένα κέντρο και ακτίνα) και δεν λαμβάνεται άμεσα από μια σχέση όπου διατηρεί τις χρησιμοποιούμενες περιοχές. Οι κινούμενες περιοχές ορίζονται σε σχέση με τα κινούμενα αντικείμενα (πχ. κυκλική περιοχή ακτίνας 100m με κέντρο το όχημα Α). Με βάση τις παραπάνω προδιαγραφές, η χρήση και επεξεργασία περιοχών στην εφαρμογή περιορίζονται σημαντικά. Κατά συνέπεια, τα περισσότερα ερωτήματα που έχουν στο κριτήριο επιλογής τους τελεστές μεταξύ περιοχών, όπως τομή, ένωση, διαφορά, δηλαδή που εξετάζουν συσχετίσεις μεταξύ περιοχών, δεν έχουν ιδιαίτερη βαρύτητα για την εφαρμογή. Επομένως τα ερωτήματα με το μεγαλύτερο στην παρούσα περίπτωση είναι αυτά που εξετάζουν συσχετίσεις σημείων ή σημείων και περιοχών. Οι χωρικοί τελεστές που χρησιμοποιούνται κατά κύριο λόγο είναι οι : τελεστές παραθύρου(range), περιοχής (region), απόστασης (distance). 74

87 6.3 Περιορισμοί στην εκτέλεση ερωτημάτων εν μπορεί να χρησιμοποιηθεί διάζευξη (OR) ή άρνηση (NOT) στα κριτήρια επιλογής. Ο μόνος λογικός τελεστής του είδους που μπορεί να εκτελεστεί είναι αυτός της σύζευξης (AND). Ο τελεστής σύζευξης είναι ο μόνος από τους τρεις ο οποίος περιορίζει το σύνολο των αποτελεσμάτων του ερωτήματος. Αυτό τον καθιστά περισσότερο ασφαλή (safe) και λιγότερο ευαίσθητο σε ένα τόσο δυναμικό περιβάλλον. εν επιτρέπονται ένθετα υποερωτήματα είτε σε ρεύματα είτε σε σχέσεις. Αυτός ο περιορισμός καθιστά αδύνατη τη διατύπωση πολλών και ενδιαφέροντων ερωτημάτων όπως του εγγύτερου γείτονα, κλπ. Παράδειγμα: «Ποια οχήματα βρίσκονται σε απόσταση μικρότερη ή ίση των 100 m από το όχημα 15;» SELECT vid,pos,tcqtime FROM network.vehicles V1 WHERE ((V1.pos <-> (SELECT V2.pos FROM network.vehicles V2 WHERE V2.vid=15 WINDOW V2 ['2 seconds']))<=100)=true WINDOW V1 ['1 second'] εν επιτρέπεται η σύνδεση ενός ρεύματος με τον εαυτό του (self join). Αυτή η αδυναμία του TelegraphCQ περιορίζει σημαντικά την εύρεση αλληλοσυσχετίσεων μεταξύ αντικειμένων του ίδιου ρεύματος, οι οποίες όμως είναι ιδιαίτερου ενδιαφέροντος για την εφαρμογή. Τα δεδομένα μεταφέρουν πληροφορία σχετική με την κίνηση οχημάτων, μεταξύ των οποίων υπάρχουν διάφορες σχέσεις όπως απόσταση από, χρονική διάταξη και σύγκριση ίδιων αντικειμένων, κτλ. Το πρόβλημα μπορεί να παρακαμφθεί αν χρησιμοποιηθούν δύο πανομοιότυπα ρεύματα και πραγματοποιηθεί η σύνδεση ανάμεσά τους. Η λύση αυτή αν και οδηγεί στη σπατάλη αποθηκευτικού χώρου και επιβάρυνση της επεξεργαστικής δραστηριότητας του συστήματος, είναι η μόνη εφικτή. Παράδειγμα: «Ποια οχήματα βρίσκονται εν κινήσει;», «Ποιος είναι ο εγκύτερος γείτονας του οχήματος με ταυτότητα 15;». Σε περίπτωση σύνδεσης ρευμάτων η συνθήκη ταύτισης μπορεί να αναφέρεται μόνο σε ισότητα πεδίων και όχι σε συναρτήσεις. Και αυτός ο περιορισμός οδηγεί στην μείωση της επεξεργαστικής δυνατότητας του συστήματος καθώς οδηγεί στην απόκρυψη σχέσεων μεταξύ ρευμάτων. Η συσχέτιση στο πλαίσιο της εφαρμογής μπορεί να είναι για παράδειγμα η απόσταση ή κάποιο χρονικό διάστημα που προκύπτει από τη διαφορά δυο χρονικών στιγμών. Γι' αυτόν τον περιορισμό δεν υπάρχει μια συγκεκριμένη αντιμετώπιση ούτε βεβαιότητα για την ύπαρξη κάποιας. Έγκειται κάθε φορά στη φαντασία και στην ευρηματικότητα του σχεδιαστή του ερωτήματος να χρησιμοποιήσει μια διατύπωση που να αποφεύγει τη σύνδεση δύο ρευμάτων πάνω σε συνάρτηση. Ένας τρόπος αποφυγής του περιορισμού που χρησιμοποιήθηκε σε ερωτήματα που διατυπώθηκαν και επιλέχθηκαν για την εφαρμογή, είναι η αποδόμηση ενός σύνθετου ερωτήματος με σύνδεση πάνω σε συνάρτηση σε μικρότερα, απλούστερα ερωτήματα διαρκείας. Παράδειγμα: «Ποια οχήματα απέχουν μεταξύ τους λιγότερο από 100 μέτρα;» Θεωρούνται δύο ξεχωριστά αλλά όμοια ρεύματα. SELECT V1.vid,V2.vid,V1.tcqtime FROM network.vehicles V1, network.vehicles V2 WHERE V1.vid<>V2.vid AND V1.t=V2.t AND ((V1.pos<->V2.pos)<=100)=TRUE WINDOW V1 ['1 second'], V2 ['1 second'] Οι δυνατότητες ομαδοποίησης και ταξινόμησης μπορούν να υποστηριχθούν μόνο αν έχουν οριστεί παράθυρα για τα στοιχεία των ρευμάτων. Τα παράθυρα, όπως 75

88 προαναφέρθηκε μειώνουν τον όγκο των δεδομένων πάνω στα οποία εκτελούνται τα ερωτήματα κάθε στιγμή. Οι συναθροιστικές συναρτήσεις μπορεί να απαιτήσουν μεγάλο αποθηκευτικό χώρο κατά την εξέλιξη της παραγωγής της απάντησης, οπότε η εφαρμογή παραθύρων σε ερωτήματα που τις περιέχουν μετριάζουν αυτές τις ανάγκες και κάνουν την εξαγωγή του αποτελέσματος πιο εφικτή. Τα κριτήρια επιλογής στο TelegraphCQ έχουν την απλή μορφή <expression>op <constant>. Γι' αυτό το λόγο η τιμή του αποτελέσματος μιας συνάρτησης στο κριτήριο επιλογής πρέπει να συγκρίνεται με μια σταθερή τιμή. Παράδειγμα: «Ποια οχήματα βρίσκονται τώρα στο εσωτερικό της περιοχής Α;». SELECT V1.vid, V1.pos,V1.tcqtime FROM network.vehicles V1 WHERE polygon '(479243, , , , , , , , , , , , , , , , , )') = TRUE WINDOW V1 ['1 second'] 6.4 Εκτελούμενα Ερωτήματα Λαμβάνοντας υπ' όψιν τους παραπάνω περιορισμούς και τις εποπτικές ανάγκες της εφαρμογής, μπορεί να σχεδιαστεί και να επιλεχθεί μια σειρά χαρακτηριστικών ερωτημάτων που θα χρησιμοποιηθεί για την επεξεργασία των ρευμάτων τροχιών κινούμενων αντικειμένων Ερώτημα με επιλογή χωρικού Παραθύρου (Range Query) Το ερώτημα αυτό εφαρμόζει ένα χωρικό φίλτρο στο εισερχόμενο ρεύμα. Επιλέγει τις πλειάδες αν το όχημα που περιγράφουν βρίσκεται στην ορισμένη ορθογώνια περιοχή. SELECT vid,pos,tcqtime FROM network.vehicles V1 WHERE box '(x min,y min,x max,y max )')=TRUE WINDOW V1 ['1 second'] Όπου x,y είναι οι συντεταγμένες της σημειακής θέσης του αντικειμένου ενώ τα x min,x max και y min,y max αποτελούν τα όρια της επιλεγμένης περιοχής Ερωτήματα με επιλογή περιοχής διαφόρων τύπων (Containment Query) Αυτή η κατηγορία ερωτημάτων έχει την ίδια σημασία με την προηγούμενη αλλά εκτελείται για περιοχές διαφόρων σχημάτων και χρησιμοποιεί άλλη σύνταξη. Συγκεκριμένα, σε αυτήν την περίπτωση αντί των ισοτήτων και ανισοτήτων χρησιμοποιείται ο τελεστής της PostgreSQL, ο οποίος είναι χωρικός και ελέγχει αν ένα γεωμετρικό αντικείμενο περιέχεται σε μια δοσμένη περιοχή. Συνεπώς επιστρέφει την τιμή «αληθές» (TRUE) σε περίπτωση που ο παραπάνω έλεγχος βγαίνει θετικός ενώ FALSE σε αντίθετη περίπτωση. Για τον ορισμό της περιοχής χρησιμοποιούνται οι αντίστοιχες χωρικές εκφράσεις της PostgreSQL για χωρικά δεδομένα. Παρατίθεται ένα παράδειγμα ερωτήματος για το αν μια σημειακή θέση περιέχεται σε ένα κύκλο με κέντρο το (0,0) και ακτίνα 2.0 : SELECT vid,pos,tcqtime FROM network.vehicles V1 WHERE (V1.pos@ circle '((0,0),2.0) )=TRUE WINDOW V1 ['1 second'] Τα ερωτήματα επιλογής περιοχής (6.4.1, 6.4.2) χρησιμοποιούνται στο πλαίσο της εφαρμογής και για την ταύτιση χωρικών σημείων. 76

89 6.4.3 Ερώτημα ταυτότητας Το ερώτημα ταυτότητας επιλέγει την παρακολούθηση κάποιων αντικειμένων από το ρεύμα δεδομένων βάσει της ταυτότητας τους. Στη συγκεκριμένη περίπτωση επιλέγεται η ταυτότητα (vid) του οχήματος και ζητάται η θέση και η χρονική στιγμή όπου αυτή αντιστοιχεί, κάθε δευτερόλεπτο. Παράδειγμα: «Ποια είναι η τρέχουσα θέση του οχήματος με ταυτότητα 15;» SELECT vid,pos,tcqtime FROM network.vehicles V1 WHERE V1.vID=15 WINDOW V1 ['1 second'] Ερωτήματα απόστασης Στα ερωτήματα αυτά υπολογίζεται η απόσταση μεταξύ των τοποθεσιών δύο σημειακών αντικειμένων και ση συνέχεια συγκρίνεται με μια επιθυμητή τιμή. Τα σημειακά αντικείμενα μπορούν να είναι είτε κινούμενα είτε σταθερά, αλλά για λόγους που έχουν προειπωθεί, στη συγκεκριμένη περίπτωση ενδιαφέρουν μόνο η απόσταση μεταξύ ενός κινούμενου κι ενός σταθερού σημείου είτε η απόσταση μεταξύ δυο κινούμενων σημείων. Η δεύτερη περίπτωση συναντά στην υλοποίησή της τους περιορισμούς του συστήματος: στη σύνδεση ρεύματος με τον εαυτό του, αν επιχειρηθεί η άμεση διατύπωση του ερωτήματος στη σύνδεση ρευμάτων πάνω σε συνάρτηση και όχι σε ισότητα πεδίων, αν χρησιμοποιηθούν δύο πανομοιότυπα ρεύματα. Μπορούν πάντως να ληφθούν στην απάντηση όλες οι αποστάσεις των κινούμενων αντικειμένων από ένα ορισμένο. Παράδειγμα: «Ποια οχήματα απέχουν λιγότερο από 2000 m από το σταθερό σημείο(475016, ) ;» SELECT vid,pos, tcqtime FROM network.vehicles1 V1 WHERE ( V1.pos <-> Point '(475016, )' )<=2000 WINDOW V1 ['1 second'] Ερωτήματα ταύτισης Το κριτήριο ταύτισης εξετάζει αν ένα χωρικό αντικείμενο ταυτίζεται σε έκταση και θέση με κάποιο άλλο. Επειδή όπως έχει προαναφερθεί, στην εφαρμογή δίνεται ιδιαίτερη έμφαση στα σημειακά αντικείμενα παρά στις περιοχές, το κριτήριο εξειδικεύεται στο ποια σημειακά αντικείμενα συμπίπτουν, αφού η έκταση όλων των σημείων είναι η ίδια. Η σύγκριση γίνεται είτε μεταξύ ενός κινούμενου και ενός στατικού σημείου είτε μεταξύ δυο κινούμενων. Το μοντέλο που καλείται να ακολουθήσει η εφαρμογή, είναι η κίνηση οχημάτων στους δρόμους της Αθήνας, οπότε είναι πολύ δύσκολο να συμπέσουν με ακρίβεια οι συντεταγμένες οποιονδήποτε σημείων και το κριτήριο να ικανοποιηθεί. Το ερώτημα αυτό είναι διαρκείας, συνεπώς είναι συνεχώς ενεργό. εδομένου του αυστηρού κριτηρίου επιλογής, ενδέχεται να μην επιστρέφει αποτελέσματα στη μεγαλύτερη περίοδο λειτουργίας του και θα είναι αναποτελεσματικό. Αν το μοντέλο της εφαρμογής ήταν διαφορετικό (πχ. παρακολούθηση κοπαδιών) ενδεχομένως η συμπεριοφορά του ερωτήματος να ήταν διαφορετική. εδομένων των συνθηκών και παρατηρώντας ότι με χαλάρωση του κριτηρίου προκύπτουν αποτελέσματα χωρίς να χάνεται η ουσία του ερωτήματος (πχ. ένα όχημα έχει βρεθεί στο σημείο ενδιαφέροντος αν έχει περάσει σε απόσταση λίγων μέτρων από αυτό) το ερώτημα μεταφράζεται σε ερώτημα παραθύρου ή κυκλικής περιοχής με μικρή απόσταση από το κέντρο ή σύγκριση απόστασης από αυτό. 77

90 Παράδειγμα: «Ποια οχήματα βρέθηκαν στο δοσμένο παράθυρο γύρω από το σημείο Α τα τελευταία 5 λεπτά;» SELECT vid,x,y,tcqtime FROM network.vehicles V1 WHERE x 1 <= x AND x<= x 2 AND y 1 <= y AND y <= y 2 WINDOW V1 ['5 minutes'] Ερωτήματα με συναθροιστικές συναρτήσεις Οι συναθροιστικοί τελεστές COUNT, SUM, MAX, MIN, AVG εφαρμόζονται σε ένα σύνολο δεδομένων και επιστρέφουν το άθροισμα, τη μέγιστη τιμή, την ελάχιστη ή το μέση τιμή αντίστοιχα των δεδομένων αυτών. Το πρόβλημα που προκύπτει σε ένα σύστημα επεξεργασίας ρευμάτων είναι το μέγεθος του συνόλου, καθώς ενδέχεται τα ρεύματα να είναι απεριόριστα. Όπως προαναφέρθηκε, η χρήση παραθύρων αντιμετωπίζει εν μέρει το πρόβλημα αυτό, αφού περιορίζει και οριοθετεί το τμήμα των δεδομένων πάνω στο οποίο θα εκτελεστούν συναθροιστικές συναρτήσεις. Επιπλέον, τα χαρακτηριστικά των ρευμάτων που λαμβάνουν μέρος σε αυτούς τους υπολογισμούς (εκτός του COUNT) θα πρέπει να υποστηρίζουν τις αριθμητικές πράξεις, ενώ συγκεκριμένα για τους τελεστές MIN και MAX να διαθέτουν την ιδιότητα της διάταξης. Παραδείγματα: «Πόσα οχή ματα απείχαν λιγότερο από 100 m από το σταθερό σημείο Α το τελευταίο λεπτό;» SELECT COUNT(*) FROM network.vehicles V1 WHERE (V1.pos <-> Point '(475750, )') <= 100 WINDOW V1 ['1 minute'] «Ποιος ήταν ο μέσος αριθμός οχημάτων στην περιοχή τα τελευταία πέντε λεπτά;» SELECT AVG(*) FROM network.vehicles V1 WHERE (V1.pos@ polygon '(479243, , , , , , , , , , , , , , , , , )') = TRUE WINDOW V1 ['5 minutes'] Ερωτήματα με ομαδοποίηση, GROUP BY, HAVING Αρκετές φορές επιθυμείται η εφαρμογή των συναθροιστικών συναρτήσεων σε υποσύνολα των δεδομένων τα οποία έχουν ένα κοινό χαρακτηριστικό, το γνώρισμα ομαδοποίησης. Η πρόταση GROUP BY πραγματοποιεί το διαχωρισμό των δεδομένων σε υπο - ομάδες βάσει του γνωρίσματος ομαδοποίησης. Στην εφαρμογή, η συνηθέστερη χρήση ομαδοποίησης γίνεται για στοιχεία που ανήκουν στην ίδια χρονική στιγμή (GROUP BY V1.tcqtime) ή στο ίδιο όχημα (GROUP BY V1.vID). Παράδειγμα: «Ποιος είναι ο αριθμός οχημάτων κάθε είδους που βρέθηκαν στον δακτύλιο τα τελευταία 5 λεπτά;» SELECT COUNT(*), vtype FROM network.vehicles V1 WHERE (V1.pos@ polygon '(479243, , , , , , , , , , , , , , , , , )') = TRUE GROUP BY V1.vtype WINDOW V1 ['5 minutes'] 78

91 Η πρόταση GROUP BY μπορεί να συνδυαστεί με μια πρόταση HAVING, η οποία παρέχει μια συνθήκη επιλογής των υποομάδων που παράγονται από την GROUP BY. Στο αποτέλεσμα του ερωτήματος θα συμμετάσχουν δηλαδή εκείνες οι υπο - ομάδες που θα ικανοποιήσουν τη συνθήκη της HAVING. Παράδειγμα: «Ειδοποίησε όταν περισσότερα από 10 οχήματα εισέλθουν στην περιοχή.» SELECT COUNT(V1.vid), tcqtime FROM network.vehicles V1 WHERE (V1.pos@ polygon '(479243, , , , , , , , , , , , , , , , , )') = TRUE GROUP BY V1.tcqtime HAVING COUNT(V1.vID) >= 10 WINDOW V1 ['1 second'] Ερωτήματα με σύνδεση Η σύνδεση που πραγματοποιείται μεταξύ ρευμάτων βασίζεται σε ισότητα πεδίων. εν μπορεί να γίνει σύνδεση μεταξύ ρεύματος και στατικής σχέσης. Ένα χαρακτηριστικό παράδειγμα που εφαρμόζεται είναι το ακόλουθο, και πραγματοποιείται μεταξύ δύο όμοιων ρευμάτων: «Υπολόγισε την απόσταση όλων των οχημάτων από το όχημα με ταυτότητα 15 τώρα». SELECT V1.vid AS Obj1, V2.vid AS Obj2, CAST((V1.pos<->V2.pos) AS integer) AS distance, V1.t, V1.tcqtime FROM network.vehicles1 V1, network.vehicles2 V2 WHERE V1.vid = 15 AND V1.t=V2.t WINDOW V1 ['1 second'], V2 ['1 second'] Υπενθυμίζεται ότι οι περιορισμοί της γλώσσας ερωταποκρίσεων δεν επιτρέπουν την υποβολή ερωτημάτων εγγύτερου γείτονα. Κρίνοντας τα ως πολύ σημαντικά στο πλαίσιο της εφαρμογής, υλοποιήθηκαν με την εκμετάλλευση λειτουργιών του γραφικού περιβάλλοντος διασύνδεσης. 79

92

93 Κεφάλαιο 7 Επίλογος 7.1 Συμπεράσματα Ο σχεδιασμός και η ανάπτυξη της εφαρμογής απαίτησε την μελέτη και συνδυασμό διάφορων τεχνολογιών. Τον κύριο άξονα μελέτης κατά το σχεδιασμό αυτής αποτέλεσε η φύση των δεδομένων των κινούμενων αντικειμένων, τόσο ως προς την μοντελοποίησή της όσο και ως προς την επεξεργασία της. Κατά την ανάπτυξη ιδιαίτερη βαρύτητα δόθηκε στην αξιοποίηση του Συστήματος ιαχείρισης Ρευμάτων εδομένων, στη διερεύνηση και εκμετάλλευση βιβλιοθηκών GIS για την οπτικοποίηση των χωρικών δεδομένων, αλλά και στη χρήση κατάλληλων βιβλιοθηκών για τη δημιουργία του γραφικού περιβάλλοντος διεπαφής. Τέλος, κατά τη δοκιμαστική λειτουργία της εφαρμογής συντάχθηκαν, επιλέχθηκαν και δοκιμάστηκαν χωροχρονικά ερωτήματα διαρκείας, η επιτυχής ή μη εκτέλεση των οποίων απέφερε σημαντικές πληροφορίες τόσο για τη συμπεριφορά αυτής όσο και για τις δυνατότητες των εργαλείων επεξεργασίας που χρησιμοποιήθηκαν. Αρχικά, απαιτήθηκε ο καθορισμός της κίνησης σε σημειακή και στη συνέχεια η μοντελοποίησή της ως ρεύμα τροχιάς, το οποίο παρουσιάζει τα χαρακτηριστικά των ρευμάτων δεδομένων μαζί με κάποιες χωρικές ιδιότητες. Η επιλογή του TelegraphCQ ως συστήματος διαχείρισης ρευμάτων δεδομένων έδωσε τη δυνατότητα αναπαράστασης της κίνησης μέσω ρευμάτων τροχιάς για δύο λόγους : Αποτελεί ένα λειτουργικό και ευέλικτο σύστημα διαχείρισης ρευμάτων δεδομένων. Καθώς έχει αναπτυχθεί πάνω στην PostgreSQL, κληρονομεί τη δυνατότητά της για υποστήριξη χωρικών δεδομένων και πράξεων. Συνεπώς επέτρεψε το σχηματισμό ρευμάτων δεδομένων τα οποία περιείχαν και πεδία με χωρικά δεδομένα, όπως οι συντεταγμένες θέσης, και έτσι έγινε εφικτή η απόδοση της ουσίας της πληροφορίας κίνησης, η οποία έχει έντονα δυναμικό και χωρικό χαρακτήρα. Κατά την λειτουργία της εφαρμογής επιβεβαιώθηκε και η δυνατότητα on- line επεξεργασίας ρευμάτων τροχιάς κινούμενων αντικειμένων. Η αξία του συμπεράσματος έγκειται στην ιδιαιτερότητα των δεδομένων του ρεύματος. Αν και υπήρχε η γνώση της δυνατότητας επεξεργασίας ρευμάτων δεδομένων, στο πλαίσιο της εφαρμογής δοκιμάστηκε η διαχείριση ρευμάτων με χωρικό χαρακτήρα και η οποία στέφθηκε με επιτυχία. Η διαχείριση αφορά τον ορισμό του σχήματος του ρεύματος τροχιάς, στο οποίο πρέπει να συμπεριληφθούν και χωρικά 81

94 πεδία, αλλά και στη σύνταξη ερωτημάτων διαρκείας με χωρικά κριτήρια επιλογής. Επομένως, αποδεικνύεται ότι είναι εφικτή, έστω και με περιορισμούς, η επεξεργασία πληροφορίας κίνησης σε πραγματικό χρόνο. Μια ακόμη σημαντική διαπίστωση που προέκυψε κατά τη λειτουργία της εφαρμογής είναι η ικανότητα ταυτόχρονης εκτέλεσης πολλαπλών ερωτημάτων διαρκείας. Το σύστημα είναι σε θέση να αντεπεξέλθει σε τέτοιες συνθήκες επεξεργασίας με ομαλό τρόπο, δηλαδή μπορεί η παραγωγή των απαντήσεων πολλαπλών ερωτημάτων να ακολουθεί το ρυθμό άφιξης των δεδομένων. Ο αριθμός των ερωτημάτων που εκτελούνται ταυτόχρονα είναι φυσικά περιορισμένος, αλλά κρίνεται ικανοποιητικός για τις ανάγκες της εφαρμογής. Ακόμη, ο χρήστης δύναται να υποβάλλει και να αναστέλλει ερωτήματα ασύγχρονα, χωρίς να επηρεάζεται σημαντικά η ευστάθεια του συστήματος. Ο χρήστης παρακολουθώντας τις παραγόμενες απαντήσεις λαμβάνει νέες πληροφορίες για την κατάσταση των δεδομένων και ενδέχεται να τροποποιήσει τα ερωτήματά του ώστε να εστιάσει κάπου αλλού. Με βάση τα παραπάνω εξασφαλίζεται η ανταπόκριση της εφαρμογής στις έντονες ανάγκες εποπτείας που παρουσιάζονται. Κατά την εκτέλεση των ερωτημάτων αποσαφηνίστηκαν και οι περιορισμοί του συστήματος όσο αναφορά τη γλώσσα ερωταποκρίσεων στη διαθέσιμη έκδοση του TelegraphCQ. Πράγματι, ένα μικρό σύνολο εντολών που συναντάται στις κλασικές σχεσιακές βάσεις είναι εκτελέσιμο πάνω σε ρεύματα δεδομένων. Παραδείγματος χάριν ένθετα υποερωτήματα, συνδέσεις ενός ρεύματος με τον εαυτό του (self-join) είναι κάποιες από τις λειτουργίες που δεν υλοποιούνται. Περιορισμοί συναντιόνται και στην χρήση συναθροιστικών συναρτήσεων και συνδέσεων μεταξύ ρευμάτων. Οι αδυναμίες αυτές οφείλονται στη φύση των δεδομένων, στις μεγάλες ανάγκης επεξεργασίας των ερωτημάτων διαρκείας αλλά και στην απαίτηση απόκρισης σε πραγματικό χρόνο. Περιορίζουν σημαντικά τις επεξεργαστικές δυνατότητες της εφαρμογής, αλλά καθώς η τεχνολογία των Συστημάτων διαχείρισης ρευμάτων δεδομένων είναι εξαιρετικά νέα, πιστεύεται ότι με την πάροδο του χρόνου τα προβλήματα αυτά θα αντιμετωπιστούν αποτελεσματικά. Πολύ μεγάλη βαρύτητα έχει η επίτευξη οπτικοποίησης της κίνησης πάνω σε χάρτη με χρήση εργαλείων γενικού σκοπού όπως ένα Σύστημα ιαχείρισης Ρευμάτων εδομένων(telegraphcq) και βιβλιοθήκες χειρισμού γεωγραφικών πληροφοριών (MapObjects). Υπενθυμίζεται ότι οι περισσότερες εφαρμογές αντίστοιχου σκοπού υλοποιούνται πάνω σε εξειδικευμένο λογισμικό. Συγκρινόμενη με αυτές, η εφαρμογή παρουσιάζει μεγάλες δυνατότητες κλιμάκωσης, επέκτασης και ευελιξίας, σχετικά με τα συστήματα όπου μπορεί να εγκατασταθεί, την υιοθέτηση νέων τεχνολογιών και το είδος των χωροχρονικών δεδομένων τα οποία διαχειρίζεται. Σημειώνεται ότι τόσο το είδος των χωροχρονικών δεδομένων που αποτελούν το ρεύμα όσο και τα στατικά δεδομένα που χρησιμοποιούνται στην εφαρμογή για την κατασκευή του χάρτη μπορούν να αντικατασταθούν χωρίς να επηρεαστεί η λειτουργικότητά της. Η οπτικοποίηση μπορεί να αφορά διάφορες περιοχές και κινούμενα σημειακά αντικείμενα διαφόρων τύπων(οχήματα, αεροσκάφη, κοπάδια ζώων κλπ.). Τέλος, αναφέρεται ότι η επεξεργασία των ρευμάτων τροχιών αλλά και η παρουσίαση των γραφικών πραγματοποιούνται μόνο με την χρήση της κύριας μνήμης. Αυτό συνεπάγεται ταχύτητα και άμεση απόκριση της εφαρμογής στην άφιξη των δεδομένων αλλά επιβάλλει και σημαντικούς περιορισμούς. Λόγου χάρη, κατά την άφιξη δεδομένων στο σύστημα με ραγδαίο ρυθμό παρατηρήθηκε ανώμαλη συμπεριφορά στην απεικόνιση των δεδομένων, με ασυνέχειες και ενίοτε με έλλειψη οποιασδήποτε απόκρισης από το γραφικό περιβάλλοντ. Επιπλέον, σε περίπτωση μεγάλου φόρτου εργασίας παρουσιάζεται καθυστέρηση στην ανανέωση των γραφικών. Τέτοιου είδους δυσκολίες μπορούν να αντιμετωπιστούν με την χρήση μεγαλύτερης μνήμης ή ισχυρότερου υπολογιστικού συστήματος, ενώ αναμένεται με την ανάπτυξη των Συστημάτων ιαχείρισης Ρευμάτων εδομένων η εισαγωγή νέων, εξυπνότερων μεθόδων επεξεργασίας, οι οποίες θα έχουν λιγότερες απαιτήσεις από το σύστημα. 82

95 Εικόνα 7.1: Ταυτόχρονη εκτέλεση πολλαπλών ερωτημάτων διαρκείας 7.2 Μελλοντικές επεκτάσεις Η εφαρμογή που αναπτύχθηκε στο πλαίσιο της διπλωματικής εργασίας μπορεί να θεωρηθεί ότι πραγματοποίησε τους αρχικούς στόχους που είχαν τεθεί. Παρ' όλ' αυτά δεν μπορεί παρά να αποτελεί μία πρώτη προσέγγιση στο χώρο της οπτικοποίησης και επεξεργασίας ρευμάτων τροχιάς κινούμενων αντικειμένων. Τα ενθαρρυντικά συμπεράσματα τα οποία απέφερε η ανάπτυξη και η δοκιμαστική λειτουργία της ανοίγουν αρκετές προοπτικές μελλοντικής επέκτασης και αξιοποίησής της. Σ ένα πιο ολοκληρωμένο στάδιο, θα μπορούσαν να δοκιμαστούν τα εξής: 1. Μετάβαση στην επόμενη έκδοση του TelegraphCQ. Το τελευταίο, που είναι ένα πρωτότυπο Σύστημα ιαχείρισης Ρευμάτων εδομένων που αναπτύσσεται στο Πανεπιστήμιο Berkeley, πρόσφατα αναβαθμίστηκε. Η νέα έκδοση παρουσιάζει σημαντικές βελτιώσεις όσο αναφορά τη σταθερότητα, την απόδοση, την χρήση παραθύρων και τη διατύπωση ερωτημάτων. Συνεπώς θα ήταν σκόπιμη η εκμετάλλευσή τους από την εφαρμογή με την αναβάθμισή της στην νέα έκδοση του TelegraphCQ. 2. Η πληροφορία κίνησης την οποία διαπραγματεύεται η εφαρμογή αφορά κυρίως την κατάσταση της θέσης των αντικειμένων. Τα ερωτήματα που υποβάλλονται στηρίζονται στην εξέταση των συντεταγμένων της σημειακής θέσης (λ.χ. χωροχρονικού παραθύρου, εγγύτερου γείτονα )ή τη σύγκρισή της με άλλα χωρικά αντικείμενα (λ.χ. εμπεριέχεται σε περιοχή, απόσταση μεταξύ). Στην πραγματικότητα, η πληροφορία κίνησης έχει και άλλες, συνθετότερες διαστάσεις, οι οποίες θα μπορούσαν να συλληφθούν με την χρήση ερωτημάτων πλοήγησης. Αυτά αναζητούν απαντήσεις οι οποίες δεν είναι ρητά καταχωρημένες όπως οι συντεταγμένες θέσης, αλλά προκύπτουν βάσει της παρακολούθησης της εξέλιξης της κίνησης. Τέτοια ερωτήματα υπολογίζουν την ταχύτητα, τη διανυθείσα απόσταση, το χρόνο διαδρομής, την κατεύθυνση κλπ. Λόγω των έντονων περιορισμών στη γλώσσα ερωταποκρίσεων του TelegraphCQ, η εφαρμογή δεν υποστηρίζει την εκτέλεση τέτοιων ερωτημάτων. Θεωρείται ότι σε ένα πιο ώριμο στάδιο όμως, θα πρέπει να παρέχεται η δυνατότητα σύνταξης και εκτέλεσής τους. 3. Μία ακόμη λειτουργία που θα ήταν ωφέλιμο να ενσωματωθεί στην εφαρμογή, είναι η συμπερίληψη των στατικών χωρικών δεδομένων στη βάση δεδομένων. Προς το παρόν, 83

Οπτικοποίηση ρευµάτων τροχιάς κινούµενων αντικειµένων

Οπτικοποίηση ρευµάτων τροχιάς κινούµενων αντικειµένων Οπτικοποίηση ρευµάτων τροχιάς κινούµενων αντικειµένων Παρασκευή Κεφαλληνού el99681@mail.ntua.gr ιπλωµατική εργασία στο Εργαστήριο Συστηµάτων Βάσεων Γνώσεων και εδοµένων Επιβλέπων: Καθηγητής Τ. Σελλής 1

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

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

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

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

ΗΥ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 Εισαγωγή στις Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις

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

Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS)

Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS) Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS) ρ. ΧΑΛΚΙΑΣ ΧΡΙΣΤΟΣ xalkias@hua.gr Χ. Χαλκιάς - Εισαγωγή στα GIS 1 Ορισµοί ΓΠΣ Ένα γεωγραφικό πληροφοριακό σύστηµα Geographic Information

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

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

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

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

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

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Βάσεις εδοµένων Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης v.vescoukis@cs.ntua.gr ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Συστήµατα ιαχείρισης Βάσεων

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

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

Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας

Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας Σωτηρία Δριβάλου Εθνικό Μετσόβιο Πολυτεχνείο Μονάδα Εργονομίας Συστήματα διανομής ηλεκτρικής ενέργειας

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

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access...9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 18 Άνοιγμα και κλείσιμο βάσης δεδομένων... 21 Ερωτήσεις ανακεφαλαίωσης... 22 Πρακτική εξάσκηση...

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

710 -Μάθηση - Απόδοση

710 -Μάθηση - Απόδοση 710 -Μάθηση - Απόδοση Διάλεξη 6η Ποιοτική αξιολόγηση της Κινητικής Παρατήρηση Αξιολόγηση & Διάγνωση Η διάλεξη αυτή περιλαμβάνει: Διαδικασία της παρατήρησης & της αξιολόγησης Στόχοι και περιεχόμενο παρατήρησης

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

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4 Διαδικασίες παραγωγής λογισμικού Στόχοι Παρουσίαση μοντέλων παραγωγής λογισμικού Περιγραφή τριών γενικών μοντέλων παραγωγής λογισμικού και πότε μπορούν να χρησιμοποιούνται Γενική περιγραφή των μοντέλων

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

Δίκτυα Υπολογιστών I Εργαστήρια

Δίκτυα Υπολογιστών I Εργαστήρια Δίκτυα Υπολογιστών I Εργαστήρια Άσκηση 7 η Υποεπίπεδο ελέγχου λογικής σύνδεσης Έλεγχος Σφαλμάτων Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Διδάσκων: Παπαπέτρου Ευάγγελος 2 1 Εισαγωγή

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

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΣΠΟΥ ΑΣΤΗΣ: Γιαννόπουλος Γεώργιος ΕΠΙΒΛΕΠΩΝ: Καθ. Ι. Βασιλείου ΒΟΗΘΟΙ: Α. ηµητρίου, Θ. αλαµάγκας Γενικά Οι µηχανές αναζήτησης

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Αγρονόμων & Τοπογράφων Μηχανικών ΓΕΩΠΛΗΡΟΦΟΡΙΚΗ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ

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

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

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής Περιεχόµενα Κατηγορίες Π.Σ. ιαχείρισης Πράξεων ιοίκησης Υποστήριξης Αποφάσεων Έµπειρα Συστήµατα Ατόµων και Οµάδων Ο κύκλος ζωής Π.Σ. Ορισµός Φάσεις Χρήστες

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΔΙΑΔΙΚΑΣΙΕΣ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ Διδάσκων: Γ. Χαραλαμπίδης,

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

Διατίθεται εφαρμογή για κινητά τηλέφωνα android και ios. Γενική Αρχιτεκτονική Συστήματος

Διατίθεται εφαρμογή για κινητά τηλέφωνα android και ios. Γενική Αρχιτεκτονική Συστήματος Exandas-gis Η εφαρμογή Exandas-Gis είναι μια διαδικτυακή εφαρμογή Τηλεματικής Παρακολούθησης και Διαχείρισης Στόλου Οχημάτων σε πραγματικό χρόνο.η εφαρμογή είναι προσβάσιμη από οποιοδήποτε σημείο με την

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

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

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

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

710 -Μάθηση - Απόδοση

710 -Μάθηση - Απόδοση 710 -Μάθηση - Απόδοση Διάλεξη 6η Ποιοτική αξιολόγηση της Κινητικής Συμπεριφοράς Παρατήρηση III Η διάλεξη αυτή περιλαμβάνει: Διαδικασία της παρατήρησης & της αξιολόγησης Στόχοι και περιεχόμενο παρατήρησης

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

Κεφάλαιο 3. Διδακτικοί Στόχοι

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΑΓΡΟΝΟΜΩΝ ΚΑΙ ΤΟΠΟΓΡΑΦΩΝ ΜΗΧΑΝΙΚΩΝ. Σπύρος Τσιπίδης. Περίληψη διατριβής

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΑΓΡΟΝΟΜΩΝ ΚΑΙ ΤΟΠΟΓΡΑΦΩΝ ΜΗΧΑΝΙΚΩΝ. Σπύρος Τσιπίδης. Περίληψη διατριβής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΑΓΡΟΝΟΜΩΝ ΚΑΙ ΤΟΠΟΓΡΑΦΩΝ ΜΗΧΑΝΙΚΩΝ Σπύρος Τσιπίδης Γεω - οπτικοποίηση χωρωχρονικών αρχαιολογικών δεδομένων Περίληψη διατριβής H παρούσα εργασία

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

Σχεδιασµός Οικολογικού ιαµεσολαβητή για την εποπτεία και διαχείριση δικτύου διανοµής ηλεκτρικής ενέργειας

Σχεδιασµός Οικολογικού ιαµεσολαβητή για την εποπτεία και διαχείριση δικτύου διανοµής ηλεκτρικής ενέργειας Σχεδιασµός Οικολογικού ιαµεσολαβητή για την εποπτεία και διαχείριση δικτύου διανοµής ηλεκτρικής ενέργειας Σωτηρία ριβάλου Εθνικό Μετσόβιο Πολυτεχνείο Μονάδα Εργονοµίας Συστήµατα διανοµής ηλεκτρικής ενέργειας

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

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

14/10/2005. <id, ts, x, y> (online). (single-pass). Potamias-abstract.pdf

14/10/2005. <id, ts, x, y> (online). (single-pass). Potamias-abstract.pdf Συµπίεση εδοµένων Τροχιάς Κινούµενων Αντικειµένων Μιχάλης Ποταµιάς mpotamias@dblab.ntua.gr ιπλωµατική εργασία στο Εργαστήριο Συστηµάτων Βάσεων Γνώσεων και εδοµένων Επιβλέπων: Καθηγητής Τ. Σελλής 1 Εισαγωγή

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

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας 4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας 4.1.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας από βάση δεδομένων Όταν εκκινήσουμε τον Discoverer εμφανίζεται στην οθόνη μας το παράθυρο διαλόγου του βοηθητικού προγράμματος

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

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

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

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

... c 2015 All rights reserved

... c 2015 All rights reserved Εθνικο Μετσοβιο Πολυτεχνειο Σχολη Ηλεκτρολογων Μηχανικων και Μηχανικων Υπολογιστων Τομεας Τεχνολογιας Πληροφορικης και Υπολογιστων Απόρριψη φόρτου από ρεύματα τροχιάς κινούμενων αντικειμένων Διπλωματικη

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

Περιεχόμενο του μαθήματος

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος

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

... co 2015 All rights reserved

... co 2015 All rights reserved Εθνικο Μετσοβιο Πολυτεχνειο Σχολη Ηλεκτρολογων Μηχανικων και Μηχανικων Υπολογιστων Τομεας Τεχνολογιας Πληροφορικης και Υπολογιστων Αναζήτηση k-εγγύτερων γειτόνων μεταξύ περιοχών αβεβαιότητας με κανονική

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

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Speed-0 Web and Mobile Platform Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Version Revision History Date Version Description People 5/4/2012 Αρχικές Προδιαγραφές

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

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

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

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

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

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

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

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Βασισμένης σε Περιπτώσεις (Case Based Reasoning): Το σύστημα PAS (Property Appraisal System) ΣΤΑΥΡΟΥΛΑ ΠΡΑΝΤΣΟΥΔΗ

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Βασισμένης σε Περιπτώσεις (Case Based Reasoning): Το σύστημα PAS (Property Appraisal System) ΣΤΑΥΡΟΥΛΑ ΠΡΑΝΤΣΟΥΔΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Εκτίμηση αξίας ακινήτων με χρήση Συλλογιστικής Βασισμένης σε Περιπτώσεις (Case Based

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

Εκπαιδευτική Μονάδα 10.2: Εργαλεία χρονοπρογραμματισμού των δραστηριοτήτων.

Εκπαιδευτική Μονάδα 10.2: Εργαλεία χρονοπρογραμματισμού των δραστηριοτήτων. Εκπαιδευτική Μονάδα 10.2: Εργαλεία χρονοπρογραμματισμού των δραστηριοτήτων. Στην προηγούμενη Εκπαιδευτική Μονάδα παρουσιάστηκαν ορισμένα χρήσιμα παραδείγματα διαδεδομένων εργαλείων για τον χρονοπρογραμματισμό

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

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα 1.7 - Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Πρωτόκολλο είναι ένα σύνολο κανόνων που πρέπει να ακολουθήσουν όλοι οι σταθμοί εργασίας σε ένα δίκτυο ώστε να μπορούν

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

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

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

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

Π3.1 ΣΧΕΔΙΟ ΑΞΙΟΛΟΓΗΣΗΣ

Π3.1 ΣΧΕΔΙΟ ΑΞΙΟΛΟΓΗΣΗΣ Π3.1 ΣΧΕΔΙΟ ΑΞΙΟΛΟΓΗΣΗΣ Αριθμός Έκδοσης: ΕΚΕΤΑ ΙΜΕΤ ΕΜ Β 2014 13 Παραδοτέο ΙΜΕΤ Τίτλος Έργου: «Ολοκληρωμένο σύστημα για την ασφαλή μεταφορά μαθητών» Συγγραφέας: Δρ. Μαρία Μορφουλάκη Κορνηλία Μαρία ΘΕΣΣΑΛΟΝΙΚΗ,

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Αρχιτεκτονική Πλατφόρμας Μπορεί να μοντελοποιηθεί σαν ένα σύνολο από διασυνδεδεμένα κομμάτια: 1. Στοιχεία επεξεργασίας (processing

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

Ανάπτυξη Δικτυακής Εφαρμογής Διάχυσης και Ανάλυσης Γεωχωρικών Δεδομένων και Πληροφοριών

Ανάπτυξη Δικτυακής Εφαρμογής Διάχυσης και Ανάλυσης Γεωχωρικών Δεδομένων και Πληροφοριών Ανάπτυξη Δικτυακής Εφαρμογής Διάχυσης και Ανάλυσης Γεωχωρικών Δεδομένων και Πληροφοριών Λοΐσιος ΔΗΜΗΤΡΙΟΣ (Αντισυνταγματάρχης) Αγρονόμος Τοπογράφος Μηχανικός ΕΜΠ, MSc στη Γεωπληροφορική Διευθυντής Διεύθυνσης

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

Βάσεις Δεδομένων Ενότητα 1

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

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

Διαχείριση Πολιτισμικών Δεδομένων

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

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

Γιώργος Γιαννής, Καθηγητής Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Μεταφορών και Συγκοινωνιακής Υποδομής

Γιώργος Γιαννής, Καθηγητής Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Μεταφορών και Συγκοινωνιακής Υποδομής Με την επίσημη υποστήριξη: Γιώργος Γιαννής, Καθηγητής Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Μεταφορών και Συγκοινωνιακής Υποδομής Διημερίδα ITS Hellas «Ευφυή Συστήματα Μεταφορών & Eξελίξεις στην Ελλάδα» Αθήνα,

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

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

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

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

Τι είναι τα Συστήµατα Γεωγραφικών Πληροφοριών. (Geographical Information Systems GIS)

Τι είναι τα Συστήµατα Γεωγραφικών Πληροφοριών. (Geographical Information Systems GIS) Τι είναι τα Συστήµατα Γεωγραφικών Πληροφοριών (Geographical Information Systems GIS) ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ, ΤΜΗΜΑ ΓΕΩΓΡΑΦΙΑΣ ΧΑΛΚΙΑΣ ΧΡΙΣΤΟΣ Εισαγωγή στα GIS 1 Ορισµοί ΣΓΠ Ένα σύστηµα γεωγραφικών πληροφοριών

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

ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ - ΕΝΟΤΗΤΑ 1 7/4/2013 ΕΝΟΤΗΤΕΣ ΜΑΘΗΜΑΤΟΣ. Ορισμός

ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ - ΕΝΟΤΗΤΑ 1 7/4/2013 ΕΝΟΤΗΤΕΣ ΜΑΘΗΜΑΤΟΣ. Ορισμός ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ ΕΝΟΤΗΤΑ 1 : ΕΙΣΑΓΩΓΗ Διάλεξη 1: Γενικά για το ΓΣΠ, Ιστορική αναδρομή, Διαχρονική εξέλιξη Διάλεξη 2 : Ανάλυση χώρου (8/4/2013) Διάλεξη 3: Βασικές έννοιες των Γ.Σ.Π.. (8/4/2013)

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

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα ΕΙΣΑΓΩΓΗ ΣΤΗ UML UML Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις ιαγράµµατα Παραδείγματα Ορισμός του μοντέλου Αποτελεί µια αφηρηµένη περιγραφή ενός Φυσικού συστήµατος. Αποτελεί ένα σχέδιο για την

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

Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές.

Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές. Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές. 13ο ΕΘΝΙΚΟ ΣΥΝΕΔΡΙΟ ΧΑΡΤΟΓΡΑΦΙΑΣ Η ΧΑΡΤΟΓΡΑΦΙΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

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

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

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

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

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

ΠΡΟΣ ΙΟΡΙΣΜΟΣ ΠΑΡΑΘΥΡΩΝ ΣΕ ΡΕΥΜΑΤΑ Ε ΟΜΕΝΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΠΡΟΣ ΙΟΡΙΣΜΟΣ ΠΑΡΑΘΥΡΩΝ ΣΕ ΡΕΥΜΑΤΑ Ε ΟΜΕΝΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του Ηλία

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

Η Γενίκευση στη Χαρτογραφία

Η Γενίκευση στη Χαρτογραφία Η Γενίκευση στη Χαρτογραφία Χαρτογραφία Ι 1 Τοποθέτηση του προβλήματος [I] Οι χάρτες αποτελούν το μέσο γραφικής απόδοσης - σε σμίκρυνση - κάποιου τμήματος της γήινης επιφάνειας. Θα ήταν δύσκολο - αν όχι

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

Διαχείριση Πληροφοριακών Συστημάτων

Διαχείριση Πληροφοριακών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Διαχείριση Πληροφοριακών Συστημάτων Ενότητα #7: UML Χρήστος Δρόσος Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

Γιάννης Θεοδωρίδης. Εργαστήριο Πληροφοριακών Συστηµάτων. http://infolab.cs.unipi.gr

Γιάννης Θεοδωρίδης. Εργαστήριο Πληροφοριακών Συστηµάτων. http://infolab.cs.unipi.gr Πανεπιστήµιο Πειραιώς, Τµήµα Πληροφορικής Εισαγωγή στη Γεωπληροφορική Επισκόπηση µαθήµατος Γιάννης Θεοδωρίδης Εργαστήριο Πληροφοριακών Συστηµάτων http://infolab.cs.unipi.gr 13-Μαρ-09 Το κύριο µέροςτωνδιαφανειώνπροέρχεταιαπόταtextbooks

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ηλεκτρονική Υγεία Εργαστήριο 4 ο : MATLAB Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

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

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

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

8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637

8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637 8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637 Υλοποιηση νεων τεχνολογιων (Web GIS, Application Servers) για τη δυναμικη προσβαση μεσω διαδικτυου στη βαση δεδομενων του Ελληνικου Εθνικου Κεντρου Ωκεανογραφικων

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

Κασταλία Σύστηµα στοχαστικής προσοµοίωσης υδρολογικών µεταβλητών

Κασταλία Σύστηµα στοχαστικής προσοµοίωσης υδρολογικών µεταβλητών Εθνικό Μετσόβιο Πολυτεχνείο Τοµέας Υδατικών Πόρων, Υδραυλικών και Θαλάσσιων Έργων Κασταλία Σύστηµα στοχαστικής προσοµοίωσης υδρολογικών µεταβλητών. Κουτσογιάννης Α. Ευστρατιάδης Φεβρουάριος 2002 Εισαγωγή

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

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

ΑΞΙΟΠΟΙΗΣΗ ΑΝΟΙΧΤΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΕΥΦΥΕΙΣ ΔΗΜΟΥΣ Θεσσαλονίκη, Οκτώβριος 2016 Χριστίνα Δηµητριάδου 1 Διπλωµατική εργασία: ΑΞΙΟΠΟΙΗΣΗ ΑΝΟΙΧΤΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΕΥΦΥΕΙΣ ΔΗΜΟΥΣ Φοιτήτρια: Χριστίνα Δηµητριάδου Επιβλέπων Καθηγητής: Νικόλαος

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

αβεβαιότητα (uncertainty) Η έλλειψη ακριβούς γνώσης ή το σφάλµα που σχετίζεται µε την πραγµατική θέση ενός κινούµενου αντικειµένου.

αβεβαιότητα (uncertainty) Η έλλειψη ακριβούς γνώσης ή το σφάλµα που σχετίζεται µε την πραγµατική θέση ενός κινούµενου αντικειµένου. Γλωσσάριο εννοιών αβεβαιότητα (uncertainty) Η έλλειψη ακριβούς γνώσης ή το σφάλµα που σχετίζεται µε την πραγµατική θέση ενός κινούµενου αντικειµένου. ανασχετικός τελεστής (blocking operator) Πρόκειται

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

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων.

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων. ΠΕΡΙΛΗΨΗ Η τεχνική αυτή έκθεση περιλαµβάνει αναλυτική περιγραφή των εναλλακτικών µεθόδων πολυκριτηριακής ανάλυσης που εξετάσθηκαν µε στόχο να επιλεγεί η µέθοδος εκείνη η οποία είναι η πιο κατάλληλη για

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

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ 1 Βάση Δεδομένων: Με το όρο Βάση Δεδομένων εννοούμε ένα σύνολο δεδομένων που είναι οργανωμένο

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

Διαχείριση έργων. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

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

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Κεντρικής Μονάδας Επεξεργασίας (CPU) Βασίλης Σακκάς 4/12/2013 1 Xρονοδρομολόγηση Διεργασιών 1 Η χρονοδρομολόγηση σε ένα Λ/Σ αποφασίζει ποια διεργασία θα χρησιμοποιεί

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

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ Χρήστες ΣΔΒΔ Απλοί Χρήστες: συγκεκριμένες λειτουργίες σε

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

Τι προσφέρουν τα Τµήµατα Πληροφορικής. ... το Εργαστήριο Πληροφοριακών Συστηµάτων του Πα.Πει. Ερευνητικές δραστηριότητες σε GI Ενδεικτικές εργασίες

Τι προσφέρουν τα Τµήµατα Πληροφορικής. ... το Εργαστήριο Πληροφοριακών Συστηµάτων του Πα.Πει. Ερευνητικές δραστηριότητες σε GI Ενδεικτικές εργασίες ΗΓεωπληροφορικήστα Τµήµατα Πληροφορικής Γιάννης Θεοδωρίδης Τµήµα Πληροφορικής Πανεπιστήµιο Πειραιά Περιεχόµενα... Τι προσφέρουν τα Τµήµατα Πληροφορικής το Τµήµα Πληροφορικής του Παν/µίου Πειραιά... το

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

ΗΓενίκευση στη Χαρτογραφία. Λύσανδρος Τσούλος 1

ΗΓενίκευση στη Χαρτογραφία. Λύσανδρος Τσούλος 1 ΗΓενίκευση στη Χαρτογραφία Λύσανδρος Τσούλος 1 Τοποθέτηση του προβλήματος [I] Οι χάρτες αποτελούν το μέσο γραφικής απόδοσης - σε σμίκρυνση - κάποιου τμήματος της γήϊνης επιφάνειας. Θα ήταν δύσκολο - αν

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

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 6 εκεµβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 3 ο Μέρος Ηµεροµηνία Παράδοσης:

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

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

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

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά Για την STUDIO KOSTA BODA ILLUM Χανίων Πέµπτη, 9 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου

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

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S.

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S. Στρατηγική Επιλογή Το ταχύτατα μεταβαλλόμενο περιβάλλον στο οποίο δραστηριοποιούνται οι επιχειρήσεις σήμερα, καθιστά επιτακτική -όσο ποτέ άλλοτε- την ανάπτυξη ολοκληρωμένων λύσεων που θα διασφαλίζουν,

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

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

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Βάσεις Δεδομένων ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις Δεδομένων; Σύστημα για αποθήκευση, μετάδοση

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

Οι διαθέσιμες μέθοδοι σε γενικές γραμμές είναι:

Οι διαθέσιμες μέθοδοι σε γενικές γραμμές είναι: Χωρική Ανάλυση Ο σκοπός χρήσης των ΣΓΠ δεν είναι μόνο η δημιουργία μίας Β.Δ. για ψηφιακές αναπαραστάσεις των φαινομένων του χώρου, αλλά κυρίως, η βοήθειά του προς την κατεύθυνση της υπόδειξης τρόπων διαχείρισής

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

ΛΥΣΗ ΗΛΕΚΤΡΟΝΙΚΗΣ ΑΡΧΕΙΟΘΕΤΗΣΗΣ ARCHIVING@CONNECT ΥΠΗΡΕΣΙΑ ΑΥΛΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΙΜΟΛΟΓΗΣΗΣ PAPERLESS@CONNECT CASE STUDY PHARMATHEN SA

ΛΥΣΗ ΗΛΕΚΤΡΟΝΙΚΗΣ ΑΡΧΕΙΟΘΕΤΗΣΗΣ ARCHIVING@CONNECT ΥΠΗΡΕΣΙΑ ΑΥΛΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΙΜΟΛΟΓΗΣΗΣ PAPERLESS@CONNECT CASE STUDY PHARMATHEN SA ΛΥΣΗ ΗΛΕΚΤΡΟΝΙΚΗΣ ΑΡΧΕΙΟΘΕΤΗΣΗΣ ARCHIVING@CONNECT ΥΠΗΡΕΣΙΑ ΑΥΛΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΙΜΟΛΟΓΗΣΗΣ PAPERLESS@CONNECT CASE STUDY PHARMATHEN SA ΠΕΡΙΕΧΟΜΕΝΑ 1. ΠΑΡΟΥΣΙΑΣΗ PHARMATHEN ΑΒΕΕ... 3 2. ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΗΣ

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

Μάριος Αγγελίδης

Μάριος Αγγελίδης ΠΙΝΑΚΕΣ Ενότητες βιβλίου: 3.3, 9.1-9.3 Ώρες διδασκαλίας: 1 Σε όλα τα προβλήματα μέχρι τώρα διαβάζαμε μία τιμή την φορά, την επεξεργαζόμασταν και χωρίς να την αποθηκεύουμε επαναλαμβάναμε την διαδικασία

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

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται special report τoυ Γιώργου Φετοκάκη / gfetokakis@boussias.com Jobs scheduling Η χρυσή τοµή της αυτοµατοποίησης Μια λύση job scheduling πρέπει να είναι αρκετά περιεκτική. Πρέπει να υποστηρίζει την ενσωµάτωση

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

h t t p s : / / k p p. c t i. g r

h t t p s : / / k p p. c t i. g r Οδηγός Αξιοποίησης Υποστηρικτικού Υλικού για την προετοιμασία του μαθητή Απευθύνεται σε εκπαιδευτικούς που αναλαμβάνουν την υποστήριξη μαθητών και στους μαθητές που ενδιαφέρονται να προετοιμαστούν για

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

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

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

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

Δομή Ηλεκτρονικού υπολογιστή

Δομή Ηλεκτρονικού υπολογιστή Δομή Ηλεκτρονικού υπολογιστή Η κλασσική δομή του μοντέλου που πρότεινε το 1948 ο Von Neumann Κεντρική Μονάδα Επεξεργασίας Είσοδος Αποθήκη Αποθήκη - Έξοδος Εντολών Δεδομένων Κλασσικό μοντέλο Von Neumann

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

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

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

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

Γεώργιος Φίλιππας 23/8/2015

Γεώργιος Φίλιππας 23/8/2015 MACROWEB Προβλήματα Γεώργιος Φίλιππας 23/8/2015 Παραδείγματα Προβλημάτων. Πως ορίζεται η έννοια πρόβλημα; Από ποιους παράγοντες εξαρτάται η κατανόηση ενός προβλήματος; Τι εννοούμε λέγοντας χώρο ενός προβλήματος;

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

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

ΣΥΝΘΕΣΗ ΠΡΟΣΧΕ ΙΩΝ ΕΚΤΕΛΕΣΗΣ ΕΡΩΤΗΜΑΤΩΝ ΙΑΡΚΕΙΑΣ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΘΕΣΗ ΠΡΟΣΧΕ ΙΩΝ ΕΚΤΕΛΕΣΗΣ ΕΡΩΤΗΜΑΤΩΝ ΙΑΡΚΕΙΑΣ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της

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

Λογισµικό ΣΓΠ. Συστήµατα Γεωγραφικών Πληροφοριών ΙΙ. Χαροκόπειο Πανεπιστήµιο, Τµήµα Γεωγραφίας, ΣΓΠ ΙΙ, Χρίστος Χαλκιάς

Λογισµικό ΣΓΠ. Συστήµατα Γεωγραφικών Πληροφοριών ΙΙ. Χαροκόπειο Πανεπιστήµιο, Τµήµα Γεωγραφίας, ΣΓΠ ΙΙ, Χρίστος Χαλκιάς Λογισµικό ΣΓΠ Συστήµατα Γεωγραφικών Πληροφοριών ΙΙ Εισαγωγή Βασικός στόχος των λογισµικών πακέτων ΣΓΠ, είναι η παροχή ενός ενιαίου πλαισίου εργασίας µε γεωγραφικές πληροφορίες. Η εξέλιξη του λογισµικού

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

Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας Office Management (Ημερολόγιο Λογιστή). Παρακάτω προτείνεται

Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας Office Management (Ημερολόγιο Λογιστή). Παρακάτω προτείνεται Office Management Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας Office Management (Ημερολόγιο Λογιστή). Παρακάτω προτείνεται μια αλληλουχία ενεργειών την οποία

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

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

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

ΜΑΘΗΜΑ 2Σ6 01 ΕΡΓΑΣΤΗΡΙΟ ΧΩΡΟΤΑΞΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ

ΜΑΘΗΜΑ 2Σ6 01 ΕΡΓΑΣΤΗΡΙΟ ΧΩΡΟΤΑΞΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ ΜΑΘΗΜΑ 2Σ6 01 ΕΡΓΑΣΤΗΡΙΟ ΧΩΡΟΤΑΞΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ 1 Το εργαστήριο χωροταξικού σχεδιασμού ολοκληρώνεται ως εξής: ΠΑΡΑΔΟΣΗ ΚΑΙ ΕΞΕΤΑΣΗ ΤΟΥ ΘΕΜΑΤΟΣ Παράδοση τελικής έκθεσης. Κάθε ομάδα θα παραδώσει, μέσω του

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

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

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

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

1. Οι Τεχνολογίες της Πληροφορίας και των Επικοινωνιών στην εκπαιδευτική διαδικασία

1. Οι Τεχνολογίες της Πληροφορίας και των Επικοινωνιών στην εκπαιδευτική διαδικασία 1. Οι Τεχνολογίες της Πληροφορίας και των Επικοινωνιών στην εκπαιδευτική διαδικασία Ο διδακτικός σχεδιασμός (instructional design) εμφανίσθηκε στην εκπαιδευτική διαδικασία και στην κατάρτιση την περίοδο

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

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

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

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

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Εισαγωγικές Έννοιες ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ΤµήµαΕφαρµοσµένης Πληροφορικής Πανεπιστήµιο Μακεδονίας Θεσσαλονίκη Ιούνιος 2006 εισαγωγικού µαθήµατος προγραµµατισµού υπολογιστών.

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

Θέμα: Γενική Ενημέρωση σχετικά με την Επεξεργασία των Προσωπικών Δεδομένων (Data Privacy Notice)

Θέμα: Γενική Ενημέρωση σχετικά με την Επεξεργασία των Προσωπικών Δεδομένων (Data Privacy Notice) Αγ. Ι. Ρέντης 18/05/2018 Θέμα: Γενική Ενημέρωση σχετικά με την Επεξεργασία των Προσωπικών Δεδομένων (Data Privacy Notice) Η παρούσα ενημέρωση αφορά στην itrack Services Εταιρεία Περιορισμένης Ευθύνης Αγαθών

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

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού Μάρα Νικολαϊδου Δραστηριότητες Διαδικασιών Παραγωγής Λογισµικού Καθορισµός απαιτήσεων και εξαγωγή προδιαγραφών

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