Sunday, July 1, 2018

ΕΝΟΤΗΤΑ 1 – ΕΓΚΑΤΑΣΤΑΣΗ APACHE CAMEL ΣΤΟΝ WILDFLY

Στην σημερινή εποχή που η πολυπλοκότητα των συστημάτων έχει αυξηθεί, ψάχνουμε συνεχώς εύκολους και εναλλακτικούς τρόπους σύνδεσής μεταξύ τους χωρίς να θυσιάσουμε την ταχύτητα ή την αξιοπιστία στην ποιότητα του αποτελέσματος.



Μια τέτοια αξιόπιστη και αξιόλογη integration λύση είναι το Apache Camel framework.

Το Camel είναι ένα integration framework που έχει σαν στόχο την εύκολη σύνδεση μεταξύ διάφορων συστημάτων. Ο μηχανισμός που στηρίζει αυτή την λειτουργία ονομάζεται routing engine builder που μας επιτρέπει να δημιουργούμε routing rules χρησιμοποιώντας απλό κώδικα java. Με αυτούς τους κανόνες η εφαρμογή αποκτάει την δυνατότητα να δέχεται μηνύματα σε οποιοδήποτε μορφή, και αφού τα τροποποιήσει και τα επεξεργαστεί με βάση κάποια λογική που έχουμε προσθέσει εμείς, να τα στείλει σε έναν ή και περισσότερους τελικούς προορισμούς.

Η φήμη του Apache Camel στηρίζεται στο γεγονός ότι χρησιμοποιώντας το ίδιο API μπορεί να ενωθεί και να επικοινωνήσει με οποιαδήποτε σύστημα ανεξάρτητα από το πρωτόκολλο και το είδος των δεδομένων που χρησιμοποιούνται. Τουλάχιστον πάνω από 80 εγκαταστημένα πρωτόκολλα και είδη δεδομένων υποστηρίζονται από το Camel χωρίς να είναι αναγκαία επιπλέον συνδεσμολογία και μετατροπή δεδομένων.

Αν και προσφέρει τόσα πολλά πρέπει να μην ξεχνάμε ότι το Apache Camel είναι framework και όχι ESB. Ένα ESB επάνω στο οποίο θα μπορούσαμε να τρέξουμε ένα Apache Camel Application είναι το ServiceMix από την Apache (http://servicemix.apache.org/). Στο ServiceMix όμως θα πρέπει να γράψουμε και να πακετάρουμε τις εφαρμογές μας σε java OSGI. Η ανάγκη που είχαν οι προγραμματιστές να μπορούν να ενσωματώσουν Camel κώδικα σε Java EE εφαρμογές με την δυνατότητα να χρησιμοποιούνται όλα τα annotations τελικά έγινε πραγματικότητα. Το Wildfly-Camel project που ξεκίνησε εδώ και λίγο καιρό (βασικά είναι δύο χρόνια τώρα) μας προσφέρει την ευκολία να ενσωματώσουμε camel routes με τις Java EE εφαρμογές μας. Ας δούμε όμως τι χρειαζόμαστε για να μπορέσουμε να εκτελέσουμε τέτοιου είδους εφαρμογές.

Πάνω από όλα πρέπει να δούμε ποια είναι η τελευταία έκδοση του Wildfly-Camel και ποιον Wildfly Application Server υποστηρίζει. Αυτή την πληροφορία μπορούμε να την πάρουμε από εδώ: https://github.com/wildfly-extras/wildfly-camel/releases

 
Οπότε σαν πρώτο βήμα κατεβάζουμε το wildfly-camel-patch-6.1.0.tar.gz που περιέχει όλες τις βιβλιοθήκες του Camel.

Σαν δεύτερο βήμα, κατεβάζουμε τον Wildfly version 12. Αν και αυτή την στιγμή είναι διαθέσιμος και ο Wildfly 13 για να σιγουρευτούμε ότι δεν θα αντιμετωπίσουμε κάποιο πρόβλημα ας συμβατότητας ας παραμείνουμε στον Wildfly 12 (http://wildfly.org/downloads/)


Αποσυμπιέζουμε το zip αρχείο του Wildfly και ανοίγουμε μια cmd κονσόλα. Πηγαίνουμε στο bin φάκελο του wildfly και τρέχουμε την εντολή add-user.bat.




 

Στο εμφανιζόμενο μενού πατάμε Enter για να δεχτούμε την default τιμή που είναι Management User.


Για username μπορείτε να γράψετε ότι θέλετε αρκεί να μην το ξεχάσετε γιατί θα το χρειαστούμε αργότερα. Συνήθως γράφω το όνομα μου.


 
Για password μπορείτε να βάλετε κάτι απλό και εύκολο για να το θυμάστε. Συνήθως σε τεστ περιβάλλον δίνω το welcome1 και απαντάω yes στην ερώτηση αν θέλω να το χρησιμοποιήσω.


 
Αφού γράψετε άλλη μια φορά το password για επαλήθευση, απλά πατήστε Enter σε όλες τις επόμενες επιλογές και απαντήστε με “yes” μέχρι να ολοκληρωθεί η διαδικασία.

Τώρα που έχουμε τον Wildfly έτοιμο, μπορούμε να αποσυμπιέσουμε το wildfly-camel-patch-6.1.0.tar.gz αρχείο ενώ βρισκόμαστε μέσα στο root folder του Wildfly. 


 
Μετά το τέλος της αποσυμπίεσης θα παρατηρήσετε ότι έχει δημιουργηθεί ένα έξτρα αρχείο με το όνομα fusepatch ενώ πολλές άλλες έξτρα βιβλιοθήκες που έχουν σχέση με το Camel έχουν προστεθεί σε αυτές του Wildfly.

Για να ξεκινήσουμε τον wildfly με ενεργοποιημένο το Camel θα πρέπει να το τρέξουμε από το cmd από το bin directory με την εξής εντολή:
standalone.bat -c standalone-full-camel.xml


 
Σαν επιβεβαίωση της σωστής λειτουργίας, θα πρέπει το τελικό μήνυμα στην κονσόλα να λέει ότι ο server είναι started:


 
Για να το σταματήσουμε απλά πατάμε Ctrl + C. 


 
Για να γράψουμε Java EE εφαρμογές που περιέχουν Camel routes, θα πρέπει να έχουμε εγκαταστήσει την Java 8 στο σύστημα μας και ένα περιβάλλον ανάπτυξης εφαρμογών java. Στα δικά μου παραδείγματα θα χρησιμοποιήσω το Netbeans.

Τώρα που έχουμε το περιβάλλον μας έτοιμο, μπορούμε από την επόμενη φορά να αρχίζουμε να τρέχουμε διάφορες εφαρμογές Apache Camel στον Wildfly Application Server και να δημιουργήσουμε πολλά διαφορετικά είδη connections όπως JMS, Rest Services, JDBC, κτλ.

Μιχάλης Κασάπογλου