Αυτό το θέμα παρέχει επισκόπηση υψηλού επιπέδου της αρχιτεκτονικής
κατανεμημένων συστατικών στοιχείων που ορίζεται στην προδιαγραφή αρχιτεκτονικής Sun
Microsystems Enterprise
JavaBeans
(EJB).
Οι πλήρεις προδιαγραφές και περιγραφές επιχειρηματικών
JavaBeans
της τεχνολογίας διατίθενται από το δικτυακό τόπο
java.sun.com
[/concept/conbody/p/xref/desc
{"- topic/desc "}) (desc].
Τα enterprise bean παρέχουν διάφορα πλεονεκτήματα για τους προγραμματιστές
εφαρμογών:
- Σας επιτρέπουν τη δόμηση κατανεμημένων εφαρμογών συνδυάζοντας συστατικά στοιχεία
που έχουν αναπτυχθεί με τη χρήση εργαλείων από διαφορετικούς προμηθευτές.
- Διευκολύνουν τη δημιουργία εφαρμογών. Δεν χρειάζεται να ασχολείστε με χαμηλού
επιπέδου λεπτομέρειες συναλλαγών και διαχείρισης κατάστασης, την πολυνημάτωση, την
ομαδοποίηση πόρων και άλλα πολύπλοκα API χαμηλού επιπέδου. Ωστόσο, αν είναι απαραίτητο,
οι έμπειροι προγραμματιστές μπορούν να έχουν άμεση πρόσβαση στα API χαμηλού επιπέδου.
- Μπορούν να αναπτυχθούν και στη συνέχεια να διανεμηθούν σε πολλαπλές πλατφόρμες
χωρίς αναμεταγλώττιση ή τροποποίηση του πρωτογενή κώδικα.
- Η προδιαγραφή EJB που ελέγχει τη χρήση των enterprise bean είναι συμβατή με άλλα
Java
API και CORBA. Συμβάλει επίσης στη διαλειτουργικότητα μεταξύ των enterprise bean και των εφαρμογών που δεν είναι σε Java.
- Επιχειρηματικά bean
- Ένα enterprise bean αποτελεί ένα μη γραφικό συστατικό στοιχείο μιας
κατανεμημένης, επιχειρηματικής εφαρμογής συναλλαγής. Τα enterprise bean διανέμονται
συνήθως σε θέσεις υποδοχής EJB και εκτελούνται σε εξυπηρετητές EJB. Μπορείτε να τα
τροποποιήσετε αλλάζοντας τα αρχεία περιγραφής διανομής τους και μπορείτε να τα
συγκεντρώσετε με άλλα bean για να δημιουργήσετε νέες εφαρμογές. Υπάρχουν τρία είδη
enterprise bean: bean συνεδρίας, bean οντότητας και bean με
βάση τα μηνύματα.
- Bean συνεδρίας: Τα
bean συνεδρίας αποτελούν μη μόνιμα enterprise bean. Μπορεί να είναι
"stateful" ή "stateless". Ένα enterprise bean του είδους "stateful" ενεργεί
εκ μέρους ενός μοναδικού πελάτη και διατηρεί πληροφορίες συνεδρίας που αφορούν τον πελάτη
(καλείται κατάσταση της συνομιλίας) κατά τη διάρκεια πολλαπλών κλήσεων μεθόδων και
συναλλαγών.
Υπάρχει για τη διάρκεια μίας συνεδρίας πελάτη/εξυπηρετητή. Συγκριτικά, ένα enterprise bean του είδους "stateless" δεν διατηρεί
κατάσταση της συνομιλίας .
Τα enterprise 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.