May 1, 2013

Κριτική για το Oracle SOA Suite 11g Developer's Cookbook

Μια πρόσφατη κυκλοφορία στους σχετικούς τίτλους με τα προϊόντα τεχνολογίας της Oracle, είναι το Oracle SOA Suite 11g Developer's Cookbook, με συγγραφείς τους Antony Reynolds και Matt Wright, που εκδίδεται από τη Packt Publishing.

Οι συγγραφείς, διαθέτουν ένα πολύ αναλυτικό και περιεκτικό στυλ γραφής, και μεταξύ των άλλων, είχαν γράψει και το εξαιρετικό  "Oracle SOA Suite 11g Developer's Guide" για το οποίo είχα κάνει κριτική το 2010. Tο παλαιότερο τους βιβλίο σχετικά με την SOA σουϊτα της Oracle, εξερευνούσε σε βάθος τα διάφορα συστατικά στοιχεία της (πχ, BPEL, Business Rules, Mediator, κλπ) και ήταν ένα πολύ καλό διάβασμα για την κάλυψη όλης της πλατφόρμας και την εκκίνηση του προγραμματισμού σε αυτήν. Σχεδόν τρία χρόνια μετά, ο νέος τίτλος παρουσιάζει παραδείγματα - λύσεις ή αλλιώς "συνταγές" σε διάφορα συχνά συναντόμενα θέματα σχετικά με το SOA Suite. Η δομή κάθε συνταγής, ακολουθεί δομή: περιγραφή θέματος, λύση (how-to), επεξήγηση το πώς λειτουργεί η λύση και αναφορά σε περισσότερες πληροφορίες. Θα έλεγα πως απευθύνεται σε ανθρώπους, προγραμματιστές και αρχιτέκτονες, που ήδη έχουν αρκετή εμπειρία χρήσης του Oracle SOA Suite και θέλουν να βρουν συγκεντρωμένα παραδείγματα για βασικά θέματα ή σχεδιαστικά μοτίβα (patterns) Αυτό που επίσης θεωρώ πολύ μεγάλο πλεονέκτημα του βιβλίου, είναι πως στην πλειοψηφία τους οι 67 συνταγές συνοδεύονται από πηγαίο κώδικα: ένα αντίστοιχο JDeveloper ή Eclipse (για το Oracle Service Bus) project ώστε να μπορεί κάποιος άμεσα να τις δοκιμάσει και να τις επεκτείνει, χωρίς να χάσει καθόλου χρόνο. Ας δούμε σε σύντομη περιγραφή τα περιεχόμενα του βιβλίου:

Το κεφάλαιο 1 ("Building an SOA Suite Cluster") βουτάει κατευθείαν στα βαθιά και συμπληρώνει το Enterprise Deployment Guide με κάποιες βέλτιστες πρακτικές (best practices) τη διαδικασία εγκατάστασης ενός SOA Suite Cluster, σχετικά με το λειτουργικό σύστημα, τη βάση δεδομένων, το δίκτυο και τους servers αυτούς καθαυτούς. Στο δεύτερο κεφάλαιο ("Using the Metadata Service to Share XML Artifacts") δίνονται άφθονα παραδείγματα χρήσης του MDS (πχ. για abstract WSDL binding, για event subscription, κλπ) για loose coupling ενώ προσφέρεται και μια καλή αναφορά στα εργαλεία διαχείρισης του metadata repository. To κεφάλαιο 3 ("Working with Transactions") επικεντρώνεται στις δυνατότητες χειρισμού transactions από την πλευρά του BPEL, περιγράφοντας διάφορα σενάρια. Ενδιαφέρον είναι το κεφάλαιο 4 ("Mapping Data") που μιλάει για XSLT transformation και συχνά λάθη. Το δεύτερο μισό του κεφαλαίου ασχολείται με το προχωρημένο θέμα της παραμετροποίησης του Java το XML mapping, όταν πρόκειται να ενσωματώσουμε ένα EJB και σύνθετους τύπους δεδομένων στο composite μας.

Το κεφάλαιο 5 ("Composite Messaging Patterns") ασχολείται με διάφορα εξελιγμένα μοτίβα ανταλλαγής μηνυμάτων με ένα composite, όπως της συγκέντρωσης μηνυμάτων, της λειτουργίας singleton, ή του χρονοπρογραμματισμού (scheduling) εργασιών με βάση το προϊόν που έχουν αναπτύξει οι συγγραφείς.

Τα επόμενα τρία κεφάλαια επικεντρώνονται στο Oracle Service Bus. Το κεφάλαιο 6 ("OSB Messaging Patterns") εξετάζει αντίστοιχα μοτίβα ανταλλαγής μηνυμάτων (πχ dynamic binding, split out, split-join, κλπ) ενώ το επόμενο ("Integrating OSB with JSON") δίνει διάφορα πολύ πρακτικά παραδείγματα επικοινωνίας με JSON services. Το κεφάλαιο 8 ("Compressed File Adapter Patterns") αναφέρεται στην υλοποίηση της συμπίεσης αρχείων στο επίπεδο του service bus. Στο OSB είναι αφιερωμένο και το κεφάλαιο 12 ("Configuring OSB to use foreign JMS Queues") και περιγράφει τη διασύνδεση με queues στον Oracle Application Server, το Weblogic ή το JBoss.

Το κεφάλαιο 9 ("Integrating Java with SOA Suite") εξετάζει τη διασύνδεση με Java σε επίπεδο composite με Spring beans, EJBs αλλά και τη δυνατότητα κατασκευής ενός custom XPath function, κάτι που είναι συχνά πολύ χρήσιμο. Το επόμενο κεφάλαιο ("Securing Composites and Calling Secure Web Services") αναφέρεται σε παραδείγματα στα policies και στην αποθήκευση κλειδιών στο credential store. Το κεφάλαιο 11 ("Configuring the Identity Service") δίνει τα πολύ βασικά της διασύνδεσης με συστήματα αυθεντικοποίησης όπως Oracle Internet Directory, Active Directory, κλπ. Τέλος, στο κεφάλαιο "Monitoring and Management" δίνεται προσοχή στα στατιστικά του Enterprise Manager και στην χρήση του BAM adapter σε μια διεργασία BPEL.

Σε γενικές γραμμές, το SOA Suite 11g Developer's Cookbook είναι ένα ανεκτίμητο βιβλίο για όποιον προγραμματίζει στο Oracle SOA Suite. Περιέχει πολλά παραδείγματα για διάφορες πτυχές της σουϊτας και η παροχή του code appendix είναι ανεκτίμητη ώστε να στηθεί πολύ γρήγορα ένα test case. Επίσης, τα κεφάλαια είναι καλά καταμερισμένα σύμφωνα με την πραγματική χρήση τους: τέσσερα αφορούν το service bus, τρία το BPEL, και τα υπόλοιπα γενικά ως προς την αρχιτεκτονική μιας λύσης.

No comments: