Phát triển ứng dụng phần mềm trên máy chủ dựa trên công nghệ Java

  • Số trang: 97 |
  • Loại file: PDF |
  • Lượt xem: 16 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌ C Q U Ó C GIA H À N Ộ I KHOA CÔNG NGHỆ Phạm T h ị H uyền T ra n g P H Á T T R IẺ N Ứ N G D Ụ N G P H Ầ N M È M T R Ê N M Á Y C H Ủ DỤ A TR Ê N C Ô N G N G H Ệ JA V A Chuyên ngành : C Ô N G N G H Ệ T H Ô N G T IN M ã số : 1 .0 1 .1 0 L U Ậ N VĂ N T H Ạ C s ĩ NGƯỜI HƯỚNG DẢN KHOA HỌC: PGS. TS. ĐOÀN VẢN BAN h'Mii rì ;V.MT^ÓNGY, H à Nội - N ăm 2003 MỤC LỤC ■ ■ Chương 1: Tổng Q u a n ..................................................................................................................6 1.1 Các thách thức đối với việc phát triển ứng dụng mức xí nghiệp.................. 6 1.1.1 Phát triền ứng dụng năng suất c a o ......................................................................6 1.1.2 Khả năng tích hợp với các hệ thống đã có.........................................................7 1.1.3 Đáp ứne yêu cầu của ứng d ụ n g ...........................................................................8 1.1.4 Đảm bảo bảo m ậ t................................................................................................... 8 1.2 J2EE - Nen tảng cho các ứne dụng mức xí nghiệp.........................................9 1.3 Các mỏ hình ứng dụng với J2 E E ...................................................................... 12 1.3.1 Mô hình ứng dụng đa mức............................................................................... 13 1.3.2 Mô hình ứng dụng J a v a ....................................................................................14 1.3.3 Mô hình ứng dụng W eb....................................................................................15 1.3.4 Mô hình doanh nghiệp với doanh nghiệp........................................................ 15 1.3.5 Ưu điểm của mô hình đa m ứ c ...........................................................................16 Chương 2: Bộ chứa EJB - Enterprise JavaB ean.................................................................18 2.1 Phần Logic nghiệp vụ - Business L ogic.......................................................... 18 2.2 Các yêu cầu đối với đối tượng nghiệp v ụ ....................................................... 20 2.2.1 Duy trì trạng thái..................................................................................................20 2.2.2 Hoạt độns trên các dữ liệu chung..................................................................... 21 2.2.3 Tham gia vào các giao d ịc h ............................................................................... 21 2.2.4 Phục vụ một lượng lớn người sử d ụ n g ..........................................................22 2.2.5 Cung cấp khả năng truy nhập dữ liệutừ x a .....................................................22 2.2.6 Kiểm soát truy nhập............................................................................................ 22 2.2.7 Khả năng sử dụng lạ i.......................................................................................... 22 2.3 Tổng quan về EJB ................................................................................................23 2.3.1 Giao diện tại c h ỗ ..................................................................................................24 2.3.2 Giao diện từ xa..................................................................................................... 24 2.3.3 Lớp E JB .................................................................................................................25 2.4 Session B ean.........................................................................................................25 2.4.1 Session Bean Trạng T hái................................................................................... 26 2.4.2 Session Bean Phi Trạng Thái............................................................................ 26 2.4.3 Phát triển các Session B ean.............................................................................. 27 2.4.4 Thực hiện gọi các Session B ean....................................................................... 31 2.5 Entity B e a n ........................................................................................................... 36 2.5.1 Các khái niệm cơ bản về lưu trừ bền vừng.....................................................36 2.5.2 Khái niệm Entity B e a n .......................................................................................38 2.5.3 Các file tạo thành Entity B ean.......................................................................... 40 2.5.4 Các tính chất của Entity Bean............................................................................41 2.5.5 Phát triển và sử dụng Entity B e a n ....................................................................43 2.5.6 Ngừ cảnh của Entity B ean.................................................................................46 2.5.7 Vòng đời của một Entity B e a n ......................................................................... 48 Chương 3: Bộ chứa Web: Servlet và J S P ............................................................................. 52 - 2 - 3.1 Servlets................................................................................................................. 52 3.1.1 Tong quan ve Servlet..........................................................................................52 3.1.2 Phát triển và sử dụng một Servlet.....................................................................58 3.2 JSP ...................................................................................................................... 63 3.2.1 Sự cần thiết phải có J S P .................................................................................... 63 3.2.2 Mô hình hoạt động của J S P ...............................................................................64 3.3 So sánh giữa Servlet và J S P .............................................................................. 71 3.4 Sử dụng Servlet và JSP trong các ứng dụng...................................................72 3.4.1 Các trường họp sử dụng Servlet.......................................................................72 3.4.2 Các trường hợp sử dụng J S P ............................................................................ 73 Chương 4: ứ n g dụng công nghệ J2EE trong phát triển các ứng dụng mức xí nghiệp.. 75 4.1 Kiến trúc của ứng dụng mức xí nghiệp với J2EE..........................................75 4.1.1 Kiến trúc M V C ...... ............................................................................................ 75 4.1.2 Các vấn đề đặt ra đổi với mô hình MVC trong J2E E ...................................78 4.1.3 Khuôn mẫu phát triển của J 2 E E .......................................................................79 4.1.4 Khuôn mẫu Session Bao N goài........................................................................ 81 4.2 Ví dụ ứng dụng ngân hàng điện t ử .................................................................. 85 4.2.1 Mô tả ứng dụng.................................................................................................... 85 4.2.2 Mô hình hệ thống của ứng d ụng.......................................................................90 CÂC THUÀT NGÜ’ VIÉT TAT ■ API Application Programming Interface B2B Business to Business B2C Business to Consumer CORBA Common Object Request Broker Architecture CSDL Co sà dù lieu EJB Enterprise Java Bean HTML HyperText Markup Language HTTP HyperText Transfer Protocol J2EE Java 2 Enterprise Edition JDBC Java Database Connectivity JMS Java Messaging Service JNDI Java Naming and Directory Interface JSP Java Server Page JTA Java Transaction API OQL Object Query Language SQL Structured Query Language XML Extensible Markup Language MỞ ĐẦU Sự phát triển của Internet nói riêng và của cône nghệ thông tin nói chune đane diễn ra rất mạnh mẽ tại Việt nam trong thời gian gần đây cũna như trong tương lai. Sự phát triển này đòi hỏi các công ty, các tổ chức cần xây dựnR các ứng dụng của mình trên Internet. Khác với các ứng dụng khác, các ứng dụng trên Internet thườne, được phát triển trên các máy chủ và người sử dụng chỉ cần một trình duyệt Web là có thể truy nhập vào được ứng dụng này. Có rất nhiều công nahệ khác nhau giúp phát triển các ứng dụng trên Internet. Luận văn này xem xét một trong các công nghệ đang được phát triển rất mạnh mẽ trong thời gian gần đây, đó là công nghệ J2EE. Nội dung của luận văn xem xét các công nghệ của J2EE và các kiến trúc ứng dụng mà dựa vào đó, các tổ chức, công ty có thế phát triển các ứng dụng của mình. về kết cấu của luận văn, ngoài lời nói đầu, kết luận và tài liệu tham khảo, luận văn được trình bày trong 4 chương: • Chương 1: Công nghệ J2EE và các mô hình ứng dụng Giới thiệu sơ lược về công nghệ J2EE và chỉ ra các công nghệ J2EE giúp giải quyết các vấn đề đặt ra đối với các ứng dụng mức xí nghiệp như thế nào. • Chương 2: Bộ chứa EJB: Enterprise Bean Xem xét các thành phần EJB của kiến trúc J2EE, đề cập đến các loại EJB khác nhau và chỉ ra cách sử dụng hợp lý các loại thành phần này. • Chương 3: Bộ chứa Web: Servlet và JSP Trình bày các thành phần trong bộ chứa Web, đó là JSP và Servlet: đề cập đến cách thức phát triển các thành phần này, sự khác biệt giữa chúng và làm thế nào để sử dụng các thành phần này một cách hợp lý. • Chương 4: ứ n g dụng công nghệ J2EE trong việc phát triển các ứng dụng mức xí nghiệp Xem xét kiến trúc MVC là một kiến trúc thường được sử dụng trong các ứng dụng sử dụng công nghệ J2EE; Xem xét các khuôn mẫu hỗ trợ việc phát triển ứng dụng trorm J2EE và việc sử dụng các khuôn mẫu này trong một ứng dụng mẫu. Luận văn đã được hoàn thành với sự giúp đỡ tận tình của thầy giáo hướng dẫn PGS. TS. Đoàn Văn Ban, các thầy cô giáo Khoa công nghệ Trường Đại học quốc gia Hà nội cùng các bạn đồng nghiệp. Trong nội đung hạn chế của luận văn chắc chắn luận văn khó tránh khỏi những thiếu sót nhất định. Em rất mong nhận được sự góp ý của các thầy cô giáo, các nhà chuyên môn và các đồng nghiệp để tiếp tục hoàn thiện bản luận văn. Em xin tràn trọng cám ơn. - 6 - C h ư ơ n g 1: T ổ n g Q u a n 1.1 Các thách thức đối với việc phát triển ứng dụng mức xí nghiệp Công nghệ thông tin ngày nay không chỉ dừng lại ở việc giúp các tổ chức, các doanh nghiệp hoạt động hiệu quả hơn, mà còn trực tiếp mang lại các lợi thế trong việc cạnh tranh. Các tổ chức và các doanh nghiệp phải tìm mọi cách đê ứng dụng các công nghệ mới một cách hiệu quả nhất và nhanh nhất. Chính vì vậy, việc phát triển ứng dụng mức xí nghiệp phải đáp ứng được các yêu cầu đề cập dưới đây. 1.1.1 P h á t triể n ứ n g d ụ n g n ă n g s u ắ t ca o Đẻ giảm bớt thời gian phát triển ứng dụng, việc tăng năng suất phát triển ứng dụng là một yếu tố không thể thiếu được. Việc cung cấp cho những người phát triên ứna, dụne các phương tiện chuẩn để sử dụng các dịch vụ cần thiết cho mồi ứng dụng cùng với các cách thức chuẩn cho việc hỗ trợ các thiết bị khác nhau của người sử dụng sẽ góp phần tích cực trong việc tăng năng suất phát triển ứng dụng. Trước đây, việc không có một mô hình phát triển ứng dụng chung đă tạo ra nhữna; rào cản trong việc trao đổi hiệu quả các yêu cầu của ứng dụng giữa những người phát triển ứng dụng. Kết quả là kiến trúc của ứng dụng trở nên quá phức tạp. Hơn thể nữa, các yêu cầu về kỹ năng, trình độ để tích họp các công nghệ truyền thống với nhau là không rõ ràng. Việc phân chia công việc của những nhóm người tham gia phát triển ứng dụng khác nhau không được tổ chức một cách khoa học. Ví dụ với công nghệ CGI việc phát triển đòi hỏi người lập trình vừa phải thực hiện cả việc tạo nội dung thông tin cũng như hình thức thể hiện thông tin của các trang Web động. Một yếu tố khác cũng làm tăng tính phức tạp trong quá trình phát triển ứng dụng là việc lựa chọn loại thiết bị sẽ được hồ trợ của người sử dụng. Rất nhiều ứng dụng cung cấp các thône tin động hay tĩnh cho các trình duyệt Web, một số ứng dụng khác đồng thời hồ trợ nhiều loại thiết bị khác nhau như các máy tính để bàn, điện thoại di động,... Các thiết bị được lựa chọn này có thể được xác định ngay từ ban đâu, nhưng cũng có thể được xác định sau khi ứng dụng được triển khai. Khi đó, đòi hỏi ứng dụng phải được sửa đổi để có thể hồ trợ thiết bị mới này. Vì vậy, các mô hình phát triển ứng dụng phải đảm bảo hỗ trợ được nhiều loại thiết bị khác nhau, đông thời hạn chế tối đa các ảnh hưởng đến kiến trúc chung của ứng dụng cũng như các phân xử lý chính của ứng dụng đối với những sự thay đổi đó. Tóm lại, để rút ngắn thời gian phát triển ứng dụng cũng như sự thay đổi của ứng dụng trong tương lai, việc tăng năng suất lao động của người phát triển ứng dụng đòi hỏi phải có một mô hình phát triển ứng dụng thống nhất cùng các phương tiện chuân cũng như các công cụ chuân cho việc pháp triển ứng dụng. Hơn nữa phải có một cách thức phân chia công việc một các khoa học về vai trò, trình độ, kỹ năng của nhừne người phát triển ứng dụng để đảm bảo phát huy tối đa khả năng của họ và tránh sự trùng lặp có thể xảv ra. [4] 1.1.2 K h ả n ă n g tíc h h ợ p v ớ i các h ệ th ố n g đã c ó Trong các hệ thống thông tin hiện nay, một khối lượng lớn dữ liệu đã được thu thập trong nhiều năm trước đây bởi các hệ thống hiện có của các tổ chức và các doanh nghiệp. Đồng thời, rất nhiều chi phí, công sức đã đầu tư vào các ứng dụng trong các hệ thống này. Một thách thức đặt ra cho những người phát triển là làm sao có thể tái sử dụng các dữ liệu, ứng dụng cũng như các tài nguyên của các hệ thống này. Để đạt được mục tiêu này, người phát triển ứng dụng cần phải được cun? cấp các công cụ, các phương thức chuẩn cho phép sử dụng các dịch vụ mà các hệ thống hiện có này cung cấp, ví dụ như các công cụ truy nhập các dịch vụ của các cơ sở dữ liệu, các hệ thống thư điện tử, các hệ thống xử lý giao dịch, ... Những người phát triển ứng dụng còn đòi hỏi các hệ thống này phải cung cấp các dịch vụ một cách thống nhất để mô hinh phát trien ứng dụng mới không cần phải mở rộng việc tích hợp với các hệ thống khác nhau trong toàn bộ tổ chức, doanh nghiệp. [4] 1.1.3 Đ áp ứ n g y ê u c ầ u c ủ a ứ n g d ụ n g Đôi với các ứne dụng mức xí nghiệp, việc đáp ứng yêu cầu tính sẵn sàng và khả năng mở rộng luôn phải được xem xét, chú ý. Các hệ thống đòi hỏi phải được thiết kế lại. viết lại hay triển khai lại để đáp ứng các yêu cầu mới về tính sẵn sàng và khả năng mở rộng sẽ làm giảm tính linh hoạt, gây ảnh hưởng lớn tới việc ứng dụng công nghệ thông tin trong các tổ chức, các doanh nghiệp. Vì vậy, việc phát triển hệ thống để đáp ứng các yêu cầu này càng dễ dàng và được tự động hoá càng nhiều thì càng đem lại hiệu quả cao hơn cho việc ứng dụng công nghệ thông tin. Đe có thể mở rộng được một cách dễ dàng và hiệu quả, các hệ thống phải được thiết kế để có thể tương tác với nhiều người sử dụng đồng thời. Các hệ thống này đòi hỏi phải có cơ chế quản lý hiệu quả các tài nguyên và các dịch vụ của hệ thống như các kết nối tới cơ sở dữ liệu, các giao dịch, ... Các ứng dụng này cũng phải có khả năng chạy trên bất kỳ máy chủ nào, đáp ứng được các đòi hỏi về khả năng xử lý của ứng dụng. Đe đảm bảo tính sẵn sàng ở mức cao nhất, các hệ thống này phải có khả năng sử dụng các tính năng như tự động cân bằng tải, tự động chuyển sang máy chủ khác khi có sự cố mà không cần bất cứ can thiệp nào của người phát triển ứng dụng. [4] 1.1.4 Đ ảm b ả o b ả o m ậ t Hơn bao giờ hết, việc bảo mật các hệ thống thông tin được các nhà quản lý công nghệ thông tin quan tâm đến như hiện nay. Việc bảo vệ các hệ thống thông tin có tính chất sống còn đối với mỗi tổ chức, mỗi doanh nghiệp. Các tổ chức, các doanh nghiệp thu được càng nhiều lợi ích do công nghệ thông tin mang lại bao nhiêu thì họ càng có thể bị nhiều thiệt hại khi các hệ thống này bị phá huỷ bấy nhiêu. Trong các hệ thống thông tin truyền thống trước đây, người quản trị hệ thống có khả năng kiếm soát hệ thống khá cao do họ có khả năng kiểm soát cả máy chủ cũng như các thiết bị của người sử dụng. Nhưng hiện nay, với sự phát triển của Internet, các tài nguyên của hệ thống được sử dụng trong môi trường ít được bảo vệ hơn, người quản trị không có khả năng quản lý toàn bộ hệ thống nữa mà họ chỉ có khả năng quản lý một phần của hệ thống mà thôi. Chính vi vậy, việc đảm bảo bảo mật trong khi vẫn phải đảm bảo khả năng truy nhập của người sử dụng là một thách thức lớn đối với các hệ thống thông tin hiện nay. [4] 1.2 J2EE - Nền tảng cho các ứng dụng mức xí nghiệp Công nghệ J2EE, do hãng Sun xây dựng, nhằm tạo ra một mô hình phát triển các ứng dụng phân mềm trên các máy chủ dựa trên công nghệ Java. Công nghệ J2EE là một chuẩn thống nhất cho việc phát triển và triển khai các ứnơ dụng mức xí nghiệp. Chỉ trong hai năm đầu, công nghệ J2EE đã thu được rất nhiều thành công trên thị trường. Thành công này có được nhờ việc chuẩn J2EE được phát triển một cách công khai. Mọi cá nhân, tổ chức đều có thể tham gia vào việc xây dựng chuẩn này. Với việc có rất nhiều nhà sản xuất lớn trên thế giới cùng tham gia vào việc phát triển này, đã giúp cho J2EE có thể đáp ứng được nhiều nhất các đòi hỏi khác nhau đặt ra với các ứng dụng mức xí nghiệp. Công nghệ J2EE giúp giải quyết một cách hiệu quả các thách thức đặt ra đối với các ứng dụng mức xí nghiệp. Công nghệ J2EE cung cấp một mô hình phát triển đơn giản hơn dựa trên các thành phần. Việc phát triển ứng dụng dựa trên các thành phần đảm bảo việc tăng năng suất phát triển ứng dụng bằng nhiều cách khác nhau như: • Rút ngắn thới gian phát triển các thành phần: Các thành phần trong J2EE có thể được phát triển bởi các công cụ đồ hoạ, thậm chí có thể được tự động tạo ra bởi các công cụ. Vì vậy, thời gian phát triển các thành phần được rút ngắn đáng kể. Hơn nữa, người phát triển có thể sử dụng ngay các thành phần có sằn trên thị trường trong việc phát triển ứng dụng. Vì vậy, không tốn thời gian viết lại các thành phần này • Tạo dựng các chức năng khi triển khai: Sự tương tác giữa các thành phần trong J2EE có thể được xác định muộn hơn vào thời điểm triển khai. Vì vậy, có thể tạo dựng các chức năng khác nhau của ứng dụng tại thời điếm triển khai thay vì phải xác định ngay khi phát triển ứng dụng. - 10- • Phân chia công việc: Việc phát triển dựa trên thành phần cho phép phân chia việc phát triển ứng dụng thành các phần việc khác nhau cho từne neười phát triển, đảm bảo cho người phát triển có thể phát huy được tối đa khả năng của mình. J2EE định nghĩa các nhóm người khác nhau tham gia vào việc phát triển ứng dụns như người cung cấp các thành phần, người kết gắn các thành phân và người triên khai cùng với các vai trò của họ. Đe tích hợp với các hệ thống khác một cách dễ dàng, chuẩn J2EE cùng với chuẩn J2SE (Java 2 Standard Edition) định nghĩa một số chuẩn API cho việc trao đổi dừ liệu với các hệ thống thông tin hiện có. Việc truy nhập tới các hệ thống hiện có này được thực hiện thông qua: • JDBC (Java Database Connectivity) được sử dụng trong việc truy nhập dừ liệu của các cơ sở dữ liệu quan hệ cũng như các cơ sở dừ liệu khác. • JTA (Java Transaction API) cho phép quản lý và điều phối các giao dịch giữa các hệ thống khác nhau. • JNDI (Java Naming and Directory Interface) cung cap các API chuân cho việc truy nhập các dịch vụ định danh và thư mục. • JMS (Java Messaging Service) cung cấp các API chuẩn cho việc gửi và nhận các thông điệp của các hệ thống xử lý thông điệp. • JavaMail cung cấp các API cho việc nhận và gửi thư điện tử. • Java IDL cung cấp các cơ chế cho việc gọi các dịch vụ CORBA. • Các API cho XML cung cấp khả năng tích hợp với các hệ thống hiện có và cho phép triển khai các dịch vụ Web. Công nghệ J2EE không những tạo ra các chuẩn buộc các sản phẩm trên thị trường phải tuân theo, mà J2EE còn có các công cụ giúp kiêm tra việc tuân theo các chuẩn này. Chính vì vậy, tính thống nhất của các sản phẩm dựa trên J2EE là rất cao. Tính thống nhất này đảm bảo cho việc: -11 - • Tự do lựa chọn phần mềm cho máy chủ: Các phần mềm máy chủ hỗ trợ J2EE được cung cấp từ nhiều nhà sản xuất khác nhau cho rât nhiều loại máy chù khác nhau, nhiều loại hệ điều hành khác nhau. Các phần mềm này có thế có các thuộc tính khác nhau về độ sẵn sàng, khả năne mở rộng, chi phí triển khai và cài đặt,... Nhưng dù có khác nhau như thế nào đi nữa, nếu các sản phẩm này cùng tuân theo J2EE thi đều đảm bảo rằng một ứng dụng J2EE có thể chạy trên phần mềm này thì cũng có thể chạy trên phần mềm khác mà không cần sửa đổi hay dịch lại. • Tự do lựa chọn các công cụ: Chuẩn J2EE cũng định nghĩa cả các chuẩn cho các công cụ thiết kế và triển khai. Tương tự như đối với các phần mềm cho máy chủ, chuẩn J2EE cũng đảm bảo tính tương thích giữa các công cụ này. Vì vậy, những người phát triển ứng dụng có thể lựa chọn các công cụ phù hợp nhất với nhiệm vụ của mình. • Thị trường cho các thành phần: Phát triển ứng dụng dựa trên các thành phần tạo đã ra khả năng xây dựng một số thành phần chuẩn có thể được sử dụng trong nhiều ứng dụng khác nhau. Các thành phần này được cung câp trên thị trường tạo thành một thị trường cho các thành phần. Người phát triển ứng dụng có thể lựa chọn các thành phần này cho việc phát triển ứng dụng của mình giúp giảm ngắn thời gian phát triển ứne dụng. Tóm lại, với việc đưa ra các chuẩn cho các phần mềm máy chủ, các công cụ phát triển và triển khai, các thành phần của ứng dụng cùng với các công cụ giúp kiểm tra việc tuân theo các chuẩn này đã đảm bảo cho việc tự do lựa chọn của các tô chức và các doanh nghiệp. Bên cạnh đó, chuẩn J2EE cũng định nghĩa một mô hình bảo mật thống nhất cho các ứng dụng J2EE. Người phát triển các thành phần có thể định nghĩa mức độ bảo mật cần thiết cho các thành phần tới từng phương thức của các thành phần này. Hơn thế nữa, J2EE cũng cung cấp các API cho phép kiểm soát bảo mật của các thành phần. Cơ chế này cho phép xây dựng hệ thống bảo mật theo vai trò của người sử - 12 - dụng tại thời điểm triển khai ứng dụng. Như vậy, J2EE cung cấp mô hình bảo mật linh hoạt hơn và khả năng kiểm soát cao hơn so với các công nahệ khác. Tóm lại, J2EE giúp giải quyết các vấn đề đặt ra đổi với các ứng dụng mức xí nghiệp hiện nay nhờ có khả năng: • Cung cấp mô hình phát triển và triển khai ứng dụng dựa trên các thành phần. • Tự do lựa chọn các thành phần, công cụ và phần mềm máy chủ do tích tương thích cao của thành tố này. • Các công cụ và các API cho phép tích hợp với các hệ thống khác. • Mô hình bảo mật linh hoạt và thống nhất. Chính vì vậy, chỉ trong một thời gian phát triển rất ngắn, J2EE đã được lựa chọn để trở thành một nền tảng cho việc phát triển các ứng dụng mức xí nghiệp. [4] 1.3 Các mô hình ứng dụng với J2EE J2EE cho phép người phát triển ứng dụng có thể lựa chọn nhiều mô hình ứng dụng khác nhau. Khả năng này cho phép người phát triển ứng dụng có thể lựa chọn được mô hình phù hợp nhất cho ứng dụng của mình. Mô hình phát triển ứng dụng tổng quan của J2EE được thể hiện trong hình vẽ dưới đây. Các phần tiếp sẽ xem xét một số mô hình thường được sử dụng phổ biến với công nghệ J2EE. - 13 - Hình 1-1: Mô hình ứng dụng của J2EE 1.3.1 M ô h ìn h ứ n g d ụ n g đa m ứ c Bộ chửa Web JSP & Servlet HTML HTTP XML JSP Servlet XML JavaMall EJB JMS JTA JDBC Hình 1-2: Mô hình ứng dụng đa mức Trong mô hình ứng dụng đa mức, các bộ chứa Web có nhiệm vụ thực hiện việc quản lý hiển thị của các ứng dụng. Chức năng hiển thị này sử dụng chủ yếu là các trang JSP cho khuôn mẫu hiến thị và các Servlet thực hiện việc điều khiển và xử lý các yêu cầu của người sử dụng. Việc phối họp giữa JSP và Servlet sẽ tạo ra các trang Web động để chuyển cho người sử dụng. Bộ chứa EJB quản lý phần xử lý của ứng dụng. Tại bộ chứa này, các thành phần EJB được thực hiện. Các thành phần - 14- EJB sẽ thực hiện việc khai thác các dừ liệu từ các cơ sở dữ liệu để thực hiện các yêu cầu của các thành phần trong bộ chứa Web. Như vậy, trone mô hình này, phần hiền thị và dừ liệu của ứng dụng được tách rời nhau. Đặc tính này đảm bảo việc mở rộng khả năng xử lý của ứng dụng được thực hiện rất dễ dàng. [4] 1.3.2 M ô h ìn h ứ n g d ụ n g J a v a Hình 1-3: Mô hình ứng dụng Java Trong mô hình ứng dụng Java, các ứng dụng có thể là một trong 3 dạng sau: • Các ứnu dụng Java thực hiện việc xử lý các thông tin động dược tạo ra bởi các thành phần trong bộ chứa Web. Phần xử lý của ứng dụng được thực hiện bởi EJB và EJB trao đổi dữ liệu với cơ sở dữ liệu. Trong một sổ trường họp, phần xử lý của ứng dụng có thể được thực hiện bởi bộ chứa Web và bộ chứa này truy nhập trực tiếp vào cơ sở dữ liệu. • EJB client: Trong trường hợp này, các ứng dụng Java tương tác trực tiếp với bộ chứa EJB và các thành phần EJB. Tương tác này được thực hiện với giao thức RMI-IIOP. Các thành phần EJB sẽ truy nhập tới các dữ liệu trong cơ sở dừ liệu thông qua giao thức JDBC. • Các ứne dụng Java truy nhập trực tiếp vào cơ sở dữ liệu thông qua JDBC. Trong trường họp này toàn bộ phần biểu diễn và xử lv của ứng dụng đều được thực hiện tại máy trạm. Mô hình này chính là mô hình khách chủ truyền thống. Việc sử dụng mô hình này cũng đi kèm với các khó khăn - 15 - thường gặp phải đổi với mô hình khách chủ là việc phân phối các ứng dụng tới người sử dụng, bảo trì và khả năng mở rộng của hệ thống. [4] 1.3.3 M ô h ìn h ứ n g d ụ n g W eb HTML HTTP XML Servlet XML JavaMall Hình 1-4: Mô hình ứng dụng Web Trong một sổ trường hợp việc sử dụng các thành phần EJB là quá phức tạp đối với ứng dụng cần xây dựng. Vì vậy, có thể không sử dụng bộ chứa EJB. Các ứng dụng này sẽ bao gồm 3 lớp là các trình duyệt Web, bộ chứa Web và cơ sở dữ liệu. Trong trường hợp này, bộ chứa Web sẽ thực hiện cả việc biếu diễn và xử lý của ứng dụng. Như vậy, tạo bộ ứng dụng được phát triển trên bộ chứa Web. Bộ chứa Web sẽ thực hiện kết nổi trực tiếp với cơ sở dừ liệu thông qua JDBC. Mô hình này thường dược sử dụng với các ứng dụng nhỏ, tương đối đơn giản. 1.3.4 M ô h ìn h d o a n h n g h iệ p v ớ i d o a n h n g h iệ p Hình 1-5: Mô h ì n h d o a n h n g h i ệ p v ớ i d o a n h n g h i ệ p - 16- Mô hình doanh nghiệp với doanh nghiệp tập trung vào việc trao đổi ngang hàng giữa các bộ chứa Web và các bộ chứa EJB. Đây là mô hình được sử dụng cho việc trao đổi dừ liệu giữa các doanh nghiệp với nhau. Việc trao đổi này được thực hiện thông qua kết nối giữa hai bộ chứa Web. Đây là mô hình rất thích hợp cho các hoạt độne thương mại eiữa các doanh nghiệp với nhau trên Internet. Việc sử dụng kết nối giữa hai bộ chứa EJB thường đòi hỏi các kết nối chặt chẽ hơn. Vì vậy, mô hình này thường được sử dụng cho trao đổi dữ liệu giữa các bộ phận trons một doanh nghiệp. Với việc hồ trợ JMS và các thành phần xử lý thông điệp. J2EE cho phép các kết nối này có tính linh động cao hơn, giúp cho việc trao đổi dữ liệu trong nội bộ mỗi tổ chức dễ thực hiện và cũng dễ thay đổi hơn khi cần thiết. [4] 1.3.5 ư u đ iể m c ủ a m ô h ìn h đa m ứ c Mô hinh đa mức với đầy đủ cả hai bộ chứa Web và EJB đem có nhiều ưu điểm như: • Dễ dàng thay đổi hình thức thể hiện và giao diện của ứng dụng. • Việc phân chia giữa phần biểu diễn và phần xử lý của ứng dụng giúp tăng tính mô đun hóa của ứng dụng hơn. Việc phân chia này sẽ giúp việc bảo trì các ứng dụng trở nên đơn giản hơn. • Cho phép phân chia công việc phát triển ứng dụng giữa những người phát triển ứng dụng khác nhau. • Cho phép phát triển ứng dụng với các thành phần có sẵn trên thị trường mà vẫn không ảnh hưởng tới giao diện của ứng dụng. • Cho phép triển khai các thành phần khác nhau trên nhiều máy chủ khác nhau, giúp dễ dàng mở rộng khả năng xử lý của toàn bộ hệ thống. • Cho phép hỗ trợ đồng thời nhiều loại thiết bị. Hơn thế nữa việc hỗ trợ thêm các thiết bị mới có thể được thực hiện hết sức dễ dàng. - 17- Trong mô hình đa mức này, có tất cả 4 mức khác nhau là các trình duyệt, bộ chứa Web, bộ chứa EJB và cơ sở dừ liệu. Tuy vậy, nhiều khi mô hình này vẫn được gọi là mô hình 3 mức do bộ chửa Web và bộ chứa EJB cùng được thực hiện trên J2EE. Việc xây dựng các ứng dụns với mô hình này được thực hiện thông qua việc phát triển các thành phần trong bộ chứa Web và các thành phần cho bộ chứa EJB. Do nội dung có hạn của luận văn, phần sau chỉ đề cập chủ yếu đến là mô hình đa mức trên công nghệ J2EE. [4] - 18 - C h ư ơ n g 2: B ộ c h ứ a E J B - E n te r p r is e JavaB ean Trong các ứng dụng J2EE theo mô hình đa mức, mức EJB thực hiện logic của ứna dụng và các dịch vụ hệ thống như dịch vụ quản lý giao dịch, điều khiển các truy nhập đồng thời và bảo mật. Với mô hình này, các thành phần EJB sẽ thực hiện việc kết nối giữa các thành phần hiển thị được thực hiện trone, bộ chứa Web và dữ liệu của ứng dụng. Công nghệ EJB giúp xây dựng các ứn£ dụng dựa trên các thành phần phân tán. Yeu tố này cho phép người phát triển chỉ cần tập trung vào giải quyết các vấn đề đặt ra với ứng dụng. Công việc xử lý các dịch vụ hệ thống hết sức phức tạp sẽ được thực hiện bởi các phần mem J2EE. Chương này trước hết trình bày các vấn đề đặt ra đối với người phát triển ứng dụng khi phải triển khai phần logic của ứng dụng. Sau đó, sẽ trình bày các thành phần EJB giúp giải quyết các vấn đề này như thế nào. 2.1 Phần Logic nghiệp vụ - Business Logic Phần Logic nghiệp vụ của ứng dụng theo nghĩa rộng là một tập hợp các nguyên tắc để quản lý một chức năng nghiệp vụ nào đó của ứng dụng. Cách tiếp cận hướng đối tượng cho phép người phát triển ứng dụng phân chia các chức năng nghiệp vụ thành các đổi tượng nghiệp vụ. Cũng giốna như các đổi tượng khác, các đối tượng nghiệp vụ có cả các thuộc tính và các phương thức. Ví dụ, đối tượng nghiệp vụ Nhân viên có các thuộc tính là Tên, Địa chỉ, ... Đối tượng này cũng có các phương thức cho phép thực hiện việc gan với một phòng ban hay tăng lương theo một tỷ lệ nào đó. Để thực hiện các chức năng của ứng dụng, cần phải xây dựng được các phương thức của các đối tượng nghiệp vụ cũng như việc tương tác giữa các đôi tượng để tạo ra các chức năng cần thiết của ứng dụng. Các quy luật kinh doanh giúp xác định được cấu trúc và các phương thức của các đối tượng nghiệp vụ cùng với các tiền điều kiện và hậu điều kiện cần phải đạt được khi các đối tượng nghiệp vụ - 19 - thực hiện các phương thức của nó. Tất cà các quy luật này được hiểu là Logic nghiệp vụ. Ví dụ sau sẽ xem xét các đối tượng: Đối tượng Danh mục cho biết các hàng hóa được cung cấp, đối tượns, Giỏ hàng lưu tạm thời các hàng hóa được khách hàng lựa chọn, đối tượng Khách hàng lưu các thông tin về khách hàng và đối tượng Đơn hàng dùng để theo dòi các đơn hàng đã được đặt. Khi đó đối tượng Khảcli hàng phải thỏa mãn các ràng buộc sau: 1. Mồi khách hàng tương ứng với một đối tượnẹ Khách hàng duy nhất. 2. Mồi đối tượng Khách hàng phải có thông tin liên lạc của khách hàng như tên, địa chỉ, thư điện tử. 3. Khách hàng phải có khả năng tạo đối tượng Khách hàng mới. 4. Khách hàng có khả năng cập nhập các thông tin liên lạc của họ. 5. Khách hàng có khả năng truy nhập các thông tin của dối tượng Khách hàng của họ. 6. Mỗi khách hàng chỉ có thể truy nhập và cập nhập các thông tin của đổi tượng Khách hàng của họ mà thôi. 7. Các thông tin của đổi tượng Khách hàng phải được lưu trữ trên các thiết bị lưu trữ. 8. Nhiều khách hàng có thể đồng thời cùng truy nhập tới các thông tin của các đôi tượng Khách hàng tương ứng. 9. Tại một thời điểm không có quá một khách hàng có thể cập nhập các thông tin của một đối tượng Khách hàng. Hai ràng buộc đầu xác định cấu trúc của đối tượng Khách hàng. Theo đó, đôi tượng Khách hàng phải có trường ID và một số trường khác để chứa các thông tin về địa chỉ, số điện thoại và các thông tin liên lạc khác.
- Xem thêm -