Τεχνολογίες ΒΔ για κινητό και διάχυτο υπολογισμό Βάσεις Δεδομένων ΙΙ Πανεπιστήμιο Πατρών ΤΜΗΥΠ Α.Κομνηνός Μάιος 2011
Τι είναι ο διάχυτος υπολογισμός; The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it. We call our work "ubiquitous computing". This is different from PDA's, dynabooks, or information at your fingertips. It is invisible, everywhere computing that does not live on a personal device of any sort, but is in the woodwork everywhere. Weiser 1991: The computer for the 21 st century
Αρχιτεκτονική ΔΥ Server Store & process information [Hansmann 2003] Workstation Edit & Manage information Device Create & Access information Services Infrastructure Content Communication Access Standards XHTML GSM HTTP Bluetooth Interoperability 802.11g Java XML SQL
Χαρακτηριστικά ΔΥ Ετερογένεια συσκευών και δικτύων Ανάγκη για: Καταμερισμό υπολογιστικών διεργασιών και αποθήκευσης των δεδομένων σε ετερογενείς συσκευές/συστήματα Συνδεσιμότητα Ανταλλαγή δεδομένων Κατανόηση πολυτροπικών μέσων εισόδου δεδομένων (επερωτημάτων) Επαύξηση άμεσων εισόδων του χρήστη με επιπλέον στοιχεία (context) Φιλτράρισμα της πληροφορίας και παρουσίαση στον χρήστη Υποστήριξη διακεκομμένης πρόσβασης / ασύγχρονης ενημέρωσης
Πρόσβαση στην Πληροφορία Διάχυτη πρόσβαση στην Πληροφορία Αποθήκευση & διαχείριση δεδομένων (πως; Πού;) Ερωτήματα Ανάκτηση δεδομένων Παρουσίαση δεδομένων Κατανεμημένες και κινητές Βάσεις Δεδομένων
Συστήματα κινητών ΒΔ Κατανεμημένο σύστημα με συνδεσιμότητα κινητών Πλήρεις δυνατότητες ΣΔΒΔ Πλήρης κινητικότητα (ανεξαρτησία) δεδομένων Πρόσβαση με ενσύρματα και ασύρματα δίκτυα
Παραδείγματα Διαχείριση κίνησης δρόμων Αποστολή ταξί Υπηρεσίες άμεσης ανάγκης (φωτιά, ασθενοφόρο) Πλοήγηση αυτοκινήτων Αναζήτηση και σύσταση πληροφοριών με βάση την τοποθεσία (τουρ. Οδηγοί) Κοινωνικές εφαρμογές (ανταλλαγή πληροφοριών και απόψεων)...
Περιορισμοί Περιορισμένο εύρος ζώνης και ταχύτητα επικοινωνίας Διακεκομμένη συνδεσιμότητα Περιορισμένη ισχύς (υπολογιστική και μπαταρία) Περιορισμένα μεγέθη και αναλύσεις οθόνης Περιορισμοί στην εισαγωγή δεδομένων (επερωτήματα;) Περιορισμένος αποθηκευτικός χώρος Ασφάλεια / ιδιωτικότητα
Ικανότητες Παντού: Τα δεδομένα είναι προσβάσιμα από οποιοδήποτε σημείο της γής Πάντοτε: (αρκεί να υπάρχει κάποιος τρόπος συνδεσιμότητας!) Αποδοτικότητα: Καταμοιρασμός της υπολογιστικής διαδικασίας Αποτελεσματικότητα: Αυτό που πραγματικά χρειάζεται ο χρήστης, όταν το χρειάζεται, εκεί που το χρειάζεται (απαλοιφή πλεονάζουσας πληροφορίας).
Θέματα Διαχείριση δεδομένων Αποθήκευση (caching) δεδομένων Αναπαράσταση και αποθήκευση κινητών δεδομένων (συγχώνευση & μεταγλώττιση σχημάτων) Κατηγοριοποίηση δεδομένων Διαχείριση δοσοληψιών Επεξεργασία επερωτήσεων Έλεγχος συγχρονικότητας Ανάνηψη από σφάλματα
Διαχείριση δεδομένων Πως να βελτιώσουμε την διαθεσιμότητα των δεδομένων Caching: Αποτελέσματα προηγούμενων επερωτήσεων αποθηκεύονται στις κινητές συσκευές Επεξεργασία των query logs για μεγαλύτερη προσαρμογή και συστάσεις στον χρήστη Αναπαράσταση και αποθήκευση κινητών δεδομένων Χωρική διαχείριση δεδομένων Δεικτοδότηση και ανάκτηση Μεταγλώττιση σχημάτων (server[s] mobile) Κατηγοριοποίηση δεδομένων Ανάλογα με τον χώρο Ανεξάρτητα από αυτόν Μεταβλητότητα (context!)
Caching Αποθήκευση προηγούμενων αποτελεσμάτων στην συσκευή Μέγεθος cache? Συχνότητα ενημερώσεων; Ακεραιότητα; Ανάλυση query logs Εκμάθηση των προτιμήσεων του χρήστη λέξεις-κλειδιά, κατηγορίες, τοποθεσία Collaborative filtering για την σύσταση περαιτέρω πληροφοριών (ίσως από τρίτες πηγές)
Αναπαράσταση και αποθήκευση Χωρική διαχείριση Πληροφορία θέσης δεδομένων Όγκος πληροφορίας, συχνότητα ανανέωσης Άλλα είδη context? Temporal, user, activity, social Δεικτοδότηση και ανάκτηση Πολυδιάστατα δεδομένα Δομές για την ανάκτηση ανάλογα με το context των δεδομένων / του επερωτήματος / του χρήστη /...!!!
Κατηγοριοποίηση δεδομένων Ανάλογα με τη θέση Location based Services (LBS) Π.χ. Όλα τα κοντινά βενζινάδικα ή εστιατόρια μέχρι 10 περπάτημα μακριά Η Κατανομή ή αναπαραγωγή των δεδομένων πρέπει να λαμβάνει υπ όψιν την τοποθεσία (από όπου είναι πιθανότερο να αναζητηθούν τα δεδομένα;) Ανεξαρτησία από την θέση Στατικά δεδομένα (όνομα χρήστη, αρ. λογαριασμού, κτλ).
Διαχείριση δοσοληψιών Επεξεργασία επερωτημάτων Έλεγχος συγχρονικότητας Ανάνηψη από σφάλματα
Επερωτήματα Εξαρτώμενα από το context Ενήμερα (aware) για το context Ανεξάρτητα
Επερωτήματα με βάση τη θέση Ένα επερώτημα του οποίου το αποτέλεσμα εξαρτάται από τη γεωγραφική περιοχή από την οποία υποβάλλεται Π.χ. Τα τρία πλησιέστερα βενζινάδικα Ο συντομότερος δρόμος προς το πάρκο Χρήση GPS Μόνο στο ύπαιθρο! Άλλοι τρόποι;
Επερωτήματα ενήμερα για τη θέση Επερωτήματα των οποίων το πλαίσιο (context) μπορεί να σχετίζεται με τοποθεσίες Π.χ. Βρες όλα τα νούμερα των αυτοκινήτων που πέρασαν από το φανάρι μεταξύ 7-8μμ. Τους 5 δρόμους με την μεγαλύτερη κίνηση (χαμηλότερη μέση ταχύτητα) στην Αθήνα (Το φανάρι και η Αθήνα δεν είναι απαραίτητα απόλυτα δεδομένα θέσης!)
Έλεγχος συγχρονικότητας Παρόμοια θέματα με τις κατανεμημένες βάσεις Συχρονισμός με το ρολόι Timestamps, system clocks etc Καθυστέρηση απόκρισης στις κινητές επερωτήσεις Θέματα ακεραιότητας cache Όγκος δεδομένων;
Ανάνηψη Συμβατικά γνωρίσματα δοσοληψιών (ACID) Ατομικότητα Συνέπεια Απομόνωση Ανθεκτικότητα (σε σφάλματα) Μπορεί να είναι υπερβολικά «άκαμπτα» για διάχυτες ΒΔ. Διακεκομμένη συνδεσιμότητα, μεγάλο overheads (ζεύξη ετερογενών δικτύων) Δυσκολία στην εφαρμογή κλειδωμάτων Δυσκολία στην επεξεργασία αποτελεσμάτων (στην συσκευή)
Άλλα θέματα M-Commerce: Η ασφάλεια δεδομένων είναι κρίσιμη! Τα ασύρματα δίκτυα είναι εγγενώς λιγότερο ασφαλή Εναλλακτικοί τρόποι διασφάλισης προσωπικών δεδομένων Εναλλακτικοί τρόποι ταυτοποίησης του χρήστη;
Ερευνητικά θέματα Νέοι τύποι δεδομένων: Οντολογίες vs. διανύσματα (context metadata) Δεικτοδότηση και αποθήκευση δεδομένων Αποδοτικότερη επεξεργασία επερωτημάτων και ανάκτησης πολυτροπικά επερωτήματα Επαύξηση επερωτημάτων με βάση το context Προσαρμογή αποτελεσμάτων για μικρές οθόνες ή καθόλου οθόνες (πολυτροπική έξοδος) Αυτόματη περίληψη και προσαρμογή δεδομένων στον χρήστη Επεκτάσιμοι αλγόριθμοι για αυξανόμενα σε μέγεθος συστήματα Κοινοποίηση γνώσης (όχι δεδομένων;) ανάμεσα σε peers Ασφαλής ανάκτηση δεδομένων
ΒΔ για κινητές/διάχυτες συσκευές SQLite Microsoft SQL server Compact SQLAnywhere
SQLite Ανοικτού κώδικα! Δοσοληψίες ACID ακόμα και μετά από αστοχία λειτουργικού / πτώση παροχής Δεν απαιτεί confiburation Υποστηρίζει το μεγαλύτερο μέρος της SQL92 Αποθήκευση σε μοναδικό αρχείο (cross-platform compatible) TB για Βάσεις Δεδομένων και GB για blobs/strings Μικρές απαιτήσεις σε χώρο και μνήμη - 325KiB fully configured <190KiB ο βασικός πυρήνας Γραμμένη σε ANSI-C, διαθέσιμα bindings για πάρα πολλές άλλες γλώσσες Cross-platform: Unix (Linux and Mac OS X), OS/2, και Windows (Win32 και WinCE)
SQLite
SQLAnywhere (Sybase) Windows, Windows CE, Mac OS X και πολλές εκδόσεις UNIX όπως Linux, AIX, HP-UX και Solaris. Τα αρχεία είναι ανεξάρτητα από το λειτουργικό (cross-platform) Standard interfaces (ODBC, JDBC, and ADO.NET) Special (PHP και Perl). Αποθήκευση λειτουργιών, user functions (Watcom SQL, T-SQL, Java, ή C/C++), triggers, ακεραιότητα αναφορών, row-level locking, replication, proxy tables, και events (scheduled και system events). Δυνατή κρυπτογράφηση για τα αρχεία και την επικοινωνία. Χρησιμοποιείται και σαν κινητή ΒΔ αλλά και για την εξυπηρέτηση μικρών workgroups Υποστηρίζει 2D/3D δεδομένα
SQL Anywhere
SQL Anywhere Server Windows x86, x64 and Itanium Windows Mobile Novell NetWare Linux x86, x64 and Itanium Sun Solaris SPARC and x64 Mac OS X on Intel IBM AIX HP-UX PA-RISC and Itanium UltraLite Windows Windows Mobile Palm OS Symbian OS UltraLite J BlackBerry OS 4.1 and later SQL Anywhere
SQL Server Compact Μεμονωμένες και μερικώς συνδεδεμένες εφαρμογές για κινητά, desktop, web-clients Υποστηρίζει μόνο λειτουργικά Microsoft Μοναδικό αρχείο Υποστηρίζει μεγάλο μέρος T-SQL και MS SQL Server data types
SQL Server compact