Tải bản đầy đủ (.pptx) (28 trang)

bài thuyết trình LOOSE COUPLING

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (230.73 KB, 28 trang )

Trường Đại học Bách khoa – Đại học Đà Nẵng
Khoa Khoa học Cơng nghệ Tiên tiến

LOOSE COUPLING
GSVHD
NHĨM 3

Đà Nẵng, 11 tháng 10 năm 2021

PGS.TS. Võ Trung Hùng
1.
2.
3.
4.
5.
6.

Lê Thanh Phương
Đỗ Phương Thảo
Huỳnh Thế Quang
Nguyễn Diệu Quỳnh
Đặng Đức Thành
Lê Nhật Tân


I

NỘI DUNG
Giới thiệu

II


III

Nhu cầu về khả năng chịu lỗi

IV

Xử lý với Loose Coupling

V

Kết luận

Các hình thức của Loose Coupling


I

GIỚI THIỆU

• Khả năng mở rộng và khả năng chịu lỗi là chìa khóa cho khả năng bảo trì của
các hệ thống
• Một mục tiêu quan trọng khác là giảm thiểu tác động của các sửa đổi và lỗi trên
toàn bộ hệ thống nói chung.
 Vì vậy, Losse coupling là một khái niệm chính trong SOA

1


II


NHU CẦU VỀ KHẢ NĂNG CHỊU LỖI

• Thường sẽ khơng có đủ thời gian để tạo ra các thiết kế hệ thống
được xây dựng kỹ lưỡng và mạnh mẽ.
• Nếu chúng ta không đủ nhanh, đủ linh hoạt và đủ rẻ, thì sẽ sớm bị loại khỏi thị
trường.
 Do đó, bạn cần các giải pháp nhanh chóng, linh hoạt và rẻ.
• Tuy nhiên, các giải pháp nhanh và rẻ khơng thể được thiết kế tốt và mạnh mẽ.
 Dẫn đến thường xuyên xãy ra lỗi và sự cố.
 Vì vậy, hệ thống phải có khả năng chịu lỗi cao
2


II

NHU CẦU VỀ KHẢ NĂNG CHỊU LỖI

Theo [ITSecCity02]:
• Sự cố hệ thống đặt vé máy bay có thể mất 100.000 đơ la một giờ
• Sự cố hệ thống thẻ tín dụng có thể mất 300.000 đơ la một giờ
• Sự cố giao dịch chứng khốn có thể mất 8 triệu đô la một giờ
 Như những số liệu này cho thấy, khả năng chịu lỗi là chìa khóa cho các hệ
thống phân tán lớn
 Khi sự cố xảy ra, điều quan trọng là phải giảm thiểu ảnh hưởng và hậu quả của
chúng
3


III


CÁC HÌNH THỨC CỦA LOOSE COUPLING

• Loose coupling là khái niệm thường được sử dụng để giải quyết
các yêu cầu về khả năng mở rộng, tính linh hoạt và khả năng chịu
lỗi.
• Mục đích của loose coupling là để giảm thiểu sự phụ thuộc.
• Loose coupling là một nguyên tắc, không phải là một công cụ
cũng không phải là một danh sách kiểm tra.

4


III

5

CÁC HÌNH THỨC CỦA LOOSE COUPLING
Tight coupling

Loose coupling

Physical connections

Point-to-point

Via mediator

Communication style

Synchronous


Asynchronous

Data model

Common complex types

Simple common types only

Type system

Strong

Weak

Interaction pattern

Navigate through complex object
trees

Data-centric, self-contained message

Control of process logic

Central control

Distributed control

Binding


Statically

Dynamically

Platform

Strong platform dependencies

Platform independent

Transactionality

2PC (two-phase commit)

Compensation

Deployment

Simultaneous

At different times

Versioning

Explicit upgrades

Implicit upgrades


III


CÁC HÌNH THỨC CỦA LOOSE COUPLING
1. Giao tiếp bất đồng bộ

• Ưu điểm là các hệ thống trao đổi thơng điệp khơng cần phải trực
tuyến cùng một lúc. Ngồi ra, nếu cần trả lời, thời gian trả lời dài
sẽ không cản trở người tiêu dùng dịch vụ.
• Hạn chế là logic của người tiêu dùng dịch vụ phức tạp hơn nhiều.
6


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
2. Các kiểu dữ liệu khơng đồng nhất

• Lập trình hướng đối tượng là xu hướng chủ đạo
• Mơ hình BOM (Business Object Model) đã trở thành một mục tiêu chung
 Tuy nhiên, cách tiếp cận này là công thức gây ra thảm họa cho các hệ thống
lớn
7


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
2. Các kiểu dữ liệu khơng đồng nhất

• Lý do đầu tiên của thảm họa là do tổ chức
Quan điểm và mối quan tâm của các hệ thống khác nhau quá khác nhau.

Bởi vì các hệ thống phân tán lớn thường có các chủ sở hữu khác nhau, rất
khó để đạt được các thỏa thuận.
• Giả sử chúng ta có một giải pháp có một BOM chung với các kiểu
dữ liệu hài hoà với nhau. Nhưng chúng ta sẽ gặp vấn đề là: Những
hệ thống khác nhau sẽ cải tiến khác nhau
• Việc duy trì đồng bộ tất cả các hệ thống đơn giản là quá tốn kém
về thời gian và tiền bạc
8

 Cái giá bỏ ra để được sự hài hoà dữ liệu trở nên quá cao


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
2. Các kiểu dữ liệu khơng đồng nhất

• Ưu điểm là các hệ thống có thể sửa đổi kiểu dữ liệu của chúng mà
không ảnh hưởng trực tiếp đến các hệ thống khác
• Hạn chế là bạn phải ánh xạ các kiểu dữ liệu từ hệ thống này sang
hệ thống khác.

9


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
3. Người trung gian


• Định nghĩa một đối tượng gói gọn cách một tập hợp các đối tượng tương
tác
• Mediator thúc đẩy sự khớp nối lỏng lẻo (loose coupling) bằng cách ngăn
không cho các đối tượng đề cập đến nhau một cách rõ ràng và nó cho
phép bạn thay đổi sự tương tác của họ một cách độc lập

10


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
3. Người trung gian

Có 2 loại
• Loại đầu tiên: Bạn cần biết điểm cuối chính xác cho cuộc gọi dịch vụ của
bạn trước khi bạn gửi nó. Nghĩa là, bạn vẫn có các kết nối điểm-điểm,
nhưng với sự trợ giúp của những người trung gian này, nó sẽ gửi các cuộc
gọi dịch vụ của mình đến các địa chỉ khác nhau

11


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
3. Người trung gian

• Loại thứ hai: Chọn điểm cuối phù hợp cho một yêu cầu sau khi người tiêu
dùng gửi nó. Trong trường hợp này, người tiêu dùng gửi yêu cầu đến một

tên tượng trưng và cơ sở hạ tầng (mạng, phần mềm trung gian, ESB) định
tuyến cuộc gọi đến hệ thống thích hợp theo các quy tắc định tuyến thông
minh.

12


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
3. Người trung gian

Lợi ích
• Giảm khớp nối giữa các component.
• Tái sử dụng các component dễ dàng hơn.
• Đơn giản hóa cách giao tiếp giữa các đối tượng. Một mediator sẽ
thay thế mối quan hệ nhiều-nhiều (many-to-many) giữa các
component bằng quan hệ một-nhiều (one-to-many) giữa một
mediator với các component.
• Quản lý tập trung, giúp làm rõ các component tương tác trong hệ
thống như thế nào trong hệ thống.
13


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
4. Kiểm tra loại yếu

• Ngôn ngữ strong typing như Java: "abc" + 3 >>> Báo lỗi

• Ngơn ngữ weak typing như Javascript: let a = "abc" + 123 >>> "abc123"
• Ngơn ngữ strong typing thường sẽ tường minh và kiểm sốt lỗi tốt hơn
• Tuy nhiên việc kiểm tra kiểu quá chặt chẽ khiến hệ thống khó mở rộng và tốn thời
gian nên SOA kết hợp với ESB (Enterprise Service Bus) giúp quản lý dữ liệu một
cách thống nhất, tích hợp các service riêng lẽ thành một hệ thống

14


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
5. Ràng buộc

• Giảm thiểu các ràng buộc giữa các modules , cho phép ghép nối chúng một cách
đơn giản và linh hoạt …
• Có thể xác minh các ràng buộc này trước thời gian biên dịch hoặc xảy ra trong thời
gian chạy

15


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
6. Phụ thuộc nền tảng

• Giải pháp độc lập các nền tảng sẽ được ưu tiên hơn
• Mỗi phần sẽ chỉ giải quyết độc lập, không ảnh hưởng đến nhau, giúp cho khả năng
chịu lỗi của phần mềm tốt hơn.


16


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
7. Các mẫu tương tác

• Một trong những thiết kế đặc trưng để tường minh, đồng bộ dữ liệu là OOP, tuy
nhiên việc ánh xạ dữ liệu từ các nền tảng sẽ là vấn đề lớn
• Việc duy trì và đồng bộ các dữ liệu trên các nền tảng thực sự rất tốn thời gian và
tiền bạc

17


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
8. Đền bù

• Là một dạng của loose coupling
• Ưu điểm của nó là các bản cập nhật hệ thống không cần phải thực hiện đồng bộ
(một số chương trình có thể ngoại tuyến khi cập nhật)
• Hạn chế là phải cung cấp và gọi các dịch vụ rõ ràng để hoàn nguyên các dịch vụ
hoặc chương trình trước đó để xử lý lỗi thủ công

18



III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
9. Kiểm sốt logic quy trình

• Các quyết định kiểm sốt q trình cũng có thể dẫn đến các hình thức khớp nối
khác nhau.
• Việc có một thành phần trung tâm kiểm sốt tồn bộ logic quy trình sẽ tạo ra một
nút cổ chai vì mỗi hệ thống liên quan phải kết nối với nó
• Sự thất bại của một thành phần trung tâm như vậy sẽ dừng tồn bộ q trình.

19


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
9. Kiểm sốt logic quy trình

• Khi kiểm sốt phi tập trung hoặc phân tán (nơi mỗi thành phần thực hiện cơng
việc của mình và biết thành phần nào sẽ tiếp tục sau đó), bạn sẽ tránh được tắc
nghẽn và nếu một số hệ thống bị lỗi, những hệ thống khác vẫn có thể tiếp tục
hoạt động

20


III


CÁC HÌNH THỨC CỦA LOOSE COUPLING
10. Triển khai

• Cho dù bạn yêu cầu các bản cập nhật hệ thống được triển khai đồng thời hay tại
các thời điểm khác nhau, đều liên quan đến việc ghép nối.
• Tất nhiên, các hệ thống được ràng buộc chặt chẽ hơn với nhau nếu chúng được
yêu cầu cập nhật đồng bộ
• Tuy nhiên, cách tiếp cận kết hợp lỏng lẻo hơn của việc cập nhật vào các thời
điểm khác nhau dẫn đến một nhược điểm rất quan trọng: nhu cầu di chuyển, dẫn
đến việc tạo phiên bản
21


III

CÁC HÌNH THỨC CỦA LOOSE COUPLING
11. Phiên bản

• Nếu một hệ thống cung cấp các loại dữ liệu nhất định được người tiêu dùng sử
dụng, bạn sẽ gặp sự cố khi nhà cung cấp thêm các thuộc tính mới.
• Nếu nhà cung cấp giới thiệu phiên bản loại mới, người tiêu dùng sẽ phải nâng
cấp rõ ràng lên loại mới này; nếu không, nhà cung cấp sẽ phải hỗ trợ cả hai loại.
• Mặt khác, nếu nhà cung cấp chỉ thêm thuộc tính vào loại hiện có, điều này có thể
gây ra các vấn đề tương thích nhị phân và yêu cầu người tiêu dùng biên dịch lại
mã của nó hoặc sử dụng một thư viện khác.
22


III


CÁC HÌNH THỨC CỦA LOOSE COUPLING
11. Phiên bản

• Với hình thức lập phiên bản kiểu dữ liệu được kết hợp lỏng lẻo hơn, người tiêu
dùng sẽ không phải làm bất cứ điều gì miễn là các sửa đổi tương thích ngược.

23


×