Lập trình Web hướng Java - Bài 5: Tổng quan về Java EE - Trịnh Tuấn Đạt

J2EE là nền tảng để phát triển và triển khai các ứng dụng doanh nghiệp hướng thành phần, n-tier, web-based, transactional  J2EE là kiến trúc xây dựng theo chuẩn (standard-based architecture)  J2EE tất cả vì cộng đồng  J2EE phát triển theo yêu cầu của thực tế

pdf16 trang | Chia sẻ: dntpro1256 | Lượt xem: 639 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Lập trình Web hướng Java - Bài 5: Tổng quan về Java EE - Trịnh Tuấn Đạt, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
8/28/2011 1 LẬP TRÌNH WEB HƯỚNG JAVA Bài 05: Tổng quan về Java EE Giảng viên: ThS. Trịnh Tuấn Đạt Bộ môn CNPM Email: trinhtuandat.bk@gmail.com/dattt@soict.hut.edu.vn Bộ môn Công nghệ Phần mềm Viện CNTT & TT Trường Đại học Bách Khoa Hà Nội Nội dung  1. J2EE là gì?  2. Sự phát triển của các Enterprise Application Frameworks  3. Tại sao lựa chọn J2EE?  4. J2EE APIs and Technologies  5. Standard Impl (J2EE 1.4), Compatibility Test Suite (CTS)  6. BluePrints  7. J2EE và Web Services  8. Các bước nghiên cứu J2EE 1. J2EE là gì? 3 Challenges Portability Diverse Environments Time-to-market Core Competence Assembly Integration Key Technologies J2SE™ J2EE™ JMS Servlet JSP Connector XML Data Binding XSLT Products App Servers Web Servers Components Databases Object to DB tools Legacy Systems Databases TP Monitors EIS Systems Enterprise Computing J2EE là gì?  Là nền tảng (platform) mở, chuẩn tắc để  phát triển (developing), triển khai (deploying) và quản lý (managing) các ứng dụng doanh nghiệp hướng thành phần (component-based), ứng dụng Web, Server, Java™ Platform High-End Server Java Technology Enabled Desktop Workgroup Server Java Technology Enabled Devices 8/28/2011 2 JavaTM Platform Optional Packages Java 2 Enterprise Edition (J2EE) Java 2 Standard Edition (J2SE) JVM Java Card APIs CardVM Optional Packages Personal Basis Profile Personal Profile Foundation Profile CDC MIDP CLDC KVM Java 2 Platform Micro Edition (J2METM) * Under development in JCP 2. Sự phát triển của các Enterprise Application Frameworks 8 2. Sự phát triển của các Enterprise Application Frameworks  1 tầng (Single tier)  2 tầng (Two tier)  3 tầng (Three tier )  Dựa trên RPC  Dựa trên Remote object  3 tầng (HTML browser và Web server)  Máy chủ ứng dụng độc quyền (Proprietary application server)  Máy chủ ứng dụng chuẩn (Standard application server) Ứng dụng doanh nghiệp (Enterprise Applications)  Các thành phần của 1 enterprise application  Presentation logic  Business logic  Data access logic (và data model)  System services  Sự phát triển của 1 enterprise application framework thể hiện ở  Cách thức thay đổi linh động như thế nào?  Các dịch vụ hệ thống được cung cấp ra sao? Single Tier (Mainframe-based)  Dumb terminals kết nối trực tiếp với mainframe  Theo mô hình tập trung (ngược với mô hình phân tán)  Các xử lý Presentation, business, và data access được thực hiện duy nhất trong 1 ứng dụng ở mainframe Single-Tier: Ưu nhược điểm  Ưu điểm:  Không cần quản lý phía client  Nhất quán dữ liệu (Data consistency)  Nhược điểm:  Các thao tác (presentation, data model, business logic) được mix vào lẫn nhau  khó bảo trì & tái sử dụng code. 8/28/2011 3 Two-Tier  Fat clients giao tiếp với database phía sau  Gửi truy vấn SQL, nhận về dữ liệu thô  Presentation, Business logic và Data Model processing logic đều nằm trong ứng dụng client Database SQL request SQL response Two-Tier  Thuận lợi:  DB product independence  Cons:  Presentation, data model, business logic được mix lẫn nhau ở client  khó cập nhật & bảo trì  Data Model đính chặt với mọi client: nếu CSDL thay đổi  tất cả clients đều hỏng  Các cập nhật phải được tiến hành trên tất cả các clients  ác mộng trong bảo trì hệ thống  Tạo DB connection cho tất cả client  Tốn tài nguyên, khó mở rộng  Trao đổi dữ liệu thô (Raw data)  tốn băng thông Three-Tier (RPC based)  Thinner client: business & data model được tách biệt với presentation  Business logic và data access logic nằm trên server trung gian (middle tier server), client xử lý presentation  Middle tier server cần xử lý các dịch vụ hệ thống  Điều khiển tương tranh, đa luồng, transaction, security, persistence, multiplexing, performance, ... Database SQL request SQL response RPC response RPC request Three-tier (RPC based): ưu nhược điểm  Ưu điểm:  Business logic thay đổi linh động hơn so với mô hình 2-tier  (Nằm trên middle-tier server)  Nhược điểm:  Độ phức tạp cao ở middle-tier server  Client và middle-tier server liên kết khá chặt (So với mô hình three-tier object based)  Chưa thực sự tái sử dụng được Code (So với mô hình three-tier object based) Three-Tier (Remote Object based)  Business logic và data model phát triển theo mô hình ĐT  Business logic và data model được mô tả “trừu tượng” (interface language)  Mô hình đối tượng được sử dụng: CORBA, RMI, DCOM  Interface language trong CORBA là IDL  Interface language trong RMI là Java interface Database SQL request SQL response Object response Object request Three-tier (Remote Object based): ưu nhược điểm  Ưu điểm:  Kết nối linh động hơn mô hình RPC  Tái sử dụng Code tốt hơn  Nhược điểm:  Vẫn có độ phức tạp ở server trung gian 8/28/2011 4 Three-Tier (Web Server)  Browser xử lý presentation logic  Browser giao tiếp với Web server qua giao thức HTTP  Business logic và data model được xử lý theo công nghệ “Sinh nội dung động” (CGI, Servlet/JSP, ASP) SQL request SQL response HTML response WEB Server HTML request Database Three-tier (Web Server based): ưu nhược điểm  Ưu điểm:  Đa dạng cho thiết bị client  Điện thoại di động hỗ trợ J2ME,  Không cần quản lý client  Nhược điểm:  Vẫn còn phức tạp ở tầng trung gian Xu hướng  Chuyển kiến trúc single-tier hoặc two-tier thành kiến trúc multi-tier  Chuyển từ mô hình nguyên khối (monolithic model) sang mô hình ứng dụng hướng đối tượng  Chuyển ứng dụng client thành HTML-based client Multi-tier Single-tier vs. Multi-tier  No separation among presentation, business logic, database  Hard to maintain  Separation among presentation, business logic, database  More flexible to change, i.e. presentation can change without affecting other tiers Single tier Object-based Monolithic vs. Object-based  1 Binary file  Recompiled, relinked, redeployed every time there is a change  Pluggable parts  Reusable  Enables better design  Easier update  Implementation can be separated from interface  Only interface is published Monolithic Các vấn đề và gải pháp nổi bật  Phức tạp ở middle tier server  Cần nhân bản các dịch vụ hệ thống, giải quyết các vấn đề về  Concurrency control, Transactions  Load-balancing, Security  Resource management, Connection pooling  Giải pháp?  Cần có 1 container chung xử lý toàn bộ dịch vụ hệ thống ở trên  Giải pháp độc quyền và giải pháp mở, chuẩn 8/28/2011 5 Giải pháp độc quyền-Proprietary Solution  Sử dụng mô hình "component và container"  Components đảm nhiệm các business logic  Container cung cấp môi trường thực thi kèm các dịch vụ hệ thống  Components và container có giao kết chặt chẽ, rõ ràng nhưng theo cách thức của bên cung cấp   Vấn đề: phụ thuộc vào nhà cung cấp  Ví dụ: Tuxedo, .NET Giải pháp mở & chuẩn - Open and Standard Solution  Sử dụng mô hình "component và container" trong đó container cung cấp các dịch vụ hệ thống theo chuẩn.  J2EE: là 1 chuẩn như thế, cho phép linh động trong code  Dựa trên công nghệ Java và standard-based Java programming APIs 3. Tại sao lựa chọn J2EE? 27 Với Developers  Có thể sử dụng bất kỳ J2EE implementation nào để phát triển và triển khai  Bản chuẩn tắc, chất lượng, miễn phí  Bản nâng cao, có phí, đảm bảo scalability và fault- tolerance  Có rất nhiều tài nguyên trong cộng đồng J2EE  books, articles, tutorials, quality code, best practice guidelines, design patterns etc.  Sử dụng các thành phần có sẵn (off-the-shelf) của bên thứ 3 Với Vendors  Vendors: cùng tạo ra các đặc tả (specifications), sau đó cạnh tranh trong cài đặt/thực thi  Trong các lĩnh vực Scalability, Performance, Reliability, Availability, và development tools,  Tự do sáng tạo trong cài đặt, vẫn đảm bảo tính portability của các ứng dụng  Không cần create/maintain các APIs cho riêng mình Với Business Customers  Đảm bảo tính portability cho ứng dụng  Có nhiều thực thi để lựa chọn, tùy requirements  Price (freetrả phí), scalability (1 CPU  mô hình clustered), reliability, performance, tools,  Luôn có lựa chọn tối ưu  Rất nhiều công cụ phát triển 8/28/2011 6 4. J2EE APIs & Technologies 31 J2EE 1.4 APIs and Technologies  J2SE 1.4 (improved)  JAX-RPC (new)  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 Java EE 5  JAX-WS 2.0 & JSR 181  Java Persistence  EJB 3.0  JAXB 2.0  JavaSever Faces 1.2 – new to Platform  JSP 2.1 – Unification w/ JSF 1.2  StAX – Pull Parser – new to Platform 4.1. Servlet & JSP (JavaServer Pages) Servlet là gì?  Servlets là các Java™ objects, mở rộng chức năng của 1 HTTP server  Cho phép sinh động nội dung (Dynamic contents generation)  Là lựa chọn ưu việt hơn CGI, NSAPI, ISAPI, ...  Độ hiệu quả  Độc lập Platform và Server  Hỗ trợ quản lý Session  Nền tảng Java Servlet vs. CGI CGI Based Webserver Request CGI1 Child for CGI1 Servlet Based Webserver JVM Request Servlet1 Servlet1 Request CGI2 Child for CGI2 Request Servlet2 Servlet2 Request CGI1 Child for CGI1 Request CGI2 Request CGI1 Request Servlet1 Request Servlet2 Request Servlet1 CGI Based Webserver Child for CGI2 Child for CGI1 Servlet Based Webserver JVM Servlet1 Servlet2 Request CGI1 Child for CGI1 8/28/2011 7 Công nghệ JSP?  Cho phép tách biệt business logic khỏi presentation  Presentation: dạng HTML hoặc XML/XSLT  Business logic: được thực hiện với Java Beans hoặc custom tags  Bảo trì, tái sử dụng tốt hơn  Dễ mở rộng ứng dụng với custom tags  Dựa trên công nghệ Servlet 4.2. EJB (Enterprise Java Beans) EJB Technology?  Là công nghệ cho các components phía server  Cho phép phát triển và triển khai các ứng dụng doanh nghiệp với các tính năng cao cấp:  Transactional, distributed, multi-tier, portable, scalable, secure, Tại sao sử dụng EJB Technology?  Tận dụng được các lợi ích của mô hình hướng thành phần trên server  Tách biệt business logic với system code  Container cung cấp các system services  Đảm bảo tính portability cho các components  Trên các servers khác nhau  Trên môi trường tính toán khác nhau  Cho phép cấu hình tại thời điểm triển khai (deployment-time configuration)  Deployment descriptor (XML file) EJB Architecture Enterprise JavaBeans Enterprise JavaBeans Entity Bean Message-Driven Bean Synchronous communication Asynchronous communication Stateless Stateful Bean managed Persistence (BMP) Container managed Persistence (CMP) Session Bean 8/28/2011 8 4.3. JMS (Java Message Service) Java Message Service (JMS)  Messaging systems (MOM) cung cấp  Giao tiếp linh động  Giao tiếp không đồng bộ (Asynchronous communication)  Có vai trò như 1 bưu điện tập trung  Lợi ích của các Messaging systems  Flexible, Reliable, Scalable communication systems  Hỗ trợ mô hình: Point-to-Point, Publish & Subscribe  JMS định nghĩa các chuẩn Java APIs cho các messaging systems 4.4. Connector Architecture Connector Architecture  Định nghĩa các API chuẩn tắc để tích hợp công nghệ J2EE với các hệ thống EIS  CICS, SAP, PeopleSoft, etc.  Nếu không có Connector architecture, mỗi App server phải cung cấp 1 adaptor riêng cho từng hệ thống EIS  m (# of App servers) x n (# of EIS's) Adaptors  Với Connector architecture, cùng 1 adaptor làm việc được với tất cả App server tuân theo kiến trúc J2EE Connector  1 (common to all App servers) x n (# of EIS's) Adaptors Bài toán m x n nếu không có Connector Architecture App Server1 App Server App Server3 App Server2 SAP EIS4 EIS3 m n EIS 2 4.5. JAAS (1 thành phần của J2SE 1.4) (Java Authentication & Authorization Service) 8/28/2011 9 JAAS: Authentication  Dễ dàng chuyển đổi các kỹ thuật xác thực sau:  Userid/password  Smartcard  Kerberos  Biometric (Sinh trắc học)  Cho phép ứng dụng là portable, không quan tâm sử dụng kỹ thuật xác thực nào  JAAS cung cấp các API độc lập với kỹ thuật sử dụng  Cho các ứng dụng Java  Có file cấu hình (login configuration file) chứa thông tin về kỹ thuật áp dụng cho 1 môi trường cụ thể JAAS Pluggable Authentication JAAS: Authorization  Không có JAAS, Java platform security dựa trên:  Where the code originated  Who signed the code  JAAS API hỗ trợ thêm:  Who’s running the code   Hỗ trợ User-based authorization 4.6. Các J2EE APIs & Technologies khác JNDI  Java Naming and Directory Interface  Được sử dụng bởi các ứng dụng J2EE để định vị tài nguyên & đối tượng (resources & objects)  Ứng dụng: thông qua định danh để tham chiếu tới đối tượng  Định danh phải được cấu hình chỉ tới đối tượng và hoặc tài nguyên nào bởi quản trị hệ thống khi triển khai ứng dụng JDBC  Cung cấp Java API chuẩn tắc giao tiếp với CSDL quan hệ  Sử dụng SQL  Các nhà cung cấp (Vendors) đưa ra các JDBC driver tương ứng để Java API gọi đến 8/28/2011 10 4.7. J2EE là 1 kiến trúc End- to-End J2EE Platform Architecture B2B Applications B2C Applications Web Services Wireless Applications Application Server Enterprise Information Systems Existing Applications Client Client Client Client Client Client Tier Enterprise Information Tier Middle Tier Enterprise Information Systems (EIS): Relational Database, Legacy Applications, ERP Systems Enterprise JavaBeans™ Enterprise JavaBeans Other Services: JNDI, JMS, JavaMail™ J2EE Application Server Web Server JSP, Servlets Firewall J2EE là giải pháp End-to-End HTML/XML N-tier J2EE Architecture W e b T ie rE J B ie r 4.8. J2EE Component & Container Architecture JN D I J2SE JM S RM I/I IO P JD B C Database App Client App Client Container HTTP/ HTTPS J2SE RMI J2SE JN D I JM S RM I/I IO P JD B C JT A JavaMail JAF J N D I JM S RM I/I IO P JD B C JT A JavaMail JAF HTTP/ HTTPS Applet Container Applet JSP Servlet EJB Web Container EJB Container RMI J2SE J2EE Containers & Components 8/28/2011 11 Components Handle Containers và Components  Concurrency  Security  Availability  Scalability  Persistence  Transaction  Life-cycle management  Management  Presentation  Business Logic Containers Handle Containers & Components  Containers thực hiện các công việc 1 cách thầm lặng (invisibly)  Không có các APIs phức tạp  Đem đến tính simplicity và flexibility cho J2EE  Containers thực thi J2EE  Gần giống với các components  Các nhà sản xuất (Vendors) các containers tự do sáng tạo 4.9. Vòng đời phát triển và triển khai các ứng dụng J2EE Vòng đời phát triển ứng dụng J2EE  Viết và biên dịch các thành phần code  Servlet, JSP, EJB  Viết deployment descriptors cho các components  Từ Java EE 5, có thể thay bằng annotation  Tập hợp các components trong các ready-to- deployable package  Triển khai package trên server Creation Assembly Deployment Created by Component Developer Assembled and Augmented by Application Assembler Processed by Deployer Deploy Enterprise Components J2EE Container J2EE APPJ2EE Modules Minh họa cho vòng đời Các Roles trong quá trình phát triển ứng dụng J2EE  Component provider  Còn được gọi là Bean provider  Application assembler  Deployer  Platform provider  Còn được gọi là Container provider  Tools provider  System administrator 8/28/2011 12 Deployment Descriptor  Chỉ dẫn cho container cách quản lý và điều khiển hoạt động của các J2EE components  Transaction  Security  Persistence  Cho phép declarative customization (ngược với programming customization)  XML file  Đảm bảo tính portability cho mã nguồn 4.10. Các thành phần trong ứng dụng J2EE Application DB & EIS Resources Browser Stand-alone Web Server EJB Server Web Server EJB Server Các thành phần có thể có trong ứng dụng J2EE Các thành phần trong ứng dụng J2EE  Các ứng dụng J2EE 4 tầng:  HTML client, JSP/Servlets, EJB, JDBC/Connector  Các ứng dụng J2EE 3 tầng:  HTML client, JSP/Servlets, JDBC  Các ứng dụng J2EE 3 tầng:  EJB standalone applications, EJB, JDBC/Connector  Các ứng dụng B2B Enterprise  Từ J2EE platform đến J2EE platform thông qua trao đổi các JMS hoặc các thông điệp XML Chọn loại nào?  Phụ thuộc vào 1 số yếu tố  Requirements của ứng dụng  Tầng EJB có sẵn có không  Các tài nguyên cho developer có sẵn có không 5. J2EE 1.4 Standard Implementation, Compatibility Suite, Brand 8/28/2011 13 5.1. Standard Implementation  Cài đặt cho J2EE 1.4: Sun Java Application Server Platform Edition 8  Cài đặt theo đúng chuẩn đề ra  Miễn phí phát triển và triển khai  Được cập nhật liên tục 5.2. Compatibility Test Suite (CTS)  Nhiệm vụ lớn nhất của công nghệ Java™ technology:  Write Once, Run Anywhere™  Ứng dụng Java chạy trên bất kỳ máy ảo java nào  Ứng dụng J2EE chạy được trên J2EE platform bất kỳ   Cần được test J2EE Application Verification Kit (J2EE AVK)  Cách thức test tính portability của ứng dụng J2EE?  Sử dụng J2EE RI 1.3.1 và J2EE Application Verification Kit (J2EE AVK)  Cách thức test:  Static verification  Dynamic verification  Lấy về các kết quả test, kiểm tra đã thỏa mãn tất cả các yêu chí chưa. 5.3. Các sản phẩm cho J2EE Platform (Brand)  ATG  Bea Systems  Borland  Computer Associates  Fujitsu  Hitachi  HP  IBM  IONA  iPlanet  Macromedia  NEC  Oracle  Pramati  SilverStream  Sybase  Talarian  Trifork Các sản phẩm cho J2EE Platform  Tools  IDE’s: Borland JBuilder Enterprise, WebGain Visual Cafe’, IBM Visual Age for Java™, Forte™ for Java™, Oracle JDeveloper, Macromedia Kawa  Modeling, Performance, Testing, etc.  Enterprise Integration: Connectors, Java Message Service (JMS) API, XML  Components  Frameworks  Applications Đầu tư đảm bảo tính compatibility của J2EE  Sun đầu tư xây dựng các bộ compatibility test kit  Kiểm tra trình độ kỹ sư hàng năm để đảm bảo có sản phẩm chất lượng  Đầu tư vào Testing luôn cao hơn đầu tư vào đặc tả (specification), thực thi (implementation), thương mại (business)  > 10 million $ được đầu tư trong J2EE platform compatibility 8/28/2011 14 6. J2EE Blueprint 6. J2EE Blueprint  Các hướng dẫn thực hành, mẫu thiết kế, các nguyên lý thiết kế  MVC pattern  Blueprint bao trùm tất cả các tầng  Client tier  Web tier  Business logic (EJB) tier  Database access tier  Có code mẫu/ví dụ đi kèm với J2EE 1.4 SDK  Java Pet Store, Adventure builder 7. J2EE và Web Services? Tại sao lựa chọn J2EE cho Web Services?  Web services đơn thuần là 1 trong nhiều kênh dịch vụ của J2EE (để khai thác tầng business logic)  Không cần thay đổi kiến trúc  Dễ dàng chuyển đổi các J2EE components đã có thành Web services  Rất nhiều ích lợi của J2EE được giữ lại trong Web services  Portability, Scalability, Reliability  Không phụ thuộc vào vendor riêng lẻ nào Mô hình Web services trên J2EE DBMS Existing Apps Services Rich Clients MIDP Devices Browsers HTML/XML XMLP/SOAP XHTML/WML J2EE Server JSP™/ JavaServlet API / EJB™ JDBC JMS Connectors XMLP/SOAP JSP EJB XMLP/SOAP Hỗ trợ hiện tại của J2EE cho Web services  Java APIs cho Web Services đang phát triển rất nhanh  Web services dựa trên WUST (WSDL, UDDI, SOAP) được hỗ trợ rất tốt  Các tầng Web services tiếp theo đang được phát triển  Đã cung cấp các Tools để triển khai các J2EE components thành Web services  J2EE đã định nghĩa framework đầy đủ cho Web Services (J2EE 1.4, Web services for J2EE) 8/28/2011 15 Các mục tiêu thiết kế của J2EE 1.4 Web Services Framework  Đảm bảo tính Portability cho các Web services component  Trên các vendor platform khác nhau  Trên các operational environment khác nhau  Sử dụng các mô hình lập trình J2EE đã có để thực thi/cài đặt các service  Dễ phát triển và triển khai (deploy)  Java APIs mức cao  Sử dụng mô hình triển khai đã có J2EE 1.4 Web Services Framework  J2EE 1.4 (JSR 151)  Web services for J2EE (JSR 109)  JAX-RPC (JSR 101)  JAXR (Java API for XML Registries)  SAAJ (SOAP with Attachments API for Java)  EJB 2.1 8. Các bước nghiên cứu J2EE? Bước 1: Cho Beginners & Intermediate J2EE Programmers  Tham gia khóa học đầy đủ  Sử dụng J2EE IDE, tùy lựa chọn  Thử các IDE mã nguồn mở  NetBeans IDE (netbeans.org)  Hỗ trợ J2EE rất tốt  Có rất nhiều tutorials  Eclipse Bước 2: Cho Advanced J2EE Programmers  Tìm hiểu các giải pháp mã nguồn mở  Spring framework (for light-weight framework)  Hibernate (for O/R mapping)  JDO (for transparent persistence)  Struts, WebWork, Tapestry (for Web-tier frameworks)  JUnit (for unit testing)  Log4j (for logging)  ... Tổng kết 8/28/2011 16 Tổng kết  J2EE là nền tảng để phát triển và triển khai các ứng dụng doanh nghiệp hướng thành phần, n-tier, web-based, transactional  J2EE là kiến trúc xây dựng theo chuẩn (standard-based architecture)  J2EE tất cả vì cộng đồng  J2EE phát triển theo yêu cầu của thực tế Resources  J2EE Home page  java.sun.com/j2ee  J2EE 1.4 SDK  java.sun.com/j2ee/1.4/download.html#appserv  J2EE 1.4 Tutorial  java.sun.com/j2ee/1.4/download.html#appserv  J2EE Blueprints  java.sun.com/blueprints/enterprise/index.html  NetBeans IDE Homesite 

Các file đính kèm theo tài liệu này:

  • pdfUnlock-bai05_tong_quan_ve_javaee_5395_1810989.pdf