Αυτό το θέμα παρέχει επισκόπηση υψηλού επιπέδου της αρχιτεκτονικής κατανεμημένων
συστατικών στοιχείων που ορίζεται στην προδιαγραφή αρχιτεκτονικής Sun Microsystems
Enterprise JavaBeans™ (EJB) έκδοσης 2.x.
Οι ολοκληρωμένες προδιαγραφές Enterprise JavaBeans
και οι περιγραφές της τεχνολογίας είναι διαθέσιμες από το δικτυακό τόπο java.sun.com.
Τα enterprise bean παρέχουν διάφορα πλεονεκτήματα για τους προγραμματιστές εφαρμογών. Πραγματοποιούν
τα ακόλουθα:
- Σας επιτρέπουν τη δόμηση κατανεμημένων εφαρμογών συνδυάζοντας συστατικά στοιχεία που
έχουν αναπτυχθεί με τη χρήση εργαλείων από διαφορετικούς προμηθευτές.
- Διευκολύνουν τη δημιουργία εφαρμογών. Δεν χρειάζεται να ασχολείστε με χαμηλού
επιπέδου λεπτομέρειες συναλλαγών και διαχείρισης κατάστασης, την πολυνημάτωση, την
ομαδοποίηση πόρων και άλλα πολύπλοκα API χαμηλού επιπέδου. Ωστόσο, αν είναι απαραίτητο,
οι έμπειροι προγραμματιστές μπορούν να έχουν άμεση πρόσβαση στα API χαμηλού επιπέδου.
- Αναπτύσσονται και στη συνέχεια διανέμονται σε πολλαπλές πλατφόρμες χωρίς
αναμεταγλώττιση ή τροποποίηση του πρωτογενή κώδικα.
- Παρέχουν συμβατότητα μεταξύ της προδιαγραφής EJB που ελέγχει τη χρήση των enterprise
bean με άλλα Java™ API και CORBA. Συμβάλει επίσης στη διαλειτουργικότητα μεταξύ των enterprise bean και των
εφαρμογών που δεν είναι σε Java.
- Enterprise beans
- Ένα enterprise bean αποτελεί ένα μη οπτικό συστατικό στοιχείο μιας
κατανεμημένης, επιχειρηματικής εφαρμογής συναλλαγής. Τα enterprise bean διανέμονται
συνήθως σε θέσεις υποδοχής EJB και εκτελούνται σε εξυπηρετητές EJB. Μπορείτε να τα
τροποποιήσετε αλλάζοντας τα αρχεία περιγραφής διανομής τους και μπορείτε να τα
συγκεντρώσετε με άλλα bean για να δημιουργήσετε νέες εφαρμογές.
Υπάρχουν τρία είδη
enterprise bean: bean συνεδρίας, bean οντότητας και bean μηνυμάτων. Τα bean συνεδρίας και
μηνυμάτων είναι γενικά συστατικά στοιχεία που έχουν σχεδιαστεί για τη
διαμόρφωση επιχειρησιακών διεργασιών, ενώ τα bean οντότητας χρησιμοποιούνται για τη
διαμόρφωση αναλυτικών αντικειμένων δεδομένων.
- Bean συνεδρίας: Τα bean συνεδρίας αποτελούν μη μόνιμα enterprise bean.
Μπορεί να είναι
"stateful" ή "stateless".
- Bean συνεδρίας είδους "Stateful": Ενεργούν
εκ μέρους ενός μοναδικού πελάτη και διατηρούν πληροφορίες συνεδρίας που αφορούν στον
πελάτη (καλείται κατάσταση της συνομιλίας) κατά τη διάρκεια πολλαπλών κλήσεων μεθόδων και
συναλλαγών. Υπάρχουν για τη διάρκεια μίας συνεδρίας πελάτη/εξυπηρετητή.
- Bean συνεδρίας είδους "Stateless": Δεν διατηρούν την κατάσταση της συνομιλίας
και ομαδοποιούνται με βάση τη θέση υποδοχής τους για τη διαχείριση πολλαπλών αιτήσεων από πολλαπλούς
πελάτες.
- Bean οντότητας: Τα bean οντότητας αποτελούν enterprise bean τα
οποία περιέχουν μόνιμα δεδομένα και μπορούν να αποθηκευτούν σε διάφορους, μόνιμους χώρους
αποθήκευσης δεδομένων. Κάθε bean οντότητας μπορεί να μεταφέρει τη δική του ταυτότητα. Τα bean οντότητας τα οποία
διαχειρίζονται τη δική τους μονιμότητα ονομάζονται bean οντότητας για διαχείριση
μονιμότητας μέσω bean (BMP). Τα bean οντότητας τα οποία αναθέτουν τη μονιμότητά τους στη
θέση υποδοχής EJB ονομάζονται bean οντότητας για διαχείριση μονιμότητας μέσω θέσης
υποδοχής (CMP).
- Bean μηνυμάτων: Τα bean μηνυμάτων αποτελούν
enterprise bean τα οποία λαμβάνουν και επεξεργάζονται μηνύματα JMS. Αντίθετα με τα bean συνεδρίας ή οντότητας, τα bean μηνυμάτων δεν διαθέτουν διεπαφές. Μπορεί να
επιτευχθεί πρόσβαση σε αυτά μόνο μέσω μηνυμάτων και δεν διατηρούν καμία κατάσταση
συνομιλίας. Τα bean μηνυμάτων επιτρέπουν την ασύγχρονη επικοινωνία μεταξύ της ουράς και της
λειτουργίας ακρόασης και διαχωρίζουν την επεξεργασία μηνυμάτων από την επιχειρηματική
λογική.
- Απομακρυσμένη προβολή πελάτη
- Η προδιαγραφή απομακρυσμένης προβολής πελάτη έγινε διαθέσιμη από το EJB 1.1.
Η απομακρυσμένη προβολή πελάτη ενός enterprise bean είναι ανεξάρτητη της θέσης.
Ένας πελάτης που εκτελείται στο ίδιο JVM με μια χρήση bean χρησιμοποιεί το ίδιο API για
πρόσβαση στο bean ως πελάτης που εκτελείτε σε διαφορετικό JVM στον ίδιο ή σε διαφορετικό
υπολογιστή.
Η απομακρυσμένη προβολή πελάτη αποτελείται από δύο διεπαφές
- Απομακρυσμένη διεπαφή: Η απομακρυσμένη διεπαφή προσδιορίζει τις
απομακρυσμένες επιχειρηματικές μεθόδους τις οποίες μπορεί να καλέσει ένας πελάτης σε ένα
enterprise bean.
- Απομακρυσμένη κεντρική διεπαφή: Η απομακρυσμένη κεντρική διεπαφή
προσδιορίζει τις μεθόδους που χρησιμοποιούνται από τους απομακρυσμένους πελάτες για τον
εντοπισμό, τη δημιουργία και την αφαίρεση χρήσεων των κλάσεων enterprise bean.
- Τοπική προβολή πελάτη
- Η προδιαγραφή τοπικής προβολής πελάτη διατίθεται σε EJB 2.0 ή μεταγενέστερης έκδοσης.
Η τοπική προβολή πελάτη ενός bean εξαρτάται από τη θέση, κάτι που δεν συμβαίνει με την
απομακρυσμένη προβολή πελάτη. Η πρόσβαση τοπικής προβολής πελάτη σε enterprise bean
απαιτεί ο τοπικός πελάτης και το enterprise bean που παρέχει την τοπική προβολή
πελάτη να βρίσκονται στο ίδιο JVM. Η τοπική προβολή πελάτη, συνεπώς, δεν παρέχει την
διαφάνεια θέσης η οποία παρέχεται από την απομακρυσμένη προβολή πελάτη. Οι τοπικές
διεπαφές και οι τοπικές κεντρικές διεπαφές παρέχουν υποστήριξη για πρόσβαση μειωμένων
λειτουργιών από enterprise bean που αποτελούν τοπικούς πελάτες. Τα bean συνεδρίας και τα
bean οντότητας μπορούν να συνδεθουν στενά με τους πελάτες τους, επιτρέποντας την πρόσβαση
χωρίς την καθυστέρηση που συνήθως συσχετίζεται με τις απομακρυσμένες κλήσεις μεθόδων. Η
τοπική προβολή πελάτη αποτελείται από δύο διεπαφές:
- Τοπική διεπαφή: Η τοπική διεπαφή αποτελεί μια εκδοχή μειωμένων
λειτουργιών της απομακρυσμένης διεπαφής αλλά για τοπικούς πελάτες. Περιλαμβάνει
μεθόδους επιχειρηματικής λογικής τις οποίες μπορεί να καλέσει τοπικός πελάτης.
- Τοπική κεντρική διεπαφή: Η τοπική κεντρική διεπαφή προσδιορίζει τις
μεθόδους που χρησιμοποιούνται από τους τοπικούς πελάτες για τον εντοπισμό, τη δημιουργία
και την αφαίρεση χρήσεων των κλάσεων enterprise bean.
- Προβολή πελάτη διαδικτυακών υπηρεσιών
- Στην προδιαγραφή EJB 2.1, η αρχιτεκτονική EJB εισήγαγε την υποστήριξη για
διαδικτυακές υπηρεσίες. Ένας πελάτης για ένα bean συνεδρίας μπορεί είναι πελάτης
διαδικτυακής υπηρεσίας.
Ένας πελάτης διαδικτυακής υπηρεσίας μπορεί να χρησιμοποιήσει την προβολή πελάτη
διαδικτυακής υπηρεσίας ενός bean συνεδρίας του τύπου "stateless", που διαθέτει μια
αντίστοιχη διεπαφή τελικού σημείου υπηρεσίας.
- Διεπαφή τελικού σημείου υπηρεσίας
- Η διεπαφή τελικού σημείου υπηρεσίας για ένα bean συνεδρίας του είδους
"stateless" εκθέτει τη λειτουργικότητα ενός bean συνεδρίας ως τελικό σημείο διαδικτυακής
υπηρεσίας. Το έγγραφο WSDL μιας διαδικτυακής υπηρεσίας περιγράφει τη διαδικτυακή υπηρεσία
ως σύνολο τελικών σημείων που λειτουργούν σε μηνύματα. Ένα έγγραφο WSDL μπορεί να
περιλαμβάνει τη διεπαφή τελικού σημείου υπηρεσίας ενός bean συνεδρίας τύπου "stateless"
ως ένα από τα τελικά του σημεία.
Οποιοδήποτε υπάρχον bean συνεδρίας τύπου "stateless" μπορεί να τροποποιηθεί έτσι ώστε να
περιλαμβάνει μια προβολή πελάτη διαδικτυακής υπηρεσίας, διαφορετικά μπορεί μια διεπαφή
τελικού σημείου υπηρεσίας να αντιστοιχιστεί από ένα υπάρχον έγγραφο WSDL για να παράσχει
τη σωστή διεπαφή.
Μια προβολή πελάτη διαδικτυακής υπηρεσίας είναι ανεξάρτητη θέσης και
μπορεί να επιτευχθεί πρόσβαση σε αυτή μέσω απομακρυσμένων κλήσεων.
- Αρχείο JAR για πελάτη EJB
- Ένα αρχείο JAR για πελάτη EJB αποτελεί ένα προαιρετικό αρχείο JAR που περιέχει τις
διεπαφές πελάτη τις οποίες χρειάζεται ένα πρόγραμμα πελάτη για να χρησιμοποιήσει και τις
προβολές πελάτη των enterprise bean που περιέχονται στο αρχείο JAR για EJB. Αν
αποφασίσετε να μη δημιουργήσετε ένα αρχείο JAR για πελάτη EJB για μια λειτουργική μονάδα
EJB, όλες οι κλάσεις διεπαφής πελάτη θα βρίσκονται στο αρχείο JAR EJB. Σύμφωνα με την
προεπιλεγμένη ρύθμιση, ο πάγκος εργασίας δημιουργεί έργα JAR πελάτη EJB για κάθε
αντίστοιχο έργο EJB.
- Θέση υποδοχής EJB
- Μια θέση υποδοχής EJB αποτελεί ένα περιβάλλον εκτέλεσης το οποίο διαχειρίζεται
ένα ή περισσότερα enterprise bean. Η θέση υποδοχής EJB διαχειρίζεται
τους κύκλους ζωής των αντικειμένων enterprise bean, συντονίζει τις κατανεμημένες
συναλλαγές και υλοποιεί την ασφάλεια αντικειμένου. Γενικά, κάθε θέση υποδοχής EJB
παρέχεται από έναν εξυπηρετητή EJB και περιέχει ένα σύνολο enterprise bean τα οποία
εκτελούνται στον εξυπηρετητή.
- Αρχείο περιγραφής διανομής
- Ένα αρχείο περιγραφής διανομής αποτελεί ένα αρχείο XML που συσκευάζεται με τα
enterprise bean σε ένα αρχείο JAR EJB ή ένα αρχείο EAR. Περιέχει τα μετα-δεδομένα
που περιγράφουν τα περιεχόμενα και τη δομή των enterprise bean και τις πληροφορίες
ασφαλείας και συναλλαγών περιβάλλοντος εκτέλεσης για τη θέση υποδοχής EJB.
- Εξυπηρετητής EJB
- Ένας εξυπηρετητής EJB αποτελεί μια εφαρμογή ή μια διεργασία ανωτέρου επιπέδου
που παρέχει ένα περιβάλλον εκτέλεσης για την υποστήριξη της εκτέλεσης εφαρμογών του
εξυπηρετητή που χρησιμοποιούν enterprise bean. Ένας εξυπηρετητής EJB παρέχει μια
υπηρεσία ονοματοθεσίας με δυνατότητα πρόσβασης από JNDI, διαχειρίζεται και συντονίζει την
κατανομή των πόρων σε εφαρμογές πελάτη, παρέχει πρόσβαση στους πόρους του συστήματος και
παρέχει υπηρεσία συναλλαγών. Για παράδειγμα, μια βάση δεδομένων ή ένας εξυπηρετητής
εφαρμογών θα μπορούσε να παράσχει έναν εξυπηρετητή EJB.