Προγραμματισμός

Γεια σας, OSGi, Μέρος 2: Εισαγωγή στο Spring Dynamic Modules

Αν έχετε ακούσει πρόσφατα το έδαφος, πιθανότατα έχετε ακούσει πολλά για την ανάπτυξη εφαρμογών προσανατολισμένων στις υπηρεσίες με OSGi και Spring Dynamic Modules. Σε αυτό το δεύτερο άρθρο της σειράς Hello, OSGi, μάθετε γιατί το Spring DM είναι μια τόσο συναρπαστική επιλογή για προγραμματιστές που είναι ήδη εξοικειωμένοι με τη διαμόρφωση Spring, που θέλουν να εκμεταλλευτούν την λειτουργικότητα του OSGi, την εύκολη έκδοση και την υποστήριξη κύκλου ζωής εφαρμογών.

Το OSGi, επίσης γνωστό ως το Dynamic Module System for Java, καθορίζει μια αρθρωτή προσέγγιση για την ανάπτυξη εφαρμογών Java, καθώς και ένα σύνολο τυποποιημένων μεθόδων για τη διαχείριση εξαρτήσεων μεταξύ των ενοτήτων. Το έργο Spring Dynamic Modules for OSGi Service Platforms (Spring DM) σάς επιτρέπει να δημιουργείτε εφαρμογές Spring που μπορούν να αναπτυχθούν σε κοντέινερ OSGi. Για προγραμματιστές Java που είναι εξοικειωμένοι με το μοντέλο προγραμματισμού και διαμόρφωσης Spring, το Spring DM είναι ένας ευκολότερος τρόπος για να εξοικειωθείτε με την αρθρωτή προσέγγιση της OSGi στην ανάπτυξη εφαρμογών. Εκτός από το ότι επιτρέπει στους προγραμματιστές Spring να έχουν πρόσβαση στο αρθρωτό πλαίσιο και τη δυναμική διαμόρφωση του OSGi, το Spring DM παρέχει την κωδικοποίηση χαμηλού επιπέδου που απαιτείται από τις περισσότερες εφαρμογές OSGi, ώστε να μπορείτε να εστιάσετε στην επιχειρηματική λογική της εφαρμογής σας.

Το πρώτο άρθρο αυτής της σειράς ("Γεια, OSGi, Μέρος 1: Πακέτα για αρχάριους") εισήγαγε μια τυπική προσέγγιση στην ανάπτυξη OSGi χρησιμοποιώντας το OSGi API και την εφαρμογή κοντέινερ ανοιχτού κώδικα Equinox. Μάθατε για την αρχιτεκτονική OSGi, ειδικά κοντέινερ και πακέτα και είχατε την πρώτη σας εμπειρία στην ανάπτυξη μιας εφαρμογής Hello World που βασίζεται σε OSGi. Το παράδειγμα εφαρμογής δεν έτρεξε πολύ βαθιά, επειδή ο στόχος ήταν απλώς να κατανοήσουμε τις βασικές αρχές του OSGi.

Σε αυτό το άρθρο, θα δημιουργήσετε μια άλλη εφαρμογή Hello World, αυτή τη φορά χρησιμοποιώντας το πλαίσιο Spring DM. Θα μάθετε τι είναι το Spring DM και πώς αξιοποιεί τον διαχωρισμό της OSGi από τη λογική της εφαρμογής σε λειτουργικές μονάδες, καθώς και από την εκτέλεση των ορίων λειτουργικής μονάδας. Θα μάθετε επίσης πώς να χρησιμοποιείτε το Spring DM για να κάνετε τα εξής:

  • Εγκαταστήστε δυναμικά, ενημερώστε και απεγκαταστήστε λειτουργικές μονάδες σε ένα τρέχον σύστημα.
  • Δημιουργήστε εφαρμογές προσανατολισμένες στις υπηρεσίες (SOA) ανακαλύπτοντας δυναμικά και χρησιμοποιώντας υπηρεσίες που παρέχονται από άλλες ενότητες σε ένα σύστημα.
  • Χρησιμοποιήστε την άνοιξη Πηγή δεδομένων τάξη για την εγκατάσταση, ρύθμιση παραμέτρων, συναρμολόγηση και διακόσμηση στοιχείων εντός και μεταξύ των ενοτήτων συστήματος.

Όπως θα δείτε, η χρήση του Spring DM θα σας απαλλάξει από μερικές από τις βασικές εργασίες, ακόμα και από τη σκληρότερη προσπάθεια να κατανοήσετε τι συμβαίνει κάτω από την κουκούλα με το OSGi. Ως αποτέλεσμα, θα μπορείτε να εμβαθύνετε στη λογική της εφαρμογής σας και να το κάνετε νωρίτερα στη διαδικασία ανάπτυξης.

Για να ακολουθήσετε τα παραδείγματα σε αυτό το άρθρο, θα χρειαστείτε ένα περιβάλλον ανάπτυξης που αποτελείται από Eclipse 3.3 και Spring Dynamic Modules. Για την τελική άσκηση θα χρειαστείτε επίσης ένα RDBMS όπως το Apache Derby. Παρακάτω θα βρείτε περισσότερα σχετικά με τη ρύθμιση του περιβάλλοντος ανάπτυξης Spring DM στο Eclipse 3.3.

OSGi και το πλαίσιο άνοιξη

Επί του παρόντος, η δημοτικότητα του OSGi αυξάνεται πάρα πολύ. Αρκετοί διακομιστές εφαρμογών έχουν επανασυσκευαστεί για να αξιοποιήσουν το αρθρωτό πλαίσιο του OSGi, όπως το IBM WebSphere Application Server, το BEA's microService Architecture (mSA) και το JOnAS 5, ένας διακομιστής εφαρμογών ανοιχτού κώδικα που δημιουργήθηκε από την αρχή πάνω σε μια αρχιτεκτονική OSGi. Η JBoss ανακοίνωσε επίσης πρόσφατα το έργο της σε έναν φορτωτή κλάσης που βασίζεται σε OSGi και την πρόθεσή του να δημιουργήσει μια εφαρμογή βασικών προδιαγραφών OSGi. Ίσως το πιο σημαντικό, ο κινητήρας του Eclipse Foundation OSGi container / runtime, Equinox, ανέβηκε πρόσφατα σε κατάσταση έργου ανώτερου επιπέδου, όπου θα χρησιμεύσει ως βάση για τη νέα Πρωτοβουλία Eclipse Runtime Initiative.

Ακόμη και προτού η OSGi επιτύχει την τρέχουσα άνοδο της δημοτικότητάς της, συζητήθηκε για το συνδυασμό με την Άνοιξη Τελικά, αυτή η ομιλία οδήγησε στο Spring Dynamic Modules για το έργο OSGi Service Platforms. Η λειτουργικότητα του Spring DM μπορεί να χωριστεί σε δύο βασικά συστατικά: Πρώτον, παρέχει Spring πλαίσιο JAR με τη μορφή πακέτων OSGi. Όπως γνωρίζετε από το προηγούμενο άρθρο αυτής της σειράς, τα πακέτα OSGi δεν είναι τίποτα άλλο από αρχεία Java Archive (JAR) που περιέχουν πρόσθετες καταχωρήσεις σε META-INF / MANIFEST.MF αρχείο, το οποίο λειτουργεί ως περιγραφέας ανάπτυξης για μια δέσμη OSGi. (Λάβετε υπόψη ότι δεν μπορείτε να αναπτύξετε ένα αρχείο JAR απευθείας όταν χρησιμοποιείτε OSGi. Πρέπει να το συσκευάσετε χρησιμοποιώντας τη μορφή δέσμης OSGi.)

Δεύτερον, το Spring DM παρέχει τρία πακέτα Spring / JAR ειδικά για OSGi:

  • org.springframeork.osgi.bundle.extender
  • org.springframeork.osgi.bundle.core
  • org.springframeork.osgi.bundle.io

Οι εφαρμογές που κατασκευάζονται με το Spring DM κατασκευάζονται διαφορετικά από αυτές που χρησιμοποιούν το πλαίσιο Spring. Όταν δημιουργείτε ένα Ανοιξη εφαρμογή, ορίζετε τις πληροφορίες διαμόρφωσης σε ένα ή περισσότερα αρχεία διαμόρφωσης Spring, τα οποία είναι κυρίως αρχεία XML. Το πλαίσιο Spring χρησιμοποιεί αυτά τα αρχεία ρυθμίσεων για να δημιουργήσει ένα αντικείμενο περιβάλλοντος εφαρμογής κατά την εκκίνηση της εφαρμογής. Μετά τη δημιουργία του περιβάλλοντος εφαρμογής χρησιμοποιείται για την εγκατάσταση, ρύθμιση παραμέτρων, συναρμολόγηση και διακόσμηση αντικειμένων μέσα στην εφαρμογή.