Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
1,53 MB
Nội dung
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 Đà Nẵng, 11 tháng 10 năm 2021 PGS.TS Võ Trung Hùng 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 khả chịu lỗi IV Xử lý với Loose Coupling V Kết luận Các hình thức Loose Coupling I GIỚI THIỆU • Khả mở rộng khả chịu lỗi chìa khóa cho khả bảo trì hệ thống • Một mục tiêu quan trọng khác giảm thiểu tác động sửa đổi lỗi tồn hệ thống nói chung Vì vậy, Losse coupling khái niệm SOA II NHU CẦU VỀ KHẢ NĂNG CHỊU LỖI • Thường khơng có đủ thời gian để tạo thiết kế hệ thống xây dựng kỹ lưỡng mạnh mẽ • Nếu khơng đủ nhanh, đủ linh hoạt đủ rẻ, sớm bị loại khỏi thị trường Do đó, bạn cần giải pháp nhanh chóng, linh hoạt rẻ • Tuy nhiên, giải pháp nhanh rẻ thiết kế tốt mạnh mẽ Dẫn đến thường xuyên xãy lỗi cố Vì vậy, hệ thống phải có khả chịu lỗi cao II NHU CẦU VỀ KHẢ NĂNG CHỊU LỖI Theo [ITSecCity02]: • Sự cố hệ thống đặt vé máy bay 100.000 la • Sự cố hệ thống thẻ tín dụng 300.000 la • Sự cố giao dịch chứng khốn triệu đô la Như số liệu cho thấy, khả chịu lỗi chìa khóa cho hệ thống phân tán lớn Khi cố xảy ra, điều quan trọng phải giảm thiểu ảnh hưởng hậu chúng III CÁC HÌNH THỨC CỦA LOOSE COUPLING • Loose coupling khái niệm thường sử dụng để giải yêu cầu khả mở rộng, tính linh hoạt khả chịu lỗi • Mục đích loose coupling để giảm thiểu phụ thuộc • Loose coupling nguyên tắc, công cụ danh sách kiểm tra III 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 Giao tiếp bất đồng • Ưu điểm hệ thống trao đổi thông điệp không cần phải trực tuyến lúc Ngoài ra, cần trả lời, thời gian trả lời dài không cản trở người tiêu dùng dịch vụ • Hạn chế logic người tiêu dùng dịch vụ phức tạp nhiều III CÁC HÌNH THỨC CỦA LOOSE COUPLING Các kiểu liệu không đồng • Lập trình hướng đối tượng xu hướng chủ đạo • Mơ hình BOM (Business Object Model) trở thành mục tiêu chung Tuy nhiên, cách tiếp cận công thức gây thảm họa cho hệ thống lớn III CÁC HÌNH THỨC CỦA LOOSE COUPLING Các kiểu liệu không đồng • Lý thảm họa tổ chức Quan điểm mối quan tâm hệ thống khác khác Bởi hệ thống phân tán lớn thường có chủ sở hữu khác nhau, khó để đạt thỏa thuận • Giả sử có giải pháp có BOM chung với kiểu liệu hài hoà với Nhưng gặp vấn đề là: Những hệ thống khác cải tiến khác • Việc trì đồng tất hệ thống đơn giản tốn thời gian tiền bạc Cái giá bỏ để hài hoà liệu trở nên cao III CÁC HÌNH THỨC CỦA LOOSE COUPLING Người trung gian • Loại thứ hai: Chọn điểm cuối phù hợp cho yêu cầu sau người tiêu dùng gửi Trong trường hợp này, người tiêu dùng gửi yêu cầu đến tên tượng trưng sở hạ tầng (mạng, phần mềm trung gian, ESB) định tuyến gọi đến hệ thống thích hợp theo quy tắc định tuyến thơng minh 12 III CÁC HÌNH THỨC CỦA LOOSE COUPLING Người trung gian Lợi ích • Giảm khớp nối component • Tái sử dụng component dễ dàng • Đơn giản hóa cách giao tiếp đối tượng Một mediator thay mối quan hệ nhiều-nhiều (many-to-many) component quan hệ một-nhiều (one-to-many) mediator với component • Quản lý tập trung, giúp làm rõ component tương tác hệ thống hệ thống 13 III CÁC HÌNH THỨC CỦA LOOSE COUPLING Kiểm tra loại yếu • Ngơn ngữ strong typing Java: "abc" + >>> Báo lỗi • Ngơn ngữ weak typing Javascript: let a = "abc" + 123 >>> "abc123" • Ngơn ngữ strong typing thường tường minh kiểm sốt lỗi tốt • Tuy nhiên việc kiểm tra kiểu chặt chẽ khiến hệ thống khó mở rộng tốn thời gian nên SOA kết hợp với ESB (Enterprise Service Bus) giúp quản lý liệu cách thống nhất, tích hợp service riêng lẽ thành hệ thống 14 III CÁC HÌNH THỨC CỦA LOOSE COUPLING Ràng buộc • Giảm thiểu ràng buộc modules , cho phép ghép nối chúng cách đơn giản linh hoạt … • Có thể xác minh ràng buộc trước thời gian biên dịch xảy thời gian chạy 15 III CÁC HÌNH THỨC CỦA LOOSE COUPLING Phụ thuộc tảng • Giải pháp độc lập tảng ưu tiên • Mỗi phần giải độc lập, không ảnh hưởng đến nhau, giúp cho khả chịu lỗi phần mềm tốt 16 III CÁC HÌNH THỨC CỦA LOOSE COUPLING Các mẫu tương tác • Một thiết kế đặc trưng để tường minh, đồng liệu OOP, nhiên việc ánh xạ liệu từ tảng vấn đề lớn • Việc trì đồng liệu tảng thực tốn thời gian tiền bạc 17 III CÁC HÌNH THỨC CỦA LOOSE COUPLING Đền bù • Là dạng loose coupling • Ưu điểm cập nhật hệ thống không cần phải thực đồng (một số chương trình ngoại tuyến cập nhật) • Hạn chế phải cung cấp gọi dịch vụ rõ ràng để hoàn nguyên dịch vụ 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 Kiểm sốt logic quy trình • Các định kiểm sốt q trình dẫn đến hình thức khớp nối khác • Việc có thành phần trung tâm kiểm sốt tồn logic quy trình tạo nút cổ chai hệ thống liên quan phải kết nối với • Sự thất bại thành phần trung tâm dừng tồn q trình 19 III CÁC HÌNH THỨC CỦA LOOSE COUPLING Kiểm sốt logic quy trình • Khi kiểm soát phi tập trung phân tán (nơi thành phần thực cơng việc biết thành phần tiếp tục sau đó), bạn tránh tắc nghẽn số hệ thống bị lỗi, hệ thống khác 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ập nhật hệ thống triển khai đồng thời hay thời điểm khác nhau, liên quan đến việc ghép nối • Tất nhiên, hệ thống ràng buộc chặt chẽ với chúng yêu cầu cập nhật đồng • Tuy nhiên, cách tiếp cận kết hợp lỏng lẻo việc cập nhật vào thời điểm khác dẫn đến nhược điểm quan trọng: nhu cầu di chuyển, dẫn đến việc tạo phiên 21 III CÁC HÌNH THỨC CỦA LOOSE COUPLING 11 Phiên • Nếu hệ thống cung cấp loại liệu định người tiêu dùng sử dụng, bạn gặp cố nhà cung cấp thêm thuộc tính • Nếu nhà cung cấp giới thiệu phiên loại mới, người tiêu dùng phải nâng cấp rõ ràng lên loại này; nếu không, nhà cung cấp phải hỗ trợ hai loại • Mặt khác, nhà cung cấp thêm thuộc tính vào loại có, điều gây vấn đề tương thích nhị phân yêu cầu người tiêu dùng biên dịch lại mã sử dụng thư viện khác 22 III CÁC HÌNH THỨC CỦA LOOSE COUPLING 11 Phiên • Với hình thức lập phiên kiểu liệu kết hợp lỏng lẻo hơn, người tiêu dùng làm điều miễn sửa đổi tương thích ngược 23 IV XỬ LÝ VỚI LOOSE COUPLING • Khơng có quy tắc cứng nhanh: bạn phải định số lượng khớp nối lỏng lẻo thích hợp cho bối cảnh kiến trúc cụ thể dự án • Các hệ thống lớn chúng nên ghép nối lỏng lẻo 24 V KẾT LUẬN • Khớp nối lỏng lẻo khái niệm SOA (và hệ thống phân tán lớn nói chung) nhằm mục đích giảm phụ thuộc hệ thống khác • Có nhiều dạng khớp nối lỏng khác bạn phải tìm hỗn hợp khớp nối lỏng chặt phù hợp với bối cảnh dự án cụ thể bạn • Bất kỳ hình thức khớp nối lỏng có nhược điểm Vì lý này, khớp nối lỏng lẻo khơng kết thúc • Nhu cầu ánh xạ liệu thường đặc tính tốt hệ thống lớn 25 THANKS FOR LISTENING! ... THỨC CỦA LOOSE COUPLING • Loose coupling khái niệm thường sử dụng để giải yêu cầu khả mở rộng, tính linh hoạt khả chịu lỗi • Mục đích loose coupling để giảm thiểu phụ thuộc • Loose coupling ngun... coupling ngun tắc, khơng phải công cụ danh sách kiểm tra III CÁC HÌNH THỨC CỦA LOOSE COUPLING Tight coupling Loose coupling Physical connections Point-to-point Via mediator Communication style...I NỘI DUNG Giới thiệu II III Nhu cầu khả chịu lỗi IV Xử lý với Loose Coupling V Kết luận Các hình thức Loose Coupling I GIỚI THIỆU • Khả mở rộng khả chịu lỗi chìa khóa cho khả bảo trì