1. Trang chủ
  2. » Luận Văn - Báo Cáo

Java message service presentation

67 780 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Java Message Service Presentation
Trường học Trường Đại Học Công Nghệ Thông Tin - https://www.uet.edu.vn
Chuyên ngành Khoa học Máy Tính
Thể loại Bài thuyết trình
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 67
Dung lượng 0,93 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

File thuyết trình nghiên cứu java message service ( JMS ) và viết ứng dụng trường KHTN Tp HCM

Trang 3

- Gởi nhận thông điệp (messaging) là cách thức để giao tiếp

Trang 4

Sử dụng một API đơn giản để xây dựng thông điệp, sau đó đưa qua MOM để giao tới một hay nhiều người nhận đã định trước.

h th ng g i nh n thông đi p ệ ố ở ậ ệ

Trang 6

2 Giảm tắc nghẽn cổ chai cho hệ thống

• Thay vì để các yêu cầu dồn lại trong lúc một thành phần đồng

bộ xử lý chúng, các yêu cầu được gởi đến 1 hệ thống gởi

nhận thông điệp để phân phát các yêu cầu tới nhiều thành phần message listener

L i ích c a vi c g i nh n thông đi p ợ ủ ệ ở ậ ệ

Trang 8

4 Tăng hiệu suất người dùng cuối

• Người dùng có thể tiếp tục làm việc khác trong khi yêu cầu đang được xử lý.

• Khi yêu cầu hoàn tất, người dùng được thông báo rằng yêu cầu đã được

xử lý và kết quả được trả về cho người dùng.

Người dùng có thể hoàn thành nhiều việc hơn với thời gian chờ ít hơn

L i ích c a vi c g i nh n thông đi p ợ ủ ệ ở ậ ệ

Trang 9

5 Sự linh hoạt và nhanh nhẹn của kiến trúc

• Thông qua việc sử dụng trừu tượng hóa tách biệt các thành phần

• Có thể nhanh chóng đáp ứng các thay đổi trong phần mềm, phần cứng và cả thay đổi về doanh nghiệp

9

L i ích c a vi c g i nh n thông đi p ợ ủ ệ ở ậ ệ

Trang 10

RPC và gởi nhận thông điệp bất đồng bộ

 RPC cố gắng mô phỏng hành vi của một hệ thống chỉ chạy một process

 Khi một hệ thống bị lỗi sẽ gây ảnh hưởng ngay lập tức tới các

hệ thống khác

L i ích c a vi c g i nh n thông đi p ợ ủ ệ ở ậ ệ

Trang 11

RPC và gởi nhận thông điệp bất đồng bộ

RPC Client/Server

Business Application C

RPC Client/Server

Requires n * (n-1) / 2 connections

L i ích c a vi c g i nh n thông đi p ợ ủ ệ ở ậ ệ

Trang 12

RPC và gởi nhận thông điệp bất đồng bộ

 Một khái niệm căn bản của gởi nhận thông điệp là giao tiếp giữa các ứng dụng phải bất đồng bộ

 Trong hệ thống gởi nhận thông điệp bất đồng bộ, mỗi hệ thống

con được tách từ các hệ thống khác

L i ích c a vi c g i nh n thông đi p ợ ủ ệ ở ậ ệ

Trang 13

RPC và gởi nhận thông điệp bất đồng bộ

13

Centralized message server

(hub and spoke)

JMS

Client

Message Server

JMS Client

JMS

Client

JMS Client

JMS Client

JMS Client

JMS Client

Local "server"

JMS Client

Local "server"

JMS Client Local "server"

JMS Client

L i ích c a vi c g i nh n thông đi p ợ ủ ệ ở ậ ệ

Trang 14

• Một message server (còn được gọi là message broker hay

router) chịu trách nhiệm phân phối thông điệp từ một messaging client đến các messaging client khác

• Message server này tách riêng client gửi ra khỏi các client

nhận khác

Kiến trúc tập trung

Trang 15

• Kiến trúc tập trung sử dụng cấu trúc liên kết hub-and-spoke

• Kiến trúc hub-and-spoke cho phép chỉ cần một số kết nối tối

thiểu trong khi các phần khác của hệ thống vẫn có thể giao tiếp với nhau được

15

Kiến trúc tập trung

Trang 16

• Tất cả kiến trúc phân tán hiện tại đều đang sử dụng IP multicast

ở tầng network

• Một số tính năng của server (tính bền bỉ, tính bảo mật, các giao

dịch) được nhúng vào như một phần local của client,

• Việc định tuyến thông điệp được giao cho tầng network bằng

cách sử dụng giao thức IP multicast

Kiến trúc Phân tán

Trang 17

• IP multicast cho phép các ứng dụng gia nhập một hay nhiều

nhóm IP multicast; mỗi nhóm sử dụng một địa chỉ IP để tái phân phối bất kỳ thông điệp nào mà nó nhận được cho tất cả thành viên trong cùng nhóm

• Tầng network xử lý việc định tuyến một cách tự động

17

Kiến trúc Phân tán

Trang 20

• JMS (Java Message Service) là 1 API dùng cho việc gởi

nhận thông điệp được Sun Microsystems phát triển

• JMS không phải là một hệ thống gởi nhận thông điệp

• JMS trừu tượng hóa truy cập tới các MOM

JMS là gì ?

Trang 21

Hỗ trợ việc sản xuất, phân phối và giao nhận thông điệp

Hỗ trợ các ngữ nghĩa (semantics) trong việc giao nhận thông điệp

 Đồng bộ hoặc bất đồng bộ

 Thông điệp giao dịch (Transacted Message)

 Thông điệp đảm bảo (Guaranteed Message)

21

JMS là gì ?

Trang 22

Các thành phần JMS

Message Server Message Destination Message

Mô hình gởi nhận thông điệp JMS

Trang 23

JMS Client

Connection

Session Session Session

Mô hình gởi nhận thông điệp JMS

Trang 24

Tạo connections và sessions

Message Server JNDI Store

JMS Client

Connection Session Session Session

Trang 25

Các thành phần kiến trúc JMS:

 JMS clients

 Non-JMS clients

 Các thông điệp

 JMS provider (hệ thống gởi nhận thông điệp)

 Các đối tượng được quản trị (administered objects)

• Destination

• ConnectionFactory

25

Kiến trúc JMS

Trang 26

Kiến trúc một ứng dụng JMS

Kiến trúc JMS

Trang 27

Một ứng dụng JMS gồm có:

 JMS Clients

• Ứng dụng Java gởi/nhận thông điệp

 Các thông điệp

 Các đối tượng được quản trị (administered objects)

• Các đối tượng JMS đã được admin tinh chỉnh cho các client sử dụng

• ConnectionFactory, Destination (queue or topic)

 JMS Provider

• Hệ thống gởi nhận thông điệp triển khai JMS và các tính năng quản trị

27

Kiến trúc JMS

Trang 28

JMS Provider

Kiến trúc JMS

Trang 30

• JMS hỗ trợ hai loại mô hình gởi nhận thông điệp:

point-to-point và publish-and-subscribe

Mô hình gởi nhận thông điệp JMS

Trang 31

Publish-and-Subscribe

Trang 32

Point-to-point

Trang 33

o Dựa vào khái niệm gởi một thông điệp tới một đích đến đã định

trước

o Không có liên kết trực tiếp giữa producer tới consumer

o Mô hình pub/sub dựa trên mô hình push Còn p2p queue có thể

push hoặc pull thông điệp

33

So sánh P2P và pub/sub

Trang 34

o Trong mô hình pub/sub, nhiều consumer có thể subscribe

cùng một topic và nhận được bản sao của từng thông điệp được đăng lên topic đó

o Trong mô hình p2p, nhiều consumer có thể sử dụng cùng

một queue, nhưng mỗi thông điệp trong queue chỉ có thể được nhận bởi một consumer

So sánh P2P và pub/sub

Trang 35

receives from sends to

Connection Factory

Destination

Message Consumer Session

Message

Producer

creates

Trang 37

• Message là phần quan trọng nhất của toàn bộ đặc điểm kỹ

thuật JMS

• Một thông điệp JMS mang dữ liệu ứng dụng và cung cấp các

thông báo sự kiện

37

Cấu trúc một thông điệp JMS

Trang 38

Cấu trúc một thông điệp JMS

Trang 39

Dùng để định danh và định tuyến thông điệp

Trang 41

Thuộc tính

Hoạt động giống như header bổ sung có thể được gán cho một thông điệp

Cho phép nhà phát triển thêm thông tin không rõ ràng về thông điệp

Có ba loại thuộc tính cơ bản:

 Thuộc tính ứng dụng cụ thể

 Thuộc tính JMS định nghĩa

 Thuộc tính provider cụ thể

41

Trang 42

Message type Message body

ObjectMessage A serializable Java object

BytesMessage A stream of uninterpreted bytes StreamMessage A stream of Java primitives

Các loại thông điệp

Trang 43

Message type Trường hợp sử dụng

Message Thông báo sự kiện

TextMessage Tin nhắn văn bản, tài liệu XML

ObjectMessage Trao đổi các đối tượng Java

BytesMessage Trao đổi dữ liệu ở định dạng gốc của một ứng dụng

StreamMessage Cung cấp một tập hợp các method tiện lợi để lập bản đồ định dạng byte stream về

kiểu nguyên thủy Java

MapMessage Cung cấp dữ liệu có khóa, có thể thay đổi từ một thông điệp này sang thông điệp

khác

43

Các loại thông điệp

Trang 44

• Một khi thông điệp đã được giao, phần thân và thuộc tính

của thông điệp trở thành read-only

Các loại thông điệp

Trang 45

Message Selectors

• Cho phép một JMS consumer lựa chọn thông điệp từ một

đích đến cụ thể

• Sử dụng thuộc tính và header thông điệp làm tiêu chí trong

biểu thức điều kiện

• Dựa trên một tập hợp con của cú pháp biểu thức điều kiện

SQL-92

45

Trang 48

 Gởi nhận thông điệp đảm bảo

 Transactions

 Xác nhận và lỗi

Tính năng của JMS

Trang 49

Có 3 phần chính trong gởi nhận thông điệp đảm bảo

Trang 50

Thông điệp tự chủ

 Thông điệp là các đơn vị tự chủ khép kín

Gởi nhận thông điệp đảm bảo

Trang 51

 Khi những thông điệp được đánh dấu liên tục, thì trách nhiệm

của nhà cung cấp JMS là tận dụng cơ chế store-and-forward

để hoàn thành hợp đồng với người gửi

51

Gởi nhận thông điệp đảm bảo

Trang 52

Xác nhận thông điệp

 Là một phần then chốt của gởi nhận thông điệp đảm bảo

 Server xác nhận thông điệp được nhận từ JMS producers

 JMS consumers xác nhận đã nhận thông điệp từ servers

Gởi nhận thông điệp đảm bảo

Trang 54

Transacted Session: Producer

 JMS provider sẽ không bắt đầu giao thông điệp cho consumer

cho tới khi producer phát lệnh commit() trên session

Trang 55

Transacted Session: Producer

55

Producer

Message Server

Consumer

Before commit( )

Upon commit( )

Message Server

Transacted

session

Transactions

Trang 56

Transacted Session: Consumer

 JMS provider giữ thông điệp đã được giao cho tới khi receiver

phát lệnh commit() trên session

Transactions

Trang 57

Transacted Session: Consumer

57

Message

Trước khi commit( )

Sau khi commit( )

Trang 58

Transactions phân tán

Message Server JNDI Store

JMS Client

XAConnection XASession XASession

XAConnectionFactory

create

ConnectionFactories

Destinations

Trang 59

Mất kết nối

 Khi một kết nối mạng giữa client và server bị mất, một JMS

provider phải cố gắng khởi tạo lại kết nối

59

Xác nhận và lỗi

Trang 60

Phục hồi sau khi bị mất kết nối

Trang 62

JMS và EJB

Message-driven bean Life Cycle

does not exist

pooled

1: newInstance() 2: setMessageDrivenContextContext() 3: ejbCreate()

ejbRemove ()

Trang 63

JMS và EJB

Ví dụ

63

Trang 64

JMS và EJB

EJB là một thành phần phía server đóng gói business logic của một ứng dụng

EJB đơn giản hóa quá trình phát triển những ứng dụng lớn và phân tán

 EJB Container cung cấp những dịch vụ cấp hệ thống

 e.g transaction management, authorization

 Beans giữ control logic

 thin client applications

 Thành phần portable

 Có thể chạy trên bất kỳ J2EE server nào

Trang 66

 Sun Microsystems: Java Message Queue

 BEA: WebLogic Server

 ExoLab: OpenJMS

Trang 67

HỎI ĐÁP

Ngày đăng: 17/03/2014, 13:06

TỪ KHÓA LIÊN QUAN

w