Xem mẫu
- |Dịch vụ phần mềm và tích
hợp nghiệp vụ
Chapter 19: Design pattern – Composition
Implementation Patterns
GV: TS. Vũ Th ị Hương Giang
Nhóm 6: Nguyễn Văn Minh
Phạm Anh Thắng
- Agnostic Sub-Controller pattern
Các thành phần dịch vụ thường được cấu hình c ụ thể cho m ột nhi ệm v ụ t ổng th ể, gây ra
Problem hạn chế khả năng tái sử dụng của chúng.
Tái sử dụng, các cross-entity được truy c ập thông qua kh ả năng c ủa các agnostic sub-
Solution controller, cho phép tập hợp con c ủa thành ph ần cha đ ược t ạo ra m ột cách đ ộc l ập h ơn.
Application Một dịch vụ Agnostic mới được tạo ra hoặc d ịch v ụ được g ắn v ới m ột nhi ệm v ụ qua kh ả
năng của Agnostic sub-controller
Việc bổ sung các cross- entity làm các d ịch v ụ agnostic tăng đ ộ ph ức t ạp và c ủa các
Impact thành phần và sự trừu tượng của các Agnostic cross-entity có th ể d ẫn t ới vi ph ạm các
mô hình và thiết kế tiêu chuẩn được thi ết l ập b ởi các l ớp d ịch v ụ (Service layer)
Service Reusability(sự tái sử d ụng các thành ph ần) Service Composablity (do nhu c ầu
Principles của quá trình phát triển ngày càng m ở rộng, các d ịch v ụ đ ược thi ết k ế ph ải s ẵn sàng
tham gia các thành phần khi c ần)
Architecture Composition, Service
VINNO – Software Solution www.vinno.vn 2
- Agnostic Sub-Controller pattern
VINNO – Software Solution www.vinno.vn 3
- Agnostic Sub-Controller pattern
VINNO – Software Solution www.vinno.vn 4
- Composition Autonomy pattern
Các dịch vụ thành phần thường mất đi quy ền tự đi ều khi ển khi ủy quy ền các nhi ệm v ụ
Problem xử lý cho các dịch vụ tổng thể, một trong số đó đôi khi đ ược chia s ẻ qua nhi ều thành
phần
Solution Tất cả những sự tham gia thành phần có th ể đ ược cô l ập đ ể t ối đa hóa quy ền t ự ch ủ
của các thành phần
Application Các dịch vụ thành viên agnostic của m ột thành ph ần đ ược th ực hi ện trong m ột môi
trường bị cô lập cùng với các dịch vụ công vi ệc
Việc tăng tính tự chủ trong m ột c ấp độ thành ph ần d ẫn t ới k ết qu ả gia tăng chi phí c ơ s ở
Impact hạ tầng và trách nhiệm của tổ chức.
Service Reusability(sự tái sử d ụng các thành ph ần) Serivce Composablity (do nhu c ầu
Principles của quá trình phát triển ngày càng m ở rộng, các d ịch v ụ đ ược thi ết k ế ph ải s ẵn sàng
tham gia các thành phần khi c ần); Service autonomy.
Architecture Composition
VINNO – Software Solution www.vinno.vn 5
- Composition Autonomy pattern
TH trên các Service Area gây ra
nút thắt cổ chai vì các dịch vụ này
đc truy xuất nhiều lần khi hệ
thống lớn và mở rộng.
VINNO – Software Solution www.vinno.vn 6
- Composition Autonomy pattern
Giải pháp là đưa các service này
đặt trong 1 máy chủ vật lý riêng
để tăng khả năng độc lập và tự
chủ
VINNO – Software Solution www.vinno.vn 7
- Atomic Service Transaction pattern
Khi các dịch vụ trong môi trường thực thi, một d ịch v ụ con th ất b ại d ẫn đ ến nhi ệm v ụ
Problem tổng thể của dịch vụ cha thất b ại theo. Hành đ ộng th ực hi ện t ại th ời đi ểm đó có th ể
không toàn vẹn và gây nguy hai đến hệ th ống
Solution Các hoạt động dịch vụ có thể được bọc trong m ột transaction v ới tính năng rollback.
Application Một hệ thống quản lý giao dịch được thực hi ện nh ư m ột ph ần c ủa ki ến trúc và sau đó
được sử dụng bởi những thành phần dịch vụ đòi hỏi tính năng rollback
Các dịch vụ tiêu tốn nhiều bộ nhớ hơn vì c ần l ưu gi ữ tr ạng thái ban đ ầu tr ước nh ững yêu
Impact cầu rollback hoặc cập nhật sự thay đổi
Service statelessness ( ko l ưu gi ữ b ất c ứ th ứ gì c ủa l ần g ọi tr ước và cũng không bi ết gì
Principles về những gì client thực hiện )
Architecture Inventory, Composition
VINNO – Software Solution www.vinno.vn 8
- Atomic Service Transaction pattern
Cung cấp các chức năng rollback c ần thi ết
VINNO – Software Solution www.vinno.vn 9
- Atomic Service Transaction pattern
Cung cấp các chức năng rollback c ần thi ết
VINNO – Software Solution www.vinno.vn 10
- Compensating Service Transaction pattern
Các trường hợp ngoại lệ trong thời gian ch ạy không ki ểm soát đ ược có th ể gây nguy
Problem hiểm cho một thành phần dịch vụ, do dó s ử d ụng transaction có th ể n ắm gi ữ quá nhi ều
tài nguyên, do đó ảnh hưởng tiêu c ực đến hi ệu su ất và kh ả năng m ở r ộng c ủa d ịch v ụ
Solution Compensating routines được gi ới thi ệu, cho phép gi ải quy ết các ngo ại l ệ th ời gian ch ạy
mà không chiếm giữ tài nguyên.
Application Compensation logic được định nghĩa trước và đ ược đ ịnh nghĩa nh ư m ột ph ần c ủa các
thành phần cha với việc cung cấp tính năng "undo".
Việc sử dụng Compensation logic d ẫn t ới m ột k ết qu ả m ở và khác nhau v ề hi ệu qu ả
Impact thực tế
Service lose coupling ( kết nối l ỏng l ẻo gi ữa các d ịch v ụ )
Principles
Architecture Inventory, Composition
VINNO – Software Solution www.vinno.vn 11
- Atomic Service Transaction pattern
Cung cấp các chức năng "undo" nhằm khôi ph ục l ại d ữ li ệu đã thay đ ổi.
VINNO – Software Solution www.vinno.vn 12
- Atomic Service Transaction pattern
Cung cấp các chức năng "undo" nhằm khôi ph ục l ại d ữ li ệu đã thay đ ổi.
VINNO – Software Solution www.vinno.vn 13
- Application?
VINNO – Software Solution www.vinno.vn 14
- Composition Autonomy pattern?
CheckingCoursePr
Course enrollment SubmitRegistration
DB erequisites
RecordRegistration VerifyingStudent
Student
records DB
CheckingPayment CalculatingAmount
Billing DB Pay
Dịch vụ được truy xuất nhiều lần khi hệ thống lớn và mở rộng.
Giải pháp là đưa các service này đặt trong 1 máy
chủ vật lý riêng để tăng khả năng độc lập và tự chủ
VINNO – Software Solution www.vinno.vn 15
- Atomic Service Transaction pattern?
Course enrollment
rollback
SubmitRegistration
DB
LOCK
transaction
Fail
Student RecordRegistration
records DB
LOCK
VINNO – Software Solution www.vinno.vn 16
- Compensating Service Transaction pattern ?
CheckingCourse
Prerequisites
Course enrollment
undo
SubmitRegistration
DB
UNLOCK
transaction boundary
VerifyingStudent
Fail
Student RecordRegistration
records DB
UNLOCK
VINNO – Software Solution www.vinno.vn 17
- Kết thúc
Xin chân thành cảm ơn !
PingG – Software Solution www.vinno.vn 18
- Atomic Service Transaction pattern?
SubmitRegistratio RecordRegistration
n
CheckingCoursePr
VerifyingStudent
erequisites
Student Course enrollment
records DB UNLOCK UNLOCK DB
Unlock các database khi transaction
VINNO – Software Solution www.vinno.vn 19
nguon tai.lieu . vn