Thứ Tư, 21 tháng 10, 2009

EJB là gì

EJB viết tắt của Enterprise JavaBeans ( tui không dịch )
Nó có đặc điểm cơ bản sau
+ nằm trong lòng các container chính là các application server phía server side ( điển hình là JBOSS và GlassFish )
+ chỉ giao tiếp với các chương trình viết bằng java ( có giao tiếp với webservice viết bằng Java ) miễn là thông qua JNDI các chương trình đó tìm được đúng Bean cần dùng

Về các loại Bean trong EJB
Bean thực ra tương đương với remote component trong .NET nó có 3 loại chính ( có thể chia ra làm 5 loại )

+ Stateless Session Beans : ( loại thứ nhất của Session Bean )nôm na là nó chứa các nghiệp vụ logic mà public ra bên ngoài cho phép các hệ thống khác có thể truy nhập.
+ Stateful Session Beans : ( loại thứ haicủa Session Bean ) giống với loại trên nhưng 2 loại bean này khác nhau đúng 1 điểm : nếu giữa các người dùng sử dụng đến thuộc tính của Session Beans thì với Stateful Session Beans, lần sử dụng sau vẫn lưu giá trị của lần trước đối với người dùng đó còn Stateless Session Bean thì không phân biệt

Nôm na là : nều bạn muốn xài biến Session như viết web asp thì nó chính là Stateful Session Beans, còn nếu bạn muốn biến global thì nó sẽ là Session Beans.

+ Bean Managed Persistent Entity Bean ( BMP )
+ Container Managed Persistent Entity Bean ( CMP )

Hai loại trên dùng để ánh xạ 1 bản ghi trong csdl ở đâu đó mà Application có thể giao tiếp, hoặc đơn giản chỉ là 1 csdl bằng text do bạn tự quy định. CSDL ở đây có thể là tất cả những ghi có thể lưu trữ thông tin
Hai loại này khác nhau đúng chữ "Bean" và "Container". Nó cũng nói lên đặc điểm khác nhau điển hình của chúng. đó là : BMP việc giao tiếp csdl bạn phải tự quan lý ( tự code ), CMP việc giao tiếp csdl là tự động bạn chỉ cần khai báo cấu hình cho bean này ánh xạ đến csdl
Vì vậy CMP giới hạn hơn BMP vì nó chỉ có thể giao tiếp với các hệ quản trị csdl, còn BMP do các bạn viết code nên nó có thể lưu cả trên file txt, xml, excel ... miễn lưu được dữ liệu.
Và SUN cũng khuyên chúng ta cho các client sử dụng BMP và CMP thông qua các loại Session Bean
+ Message driven Bean : loại Bean này Sun đưa vào trong hệ thống EJB theo tôi thì nó là con nuôi của Beans . Vì khi triển khai code Bean thì loại này chẳng giống gì 4 loại Bean trên. Tuy nhiên nó rất quan trọng. Các hệ thống ngân hàng giao tiếp thanh toàn tài khoản với nhau chỉ dùng message cho nên đây là đất võ của Message driven Bean.
Có 2 loại Bean trong Message driven Bean và các loại Bean này năm trong MOM (Message Oriented Middleware)
Hai loại đó là Queue và Topic. Ứng với mỗi loại Bean này MOM có 2 loại hàng đợi phù hợp cho nó.
Quese thì chỉ cho 1 client gửi 1 message tới 1 người ( ví dụ chat yahoo )
Topic thì chỉ cho 1 client gửi 1 message tới nhiều người ( ví dụ chat room trong yahoo )
miễn là người nhận có đăng ký với hàng đợi message.
----------------------------------------------------
cụ thể hoạt động của mỗi loại Bean thì rắc rối nhưng 4 loại trên thì cùng nguyên tắc, JMS có nguyên tắc khác.

2 nhận xét:

thong nói...

EJB có thể trao đổi với một số nền tảng khác ngoài Java đó bạn. Ví dụ như Corbar.
EJB=Enterprice Java Bean là sự phối hợp của
JavaBean và RMI. Thực ra thì EJB là sự phát triển của RMI ở mức độ cao hơn. Vì thế, nếu hiểu được cách thức RMI thì việc tiếp cận EJB là hoàn toàn dễ dàng.

Nặc danh nói...

Cám ơn bạn đã viết bài bổ ích,mong bạn viết nhiều bài hay hơn nữa để giúp đơ newbie như mình!thân!