ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου: Εισαγωγή στον BPEL Designer & Παράδειγμα BPEL Διεργασίας ΓΕΩΡΓΙΟΣ Χ. ΑΘΑΝΑΣΟΠΟΥΛΟΣ
1 Εισαγωγή Στόχος του συγκεκριμένου οδηγού είναι η εξοικείωση με το περιβάλλον ανάπτυξης και εκτέλεσης επιχειρησιακών διαδικασιών NetBeans και Apache ODE αντίστοιχα που θα χρησιμοποιηθούν στα πλαίσια του μεταπτυχιακού μαθήματος «Τεχνολογίες Διοίκησης Επιχειρησιακών Διαδικασιών». Συγκεκριμένα ο οδηγός περιγράφει τα απαραίτητα βήματα για την: - Ανάπτυξη μιας επιχειρησιακής διαδικασίας στο περιβάλλον NetBeans 6.7 - Τη διάθεση της πάνω από το Apache ODE 7.0.56, και - Την εκτέλεση της διαδικασίας 2 Ανάπτυξη απλής διαδικασίας Για την ανάπτυξη επιχειρησιακών διαδικασιών θα στηριχθούμε στην χρήση του BPEL designer plugin που εγκαταστήσαμε στο πρώτο εργαστήριο του μαθήματος. Τα βήματα που πρέπει να ακολουθήσει κανείς στην τυπική περίπτωση περιλαμβάνουν: - Το δημιουργία ενός BPEL Module project - Το καθορισμό της διεπαφής της υπο ανάπτυξης διαδικασίας (WSDL) - Τη διασύνδεση της διεργασίας με όλες τις εξωτερικές υπηρεσίες - Το καθορισμό της λογικής της διαδικασίας Οι οδηγίες για την ανάπτυξη ενός απλού παραδείγματος το οποίο δεν περιλαμβάνει την χρήση εξωτερικών υπηρεσιών παρατίθενται στον εξής σύνδεσμο: http://docs.huihoo.com/netbeans/6.0/kb/60/soa/simple-soaapp.html#creatingtheproject Σημειώνουμε ότι χάριν διευκόλυνσης ο συγκεκριμένο οδηγός διατίθεται και ως συμπιεσμένο σύνολο html αρχείων και από το φάκελο του εργαστήριου του μαθήματος στην πλατφόρμα του http://eclass.uoa.gr. Για την επιτυχή διάθεση και εκτέλεση μιας BPEL διαδικασίας απαραίτητο στοιχείο είναι ο καθορισμός του WSDL κειμένου της διαδικασίας. Πέρα από τα βήματα που περιγράφονται στον παραπάνω οδηγό, ένα σημείο στο οποίο πρέπει να δοθεί προσοχή είναι ο ορισμός του concrete part του σχετικού wsdl. Συγκεκριμένα το endpoint address από το οποίο θα προσφερθεί η διαδικασία ως υπηρεσία θα πρέπει να είναι της μορφής: <wsdl:port name=" " binding="."> <soap:address location="http://host:port/ode/processes/name"/> </wsdl:port> Δεδομένου ότι στα πλαίσια του εργαστηρίου δεν χρησιμοποιούμε το BPEL Engine που δίνεται ως plugin στον Glassfish η διαδικασία της ανάπτυξης μιας BPEL διεργασίας
τερματίζεται με την ολοκλήρωση του BPEL module project. Το επόμενο βήμα περιλαμβάνει την προσφορά (deployment) του BPEL αρχείου και όλων των σχετικών συνδεδεμένων αρχείων, π.χ. WSDLs, XSDs, στην μηχανή εκτέλεσης Apache ODE. 2.1 Διάθεση Διαδικασίας από το Apache ODE Μετά την ολοκλήρωση της ανάπτυξης της διαδικασίας και τον καθορισμό του WSDL κειμένου το επόμενο βήμα περιλαμβάνει το deployment της διαδικασίας. Τα βήματα που είναι απαραίτητα για το deployment μιας BPEL διαδικασίας περιγράφονται στον οδηγό που δίνεται από το Apache ODE engine στον εξής σύνδεσμο: http://ode.apache.org/creating-a-process.html Συγκεκριμένα η διαδικασία διάθεσης μια διεργασίας περιλαμβάνει τα εξής βήματα: - Συλλογή των απαραίτητων αρχείων σε καθορισμένο φάκελο - Δημιουργία του deployment descriptor αρχείου - Μεταφορά του φακέλου της διαδικασίας σε καθορισμένο path του ODE engine Με την ολοκλήρωση της διαδικασίας ανάπτυξης του BPEL αρχείου και των υπολοίπων σχετικών αρχείων (WSDLs, XSDs, etc) μεταφέρουμε τα αρχεία αυτά σε προσωρινό φάκελο το όνομα του οποίου το όνομα καλό θα είναι να είναι ίδιο με αυτό της διαδικασίας BPEL. Μέσα στο φάκελο αυτό δημιουργούμε το deployment descriptor αρχείο με όνομα deploy.xml. Για παράδειγμα μια τυπική μορφή για το deployment descriptor αρχείο του παραδείγματος της διεργασίας που αναπτύξαμε στο προηγούμενο βήμα αυτό μπορεί να είναι ως εξής: <deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03" xmlns:pns="http://enterprise.netbeans.org/bpel/course4_calculator/helloprocess " xmlns:wns="http://j2ee.netbeans.org/wsdl/course4_calculator/helloprocess"> <process name="pns: helloprocess"> <active>true</active> <provide partnerlink="partnerlink1"> <service name="wns: HelloService" port="hellosoapport"/> </provide> </process> </deploy>
Με την ολοκλήρωση της κατασκευής και του deploy.xml αρχείου, αντιγράφουμε όλο τον φάκελο της διαδικασίας στο εξής path του Tomcat: %TOMCAT_HOME%/webapps/ode/WEB-INF/processes Μετά από λίγο το ODE διαβάζει την νέα διεργασία και προσθέτει το συγκεκριμένο process στην λίστα με τα διαθέσιμα τα οποία μπορεί κανείς να χρησιμοποιήσει. Για την παρακολούθηση της ορθής διάθεσης της BPEL διεργασίας μπορεί κανείς να παρακολουθήσει τα logs του TOMCAT τα οποία βρίσκονται στο εξής path %TOMCAT_HOME%/logs/catalina.out 2.1.1 Αντιμετώπιση Σφαλμάτων Στην περίπτωση που έχει συμβεί κάποιο λάθος για το re-deployment της διαδικασίας θα πρέπει να κάνετε τα εξής: - Σταμάτημα του tomcat - Αφαίρεση των αρχείων: o *.cbp που έχει δημιουργηθεί εντός του φακέλου της διαδικασίας o <processname>.deployed που υπάρχει εντός του φακέλου processes του ode - Επανεκκίνηση του Tomcat 3 Εργασία - Αναπτύξτε διαδικασία η οποία θα υπολογίζει το κόστος μιας παραγγελίας αποτελούμενης από δύο (ή και περισσότερα εφόσον μπορείτε) αντικείμενα στηριζόμενη στην χρήση της υπηρεσίας Calculator ( http://ifaistos.di.uoa.gr:8080/calculator/calculatorservice?wsdl). Η συγκεκριμένη διαδικασία θα δέχεται ως είσοδο αντικείμενα τα οποία αποτελούνται από: o Τον κωδικό, την περιγραφή και το όνομα κάθε αντικειμένου o Το πλήθος κάθε αντικειμένου, και το o Κόστος μονάδας Και θα επιστρέφει το o μερικό κόστος για τους κωδικούς που ζητήθηκαν και o το συνολικό κόστος της παραγγελίας.