PDA

View Full Version : [DIS] Wellcome to Java 2 Enterprise



Diamond
07-11-2002, 13:50
Xin chao cac ban :)
Ban na`o da hoc Java ma chua biet kien truc Enterprise thi xin moi cac ban. Suc manh cua Java the hien rat ro o kien truc Enterprise. Do la Enterprise JavaBean.

Ban nao biet J2EE roi cho minh hoi chut. Minh chua biet lam sao de goi mot EJB tu mot trang JSP. Minh da goi duoc tu mot servlet. Ai biet chi gium tui voi. Cam on nhieu:question:

quangvu
08-11-2002, 14:12
Bạn có thể tham khảo ở đây (có cả Source) : http://www.javaworld.com/javaworld/jw-07-1998/jw-07-step.html
Chúc thành công .

Diamond
04-12-2002, 08:45
Từ hôm nay mình sẽ giới số bài viết về Enteprise Java. Mời các bạn tham gia trao đổi.

I. Sự cần thiết của kiến trúc thành phần phía server:
1. Cấu phần phần mềm(software component):
Một cấu phần phần mềm là các mã chương trình cài đặt một tập hợp các giao diện được định nghĩa tốt. Nó là một phần tách biệt, có thể quản lý của logic ứng dụng. Cấu phần không phải là một ứng dụng, chúng không thể chạy độc lập, chúng được dùng như một phần trong một chỉnh thể lớn và phức tạp hơn.
Các cấu phần được dùng lại là một ý tưởng có ý nghĩa quan trọng trong việc phát triển phần mềm hiện đại. Nó cho phép các phần mềm lớn, phức tạp được phát triển nhanh hơn nhờ việc dùng lại các cấu phần đã phát triển. Một công ty có thể mua một cấu phần phần mềm từ một công ty khác để tích hợp vào phần mềm đang phát triển của mình.
2.Kiến trúc cấu phần:
Để thúc đẩy tiến trình phát triển các cấu phần, cần có một phương pháp được chuẩn hoá để xây dựng, quản lý và bảo trì các cấu phần. Việc này bao gồm:
· Công cụ để phát triển các cấu phần: Tiến trình phát triển cấu phần cần phải cho phép các nhà phát triển tập trung vào việc viết các logic ứng dụng đằng sau các cấu phần. Điều này thúc đẩy việc phát triển ứng dụng nhanh và thiết yếu trong sự thành công của bất kỳ chuẩn cấu phần nào. Ví dụ một số IDE như: Borland Jbuilder, IBM’s Visual Age for Java,…
· Một trình chứa quản lý các cấu phần đã triển khai:Trình chứa này cung cấp môi trường runtime cho cấu phần hoạt động. Nó cũng cung cấp một tập hợp các dịch vụ chung mà hầu hết các cấu phần sẽ cần. Chẳng hạn như trình chứa có khả năng tạo ra mộ thể hiện của cấu phần khi cần. Để kết hợp bất kỳ trình chứa nào với bất kỳ cấu phần nào, cần có một thoả thuận được xác lập tốt giữa cấu phần và trình chứa.
· Công cụ để triển khai và bảo trì cấu phần: khi một tổ chức mua một cấu phần từ nhà cung cấp cấu phần, thì phải có một tập các công cụ để phục vụ cho việc triển khai và bảo trì cấu phần đó.
Một kiến trúc cấu phần được thiết kế tốt sẽ cho phép nhiều nhà phát triển khác nhau tạo ra các cấu phần, trình chứa và công cụ. Vì thế, có một chuẩn cấu phần các nhà phát triển có thể có một tiếp cận “chia để trị” trong việc lập trình.
3. Java: Một ngôn ngữ lý tưởng cho kiến trúc cấu phần
Để các cấu phần thành công trong việc giải quyết các vấn đề nghiệp vụ, cả nhà phát triển cấu phần và người sử dụng phải thoả thuận với nhau về cú pháp và ngữ việc trong việc gọi các phương thức của cấu phần. Vì vậy nhà phân phối cấu phần phải xuất bản một bản cam kết (hay các qui tắc) cho việv gọi cấu phần, và mã khách phải tuân theo các cam kết này.
Khi nhà phân phối phát hành một phiên bản mới, cá khách hàn thườn gmuốn nâng cấp. Điều này làm phát sinh một số vấn đề. Liệu phiên bản mới có làm việc với mã gọi phiên bản cũ hay không ? Mã khách có cần phải được biên dịch lại hay không ? Và tệ hại hơn, khi các cam kết thay đổi, các mã khách có cần thiết phải điều chỉnh lại hay không ?
Rất may mắn, thiết kế hướng đối tượng đã mang đến một giải pháp tốt cho vấn đề này bằng cách tách biệt phần giao diện (interface), khỏi phần cài đặt (implementation) của các cấu phần.
· Giao diện của cấu phần: định nghĩa các cam kết của cấu phần với mã gọi nó. Chẳng hạn như các phương thức và các tham số mà cấu phần chấp nhận. Giao diện này che khuất mã khách khỏi phần cài đặt cua cầu phần và mã khách chỉ làm việc với các phương thức mà cấu phần trưng ra.
· Cài đặt của cấu phần: là phần logic lập trình cốt lõi mà một đối tượng cung cấp. Nó có các dữ liệu, logic và giải thuật rất cụ thể. Các dữ liệu này là của riêng cấu phần và cần được che dấu khỏi các mã khách gọi cấu phần.
Để sự tách biệt giao diện/cài đặt có hiệu quả, mã khách chỉ được gọi đến giao diện của cấu phần (việc này gọi là lập tình dựa trên giao diện). Nhờ vậy, người phát triển cấu phần có thể cải tiến cách xử lý của cấu phần mà mã khách vẫn không cần phải biên dịch lại khi giao diện không thay đổi.
Ngôn ngữ Java hỗ trợ sự phân tách giao diện/cài đặt ở mức cú pháp thông qua các từ khoá interface và class. Và bởi vì Java là một ngôn ngữ thông dịch nên việc tách mã cài đặt vào một tập tin class riêng biệt sẽ đảm bảo rằng mã khác sẽ không phải biên dịch lại khi đón nhận một phiên bản mới của cấu phần
4. Kiến trúc cấu phần trong Java
Cấu phần đơn giản đầu tiên trong Java là JavaBean. JavaBean là một phần của ứng dụng small-grained. Nó có thể được dùng để tích hợp thành các cấu phần larger-grained hay một ứng dụng hoàn chỉnh . Tuy nhiên JavaBean là loại development component chứ không phải deloyable component. JavaBean không cần một trình chứa để sinh thể hiện, huỷ thể hiện, hay cung cấp các dịch vụ khác cho chúng bởi vì tự các ứng dụng sẽ làm vịec đó cho JavaBean.
Trong sự so sánh, chuẩn Enterprise JavaBean (EJB) định nghĩa một kiến trúc cấu phần cho các deployable component được gọi là enterprise beans. Enterprise bean là loại cấu phần lơn hơn của các ứng dụng coarse-grained, sẵn sàng cho deploy. Chúng có thể được triển khai hay được tích hợp với các cấu phần khác trong một hệ thống ứng dụng lớn. Deployable component phải được triển khai trong một tình chứa cung cấp các dịch vụ runtime cho các cấu phần.
Enterprise beans rất giống hai loại cấu phần khác của Java là: applets và servlets. Applet có thể được triển khai tong một trang web, hơi mà trình xem applet của browser se cung cấp runtime container cho chúng. Servlet có thể được triển khai trên Web server, nơi servlet engine của Web server sẽ cung cấp một runtime container cho chúng. Tương tự như vậy, enterprise beans được triển khai trong một application server.
Sự khác biệt giữa applet, servlet, enterprise bean là miền mà mỗi cấu phần tồn tại.
Applet là các chương trình Java khả chuyển, có thể được dowload và chạy trong một môi trường không được tin tưởng. Ví dụ như một applet có thể được download từ Web server xuống Web browser và hiển thị giao diện đồ hoạ cho người dùng.
Servlet là các cấu phần mạng, có thể được dùn để mở rộng chức năng cho Web server. Servlet là các cấu phần hướng theo kiểu request/response, trong đó chúng nhận các request từ trình chứa của client (như trình duỵệt Web chẳng hạn) và sinh ra các response trở lại cho chúng.
Cả servlet và applet rất thích hợp cho việc điều quản các thao tác phía client, như trình bày giao diện đồ hoạ người dùng, thực hiện các logic liên quan đếm việc trình bày, hay các thao tác logic nghiệp vụ đơn giản. Client có thể là trình duyệt web, khi đó các applet trình bày các giao diện người dùn sử dụng Java Foudation Classes. Client cũng có thể là Web server, khi đó các servlet trình bày các giao diện người dùng sử dụng HTML. Trong cả hai trường hợp, các cấu phần này tương tác trực tiếp với người dùng cuối.
Trái lại, enterprise beans, không hướng đến client side mà là các cấu phần phía server. Chúng là các phương tiện để thực hiện các thao tác phía server, chẳng hạn như thực hiện các giải thuật phức tạp hay các giao dịch nghiệp vụ có cường độ cao. Server side có nhiều nhu cầu khác biệt so với môi trường GUI. Chúng cần có tính sẵn sàng cao (24x7), khả năng chịu lỗi, giao dịch và môi trường an toàn đa người dùng. Application server cung cấp một trường đáp ứng các nhu cầu này của EJB.


5. Sự cần thiết của kiến trúc cấu phần
Như đã đề cập, một kiến trúc cấu phần hoàn chỉnh mở đường cho:
· Nhà phát triển viết các cấu phần có thể dùng lại được
· Các nhà phân phối viết các trình chứa cung cấp môi trường runtime và các dịch vụ cho các cấu phần
· Nhà phân phối cung cấp các công cụ để phát triển, triển khai, bảo trì cần thiết kèm theo các cấu phần.
6. Tiến trình chia để trị cho phép các nhà phân phối cung cấp một tập hợp các dịch vụ mà hầu hết các cấu phần sẽ dùng, vì vậy tiết kiệm được thời gian phát triển và triển khai. Thay vì làm lại cái bánh xe, người phát triển ứng dụng có thể nhận một cấu phần từ một nhà phát triển khác. Các chuyên gia trong lĩnh vực cung cấp các dịch vụ sẽ viết các cấu phần này. Nếu khai thác các cấu phần hợp lý, người dùng tiết kiệm được thời gian bằng cách mua thay vì xây dựng. Hơn nữa, tiến trình triển khai tổng thể sẽ trở nên mạnh mẽ, bởi vì các cấu phần được viết bởi các chuyên gia.

II. Kiến trúc đa tầng (Multi-tier Architect):
Một triển khai phía server là một phần mềm được viết để hỗ trợ các người dùng cạnh tranh thực hiện các thao tác đồng thời, an toàn, tin cậy và hiệu quả.
Các triển khai phía server mạnh mẽ không phải dễ xây dựng. Có rất nhiều vấn đề phát sinh, như khả năng chỉnh qui mô, khả năng bảo trì, bảo an, độ tin cậy,... Với rất nhiều client phụ thuộc vào các triển khai phía server trung tâm, sẽ là một thảm hoạ nếu server trung tâm bị chết, chậm chạp, hay cho phép các phần tử thù địch truy xuất vào các tại nguyên của hệ thống. Vì thế các triển khai phía server cần phải được viết tốt ngay từ đầu, kiểm tra tốt, và chúng cần được chạy trong một trường mạnh mẽ, bền vững.
Bất cứ phần triển khai well-written nào cũng có phần mềm logic chia thành các tầng. Mỗi tầng có trách nhiệm khác nhau trong một triển khai tổng thể, và trong mỗi tầng có thể có thể có một hay nhiều cấu phần. Các tầng này thuần tuý là ảo, chúng có thể không phản ánh các bố trí vật lý. Một hệ thống được phân tầng là một hệ thống được thiết kế tốt bởi vì mỗi tầng chịu trách nhiệm cho một phần việc riêng biệt. Sau đây là một số tầng điển hình:
· Tầng trình bày (presentation): chứa các cấu phần xử lý giao diện người dùng và tương tác với người dùng. Chẳng hạn như một tầng trình bày của một ứng dụng độc lập có thê viết trong Visual Basic. Tầng trình bày của một ứng dụng Web-based có thể sử dụng Java servlet, Java Server Page, hay kết hợp với Java Applet
· Tầng logic nghiệp vụ (bussiness logic): chứa các cấu phần phối hợp với nhau đê giải quyết các vấn đề nghiệp vụ. Thông thường, các cấu phần này được viết bằng các ngôn ngữ type-safe như Java hay C++.
· Tầng dữ liệu (data): được sử dụng bởi tầng logic nghiệp vụ để lưu trữ các trạng thái bền vững. Tầng này thường là một hay nhiều database
Ưu điểm của việc chia tách ứng dụng thành các tầng logic khác nhau là tách biệt mỗi phần với những phần khác. Sự tách biệt này giúp nhà phát triển có thể có nhiều sự thay đổi ở một tầng mà hạn chế được tối đa việc ảnh hưởng tới các tầng khác.

1. Kiến trúc hai tần:
Theo truyền thống, hầu hết các ứng dụng là hai tần. Các triển khai hai tần kết hợp tầng logic nghiệp vụ với một trong hai tần kia. Do đó có hai khả năng xảy ra: tầng trình bày kết hợp với tầng logic nghiệp vụ, hay đẩy tầng logic nghiệp vụ vào tầng dữ liệu.
a) Sự kết hợp giữa tầng rình bày và tầng logic nghiệp vụ:
Điều này trước hết tạo ra ranh giới giữa tầng dữ liệu và tầng logic nghiệp vụ. Nếu cho rằng tầng thứ nhất là “server” tầng thứ hai là “client”, kiến trúc này sẽ làm cho client “fat” còn server thì “thin”.
Trong kiến trúc hai tầng, client thường giao tiếp với tầng dữ liệu thông qua các API cầu nối đến database như Open Database Connectivity (ODBC) hay Java Database Connectivity (JDBC). Điều này làm tách biệt giữa ứng dụng khách và database.


Kiến trúc hai tần có những đặc tính sau:
· Chi phí thay đổi sơ đồ dữ liệu cao
· Chi phí chuyển đổi kiểu database cao (chẳng hạn như từ CSDL quan hệ sang CSDL HĐT)
· Chi phí nâng cấp tâng logic nghiệp vụ cao
· Chi phí kết nối dữ liệu cao
· Làm đầy lưu thông mạng
b) Sự kết hợp giữa tầng dữ liệu và tầng logic nghiệp vụ:
Gần đây, việc triển khai đã bắt đầu kết hợp những phần của tầng logic nghiệp vụ vào tầng dữ liệu thành một tầng riêng biệt. Nếu cho rằng tầng đầu tiên là tầng “client”, tầng thứ hai là “server” thì kiến trúc này là cho server “fat” và client “thin”.

Trong thực tế, một phần của logic nghiệp vụ được đưa vào trong cơ sở dữ liệu. CSDL cho phép ta thực thi logic bên trong ngữ cảnh CSDL thông qua các thủ tục lưu trữ. Bằng cách này ứng dụng sẽ thu được một số cải thiện về khả năng mở rộng, sự thể hiện. Các round-strip giữa logic và CSDL cũng giảm thiểu tối đa. Từ đó giảm giao thông mạng.
Tuy nhiên, hầu hết các vấn đề đã liệt kê ở phần trên vẫn tồn tại. Và trong khi việc viết các thủ tục lưu trữ là bước quan trọng thì chúng không giải quyết được mọi vấn đề. Thực tế là chúng làm tăng thêm một số vấn đề.Chẳng hạn như, do thủ tục lưu trữ gắn liền với một database cụ thể nên tính năng quan trọng của các cầu nối CSDL - là cho phép các database được plug-in bị phá hỏng.
2. Kiến trúc N tầng:
Kiến trúc N tầng thêm một hoặc nhiều tầng vào mô hình hai tầng. Trong kiến trúc N tầng, tầng trình bày, tầng logic và tầng dữ liệu được chia tách vào các tầng vật lý tương ứng.
Một ví dụ cụ thể của kiến trúc N tầng là triển khai Web-based ba tầng như trong hình. Một triển khai Web-based ba tầng thường được chia tách như sau:
· Tầng trình bày: chạy trong không gian địa chỉ của một hai nhiều Web server. Nó bao gồm Java Servlet, script để tuỳ biến look-and-feel như Java Server Page và logic dòng công việc kết nối mọi thứ lại với nhau.
· Tầng logic nghiệp vụ: chạy trong không gian địa chỉ của một hay nhiều application server. Application server cần thiết để cung cấp môi trường trình chứa thích hợp cho các cấu phần logic nghiệp vụ chạy trong đó. Application server cũng quản lý các cấu phần hiệu quả và cung cấp các dịch vụ cho cấu phần. Ví dụ như application server cung cấp tầng truy xuất dữ liệu cho các cấu phần nghiệp vụ, cho phép các cấu phần nghiệp vụ trữ dữ liệu, nạp dữ liệu từ tầng dữ liệu. Application server cũng chịu trách nhiệm là cho các cấu phần nghiệp vụ sẵn sàng cho sử dụng.
· Tầng dữ liệu: chứa một hay nhiều cơ sở dữ liệu và có thể chứa các logic liên quan đến dữ liệu dưới hình thức thủ tục lưu trữ.


Kiến trúc N tầng có các đặc điểm sau:
· Chi phí chuyển đổi CSDL thấp
· Chi phí nâng cấp logic dữ liệu thấp: không phải biên dịch lại client
· Có thể bảo mật từng phần của triển khai với các firewall
· Các tài nguyên có thể được pool và re-used
· Mỗi tầng có thể thay đổi độc lập:
· Sự thể hiện chậm chạp được cục bộ hoá
· Các lỗi được cục bộ hoá: chẳng hạn như nếu application server hỏng thì web server có thể báo cho người dùng là “site down”
· Chi phí giao tiếp cao giữa các tầng
· Chi phí bảo trì cao
III. Ý nghĩa của kiến trúc đa tầng trong việc tổ chức đội ngũ phát triển phần mềm
Kiến trúc đa tầng, tách biệt giữa các tầng khác nhau của ứng dụng, mỗi tầng có vai trò và chức năng riêng. Đối với các ứng dụng Web đa tầng phổ biến, được tổ chức theo khung Model-View-Controller chúng ta có thể có đến bốn tầng:
· Tầng dữ liệu thuộc Model: bao gồm các cơ sở dữ liệu và các Entity EJB
· Tầng logic nghiệp vụ thuộc Model: gồm có các Session EJB
· Tầng điều khiển: gồm có các Java Servlet
· Tầng trình bày: chứa các trang JSP
Như vậy, trong một công ty, chúng ta có thể tổ chức những nhóm chuyên cho mỗi tần nhằm tăng cường hiệu quả hoạt động và mang tính chuyên nghiệp cao. Các nhân viên thạo về công nghệ cấu phần phía server sẽ đảm nhận phần Model, các nhân viên giỏi về các giao tiếp HTTP sẽ đảm nhận phần Contrroller, các nhân viên giỏi về thiết kế đồ hoạ, trình bày thông tin sẽ đảm nhận phần View.
Khi công ty tham gia nhiều dự án, chúng ta có thể điều phối các nhóm chuyên môn từ dự án này sang dự án khác một cách dễ dàng. Trong khi nhóm chuyên môn về Model đang lầm việc cho một dự án thì các nhóm Controller, View có thể tham gia một dự án khác. Khi nhóm này hoàn thành, sẽ bàn giao lại cho các nhóm Controller,View và chuyển sang một dự án mới. Khi đó các nhóm sẽ thể hiện được sở trường và những kinh nghiệm của mình để hoàn thành xuất sắc phần việc được giao.
Kiến trúc phân tầng không bắt người phát triển cấu phần làm công việc trình bày giao diện người dùng hay ngược lại. Nhò đó hiệu quả làm việc sẽ tăng lên do tính chuyên môn cao.

Mèo mướp
08-12-2002, 08:22
Chào Mods mới nghen !

Lâu quá tui hổng vào chỗ này chơi thành ra hổng có biết tin tức gì mới cả. Bữa nào ăn mừng , làm lễ ra mắt coi.

Tui biết tại sao ông lại lấy nick này rồi, ghê thật hén, romantic quá trời rồi. Hehe, chúc ông anh thành công hén, chừng nữa cho đàn em học hỏi nghen.

Diamond
16-01-2003, 14:06
Các bạn vui lòng cho vài ý kiến về bài viết trên đi. lol

lelamhoang
18-01-2003, 13:34
Bài bạn viết hay lắm. Đây là 1 bài mở đầu mang tính bao quát về EJbs và công nghệ nhiều tầng (multi tier).
Không biết Diamond có dự định viết tiếp 1 vài bài nữa mang tính chi tiết hơn.

Diamond
20-01-2003, 10:27
Mình gửi các bạn một bài được biên soạn từ cuốn Java lập trình mạng và một vài tài liệu tiếng Anh. Sau đây là một số đoạn. Các bạn có quan tâm hãy down file kèm theo để xem và nhớ cho mình vài lời phê bình. Cảm ơn

II. Định nghĩa:
Kiến trúc Enterprise JavaBean là kiến trúc cấu phần cho việc phát triển và triển khai các ứng dụng phân tán dựa trên cấu phần. Enterprise Java Bean (EJB) là những đối tượng tuân theo đặc tả của môi trường hoạt động tích hợp ở cấp xí nghiệp. Các đối tượng EJB không dùng thể hiện giao diện. Các đối tượng EJB thực hiện các chức năng tính toán, kết nối lưu trữ dữ liệu, đưa ra kết quả và giải pháp thiết thực cho doanh nghiệp.
Enterprise bean là một thành phần phần mềm server-side mà được triển khai trong môi trường đa tầng phân tán. Một Enterprise bean có thể bao gồm một hoặc nhiều đối tượng Java .
Ứng dụng sử dụng kiên trúc Enterprise JavaBean dễ mở rộng, hỗ trợ giao dịch, an toàn trong môi trường đa ngừơi dùng. Các ứng dụng này được viết mọt lần, sau đó có thể triển khai trên bất kỳ nền tảng server nào hỗ trợ đặc tả Enterprise JavaBean
III. Các vai trò trong kiến trúc Enterprise JavaBean:
Kiến trúc Enterprise JavaBean định nghĩa các vai trò riêng biệt trong vòng đời phát triển và triển khai ứng dụng. Mỗi vai trò có thể được thực hiện bởi các bên khác nhau. Kiến trúc Enterprise JavaBean chỉ ra các cam kết đảm bảo các sản phẩm của mỗi bên sẽ tương thích với các bên kia.
Trong một số thể hiện, một bên có thể đảm nhận nhiều vai trò khác nhau.
1. Người cung cấp Enterprise JavaBean :
Vai trò đầu tiên trong việc tạo những ứng dụng Enterprise Java Bean là các nhà lập trình Enterprise Java Bean . Đây là người tạo ra các EJB. Anh ta sẽ là một nhà phát triển Java là người hiểu được sự đặc tả và tạo ra các file Jar chứa mã Enterprise Java Bean .Nhiệm vụ của người này là định nghĩa hai khoá giao diện(interface) Java cho một EJB. Giao diện đầu tiên, gọi là giao diện chủ (Home interface), định nghĩa làm thế nào mà những chương trình có thể tạo ra các EJB trên máy chủ. Giao diện thứ hai đó là nhà phát triển EJB xác định giao diện trực tiếp của bean. Giao diện này mở rộng (extends) giaodiện java.rmi.Remote, nó miêu tả một tập các thông điệp đối tượng phân tán. Mặc dù giao diện này được định nghĩa để sử dụng RMI, nó có thể được truy xuất (access) với CORBA hoặc một công nghệ khác.
2. Người tích hợp ứng dụng
Những người tích hợp ứng dụng (Application Assembler) kết hợp các Enterprise JavaBean vào trong các đơn vị ứng dụng có thể triển khai lớn hơn. Họ là các chuyên gia lĩnh vực, tạo ra các ứng dụng có sử dung Enterprise JavaBean. Họ làm việc với các bản mô tả triển khai Enterprise Java Bean và các cam kết cho phía client (client-view contracts).
3. Những nhà triển khai :
Nhà triển khai (deployer) là các chuyên gia trong một môi trường hoạt động cụ thể và có trách nhiệm triển khai các Enterprise Java Bean. Ví dụ, nhà triển khai có trách nhiệm ánh xạ các vai trò bảo mật được định nghĩa bởi người tích hợp vào các nhóm người dùng và tài khoản tồn tại trong môi trường hoạt động mà Enterprise JavaBean được triển khai
4. Người cung cấp EJB server (Server providers) :
Một công ty hoặc tổ chức mà cung cấp máy phục vụ (server) cho hostting Enterprise Beans được mong đợi để cài đặt cũng như nhiều sự đặc tả EJBs yêu cầu. Tuy nhiên, những nhà cung cấp có thể cài đặt những tính năng khác tạo ra sự khác biệt với các đối thủ cạnh tranh. Đặc tả EJB (của Sun) được xem xét ở một mức tối thiểu. Những nhà cung cấp có thể tạo ra những thư viện khác để làm tăng thêm những sản phẩm hoặc công cụ của họ giúp họ dễ dàng hơn trong việc sử dụng.
Một trong những thứ tuyệt vời về EJBs là chúng có thể được hỗ trợ bởi nhiều kiểu Server. Sản phẩm đầu tiên là BEA’s Weblogic. Hiện nay còn có Borland Application Server, Macromedia’s JRun, Oracle Application Server,.. và nột số Open Source Software như JBoss, JUnit,..
5. Các nhà quản trị :
Nhà quản trị hệ thống có trách nhiệm cấu hình và quản trị cơ sở hạ tầng tính toán và hệ thống mạng chứa EJB server và các trình chứa.

nhocyeu162
02-04-2008, 11:23
Bạn ơi! bạn có thể attach lại file kia được không? Mình đang cần tài liệu về cái này! Thanks bạn nhiều!