You are on page 1of 63

Phát triển phần

mềm Hướng DV
Nhóm 02
Chương 4: Tìm hiểu
về SOA
Nhóm 4
Tạ Đức Phong – B19DCCN500
Đỗ Minh Đức – B19DCCN188
Nguyễn Quang Chí – B19DCCN097
Giới thiệu về SOA

Bốn đặc điểm của


Kết quả cuối
01 SOA 03

Bốn loại SOA phổ Các giai đoạn vòng


02 biến 04 đời và dự án SOA
Giới thiệu về SOA
Định nghĩa về SOA
 Có tập hợp các mục tiêu chiến lược gắn với tính toán hướng dịch vụ.

 Những mục tiêu này đại diện cho một trạng thái mục tiêu cụ thể.

 Định hướng dịch vụ là mô hình cung cấp một phương pháp đã được chứng
minh để đạt được trạng thái mục tiêu này.

 Khi áp dụng hướng dịch vụ vào thiết kế phần mềm, chúng ta xây dựng các
đơn vị logic gọi là “dịch vụ”.

 Các giải pháp hướng dịch vụ bao gồm một hoặc nhiều dịch vụ.
Định nghĩa về SOA
 Để xây dựng các giải pháp hướng dịch vụ thành công, chúng ta cần
một kiến trúc công nghệ phân tán với các đặc điểm cụ thể.
4.1. Bốn đặc điểm của SOA

Kiến trúc hướng dịch vụ phải có các thuộc tính


nhất định đáp ứng các yêu cầu cơ bản cho một giải
pháp tự động hóa, 4 đặc điểm này còn giúp phân
biệt SOA với mô hình khác
Định hướng kinh doanh
 Kiến trúc công nghệ thường được thiết kế để hỗ trợ các yêu cầu
kinh doanh mang tính chiến thuật (ngắn hạn) và không hỗ trợ các
mục tiêu kinh doanh tổng thể, chiến lược (dài hạn) nên cách tiếp
cận này có thể dẫn đến một môi trường kỹ thuật, theo thời gian, trở
nên không phù hợp.

 Sự tách biệt sẽ lớn dần giữa kinh doanh và công nghệ qua nhiều
năm tháng (Hình 4.1).
Định hướng kinh doanh

Hình 4.1
Định hướng kinh doanh
 Khi một kiến trúc công nghệ được định hướng kinh doanh, thì nó sẽ
được định vị làm cơ sở của mô hình kiến trúc. Điều này tối đa hóa
khả năng liên kết giữa công nghệ và kinh doanh

 Kết quả là sự gia tăng liên tục về giá trị và tuổi thọ của kiến trúc.
(Hình 4.2)
Định hướng kinh doanh

Hình 4.2
Nhà cung cấp trung lập
 Việc thiết kế kiến trúc công nghệ hướng dịch vụ xung quanh một
nền tảng của nhà cung cấp dẫn đến việc triển khai vô tình kế thừa
các đặc điểm độc quyền. Điều này có thể cản trở sự phát triển trong
tương lai của kiến trúc kho dịch vụ.

 Do đó KTCN bị ức chế không thể phát triển và khó để mở rộng,


sau đó, nó còn được thay thế để duy trì hiệu quả. (hình 4.3)
Nhà cung cấp trung lập

Hình 4.3
Nhà cung cấp trung lập
 Lợi ích tốt nhất của một tổ chức là thiết kế kiến trúc hướng dịch vụ
dựa trên một mô hình phù hợp với các nền tảng của nhà cung cấp
SOA chính, nhưng trung lập với tất cả chúng. (Hình 4.4)
Nhà cung cấp trung lập

Hình 4.4
Lấy doanh nghiệp làm trung tâm
 Thực tế là các giải pháp hướng dịch vụ dựa trên kiến trúc phân tán
có thể có nguy cơ tạo ra các silo mới trong doanh nghiệp khi xây
dựng các dịch vụ được thiết kế kém, như được minh họa trong
Hình 4.5.
Lấy doanh nghiệp làm trung tâm

Hình 4.5
Lấy doanh nghiệp làm trung tâm
 Khi áp dụng hướng dịch vụ, các dịch vụ được định vị là tài
nguyên doanh nghiệp, kiến trúc công nghệ cơ bản phải thiết
lập một mô hình vốn dựa trên giả định rằng các chương trình
phần mềm được phân phối dưới dạng dịch vụ sẽ được chia
sẻ bởi các bộ phận khác của doanh nghiệp

 Yêu cầu cơ sở này đặt trọng tâm vào việc tiêu chuẩn hóa các
phần của kiến trúc để khả năng sử dụng lại dịch vụ và khả
năng tương tác có thể được tiếp tục thúc đẩy (Hình 4.6).
Lấy doanh nghiệp làm trung tâm

Hình 4.6
Thành phần – Trọng tâm
 Hướng dịch vụ đặt trọng tâm vào việc thiết kế các chương trình
phần mềm không chỉ là các tài nguyên có thể tái sử dụng mà còn là
các tài nguyên linh hoạt có thể được cắm vào các cấu trúc tổng hợp
khác nhau cho nhiều giải pháp hướng dịch vụ.

 Để thực hiện điều này, các dịch vụ phải có thể kết hợp được. (Hình
4.7)
Thành phần – Trọng tâm

Hình 4.7
Các ưu tiên thiết kế
 Giá trị kinh doanh hơn chiến lược kỹ thuật

 Mục tiêu chiến lược so với lợi ích cụ thể của dự án

 Khả năng tương tác nội tại trên tích hợp tùy chỉnh

 Các dịch vụ được chia sẻ trên các triển khai mục đích cụ thể

 Linh hoạt hơn tối ưu hóa

 Cải tiến tiến hóa thay vì theo đuổi sự hoàn hảo ban đầu
4.2. Bốn loại SOA phổ biến
Kiến trúc thành phần
01 Kiến trúc dịch vụ
03 dịch vụ

Kiến trúc doanh nghiệp


Kiến trúc kho dịch vụ
02 04 hướng dịch vụ
01 Kiến trúc dịch vụ
Dạng kiến trúc công nghệ này
Kiến trúc dịch vụ là một kiến thường dựa vào số lượng lớn
trúc công nghệ giới hạn trong các phần mở rộng cơ sở hạ
thiết kế vật lý của một chương tầng để hỗ trợ nhu cầu tang độ
trình phần mềm được thiết kế tin cậy, hiệu suất, khả năng mở
như một dịch vụ rộng, khả năng dự đoán hành
vi và nhu cầu tang cường
quyền tự chủ
Một ví dụ về chế độ xem kiến trúc
dịch vụ cấp cao cho dịch vụ tài khoản
Thông số kỹ thuật kiến trục dịch vụ
thường được sở hữu bởi người
giám sát dịch vụ, nội dung của
chúng thường được bảo vệ và ẩn
khỏi các thành viên nhóm dự án
khác
Việc áp dụng các tiêu chuẩn thiết
kế và các nguyên tắc thiết kế
hướng dịch vụ khác ảnh hưởng
nhiều hơn đến độ sâu và độ chi
tiết mà kiến trúc công nghệ của
dịch vụ có thể cần được xác định
Hợp đồng dịch vụ là một phần cơ bản của
kiến trúc dịch vụ Tài khoản. Định nghĩa của
nó cung cấp cho dịch vụ một danh tính công
khai và giúp thể hiện phạm vi chức năng của
nó. Cụ thể, tài liệu WSDL (A) thể hiện các
hoạt động tương ứng với các phân đoạn
chức năng (B) trong logic dịch vụ Tài khoản
cơ bản. Đến lượt mình, logic truy cập các tài
nguyên khác trong doanh nghiệp để thực
hiện các chức năng đó (C). Để thực hiện điều
này, tài liệu WSDL cung cấp các định nghĩa
trao đổi dữ liệu thông qua các loại thông báo
đầu vào và đầu ra được thiết lập trong các tài
liệu lược đồ XML riêng biệt (D)
Một loạt service agents là một
phần của kiến trúc dịch vụ Tài
khoản. Một số thực hiện xử lý
chung tất cả dữ liệu trong khi một
số khác dành riêng cho đầu vào
hoặc đầu ra dòng dữ liệu.
02
Kiến trúc thành phần
dịch vụ
Một kiến trúc ứng dụng cho
Kiến trúc thành phần dịch vụ một hệ thống phân tán bao
là kiến trúc của một bộ dịch gồm các định nghĩa kiến trúc
vụ được lắp ráp thành một riêng lẻ của các thành phần
thành phần dịch vụ với khả của nó, dạng kiến trúc này bao
năng tự động hóa các nhiệm gồm các kiến trúc dịch vụ của
vụ kinh doanh lớn hơn, phức tất cả các dịch vụ tham gia
tạp hơn
Thành phần dịch vụ tài khoản từ một
quan điểm mô hình hóa. Các mũi tên
được đánh số cho biết trình tự dòng dữ
liệu và tương tác dịch vụ cần thiết cho
khả năng Add để tạo ra các khả năng
trong các dịch vụ của máy khách và hóa
đơn
Một khía cạnh khá độc đáo khác của
kiến trúc thành phần dịch vụ là một
thành phần có thể thấy chính nó là một
phần lồng nhau của thành phần cha lớn
hơn, và do đó một kiến trúc thành phần
có thể bao gồm hoặc tham chiếu đến
một thành phần khác
Một quy trình nghiệp vụ nhất định
có thể cần được tự động hóa bởi
một loạt các thành phần dịch vụ để
phù hợp với các tình huống thời
gian chạy khác nhau. Trong trường
hợp này, logic tổng hợp thay thế
trong khả năng Doanh thu của Báo
cáo thường niên sẽ bắt đầu xử lý
một điều kiện ngoại lệ. Do đó, dịch
vụ Thông báo được gọi trước khi
dịch vụ Tài khoản thậm chí được
đưa vào thành phần.
03 Kiến trúc kho dịch vụ
Kiến trúc dữ liệu là một Việc triển khai kiến trúc Phạm vi của kho dịch
kiến trúc hỗ trợ tập hợp kho dịch vụ sẽ giúp cải vụ có thể là toàn doanh
các dịch vụ được tiêu thiện quy trình kinh nghiệp hoặc có thể đại
chuẩn hóa và quản lý doanh và tang hiệu quả diện cho một miền
độc lập trong doanh nghiệp
Sau cùng, các dịch vụ trong trong một kho
có thể được tổng hợp và cải tổ lại, như được
thể hiện bằng các kiến trúc thành phần khác
nhau. Để đạt được mục đích đó, nhiều mẫu
thiết kế trong cuốn sách này cần được áp
dụng một cách nhất quán trong ranh giới
của kho dịch vụ.
04
Kiến trúc doanh nghiệp
hướng dịch vụ
Đại diện cho tất cả các Chỉ được so sánh với Có thể thiết lập thêm
kiến trúc dịch vụ, kiến kiến trúc kỹ thuật các tiêu chuẩn và quy
trúc thành phần dịch vụ doanh nghiệp truyền ước thiết kế toàn doanh
và kiến trúc kho dịch vụ thống khi tất cả các môi nghiệp mà các kiến trúc
nằm trong một doanh trường kỹ thuật của triển khai khác phải
nghiệp cụ thể doanh nghiệp đều tuân theo
hướng dịch vụ
4.3. Kết quả cuối cùng của SO
và SOA
Cộng đồng doanh nghiệp và ngành
công nghệ thông tin có mối quan hệ
hai chiều vô tận, trong đó mỗi bên ảnh
hưởng đến nhau

Nhu cầu và xu hướng kinh doanh tạo


ra các yêu cầu tự động hóa mà cộng
đồng CNTT cố gắng đáp ứng. Những
đổi mới về phương pháp và công
nghệ mới do cộng đồng CNTT tạo ra
giúp truyền cảm hứng cho các tổ chức
cải thiện hoạt động kinh doanh hiện tại
của họ và thậm chí thử các lĩnh vực
kinh doanh mới
Các mục tiêu và lợi ích chiến lược chung của
điện toán hướng dịch vụ được thực hiện thông
qua việc áp dụng hướng dịch vụ. Đổi lại, điều
này tác động đến các yêu cầu và đòi hỏi đặt ra
cho bốn loại kiến trúc công nghệ hướng dịch
vụ.
Kiến trúc công nghệ hướng dịch
vụ hỗ trợ động lực hai chiều
giữa doanh nghiệp và cộng
đồng CNTT, cho phép mỗi bên
giới thiệu hoặc điều chỉnh sự
thay đổi trong suốt một chu kỳ
vô tận.
Các mục tiêu chiến lược của điện toán hướng dịch vụ đại
diện cho trạng thái mục tiêu có thể đạt được thông qua
một phương pháp do hướng dịch vụ cung cấp. Việc áp
dụng thành công các nguyên tắc hướng dịch vụ và hỗ trợ
các mẫu thiết kế SOA giúp định hình và xác định các yêu
cầu đối với các loại kiến trúc hướng dịch vụ khác nhau,
dẫn đến mô hình tự động hóa CNTT được thiết kế để hỗ
trợ đầy đủ chu kỳ thay đổi hai chiều mà qua đó doanh
nghiệp và cộng đồng CNTT liên tục chuyển đổi
Dự án SOA và
các giai đoạn
trong vòng đời
của dự án
Đỗ Minh Đức
Mục lục

Dự án SOA Our clients


01 03
You can describe the topic You can describe the topic
of the section here of the section here

Vòng đời của Our team


02 dự án SOA 04
You can describe the topic You can describe the topic
of the section here of the section here
01 Dự án SOA
Phân tích phương thức thực hiện dự án

Bottom-up Top-down

Tập trung vào chiến thuật Việc hoàn thành phân tích các
bằng cách ưu tiên việc đáp dịch vụ tương tự trước khi
ứng yêu cầu kinh doanh ngay thiết kế, phát triển và giao
lập tức và làm cho mục tiêu hàng các dịch vụ là quan
chính của dự án trọng hơn
Ưu, nhược điểm của mỗi cách tiếp cận
Ưu điểm Nhược điểm

Giảm chi phí, nỗ lực và thời gian Đặt gánh nặng quản trị tăng lên
cần thiết để cung cấp dịch vụ vì các dịch vụ được cung cấp
Botttom-up thông qua cách tiếp cận từ trên theo cách này thường có tuổi thọ
xuống ngắn hơn và yêu cầu bảo trì và
tái cấu trúc thường xuyên hơn

Một tập hợp các dịch vụ được Đòi hỏi nhiều đầu tư ban đầu
xác định như một phần của dự hơn vì nó có một giai đoạn phân
án, đảm bảo rằng các thiết kế tích ban đầu tập trung vào việc
Top-down dịch vụ tiếp theo sẽ được chuẩn tạo bản thiết kế tổng thể của kho
hóa, tiêu chuẩn hóa và được dịch vụ
điều chỉnh
2 giai đoạn phân tích chính trong dự án SOA
Phân tích các service riêng lẻ liên quan Phân tích tổng thể của một kho dịch vụ.
đến nghiệp vụ một cách tự động hóa

Phân tích kho dịch vụ xác định


Giai đoạn phân tích hướng dịch vụ
một chu trình, trong đó quá trình
được dành để sản xuất các định
phân tích hướng dịch vụ được
nghĩa khái niệm dịch vụ (dịch vụ
thực hiện lặp đi lặp lại (cùng với
mới tiềm năng) như là một phần
các quy trình nghiệp vụ khác) đến
của phân tầng chức năng của logic
mức độ nào đó theo cách tiếp cận
quy trình nghiệp vụ
từ trên xuống (top-down)
Vòng đời của dự
02 án SOA
SOA Adoption Planning (lên kế hoạch áp dụng SOA)

Lên kế hoạch

Kế hoạch áp dụng SOA là quá


trình phát triển chiến lược và
lộ trình để tổ chức triển khai
kiến trúc hướng dịch vụ một
cách thành công
Các bước lên kế hoạch:

Tìm các cột mốc đại diện Tạo thời gian hoàn thành
Xác định phạm vi kiểm kê dịch cho các trạng thái mục các mốc quan trọng và nỗ
vụ theo kế hoạch và trạng thái tiêu trung gian lực áp dụng tổng thể Xác định phương
mục tiêu cuối cùng pháp thực hiện

Xác định hệ thống Xác định hệ thống


Xác định nguồn vốn
quản trị quản lý Đánh giá rủi ro
sẵn có và mô hình
nguồn vốn phù hợp
Service Inventory Analysis
Phân tích dịch vụ đã có

Define Enterprise Define Technology


Business Models Architecture

Xác định mô hình Xác định công


nghiệp vụ nghệ sẽ áp dụng

Define Service Perform Service-


Inventory Blueprint Oriented Analysis

Xác định những Phân tích thiết kế


dịch vụ sẵn có dịch vụ hướng
đối tượng
Service-Oriented Analysis
(Service Modeling) phân tích dịch vụ hướng đối tượng

Step 1 Step 2 Step 3


Xác định phạm vi phân Xác định hệ thống tự Tìm các dịch vụ có thể
tích động xuất hiện trong dự án
Service-Oriented Design
(Service Contract) thiết kế dịch vụ hướng đối tượng

Thiết kế thực thể Thiết kế tính thiết


dịch vụ thực của dịch vụ

Thiết kế các Thiết kế các dịch


micro service vụ quản lý
Service Logic Design thiết kế tính logic của dịch vụ

Cách thiết kế logic dịch vụ được quyết định bởi các yêu cầu
tự động hóa trong nghiệp vụ và cần được đáp ứng bởi dịch
vụ. Trong các giải pháp dựa trên dịch vụ, một dịch vụ
(service) cụ thể có thể giải quyết các yêu cầu nghiệp vụ đặc
biệt hoặc là một phần của sự kết hợp các dịch vụ khác
nhau để giải quyết vấn đề về nghiệp vụ.
Service Development
Sau khi tất cả các đặc tả thiết kế đã hoàn thành, quá
trình phát triển dịch vụ sẽ diên ra (coding time). Bởi vì
kiến trúc dịch vụ đã được xác định rõ ràng nhờ các giai
đoạn trước đó và sự tham gia của các tiêu chuẩn thiết
kế tùy chỉnh, nhà phát triển dịch vụ thường sẽ có
hướng dẫn rõ ràng về cách xây dựng các phần khác
nhau của kiến trúc dịch vụ
Service Testing kiểm thử dự án
● Người dùng nào dược truy cập vào dịch vụ
● Dịch vụ có cần được triển khai trong môi trường đám mây không
● Những yếu tố ảnh hưởng đến bảo mật của hệ thống
● Những yếu tố bảo mật trên đám mây có cần được xem xét không
● Dịch vụ có đáp ứng đủ các yêu cầu trong hợp đồng không
● Có cam kết dịch vụ (SLA) nào cần được kiêm tra
● Dịch vụ có thể được đóng gói lại một cách dễ dàng không
● Dịch vụ có thể triển khai trên nhiều môi trường không
● Dịch vụ có được phát hiện một cách dễ dàng không
● Các cấu hình máy chủ đã đủ yêu cầu của dịch vụ chưa
Service Deployment and Maintenance
Triển khai và duy trì dịch vụ

Deployment (triển khai dịch vụ):


● Việc triển khai dịch vu là việc đưa các dịch vụ lên môi trường đám mây để sử dụng cho mục đích
thương mại.
Maintenance (duy trì dịch vụ):
● Duy trì dịch vụ là việc phải nâng cấp hệ thống theo yêu cầu của hợp đồng
● Kiểm soát các hoạt đông của dịch vụ để tránh xảy ra lỗi
● Tạo các bản vá lỗi và cập nhật các phiên bản mới hơn của dịch vụ

You might also like