Εισαγωγή στη J2EE
Εκπαιδευτικοί Στόχοι Ναγνωρίσετετην αρχιτεκτονικήτης πλατφόρμας J2EE Κατανόησητης αξίαςτης J2EE Εποπτικήμελέτη των APIs και των τεχνολογιών πουαποτελούν τη J2EE Δεν είναι απαραίτητο νακαταλάβετε τις λεπτομέρειες Ναγίνει κατανοητό γιατί ηj2ee είναι η πλατφόρμα τηςεπιλογήςγιατην ανάπτυξηκαι επέκτασητων εφαρμογών και των υπηρεσιών Ιστού
Περιεχόμενα Τι είναι J2EE; Γιατί J2EE; Αρχιτεκτονικήπλατφόρμας J2EE J2EE APIs και τεχνολογίες Τυποποιημένο Impl (J2EE 1.4), ακολουθίαδοκιμής συμβατότητας (CTS) BluePrints J2EE και υπηρεσίες Ιστού Πώςναξεκινήσετε
Τι είναι J2EE?
Πληροφορική στιςεπιχειρήσεις Προκλήσεις Φορητότητα Διαφορετικά περιβάλλοντα Χρόνος Ανταγωνιστικότητα Σύνθεση Ολοκλήρωση Κύριες Τεχνολογίες J2SE J2EE JMS Servlet JSP Connector XML Data Binding XSLT Προϊόντα App Servers Web Servers Components Databases Object to DB tools Παλαιά Συστήματα Databases TP Monitors EIS Systems
Τι είναι J2EE? Ανοικτήκαιβασισμένησταπρότυπα πλατφόρμαγια ανάπτυξη, εγκατάστασηκαιδιαχείριση κατανεμημένων (n-tier), επιχειρησιακών εφαρμογώνβασισμένωνσετεχνολογίες Διαδικτύουμεχρήση εξυπηρετητώνκαι αρθρωμάτωνλογισμικού (components)
H πλατφόρμα Java Java Technology Enabled Devices Java Technology Enabled Desktop Workgroup Server High-End Server
Ηπλατφόρμα Java TM Java 2 Platform Micro Edition (J2ME TM ) Optional Packages Optional Packages Java 2 Enterprise Edition (J2EE) Java 2 Standard Edition (J2SE) Personal Basis Profile Personal Profile Foundation Profile CDC MIDP CLDC Java Card APIs JVM KVM CardVM * Under development in JCP
Από τι αποτελείτεηj2ee; Προδιαγραφές για API και τεχνολογίες Πλατφόρμα ανάπτυξηςκαι εκτέλεσης Πρότυπηποιοτικήπλατφόρμα εκτέλεσης εφαρμογών Sun Java System App Server Platform Edition 8.1 as part of J2EE 1.4 SDK Σουίταδοκιμήςσυμβατότητας (CTS) Λογότυπο J2EE Σχεδιασμός J2EE (Blueprints) Παραδείγματακώδικα
Γιατί J2EE?
Πλεονεκτήματαγια τους προγραμματιστές Μπορείτε ναχρησιμοποιήσετε οποιαδήποτε υλοποίηση J2EE γιατην ανάπτυξηκαι εγκατάσταση Μπορείτεναχρησιμοποιήσετε τηνδωρεάν ποιοτικήπρότυπη υλοποίησηγιαανάπτυξηεφαρμογών Μπορείτεναχρησιμοποιήσετε εμπορικάπροϊόντα J2EE γιατην επεκατασιμότηταπουπροσφέρουν και την ανοχήσε ελαττώμα Πάραπολύ ελεύθερα προσβάσιμο υλικό σχετικά τη J2EE βιβλία, άρθρα, σεμινάρια, ποιοτικόςκώδικαςπου μπορείτενα χρησιμοποιήσετε, οδηγίεςκαλήςπρακτικής, πρότυπακ.λπ. Μπορείτε ναχρησιμοποιήσετε έτοιμα επιχειρησιακά αρθρώματα
Πλεονεκτήματαγια τις εταιρείεςλογισμικού Οιπρομηθευτέςεργάζονταιμαζίστιςπροδιαγραφές καιανταγωνίζονταιέπειταστιςεφαρμογές Στα εργαλείων ανάπτυξης, απόδοσης, αξιοπιστίας, διαθεσιμότητας, διαχείρισης Προσφέρειελευθερίανακαινοτομήσειδιατηρώνταςτη φορητότητατωνεφαρμογών Δενχρειάζεταιναδημιουργήσει/διατηρήστειδιόκτητο APIs
Πλεονεκτήματαγια τις εταιρείεςπελάτες Φορητότηταεφαρμογών Πολλές επιλογές πλατφόρμας εφαρμογής βασισμένηστις απαιτήσεις για Τιμή (από δωρεάν μέχρι high-end) Εξελιξιμότητα (από 1 ΚΜΕμέχρι υπολογιστικέςσυστάδες) Αξιοπιστία Απόδοση Ταεργαλείαδιαχείρισης. Δημιουργείται παγκοσμίως μεγάλος αριθμός προγραμματιστών
J2EE APIs & Τεχνολογίες
J2EE 1.4 APIs και Τεχνολογίες J2SE 1.4 JAX-RPC Web Service for J2EE J2EE Management J2EE Deployment JMX 1.1 JMS 1.1 JTA 1.0 Servlet 2.4 JSP 2.0 EJB 2.1 JAXR Connector 1.5 JACC JAXP 1.2 JavaMail 1.3 JAF 1.0
Servlet & JSP (JavaServer Pages)
Τι είναι τα Servlet; Αντικείμενα Java ταοποίαεπεκτείνουντις δυνατότητεςενός HTTP server Δυναμικήπαραγωγήπεριεχομένου Καλύτερεςεναλλακτικέςλύσειςσεσχέσημε CGI, NSAPI, ISAPI, κλπ. Απόδοση Ανεξαρτησία πλατφόρμας καιεξυπηρετητή Διαχείρισησυνεδρίας Βασισμένα στην Java
Servlet vs. CGI Request Request CGI1 CGI1 Request Request CGI2 CGI2 Request Request CGI1 CGI1 CGI CGI Based Based Webserver Webserver Child Child for for CGI1 CGI1 Child Child for for CGI2 CGI2 Child Child for for CGI1 CGI1 Request Request Servlet1 Servlet1 Servlet Servlet Based Based Webserver Webserver Request Request Servlet2 Servlet2 Request Servlet1 JVM JVM Servlet1 Servlet1 Servlet2 Servlet2
Τι είναι ητεχνολογία JSP; Επιτρέπειτον διαχωρισμό της επιχειρησιακής λογικής από το επίπεδο παρουσίασης Τοεπίπεδο παρουσίασης είναιγραμμένο σε HTML ή XML/XSLT Ηεπιχειρησιακή λογικήείναιγραμμένησε Java Beans ή custom tags Καλύτερηδιαχείριση, συντήρησηκαι επαναχρησιμοποίηση του κώδικα Επεκτάσιμημέσω των custom tags Βασίζεταιστηντεχνολογίατων Servlet
EJB (Enterprise Java Beans)
Τι είναι ητεχνολογία EJB; Μια τεχνολογία αρθρωμάτων εξυπηρετητών (server-side component) Ευκολία ανάπτυξης και εγκατάστασης εφαρμογών οι οποίες χαρακτηρίζονται από: Συναλλαγές (Transactions) Κατανομή (distributed) Πολλές διαστάσεις (multi-tier) Μεταφερτές (portable) Επεκτάσιμες(scalable) Ασφαλείς (secure)
Γιατί EJB; Αυξάνει και μεταφέρει τα πλεονεκτήματα το μοντέλου αρθρωμάτων (component-model) στον εξυπηρετητή Ξεχωρίζει την επιχειρησιακή λογική (business logic) από τις υπηρεσίες του συστήματος Οεξυπηρετητής εφαρμογών παρέχει τις βασικές υπηρεσίες συστήματος Προσφέρει το πλαίσιο για φορητά αρθρώματα Μπορούν να χρησιμοποιηθούν σε όλους του συμβατούς με J2EE εξυπηρετητές Μπορούν να χρησιμοποιηθούν σε περιβάλλοντα εκτέλεσης Επιτρέπει διαμόρφωση της συμπεριφοράς κατά την εγκατάσταση Αρχείο περιγραφής συμπεριφοράς σε XML (Deployment descriptor)
Αρχιτεκτονική EJB (Απλοποιημένη)
Τύποι Επιχειρησιακών Αρθρωμάτων της Java (Enterprise JavaBeans) Enterprise JavaBeans Σύγχρονη επικοινωνία Session Bean Entity Bean Ασύγχρονη επικοινωνία Message-Driven Bean Stateless Stateful Bean managed Persistence (BMP) Container managed Persistence (CMP)
JMS (Java Message Service)
Java Message Service (JMS) Παρέχειένασύστημααποστολήςμηνυμάτων (MOM) Αποσυνδεδεμένηεπικοινωνία (De-coupled) Ασύγχρονηεπικοινωνία Παίζειτον ρόλο κεντρικούταχυδρομείου Πλεονεκτήματατουσυστήματοςμηνυμάτων Ευελιξία, αξιοπιστία, επεκτάσιμο επικοινωνιακό μοντέλο Point-to-Point, Publish and Subscribe Προσφέρειένα Java APIs γιαμηνύματα
Αρχιτεκτονική Διασυνδέσεων (Connector Architecture)
Αρχιτεκτονική Διασυνδέσεων Προσφέρειέναστάνταρ API γιατην ολοκλήρωσητεχνολογιών βασισμένες σε J2EE ΟλοκληρωμέναΕπιχειρησιακάΣυστήματα Πληροφορικής (EIS) CICS, SAP, PeopleSoft, κλπ Πριν την ΑρχιτεκτονικήΔιασυνδέσεων, κάθε εξυπηρετητής εφαρμογών έπρεπε ναπροσφέρειέναεξειδικευμένο προσαρμοστή (adaptor) γιακάθε EIS m (# App servers) x n (# EIS's) Adaptors Με την ΑρχιτεκτονικήΔιασυνδέσεωνοίδιος προσαρμοστής δουλεύει με όλους τους συμβατούς με J2EE εξυπηρετητές εφαρμογών 1 (κοινόγιαόλουςτους App servers) x n (# of EIS's) προσαρμοστές
Τοπρόβλημα των m x n προσαρμοστών χωρίς τηναρχιτεκτονική Διασυνδέσεων m App Server1 App Server2 App Server3 App Server n SAP EIS 2 EIS3 EIS4
Εξουσιοδότηση και πιστοποίηση με JAAS (Java Authentication & Authorization Service)
Πιστοποίηση με JAAS Αρθρωτό (pluggable) πλαίσιο πιστοποίησης Userid/password Έξυπνες κάρτες Kerberos Βιομετρικές πληροφορίες Φορητότηταεφαρμογήςανεξάρτητααπό το μοντέλο επικύρωσης Το JAAS παρέχειανεξάρτητο API επικύρωσης Το JAAS υποστηρίζει αρχεία διαμόρφωσης σύνδεσης
Πιστοποίηση με JAAS
Εξουσιοδότηση με JAAS Πριντο JAAS, ηασφάλειατηςπλατφόρμαςτης Java βάσιζετηνασφάλειαωςπροςτο Που προήλθε το εκτελούμενο τμήμα κώδικα Ποιος πιστοποιείτον κώδικα Το JAAS API ταπροσαυξάνειελέγχοντας Ποιος εκτελείτον κώδικα Μπορείναυλοποιηθούνπολιτικέςεξουσιοδότησης ανάχρήστη