ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
HỒ BẢO THANH
0112030
NGUYỄN HOÀNG LONG
0112141
NGHIÊN CỨU
KIẾN TRÚC HƯỚNG DỊCH VỤ
(SERVICE-ORIENTED ARCHITECTURE)
VÀ ỨNG DỤNG
LUẬN VĂN CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN
TH.S TRẦN MINH TRIẾT
Thành phố Hồ Chí Minh – 2005
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
HỒ BẢO THANH
0112030
NGUYỄN HOÀNG LONG
0112141
NGHIÊN CỨU
KIẾN TRÚC HƯỚNG DỊCH VỤ
(SERVICE-ORIENTED ARCHITECTURE)
VÀ ỨNG DỤNG
Chuyên ngành: CÔNG NGHỆ PHẦN MỀM
LUẬN VĂN CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN:
TH.S TRẦN MINH TRIẾT
Thành phố Hồ Chí Minh – 2005
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
Lời cảm ơn
Chúng em chân thành cám ơn Khoa Công Nghệ Thông Tin, trường Đại Học
Khoa Học Tự Nhiên, Đại học Quốc gia Tp. Hồ Chí Minh đã tạo điều kiện thuận lợi
cho chúng em trong quá trình học tập và thực hiện đề tài tốt nghiệp.
Chúng em xin nói lên lòng biết ơn sâu sắc đối với Th.S Trần Minh Triết.
Chúng em xin chân thành cám ơn Thầy đã luôn quan tâm, tận tình hướng dẫn chúng
em trong quá trình học tập, nghiên cứu và thực hiện đề tài.
Chúng em xin chân thành cám ơn quý Thầy Cô trong Khoa Công Nghệ Thông
Tin đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu trong suốt quá
trình học tập và thực hiện đề tài. Chúng em cũng xin gửi lòng biết ơn đến thầy cô và
bạn bè trong lớp đã giúp đỡ, động viên tinh thần chúng em rất nhiều trong suốt quá
trình thực hiện luận văn này.
Chúng em nhớ mãi công ơn gia đình đã chăm sóc, động viên và tạo mọi điều
kiện thuận lợi cho chúng em hoàn thành tốt luận văn này.
Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép
nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong nhận được sự góp ý
và tận tình chỉ bảo của quý Thầy Cô và các bạn.
Một lần nữa, xin chân thành cám ơn và mong luôn nhận được những tình cảm
chân thành của tất cả mọi người.
Tp. Hồ Chí Minh, tháng 7 năm 2005
Hồ Bảo Thanh – Nguyễn Hoàng Long
Trang i
Mục lục
TUChương 1 TỔNG QUANUT………………………………………………………………………………………..1
TU1.1UT
TUThực trạng hiện tạiUT ………………………………………………………………………………………….1
TU1.2UT
TUPhân tích, đánh giá một số mô hình kiến trúc phân tán hiện tạiUT……………………………3
TU1.3UT
TUCác vấn đề phát sinh, nguyên nhân và biện pháp khắc phụcUT………………………………..6
TUChương 2 GIỚI THIỆU VỀ KIẾN TRÚC HƯỚNG DỊCH VỤ (SERVICE-
ORIENTED ARCHITECTURE)UT………………………………………………………………………………10
TU2.1UT
TUKiến trúc hướng dịch vụ là gì ?UT …………………………………………………………………….. 10
TU2.2UT
TUBốn nguyên tắc chính của hệ thống SOAUT……………………………………………………….. 11
TU2.2.1UT
TUSự phân định ranh giới rạch ròi giữa các dịch vụUT ……………………………………………….. 11
TU2.2.2UT
TUCác dịch vụ tự hoạt độngUT…………………………………………………………………………………. 12
TU2.2.3UT
TUCác dịch vụ chia sẻ lược đồUT……………………………………………………………………………… 12
TU2.2.4UT
TUTính tương thích của dịch vụ dựa trên chính sáchUT………………………………………………. 12
TU2.3UT
TUCác tính chất của một hệ thống SOAUT …………………………………………………………….. 12
TU2.3.1UT
TULoose couplingUT……………………………………………………………………………………………….. 12
TU2.3.2UT
TUSử dụng lại dịch vụUT …………………………………………………………………………………………. 14
TU2.3.3UT
TUSử dụng dịch vụ bất đồng bộUT……………………………………………………………………………. 14
TU2.3.4UT
TUQuản lý các chính sáchUT ……………………………………………………………………………………. 14
TU2.3.5UT
TUCoarse granularityUT…………………………………………………………………………………………… 15
TU2.3.6UT
TUKhả năng cộng tácUT…………………………………………………………………………………………… 17
TU2.3.7UT
TUTự động dò tìm và ràng buộc độngUT …………………………………………………………………… 17
TU2.3.8UT
TUTự hồi phụcUT ……………………………………………………………………………………………………. 18
TU2.4UT
TULợi ích của SOAUT………………………………………………………………………………………….. 19
TU2.5UT
TUMột số mô hình triển khai SOAUT…………………………………………………………………….. 23
TU2.6UT
TUKiến trúc phân tầng chi tiết của SOAUT…………………………………………………………….. 26
TU2.6.1UT
TUTầng kết nốiUT …………………………………………………………………………………………………… 26
TU2.6.2UT
TUTầng orchestrationUT ………………………………………………………………………………………….. 27
TU2.6.3UT
TUTầng ứng dụng tổng hợpUT………………………………………………………………………………….. 28
TUChương 3 XÂY DỰNG HỆ THỐNG SOAUT……………………………………………………………….31
TU3.1UT
TUNhững thách thức khi xây dựng hệ thống SOAUT………………………………………………. 31
TU3.2UT
TUXây dựng hệ thống SOAUT………………………………………………………………………………. 34
TU3.2.1UT
TUGiới thiệu bài toánUT ………………………………………………………………………………………….. 34
TU3.2.2UT
TUMột số khái niệmUT ……………………………………………………………………………………………. 35
TU3.2.3UT
TUCác bước xây dựng hệ thống SOAUT……………………………………………………………………. 38
TU3.3UT
TUTriển khai SOA trong thực tếUT………………………………………………………………………… 46
TU3.3.1UT
TUCác đặc trưng chính về kinh doanhUT…………………………………………………………………… 47
TU3.3.2UT
TUCác đặc trưng chính về công nghệUT ……………………………………………………………………. 48
TU3.3.3UT
TUCác chuẩn mởUT…………………………………………………………………………………………………. 50
TU3.3.4UT
TUKiến trúc hướng dịch vụ và Thương mại điện tử theo yêu cầuUT…………………………….. 50
Trang ii
TUChương 4 SOA VÀ VẤN ĐỀ BẢO MẬTUT…………………………………………………………………52
TU4.1UT
TUCác thách thức về bảo mật trong hệ thống SOAUT……………………………………………… 52
TU4.1.1UT
TUĐặt vấn đềUT ……………………………………………………………………………………………………… 52
TU4.1.2UT
TUCác vấn đề bảo mật liên quan cần quan tâmUT………………………………………………………. 53
TU4.2UT
TUGiới thiệu về kiến trúc bảo mật hướng dịch vụUT……………………………………………….. 55
TU4.2.1UT
TUMột số yêu cầu đặt ra của kiến trúcUT…………………………………………………………………… 55
TU4.2.2UT
TUKhái niệm về kiến trúc bảo mật hướng dịch vụ SOSA (service-oriented
security architecture)UT………………………………………………………………………………………………….. 58
TU4.2.3UT
TUKiến trúc bảo mật hướng dịch vụ SOSAUT……………………………………………………………. 60
TU4.3UT
TUGiới thiệu một số chuẩn về bảo mật trong XMLUT …………………………………………….. 65
TU4.3.1UT
TUWS-SecurityUT…………………………………………………………………………………………………… 66
TU4.3.2UT
TUXML-SignatureUT………………………………………………………………………………………………. 67
TU4.3.3UT
TUXML-EncryptionUT ……………………………………………………………………………………………. 67
TU4.3.4UT
TUXML Key Management Specification:UT……………………………………………………………… 67
TU4.3.5UT
TUSecurity Assertion Markup Language (SAML)
UT………………………………………………….. 67
TU4.4UT
TUKhai thác tính năng bảo mật web service của bộ thư viện WSE (Web
Services Enhancements)
UT……………………………………………………………………………………….. 68
TU4.4.1UT
TUNhững tính năng chính của bộ thư viện WSEUT ……………………………………………………. 68
TU4.4.2UT
TUKiến trúc của WSEUT …………………………………………………………………………………………. 71
TUChương 5 SOA VÀ VẤN ĐỀ TÍCH HỢPUT………………………………………………………………..73
TU5.1UT
TUGiới thiệu về Enterprise Application Integration
UT…………………………………………….. 73
TU5.1.1UT
TUHiện trạngUT………………………………………………………………………………………………………. 73
TU5.1.2UT
TUMột số lý do khiến các tổ chức doanh nghiệp phải quan tâm đến vấn đề tích
hợp (xét về mặt nghiệp vụ)UT …………………………………………………………………………………………. 74
TU5.1.3UT
TUCác vấn đề kỹ thuật gặp phải trong tích hợp hệ thốngUT…………………………………………. 75
TU5.1.4UT
TUCác yêu cầu cho một giải pháp tích hợpUT ……………………………………………………………. 76
TU5.1.5UT
TUViệc tích hợp có thể được áp dụng ở nhiều tầng khác nhauUT…………………………………. 76
TU5.2UT
TUPhân tích một số kỹ thuật tích hợp sử dụng MiddlewareUT………………………………….. 78
TU5.2.1UT
TUKhái niệm middlewareUT…………………………………………………………………………………….. 78
TU5.2.2UT
TUCác sản phẩm Middleware sử dụng trong tích hợp hệ thốngUT ……………………………….. 78
TU5.3UT
TUSOA và web service giải quyết vấn đề tích hợp như thế nàoUT ……………………………. 82
TU5.3.1UT
TUCông nghệ XML và web serviceUT………………………………………………………………………. 82
TU5.3.2UT
TUWeb services integration (WSI) và Service-oriented integration (SOI)UT…………………. 84
TU5.4UT
TUỨng dụng SOA và web service để tích hợp các hệ thống được xây dựng
trên .NET và J2EEUT……………………………………………………………………………………………….. 87
TU5.5UT
TUỨng dụng SOA và web service trong việc tích hợp các hệ thống cũUT…………………. 90
TUChương 6 SOA VÀ QUẢN LÝ TIẾN TRÌNH NGHIỆP VỤUT…………………………………………95
TU6.1UT
TUMột số khái niệm cơ bản về Quản lý tiến trình nghiệp vụUT………………………………… 95
TU6.1.1UT
TUTiến trình nghiệp vụUT………………………………………………………………………………………… 95
TU6.1.2UT
TUQuản lý tiến trìnhUT ……………………………………………………………………………………………. 96
TU6.1.3UT
TUHệ quản lý tiến trình:UT ………………………………………………………………………………………. 97
TU6.2UT
TUQuản lý tiến trình, SOA và Web ServiceUT ……………………………………………………….. 98
TU6.2.1UT
TUQuản lý tiến trình, SOA và Web Service được kết hợp thế nàoUT……………………………. 99
TU6.2.2UT
TUPhân tích một ví dụ kết hợp Quản lý tiến trình, SOA và web serviceUT………………….. 102
Trang iii
TU6.3UT
TUThiết kế tiến trìnhUT ………………………………………………………………………………………. 108
TU6.3.1UT
TUOrchestration và ChoreographyUT………………………………………………………………………. 108
TU6.3.2UT
TUCác yêu cầu kỹ thuật khi thiết kế tiến trìnhUT………………………………………………………. 110
TU6.3.3UT
TUGiới thiệu một số ngôn ngữ đặc tả tiến trìnhUT…………………………………………………….. 112
TUChương 7 ỨNG DỤNG “SOA SUITE”UT…………………………………………………………………125
TU7.1UT
TUGiới thiệuUT………………………………………………………………………………………………….. 125
TU7.1.1UT
TUỨng dụng “SOA Suite”UT …………………………………………………………………………………. 125
TU7.1.2UT
TUCác thành phần của SOA SuiteUT ………………………………………………………………………. 126
TU7.2UT
TUServiceBusUT………………………………………………………………………………………………… 126
TU7.2.1UT
TUVai trò chức năng của ServiceBusUT ………………………………………………………………….. 126
TU7.2.2UT
TUServiceBus và cơ sở tri thứcUT…………………………………………………………………………… 129
TU7.2.3UT
TUCác thành phần của ServiceBus:UT …………………………………………………………………….. 130
TU7.2.4UT
TUCơ chế hoạt động của ServiceBusUT…………………………………………………………………… 134
TU7.2.5UT
TUServiceBus tích hợp với IISUT……………………………………………………………………………. 136
TU7.3UT
TUBpelEngine
UT……………………………………………………………………………………………….. 136
TU7.3.1UT
TUKiến trúc của BpelEngineUT………………………………………………………………………………. 136
TU7.3.2UT
TUCác bước triển khai một business process trong BpelEngine
UT……………………………… 144
TUChương 8 THÀNH PHẦN BPEL DESIGNER CỦA SOA SUITEUT ……………………………..145
TU8.1UT
TUGiới thiệuUT………………………………………………………………………………………………….. 145
TU8.2UT
TUChức năngUT…………………………………………………………………………………………………. 145
TU8.2.1UT
TUTạo mới, chỉnh sửa, thiết kế một tiến trìnhUT ………………………………………………………. 145
TU8.2.2UT
TUChức năng kết xuất tiến trình ra file ảnhUT………………………………………………………….. 145
TU8.2.3UT
TUChức năng triển khai một tiến trình mới lên serverUT …………………………………………… 146
TU8.3UT
TUThiết kế cài đặtUT ………………………………………………………………………………………….. 146
TU8.3.1UT
TUCấu trúc chương trìnhUT……………………………………………………………………………………. 146
TU8.3.2UT
TUGiao diện chương trìnhUT………………………………………………………………………………….. 147
TU8.4UT
TUHướng dẫn sử dụngUT……………………………………………………………………………………. 164
TU8.4.1UT
TUThiết kế một tiến trìnhUT …………………………………………………………………………………… 164
TU8.4.2UT
TUTriển khai một tiến trìnhUT………………………………………………………………………………… 169
TUChương 9 ỨNG DỤNG SOA ĐỂ THIẾT KẾ MỘT SỐ TIẾN TRÌNHUT …………………………170
TU9.1UT
TUTiến trình dịch tự động đa ngôn ngữUT ……………………………………………………………. 170
TU9.1.1UT
TUMô tảUT …………………………………………………………………………………………………………… 170
TU9.1.2UT
TUSơ đồUT …………………………………………………………………………………………………………… 171
TU9.1.3UT
TUMô tả luồng xử lýUT………………………………………………………………………………………….. 172
TU9.2UT
TUTiến trình thu thập thông tin từ bên ngoàiUT…………………………………………………….. 172
TU9.2.1UT
TUMô tảUT …………………………………………………………………………………………………………… 172
TU9.2.2UT
TUSơ đồUT …………………………………………………………………………………………………………… 173
TU9.2.3UT
TUMô tả luồng xử lýUT………………………………………………………………………………………….. 173
TU9.3UT
TUTiến trình chấm thi tự động qua mạngUT …………………………………………………………. 174
TU9.3.1UT
TUMô tảUT …………………………………………………………………………………………………………… 174
TU9.3.2UT
TUSơ đồUT …………………………………………………………………………………………………………… 175
TU9.3.3UT
TUMô tả luồng xử lýUT………………………………………………………………………………………….. 176
Trang iv
TUChương 10 Kết luậnUT………………………………………………………………………………………….177
TU10.1UT
TUMột số kết quả đạt đượcUT……………………………………………………………………………… 177
TU10.2UT
TUHướng phát triểnUT ……………………………………………………………………………………….. 178
TUTài liệu tham khảoUT…………………………………………………………………………………………….180
TUPhụ lục AUT
TUĐẶC TẢ NGÔN NGỮ BPEL V1.1UT……………………………………………………182
TUA.1UT
TUĐịnh nghĩa một tiến trình nghiệp vụ (business process)UT…………………………………. 182
TUA.1.1UT
TUCấu trúc của một tiến trình nghiệp vụ:UT…………………………………………………………….. 182
TUA.1.2UT
TUChu kỳ sống của một tiến trình nghiệp vụUT ……………………………………………………….. 187
TUA.2UT
TUPartner, Partner Link Type, và Partner Link
UT …………………………………………………. 189
TUA.2.1UT
TUPartnerUT …………………………………………………………………………………………………………. 189
TUA.2.2UT
TUPartner Link TypeUT…………………………………………………………………………………………. 190
TUA.2.3UT
TUPartner LinkUT………………………………………………………………………………………………….. 190
TUA.3UT
TUXử lý dữ liệuUT……………………………………………………………………………………………… 191
TUA.3.1UT
TUBiểu thứcUT……………………………………………………………………………………………………… 191
TUA.3.2UT
TUVariable (biến)UT ……………………………………………………………………………………………… 193
TUA.4UT
TUPhép gánUT …………………………………………………………………………………………………… 195
TUA.5UT
TUCác xử lý cơ bảnUT………………………………………………………………………………………… 197
TUA.5.1UT
TUCác thuộc tính cơ sở của mỗi xử lýUT…………………………………………………………………. 197
TUA.5.2UT
TUCác thành phần cơ sở của mỗi xử lýUT ……………………………………………………………….. 198
TUA.5.3UT
TUGọi một phương thức của Web Service (Invoke)UT……………………………………………… 198
TUA.5.4UT
TUCung cấp các phương thức của Web Service
UT……………………………………………………. 200
TUA.5.5UT
TUCập nhật nội dung của biếnUT ……………………………………………………………………………. 201
TUA.5.6UT
TUBáo lỗi (signaling fault)UT…………………………………………………………………………………. 201
TUA.5.7UT
TUWaitingUT………………………………………………………………………………………………………… 202
TUA.5.8UT
TUKhông làm gì cảUT……………………………………………………………………………………………. 202
TUA.6UT
TUCác xử lý có cấu trúc (structure activity)UT ……………………………………………………… 203
TUA.6.1UT
TUSequence
UT ……………………………………………………………………………………………………… 203
TUA.6.2UT
TUSwitchUT………………………………………………………………………………………………………….. 204
TUA.6.3UT
TUWhileUT…………………………………………………………………………………………………………… 205
TUA.6.4UT
TUPickUT……………………………………………………………………………………………………………… 206
TUA.6.5UT
TUFlowUT…………………………………………………………………………………………………………….. 207
TUA.7UT
TUScopeUT ……………………………………………………………………………………………………….. 215
TUA.7.1UT
TUXử lý dữ liệu data và Partner LinkUT ………………………………………………………………….. 216
TUA.7.2UT
TUXử lý lỗi trong tiến trình nghiệp vụUT…………………………………………………………………. 216
TUA.7.3UT
TUCompensation handlerUT …………………………………………………………………………………… 217
TUA.7.4UT
TUXử lý lỗiUT ………………………………………………………………………………………………………. 219
TUA.7.5UT
TUXử lý sự kiệnUT………………………………………………………………………………………………… 221
TUPhụ lục BUT
TUSOA VÀ WEB SERVICESUT ……………………………………………………………..225
TUB.1UT
TUKiến trúc Web services
UT ………………………………………………………………………………. 225
TUB.2UT
TUCác đặt trưng của Web services
UT…………………………………………………………………… 227
TUB.2.1UT
TULoosely coupledUT……………………………………………………………………………………………. 227
TUB.2.2UT
TUTính đóng góiUT……………………………………………………………………………………………….. 227
Trang v
TUB.2.3UT
TUContractedUT……………………………………………………………………………………………………. 227
TUB.2.4UT
TUGiao thức chuẩnUT……………………………………………………………………………………………. 227
TUB.2.5UT
TUTự định nghĩaUT……………………………………………………………………………………………….. 228
TUB.2.6UT
TUTìm kiếm và triệu gọi độngUT ……………………………………………………………………………. 228
TUB.3UT
TULợi ích của Web services
UT……………………………………………………………………………. 228
TUB.4UT
TUSOAPUT……………………………………………………………………………………………………….. 230
TUB.5UT
TUWSDLUT………………………………………………………………………………………………………. 231
TUB.6UT
TUUDDIUT ……………………………………………………………………………………………………….. 234
TUB.7UT
TUMột số chuẩn Web services mớiUT………………………………………………………………….. 238
TUB.8UT
TUSOA và Web ServiceUT …………………………………………………………………………………. 238
TUPhụ lục CUT
TUĐỊNH DẠNG CÁC FILE TRONG PROJECT BPEL DESIGNERUT …………243
Trang vi
Danh sách hình
TUHình 1-1 – Tích hợp dạng điểm nối điểm
UT………………………………………………………………………..2
TUHình 1-2 – Các thành phần của đối tượng CORBA
UT ………………………………………………………….4
TUHình 1-3 – Mô hình tương tác của đối tượng EJBUT…………………………………………………………….5
TUHình 1-4 – Mô hình tương tác của các đối tượng DCOMUT………………………………………………….6
TUHình 1-5 – Thực trạng cơ sở hạ tầng IT của hầu hết các tổ chức hiện nay.UT………………………….8
TUHình 2-1 – Sơ đồ cộng tác trong SOAUT …………………………………………………………………………. 10
TUHình 2-2 – Tính chất loose-couplingUT ……………………………………………………………………………. 13
TUHình 2-3 – Các đối tượng fine-grained
UT ………………………………………………………………………… 16
TUHình 2-4 – Các đối tượng coarse-grainedUT…………………………………………………………………….. 16
TUHình 2-5 – Các mức độ granularity
UT……………………………………………………………………………… 17
TUHình 2-6 – Mô hình service registryUT…………………………………………………………………………….. 23
TUHình 2-7 – Mô hình service brokerUT……………………………………………………………………………… 24
TUHình 2-8 – Mô hình service busUT………………………………………………………………………………….. 25
TUHình 2-9 – Mô hình service bus phân tánUT …………………………………………………………………….. 25
TUHình 2-10 – Kiến trúc phân tầng của hệ thống SOAUT……………………………………………………… 26
TUHình 2-11 – Một công thông tin cung cấp thông tin trong một vùng nhìn duy nhấtUT………….. 29
TUHình 2-12 – Các portlet truy xuất dữ liệu từ nhiều nguồn khác nhau được cung cấp
dưới dạng dịch vụUT ……………………………………………………………………………………………………… 29
TUHình 3-1 – Các bước cần thực hiện khi triển khai một hệ thống SOA.UT…………………………….. 35
TUHình 3-2 – Phân rã domain thành một dãy các vùng chức năng liên quanUT……………………….. 38
TUHình 3-3 – Sơ đồ sử dụng của hệ thống bán hàng
UT…………………………………………………………. 39
TUHình 3-4 – Sơ đồ các use case và quy trình nghiệp vụUT…………………………………………………… 39
TUHình 3-5 – Ví dụ về mô hình goal-serviceUT……………………………………………………………………. 41
TUHình 3-6 – Các use case nghiệp vụ được “gắn” trên hệ thống con
UT…………………………………. 43
TUHình 3-7 – Phân bổ dịch vụUT………………………………………………………………………………………… 44
TUHình 3-8 – Mẫu đặc tả thành phầnUT ………………………………………………………………………………. 45
TUHình 3-9 – Chọn lựa một giải pháp thực thi thích hợp.UT………………………………………………….. 46
Trang vii
TUHình 3-10 – Sơ đồ tổng quan về thương mại điện tử theo yêu cầuUT………………………………….. 46
TUHình 4-1 – Kiến trúc bảo mật hướng dịch vụ (SOSA)UT…………………………………………………… 60
TUHình 4-2 – Cấu trúc phân tầng của Standard-based Security Info Exchange Platform.UT……… 61
TUHình 4-3 – Security Token Service.UT…………………………………………………………………………….. 63
TUHình 4-4 – Các tầng kỹ thuật bên dưới của một hệ thống bảo mật.UT…………………………………. 66
TUHình 4-5 – Xác nhận số một thông điệp.UT ……………………………………………………………………… 69
TUHình 4-6 – Mã hóa một thông điệpUT ……………………………………………………………………………… 69
TUHình 4-7 – Điều phối thông điệp SOAP.UT ……………………………………………………………………… 70
TUHình 4-8 – Cơ chế sử dụng bộ lọc của WSEUT ………………………………………………………………… 72
TUHình 5-1 – Vai trò cơ bản của middleware.UT…………………………………………………………………. 78
TUHình 5-2 – Cơ chế hàng đợiUT ……………………………………………………………………………………….. 79
TUHình 5-3 – Cơ chế Publish/Subscribe
UT ………………………………………………………………………….. 80
TUHình 5-4 – Remote Procedure Call
UT………………………………………………………………………………. 80
TUHình 5-5 – Distributed Object Model
UT ………………………………………………………………………….. 81
TUHình 5-6 – Sử dụng web service trong vấn đề tích hợp.UT ………………………………………………… 83
TUHình 5-7 – Web services integration (WSI)UT………………………………………………………………….. 85
TUHình 5-8 – Service-oriented integration (SOI)UT ……………………………………………………………… 86
TUHình 5-9 – Sự khác nhau giữa kiến trúc .NET và J2EEUT…………………………………………………. 88
TUHình 5-10 – Vai trò của WSDL trong liên kết các hệ thống.UT ………………………………………….. 89
TUHình 5-11 – WSDL mô tả cách các thông điệp SOAP được xử lýUT………………………………….. 89
TUHình 5-12 – Dịch vụ hóa một CORBA serverUT………………………………………………………………. 92
TUHình 6-1 – Minh họa một tiến trình nghiệp vụUT……………………………………………………………… 95
TUHình 6-2 – Các thành phần của một hệ thống quản lý tiến trình nghiệp vụUT ……………………… 97
TUHình 6-3 – Thực trạng “không đồng nhất”của các hệ thống doanh nghiệp.UT……………………… 99
TUHình 6-4 – Tầng dịch vụ dựa trên mô hình SOA với công nghệ Web ServiceUT ……………….. 100
TUHình 6-5 – Tầng tiến trình nghiệp vụ sử dụng tầng dịch vụUT………………………………………….. 100
TUHình 6-6 – Các hệ thống BPM khi không có tầng servicesUT…………………………………………… 101
TUHình 6-7 – Ví dụ về các hệ thống cũ cần được service hóa.UT …………………………………………. 103
TUHình 6-8 – Mô hình dữ liệu, dịch vụ và tiến trình.UT………………………………………………………. 103
Trang viii
TUHình 6-9 – Xây dựng các service đơn vịUT…………………………………………………………………….. 105
TUHình 6-10 – Xây dựng các dịch vụ tích hợp.UT………………………………………………………………. 106
TUHình 6-11 – Xây dựng các tiến trình nghiệp vụUT…………………………………………………………… 107
TUHình 6-12 – Cung cấp các tiến trình nghiệp vụ cho người dùng.UT ………………………………….. 108
TUHình 6-13 – Sự khác nhau giữa orchestration và choreography.UT …………………………………… 109
TUHình 6-14 – Tiến trình cung cấp khả năng tái sử dụng.UT ……………………………………………….. 111
TUHình 6-15 – Tiến trình được định nghĩa bằng WSFLUT………………………………………………….. 112
TUHình 6-16 – Sơ đồ luồng trong WSFLUT……………………………………………………………………….. 113
TUHình 6-17 – Sơ đồ tổng thể trong WSFLUT……………………………………………………………………. 113
TUHình 6-18 – Liên kết giữa các xử lý trong WSFLUT……………………………………………………….. 114
TUHình 6-19 – Một ví dụ về các luồng thông điệp trong tương tác giữa các serviceUT…………… 115
TUHình 6-20 – Minh họa Web Service Cherography InterfaceUT…………………………………………. 116
TUHình 6-21 – Một tiến trình được mô tả bằng WSCIUT…………………………………………………….. 117
TUHình 6-22 – Một tiến trình đặc tả bởi ngôn ngữ BPEL
UT………………………………………………… 119
TUHình 6-23 – Mẫu xử lý WP2 và WP3
UT………………………………………………………………………… 120
TUHình 6-24 – Mẫu xử lý WP4 và WP5
UT………………………………………………………………………… 121
TUHình 6-25 – Mẫu xử lý WP8UT…………………………………………………………………………………….. 122
TUHình 6-26 – Mẫu giao tiếp CP1 và CP2
UT……………………………………………………………………… 123
TUHình 6-27 – Mẫu giao tiếp CP4UT…………………………………………………………………………………. 124
TUHình 7-1 – Các thành phần của SOASuiteUT………………………………………………………………….. 126
TUHình 7-2 – Môi trường trao đổi thông điệp SOAP của serviceBUSUT………………………………. 127
TUHình 7-3 – Liến kết giữa ServiceBus và WSE Messaging
UT……………………………………………. 127
TUHình 7-4 – Qui trình xử lý thông điệp của serviceBUS.UT ………………………………………………. 135
TUHình 7-5 – Sơ đồ kiến trúc của BpelEngine.UT ………………………………………………………………. 137
TUHình 7-6 – Tạo các đối tượng activity implementation.UT……………………………………………….. 139
TUHình 7-7 – Sơ đồ điều phối thông điệp của engineUT………………………………………………………. 141
TUHình 7-8 – Sơ đồ phân cấp của các xử lý.UT…………………………………………………………………… 143
TUHình 8-1 – Cấu trúc thư mục dùng triển khai một tiến trình BPEL
UT……………………………….. 169
TUHình 9-1 – Tiến trình dịch tự độngUT…………………………………………………………………………….. 171
Trang ix
TUHình 9-2 – Tiến trình thu thập thông tin và dịch tự độngUT……………………………………………… 173
TUHình 9-3 – Tiến trình chấm thi tự độngUT ……………………………………………………………………… 175
TUHình B-1 – Một SOAP Operation đơn giảnUT………………………………………………………………… 231
TUHình B-2 – Cấu trúc thông điệp SOAPUT………………………………………………………………………. 231
Trang x
Danh sách các thuật ngữ và khái niệm
• Service Consumer : người sử dụng dịch vụ ở đây có thể là một ứng dụng, một
dịch vụ hoặc là các module phần mềm khác yêu cầu sử dụng dịch vụ. Đây là
thực thể thực thi quá trình định vị dịch vụ thông qua service registry, liên kết
với dịch vụ và thực thi các chức năng của dịch vụ. Người sử dụng dịch vụ thực
thi chức năng dịch vụ bằng cách một gửi yêu cầu theo đúng dịnh dạng được mô
tả trong hợp đồng.
• Service provider : nhà cung cấp dịch vụ ở đây là một dịch vụ chấp nhận và xử
lý những yêu cầu từ người sử dụng dịch vụ. Nó có thể là một hệ thống
mainframe, một thành phần hoặc các dạng phần mềm khác xử lý yêu cầu dịch
vụ. Nhà cung cấp gửi hợp đồng lên service registry để những người sử dụng
dịch vụ có thể truy cập đến nó.
• Service Registry : service registry là “thư mục” trên mạng chứa tất cả các dịch
vụ đăng ký. Service registry chấp nhận và lưu trữ các hợp đồng gửi đến từ nhà
cung cấp dịch vụ và cung cấp các hợp đồng tùy theo yêu cầu của người sử dụng
dịch vụ.
• Service contract : một hợp đồng (contract) là một đặc tả về cách thức bên sử
dụng dịch vụ trao đổi liên lạc với bên cung cấp dịch vụ. Nó chỉ rõ ra định dạng
yêu cầu và đáp trả của dịch vụ.
• Distributed computing : một dạng tính toán trong đó dữ liệu và ứng dụng được
phần tán trên nhiều máy hoặc hệ thống tách biệt nhưng lại được liên kết và tích
hợp thông qua các dịch vụ mạng và chuẩn tích hợp để mà chúng có thể thực thi
chức năng như trong một môi trường thống nhất.
• Enterprise application : một sản phẩm phần mềm được thiết kế để tích hợp
các hệ thống máy tính bên trong doanh nghiệp lại với nhau. Mục tiêu là để tích
hợp các xử lý nghiệp vụ chính (ví dụ như bán lẻ, kiểm toán, tài chính, quản lý
nhân sự, tồn kho và sản xuất). Enterprise application được dùng rộng rãi trong
Trang xi
bối cảnh cần liên hệ chặt chẽ với nhà cung cấp, với đối tác kinh doanh và với
khách hàng.
• Loose coupling: đây là một khái niệm trong tích hợp ứng dụng. Hai thành phần
trao đổi thông tin không kết nối trực tiếp với nhau mà qua một thành phần trung
gian được đặc tả rõ ràng từ trước. Các thành phần tham gia phải đảm bảo một
cơ chế ngữ nghĩa chung để các thông điệp chứa bên trong chúng một ngữ nghĩa
đủ để tự mô tả chính mình.
• Tight coupling : ngược lại với loose coupling.
• Interface : thành phần giao tiếp.
• Coarse-grained : mô tả mức độ gom nhóm xử lý của một thành phần xử lý
thông tin. Các thành phần có tính coarse-grained thường truyền nhận và xử lý
theo từng khối dữ liệu có thông tin ngữ cảnh lớn và số lần trao đổi thông tin
trong một giao tác là ít. Xem Hình
2-4 để hiểu rõ hơn.
• Fine-grained : ngược lại với coarse-grained. Các thành phần có tính fine-
grained truyền nhận và xử lý theo từng đơn vị nhỏ và có ngữ cảnh ngầm định,
cần nhiều lần trao đổi thông tin trong một giao tác dẫn đến tăng băng thông sử
dụng và kéo dài thời gian hồi đáp. Xem hình Hình
2-3 để hiểu rõ hơn.
• Legacy system : các hệ thống ứng dụng được cài đặt từ trước nhưng vẫn còn
được sử dụng. Thông thường đây là những hệ thống sử dụng công nghệ đã lỗi
thời nhưng vẫn quan trọng và còn hoạt động tốt. Đây là thành phần nền tảng
cung cấp xử lý cho các dịch vụ hoạt động ở cấp cao hơn.
• Granularity : khái niệm mô tả độ phức tạp của tiến trình hoặc dịch vụ.
Granularity được chia làm hai loại là “fine-grained” và “coarse-grained”. Khái
niệm granularity được hiểu một cách trừu tượng không phần biệt hai loại trên và
tùy ngữ cảnh mà có cảnh hiểu khác nhau.
• Interoperability : khả năng cộng tác, trao đổi thông tin giữa các hệ thống phân
tán
Trang xii
• Orchestration : sự kết hợp, điều phối hoạt động của những Web Service theo
một quy trình mong muốn.
• Chereography : tương tự như orchestration nhưng chỉ tập trung vào quan hệ
giữa các thành phần dịch vụ với nhau theo mô hình peer-to-peer.
• Middleware : Khái niệm middleware dùng để mô tả phần mềm liên kết các
phần mềm khác lại với nhau.
• BPEL : Business Process Execution Language, một ngôn ngữ XML được thiết
kế nhằm cho phép kết hợp các xử lý trên một môi trường tính toán phân tán lại
với nhau theo một luồng xử lý hoặc quy trình nghiệp vụ có cấu trúc định trước.
Trang xiii
MỞ ĐẦU
Ngày nay, công nghệ thông tin đang là nền công nghệ mũi nhọn trong chiến
lược phát triển kinh tế, xây dựng đất nước của hầu hết các quốc gia. Các sản
phẩm công nghệ thông tin đã và đang được ứng dụng rộng rãi trong mọi lãnh
vực của đời sống kinh tế, xã hội và hầu hết đều đem đến những giá trị thiết thực.
Đối tượng phục vụ chủ yếu của ngành công nghệ thông tin hiện nay chính là các
tổ chức, các cơ sở doanh nghiệp,… Nhu cầu ứng dụng các sản phẩm của ngành
công nghệ mũi nhọn này để hỗ trợ tin học hóa các qui trình nghiệp vụ, mà vốn
từ trước đến nay chỉ được thực hiện một cách thủ công, đang ngày trở nên một
nhu cầu cấp thiết. Các sản phẩm dạng này đều có chung các đặc điểm là độ
phức tạp lớn, chi phí sản xuất và bảo trì cao, mức độ cụ thể còn tùy thuộc vào độ
lớn của tổ chức cũng như là độ phức tạp của các qui trình nghiệp vụ cần xử lý.
Với sự phát triển của internet và với xu thế hội nhập chung của toàn thế giới, các
tổ chức, các cơ sở doanh nghiệp cần bắt tay, phối hợp hoạt động và chia sẻ tài
nguyên với nhau để nâng cao hiệu quả hoạt động. Lúc này các sản phẩm sẽ có
độ phức tạp lớn hơn, từ đó kéo theo các vấn đề liên quan như chi phí sản xuất,
chi phí quản lý và bảo trì. Bên cạnh đó, ngành công nghệ phần mềm còn phải
đối mặt với các khó khăn trong xu thế mới như vấn đề an ninh bảo mật, vấn đề
tái sử dụng và mở rộng các hệ thống sẵn có, vấn đề về sự không tương thích
giữa các hệ thống khác nhau của nhiều tổ chức …
Để giải quyết các vấn đề trên, nhiều giải pháp đã được nghiên cứu và ứng dụng.
Nhưng hầu hết các giải pháp này không giải quyết các khó khăn một cách triệt
để và kết quả đạt được cũng không như mong đợi. Hiện nay, một giải pháp mới
đang được cộng đồng công nghệ thông tin rất quan tâm, đó là “Kiến trúc hướng
dịch vụ” (Service-oriented Architecture – SOA). Giải pháp này bước đầu đã
được ứng dụng trong một số dự án và đều đem lại những kết quả khả quan. Và
người ta tin rằng SOA có thể giải quyết tốt những thách thức đã nêu trên, và sẽ
Trang xiv
là “xu thế trong tương lai”. Thế thì “Kiến trúc hướng dịch vụ” là gì? Cách giải
quyết vấn đề cũng như là những lợi ích đạt được của kiến trúc này như thế nào?
Đây chính lý do để chúng em thực hiện đề tài
“NGHIÊN CỨU KIẾN TRÚC HƯỚNG DỊCH VỤ
(SERVICE-ORIENTED ARCHITECTURE) VÀ ỨNG DỤNG”
Mục tiêu của đề tài
Đề tài sẽ tập trung vào tìm hiểu các vấn đề sau:
• Nghiên cứu các cơ sở lý thuyết của kiến trúc hướng dịch vụ (SOA) thông qua
việc tìm hiểu khái niệm về “kiến trúc hướng dịch vụ”, các tính chất cùng với
những lợi ích đạt được của hệ thống SOA.
• Tìm hiểu các vấn đề liên quan đến xây dựng hệ thống SOA, bao gồm những
thách thức gặp phải, những nguyên tắc thiết kế và các bước cần thực hiện khi
triển khai hệ thống SOA.
• Ứng dụng SOA trong xây dựng kiến trúc bảo mật hướng dịch vụ. Tìm hiểu một
số chuẩn bảo mật trong XML và khai thác tính năng bảo mật web service của
bộ thư viện lập trình WSE (Web Services Enhancements).
• Tìm hiểu về nhu cầu và các thách thức gặp phải trong việc tích hợp hệ thống.
Từ đó, ứng dụng SOA và Web service để giải quyết vấn đề tích hợp.
• Tìm hiểu khái niệm về tiến trình nghiệp vụ, quản lý tiến trình, mối quan hệ của
tiến trình nghiệp vụ trong hệ thống SOA. Xem xét các nguyên tắc thiết kế và
khảo sát một số ngôn ngữ đặc tả tiến trình nghiệp vụ.
• Xây dựng ứng dụng SOASuite nhằm hỗ trợ trong việc thiết kế, xây dựng và
triển khai hệ thống kiến trúc hướng dịch vụ. Ứng dụng cung cấp môi trường
linh hoạt để quản lý các dịch vụ có trong hệ thống dựa trên cơ chế thông điệp.
Ngoài ra, SOASuite còn cung cấp môi trường phát triển cho phép người dùng
Trang xv
có thể thiết kế, xây dựng và thực thi và quản lý các tiến trình nghiệp vụ từ
những web services đã được xây dựng sẵn thông qua các thao tác kéo thả mà
không cần viết mã lệnh xử lý.
Nội dung luận văn
Nội dung của luận văn được trình bày gồm:
• Chương 1: trình bày, phân tích về một số khó khăn của ngành công nghệ phần
mềm hiện nay. Từ đó giới thiệu một số mô hình kiến trúc phân tán được xây
dựng để giải quyết các khó khăn trên như là CORBA, EJB, DCOM.
• Chương 2: giới thiệu khái niệm về kiến trúc hướng dịch vụ SOA, các nguyên
tắc cũng như là tính chất của hệ thống SOA; phân tích một số lợi ích đạt được
và khảo sát một số mô hình của kiến trúc hướng dịch vụ. Chương này cũng trình
bày về kiến trúc phân tầng của hệ thống SOA.
• Chương 3: trình bày các vấn đề liên quan đến việc xây dựng hệ hống SOA, bao
gồm phân tích các thách thức gặp phải và xem xét qui trình các bước nên thực
hiện khi triển khai hệ thống SOA.
• Chương 4: trình bày về các khó khăn gặp phải trong việc bảo vệ hệ thống SOA.
Từ đó xem xét, phân tích một giải pháp đó là mô hình kiến trúc bảo mật hướng
dịch vụ. Chương này cũng giới thiệu một số chuẩn bảo mật trong XML như
WS-Security, XML-Signature, XML-Encryption, XML Key Management
Specification, SAML và bộ thư viện WSE (Web Services Enhancements) hỗ trợ
lập trình bảo mật web services.
• Chương 5: trình bày và phân tích về nhu cầu và một số khó khăn gây trở ngại
trong vấn đề tích hợp hệ thống. Qua đó xem xét môt số giải pháp được sử dụng
trong tích hợp, bao gồm giải pháp sử dụng các sản phẩm middleware và giải
pháp ứng dụng SOA và Web services: Web Service Integration (WSI) và
Service-Oriented Integration (SOI). Sau đó, xem xét cụ thể giải pháp ứng dụng
Trang xvi
SOA và Web services trong tích hợp các hệ thống xây dựng trên nền .NET và
J2EE và trong tái sử dụng lại các hệ thống cũ.
• Chương 6: trình bày một số khái niệm liên quan về quản lý tiến trình. Phân tích
mối quan hệ kết hợp giữa quản lý tiến trình, SOA và Web services. Xem xét các
vấn đề liên quan đến thiết kế tiến trình nghiệp vụ. Ngoài ra, chương này cũng sẽ
giới thiệu về một số ngôn ngữ đặc tả tiến trình hiện đang được sử dụng phổ
biến, như là Web Service Flow Language (WSFL), XLANG, Web Service
Choreography Interface (WSCI) và Business Process Execution Language For
Web Service (BPEL4WS)
• Chương 7: giới thiệu tổng quát về ứng dụng SOASuite. Trình bày về hai thành
phần ServiceBus và BpelEngine. ServiceBus cung cấp môi trường quản lý các
dịch vụ dựa trên cơ chế thông điệp và BpelEngine cung cấp môi trường triển
khai và thực thi cho các tiến trình nghiệp vụ.
• Chương 8: giới thiệu về thành phần thứ ba của SOASuite, bộ công cụ
“BpelDesigner” cung cấp môi trường trực quan hỗ trợ người dùng xây dựng,
thiết kế các tiến trình nghiệp vụ
• Chương 9: giới thiệu một số mẫu tiến trình được thiết kế bằng bộ công cụ
BpelDesigner.
• Chương 10: trình bày một số kết luận và hướng phát triển của đề tài.
Trang 1
Chương 1
TỔNG QUAN
” Nội dung của chương 1 trình bày về một số khó khăn của ngành công nghệ phần
mềm hiện nay. Từ đó giới thiệu, phân tích các ưu khuyết điểm của một số mô hình
kiến trúc phân tán được xây dựng để giải quyết các khó khăn trên như là CORBA,
EJB, DCOM…
1.1 Thực trạng hiện tại
Phần mềm ngày nay đang ngày càng trở nên phức tạp và dường như đang vượt khỏi
khả năng kiểm soát của các mô hình phát triển phần mềm hiện có. Albert Einstein đã
nói :“Mọi việc nên thực hiện theo cách đơn giản đến mức có thể…” , một thực trạng
đáng buồn là có rất nhiều hệ thống phần mềm được xây dựng với kiến trúc quá phức
tạp, chi phí phát triển và bảo trì cao, đặc biệt là với các hệ thống phần mềm cao cấp.
Hàng chục năm qua, nhiều kiến trúc phần mềm đã được xây dựng và triển khai nhằm
giải quyết các vấn đề này. Thế nhưng độ phức tạp phần mềm vẫn cứ tiếp tục tăng và
dường như đã trở nên vượt quá khả năng xử lý của các kiến trúc truyền thống.
Nguyên nhân khiến cho độ phức tạp của các hệ thống phần mềm không ngừng tăng
cao như thế là do sự xuất hiện của nhiều công nghệ mới tạo nên môi trường không
đồng nhất, trong khi nhu cầu về trao đổi, chia sẻ, tương tác giữa các hệ thống không
thể đáp ứng được trong một môi trường như vậy. Làm sao có thể dung hòa được
những cách biệt giữa cái cũ và cái mới? Các hệ thống cũ (legacy systems) cần được
sử dụng lại thay vì phải gỡ bỏ và thay mới bởi vì chi phí thực hiện lại từ đầu chắc
chắn sẽ cao hơn việc chi phí chuyển đổi cái cũ rất nhiều lần. Vấn đề này liên quan
đến một khái niệm và cũng là một thách thức mà các tổ chức phải đối mặt, đó là “tích
hợp hệ thống” (Enterprise Architecture Integration – EAI). Hiện các dự án dạng này
đang được rất nhiều tổ chức quan tâm đến, với mức đầu tư về chi phí đang dẫn đầu so
với các dạng dự án khác.
Trang 2
Một nguyên nhân khác cũng góp phần dẫn đến tình trạng khó khăn như thế chính là
vấn đề lập trình dư thừa và không thể tái sử dụng. Hãy xét một ví dụ, một ngân hàng
có nhiều chi nhánh khác nhau – mỗi chi nhánh có một hệ thống tách biệt và cần kết
nối với các hệ thống khác của ngân hàng để phục vụ khách hàng được hiệu quả hơn.
Giả sử rằng các hệ thống này đều được thiết kế rất tốt. Thế nhưng các hệ thống này
được xây dựng trong những khoảng thời gian khác nhau, trong những dự án độc lập
và khác nhau. Thông thường chức năng “lấy số liệu thống kê tài khoản” bị lặp lại
trong mỗi hệ thống ATM, mỗi chi nhánh và trong hệ thống lưu trữ tài khoản, và ngay
cả khi người dùng truy cập vào cùng một tài khoản trong cùng một cơ sở dữ liệu. Bây
giờ nếu ngân hàng đó cần phát triển một hệ thống cung cấp dịch vụ gửi tiền hay cho
vay tiền qua mạng để tăng chất lượng phục vụ cho các khách hàng. Hệ thống mới này
sẽ được xây dựng thế nào? Nếu giải pháp chọn xây dựng lại hệ thống mới, thì lại tiếp
tục mắc lại sai lầm trước đó: dư thừa, không đồng nhất … Còn nếu chọn giải pháp là
sử dụng lại các chức năng sẵn có, thì ta phải đối mặt với chuyện thiết lập các mối
liên kết với toàn bộ các hệ thống trước.
Hầu như mọi tổ chức đều phải đối mặt với vấn đề tích hợp vì nhiều lý do, đặc biệt là
trong thị trường ngày nay, sự thay đổi luôn diễn ra với tốc độ chóng mặt; có thể là mở
rộng thêm chi nhánh, một hệ thống bạn hàng mới, hoặc chỉ đơn giản là cần kết nối
các hệ thống có sẵn. Nếu có n hệ thống ứng dụng cần được kết nối trực tiếp với nhau,
thì cần n*(n-1) kết nối, hoặc là interface.
Hình
1-1 – Tích hợp dạng điểm nối điểm
Trang 3
Tương tự, nếu có thêm một hệ thống ứng dụng thứ (n+1) cần đựơc tích hợp thêm vào
hệ thống, thì nó đòi hỏi 2*n interface mới, bao gồm cả việc thu thập sưu liệu , kiểm
thử, và bảo trì. Theo như Hình
1-1 trên thì 5 ứng dụng đòi hỏi 20 kết nối trực tiếp,
một ứng dụng thứ 6 tích hợp thêm vào sẽ yêu cầu thêm 10 kết nối mới! Tệ hơn nữa,
mã nguồn của các ứng dụng cũ phải được chỉnh sửa để thêm vào các kết nối, từ đó
kéo theo chi phí kiểm thử, bảo trì.
Những vấn đề trước chưa giải quyết, mà nay các tổ chức lại phải đối mặt với những
thách thức mới: đáp ứng nhanh chóng các sự thay đổi, giảm chi phí phát triển, tăng
tính tương thích và khả năng tái sử dụng,… Tất cả đã tạo nên một áp lực nặng nề đối
với các nhà phát triển phần mềm.
1.2 Phân tích, đánh giá một số mô hình kiến trúc phân tán hiện tại
Ba kiến trúc phân tán phổ biến nhất hiện này là CORBA, DCOM và EJB. Các kiến
trúc này là sự mở rộng của các hệ thống hướng đối tượng bằng cách cho phép phân
tán các đối tượng trên mạng. Đối tượng đó có thể có không gian địa chỉ bên ngoài
ứng dụng, hoăc ở một máy khác với máy chứa ứng dụng trong khi vẫn được tham
chiếu sử dụng như một phần của ứng dụng.
• CORBA – Common Object Request Broker Architecture:
► CORBA được định nghĩa bởi Object Management Group (OMG), là một kiến
trúc phân tán mở, độc lập nền tảng và độc lập ngôn ngữ.
► CORBA Component Model (CCM) là một cải tiến đáng kể nhằm định nghĩa
các mô hình thành phần so với CORBA. Nó định nghĩa ra quy trình thiết kế,
phát triển, đóng gói, triển khai và thực thi các thành phần phân tán. CCM định
nghĩa khái niệm Ports cho các thành tố. Các port này được sử dụng để kết nối
các thành phần có sẵn với nhau, tạo các hệ thống phân tán phức tạp hơn. Mỗi
thành phần CCM có một đối tượng Home chịu trách nhiệm quản lý chu kỳ
sống của đối tượng và được triển khai bên trong một trình chứa (container).
Trang 4
► Ưu điểm của CORBA là các lập trình viên có thể chọn bất kỳ ngôn ngữ, nền
tảng phần cứng, giao thức mạng và công nghệ để phát triển mà vẫn thoả các
tính chất của CORBA. Tuy nhiên CORBA số một nhược điểm là nó là ngôn
ngữ lập trình cấp thấp, rất phức tạp, khó học và cần một đội ngũ phát triển có
kinh nghiệm. Ngoài ra các đối tượng CORBA cũng khó có thể tái sử dụng.
Hình
1-2 – Các thành phần của đối tượng CORBA
• EJB – Enterprise Java Bean:
► Kiến trúc EJB là một kiến trúc thành tố bên phía máy chủ dùng cho việc phát
triển và triển khai các ứng dụng phân tán hướng đối tượng cỡ vừa và lớn.
► Kiến trúc EJB có 3 tầng với tầng đầu tiên là tầng trình diễn, tầng thứ hai là
tầng xử lý nghiệp vụ, và tầng thứ ba là các tài nguyên như cơ sở dữ liệu máy
chủ. Truyền thông giữa các đối tượng EJB thông qua Remote Method
Invocation (RMI). Các client không bao giờ tương tác trực tiếp với các bean.
Thay vì vậy chúng sẽ sử dụng các phương thức được định nghĩa trong các
interface Remote và Home. Mỗi bean tồn tại bên trong trình chứa, chịu trách
nhiệm việc tạo thể hiện mới, lưu trữ dữ liệu và các quản lý khác. Trình chứa sẽ
triệu gọi các phương thức callback của mỗi thể hiện bean khi có sự kiện tương