Feb 14, 2009

Oracle Develop 2009 στην Πράγα - Εντυπώσεις

Την περασμένη εβδομάδα, στις 10 και 11 Φλεβάρη, διεξήχθη στην Πράγα το Oracle Develop, ένα διήμερο μεταφοράς γνώσης από το product management team της Oracle προς τους developers. Με μεγάλη μου χαρά το παρακολούθησα, όπως άλλωστε είχε συμβεί και με το προηγούμενο, το 2007, και για το οποίο είχα καταγράψει και τότε τις εντυπώσεις μου (
http://serafeimk.blogspot.com/2007/06/oracle-develop-2007-in-prague.html)

Όπως και την προηγούμενη φορά, οι τομείς του σεμιναρίου ήταν τρεις: database, Java development και SOA, όπου για κάθε ένα τομέα υπήρχαν τόσο παρουσιάσεις, όσο και οργανωμένα εργαστήρια για το hands-on. Νομίζω πως ο καλύτερος τρόπος για να δοθεί η φιλοσοφία του διημέρου όσο και η κατεύθυνση των προϊόντων της Oracle είναι να αναφερθούμε στις παρουσιάσεις των keynotes.

Το καλωσόρισμα στο διήμερο το ανέλαβε ο Dennis Leung, Vice President του software development του Fusion Middleware, o οποίος έδωσε έμφαση στην υψηλή ζήτηση που θέτουν οι χρήστες για διαδραστικές εφαρμογές τύπου Web 2.0, διαμέσου πολλαπλών καναλιών διάθεσης, σε σύντομο χρονικό διάστημα. H Oracle προσπαθώντας να ανταποκριθεί σε αυτές τις απαιτήσεις αφενός στηρίζεται σε πρότυπα (JSF-EJB) και αφετέρου παρέχει ισχυρά και πλούσια UI libraries για τις ανάγκες του Web 2.0 όπως τα ADF Faces Rich Client. Η στρατηγική στα εργαλεία ανάπτυξης επικεντρώνεται στον JDeveloper και στο Eclipse μέσω του Oracle Enterprise Pack (OEPE - http://www.oracle.com/technology/software/products/oepe/index.html) που παρέχει υποστήριξη τόσο για Enterprise Development (JSF, EclipseLink - EJB 3, SOA, deployment σε Weblogic) όσο και για open-source τεχνολογίες όπως Spring και Hibernate. Τα δυο εργαλεία θα παρέχουν εξίσου ευκολίες ανάπτυξης, ενώ στη επόμενη έκδοση του JDeveloper αναμένουμε περισσότερα εργαλεία επικοινωνίας μεταξύ ομάδων, όπως instant messaging καθώς και διασύνδεση με Bugzilla, JIRA και MS Project. Ένα από τα εργαλεία του OEPE που μου προκάλεσαν το ενδιαφέρον είναι και το AppXRay που αναλαμβάνει το έργο της κατανόησης των εξαρτήσεων (dependencies) μεταξύ τμημάτων μιας εφαρμογής, μια ιδέα που είχα εδώ και καιρό για ADF εφαρμογές και ανυπομονώ να δω πώς εφαρμόζεται. Τέλος, για το περιβάλλον του grid ή του cloud αν προτιμάτε, η Oracle πιστεύει πως διαθέτει μια δυνατή λύση που ανάμεσα στα άλλα περιλαμβάνει και το Coherence (http://www.oracle.com/technology/products/coherence/index.html), την distributed cache δηλαδή εφαρμογών, όπου πια έχει διασυνδεθεί διαφανώς και με το TopLink ώστε με JPQL να κάνουμε ερωτήσεις στα περιεχόμενά της.

Από την άλλη, ο Mark Townsend, Vice President, του Product Management του Oracle Server, επικεντρώθηκε στο μεγάλο κοινό των προγραμματιστών της Oracle database, διακρίνοντας τους στους DBAs που χρησιμοποιούν τον Enterprise Manager, τους DBA developers που μπορεί να χρησιμοποιούν εργαλεία όπως τον SQL Developer και τους προγραμματιστές άλλων γλωσσών (όπως Java και .NET) Για πρώτη φορά, η Oracle φαίνεται να διαθέτει μια πλήρη γκάμα εργαλείων που περιλαμβάνουν δυνατότητες μοντελοποίησης σε λογικό ή φυσικό επίπεδο ως κομμάτι του SQL Developer (http://www.oracle.com/technology/products/database/sql_developer/files/Modeling.html), το Application Express ως ένα RAD, browser-based προγραμματιστικό περιβάλλον, ιδιαίτερο εύκολο στην χρήση και οικονομικό για PL/SQL developers ή για Oracle Forms developers (αφού υποστηρίζει και την μετάπτωσή τους), και τον SQL Developer για profiling/debugging των προγραμμάτων. Δυο επιπλέον σχόλια: το modeling εργαλείο είναι ιδιαίτερα εντυπωσιακό, αντικαθιστά πλήρως τον Designer, και υποστηρίζει την αποθήκευση του, είτε σε file system, είτε σε μια βάση δεδομένων. Προς το παρόν, δεν έχει ληφθεί απόφαση σχετικά με την τιμολόγησή του. Ως προς το Appex (http://www.oracle.com/technology/products/database/application_express/index.html) προσφέρει ένα πολύ οικονομικό Web 2.0 περιβάλλον για τη δόμηση εφαρμογών και την εξαγωγή αναφορών, χωρίς την ανάγκη ενός middleware, παρά μόνο με τον Apache της βάσης δεδομένων. Ωστόσο, κάποια βασικά χαρακτηριστικά μιας συνεργατικής ανάπτυξης τα οποία θεωρούμε δεδομένα στη Java, όπως το versioning, προς το παρόν απουσιάζουν, ίσως γιατί δεν είναι απαραίτητο στο συνήθη τρόπο εκτέλεσης ενός Appex έργου.

Στα επιμέρους sessions, είχαμε την ευκαιρία να δούμε αρκετά από τα νέα γνωρίσματα του Oracle Server 11g. Πιο συγκεκριμένα, πραγματικά πιστεύω πως ένα από τα πιο εξελιγμένα χαρακτηριστικά της βάσης, που βελτιώθηκαν περαιτέρω στην τελευταία έκδοση είναι η XML DB (http://www.oracle.com/technology/tech/xml/xmldb) καθώς συνδυάζει και εναλλάσσεται μεταξύ του κόσμου της SQL, της XML και του document-centric. Στη διάρκεια των hands-on labs μπορέσαμε να χειριστούμε τον νέο τύπο αποθήκευσης του τύπου XMLType (πέρα από CLOB και object-relational) ως Binary XML, που διευκολύνει την αποθήκευση και αναζήτηση, να κατασκευάσουμε εύχρηστους indexes με τη βοήθεια του XMLIndex (που μπορεί να κατασκευαστεί σύγχρονα ή ασύγχρονα διευκολύνοντας την επεξεργασία μεγάλων κειμένων) και με όλα αυτά μαζί να κάνουμε ευέλικτες αναζητήσεις με την υποστήριξη του προτύπου XQuery, να αλλάξουμε δυναμικά ένα XSD στη βάση με τον μηχανισμό in-place XML schema evolution καθώς και να δημιουργήσουμε και να διαθέσουμε ένα νέο web service από έναν πίνακα XML, χωρίς την παραμικρή μεσολάβηση ενός middle-tier. Κάτι άλλο που παρακολούθησα από τη βάση και ήταν ενδιαφέρον, είχε να κάνει με τους νέους JDBC drivers 11g που επιτρέπουν ανάμεσα στα άλλα να ειδοποιείται μέσω callback ένα πρόγραμμα, όταν τα δεδομένα στα οποία έχει δηλώσει ενδιαφέρον αλλάξουν (Data Change Notification) Εξίσου αξιοσημείωτη είναι η δυνατότητα κατασκευής client trace από το JDBC (http://www.oracle.com/technology/obe/hol08/11gR1_JDBC_Java/JavaDiag_otn.htm) Τέλος, θα χρειαστεί να περιμένουμε την 11g του WebLogic προκειμένου να έχουμε όλα αυτά τα χαρακτηριστικά καθώς και την εγγενή και πλήρη υποστήριξη του RAC (και του TAF) και στα connection pools που διαχειρίζεται ο Weblogic.

Συνεχίζοντας με τις λύσεις της Java, να αναφέρω πως η τελευταία release του Oracle Application Server θα είναι η 10.1.3.5 και στις αρχές του δεύτερου εξαμήνου του 2009 θα αναμένουμε την 11g, που θα έχει φυσικά ως πυρήνα τον Weblogic server, θα χρησιμοποιεί το δικό του stack για τα web services και τα JMS (με την προσθήκη του Advanced Queuing), θα διασυνδέεται καλύτερα με το Oracle Identity Management και τον Oracle Enterprise Manager, θα περιλαμβάνει και το Service Component Architecture (SCA) ενώ θα χρησιμοποιεί για ποικίλες εσωτερικές εργασίες το Coherence (για παράδειγμα in-memory JMS persistence, replication, κλπ) Μιλώντας για μικρά μυστικά του Weblogic, ένα από τα χαρακτηριστικά που ελπίζω σύντομα να παρουσιάσω σε άρθρο μου είναι το FastSwap που επιτρέπει άμεση δοκιμή αλλαγών στον κώδικα χωρίς re-deployment, το πώς μπορούμε να εφαρμόσουμε σύνθετες πολιτικές ασφάλειας σε ένα JAX-WS, χρήσιμα ΑΝΤ tasks όπως το clientgen για να επικοινωνούμε με web services ή να καλούμε άλλα scripts του WLST.

Ως προς το SOA, αυτό που έχουμε στα χέρια μας είναι η έκδοση 10.1.3.4, με αυξημένα χαρακτηριστικά profiling και diagnostics, δίχως την παραμικρή ρύθμιση. Από την άλλη το technology preview του SOA Suite 11 μας δείχνει το δρόμο για τη δόμηση αρχιτεκτονικών με στοιχεία SCA, ροές που μπορούν να διασυνδέονται με Tuxedo, αλλά και εύκολη κατασκευή σελίδων για human tasks στο περιβάλλον του JDeveloper και του ADF.

No comments: