Θέμα: Ανάπτυξη Βασικής Πλατφόρμας για Υπηρεσίες με Βάση το Προφίλ και τη Θέση (Profile & Location Based Services)

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

ΘΕΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ Εργ. Συστημάτων Βάσεων Γνώσεων & Δεδομένων LOCATION BASED SERVICES ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΜΩΜΑ

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

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

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

Κεφ.11: Ευρετήρια και Κατακερματισμός

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

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

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

ΧΩΡΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

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

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

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

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

Επεξεργασία Ερωτήσεων

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

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

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

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

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

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

Δρομολόγηση (Routing)

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Δυναμική προσωποποιημένη ενημέρωση προσφορών Super Markets στη Θεσσαλονίκη

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Insert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

Social Network : Programming on FACEBOOK

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

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

Δροµολόγηση (Routing)

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

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

Θέματα Μεταγλωττιστών

BO.M.I.S BOLLARD MANAGEMENT INFORMATION SYSTEM ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ BOMIS-V1-2012

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

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

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Η εργασία που επέλεξες θα σου δώσει τη δυνατότητα να συνεργαστείς με συμμαθητές σου και να σχεδιάσετε μια εικονική εκδρομή με το Google Earth.

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

Κεφάλαιο 3 Πολυπλεξία

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του

Διδάσκων: Παναγιώτης Ανδρέου

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΟΝΤΕΛΟΠΟΙΗΣΗ-ΨΗΦΙΑΚΗ ΣΥΝΘΕΣΗ ΕΙΚΟΝΩΝ Διδάσκων: Ν. ΝΙΚΟΛΑΙΔΗΣ

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1)

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Επεξεργασία Ερωτήσεων

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Επεξεργασία Ερωτήσεων

Γκέγκα Ευρώπη Κωστοπούλου Ειρήνη

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1.

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

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

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

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Επεξεργασία Ερωτήσεων

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Τεχνητή Νοημοσύνη. 3η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

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

R-Trees, kd-trees, QuadTrees. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών

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

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

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

Πληρότητα της μεθόδου επίλυσης

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

4. ΔΙΚΤΥΑ

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις:

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

ίκτυα ίκτυο υπολογιστών: Ένα σύνολο από υπολογιστικές συσκευές που συνδέονται µεταξύ τους για σκοπούς επικοινωνίας και χρήσης πόρων. Συνήθως, οι συσκε

Advanced Data Indexing

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Θεωρία Τηλεπικοινωνιακής Κίνησης Ενότητα 8: Αναδρομικός τύπος Kaufman Roberts

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

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

Το εσωτερικό ενός Σ Β

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012

Transcript:

Θέμα: Ανάπτυξη Βασικής Πλατφόρμας για Υπηρεσίες με Βάση το Προφίλ και τη Θέση (Profile & Location Based Services) Επιβλέπων καθηγητής: Ι. Βασιλείου Συγγραφείς: Ιωάννης Κολτσίδας, Παναγιώτης Παπαδημητρίου 1. Στόχος της Διπλωματικής Στόχος της διπλωματικής εργασίας είναι η σχεδίαση και η ανάπτυξη μιας βασικής πλατφόρμας για την παροχή Υπηρεσιών με Βάση το Προφίλ και τη Θέση (Profile and Location Based Services). Οι Υπηρεσίες με Βάση το Προφίλ και τη Θέση είναι εξατομικευμένες υπηρεσίες που παρέχονται σε χρήστες μέσω φορητών συσκευών πάνω από ένα ασύρματο δίκτυο, κάνοντας χρήση της δυνατότητας που έχουν οι συσκευές αυτές ανά πάσα στιγμή να γνωρίζουν τη θέση τους και να μπορούν να την αναφέρουν μέσω του ασύρματης δικτυακής υποδομής. Ένα σύστημα που προσφέρει τέτοιου είδους υπηρεσίες περιλαμβάνει δύο είδη δραστών (actors): αφενός υπάρχουν οι πάροχοι περιεχομένου (πληροφοριών) που διαχέουν τις πληροφορίες στο σύστημα και αφετέρου υπάρχουν οι κινητοί χρήστες, οι οποίοι κινούμενοι στο χώρο λαμβάνουν τις πληροφορίες που στέλνουν οι πάροχοι. Η διάχυση των πληροφοριών από τους παρόχους προς τους χρήστες γίνεται με κριτήρια τόσο γεωγραφικά, όσο και θεματικά. Για το λόγο αυτό οι πάροχοι δημιουργούν ένα ατομικό προφίλ με βάση το οποίο προσδιορίζουν τι είδους πληροφορίες θέλουν να προσφέρουν στους χρήστες, σε ποιες γεωγραφικές περιοχές και χρονικές περιόδους και με βάση ποια θεματικά κριτήρια. Κατ αντιστοιχία, οι χρήστες ορίζουν ένα προσωπικό προφίλ με τους τομείς ενδιαφερόντων τους και τις προσωπικές τους προτιμήσεις, με βάση το οποίο καθορίζουν τι είδος πληροφοριών επιθυμούν να λαμβάνουν και με ποιο τρόπο. Κάθε χρήστης γνωρίζει τη θέση του στο χώρο με βάση κάποιο φορητό τερματικό (π.χ. δέκτης GPS ή κινητό τηλέφωνο), και έχει τη δυνατότητα να αναφέρει ανά πάσα χρονική στιγμή τη θέση του αυτή στο κεντρικό μέσω ενός ασύρματου δικτύου (π.χ. με GPRS). 2. Εφαρμογές Μια τυπική λειτουργικότητα ενός τέτοιου συστήματος είναι να διαβιβάζει πληροφορίες σε έναν πελάτη όταν φθάνει σε μια συγκεκριμένη περιοχή (θέση ενδιαφέροντος). Η πιο κοινή εφαρμογή είναι η Βασισμένη στη Θέση Διαφήμιση, ή Location Based Advertising (LBA). Οι πληροφορίες παρέχονται με βάση κριτήρια χωρικά και θεματικά ταυτόχρονα, ενώ μπορεί να υπεισέρχονται και χρονικά κριτήρια. Για παράδειγμα ένα πρατήριο καυσίμων 24/7 θέλει να διαφημιστεί μόνο στους κοντινούς πελάτες κατά τη διάρκεια των κανονικών ωρών, αλλά και στους απομακρυσμένους, μετά από τα μεσάνυχτα όπου τα άλλα πρατήρια είναι κλειστά. Οι πελάτες έχουν ατομικά προφίλ π.χ. να μην θέλουν διαφημίσεις για πρατήρια, αλλά μόνο πληροφορίες για ατυχήματα στο δρόμο ή για την κυκλοφορία. Η υποδομή ενός τέτοιου συστήματος μπορεί με ευκολία να χρησιμοποιηθεί και για την ανάπτυξη διάφορων άλλων εφαρμογών. Παράδειγμα είναι η εύρεση φίλων που βρίσκονται σε μία κοντινή περιοχή ενός χρήστη και αναζητούνται με βάση το δημοσιευμένο προφίλ τους (buddy list).

3. Χωρική Ευρετηρίαση (Spatial Indexing) Προκειμένου να υποστηριχθούν αυτές οι υπηρεσίες σε μεγάλη κλίμακα, το σύστημα θα πρέπει να υλοποιεί πολύ αποδοτικούς αλγόριθμους τόσο για τη χωρική ευρετηρίαση (spatial indexing) των κινούμενων χρηστών, όσο και για την εύρεση των χρηστών των οποίων οι θεματικές προτιμήσεις ταιριάζουν με τις πληροφορίες που κάθε πάροχος διαχέει το σύστημα. Σε ότι αφορά τη χωρική ευρετηρίαση, μας ενδιαφέρει το ευρετήριο που θα χρησιμοποιηθεί να χειρίζεται με ιδιαίτερα αποδοτικό τρόπο τα σημειακά αντικείμενα (χρήστες) και τις ενημερώσεις (updates) των θέσεων των χρηστών, αφού προορίζεται για κινούμενους χρήστες, καθώς και να ενδείκνυται για πολύ γρήγορες ερωτήσεις περιοχής (range queries) και ερωτήσεις εγγύτερου γείτονα (nearest neighbor queries). 4. Ταίριασμα Προφίλ (Profile Matching) Για τη θεματική ευρετηρίαση των χρηστών σε σχέση με το περιεχόμενο που διαχέει κάποιος πάροχος, απαιτείται η εύρεση ταιριάσματος των προφίλ (profile matching) μεταξύ των χρηστών και των παρόχων. Στη διαδικασία του ταιριάσματος των προφίλ χρηστών παρόχων υπάρχουν δύο αντικρουόμενες επιδιώξεις. Αφ ενός η επιδίωξη προσωποποιημένης παροχής των υπηρεσιών που επιτυγχάνεται με την εκφραστική ικανότητα (expressiveness) στον καθορισμό των χαρακτηριστικών των χρηστών και των επιθυμητών προφίλ τους από την πλευρά των παρόχων των υπηρεσιών. Αυτή η επιδίωξη επιτυγχάνεται με τη υιοθέτηση σύνθετων μοντέλων δεδομένων που επιτρέπουν τη χρήση υπολογιστικά ακριβών αλλά και αποτελεσματικών τεχνικών φιλτραρίσματος. Αφ ετέρου η επιδίωξη της υλοποίησης σε μεγάλη κλίμακα που αφορά την περιοχή κάλυψης, τον αριθμό των χρηστών αλλά και των παρόχων και της επεκτασιμότητας ενός τέτοιου συστήματος θέτουν όρια σχετικά με τις υπολογιστικές απαιτήσεις που πρέπει να έχει οποιαδήποτε επιλεκτική διαδικασία που μεσολαβεί μεταξύ του παρόχου μιας υπηρεσίας και του τελικού χρήστη. Για την ικανοποίηση των παραπάνω περιορισμών τόσο τα προφίλ των χρηστών όσο και των παρόχων εκφράζονται με ημιδομημένο τρόπο. Συγκεκριμένα, οι πληροφορίες που δίνουν οι πάροχοι στο σύστημα (και είναι αυτές που καθορίζουν το «προφίλ» τους) εκφράζονται σε γλώσσα XML, δηλαδή κάθε πληροφορία που ένας πάροχος δίνει στο σύστημα είναι ένα XML έγγραφο. Το προφίλ του κάθε χρήστη εκφράζεται σε γλώσσα XPath, δηλαδή είναι ένα ερώτημα (ή περισσότερα) XPath. Στο παρακάτω σχήμα φαίνεται στα αριστερά το προφίλ ενός χρήστη (που αποτελείται από τρία XPath ερωτήματα) και στα δεξιά ένα XML έγγραφο που στέλνει κάποιος πάροχος. Το ταίριασμα ενός συγκεκριμένου XML εγγράφου με τα προφίλ ενός συνόλου χρηστών γίνεται με βάση το YFilter (http://yfilter.cs.berkeley.edu). Συγκεκριμένα, κατασκευάζεται ένα NFA με βάση τα προ-

φίλ του συνόλου αυτού των χρηστών, δηλαδή για κάθε XPath ερώτημα δημιουργείται ένα μονοπάτι από καταστάσεις στο NFA όπου κάθε μετάβαση αντιστοιχεί σε ένα βήμα επιλογής της έκφρασης XPath. Μια κατάσταση του NFA είναι τελική όταν η μετάβαση σε αυτή συνεπάγεται την ικανοποίηση κάποιου (ή κάποιων) XPath ερωτήματος. Η εκτέλεση του NFA οδηγείται κάθε φορά από τη συντακτική ανάλυση (parsing) ενός XML εγγράφου. Αν η εκτέλεση αυτή περιέλθει κάποια στιγμή σε μια τελική κατάσταση, αυτό σημαίνει ότι το XML έγγραφο (που οδηγεί την εκτέλεση) ικανοποιεί τα XPath ερωτήματα που έχουν τη συγκεκριμένη κατάσταση ως τελική και ως εκ τούτου έχει βρεθεί κάποιος χρήστης που το προφίλ του ταιριάζει με τις πληροφορίες που δημοσιεύει ο πάροχος. Παρακάτω φαίνεται το NFA που κατασκευάζεται από τα XPath ερωτήματα που φαίνονται δεξιά: 5. SPI Tree (Spatial & Profile Index ) Στη λύση που προτείνει η διπλωματική εργασία η χωρική ευρετηρίαση των χρηστών και η ευρετηρίαση με βάση το προφίλ τους ενοποιούνται σε μια διαδικασία, η οποία εκτελείται από μια δομή δεδομένων που αναπτύχθηκε για αυτό το σκοπό. Οι δομές που αναπτύχθηκαν έγιναν στη βάση ενός κεντρικοποιημένου (centralized) συστήματος κύριας μνήμης (main memory). Η δομή την οποία σχεδιάσαμε και υλοποιήσαμε ονομάζεται Spatial and Profile Index Tree (SPI-Tree) και προκύπτει από το «πάντρεμα» των PR-Quadtrees και του YFilter. Συγκεκριμένα, πρόκειται για ένα τετραδικό δέντρο, το οποίο ευρετηριάζει το χώρο χωρίζοντας τον αναδρομικά σε ορθογώνια, ακριβώς όπως και το PR-Quadtree. Αντίθετα όμως με το PR-Quadtree, το SPI tree δεν αποθηκεύει στα φύλλα του ένα δείκτη προς κάποιον χρήστη (ή ένα κουβά με δείκτες προς περισσότερους χρήστες), αλλά ένα δείκτη προς ένα NFA τύπου YFilter, που χρησιμοποιείται ως ευρετήριο των χρηστών που αντιστοιχούν στο φύλλο αυτό με βάση το προφίλ τους. Σε κάθε τελικό κόμβο του NFA υπάρχουν δείκτες προς τους χρήστες με προφίλ που ικανοποιούν αυτήν την τελική κατάσταση. Έτσι, στους εσωτερικούς κόμβους του δέντρου ευρετηριάζονται οι χρήστες χωρικά, ενώ στα φύλλα του δέντρου με βάση το προφίλ τους.. Το SPI tree είναι ένα τετραδικό δέντρο. Κάθε κόμβος αντιστοιχεί σε μια τετραγωνική περιοχή του χώρου και κάθε παιδί του αντιστοιχεί στο ¼ της περιοχής του πατρικού του κόμβου, δηλαδή κάθε παιδί ενός κόμβου καλύπτει το ένα τεταρτημόριό του, ενώ ο κόμβος-ρίζα του δέντρου αντιστοιχεί σε όλο το χώρο. Από την άλλη, κάθε φύλλο του δέντρου, που επίσης αντιστοιχεί σε μια περιοχή-τεταρτημόριο της περιοχής του πατέρα του, περιέχει ένα YFilter NFA (τροποποιημένο για τις ανάγκες του συγκεκριμένου συστήματος), δηλαδή μιας δομής στην οποία ευρετηριάζονται τα XPath προφίλ των χρηστών

του φύλλου. Έτσι, σε κάθε φύλλο του δέντρου δεν αποθηκεύουμε τα χωρικά αντικείμενα (χρήστες) με τις συντεταγμένες τους, όπως στις παραδοσιακές δομές χωρικής ευρετηρίασης, αλλά μόνο το NFA το οποίο είναι ένα ευρετήριο για τους χρήστες με βάση το προφίλ τους XPath query. Η χωρητικότητα ενός φύλλου ορίζεται ως η χωρητικότητα του NFA του φύλλου σε XPath queries και ένας κόμβος φύλλο μετατρέπεται σε εσωτερικό κόμβο του δέντρου (και χάνει το NFA του) όταν ο αριθμός των XPath queries που αντιστοιχούν σε χρήστες που βρίσκονται στην περιοχή που καλύπτει το φύλλο, ξεπεράσει τη μέγιστη χωρητικότητα του NFA. Στο παρακάτω παράδειγμα, υποθέτουμε ότι κάθε NFA, και άρα φύλλο, χωράει το πολύ 5 XPath ερωτήματα: Ακολουθεί το σχήμα του αντίστοιχου SPI δέντρου. Οι εσωτερικοί κόμβοι ονομάζονται με γράμματα, ενώ οι κόμβοι φύλλα με αριθμούς (για την οικονομία της παρουσίασης φαίνονται μόνο τα NFA που αντιστοιχούν στα φύλλα 1, 6, 7): Για την ανάλυση της πολυπλοκότητας των διαφόρων δοσοληψιών στη δομή ευρετηρίασης χρησιμοποιούνται στατιστικά μοντέλα και ανάλυση με χρήση πιθανοτήτων και παρατίθενται μέσες και ακραίες τιμές.

6. Εκτέλεση ερωτημάτων Σε ένα ερώτημα περιοχής (range query) ένας πάροχος περιεχομένου υποβάλλει στο σύστημα ένα XML έγγραφο και μια κλειστή γεωγραφική περιοχή (π.χ. μια κυκλική περιοχή) και παίρνει ως απάντηση το σύνολο των χρηστών που α) βρίσκονται τη στιγμή της αποτίμησης του ερωτήματος εντός της γεωγραφικής αυτής περιοχής και β) το έγγραφο ταιριάζει θεματικά με τις προτιμήσεις των χρηστών. Για την αποτίμηση ενός τέτοιου ερωτήματος κατεβαίνουμε αναδρομικά το δέντρο ακολουθώντας μονοπάτια με κόμβους που έχουν γεωγραφική επικάλυψη με την περιοχή του ερωτήματος και όταν φτάσουμε στα φύλλα (που έτσι επικαλύπτουν την περιοχή του ερωτήματος) εκτελούμε τα NFA των φύλλων με βάση το XML έγγραφο του ερωτήματος και παίρνουμε το ζητούμενο σύνολο χρηστών. Σε ένα ερώτημα εγγύτερου γείτονα ένας πάροχος περιεχομένου υποβάλλει στο σύστημα ένα XML έγγραφο και το αναγνωριστικό (id) ενός χρήστη (συνήθως το αναγνωριστικό του ιδίου) και παίρνει ως απάντηση το αναγνωριστικό του χρήστη που α) το προφίλ του ταιριάζει με το XML έγγραφο και β) έχει την ελάχιστη ευκλείδεια απόσταση από το χρήστη-αποστολέα, δηλαδή με ένα τέτοιο ερώτημα ο αποστολέας βρίσκει τον κοντινότερο χρήστη του οποίου το προφίλ ταιριάζει με το έγγραφο. Για την αποτίμηση ενός ερωτήματος εγγύτερου γείτονα, ξεκινάμε από το φύλλο στο οποίο βρίσκεται ο αρχικός χρήστης και αναζητούμε έναν χρήστη που το προφίλ του να ταιριάζει με το έγγραφο XML. Αν δε βρεθεί στο αρχικό φύλλο τον αναζητούμε στα γειτονικά φύλλα κ.ο.κ μέχρι να βρεθεί ένας. Όταν βρεθεί εκτελούμε ένα range query με ακτίνα την απόσταση του χρήστη αυτού από τον αρχικό και διαπιστώνουμε αν υπάρχει κάποιος κοντινότερος χρήστης που ταιριάζει ή όχι. 7. Αλγόριθμος Κλειδωμάτων Οι απαιτήσεις για αποδοτικότητα στην παραπάνω δομή δεικτοδότησης κατέστησαν απαραίτητη την υλοποίηση ενός πρωτοκόλλου κλειδωμάτων στο ευρετήριο ώστε να είναι δυνατή η ταυτόχρονη προσπέλαση πολλαπλών νημάτων σε αυτό για ανάγνωση ή εγγραφή. Το πρωτόκολλο σχεδιάστηκε εξ αρχής χρησιμοποιώντας δύο τύπους κλειδώματος, το κλείδωμα αποκλειστικής (x-lock) και μοιραζόμενης πρόσβασης (s-lock). Δεν γίνονται κλειδώματα πρόθεσης αλλά οι διασχίσεις στο δέντρο ανακατευθύνονται σε έγκυρους κόμβους σε περίπτωση τροποποίησης της δομής του δέντρου. Επιτρέπει την εισαγωγή χρηστών και πράξεις ανάγνωσης διατρέχοντας τους κόμβους του δέντρου από πάνω προς τα κάτω (top down) ενώ η διαγραφή να γίνεται με απευθείας προσπέλαση στο φύλλο και στη συνέχεια οπισθοδρόμηση (backtracking) για ενδεχόμενη σύμπτυξη των κόμβων του δέντρου. Το πρωτόκολλο μεριμνά ι- διαίτερα για την αποδοτική υλοποίηση της ενημέρωσης της θέσης ενός χρήστη για μικρές μετακινήσεις. Με τη χρήση του πρωτοκόλλου αποφεύγονται τα αδιέξοδα (deadlocks). Μοναδικό κόστος που προέκυψε από τις υψηλές απαιτήσεις για αποδοτικότητα είναι η μη αποφυγή της λιμοκτονίας (starvation) σε ορισμένες περιπτώσεις που δεν έχει λειτουργικές συνέπειες παρά μόνο θεωρητικό ενδιαφέρον. 8. Interface Συστήματος - Υλοποίηση Για όλες τις λειτουργίες που προσφέρει το σύστημα, έχει υλοποιηθεί Web Services interface για τη χρησιμοποίησή τους μέσω ενός δικτύου. Το βασικό σύστημα αποτελεί ένα κεντρικό εξυπηρετητή τις

υπηρεσίες του οποίου μπορούν οι χρήστες να καλούν ασύγχρονα και εξ αποστάσεως μέσω Web Services. Επίσης, έχει υλοποιηθεί βάση δεδομένων για τη μόνιμη αποθήκευση λειτουργικών δεδομένων της εφαρμογής όπως οι εγγεγραμμένοι χρήστες, τα στοιχεία τους, η τελευταία γεωγραφική θέση και το τελευταίο προφίλ που έστειλαν στο σύστημα. Στην βάση αυτή μπορούν να αποθηκευτούν και δεδομένα για την εξαγωγή στατιστικών συμπερασμάτων και πληροφοριών για τις τυχόν χρεώσεις που αναλογούν σε κάθε χρήστη ή πάροχο (π.χ. ποια ερωτήματα έχουν γίνει και από ποιους χρήστες, σε πόσους και ποιους χρήστες έφτασε κάθε έγγραφο πληροφορίας κτλ.). Η υλοποίηση του συστήματος έγινε σε Java 1.5.0_07. Για την υλοποίηση των Web Services χρησιμοποιήθηκε το πακέτο Apache Axis, ενώ ως Σύστημα Διαχείρισης Βάσης Δεδομένων χρησιμοποιήθηκε η MySQL 5.0. Η υλοποίηση των NFA του YFilter βασίστηκε στον κώδικα του UC Berkeley, στον οποίο έγιναν οι απαραίτητες προσθήκες και τροποποιήσεις για την αποδοτικότερη λειτουργία των αυτομάτων ως μέρους του SPI tree. 9. Πειραματικά αποτελέσματα Για την αξιολόγηση του συστήματος αναπτύχθηκαν σενάρια χρήσης και μετρήθηκε η απόδοσή του για διαφορετικές τιμές μεγεθών του δέντρου όπως πλήθος χρηστών, αριθμός χρηστών ανά κουβά, μέγιστο ύψος δέντρου κτλ.. Οι αφίξεις των ενημερώσεων στο σύστημα και των ερωτημάτων θεωρήθηκε πως ακολουθούν την κατανομή Poisson (ο χρόνος μεταξύ διαδοχικών αφίξεων ακολουθεί εκθετική κατανομή) και έγιναν πειράματα για διαφορετικές μέσες τιμές της κατανομής. Τα αποτελέσματα εκτίθενται σε συγκριτικά διαγράμματα.