Thứ Hai, 26 tháng 12, 2016

Integrating Session Beans, Entities, Message-Driven Beans, and Web Services

Technologies EJB Có 3 Loại


1. 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. 


- Entity Bean được thiết kế nhằm mô hình hoá dữ liệu trong CSDL thành các đối tượng phân tán, có thể triệu gọi từ xa theo cơ chế RMI-IIOP. Nó ánh xạ 1-1 với dữ liệu trong database. 


- Entity có thể tự quản lý việc truy xuất dữ liệu hay giao cho trình chứa quản lý.


2. 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á)…. 


- Khi triển khai code Bean không giống 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 nên dùng 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)
    • Topic thì chỉ cho 1 client gửi 1 message tới nhiều người ( ví dụ chat room) miễn là người nhận có đăng ký với hàng đợi message.


3. 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.



- Các Bean này không thể hiện dữ liệu, mặc dầu có thể truy xuất dữ liệu. Theo đề nghị của Sun, các ứng dụng có dùng EJB nên truy xuất Entity Bean thông qua Session Bean



Có 4 cách lưu data của client khi xây dựng Web Application.

- Sử dụng URL Rewriter: HTML là ngôn ngữ định dạng tài liệu, nó không phải là ngôn ngữ lập trình nên không thể sử dụng các biến để lưu dữ liệu. Tuy nhiên, dữ liệu có thể được viết vào các link (liên kết) và như thế khi người dùng click vào link thì dữ liệu sẽ được gửi lên server. Phần lớn dữ liệu được viết vào phần query dưới các cặp parameters gồm key=value (cặp khóa/giá trị), một vài cài đặt có thể đưa dữ liệu vào phần path hay trong các biến của javascript,…

- Hidden Form: Thay vì lưu dữ liệu vào đường link, ta sẽ lưu dữ liệu vào các thành phần của form và type (kiểu) của các element này là hidden - ẩn. Như vậy, mọi action (hành xử) của người dùng sẽ gọi đến hành động post (gửi) form đó lên server và như thế dữ liệu cần lưu ở lần trước đó sẽ được gửi lại. HTTP method được dùng ở đây là Post chứ không phải Get trong URL Rewriter. Get là một dạng truy vấn cho phép đọc (read) trong khi Post là một truy vấn cho phép ghi (write). Khi đó dữ liệu của client gửi lên server sẽ nằm trong phần body của một HTTP Message chứ không phải trong phần Header như việc dùng link (liên kết) ở trên. 

- Sử dụng Cookie: Trình duyệt cho phép mỗi Web Application lưu khoảng 4kb dữ liệu dưới dạng key/value. Như vậy, nếu ta lưu data của lần truy vấn trước đó vào cookie thì giá trị này sẽ được gửi lên server trong mỗi request. Cookie là 1 phần trong header của HTTP Message.

- Sử dụng HTTP Session: Ngược với cookie, các Web Server có thể cho phép mỗi client lưu một dung lượng nhỏ data trên đó. Dữ liệu được lưu dưới dạng key/value và sẽ bị expire nếu bị timeout (sau khoảng thời gian tính từ lúc client gửi truy vấn cuối cùng đến server nếu vượt quá giới hạn thì sẽ bị hủy).

Web Application là một ví dụ minh họa cho stateless design với vài kỹ thuật nhỏ khắc phục yếu điểm của nó trong xây dựng phần mềm. Ở tầng bussiness, ta cũng có thể thiết kế tương tác dạng client-server. Hệ thống phần mềm khi đó có architecture (kiến trúc) là distributed (phân tán). EJB là một ví dụ với việc session bean được thiết kế hỗ trợ cả stateless và stateful.

4. Web Service


- Dịch vụ Web là cách tiêu chuẩn hóa giao tiếp ứng dụng dựa trên web khác nhau thông qua mạng. 

- Bằng cách sử dụng các dịch vụ Web, ứng dụng của bạn có thể xuất bản chức năng hoặc thông điệp của mình với phần còn lại của thế giới. 
- Dịch vụ Web có thể giao tiếp với nhau bằng cách sử dụng định dạng file XML khác mà không biết làm thế nào mỗi khác được thực hiện.

- Các ứng dụng web dựa trên giao tiếp bằng cách sử dụng các khái niệm như XML, SOAP, REST, WSDL và UDDI.

Ưu điểm:


Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau.

- Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên văn bản (text), giúp các lập trình viên dễ dàng hiểu được.
Nâng cao khả năng tái sử dụng. 
Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web.
Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán.
Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác.

Nhược điểm: 

- Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Dịch vụ Web, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành. 
Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt.
Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.

Dịch vụ Web gồm có 3 chuẩn chính: 
    • SOAP (Simple Object Access Protocol) 
    • WSDL (Web Service Description Language)
    • UDDI (Universal Description, Discovery, and Integration)


UDDI được sử dụng để đăng ký và khám phá dịch vụ Web đã được miêu tả cụ thể trong WSDL. Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server, sau đó các ứng dụng SOAP yêu cầu một dịch vụ Web. Các thông điệp SOAP được gửi đi chính xác bởi HTTP và TCP/IP.


 4 thành phần chính:

Service Transport: có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks Extensible Exchange Protocol- BEEP).\

Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để có thể hiểu được ở mức ứng dụng tương tác với người dùng. Hiện tại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST.

Service Description: được sử dụng để miêu tả các giao diện chung cho một dịch vụ Web cụ thể. WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML. Dịch vụ Web sẽ sử dụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao tác và chức năng mà dịch vụ Web cung cấp.

Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ đó giúp một dịch vụ Web có thể dễ dàng khám phá ra những dịch vụ nào đã có trên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tương tác. Một dịch vụ Web cũng phải tiến hành đăng ký để các dịch vụ khác có thể truy cập và giao tiếp. Hiện tại, UDDI API thường được sử dụng để thực hiện công việc này.

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

Đăng nhận xét