Mar 31, 2013

Deploy human tasks του Oracle BPM

Μια από τις περιπτώσεις που το εργαλείο ojdeploy είναι χρήσιμο αν όχι απαραίτητο, έχει να κάνει με το deploy των SOA human tasks (ή αν προτιμάτε με την υλοποίηση τους ως ADF task flows) που περιλαμβάνονται σε ένα BPM έργο. Κατά τη διάρκεια της ανάπτυξης στο Oracle BPM, όταν πραγματοποιείται deployment μέσα από το JDeveloper, πρακτικά γίνεται deploy το SOA composite μας (.jar αρχείο) και (προαιρετικά) τα JDeveloper project μας που φιλοξενούν την υλοποίηση των αλληλεπιδράσεων με τους χρήστες (user interface) και που περιλαμβάνονται σε ένα .ear αρχείο με τα επιμέρους .war projects ως περιεχόμενα.

Σχετικά με την αυτοματοποίηση της παραπάνω διαδικασίας, ως προς το πρώτο σκέλος (SOA composites) η Oracle παρέχει μεταξύ των άλλων κατάλληλα ANT scripts (πχ ant-sca-package.xml, κλπ - http://docs.oracle.com/cd/E14571_01/integration.1111/e10224/sca_lifecycle.htm) ώστε να πακετοποιήσουμε τις ροές μας εύκολα και να τις προετοιμάσουμε για deployment. Για τη δε περίπτωση των web projects, μου φάνηκε ιδιαίτερα χρήσιμο το ojdeploy, αντί να καταφύγω στην custom λύση για εξειδικευμένα ANT scripts. Πιο συγκεκριμένα, πηγαίνοντας στα Application Properties του BPM workspace μας και έπειτα στην επιλογή Deployment, προσθέτουμε ένα νέο EAR profile (πχ application1)
Στις ιδιότητες αυτού του .EAR profile, και ειδικά στην ενότητα Application Assembly, ορίζουμε να συμπεριλαμβάνονται όλα τα υπόλοιπα web projects (Human tasks) του workspace μας. Έτσι προσομοιάζουμε τη διαδικασία deployment που γίνεται με διαφάνεια από το JDeveloper.
Τώρα, ενημερώνοντας το build script για το ojdeploy (πχ. ojdeploy-build.xml), αρκεί να προσθέσουμε την αναφορά στο deployment profile που μόλις δημιουργήσαμε, ώστε να παράγεται και το .ear αρχείο της εφαρμογής μας (στο παράδειγμα που ακολουθεί είναι παραμετρική η τοποθεσία του workspace καθώς και του output του αρχείου):

<deploy>
    <parameter name="workspace" value="${app_root_dir}\MyProcessFlow\MyProcessFlow.jws"/>
    <parameter name="profile" value="application1" />
    <parameter name="forcerewrite" value="true" />
    <parameter name="outputfile" value="${dist_dir}\MyProcessFlow.ear"/>
  </deploy>

Τέλος, δεν έχουμε παρά να καλέσουμε το εργαλείο ojdeploy, για να παράγουμε τελικά το .ear με τα web projects μας:

ojdeploy -buildfile ojdeploy-build.xml -define app_root_dir=/mnt/trunk/workdir,dist_dir=/mnt/trunk/dist

No comments: