Java EE - Tìm hiểu Java EE

Khái quát Java EE.

"Java EE" tên đầy đủ là "Java Enterprise Edition" dịch sang tiếng việt có nghĩa là là "Java Phiên Bản Doanh Nghiệp", nó là một nền tảng (platform) dành cho việc xây dựng các ứng dụng (application) cấp doanh nghiệp. Java EE tập hợp nhiều công nghệ kỹ thuật và phối hợp chúng với nhau, việc này sẽ làm giảm đáng kể chi phí và độ phức tạp cho việc xây dựng, phát triển, triển khai, quản lý các tầng làm việc (managing multi-tier), cho các ứng dụng máy chủ trung tâm.

Java EE được xây dựng dưa trên nền tảng Java SE và có thêm các tập APIs (application programming interfaces) để phát triển các ứng dựng phái máy chủ một cách nhanh chóng(running), linh động(portable), mạnh mẽ(rob), khả năng mở rộng cao, đáng tinh cậy và bảo mật.

Java EE đã ra rất nhiều phiên bản và có rất nhiều thành phần mới hoặc hỗ trợ mới khác nhau theo từng phiên bản tuy nhiên bài viết này chỉ nhắm vào mục đích là khái miện cơ bản về Java EE, nên mình chỉ nói tới hai phần chủ chốt nhất trong nền tảng Java EE là: Enterprise Java Beans (EJB): một thành phần kiến trúc của các ứng dụng server được quản lý, sử dụng để đóng gói (encapsulate) các business logic (nghiệp vụ logic hay nghiệp vụ luận lý) của các ứng dụng. Kỹ thuật EJB cho phép nhanh chóng tạo ra các ứng dụng có các tính chất như là đơn giản hóa việc phân phối(simplified development of distributed: dạng như cài đặt hay trang bị cho nhân viên, khách hàng), dễ dàng tương tác (transactional), an toàn(secure) và linh hoạt(portable) dựa trên công nghệ Java. Java Persistence API (JPA): một framework cho pháp nhà phát triển quản lý dữ liệu bằng cách sử dụng ánh xạ đối tượng quan hệ (Object Relational Mapping - ORM) trong các dứng dụng được xây dựng trên nền tảng Java.

Cấu trúc Java EE.

Hệ nền JEE sử dụng một mô hình ứng dụng theo kiểu đa tầng cho các ứng dụng doanh nghiệp. Về mặt logic ứng dụng được chia theo các thành phần theo chức năng, và các thành phần ứng dụng khác nhau tạo nên một ứng dụng JEE được cài đặt trên các máy khác nhau tùy thuộc vào các tầng trong môi trường phân tầng của JEE nơi mà các thành phần ứng dụng thuộc về. Ứng dụng phân tầng JEE được chia thành các lớp được mô tả trong danh sách sau đây.:

*     Các thành phần tầng khách hành chạy trên máy khách hàng
*     Các thành phần tầng web chạy trên máy chủ JEE
*     Các thành phần nghiệp vụ kinh doanh chạy trên máy chủ JEE
*     Phần mềm hệ thống thông tin doanh nghiệp(EIS) chạy trên EIS Server

Mặc dù 1 ứng dụng JEE có thể bao gồm 3 hay 4 tầng nhưng các ứng dụng phân tầng JEE thường được coi như là 3 tầng bởi vì chúng được phân chia theo địa điểm : máy khách hàng, máy chủ JEE, và database. Ứng dụng 3 tầng này chạy bằng cách mở rộng tiêu chuẩn mô hình 2 tầng máy khách hàng và máy chủ bằng cách đặt 1 máy chủ ứng dụng đa luồng giữa máy khách hàng và các lưu trữ phía sau.

Tại sao sử dụng JEE?

Bạn sẽ muốn sử dụng nền tảng JEE để phát triển thương mại điện tử Java hoặc ứng dụng doanh nghiệp thì phải đảm bảo các điều dưới đây: * Bạn muốn sử dụng một nền tảng được kiểm định kỹ lưỡng đã được kiểm định bởi nhà phát triển, cung cấp hỗ trợ quản lý giao dịch, đặt tên, bảo mật, kết nối từ xa và truy cập cơ sở dữ liệu. * Bạn cần khả năng quản lý source của mình trên một mô hình chuẩn dễ bảo trì nâng cấp. * Bạn muốn sử dụng lại các thành phần của dự án hoặc sử dụng các thành phần mà nền tảng JEE đã cung cấp sẳn. * Bạn muốn tận dụng kiến trúc kiến trúc của nhà phát triển của mình trên nền tảng JEE, sử dụng các mẫu thiết kế và kiến trúc đã được kiểm thử một cách kỹ càng. * Bạn muốn giảm thời gian phát triển bằng cách sử dụng các công cụ triển khai của JEE. * Bạn muốn dễ dàng tích hợp với back end systems. * Bạn muốn tận dụng các tính năng bảo mật đơn giản, mạnh mẽ. Với mỗi điểm trên giúp bạn phát triển một ứng dụng trở nên dễ dàng và hổ trợ khả năng bảo trì mở rộng sau này.

Tính linh hoạt của JEE.

Các thành phần và ứng dụng của JEE là hệ thống phân tầng tuân thủ JEE, không cần sửa đổi mã, vì vậy bạn có thể triển khai ứng dụng của mình lên máy chủ phù hợp với JEE bằng cách cập nhật thông tin triển khai cho tầng cụ thể.

Các thành phần tái sử dụng được Bởi vì chúng phù hợp với tiêu chuẩn JEE, các thành phần của JEE có thể được phát triển bới các developer và được đưa vào ứng dụng JEE của bạn theo yêu cầu. Nếu bạn phát triển thành phần, bạn có thể sử dụng lại nó trong một ứng dụng khác hoặc triển khai nó tới các máy chủ khác nhau theo tiêu chuẩn JEE, theo yêu cầu.

Nền tảng JEE xác định kiến trúc ứng dụng có nhiều cấu trúc và nhiều tầng. Bằng cách tận dụng kiến trúc JEE, các nhà phát triển của bạn có thể nhanh chóng tiếp tục phát triển logic kinh doanh thực tế của ứng dụng.

Security

JEE cung cấp các tính năng bảo mật đơn giản, mạnh mẽ. Thông tin bảo mật cho các thành phần JEE được định nghĩa trong descriptor triển khai của chúng. Thông tin này định nghĩa vai trò an toàn được ủy quyền để truy cập một URL cụ thể hoặc các phương pháp của một thành phần. Vai trò bảo mật chỉ là một tên hợp lý cho một nhóm người dùng; Ví dụ, các thành viên trong nhóm quản lý của một tổ chức có thể được chỉ định một vai trò là "người quản lý". Vì thông tin bảo mật được khai báo trong descriptor triển khai, nên hành vi bảo mật có thể được thay đổi mà không cần phải có một chu kỳ kiểm tra cập nhật mã lỗi.

Transaction Management

Một Transaction hoạt động thành công hoặc không thành công hay không, nếu bất kỳ thao tác nào trong chuỗi không thành công, khi đó sẽ thực hiện rollback lại hệ thống không có thay đổi nào được thực hiện đối với trạng thái hệ thống. Ví dụ: giả sử bạn muốn phát hành vé máy bay: bạn sẽ xác thực tài khoản thẻ tín dụng của khách hàng, ghi nợ tài khoản đó và phát hành vé. Chuỗi hoạt động này nên xảy ra trong một giao dịch duy nhất, do đó nếu bất kỳ hoạt động nào không thành công, sẽ không có thay đổi đối với tài khoản thẻ tín dụng của khách hàng và không phát hành vé. EJBs(Enterprise JavaBeans) có thể sử dụng phân chia giao dịch được quản lý bằng transaction hoặc phân định giao dịch được quản lý vùng chứa, được mô tả trong hai tiêu đề tiếp theo.

Bean-managed transaction demarcation

Trong phân chia giao dịch được quản lý bởi bean, bạn sử dụng một API đơn giản để phân ranh giới hạn giao dịch. Đây là Java Transaction API (JTA), mà bạn sử dụng để kiểm soát phân vùng theo chương trình; Ví dụ bằng cách gọi phương thức begin (), commit () và rollback () của giao diện UserTransaction của JTA. Nhà phát triển chịu trách nhiệm cho logic mã hoá rollback cho các điều kiện ngoại lệ giao dịch, vì vùng chứa không tự động xử lý.

Lưu ý: Tổ chức EJBs thực thể không thể sử dụng phân định giao dịch được quản lý bởi bean-managed transaction chỉ có thể sử dụng phân định giao dịch được quản lý vùng chứa.

Enterprise JavaBeans

Enterprise JavaBeans quy định một kiến trúc cho việc phát triển và triển khai các ứng dụng kinh doanh phân phối dựa trên thành phần, dựa trên giao dịch. Các thành phần được định nghĩa bởi đặc tả EJB được gọi là Enterprise JavaBeans (EJBs). EJB là các thành phần Java phía máy chủ trong đó bạn thực hiện các quy tắc kinh doanh của ứng dụng của bạn. EJB được triển khai vào một môi trường gọi là EJB container, cung cấp các dịch vụ như quản lý giao dịch, kết nối cơ sở dữ liệu và bảo mật. Bằng cách che giấu những phức tạp như vậy, kiến trúc EJB cho phép các nhà phát triển thành phần tập trung vào bussiness dự án.

Một Enterprise JavaBean (EJB) là sự kết hợp của các giao diện Java, một lớp triển khai EJB, và một descriptor triển khai XML. Các giao diện và lớp triển khai EJB phải phù hợp với các quy tắc được xác định bởi đặc tả EJB, chẳng hạn như triển khai một số giao diện nhất định và cung cấp các phương pháp gọi lại nhất định.

Các giao diện EJB bao gồm các giao diện gia đình cung cấp các phương pháp để tìm và tạo các thể hiện EJB ,các giao diện thành phần cung cấp các phương pháp kinh doanh cho một thể hiện EJB cụ thể. Đây có thể là các giao diện từ xa, có nghĩa là chúng có thể được gọi qua mạng, hoặc các giao diện cục bộ, có nghĩa là người gọi phải ở cùng một quá trình (hoặc chính xác hơn, trong cùng một máy ảo Java). Các giao diện EJB được thực hiện bởi các lớp container EJB mà các phương pháp ủy thác cho lớp thực hiện EJB. Ngoại lệ là một phương pháp tìm kiếm của một thực thể EJB quản lý vùng chứa, được xử lý bởi lớp chứa.

Có ba loại EJB: ession beans, entity beans, and message-driven beans.

Nói tóm lại bạn có thể hiểu đơn giản Java EE là một nền tảng cung cấp nhiều công nghệ, kỹ thuật, dịch vụ giúp ta có thể nhanh chóng tạo ra các ứng dụng ở cấp doanh nghiệp (enterprise), còn bạn muốn biết nó hỗ trợ như thế nào thì phải đi chi tiết vào thực tế mới có thể rõ được.

Một điều nữa khi nói tới ứng dụng doanh nghiệp thì sẽ liên quan tới dịch vụ(services) và khách hàng(client) chính vì thế Java EE thiên về hướng Server-Client.