Στην παρούσα διπλωματική εργασία επιχειρείται η ανάπτυξη ενός κοινού πλαισίου πρόσβασης σε έναν αριθμό διαφορετικών NoSQL συστημάτων. Το API θα περιγράφει μία υπάρχουσα βάση δεδομένων και θα προσφέρει ένα σύνολο λειτουργιών (select, update, insert, delete) συμβατών με το REST μοντέλο. Τα επιστρεφόμενα δεδομένα θα αναπαρίστανται ως JSON δεδομένα. Η ανάπτυξη γίνεται στην γλώσσα Java ενώ αξιοποιείται το REST ως αρχιτεκτονικό στυλ παροχής web υπηρεσιών σύμφωνα με τον ορισμό και τους περιορισμούς που αυτό προτείνει.
Γίνεται εγκατάσταση των MongoDB, CouchDB και Bigtable σε Java εξυπηρετητή προσβάσιμο από το internet και διερευνώνται τα κοινά σημεία τους και οι διαφορές τους κατά την ανάπτυξη του κώδικα.
Το υπό ανάπτυξη API πετυχαίνει να εκτελέσει τις συνήθεις εντολές αναζήτησης, εισαγωγής, ενημέρωσης και διαγραφής με τρόπο αδιάφανο για τον χρήστη και την ακριβής υλοποίηση της ΒΔ στην οποία εκτελούνται αυτές οι εντολές, και χωρίς την χρήση ενός οδηγού, αλλά μόνο με κλήσεις HTTP.
Το API θα έχει την δυνατότητα να παρέχει πρόσβαση σύμφωνα με προκαθορισμένες λίστες χρηστών με τα απαραίτητα δικαιώματα. Πέρα από την βασική CRUD λειτουργικότητα, θα έχει την δυνατότητα για επιπλέον λειτουργίες, όπως λειτουργίες σύνθετης αναζήτησης, σύμφωνα με λεξικό που θα αναπτυχθεί και οι οποίες θα υλοποιηθούν κατά περίπτωση στον βαθμό που η συγκεκριμένη ΒΔ το επιτρέπει.
Πρέπει να ειπωθεί ωστόσο, ότι αποφεύχθηκε η αξιοποίηση μοναδικών χαρακτηριστικών και δυνατοτήτων των ΒΔ που θα αύξαναν την πολυπλοκότητα του API.
This diploma thesis is an attempt to develop an API for uniform access to a number of different NoSQL systems. The API will be able to describe an existing database and offer a way of CRUD functionality using the HTTP protocol. The retrieved data will be represented as JSON objects. The Java language is being used for the development while the API tries to adhere to the RESTful architectural style and all the constraints it proposes.
MongoDB, CouchDB, and Bigtable are installed on a Java server accessible through the internet while their common points and differences are explored during development.
The API under development succeeds in executing the usual CRUD functionality in a non-transparent way for the client including the exact implementation of the DB to which these commands are executed and without the use of a driver but issuing only HTTP calls.
The API will be able to provide access based on pre-defined access-control lists on a per DB basis. In addition to basic CRUD functionality there will be additional capabilities, like advanced search capabilities, based on a dictionary to be defined. Those capabilities will be implemented in so far as the certain DB allows for such functions to be developed.
However, it should be noted that the use of unique characteristics and capabilities of distinct NoSQL implementations was avoided so as to not increase the complexity of the API.
Δημιουργία πλαισίου πρόσβασης/αξιοποίησης NoSQL συστημάτων με διαφύλαξη της ιδιωτικότητας με χρήση HTTP πρωτοκόλλου Description: 130996_ΜΠΕΣΗΣ_ΕΥΑΓΓΕΛΟΣ.pdf (pdf)
Book Reader Licence: Αναφορά Δημιουργού 4.0 Διεθνές Info: Κυρίως σώμα διπλωματικής Size: 3.0 MB
Δημιουργία πλαισίου πρόσβασης/αξιοποίησης NoSQL συστημάτων με διαφύλαξη της ιδιωτικότητας με χρήση HTTP πρωτοκόλλου - Identifier: 78010
Internal display of the 78010 entity interconnections (Node labels correspond to identifiers)