fyi... ---------- Forwarded message ---------- From: Michalis Polakis <mpolakis [ at ] gmail [ dot ] com> Date: 2009/2/16 Subject: Διαγωνισμός ανάπτυξης ΕΛ/ΛΑΚ To: info [ at ] ellak [ dot ] gr ================================================================= ΤΙΤΛΟΣ: Επικαιροποίηση και Βελτίωση Αντάπτορα MonetDB-ActiveRecord για το σύστημα Ruby on Rails ================================================================= Ο αντάπτορας[4] για το MonetDB[1][2] και το ActiveRecord που χρησιμοποιείται από το Ruby on Rails[3] χρήζει ανανέωσης και βελτίωσης ώστε να μπορεί να δουλέψει με τις νέες εκδόσεις και των δύο προγραμμάτων. Επίσης χρήζει refactoring και εκτεταμένου testing ώστε να γίνει πιο αποδοτικός και να βεβαιωθούμε ότι δουλεύει (αναγκαίο από τη φύση του λογισμικού). Προς το παρόν δουλεύει για τις εκδόσεις των προγραμμάτων του περασμένου Αυγούστου, οπότε και είχε γραφτεί αρχικά στο πλαίσιο της πτυχιακής μου εργασίας. Τέλος είναι αναγκαίο να ανανεωθεί, εμπλουτιστεί και μεταφραστεί η τεκμηρίωσή του. Τα αποτελέσματα των δράσεων αυτών θα αποτελέσουν και τα παραδοτέα του έργου. Ιστορικό και Στόχοι -------- Το ΜonetDB[1][2] είναι ένα μοντέρνο σύστημα διαχείρισης βάσεων δεδομένων(DBMS) ανοικτού κώδικα που αναπτύσσεται στο CWI. Παρέχει υψηλή απόδοση σε query-intensive εφαρμογές, όπως On Line Analytical Processing (OLAP) και data mining. Οι κύριες καινοτομίες του είναι η χρήση κάθετης κατάτμησης (vertical fragmentation) σαν σχήμα αποθήκευσης, η επεκτάσιμη αρχιτεκτονική, ο προσανατολισμός για εκτέλεση στην κύρια μνήμη και η αυτόματη οργάνωση της οργάνωσης των δεδομένων. Από την άλλη, το Ruby on Rails[3] είναι ένα δημοφιλές framework για την γρήγορη ανάπτυξη εφαρμογών ιστού. Βασίζεται στη γλώσσα Ruby και στις αρχές "Μην επαναλαμβάνεσαι - Don't Repeat Yourself" και "Σύμβαση αντί Ρυθμίσεων - Convention over Configuration" οι οποίες μειώνουν τις αποφάσεις που πρέπει να λάβει ο προγραμματιστής, ευνοούν την απλότητα και εν τέλει τον διευκολύνουν στο έργο του. Οι εφαρμογές που έχουν υλοποιηθεί με Ruby on Rails ακολουθούν την αρχιτεκτονική Model-View-Controller (MVC). Το Model κομμάτι, υλοποιείται από το ActiveRecord, και οποίο συνδέει επιχειρησιακά αντικείμενα με πίνακες της βάσης δεδομένων (Object Relational Mapping - ORM). Ο αντάπτορας MonetDB-ActiveRecord επιτρέπει στα δύο αυτά συστήματα να συνεργαστούν με σκοπό την υλοποίηση data driven web εφαρμογών που βασίζονται στο Ruby on Rails και στο MonetDB και εκμεταλλεύονται τα προτερήματα των δύο αυτών συστημάτων. Φιλικότητα προς το χρήστη και γρήγορη ανάπτυξη εφαρμογών το ένα, εξαιρετική απόδοση το άλλο. Το λογισμικό αυτό είναι χρήσιμο για επιχειρήσεις/οργανισμούς που δραστηριοποιούνται στην ανάπτυξη web εφαρμογών και αποτελούν μεγάλο κομμάτι της εγχώριας βιομηχανίας πληροφορικής. Επίσης, εκμεταλλευόμενο τα πλεονεκτήματα του MonetDB, μπορεί να χρησιμοποιηθεί πολύ αποτελεσματικά για Web Reporting, Dashboard, Analytics και Data Mining εφαρμογές. Υπάρχουν ήδη αντίστοιχοι αντάπτορες για άλλα DBMS, όπως SQLite, MySQL, PostGres, Oracle, κλπ, οι οποίοι λειτουργούν ικανοποιητικά αλλά γενικα υπολείπονται σε απόδοση σε query-intensive εφαρμογές λόγω της αρχιτεκτονικής των DBMS για τα οποία υπάρχουν(row-store vs column-store[2][5]). Το MonetDB καθώς και ο αντάπτορας διατίθενται με την άδεια χρήσης MonetDB License η οποία είναι όμοια με την Mozilla Public License 1.1 με μόνη διαφορά την αντικατάσταση των αναφορών στο Mozilla με αντίστοιχες στο MonetDB[6]. Παραδοτέα --------- - Επικαιροποίηση του υφιστάμενου κώδικα σε Ruby και προσθήκη του στο repository του Rubyforge - Ανανεωμένη και εμπλουτισμένη τεκμηρίωση - Μετάφραση της τεκμηρίωσης στα Ελληνικά - Επικαιροποίηση και προσθήκη νέων test-cases - Gem πακέτο, για εύκολη και αυτοματοποιημένη εγκατάσταση Χρονοδιάγραμμα -------------- - 28/2: Στήσιμο του περιβάλλοντος, με τις νεότερες εκδόσεις των προγραμμάτων - 7/3: Ανανέωση προηγούμενης γνώσης πάνω στα εργαλεία και ξεκίνημα της προγραμματιστικής δουλειάς - 28/3: Επικαιροποίηση και συγγραφή νέων test cases για τουλάχιστον 60% του κώδικα - 25/3: Συγγραφή test-cases για 50% του κώδικα - 11/4: Ολοκλήρωση του gem πακέτου - 21/4: Ανανέωση και εμπλουτισμός τεκμηρίωσης - 26/4: Μετάφραση τεκμηρίωσης - 9/5: Εκτεταμένο testing και ολοκλήρωση του έργου Γιατί εμένα ----------- Μιχάλης Πολάκης Ε.Α.Μ. 9, 71309, Ηράκλειο Κρήτης +30 2811 102124, +30 6973652815 ΑΦΜ : 135234599, Β ΔΟΥ Χανίων Είμαι στο 5ο έτος σπουδών στο τμήμα Επιστήμης Υπολογιστών του Πανεπιστημίου Κρήτης και έχω αρκετή εμπειρία λόγω των σπουδών μου σε προγραμματισμό και ελεύθερο λογισμικό γενικότερα. Η εργασία που προτίθεμαι να πραγματοποιήσω αποτελεί συνέχεια της πτυχιακής μου εργασίας[4] την οποία πραγματοποίησα στο CWI υπό την εποπτεία του Martin Kersten, κατά τη διάρκεια της παραμονής μου στο Άμστερνταμ στο πλαίσιο του προγράμματος Εράσμους. Έχω την απαραίτητη εμπειρία που απαιτείται για ανάπτυξη του συγκεκριμένου λογισμικού και επιπλέον έχω συνεργαστεί αποτελεσματικά με την κοινότητα των δύο προϊόντων. Συνεπώς θεωρώ πως είμαι το κατάλληλο άτομο για να φέρω σε πέρας τη συγκεκριμένη εργασία. Αναφορές -------- [1]http://sourceforge.net/projects/monetdb/ [2]http://monetdb.cwi.nl/ [3]http://rubyonrails.org/ [4]http://monetdb-ror.rubyforge.org/ [5]http://db.csail.mit.edu/projects/cstore/ [6]http://monetdb.cwi.nl/projects/monetdb/Development/Legal/index.html -- Πριν εκτυπώσετε αυτό το μήνυμα, σκεφθείτε το περιβάλλον! Ένα χαρτί λιγότερο! - http://karounos.gr/blog/