Ως γνωστόν, στη σημερινή εποχή η τεχνολογία έχει κάνει άλματα και έχει παρεισφρήσει σε όλους τους τομείς της ανθρώπινης δραστηριότητας. Πλέον, μπορεί ο καθένας να δημιουργήσει δικές του ιστοσελίδες και να τις αναρτήσει στο διαδίκτυο με ποικίλους σκοπούς και στόχους (διαφήμιση, κέρδος, ψυχαγωγία, ενημέρωση κλπ). Οι δυνατότητες των υπολογιστών και των σχετικών με αυτά συστημάτων αυξάνονται συνεχώς και αντίστοιχα αυξάνονται οι δυνατότητες των προγραμμάτων και των εφαρμογών. Βάσεις δεδομένων έχουν δημιουργηθεί από τα πρώτα χρόνια ανάπτυξης των υπολογιστών. Οι χωρικές βάσεις δεδομένων εμφανίστηκαν λίγο αργότερα και πλέον αξιοποιούνται σε πληθώρα εφαρμογών (Γεωγραφικά Συστήματα Πληροφοριών). Τα ρεύματα δεδομένων ακούγονται καινούργια ως έννοια αλλά δεν είναι. Εδώ και μία δεκαετία υπάρχει εκτενής έρευνα γύρω από αυτά, αλλά και πολλές εφαρμογές. Η παρούσα εργασία αξιοποιεί πολλά διαφορετικά μεταξύ τους εργαλεία για την επίτευξη του στόχου της. Το λειτουργικό σύστημα Linux, το σύστημα διαχείρισης ρευμάτων δεδομένων TelegraphCQ, το σύστημα διαχείρισης βάσεων δεδομένων PostgreSQL, οι γλώσσες HTML, PHP, XML, JavaScript, C++ και Perl και οι χάρτες της Google συνδυάζονται για τη δημιουργία μιας διαδικτυακής εφαρμογής που στόχο έχει την παρακολούθηση και διαχείριση στόλου κινούμενων αντικειμένων σε πραγματικό χρόνο από οποιονδήποτε υπολογιστή ανά την υφήλιο χωρίς την ανάγκη εγκατάστασης συγκεκριμένου λογισμικού (χρειάζεται μόνο ένας φυλλομετρητής διαδικτύου – web browser). Ο στόχος επετεύχθη. Κάθε εργαλείο έπαιξε σημαντικό ρόλο στη σωστή λειτουργία της εφαρμογής. Η παρούσα εφαρμογή περιγράφεται ως εξής: Υπάρχει ιστοσελίδα (front-end) για επικοινωνία με το χρήστη, υποβολή ερωτημάτων και εμφάνιση αποτελεσμάτων σε χάρτες Google αλλά και σε πίνακες. Στην κεντρική αυτή ιστοσελίδα ο χρήστης μπορεί να εκτελέσει μέχρι πέντε ερωτήματα ταυτόχρονα και να δει όλα τα αποτελέσματα να οπτικοποιούνται στους ενσωματωμένους χάρτες. Υπάρχει το ένα βασικό ερώτημα το οποίο επιστρέφει επί του χάρτη όλα τα υπό διαχείριση αντικείμενα. Υπάρχει ένα ερώτημα περιοχής το οποίο μας δίδει τη δυνατότητα να σχεδιάσουμε επάνω στο χάρτη την περιοχή στην οποία θέλουμε να δούμε ποια κινούμενα αντικείμενα υπάρχουν. Υπάρχουν τέλος τρία προσαρμοσμένα ερωτήματα στα οποία ο χρήστης μπορεί να εισάγει δικά του ερωτήματα προς εκτέλεση. Η PHP αναλαμβάνει να εκτελέσει τα υποβληθέντα από την ιστοσελίδα ερωτήματα στην PostgreSQL. Η τελευταία τα στέλνει προς επεξεργασία στο TelegraphCQ. Αυτό επιστρέφει τα αποτελέσματα στην PostgreSQL η οποία τα παραλαμβάνει και τα στέλνει στην PHP. Η PHP αποθηκεύει τα αποτελέσματα σε αρχεία της γλώσσας XML. Καθώς τα ερωτήματα απευθύνονται σε ρεύματα δεδομένων που εισρέουν συνεχώς στο σύστημα, είναι συνεχή. Έτσι, η παραπάνω διαδικασία επαναλαμβάνεται ανά τακτά χρονικά διαστήματα, μέχρι να διακοπεί η εκτέλεση των ερωτημάτων. Τα επαναληπτικώς δημιουργούμενα αρχεία XML αναλαμβάνει να διαβάσει η JavaScript και κατόπιν αναγκαίας επεξεργασίας, τα οπτικοποιεί στους χάρτες Google της κεντρικής ιστοσελίδας της εφαρμογής και τα εμφανίζει και σε πίνακες στο αντίστοιχο τμήμα της ιστοσελίδας. Επίσης με τη συνδρομή της JavaScript, γίνεται έλεγχος των διαφόρων πεδίων της ιστοσελίδας ώστε να αποφεύγονται λάθη εισαγωγής δεδομένων και σφάλματα κατά την επεξεργασία. Ακόμη, ο χρήστης μπορεί να διαχειρίζεται εύκολα την εφαρμογή βλέποντας ποια ρεύματα δεδομένων και ποια ερωτήματα είναι ανά πάσα στιγμή ενεργά και ποια όχι. Η εφαρμογή διαθέτει πληθώρα λειτουργιών που την καθιστούν φιλική προς το χρήστη και κατάλληλη για το σκοπό για τον οποίο δημιουργήθηκε. Έχει δοκιμαστεί εκτεταμένα σε διαφορετικές συνθήκες και με πλήθος διαφορετικών ερωτημάτων και η συμπεριφορά της ήταν η επιθυμητή. Μπορεί τέλος να χρησιμοποιηθεί σε πολλές εφαρμογές με σκοπό την παρακολούθηση και διαχείριση οχημάτων και άλλων αντικειμένων σε πραγματικό χρόνο. Λέξεις κλειδιά: Χωρικές βάσεις δεδομένων, ρεύματα δεδομένων, συνεχή ερωτήματα, κινούμενα αντικείμενα, TelegraphCQ, GoogleMaps, PostgreSQL, JavaScript, PHP, C++, Linux, HTML, XML, Perl.
It is well known that nowadays technology evolves rapidly and has entered in every portion of human business and activities in general. Now, everyone can create his own web pages and publish them on the internet to accomplish his own aims (promotion, profit, entertainment, inform-news etc). The capabilities of computers and systems related to them are constantly increasing and at the same time the capabilities of computer programs and applications follow that increase. Databases have been created since the time of existence of the first computers worldwide. Spatial databases made their appearance a few years later and nowadays are used in a huge variety of applications (Geographical Information Systems etc). Data streams may appear like they are a new technology, but this isn’t the case. The last decade there have been a thorough research about them and many relevant applications have been created. The present study takes advantage of many different tools in order to achieve its purpose. Linux operating system, TelegraphCQ database management system, PostgreSQL database system, HTML, PHP, XML, JavaScript, C++ and Perl languages, and Google Maps are being combined in order to create a web application which aims to monitor and manage a set of moving objects in real time from any computer system worldwide without the need to install any special program (only a web browser is needed). The goal was achieved. Every tool has an important reason to be a part of this application. The present application is described below: The front-end of the application is a web page. The user, via this web page, may submit queries to the system and watch the results on Google Maps (in the same page) and on certain arrays. In this central web page the user may submit up to five queries simultaneously and watch all the results being visualized in the embedded maps. There is a basic query that returns on the map all moving objects managed from this application. There is an area query which gives the user the opportunity to draw on the map the desired area where he wants to see all moving objects if there are any. At last, there are three more custom queries in which the user may insert his queries for execution. PHP undertakes the dispatch of the submitted queries posed from the web page to PostgreSQL. PostgreSQL sends the queries to TelegraphCQ in order to be processed. TelegraphCQ returns the results to PostgreSQL which receives and dispatches them to PHP. PHP stores the results in XML files. Since queries are addressed to data streams which flow in the system continuously, they are also continuous. As a result, the abovementioned procedure is repeated in constant time intervals until the execution of the queries is stopped. The iteratively created XML files are being read from JavaScript which, after processing them, visualizes them on GoogleMaps in the front-end and also displays them in arrays in the relevant section of the central web page. Also JavaScript, via certain functions, checks every field of the web page upon submission of any query so that to avoid errors in the data inserted and in the process of the queries. The user may also manage the application more easily as there is the possibility to watch which data streams are running and which queries are at any time active. The application offers a variety of operations which make it user friendly and suitable for the purpose it is created. It has been tested extensively in various conditions and with many different queries and its behavior and results were the desired ones. At last, it may be used in many cases where monitoring and management of vehicles and other moving objects in real time, is of importance and need. Keywords: Spatial Databases, data streams, continuous queries, moving objects, TelegraphCQ, GoogleMaps, PostgreSQL, JavaScript, PHP, C++, Linux, HTML, XML, Perl.