Jun 24, 2007

Oracle Develop 2007 in Prague - Εντυπώσεις

Το διήμερο 21-22 Ιουνίου πραγματοποιήθηκε στην Πράγα η συνέχεια της εκδήλωσης Oracle Develop, που έχει διανύσει ήδη την αμερικάνικη και την ασιατική ήπειρο και τώρα βρίσκεται στην Ευρώπη (http://www.oracle.com/technology/events/develop2007/index.html) Η εκδήλωση απευθύνεται σε developers και αποσκοπεί στην ενημέρωσή τους σχετικά με προϊόντα και εξελίξεις, την πρακτική εφαρμογή όσων παρουσιάζονται με τη βοήθεια hands-on sessions, και τέλος, και ίσως σημαντικότερο, την επαφή και γνωριμία με τους "ειδικούς" της Oracle, σε κάθε προϊόν. Με πολύ μεγάλη μου χαρά θα σας παρουσιάσω σε αυτό το άρθρο τις εντυπώσεις μου από αυτό το διήμερο καθώς και τις σκέψεις που μου δημιουργήθηκαν.

Το event έλαβε μέρος στο Συνεδριακό Κέντρο της Πράγας (Congress Center) και το παρακολούθησαν περίπου 700 άνθρωποι από 36 χώρες. Οι συνεδρίες ήταν διάρκειας μιας ώρας η κάθε μια και συντελούσαν σε ένα εντατικό και πολύ ενδιαφέρον πρόγραμμα από 10.30 το πρωϊ μέχρι τις 6.30 το απόγευμα. Οι άξονες του ενδιαφέροντος ήταν Java, SOA, .NET και Database. Αξίζει να σημειωθεί πως ειδικά για τις τεχνικές συνεδρίες (hands-on sessions) οι αίθουσες ήταν εφοδιασμένες με σειρές από laptops Dell Latitude με επεξεργαστή Core Duo 2 και μνήμη 2GB ώστε ο κάθε ένας χρήστης να έχει το δικό του. Το επίπεδο των εισηγητών αλλά και των παρουσιάσεων κυμάνθηκε σε υψηλό επίπεδο και για κάθε hands-on session αποκομίσαμε ένα βιβλίο που εξέθετε αναλυτικά κάθε άσκηση.

Κάνοντας μια σύνθεση αυτών που ακούστηκαν και εντάσσοντας τα σε κατηγορίες, τα πιο ενδιαφέροντα σημεία ήταν τα ακόλουθα:
  1. Oracle Database Server. To launching της 11g θα πραγματοποιηθεί μέσω webcast στις 11 Ιουλίου (http://www.oracle.com/webapps/events/EventsDetail.jsp?p_eventId=66665) Ανάμεσα στα αναμενόμενα χαρακτηριστικά είναι:
    1. Η δυνατότητα καταγραφής του φόρτου και των συνθηκών ενός συστήματος (όπως sessions, παράμετροι) και η δυνατότητα αναπαραγωγής του σε άλλο σύστημα. Ένα αφάνταστα χρήσιμο χαρακτηριστικό που θα ωφελήσει όλους θέλουν να δοκιμάσουν σε πραγματικό φόρτο ένα testing περιβάλλον
    2. Ο μηχανισμός caching θα παρουσιάσει αρκετές βελτιώσεις ώστε με διαφανή τρόπο, παρόμοια queries να μοιράζονται τα ίδια αποτελέσματα και να εκτελούνται πιο γρήγορα
    3. Θα προσφέρεται πια η δυνατότητα connection pooling και για την PHP
    4. Βελτιώσεις στην PL/SQL ώστε να επιταχύνεται το compilation με το έλεγχο των εξαρτήσεων μιας function ή procedure όχι σε επίπεδο package, αλλά σε επίπεδο function ή procedure που σχετίζονται με αυτήν, όπως επίσης και real native compilation, απευθείας σε κώδικα μηχανής. Επίσης, δυνατότητα inlining συναρτήσεων (με την επιλογή pls_optimize_level = 3), caching αποτελεσμάτων σε ένα query, ιδιαίτερά χρήσιμο όταν αυτό είναι σύνθετο και περιλαμβάνει sub-queries που διαβάζουν τα ίδια δεδομένα με το hint /*+ result_cache */ Ως προς τους triggers, θα είναι πλέον δυνατόν να γίνονται disabled, να ορίζεται η σειρά εκτέλεσής τους καθώς και να ομαδοποιούνται ώστε ένας μόνο trigger να περιλαμβάνει statements όπως before statement..., before each row... Επιπλέον, δεν θα χρειάζεται SELECT statement για την επιλογή της επόμενης τιμής ενός sequence. Τέλος, από τα πιο αναμενόμενα χαρακτηριστικά είναι η υποστήριξη του Go to Declaration, στο περιβάλλον του SQL Developer, που θα παραδοθεί μαζί με την Oracle 11g, έπειτα από την επιλογή του ονόματος ενός πακέτου ή procedure, καθώς και η γραφική υποστήριξη του PL/SQL profiler του πακέτου dbms_profiler.
  2. Oracle Application Server.
    1. Αλλαγή στη φιλοσοφία και τη σύνθεση των Application Servers. Σε όλες τις παρουσιάσεις που είχαν να κάνουν με τον OAS αλλά και την ανάπτυξη των εφαρμογών, ακούσαμε πολλές φορές τις λέξεις JPA, EJB3, TopLink, Spring και JSF. Αυτό δεν είναι καθόλου τυχαίο, δεδομένου ότι η Oracle έχει πάρει την στρατηγική απόφαση να υποστηρίξει ανοικτά πρότυπα στην ανάπτυξη λογισμικού, γεγονός που αποδεικνύεται με την συμμετοχή της σε διάφορους οργανισμούς όπως το OSGi Alliance, Eclipse Foundation, προσφορές κώδικα στο Apache, όπως του ADF Faces κτλ. Διαφαίνεται πως το open source, έχει εισβάλλει για τα καλά με τη δυναμική του στους εμπορικούς Application Servers, οι οποίοι με τη σειρά τους, στηρίζονται σε ολοένα και αυξανόμενο βαθμό σε open source projects. Γι' αυτό το λόγο, φαίνεται πως στο επόμενο χρονικό διάστημα θα παίξει μεγάλο ρόλο η πακετοποίηση λύσεων και βιβλιοθηκών βασισμένες στο OSGi (http://www.osgi.org/) ώστε να μπορούν να εντάσσονται εύκολα (σκεφτείτε πόσο γρήγορα προκύπτουν νέες εκδόσεις στα open source projects) στο περιβάλλον ενός Application Server.
    2. Κάτι επίσης που θα μας απασχολήσει στο επόμενο διάστημα είναι το Service Component Architecture (SCA) που αναλαμβάνει την ομαδοποίηση σε ροές εργασιών BPEL, message hubs που χρησιμοποιούνται, business rules και την παραμετροποίηση που χρειάζονται ώστε να συνθέσει ένα επαναχρησιμοποιήσιμο στοιχείο σε μια αρχιτεκτονική SOA. Με άλλα λόγια, διαμέσου αυτού των στοιχείων, θα είναι δυνατή η σύνθεση ροών, που αποτελούνται από επιμέρους στοιχεία, που θα επικοινωνούν μεταξύ τους με σαφώς καθορισμένο τρόπο. Ας αρχίσουμε δηλαδή να βλέπουμε τις ροές BPEL ως κομμάτια ενός γενικότερου παζλ μιας αρχιτεκτονικής, που συνθέτει και ταιριάζει, ανάλογα με τις ανάγκες άλλα κομμάτια (components)
    3. Ένα πολύ ελπιδοφόρο προϊόν είναι το Oracle Coherence (http://www.oracle.com/technology/products/coherence/index.html), που αφορά την κατανεμημένη διαχείριση μνήμης σε ένα cluster από Application Servers. Προέρχεται από την εξαγορά του Tangosol, είναι JCache-compliant και έρχεται να αντικαταστήσει ανάμεσα στα άλλα και το Java Object Cache. Καθώς ο φόρτος στους Application Servers αυξάνεται, το Oracle Coherence λειτουργεί ως μηχανισμός μνήμης για ένα cluster από Application Servers, προσφέροντας δυνατότητες για διάφορες τοπολογίες, ενεργοποίησης γεγονότων (για παράδειγμα η αλλαγή της τιμής ενός πεδίου ενός object) και πολλά άλλα. Με άλλα λόγια απευθύνεται σε μια grid αρχιτεκτονική από Application Servers που έχοντας στη διάθεσή τους αρκετή μνήμη, μπορούν να εξυπηρετήσουν γρήγορα και με αντοχή σε σφάλματα, τις αιτήσεις των χρηστών. Το ενδιαφέρον είναι πως το Oracle Coherence θα χρησιμοποιηθεί εσωτερικά από την OAS στην έκδοση 11g για το state replication σε cluster και ότι επίσης θα αντικαταστήσει το OPMN. Επίσης, δύναται να χρησιμοποιηθεί και από .ΝΕΤ εφαρμογές.
    4. Ενδιαφέρουσα ήταν η επίδειξη της χρήσης proxy authentication στον Application Server. Αυτό μπορεί να συμβαίνει σε εφαρμογές που στηρίζονται σε auditing ή εφαρμογή πολιτικών (για παράδειγμα Virtual Private Database) με βάση database χρήστες. Η έκδοση 10.1.3.3 επιτρέπει τη δημιουργία connection pool με την χρήση proxy users που αυθεντικοποιούνται τόσο από το επίπεδο του Application Server, όσο και από αυτό της βάσης.
    5. Ένα ακόμα γνώρισμα του 10.1.3 είναι η δυνατότητα για το Java Single Sign-On (JSSO) που διαφοροποιείται από το Oracle Single Sign-On που χρησιμοποιεί το Oracle Internet Directory ως repository. Αντίθετα, το JSSO συνεργάζεται με JAAS providers και μπορεί απευθείας να επικοινωνήσει με αρχείο χρηστών (jazn-data.xml), πίνακες στην βάση δεδομένων που κρατούν χρήστες και ρόλους της εφαρμογής, SUN iPlanet, κ.α.
  3. Development Tools.
    1. Εντυπωσιάστηκα από ίσες δυνατότητες προγραμματισμού που παρέχει η Oracle και στο περιβάλλον .ΝΕΤ. Δυνατότητες που περιλαμβάνουν λειτουργίες όπως local/remote debugging σε PL/SQL, end-to-end debugging, connection pooling, proxy authentication, array arguments στο ODP.NET, διασύνδεση στο Help του Visual Studio με το PL/SQL Reference Guide. Επίσης, providers για το ASP.NET για την αποθήκευση της κατάστασης ενός site, ακόμα και δυνατότητα αποθήκευσης και εκτέλεσης stored procedures σε .ΝΕΤ (μόνο σε Windows και μόνο για Oracle 10g Release 2) Κατά αυτόν τον τρόπο, η Oracle επιδιώκει να δώσει ίσες δυνατότητες προγραμματισμού τόσο σε Java όσο και σε .ΝΕΤ περιβάλλοντα.
    2. Ισχυρότερη υποστήριξη του Eclipse, τώρα και στο μέλλον, με τη διάθεση plug-ins όπως το EclipseLink για TopLink EJB 3 λύσεις, του Dali για το JPA, προσφάτως του Oracle Database Plugin κοκ, αναγνωρίζοντας πως όλοι οι προγραμματιστές σε Oracle συστήματα δεν χρησιμοποιούν αποκλειστικά JDeveloper.
    3. Ήταν ιδιαίτερη εντυπωσιακή η επίδειξη των δυνατοτήτων της βιβλιοθήκης Oracle ADF Faces Rich Client. (http://www.oracle.com/technology/products/adf/adffaces/index.html) Πρόκειται για JSF components εμπλουτισμένα με AJAX δυνατότητες. Ενδεικτικά παραδείγματα αποτελούν οι δυνατότητες resize σε panels και σε κελιά πινάκων (κάτι ανάλογο με το excel), αυτόματης ταξινόμησης και ενεργοποίησης φίλτρων σε πίνακες (grids), παραγωγής γραφημάτων, drag and drop, κ.α.
Γενικά, θα έλεγα πως πέρασα ένα χρήσιμο και εντατικό σε μάθηση διήμερο στο Oracle Develop 2007. Αξίζει πέρα για πέρα να παρακολουθεί κανείς τέτοιες εκδηλώσεις.

No comments: