Nền tảng Java 2 (Java 2 Enterprise Edition hay J2EE) xây dựng trên ngôn ngữ lập trình Java dùng để cung cấp một framework (khung làm việc) cho việc phát triển và triển khai các ứng dụng Java xoay quanh một máy chủ ứng dụng. Tuân theo những nguyên tắc chung của kiến trúc nhiều tầng, J2EE phân thành ba lớp chính:
1. Trình diễn (Presentation) - để tương tác với người sử dụng, thường là thông qua các ứng dụng máy khách.
2. Các đối tượng nghiệp vụ (Business objects) - để lưu giữ logic nghiệp vụ, bản chất là các ứng dụng Java hỗ trợ. Đây là phần cốt lõi của J2EE và chủ yếu chứa Java Beans (Enterprise Java Bean hay EJB) là các đối tượng phân tán được định nghĩa theo các luật. Các đối tượng này tự mô tả về các phương pháp để bên ngoài có thể gọi vào. EJB được chia làm hai loại, bao gồm phiên người dùng và thông tin cho các đối tượng.
EJB tạo điều kiện phát triển các ứng dụng có thể bảo trì bởi vì chúng lưu giữ logic nghiệp vụ của ứng dụng theo cách độc lập với việc triển khai. Nói cách khác, khi một ứng dụng được thiết kế sử dụng EJB, các quyết định về cách thức phân bổ tài nguyên (resources) cho các EJB chưa cần phải thực hiện ngay. Nếu một EJB nào đó thấy có nhu cầu sử dụng tài nguyên cao, nó có thểđược triển khai và được sử dụng tài nguyên bổ sung, ví dụ như sử dụng một số lượng lớn các luồng (thread).
3. Backend - xử lý các tương tác với cơ sở dữ liệu, hệ thống quan trị nguồn lực doanh nghiệp (Enterprise Resources Planning hay ERP) và các hệ thống khác (ngay cả những thứ không có trong J2EE). Lớp này gắn kết chủ yếu với kiến trúc kêt nối J2EE (J2EE Connector Architecture hay JCA) dùng cho việc hỗ trợ truyền thông đồng bộ và không đồng bộ giữa các hệ thống.
Máy chủ ứng dụng J2EE bao gồm một đối tượng vật chứa Web (Web container) và một đối tượng vật chứa EJB (EJB container). Đối tượng vật chứa Web lưu và chạy các servlet và các trang Java Server Pages (JSP). Nó gọi các Enterprise bean trong đối tượng vật chứa EJB. Máy chủ ứng dụng cũng tương tác với bên ngoài thông qua hàng đợi thông điệp và cơ sở dữ liệu. Đối tượng vật chứa EJB cung cấp dịch vụ mức hệ thống bao gồm cả kết nối, bảo mật, và các giao dịch.
J2EE cũng hỗ trợ cho hàng đợi thông điệp (messaging queue) nhờ sử dụng dịch vụ thông điệp Java (Java Message Service hay JMS). Thông điệp có thểđược gửi và nhận, được đồng bộ bởi các client và các EJB. MDB (Message-Driven Beans) nhận và xử lý thông điệp từ hàng đợi theo cách không đồng bộ. Thông điệp gửi và nhận có thể là một phần của một giao dịch phân tán.
Giao diện lập trình đặt tên Java và giao diện danh bạ (Java Naming and Directory Interface hay JNDI) là một giao diện lập trình cho các registry siêu dữ liệu. Một ứng dụng
J2EE hoặc EJB có thể tự xác định vị trí các tài nguyên và các thành phần khác, do đó có thể phân tách được chi tiết cấu hình ra khỏi việc cài đặt. Chuẩn kết nối cơ sở dữ liệu Java (Java Database Connectivity hay JDBC) cung cấp các thư viện để mở và duy trì kết nối với cơ sở dữ liệu quan hệ, truy xuất siêu dữ liệu quan hệ, chuẩn bị và gửi các câu lệnh truy vấn SQL, và xử lý các kết quả.
Hình 3.1: Kiến trúc J2EE
J2EE được minh họa trong hình 3.1. J2EE cung cấp các thành phần và chức năng sau đây:
§ Phiên, Thực thể, Message Driven Beans (EJB); § Quản lý giao dịch (JTA/JTS);
§ Đặt tên và thư mục (JNDI);
§ Remote Method Invocation (RMI);
§ An ninh (JNDI Security); Java Authentication and Authorization Service (JAAS); § Java Messaging Service (JMS);
§ J2EE Connector Architecture (JCA); § An ninh (realms, access control lists); § Dịch vụ Web;
§ XML (JAXP); § Caching;
3.1.2 .NET
.NET là công nghệ nền tảng (framework) của Microsoft cho phép phát triển và tích hợp các ứng dụng cũng như các dịch vụ Web. Cấu trúc của nó được thể hiện trong hình 3.2. .NET Framework bao gồm bộ thông dịch (interpreter) và biên dịch (compiler) và một thành phần Common Language Runtime (CLR) để nhận các mã ứng dụng theo Microsoft Intermediate Language (MSIL). CLR chuyển đổi mã MSIL thành mã nguồn gốc (native) sử dụng kỹ thuật biên dịch just-in-time. Có nhiều bộ thông dịch có thể tạo ra MSIL cho nhiều ngôn ngữ lập trình, chẳng hạn như C++, Cobol và Visual Basic. Kết quả là các ứng dụng được viết bằng nhiều ngôn ngữ khác có thểđược biên dịch thành MSIL và sau đó trở thành một phần của một dịch vụ Web.
Hình 3.2: Kiến trúc Microsoft .NET
Các máy chủ giao dịch Microsoft (Microsoft Transaction Server - MTS) tương ứng với các máy chủ J2EE. Chúng lưu trữ các ActiveX và đối tượng COM+, tương ứng với các EJB. .NET Active Service Directory (ADS) tương ứng với JNDI của J2EE, Microsoft Message Queue (MSMQ) tương ứng JMS J2EE, và chuẩn kết nối cơ sở dữ liệu mở (Open Database Connectivity hay ODBC) tương ứng JDBC. Cần lưu ý là các phương pháp tiếp cận .NET và J2EE là khá tương tự như nhau. Điểm khác biệt là .NET là một sản phẩm từ một nhà cung cấp duy nhất (Microsoft), trong khi J2EE là một đặc tả mà các sản phẩm có thểđược tạo ra bởi các nhà cung cấp khác nhau.