ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thị Thanh Thủy
NGHIÊN CỨU BẢO MẬT WEB SERVICES
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2010
[1]
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thị Thanh Thủy
NGHIÊN CỨU BẢO MẬT WEB SERVICES
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: Tiến Sỹ Trương Ninh Thuận
[2]
Lời cám ơn
Trước tiên, em xin gửi lời cảm ơn và biết ơn sâu sắc đến TS. Trương Ninh Thuận –
Giảng viên bộ môn CNPM – khoa CNTT – ĐH Công Nghệ - ĐHQGHN, người đã tận
tình hướng dẫn, chỉ bảo, giúp đỡ em trong suốt thời gian em nghiên cứu khóa luận. Và
cũng là người đưa ra những ý tưởng, kiểm tra sự phù hợp của luận văn.
Em cũng xin gửi lời cảm ơn đến toàn thể các thầy cô trường ĐH Công Nghệ - DHQGHN
đã giảng dạy, và tạo điều kiện cho em trong quá trình học tập và nghiên cứu tại trường.
Những kiến thức mà chúng em nhận được sẽ là hành trang giúp chúng em vững bước
trong tương lai.
Cuối cùng, em xin cảm ơn gia đình, bạn bè, người thân đã luôn ở bên để động viên và là
nguồn cổ vũ lớn lao, là động lực giúp em hoàn thành 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 có thể. Tuy nhiên sẽ
không tránh khỏi những thiếu sót. Em rất mong nhận được sự cảm thông và tận tình chỉ
bảo của quí thầy cô và toàn thể các bạn.
Hà Nội, tháng 5 năm 2010
Sinh viên
Nguyễn Thị Thanh Thu ỷ
Tóm tắt nội dung
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
[3]
đượ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…
Bảo mật luôn luôn là một vấn đề hàng đầu cho tất cả các loại ứng dụng, đặc biệt là các ứng dụng
web. Từ những ngày đầu của Internet người ta đã quan tâm đến tính an toàn trong trao đổi thông
tin. Tuy không có sự an toàn tuyệt đối nhưng những phát triển trong lĩnh vực này thì rất nhanh và
mang lại nhiều thành quả vì đây là vấn đề cấp bách của nhiều doanh nghiệp. Không có một mức
an toàn thích hợp, sự khai thác thương mại của Internet thì không hoàn toàn an toàn. Do đó
những giải thuật để kiểm chứng, sự mã hóa khóa thông tin, và chữ ký số hóa có thể là những giải
pháp cung cấp một mức đủ an toàn.
Chính vì thế sự an toàn của web service trên mạng cũng không thể nằm ngoài vấn đề này. Có thể
nói ngày nay ngoài việc nghiên cứu làm sao để tạo ra một web services tốt mang lại nhiều lợi ích
thì việc nghiên cứu để làm sao mang lại sự an toàn cho web services cũng là một trong những
vấn đề quan trọng nhất. Thật khó tin tưởng để sử dụng một business service như- mua chứng
khoán hay chuyển tiền trực tuyến mà lại không có một sự an toàn cần thiết.
Luận văn tập trung đi sâu vào nghiên cứu, tìm hiểu về công nghệ web services và các vấn đề bảo
mật liên quan và sử dụng chúng để giải quyết bài toán “Kết nối ngân hàng với công ty chứng
khoán” một cách an toàn, hiệu quả, nhằm tạo điều kiện thuận lợi cho việc giao dịch chứng khoán
và giúp cho các thông tin được minh bạch.
Danh mục ký hiệu, từ viết tắt
Tên viết tắt
Mô tả
HTTP
Hypertext Transfer Protocol
[4]
HTML
HyperText Markup Language
SOAP
Simple Object Access Protocol
UDDI
Universal Description, Discovery, and Integration
WSDL
Web Service Description Language
WS
Web services
WSS
Web Service Security
XML
eXtensible Markup Language
SOA
Service Oriented Architecture
SSL
Security Sockets Layer
TCP/IP
Transmission Control Protocol/ Internet Protocol
FTP
File Transfer Protocol
W3C
World Wide Web Consortium
Danh mục bảng và hình vẽ
Tên Hình
Hình 2.1
Mô tả
Sơ đồ cộng tác SOA
Trang
17
[5]
Hình 3.1
Mô hình Web Service
23
Hình 3.2
Kiến trúc của Web Serice
24
Hình 3.3
Web service protocol stack
25
Hình 3.4
Tương tác giữa các thành phần web service
26
Hình 3.5
Các thành phần web service
27
Hình 3.6
Cấu trúc WSDL
28
Hình 3.7
Trao đổi thông điệp SOAP
31
Hình 3.8
Cấu trúc của thông điệp SOAP
33
Hình 3.9
Mô hình tương tác giữa các thành phần
34
Hình 3.10
Sơ đồ sử dụng web service
35
Hình3.11
Cấu trúc của một tài liệu được mô tả bởi XML
35
Hình 3.12
Cấu trúc và hoạt động của một web service đơn giản
40
Hình 4.1
Cấu trúc của giao thức bảo mật SSL
40
Hình 4.5
Các bước SSL Record Protocol
56
Hình 4.3
Xác nhận số một thông điệp
56
Hình 4.4
Mã hóa một thông điệp
61
Hình 4. 5
Điều phối thông điệp SOAP
62
Hình 4.6
Cơ chế dùng bộ lọc của wse
63
Hình 5.1
Biểu đồ hoạt động của hệ thống
63
Bảng 4.1
Các số cổng được gán cho các giao thức ứng dụng chạy trên
43
TLS/SSL
[6]
Bảng 4.2
Các thành phần thông tin trạng thái Session SSL
44
Bảng 4.3
Các thành phần thông tin trạng thái nối kết SSL
44
Mục lục
Lời cám ơn..................................................................................................................................3
Tóm tắt nội dung .........................................................................................................................3
Danh mục ký hiệu, từ viết tắt.......................................................................................................4
Danh mục bảng và hình vẽ ..........................................................................................................5
Mục lục.......................................................................................................................................7
[7]
CHƯƠNG 1: Mở đầu ................................................................................................................11
1.1.
Đặt vấn đề...................................................................................................................11
1.2.
Nội dung bài toán........................................................................................................12
1.3.
Kết quả đạt được.........................................................................................................13
1.4.
Cấu trúc khóa luận ......................................................................................................13
CHƯƠNG 2 :Kiến trúc dịch vụ hướng đối tượng SOA..............................................................14
1.
Định nghĩa kiến trúc hướng dịch vụ SOA...........................................................................15
2.
Tính chất của một hệ thống sử dụng SOA ..........................................................................17
2.2.
Tính sử dụng lại dịch vụ..............................................................................................17
2.3.
Sử dụng dịch vụ bất đồng bộ .......................................................................................17
2.4.
Quản lý các chính sách................................................................................................18
2.5.
Khả năng cộng tác.......................................................................................................18
2.6.
Tự động dò tìm và ràng buộc động ..............................................................................18
2.7.
Tự phục hồi.................................................................................................................18
3.
Lợi ích khi sử dụng SOA....................................................................................................18
4.
Kết luận .............................................................................................................................19
CHƯƠNG 3 : Web Service .......................................................................................................20
3.1.
Service ...........................................................................................................................20
3.1.1.
Định nghĩa...............................................................................................................20
3.1.2.
Đặc điểm service .....................................................................................................21
3.2.
Web service....................................................................................................................22
[8]
3.2.1.
Định nghĩa...............................................................................................................22
3.2.2.
Cấu trúc web service ...............................................................................................24
3.2.3.
Các đặc điểm của web service .................................................................................25
3.2.4.
Các thành phần của web service ..............................................................................26
3.2.4.1.
WSDL (Web Services Description Language) ..................................................26
3.2.4.2.
UDDI (Universal Description, Discovery and Integration)................................29
3.2.4.3.
SOAP (Simple Object Access Protocol) ...........................................................29
3.2.4.4.
XML (eXtensible Markup language) ................................................................33
3.2.5.
3.3.
Hoạt động của Web services....................................................................................34
SOA và dịch vụ web.......................................................................................................35
CHƯƠNG 4 : Các kỹ thuật đảm bảo an ninh dịch vụ web .........................................................37
4.1.
Các vấn đề bảo mật cần quan tâm ...................................................................................37
4.1.1.
Những hạn chế của tường lửa ..................................................................................37
4.1.2.
Cơ chế bảo mật chưa được định nghĩa một các đầy đủ .............................................37
4.1.4.
Bảo mật trong qui trình phối hợp hoạt động của các WS..........................................38
4.2.
Giao thức bảo mật SSL...................................................................................................38
4.2.1.
Cấu trúc giao thức bảo mật SSL...............................................................................38
4.2.2.
SSL Record Protocol ...............................................................................................45
4.2.3.
SSL Handshake Protocol .........................................................................................47
4.3.
Khai thác tính năng bảo mật của bộ thư viện Web Service Enhancement (WSE) ............53
4.3.1.
Những tính năng bảo mật web service của wse ........................................................54
[9]
4.3.2.
Thư viện WSE...........................................................Error! Bookmark not defined.
a.
UsernameToken Authentication: ...................................Error! Bookmark not defined.
b.
Chứng nhận X.509 ........................................................Error! Bookmark not defined.
4.3.3. Hô trợ policy................................................................................................................55
4.3.4.
Kiến trúc của wse ......................................................Error! Bookmark not defined.
CHƯƠNG 5 : Xây dựng chương trình và đánh giá kết quả .......................................................56
5.1.
Mô tả hệ thống cần xây dựng ..........................................................................................57
5.2.
Triển khai hệ thống.........................................................................................................57
5.2.1.
Lựa chọn ngôn ngữ lập trình....................................................................................57
5.2.2.
Hoạt động của hệ thống ...........................................................................................58
5.2.2.2.
Đăng nhập............................................................................................................58
5.2.2.3.
Đăng ký tài khoản mới .........................................................................................59
5.2.3.4.
Thực hiện giao dịch .............................................................................................60
5.3.
Tích hợp các thẻ bảo mật cho chương trình với công cụ WSE.........................................61
5.3.1. Sử dụng công cụ WSE từ bên trong Visual Studio 2005 Error! Bookmark not defined.
5.3.2. Sử dụng công cụ WSE từ menu start .............................Error! Bookmark not defined.
CHƯƠNG 6 : Kết luận..............................................................................................................77
Tài liệu tham khảo.....................................................................................................................80
[10]
CHƯƠNG 1
Mở Đầu
1.1. Đặt vấn đề
Kinh doanh chứng khoán là một hoạt động diễn ra khá phổ biến hiện nay, trong một bộ phận xã
hội không nhỏ, nhưng công việc giao dịch hiện nay vẫn chủ yếu bằng tiền mặt. Người mua
chứng khoán vẫn phải trực tiếp đến các công ty chứng khoán giao dịch và công ty chứng khoán
[11]
vẫn giữ toàn bộ số tiền của nhà đầu tư. Công việc này làm mất nhiều thời gian công sức, không
đảm bảo sự an toàn cho nhà đầu tư và không mang tính chuyên nghiệp.
Các doanh nghiệp đang hướng tới một hoạt động kinh doanh chứng khoán mà trong đó tất cả các
hoạt động của nhà đầu tư, doanh nghiệp, ngân hàng đều được thực hiện thông qua Internet. Và
cũng hiện nay cũng đã có một số hệ thống phần mềm kinh doanh chứng khoán. Tuy hoạt động
chưa hiệu quả và vẫn còn gặp phải nhiều khó khăn nhưng điều đó cũng nói nên một nền tài chính
không tiền mặt. Những người sử dụng có thể tiết kiệm thời gian, công sức mà vẫn đảm bảo lợi
ích về lãi suất, khả năng thanh toán…
Tuy nhiên hệ thống thông tin của các công ty chứng khoán và ngân hàng còn quá nhiều khác biệt
và chưa kết nối được với nhau. Vấn đề này gây ra nhiều khó khăn và có thể dẫn đến bỏ lỡ cơ hội
của nhà đầu tư. Mặt khác công ty chứng khoán phải đảm bảo kết nối với nhiều ngân hàng cùng
một lúc vì mỗi nhà đầu tư chọn cho mình một ngân hàng khác nhau. Tương tự ngân hàng cũng
muốn kết nối với nhiều công ty chứng khoán để mở rộng mạng lưới của mình.
Khi đưa mọi hoạt động giao dịch lên mạng internet, một điều lo ngại đối với nhà đầu tư, công ty
chứng khoán hay ngân hàng là các thông tin cá nhân của họ có được bảo mật một cách chặt chẽ
và có chắc chắn rằng chúng sẽ không bị tấn công bởi cách hacker… Khi nhà đầu tư mở một tài
khoản chứng khoán hoặc tài khoản ngân hàng họ sẽ được cung cấp username/password hay mã
chứng khoán, mã ngân hàng. Vấn đề bài toán đặt ra là làm thế nào để nhứng thông tin đó được
trao đổi giữa 2 bên một cách an toàn mà không bị tấn công.
Bài toán đặt ra là đưa ra một giải pháp kết nối giữa nhà đầu tư – công ty chứng khoán – ngân
hàng. Các giao dịch được thực hiện trực tiếp trên mạng mà vẫn đảm bảo an toàn cho các bên?
1.2. Nội dung bài toán
Để làm giảm độ phức tạp do những khó khăn trên bài toán được giải quyết, tôi chọn một hệ
thống đơn giản chỉ cung cấp những thông tin đơn giản như thông tin cổ phiếu, thông tin tài
khoản của nhà đầu tư, số dư trong tài khoản ngân hàng…
Khi một nhà đầu tư mở tài khoản chứng khoán có thể được cung cấp luôn tài khoản ngân hàng.
Dịch vụ của công ty chứng khoán sẽ cung cấp thông tin về tài khoản của nhà đầu tư. Sau khi
submit để hoàn thành việc đăng ký, username và password của nhà đầu tư sẽ được gửi đến email
đăng ký. Thông tin về tài khoản ngân hàng của nhà đầu tư số dư trong tài khoản cũng được hiển
thị.
[12]
Khi khách hàng muốn thực hiện một giao dịch, trước tiên cần đăng nhập vào hệ thống. Khách
hàng sẽ nhập username/password và submit để gửi đến hệ thống của công ty chứng khoán. Sau
khi đăng nhập khách hàng có thể thực hiện giao dịch mua/bán bằng tài khoản chứng khoán và tài
khoản ngân hàng của mình, các thông điệp giữa khách hàng – công ty chứng khoán và nhà đầu
tư được trao đổi qua lại. Nếu không có phương pháp bảo mật an toàn, các thông điệp này có thể
dễ dàng bị đánh cắp bởi những phương pháp tấn công và dẫn đến thiệt hại cho các bên giao dịch.
Để đáp ứng được các yêu cầu của bài toán đặt ra, đặc biệt là toàn bộ các giao dịch đều được đảm
bảo chính xác, an toàn cho các bên tham gia sẽ không thể không sử dụng tới các kiến thức trong
lĩnh vực Công nghệ thông tin. Có rất nhiều công cụ bảo mật cho web service như công nghệ bảo
mật SSL và các thành phần của nó, giao thức HTTP, các chứng chỉ số… Trong luận văn này, tôi
tập trung đi sâu vào nghiên cứu bảo mật web service theo công nghệ SSL, giao thức HTTP và
đặc biệt là sử dụng bộ thư viện Web Service Enhencement (WSE) của .NET Framework
Microsoft. Web services giao tiếp thông qua các message SOAP. WSE cung cấp những mở rộng
của giao thức SOAP và cho phép người dùng tự định nghĩa bảo mật, truyền message đáng tin
cậy, chính sách... Các nhà phát triển có thể thêm vào những kỹ thuật này trong quá trình xây
dựng (dùng code) hoặc trong quá trình triển khai (policy file).
1.3. Kết quả đạt được
-
Nghiên cứu về các vấn đề: công nghệ web services, kiến trúc hướng dịch vụ SOA, các kỹ
thuật đảm bảo an ninh web services đặc biệt là cấu trúc giao thức SSL, HTTP, bộ thư viện
WSE và các đặc điểm của nó.
-
Phát triển chương trình “giao dịch chứng khoán thông qua tài khoản ngân hàng”. Triển khai
hệ thống và tích hợp các kỹ thuật đảm bảo an toàn cho hệ thống.
1.4. Cấu trúc khóa luận
Nội dung luận văn bao gồm các chương sau:
Chương 1: Giới thiệu
Mô tả chung về bài toán, hướng giải quyết và các kết quả đạt được sau một thời gian nghiên cứu.
Chương 2: Kiến trúc hướng dịch vụ SOA
Giới thiệu về kiến trúc SOA một phương pháp tiếp cận công nghệ thông tin khá phổ biến. Trong
chương này tôi đưa ra những kiến thức cơ bản về mô hình kiến trúc hướng dịch vụ. Các định
[13]
nghĩa, cấu trúc của kiến trúc hướng dịch vụ, những đặc điểm và lợi ích của nó trong việc xây
dựng một web service và kết hợp chúng theo chuẩn.
Chương 3: Web services
Chương này sẽ đi sâu vào tìm hiểu chi tiết về web service, các đặc điểm cũng như đặc tả các
thành phần của nó như WSDL, SOAP, XML, UDDI … và phần cuối chương là mối quan hệ
giữa kiến trúc hướng dịch vụ SOA và Web service.
Chương 4: Các kỹ thuật đảm bảo an ninh Web Service.
Trong chương này đưa ra tình trạng an ninh của web service hiện nay. Tiếp theo cũng trình bày
về các kỹ thuật đảm bảo an ninh như công nghệ bảo mật SSL và đặc biệt là khai thác tính năng
của bộ thư viện Web Service Enhancement (WSE) của .NET Framework.
Chương 5: Xây dựng, triển khai hệ thống và đánh giá kết quả
Chạy demo chương trình chứng khoán giải quyết vấn đề “kết nối chứng khoán với ngân hàng”.
Phần trọng tâm trong chương này là kết hợp các thẻ security của bộ thư viện WSE vào Web
Service.
Chương 6: Kết luận và hướng phát triển trong tương lai.
CHƯƠNG 2
Kiến trúc hướng dịch vụ SOA
(Service-Oriented-Architecture)
Phần mềm ngày nay đang trở lên phức tạp và dường như vượt khỏi tầm kiểm soát của các mô
hình phát triển phần mềm hiện có. Nhiều phần mềm lại được xây dựng với hệ thống quá phức
tạp, chi phí phát triển cao mà lại khó bảo trì. Nhiều năm qua, nhiều kiến trúc phần mềm dã được
[14]
xây dựng và triển khai nhằm giải quyết vấn đề này. Tuy nhiên độ phức tạp vẫn tiếp tục tăng và
càng khó khăn hơn khi vấn đề lập trình dư thừa và không thể tái sử dụng. Tích hợp các phần
mềm lại với nhau là nhu cầu thiết yếu cho tình trạng phát triển phần mềm hiện nay, và làm thế
nào để tạo ra được một phần mềm với chi phí thấp, chất lượng tốt, dễ sử dụng và dễ bảo trì là
một vấn đề mà nhiều nhà phát triển đã và đang hướng tới.
Các kiến trúc hiện đang được áp dụng vào phát triển phần mềm vẫn còn nhiều khó khăn như
không linh hoạt, không bền vững, phức tạp…vì vậy các doanh nghiệp cần có một phương pháp
tiếp cận mớ với kiến trúc hướng dịch vụ và những công nghệ mới như SOAP, HTTP, và XML sẽ
giải quyết được những khó khăn mà hiện các doanh nghiệp đang vấp phải. Trong chương này tôi
sẽ giới thiệu một cách tiếp cận khá toàn diện đó là kiến trúc hướng dịch vụ 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ể sẽ là “xu thế trong tương lai”. Và sau đây chúng ta sẽ đi vào nghiên
cứu chi tiết.
1. Định nghĩa kiến trúc hướng dịch vụ SOA
SOA viết tắt của cụm từ Service Oriented Architecture là cấu trúc hướng dịch vụ.
Theo định nghĩa của IBM: “SOA is an architectural style for creating an Enterprise IT
Architecture that exploits the principle of server orientation to achieve a tiglter relationship
between the business and the information systems that support the business…”[1].
Theo đó SOA là phong cách kiến trúc để tạo ra một công trình kiến trúc IT, kiến trúc đó khai
thác các nguyên tắc của hướng dịch vụ để đạt được các mối quan hệ chặt chẽ giữa doanh nghiệp
và hệ thống thông tin nhằm hỗ trợ cho các doanh nghiệp.
Theo một định nghĩa khác: “SOA is an approach to IT that builds business processes from
reusable component modules or “services” that are independent of applications and the
computing platforms on which they run.”[2].
SOA là phương pháp tiếp cận công nghệ thông tin nhằm xây dựng các tiến trình nghiệp vụ từ
những thành phần mô hình có sẵn hoặc các dịch vụ mà đối lập với các ứng dụng và các thành
phần nền của máy tính như phần cứng hay môi trường lập trình mà nó chạy.
[15]
Một hệ thống được xây dựng theo mô hình SOA bao gồm các service thỏa mãn các tính chất của
service. Mỗi service trong hệ thống có thể được sửa đổi một cách độc lập với các service khác
nhằm mục đích đáp ứng một yêu cầu mới từ thực tế.
SOA có 3 đối tượng chính
- Service Provider: Cung cấp thông tin về dịch vụ cho một nhu cầu nào đó. Người sử dụng
không cần quan tâm đến vị trí thực sự mà service họ cần sử dụng đang hoạt động. 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 Consumer: Người sử dụng service được cung cấp bởi Service Provider. 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 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 gửi một yêu cầu
đúng định dạng mô tả trong hợp đồng.
- Service Regiestry: Nơi lưu trữ thông tin về các service của các service Provider khác nhau.
Service registry chấp nhận và lưu trữ các hợp đồng không gửi đến từ nhà cung cấp dịch vụ và
cung cấp hợp đồng tùy theo yêu cầu của người sử dụng. Service Consumer dựa trên những thông
tin này để tìm kiếm và lựa chọn Service Provider phù hợp.
[16]
Hình 2.1: Sơ đồ cộng tác SOA
Service Provider sẽ đăng ký thông tin về service mà mình có thể cung cấp (các chức năng có thể
cung cấp, khả năng của hệ thống như resource, performance, giá cả dịch vụ…) vào Service
Registry. Service Consumer khi có nhu cầu về một service nào đó sẽ tìm kiếm thông tin trên
service registry. Ngoài chức năng hỗ trợ tìm kiếm, Service Registry còn có thể xếp hạng các
Service Provider dựa trên các tiêu chí về chất lượng dịch vụ, bầu chọn từ các khách hàng đã sử
dụng service, … Những thông tin này sẽ hỗ trợ thêm cho quá trình tìm kiếm của Service
Consumer. Khi đã xác định được Service Provider mong muốn, Service Consumer thiết lập kênh
giao tiếp trực tiếp với Service Provider nhằm sử dụng service hoặc tiến hành thương lượng thêm
(về mặt giá cả, resource sử dụng…).
2. Tính chất của một hệ thống sử dụng SOA
2.1. Tính loose coupling1
SOA hỗ trợ tính loose coupling thông qua việc sử dụng hợp đồng và liên kết. Một người dùng
truy vẫn đến nơi lưu trữ và cung cấp thông tin dịch vụ để lấy thông tin về loại dịch vụ cần sử
dụng. Registry sẽ trả về tất cả những dịch vụ theo tiêu chuẩn tìm kiếm. Theo đó, người sử dụng
chỉ việc chọn dịch vụ mà mình cần, và thực thi phương thức trên đó theo mô tả dịch vụ nhận
được từ registry. Bên sử dụng dịch vụ không cần phụ thuộc trực tiếp vào cài đặt của dịch vụ mà
chỉ dựa trên hợp đồng mà dịch vụ đó hỗ trợ.
2.2. Tính sử dụng lại dịch vụ
Vì các dịch vụ được cung cấp lên trên mạng và được đăng ký ở một nơi nhất định nên chúng dễ
dàng được tìm thấy và tái sử dụng. Nếu một dịch vụ không có khả năng tái sử dụng, nó cũng
không cần đến interface mô tả. Các dịch vụ có thể được tái sử dụng lại bằng cách kết hợp lại với
nhau theo nhiều mục đích khác nhau. Tái sử dụng lại các dịch vụ còn giúp loại bỏ những thành
phần trùng lặp và tăng độ vững chắc trong cài đặt, nó còn giúp đơn giản hóa việc quản trị. Thực
ra tái sử dụng dịch vụ lại dễ dàng hơn tái sử dụng thành tố hay lớp. Những dịch vụ dùng chung
bởi tất cả các ứng dụng của một hệ thống SOA gọi là những share infrastructure service.
2.3. Sử dụng dịch vụ bất đồng bộ
Trên lý thuyết một hệ thống SOA có thể hỗ trợ gửi và nhận cả thông điệp đồng bộ và bất đồng
bộ.
[17]
2.4. Quản lý các chính sách
Khi sử dụng các dịch vụ chia sẻ trên mạng, tùy theo mỗi ứng dụng sẽ có một luật kết hợp riêng
gọi là các policy. Các policy cần được quản lý các áp dụng cho mỗi dịch vụ cả khi thiết kế lẫn
khi trong thời gian thực thi.
2.5. Khả năng cộng tác
Kiến trúc hướng dịch vụ nhấn mạnh đến khả năng cộng tác, khả năng mà hệ thống có thể giao
tiếp với nhau trên nhiều nền tảng và ngôn ngữ khác nhau. Mỗi dịch vụ cung cấp một interface có
thể được triệu gọi thông qua một dạng kết nối. Một kết nối được gọi là một interoperable chứa
bên trong nó một giao thức và một định dạng dữ liệu mà mỗi client kết nối đến nó đều hiểu.
2.6. Tự động dò tìm và ràng buộc động
Với tính chất này khi sử dụng kiến trúc SOA một người sử dụng cần đến một dịch vụ nào đó có
thể tìm kiếm dịch vụ dựa trên một số tiêu chuẩn khi cần. Người sử dụng chỉ cần hỏi một registry
về dịch vụ nào thỏa mãn yêu cầu tìm kiếm.
2.7. Tự phục hồi
Một hệ thống tự phục hồi là hệ thống có khả năng tự phục hồi sau khi bị lỗi mà không cần sự can
thiệp của con người. Trong kiến trúc hướng dịch vụ, các dịch vụ luôn có thể hoạt động hay
ngừng bất kỳ lúc nào, nhất là đối với những ứng dụng tổng hợp từ nhiều dịch vụ của nhiều tổ
chức khác nhau. Độ tin cậy của hệ thống phụ thuộc vào khả năng phục hồi của phần cứng sau khi
bị lỗi.
3. Lợi ích khi sử dụng SOA
Nói đến SOA là nói đến “tiết kiệm” – cả tiết kiệm chi phí lẫn thu được giá trị nhiều hơn từ các hệ
thống có sẵn. Sử dụng mô hình SOA trong việc thiết kế hệ thống mang lại lợi ích về mặt kinh tế
cũng như kỹ thuật.
- Lợi ích từ việc tái sử dụng.
Một trong những lợi ích rõ ràng nhất của SOA là nó giúp các công ty thu được giá trị bằng việc
tái sử dụng lại những tài nguyên có sẵn. Thông qua việc tái sử dụng này có thể tiết kiệm chi phí
cho phần kiến trúc và tích hợp, không những thế nó còn giảm chi phí mua phần mềm mới. Thời
gian viết chương trình lấy dữ liệu từ máy chỉ cũng giảm rất nhiều.Thông thường những nhóm
[18]
phần mềm được phát triển trên nhiều nền tảng khác nhau, sử dụng nhiều ngôn ngữ lập trình khác
nhau và thường có nhiều tính năng lặp lại giữa chúng. Sử dụng hệ thống SOA cho phép các công
ty tránh khỏi tình trạng lặp dư thừa, tạo ra những đơn thể dịch vụ chia sẻ giữa các ứng dụng.
Trong một hệ thống SOA, chỉ cần thay đổi duy nhất một phiên bản của dịch vụ cần được thay
đổi và chỉ cần kiểm thử một lần, sử dụng những kỹ năng tương ứng với những ký năng đã dùng
để phát triển dịch vụ -> giảm chi phí bảo trì phần mềm. Ngoài ra còn giúp doanh nghiệp chịu
trách nhiệm nhiều hơn với những thay đổi về mặt nghiệp vụ và cho phép doanh nghiệp cập nhật
những tính năng của nó nhanh hơn.
Ngoài ra sử dụng những thành phần có sẵn trước đó mỗi khi có thể thì mỗi khi có lỗi xảy ra ta có
thể giới hạn vào khu vực có những thành phần đang được phát triển. Nhờ đó rủi ro về lỗi phần
mềm giảm đi và tăng chất lượng dịch vụ.
- Lợi ích kinh tế:
Doanh nghiệp có điều kiện tập trung thời gian để tìm kiếm các giải pháp cho các bài toán liên
quan đến kinh tế.
Thúc đẩy sự phát triển của hệ thống hiện có cũng như cung cấp khả năng mở rộng hệ thống trong
tương lai.
- Lợi ích kỹ thuật:
Hệ thống xây dựng theo mô hình SOA đảm bảo các service trong hệ thống có tính độc lập cao
(độ kết dính thấp).
Trên phương diện người sử dụng, vị trí các service có tính trong suốt (transparency), việc di dời
các service đến một máy tính khác không ảnh hưởng khả năng phục vụ yêu cầu khách hàng.
Hoạt động của các service có tính động, hành vi của các service tùy thời điểm, tùy yêu cầu cần
xử lý mà có sự khác nhau.
Thích ứng với những thay đổi trong tương lai. Ngoài ra kiến trúc hướng dịch vụ còn hỗ trợ đa
thiết bị như pager, điện thoại di động và hỗ trợ đa nền tảng.
4. Kết luận
[19]
Chương này trình cơ sở lý thuyết của mô hình SOA, bao gồm: khái niệm, cấu trúc, các tính năng
và lợi ích của nó trong việc xây dựng một web service và kết hợp theo chuẩn. Ứng dụng khi xây
dựng kiến trúc bảo mật hướng dịch vụ. Thông qua đây chúng ta cũng biết được kiên trúc hướng
dịch vụ thật sự đem lại những lợi ích to lớn. Và cung cấp những kiến thức cơ bản về SOA để
phục vụ cho phần sau SOA và Web Service giải quyết vấn đề tích hợp như thế nào.
CHƯƠNG 3
Web Service
3.1. Service
3.1.1. Định nghĩa
Theo định nghĩa IBM
“service is a repeatable task within a business process…”[3].
Service là một ứng dụng với user, một thao tác được thực hiện một hoặc nhiều lần trong một tiến
trình nghiệp vụ được thực hiện bởi một người hoặc một nhóm người.
Service là một hệ thống có khả năng nhận một hay nhiều yêu cầu xử lý và sau đó đáp ứng lại
bằng cách trả về một hay nhiều kết quả. Quá trình nhận yêu cầu và trả kết quả được thực hiện
[20]
- Xem thêm -