Chủ Nhật, 9 tháng 10, 2016

Webservice and EJB


Tổng quan về EJB


1. Khái niệm


Công nghệ EJB (Enterprise Java Beans)  một kiến trúc phát triển để xây dựng ứng dụng, cho doanh nghiệp, có khả năng mở rộng cao và mạnh mẽ để triển khai trên J2EE, phù hợp với máy chủ ứng dụng như JBOSS, Web Logic, …
EJB hướng tới việc xây dựng các ứng dụng thương mại (enterprise), lớn, phân tán. EJB đưa ra kiến trúc và các đặc tả cho việc phát triển và triển khai các thành phần (component) phía server của các ứng dụng phân tán. Các thành phần này có thể được xây dựng bởi chính tổ chức phát triển ứng dụng hoặc sử dụng hay mua lại từ một bên thứ ba.
Các EJB được chứa trong một trình chứa EJB (EJB container). Các EJB container này sẽ lưu trữ, lập kế hoạch và quản lý các EJB. EJB container quản lý mọi mặt của một ejb khi nó chạy, bao gồm cả việc truy cập tới các bean, bảo mật, duy trì dữ liệu, trạng thái, quản lý giao dịch, xử lý tương tranh, đồng thời và quản lý truy cập tới tài nguyên của hệ thống.
EJB đã được triển khai bởi nhiều hãng phát triển phần mềm hàng đầu như IBM, Sun, BEA System… Tất cả đều tuân theo những đặc tả mà Sun đưa ra nên các thành phần được xây dựng trên nền tàng của hãng này hoàn toàn có thể tương thích và chạy được trên nền tảng của một hãng khác.
Các EJB được chứa trong một trình chứa EJB (EJB container). Các EJB container này sẽ lưu trữ, lập kế hoạch và quản lý các EJB. EJB container quản lý mọi mặt của một ejb khi nó chạy, bao gồm cả việc truy cập tới các bean, bảo mật, duy trì dữ liệu, trạng thái, quản lý giao dịch, xử lý tương tranh, đồng thời và quản lý truy cập tới tài nguyên của hệ thống.

2. Đặc điểm cơ bản.
+ 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 )
+ 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 )  và một số chương trình khác ngoài java như 
Corbar. miễn là thông qua JNDI các chương trình đó tìm được đúng Bean cần dùng



3. Cấu trúc EJB
    - Session beans: quản lý các nhiệm vụ tác nghiệp của các client của ejb. Client gửi một message tới session beans thông qua môi trường mạng. Session bean có thể triệu gọi tới một entity bean hay một session bean khác để hoàn thành nhiệm vụ mà client yêu cầu. Session bean lại được chia làm hai loại:

  • + Stateless: trạng thái các giao dịch của client sẽ không được lưu lại cho những lần giao dịch sau. Những lần giao dịch khác nhau sẽ hoàn toàn động lập với nhau.
  • + Statefull: trạng thái các giao tác của client sẽ được lưu trữ lại phục vụ cho những lần giao dịch sau.
   - Entity beans: tương tự với các đối tượng thực thể (entity object) trong đặc tả UML [Jacobson/UML]. Entity bean chứa các thông tin tác vụ và các phương thức hoạt động của nó. Một entity beans có thể được lưu trữ và khôi phục lại một các tự động bởi trình quản lý ejb, với việc sử dụng cơ sở dữ liệu quan hệ hay một hệ thống lưu trữ nào đó do bạn chọn.

     + Java Persistence API (JPA)  là một đặc tả Java dùng cho việc truy xuất, lưu trữ/truy vấn và quản lý dữ liệu giữa các đối tượng Java/class với CSDL quan hệ. 

     - Message-driven beans: chịu trách nhiệm điều khiển các message giữa client và server. Message này sẽ được truyền theo hình thức P2P hay broadcast (quảng bá)….


* Ứng dụng EJB được chia thành nhiều tầng nhiều lớp

Đầu tiên là Client Tier là giao diện nó là ứng dụng bình thường nếu là ứng dụng hay trình duyệt bình thường có thể gọi đến ứng dụng web tầng web được phát triển bởi servlet cao cấp hơn là JSP JSF Sturts dưới tầng web là EJB xử lý nghiệp vụ tiếp đó là tầng làm việc với database đây là kiến thức chung kiến trúc nhiều tầng của EJB 

    *Server 


Nếu nó là trình duyệt hay bất kỳ đoạn code java nào phải gọi đến server, server nếu nó là trình duyệt hay web sẽ gọi đến web tier nếu không sẽ gọi đến business tier

Nếu nó là trình duyệt nó sẽ gọi đến tầng web (JSP Pages Servlet) và nó có thể gọi đến một EJB , EJB này có thể gọi đến một EJB và tầng business này sẽ tiếp tục gọi đến tầng database hoặc là hệ thống cung cấp thông tin ngoài khác 

    *Phát triển EJB 


EJB container được chạy trong các server là nơi quản lý EJB chúng ta không thể gọi trực tiếp đến EJB chúng ta phải thông qua các container và vòng đời

   * Lợi ích của EJB


- Nó quản lý toàn bộ vòng đời cho ứng dụng của chúng ta 
- Quản lý trạng thái cho EJB 
- Quản lý các giao dịch
- Bảo mật và lưu trữ dữ liệu đều được chuyển cho container 

  * Vai trò phát triển của EJB


- Người làm ra cái code Bean
- Người cung cấp container để quản lý cái bean đó
- Người cung cấp server do container phải chạy trong server
- Application assembler có nghĩa vụ đóng gói
- Deployer
- Admin để quản lý toàn bộ quá trình chạy



4. Ưu điểm sử dụng EJB
EJB 3.0 đơn giản hoá quá trình phát triển của các lập trình viên bằng cách sử dụng các POJO (plain Old java Object – đối tượng thuần java) và POJI (Plain Old Java Interface – các giao diện thuần java). Điều này giúp cho các lập trình viên có thể viết các beans một cách dễ dàng và chẳng khác gì việc viết một class hay một interface đơn thuần.

- Thay vì sử dụng xml để miêu tả các bean như trong EJB 2.1, EJB 3.0 sử dụng các anotation để miêu tả về các bean. Các anotation là các siêu dữ liệu miêu tả về đối tượng (class) và được viết ngay trong mã nguồn java, được sử lý trong thời gian run-time.

- Khả năng phát triển EJB là đơn giản , nó là một lớp java bình thường

- Nó ở dưới dạng component nên có khả năng tái sử dụng rất là cao nó được nhúng được chạy trong server và các contetner và các contentner này có khả năng phát triển hỗ trợ ứng dụng lớn

- EJB không nên dùng cho tất cả mọi nơi vì nó phải chạy trong contentner nên nó có nhược điểm là rất là nặng khi ta phát triển các ứng dụng nhỏ và vừa không nên dùng EJB

- Khi chúng ta phát triển các ứng dụng không cần quản lý session hoặc nhiều đặc điểm security



// bài viết được tổng hợp từ nhiều nguồn.

Không có nhận xét nào:

Đăng nhận xét