Apr 4, 2006

Εγκατάσταση του Oracle BPEL 10.1.2.0.2 στο Linux

Αυτές τις ημέρες ασχολήθηκα με την εγκατάσταση του Oracle BPEL (http://otn.oracle.com/bpel). Τι είναι αυτό; Πρόκειται για την μηχανή εκτέλεσης διαδικασιών που προ- τυποποιούνται σε μια ειδική διάλεκτο της XML, τη BPEL, που αποτελεί ανοικτό πρότυπο ήδη αγκαλιασμένο από τους μεγάλους κατασκευαστές λογισμικού (Oracle, IBM, Microsoft, ...) . Οι διαδικασίες που περιγράφονται στο BPEL μπορούν να περιλαμβάνουν διάφορα συστήματα, όπως βάσεις δεδομένων, packaged applications, web services κ. α. (αρκεί να παρέχεται ο κατάλληλος adapter) και έτσι να συνθέτουν μια επιχειρηματική ροή με τη βοήθεια workflow μηχανισμών (όπως βρόγχων, κόμβων απόφασης, κτλ) Κατά αυτόν τον τρόπο, το BPEL μπορεί να βοηθήσει στη δημιουργία επεκτάσιμων λύσεων διασύνδεσης συστημάτων και κατάρτισης επικοινωνίας μεταξύ τους.

Η Oracle προσφέρει μια ισχυρή υλοποίηση του BPEL που περιλαμβάνει:

  • Ένα γραφικό επεξεργαστή διαγραμμάτων ροών (BPEL Designer)
  • Την πλατφόρμα εκτέλεσης των ροών (BPEL Manager), που στην ουσία πρόκειται για μια J2EE εφαρμογή που φιλοξενείται στο OC4J


Η υπόθεση εγκατάσταση του BPEL στο Linux αποδείχτηκε λίγο επίπονη. Πρώτα από όλα το αρχείο της εγκατάστασης 10.1.2.0.2 έρχεται σε μορφή cpio (γιατί όχι σε μορφή rpm ή έστω tar.gz ;) Για να σας απαλλάξω από το διάβασμα των manual pages, το αρχείο αποσυμπιέζεται ως εξής:

cpio --extract --make-directories < { filename.cpio }

Αφότου έχουμε καταφέρει αυτό και προτού ξεκινήσουμε, διαπιστώνουμε πως το BPEL έχει την ανάγκη μιας βάσης δεδομένων για την προσωρινή αποθήκευση των ασύγχρονων διαδικασιών. Ενώ στα Windows γίνεται η εγκατάσταση της Oracle Lite γι' αυτό τον σκοπό, στο Linux πρέπει να χρησιμοποιήσουμε μια υπάρχουσα βάση (εγώ διάλεξα την XE). Δυστυχώς, με αυτή την έκδοση που είναι διαθέσιμη στο ΟΤΝ δεν δίνεται μαζί ο IRCA που θα μας δημιουργήσει το repository. Επομένως χρειάζεται να κατεβάζουμε την ακριβώς προηγούμενη έκδοση (10.1.2.0.0) για να κατασκευάσουμε το repository !! Και τα bugs έχουν συνέχεια. Προτού τρέξουμε το IRCA, ανατρέξτε στο /integration/bpelpm/admin/sql/bpmuser.sql ώστε να κάνετε grant create view στον orabpel χρήστη διαφορετικά δεν θα δουλεύει καλά. Μετά την εκτέλεση του IRCA, εκτελούμε το sql/upgrade_202_203_oracle.sql από το κανονικό distribution. Έπειτα μπορούμε συνεχίσουμε όπως ορίζει το installation guide.

Αυτό που όμως πραγματικά μας αποζημιώνει είναι η ευκολία της δημιουργίας ροών BPEL. Δημιούργησα σε 15 λεπτά, μια παραμετρική υπηρεσία που στέλνει email ειδοποιήσεις σε έναν email account (παίρνοντας σαν παραμέτρους τον χρήστη, την επικεφαλίδα και το κείμενο του μηνύματος) Αυτού του είδους η ροή μπορεί να επαναχρησιμοποιηθεί από μελλοντικές για email-alerting. Το μόνο πάλι αρνητικό σημείο σχετικά με το Linux είναι πως δεν υπάρχει κάποιος πιστοποιημένος browser για το BPEL console (το μόνο πρόβλημα παρουσιάζεται στο trace της διαδικασίας στο Mozilla)

5 comments:

Anonymous said...

Υποστηρίζει BPEL 2.0?

Serafeim Karapatis said...

Υποστήριξη του BPEL 2.0 αναμένεται στην επόμενη έκδοση του OAS (11g) από την νέα χρονιά. Η στρατηγική της Oracle σχετικά με το BPEL 2.0 περιγράφεται στο:http://www.oracle.com/technology/tech/standards/pdf/bpel.pdf

ankostis said...

Λέω να το βάλω σε BEA WebLogic Server.

Αλλα δεν βρίσκω οδηγίες σχετικά.
Φαίνεται ότι είναι πολύ καινούρια η ιδέα να το πακετάρουν σε αυτόνομο war
(v10.1.3.3.0).

Μήπως έχεις καμια βοήθεια?

(Σε ευχαριστώ έτσι κι αλλιώς για το άρθρο σου)

Serafeim Karapatis said...

Η τελευταία διαθέσιμη έκδοση 10.1.3.3 είναι διαθέσιμη και για την πλατφόρμα του BEA WLS, από τη διεύθυνση: http://www.oracle.com/technology/software/products/ias/bpel/index.html
Συνήθως, υπάρχει συνοδευόμενη τεκμηρίωση για την εγκατάσταση.

Anonymous said...

Γεια σου φίλε.Πολύ καλό το blog σου,συγχαρητήρια.Βλέπω οτι ασχολείσαι για τα καλά με την Bpel.Eγω κάνω μια εργασία πάνω στην Bpel και σαν περιβάλλον χρησιμοποιώ τα netbeans 6.0,που κατά την γνώμη μου είναι καλό IDE.
Θα ήθελα,αν μπορείς να με βοηθήσεις στο εξής:Xρησιμοποιώ μια απλή process έχοντας μόνο ένα invoke μεταξύ ενός receive και ενός invoke.Αν μετά το invoke χρησιμοποιήσω και δεύτερο receive,τότε ο debugger δείχνει οτι κολλάει το invoke.Tα correlation sets πιστεύω ότι είναι σωστά.
Αν μπορείς να βοηθήσεις στείλε μου μήνυμα στο pdemetris@gmail.com

Ευχαριστώ.