Tải bản đầy đủ (.pdf) (85 trang)

Tích phối các phần mềm dưới dạng dịch vụ theo các tiêu chí ngoài chức năng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.53 MB, 85 trang )

TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------CHU TIẾN CƢỜNG

TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ
THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

Chuyên ngành: Công nghệ thông tin

LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN

NGƢỜI HƢỚNG DẪN KHOA HỌC :
TS. VŨ THỊ HƢƠNG GIANG

Hà Nội – Năm 2012

CHU TIẾN CƢỜNG

1


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

LỜI CAM ĐOAN
Tôi xin cam đoan luận văn "Tích phối các phần mềm dƣới dạng dịch vụ theo các tiêu
chí ngoài chức năng" là kết quả nghiên cứu của riêng tôi, không sao chép toàn văn của
bất kỳ công trình nghiên cứu nào khác. Nội dung luận văn có tham khảo và sử dụng các
tài liệu theo danh mục tài liệu của luận văn. Tôi xin chịu trách nhiệm với những nội dung


đƣợc viết trong luận văn này.
Hà Nội, Ngày 26 tháng 03 năm 2012
Tác giả luận văn

Chu Tiến Cường

CHU TIẾN CƢỜNG

2


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

LỜI CẢM ƠN
Em xin cảm gửi lời cảm ơn chân thành tới Cô giáo Tiến Sĩ Vũ Thị Hƣơng Giang,
ngƣời đã tận tình hƣớng dẫn em trong suốt quá trình thực hiện đồ án này.
Em cũng xin chân thành cảm ơn toàn thể quý thầy cô Đại Học Bách Khoa Hà Nội đã
truyền đạt những kiến thức quý báu trong thời gian em học tập tại trƣờng.
Tôi xin gửi lời cảm ơn chân thành đến gia đình, bạn bè và đồng nghiệp – những
ngƣời đã giúp đỡ động viên tôi trong quá trình học tập.
Hà Nội, ngày 26 tháng 03 năm 2012
Học viên thực hiện

Chu Tiến Cường

CHU TIẾN CƢỜNG

3



TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

MỤC LỤC
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT ....................................................... 6
DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ ..................................................................... 8
Mở đầu .......................................................................................................................... 10
Chƣơng 1 - DỊCH VỤ ................................................................................................... 12
1.1 Kiến trúc hƣớng dịch vụ (SOA - Service Oriented Architecture) ......................... 12
1.2 Dịch vụ web (Web Service) .................................................................................. 13
1.3 Phân loại............................................................................................................... 13
1.4 Các thành phần chính trong dịch vụ web .............................................................. 14
1.5 Quy trình phát triển dịch vụ web........................................................................... 16
1.6 Bảo mật dịch vụ web ............................................................................................ 17
Kết luận...................................................................................................................... 19
Chƣơng 2 - TÍCH PHỐI DỊCH VỤ ............................................................................... 21
2.1 Định nghĩa ............................................................................................................ 21
2.2 Các nguyên tắc tích phối dịch vụ .......................................................................... 21
2.3 Phân loại............................................................................................................... 22
2.4 Các mô hình tích phối........................................................................................... 32
2.4.1 BPML (Business Process Modeling Language) .............................................. 32
2.4.2 BPEL (Business Process Execution Language) .............................................. 34
2.4.3 Xây dựng mô hình tích phối theo BPEL ......................................................... 36
2.4.4 WSCI (Web Services Choreography Interface) .............................................. 36
2.5 Mô hình tích phối mở rộng ................................................................................... 37
2.5.1 Mô hình khung tích phối an toàn [7]:.............................................................. 39

CHU TIẾN CƢỜNG

4



TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

2.5.2 MEO [11] ....................................................................................................... 41
Kết luận...................................................................................................................... 52
Chƣơng 3 - KHUNG TÍCH PHỐI DỊCH VỤ WEB THEO CÁC TIÊU CHÍ AN TOÀN 54
3.1 Mục tiêu ............................................................................................................... 54
3.2 Cách tiếp cận ........................................................................................................ 55
3.3 Mô hình tích phối an toàn cho dịch vu web WMEO ............................................. 57
3.3.1 Hoạt động tích phối (Coordination Activity) .................................................. 57
3.3.2 Kịch bản tích phối .......................................................................................... 59
3.3.3 Ràng buộc (Constraint)................................................................................... 60
3.4 Triển khai các mô hình bảo mật cho WMEO dựa trên mã hóa RSA...................... 61
3.5 Quy trình tích phối theo WMEO........................................................................... 63
Kết luận...................................................................................................................... 66
Chƣơng 4 - XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM ............................................... 67
4.1 Giới thiệu ứng dụng đặt vé máy bay ..................................................................... 67
4.2. Xây dựng ba dịch vụ tham gia ............................................................................. 68
4.3 Các nghiệp vụ chính ............................................................................................. 75
4.4 Khái quát framework BDA Meobi ........................................................................ 76
4.4.1 Các thƣ viện trong MEO ................................................................................ 76
4.4.2 Các dịch vụ tham gia trong hệ thống tích phối ................................................ 78
4.4.3 Các bƣớc thực thi của hệ thống tích phối ........................................................ 78
4.5 Cài đặt ứng dụng .................................................................................................. 79
KẾT LUẬN ................................................................................................................... 82
TÀI LIỆU THAM KHẢO ............................................................................................. 84

CHU TIẾN CƢỜNG

5



TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
BPM

Business Process Management

Quản lý quy trình nghiệp vụ

BPEL

Business Process Execution

Ngôn ngữ thực thi tiến trình nghiệp vụ

Language
BPML

Ngôn ngữ mô hình hóa

Business Process Modeling
Language

BPEL4WS

BPEL cho Dịch vụ web

Business Process Execution

Language for Web Services

CA

Coordination Activity

Hoạt động tích phối

CS

Coordination Scenario

Kịch bản tích phối

DPWS

Devices Profile for Web Services

Mô tả thiết bị dịch vụ web

ESB

Enterprise Service Bus

Luồng dịch vụ thƣơng mại

FTP

File Transfer Protocol


Giao thức truyền tệp

HTTP

HyperText Transfer Protocol

Giao thức truyền tải siêu văn bản

HTTPS

HyperText Transfer Protocol Secure

Giao thức HTTP bảo mật

JMS

Java Message Service

Dịch vụ thông điệp Java

MEO

Model for sEcure cOordination

Mô hình tích phối bảo mật

UDDI

Universal Discovery, Description,


Tích hợp, Khám phá và Mô tả toàn cầu

and Integration
URL

Universal Resource Locator

Chỉ định tài nguyên toàn cầu

TCP

Transmission Control Protocol

Giao thức điều khiển truyền vận

RSA

Ron Rivest, Adi Shamir, Len

Thuật toán mã hoá công khai

Adleman
RPC

Remote Procedure Call

Gọi hàm từ xa

VTA


Virtual Travel Agency

Chi nhánh du lịch ảo

IDE

Integrated Development

Môi trƣờng phát triển tích hợp

Environment

CHU TIẾN CƢỜNG

6


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

QoS

Quality of Service

Chất lƣợng dịch vụ

SOAP

Simple Object Access Protocol

Giao thức truy cập đối tƣợng đơn giản


SOA

Service Oriented Architecture

Kiến trúc hƣớng dịch vụ

SSL

Secure Socket Layer

Giao thức tầng giao tiếp bảo mật

SMTP

Simple Mail Transfer Protocol

Giao thức truyền tải thƣ tín đơn giản

WSDL

Web Service Description Language

ngôn ngữ diễn tả cho dịch vụ Web

WSCI

Web Services Choreography

Giao tiếp tích phối dịch vụ Web


Interface
WSC

Web Services Choreography

Biên đạo dịch vụ web

WSO

Web Services Orchestration

H a phối dịch vụ web

WS

Web Service

Dịch vụ web

XML

eXtensible Markup Language

Ngôn ngữ đánh dấu mở rộng

XSD

XML Schema Definition


Định nghĩa lƣợc đồ XML

XPDL

XML for Process Definition

Ngôn ngữ định nghĩa tiến trình dựa

Language

trên XML

CHU TIẾN CƢỜNG

7


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ
Hình 1.1: Ba tác nhân tham gia trong một hệ thống xây dựng theo SOA........................ 12
Hình 1.2: Ngăn xếp giao thức dịch vụ web .................................................................... 14
Hình 1.3: Mô tả WSDL ................................................................................................. 15
Hình 1.4: Các bƣớc phát triển của dịch vụ web .............................................................. 17
Hình 1.5: p dụng các cơ chế an toàn cho dịch vụ web ................................................. 18
Hình 2.1: Mô hình tích phối t ng quát ........................................................................... 21
Hình 2.2: Luồng t chức dịch vụ có ràng buộc ............................................................... 22
Hình 2.3: Luồng t chức dịch vụ song song ................................................................... 22
Hình 2.4: Đa dịch vụ...................................................................................................... 23
Hình 2.5: Logic đóng gói trong dịch vụ ......................................................................... 24

Hình 2.6: Minh họa h a phối - orchestration .................................................................. 24
Hình 2.7: Phát triển hòa phối (Orchestrations) ............................................................... 25
Hình 2.8: Minh họa biên đạo phối (Choreography) ........................................................ 26
Hình 2.9: Sự khác nhau giữa orchestration và choreography .......................................... 27
Hình 2.10: Quá trình nghiệp vụ cho vay – dịch vụ Lender ............................................. 29
Hình 2.11: Quá trình nghiệp vụ cung cấp xe hơi ............................................................ 30
Hình 2.12: Quá trình nghiệp vụ môi giới xe hơi ............................................................. 31
Hình 2.13: Luồng quy trình BPEL4WS ......................................................................... 36
Hình 2.14: WSCI - Web Services Choreography Interface............................................. 37
Hình 2.15: Các tầng trong SOA ..................................................................................... 39
Hình 2.16: Các khái niệm chính của MEO - Model for sEcure cOordination ................. 41
Hình 2.17: Tập hợp các ràng buộc của hoạt động tích phối ............................................ 44

CHU TIẾN CƢỜNG

8


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

Hình 3.1: nguyên lý xác thực ......................................................................................... 61
Hình 3.2: Nguyên lý độ tin cậy ...................................................................................... 62
Hình 3.3: Nguyên lý toàn vẹn ........................................................................................ 63
Hình 4.1: Ứng dụng Booking flight ............................................................................... 67
Hình 4.2: Mô hình use case của Booking Flight ............................................................. 75
Hình 4.3: Framework BDA meobi ................................................................................. 77
Hình 4.4: Các dịch vụ web sẵn dùng .............................................................................. 78

CHU TIẾN CƢỜNG


9


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

Mở đầu
Trong những năm gần đây, khoa hoc máy tính liên tục phát triển mạnh mẽ, mở ra
nhiều hƣớng mới trong công nghệ tin học, cùng với sử bùng n của mạng internet thúc
đẩy việc trao đ i thông tin một cách nhanh chóng hơn và với sự biến đ i không ngừng
các ứng dụng theo chiều hƣớng này.
Điều này chứng tỏ con ngƣời ngày càng đặt nhiều các yêu cầu từ thực tế vào trong hệ
thống máy tính, đặc biệt là các ứng dụng dựa trên internet. Internet ra đời kéo theo vô số
yêu cầu phát triển trên nền tảng này, từ cơ sở hạ tầng mạng đến các ứng dụng world wide
web và hơn thế ngƣời ta ngày càng hƣớng đến các yêu cầu cao hơn nhƣ: mạng xã hội,
dịch vụ web nhƣ là chuyển dần các khái niệm trong cuộc sống vào tin học. Từ đó, kiến
trúc hƣớng dịch vụ / dịch vụ web ra đời, mở ra một định hƣớng phát triển rất mạnh: mô
thức lập trình hƣớng dịch vụ. Mô thức lập trình hƣớng dịch vụ rất thuận lợi để xây dựng
các ứng dụng mới từ các dịch vụ sẵn có, nhất là khi việc mô tả, tìm kiếm và kết nối các
dịch vụ này đã đƣợc chuẩn hóa. Ứng dụng kiểu này bao gồm nhiều hành động, mỗi hành
động tƣơng ứng với lời gọi một chức năng do một dịch vụ có sẵn cung cấp. Quy trình
nghiệp vụ của ứng dụng này đƣợc thể hiện dƣới dạng một sơ đồ tích phối, chỉ rõ các ràng
buộc và các đặc tính khi thực thi các hành động này. Ngoài việc biểu diễn quy trình
nghiệp vụ của ứng dụng cần xây dựng, sơ đồ tích phối phải chỉ rõ các tiêu chí mà ứng
dụng có khả năng đáp ứng, ví dụ nhƣ tính an toàn, tính chịu lỗi, tính tự chủ, v.v. Nhƣ vậy,
cần có khung tích phối dịch vụ cho phép phát triển ứng dụng đáp ứng các tiêu chí cần
quan tâm.
Xuất phát từ thực tế đó tôi quyết định chọn đề tài "Tích phối các phần mềm dƣới dạng
dịch vụ theo các tiêu chí ngoài chức năng" làm đề tài tốt nghiệp cá nhân.
Mục tiêu chính của luận văn gồm ba vấn đề nhƣ sau:
-


Thứ nhất: Tìm hiểu lý thuyết về dịch vụ

-

Thứ hai: Tìm hiểu khung tích phối dịch vụ

-

Thứ ba: Dựa trên khung tích phối dịch vụ, xây dựng khung tích phối dịch vụ web
theo các tiêu chí an toàn và cải đặt thử nghiệm theo tiêu chí này

CHU TIẾN CƢỜNG

10


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

Để hoàn thành luận văn bên cạnh việc tìm hiểu các tài liệu tham khảo, tôi còn tham
khảo thừa kế kết quả từ khung tích phối dịch vụ có sẵn để tiếp tục phát triển xây dựng thử
nghiệm ứng dụng. Bố cục luận văn gồm 4 chƣơng:
-

Chƣơng 1: Dịch vụ

-

Chƣơng 2: Tích phối dịch vụ


-

Chƣơng 3: Khung tích phối dịch vụ web theo các tiêu chí an toàn

-

Chƣơng 4: Xây dựng ứng dụng thử nghiệm

Do thời gian và trình độ bản thân c n nhiều hạn chế, đồ án này khó có thể tránh khỏi
sai sót, kính mong sẽ nhận đƣợc sự góp ý của các thầy, cô và các bạn để đồ án đƣợc hoàn
thiện hơn.

CHU TIẾN CƢỜNG

11


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

Chƣơng 1 - DỊCH VỤ
Trong chƣơng này, tôi sẽ giới thiệu về các dịch vụ, thƣờng thì khi nói đến dịch vụ thì
chúng ta nghĩ ngay đến dịch vụ trong cuộc sống nhƣng trong tin học chúng ta cũng sử
dụng khái niệm dịch vụ để chỉ những chƣơng trình cung cấp chức năng cho chƣơng trình
khác sử dụng, đặc biệt là những dịch vụ trên internet gọi là dịch vụ web - một công nghệ
đƣợc sử dụng trong nhiều ứng dụng, do đó việc hiểu cấu trúc và làm việc tốt trên các dịch
vụ web sẽ tạo thuận lợi khi chúng ta cần phát triển một ứng dụng mới mà không mất
công xây dựng lại những dịch vụ đã có. Ngoài ra, chƣơng này trình bày một số vấn đề
bảo mật trên nền dịch vụ web, đây là một yếu tố quan trọng hàng đầu khi xây dựng ứng
dụng trên dịch vụ web.
1.1 Kiến trúc hƣớng dịch vụ (SOA - Service Oriented Architecture)

SOA là một kiểu kiến trúc để xây dựng ứng dụng phần mềm bằng cách sử dụng dịch
vụ có sẵn trên mạng nhƣ web – các trang thông tin có thể truy cập qua mạng internet. Nó
thúc đẩy tính chất kết nối lỏng (loosely coupled) giữa các thành phần trong ứng dụng để
các thành phần đó có thể đƣợc tái sử dụng. Các ứng dụng trong SOA đƣợc xây dựng dựa
trên các dịch vụ. Một dịch vụ thực hiện một tác vụ nào đó và các dịch vụ nhƣ vậy sau đó
có thể đƣợc sử dụng bởi khách hàng trong các ứng dụng khác nhau hoặc các quy trình
nghiệp vụ khác nhau [18].

Hình 1.1: Ba tác nhân tham gia trong một hệ thống xây dựng theo SOA

CHU TIẾN CƢỜNG

12


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

Hình 1.1 minh họa các thành phần chính của kiến trúc hƣớng dịch vụ:
Bên cung cấp dịch vụ (Service Provider): cung cấp dịch vụ phục vụ cho một nhu cầu
nào đó. Bên sử dụng dịch vụ (Service Consumer/Service Requestor) không cần quan tâm
đến vị trí thực sự mà dịch vụ họ cần sử dụng đang hoạt động. Bên cung cấp dịch vụ sẽ
đăng kí thông tin về dịch vụ 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 (resource, performance), giá cả dịch vụ, … vào đăng ký dịch vụ
(Service Registry).
Bên sử dụng dịch vụ (Service Consumer/Service Requestor): khi có nhu cầu về một
dịch vụ nào đó, bên sử dụng dịch vụ sẽ tìm kiếm thông tin trên Service Registry. 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 dịch vụ hoặc tiến hành thƣơng lƣợng thêm
(về mặt giá cả, tài nguyên sử dụng, ...)
Thƣ mục dịch vụ (Service Registry/Service Broker): nơi lƣu trữ thông tin về các dịch

vụ của các Service Provider khác nhau, 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. 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 dịch vụ, ... Những thông tin này sẽ
hỗ trợ thêm cho quá trình tìm kiếm của Service Consumer.
Có thể thấy, thiết kế theo kiến trúc hƣớng dịch vụ cần tôn trọng 2 nguyên tắc cơ bản:
 Mô đun: tách vấn đề lớn thành nhiều vấn đề nhỏ
 Đóng gói: che đi dữ liệu và logic trong từng mô-đun đối với truy cập từ ngoài
1.2 Dịch vụ web (Web Service)
Dịch vụ web là sự kết hợp các máy tính cá nhân với các thiết bị khác, các cơ sở dữ
liệu và các mạng máy tính để tạo thành một cơ cấu tính toán ảo mà ngƣời sử dụng có thể
làm việc thông qua các trình duyệt mạng [21].
1.3 Phân loại
Các ứng dụng dịch vụ web có thể phân loại nhƣ sau:
a. Dịch vụ nghiệp vụ xã hội:

CHU TIẾN CƢỜNG

13


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

Thông tin nghiệp vụ: chia s thông tin với ngƣời dùng hoặc các đối tác khác. Ví dụ,
dự báo thời tiết, báo cáo thời tiết, lịch bay, thông tin chứng khoán, cung cấp cung cấp bản
đồ, định vị và catalog sản phẩm hay tin tức.
Dịch vụ nghiệp vụ: cung cấp các dịch vụ giao dịch có tính phí cho khách hàng, ch ng
hạn nhƣ kiểm toán, đặt vé, kiểm tra th tín dụng, giao dịch tài chính ngân hàng, cho biết
tỷ giá trao đ i giữa các loại ngoại tệ.
Hƣớng ngoại tiến trình nghiệp vụ: kết hợp các tiến trình nghiệp vụ bên trong với tiến

trình nghiệp vụ của công ty khác, tạo nên các tiến trình nghiệp vụ bao trùm nhiều công ty.
b. Dịch vụ khoa học:
Dịch vụ khoa học: các dịch vụ liên quan đến sở hữu trí tuệ con ngƣời nhƣ toán học
nhƣ các phép tính công thức, thống kê, các dịch vụ phân tích dữ liệu, dịch vụ ngôn ngữ
học (google translation).
1.4 C c th nh phần ch nh trong dịch vụ web
Theo t chức W3C, dịch vụ web là một trong những hình thái ứng dụng kiến trúc
hƣớng dịch vụ ph biến nhất hiện nay. Dịch vụ web cung cấp một chuẩn tích hợp giữa
các ứng dụng phần mềm khác nhau, chạy trên nhiều nền tảng hoặc các nền (framework)
khác nhau. Dịch vụ web đặc trƣng bởi khả năng tƣơng tác và mở rộng cũng nhƣ các đặc
tả sử dụng XML. Chúng có thể đƣợc kết hợp một cách lỏng l o nhằm thực hiện các thao
tác phức tạp.

Hình 1.2: Ngăn xếp giao thức dịch vụ web

CHU TIẾN CƢỜNG

14


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

Hình 1.2 minh họa các chuẩn để xây dựng dịch vụ web bao gồm:
Web Services Description Language (WSDL) [1] là ngôn ngữ các Service Provider sử
dụng để đặc tả dịch vụ mà mình có thể cung cấp cho Service Broker và cách thức truy
cập dịch vụ đó. Service Requester cũng có thể dùng WSDL để đặc tả nhu cầu sử dụng
(loại dịch vụ, thời gian sử dụng, tài nguyên cần thiết, mức giá ...) và gởi cho Service
Broker nhằm xác định các Service Provider phù hợp. Nhƣ vậy, WSDL chứa đựng thông
tin về ngữ nghĩa giao diện và pháp lý của lời gọi đến dịch vụ web: chức năng, giao diện
giao tiếp, giao thức (protocol) đƣợc sử dụng, cấu trúc và định dạng dữ liệu dùng để giao

tiếp. Nhƣ minh họa trong hình 1.3 một tài liệu đặc tả bằng WSDL hợp lệ gồm có hai
phần:
P1: Phần giao tiếp mô tả giao diện và giao thức kết nối
P2: Phần thi hành mô tả thông tin để truy xuất dịch vụ

Hình 1.3: Mô tả WSDL
Universal Discovery, Description, and Integration (UDDI) [1]: là khuôn dạng lƣu trữ
thông tin mà Service Broker sử dụng để lƣu trữ thông tin về các dịch vụ đƣợc cung cấp
bởi các Service Provider. Dựa vào chuẩn này, Service Broker cung cấp chức năng tìm
kiếm hỗ trợ Service Requester trong việc xác định Service Provider phù hợp. UDDI hoạt
động nhƣ một dịch vụ đăng ký và định vị, nó có khả năng xác nhận và phân loại các ứng
dụng dịch vụ web, giúp ngƣời sử dụng dễ dàng tìm thấy chúng trên mạng.
Simple Object Access Protocol (SOAP) [1]: là chuẩn giao tiếp giữa Service Requester
và Service Provider, kênh giao tiếp này phục vụ mục đích thƣơng lƣợng giá cả và các yếu
CHU TIẾN CƢỜNG

15


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

tố khác trong việc sử dụng dịch vụ. SOAP là một giao thức giao tiếp dùng trong dịch vụ
web đƣợc xây dựng dựa trên XML. SOAP đƣợc sử dụng để đặc tả, mã hóa thành định
dạng chung và trao đ i thông tin về các cấu trúc dữ liệu cũng nhƣ các kiểu dữ liệu giữa
các thành phần trong hệ thống.
Extensible Markup Language (XML) [2] là một ngôn ngữ mô tả văn bản với cấu trúc
do ngƣời sử dụng định nghĩa. Về hình thức XML có ký pháp tựa nhƣ HTML nhƣng
không tuân theo một đặc tả quy ƣớc nhƣ HTML. Do dịch vụ web là sự kết hợp của nhiều
thành phần khác nhau. Do đó dịch vụ web sử dụng các tính năng và đặc trƣng của các
thành phần này để giao tiếp với nhau.Vì vậy XML là một công cụ chính yếu để giải quyết

vấn đề này. Từ kết quả này, các ứng dụng tích hợp vĩ mô tăng cƣờng sử dụng XML, nhờ
có khả năng t ng hợp này mà XML đã trở thành kiến trúc nền tảng cho việc xây dựng
dịch vụ web.
XML Schema Definition (XSD) [22]: XSD là dạng tài liệu theo chuẩn XML và đƣợc
dùng để mô tả cấu trúc và các kiểu dữ liệu của một tài liệu XML.
1.5 Quy tr nh ph t tri n dịch vụ web
Sơ đồ dƣới đây cho chúng ta thấy đƣợc toàn cảnh các thành phần của dịch vụ web,
cũng nhƣ quá trình phối hợp giữa các thành phần bên trong dịch vụ web để đáp ứng yêu
cầu từ phía ngƣời dung, trong sơ đồ này gồm:
(1) Service Provider đựợc phát triển bằng Java
(2) Chuyển đ i thông tin giữa máy chủ và WSDL
(3) Thực thi với SOAP Server
(4) Công bố (publish) và truy xuất UDDI registry, bao gồm:
(a) Khai báo, hủy khai báo và cập nhật những đăng ký dịch vụ trong UDDI
registry
(b) Tìm kiếm các đăng ký dịch vụ trong UDDI registry
(5) Thực thi với SOAP Client
(6) Đáp ứng các yêu câu từ client, bao gồm:
(a) Tìm kiếm các dịch vụ đƣợc đăng ký trong UDDI registry
(b) Yêu cầu thực hiện dịch vụ đã đăng ký
(c) Trao đ i thông tin giữa client và SOAP server
CHU TIẾN CƢỜNG

16


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

(d) Yêu cầu khối cung cấp dịch vụ thực thi và trả kết qủa về cho client


Hình 1.4: Các bƣớc phát triển của dịch vụ web
Từ sơ đồ này, chúng ta thấy rằng để xây dựng một dịch vụ web, chúng ta cần thực
hiện các bƣớc cơ bản sau:
Bước 1: định nghĩa và xây dựng các chức năng, các dịch vụ mà servive sẽ cung cấp
Bước 2: tạo WSDL cho dịch vụ
Bước 3: xây dựng SOAP server cho dịch vụ
Bước 4: đăng ký WSDL với UDDI registry để cho phép các client có thể tìm thấy và
truy xuất
Bước 5: client nhận tập tin WSDL và từ đó xây dựng SOAP client để có thể kết nối
với SOAP server
Bước 6: xây dựng ứng dụng phía client và sau đó gọi thực hiện dịch vụ thông qua việc
kết nối tới SOAP server
1.6 Bảo

t dịch vụ 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. Mặc dầu, 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ì
CHU TIẾN CƢỜNG

17


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

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.
Bảo mật dịch vụ web dựa trên 2 hình thức cơ bản là: bảo đảm an ninh ở mức truyền

tải và bảo đảm an ninh ở mức thông điệp.
a. Bảo đảm an ninh ở mức truyền tải: là cơ chế an ninh điểm tới điểm (Point to Point),
dùng cho việc nhận dạng và xác thực các bên, bảo đảm tính toàn vẹn và bảo mật của
thông điệp. HTTP là giao thức không an toàn, dữ liệu đƣợc truyền đi ở dạng “text” nên
dễ bị lộ. Ta thay bằng HTTPs, ở đây tất cả các thông điệp đã đƣợc mã hóa. Kỹ thuật
HTTPS cho phép xác thực máy chủ, máy chủ phải xuất trình xác thực cho trình khách để
trình khách nhận dạng máy chủ, c n máy chủ không thể xác thực đƣợc trình khách. Thực
tế ngƣời ta thƣờng dùng xác thực cơ sở HTTP kết hợp với HTTPS.
b. Bảo đảm an ninh ở mức thông điệp: là cách tiếp cận là tất cả thông tin liên quan tới
an ninh đều đƣợc gói kín trong SOAP. Bảo đảm an ninh ở mức thông điệp đ i hỏi sự bảo
vệ bằng th bài tên ngƣời dùng, mật mã XML và chữ ký số.
Bảo mật dịch vụ web đƣợc đặc tả bằng công cụ WS-Security [6].

Hình 1.5: p dụng các cơ chế an toàn cho dịch vụ web
An ninh dịch vụ web (WS-Security) là một tiêu chuẩn để b sung thêm bảo đảm an
ninh cho các trao đ i thông điệp của dịch vụ web đó là SOAP. Nó sử dụng một phần tử
của phần đầu (header) thông điệp SOAP để đính kèm thông tin an ninh theo các thông
báo, dƣới dạng các th bài (tokens) chuyển tải các kiểu lời tự khai khác nhau (các lời tự
khai này có thể bao gồm tên, mã nhận diện, khóa, các nhóm, các đặc quyền, các khả
CHU TIẾN CƢỜNG

18


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

năng, và v.v) cùng với thông tin mật mã hóa và chữ ký số. An ninh dịch vụ web hỗ trợ
nhiều định dạng cho các th bài, nhiều miền tin cậy, nhiều định dạng chữ ký và nhiều
công nghệ mã hóa. Do đó, trong hầu hết trƣờng hợp, thông tin trong phần đầu thông điệp
cần phải chứa định dạng cụ thể và định danh thuật toán cho mỗi thành phần. Các thông

tin b sung này có thể dẫn đến một cấu trúc phức tạp cho các thông tin phần đầu của
thông điệp, một ví dụ thông điệp với chữ ký và mật mã hóa. WS-Security đƣợc dùng khi
muốn xây dựng những dịch vụ web toàn vẹn và tin cậy. Nó đƣợc thiết kế mang tính mở
nhằm có thể hƣớng tới những mô hình an toàn khác nhƣ là PKI, Kerberos, và SSL.
Kết lu n
Theo kiến trúc hƣớng dịch vụ và với những các thành phần trình bày thì dịch vụ web
có những đặc điểm chính nhƣ là:
 Có ranh giới rõ ràng (Boundaries Are Explicit): mỗi dịch vụ đƣợc xây dựng dựa
trên các giao tiếp chuẩn hóa đã đƣợc sử dụng rộng rãi, chi tiết hiện thực của mỗi dịch
vụ sẽ không đƣợc thể hiện ra bên ngoài và mỗi dịch vụ chỉ công bố một số các giao
tiếp của nó cho ngƣời sử dụng có thể dùng để gởi các yêu cầu và nhận kết quả trả về
 Tính tự trị (Autonomous): về mặt lý thuyết, mỗi dịch vụ có tính độc lập cao, có thể
đƣợc xây dựng và đƣa vào sử dụng mà không phụ thuộc vào các dịch vụ khác
 Sự tƣơng thích giữa các dịch vụ đƣợc căn cứ vào các chính sách (policy), tƣơng
thích về mặt cấu trúc dựa trên các đặc tả hình thức bao gồm contract (dựa trên Web
Service Description Language (WSDL) hoặc Business Process Execution Language
for Web Services (BPEL4WS)) và schema (XSD), sự tƣơng thích dựa trên chính sách
cung cấp khả năng phân tích cũng nhƣ đảm bảo sự tƣơng thích giữa các dịch vụ
 Dịch vụ web cho phép client và server tƣơng tác đƣợc với nhau mặc dù trong
những môi trƣờng khác nhau
 Dịch vụ web thì có dạng mở và dựa vào các tiêu chuẩn XML và HTTP là nền tảng
kỹ thuật cho web dịch vụ
 Dịch vụ web thì rất linh động: với UDDI và WSDL, thì việc mô tả và phát triển
dịch vụ web có thể đƣợc tự động hóa
 Dịch vụ web đƣợc xây dựng trên nền tảng những công nghệ đã đƣợc chấp nhận
CHU TIẾN CƢỜNG

19



TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

 Dịch vụ web có dạng module
 Dịch vụ web có thể công bố (publish)
Tóm lại dịch vụ web có những ƣu điểm chính đó là sự đơn giản (chỉ dùng url), nâng
cao khả năng tái sử dụng, thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống,
phát triển hệ thống nhanh và hạ giá thành hoạt động. Bên cạnh những ƣu điểm đó nó
cũng tồn tại nhƣợc điểm: phụ thuộc nhiều vào công nghệ và phải quan tâm nhiều hơn đến
vấn đề an toàn và bảo mật (nhƣ mã hóa thông tin hay chữ ký số), là một vấn đề quan
trọng hàng đầu trong thiết kế ứng dụng và đƣa hệ thống ứng dụng vào thực tiễn và nó
cũng là nền tảng bảo mật cho các mô hình tích phối dịch vụ sau này.

CHU TIẾN CƢỜNG

20


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

Chƣơng 2 - TÍCH PHỐI DỊCH VỤ
Trong chƣơng 1 chúng ta đã tìm hiểu rõ các vấn đề trong dịch vụ cũng nhƣ dịch vụ
web, xu hƣớng phát triển của nó ngày càng ph biến trong nhiều lĩnh vực nhƣ kinh
doanh, thƣơng mại, thƣơng mại điện tử… và việc tập trung các dịch vụ này để tích hợp
linh hoạt đáp ứng các yêu cầu mới mà không mất công xây dựng lại dịch vụ từ đầu là
điều đáng quan tâm. Vì vậy các hình thức và các mô hình tích phối hƣớng dịch vụ ngày
càng phát triển hứa hẹn tạo nên sự thay đ i toàn diện trong lĩnh vực phát triển phần mềm
để xây dựng các ứng dụng mới từ các dịch vụ sẵn có, nhất là khi việc mô tả, tìm kiếm và
kết nối các dịch vụ này đã đƣợc chuẩn hóa. Để hiểu rõ hơn về mô thức này, trong chƣơng
này em đề cập t ng quát các nguyên tắc tích phối và phân loại các mô hình tích phối của
dịch vụ đồng thời giới thiệu mô hình tích phối mở rộng dựa trên các tiêu chí ngoài chức

năng.
2.1 Định nghĩa
Tích phối dịch vụ là sự kết hợp các dịch vụ đƣợc cung cấp sẵn trên web theo một trật
tự để tạo ra một chức năng mới, đƣợc xây dựng trên nền tảng các giao thức có sẵn, thông
tin đƣợc trao đ i một cách độc lập so với phần cứng, công nghệ, ngôn ngữ hay hệ điều
hành [22].
Tích phối dịch vụ có thể đƣợc mô hình hóa nhƣ trong hình 2.1:

Hình 2.1: Mô hình tích phối t ng quát
2.2 Các nguyên tắc tích phối dịch vụ
CHU TIẾN CƢỜNG

21


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

Tích phối dịch vụ dựa trên các nguyên tắc cơ bản sau:
 Khả năng tƣơng thích: kiểm tra nếu ứng dụng phù hợp trong một môi trƣờng trƣớc
 Dễ bảo trì: dịch vụ tích phối dễ dàng bảo trì khi là sản phẩm
 Hiệu suất thực thi: nhƣ thời gian trả về, đáp ứng yêu cầu sử dụng
 Có thể mở rộng, tức có thể phát triển linh hoạt
 Bảo mật: đủ bảo mật để bảo vệ, không mất thông tin
 Độ tin cậy cao: ứng dụng hoạt động, đáp ứng tốt, chất lƣợng
 Giao tác, toàn vẹn: giao tác nhằm tránh các lỗi khi có sự cố sảy ra, toàn vẹn và
nhất quán về thông tin và dữ liệu
2.3 Phân loại
Tích phối dịch vụ đƣợc phân thành 4 loại cơ bản: luồng dịch vụ, đa dịch vụ, h a phối
và biên đạo phối.
2.3.1 Luồng dịch vụ

Ba dịch vụ sau đây đƣợc thực hiện trên một yêu cầu nghiệp vụ và có một ràng buộc là
dịch vụ 2, dịch vụ 3 phải đƣợc thực hiện sau khi hoàn thành của dịch vụ 1.

Hình 2.2: Luồng t chức dịch vụ có ràng buộc
Nhƣ ở hình 2.2 khi dịch vụ 3 cũng đã sẵn sàng để đƣợc thực hiện (tức là thực thi nó
và trả về một kết quả), tuy nhiên, nó đã phải chờ đợi cho đến khi dịch vụ 2 hoàn thành, vì
vậy tạo ra sự chậm trễ trong luồng t chức dịch vụ. Trong trƣờng hợp này, luồng có thể
phân chia song song để áp dụng cho dịch vụ 2 và 3 để thực hiện đồng thời.

Hình 2.3: Luồng t chức dịch vụ song song

CHU TIẾN CƢỜNG

22


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

Luồng nghiệp vụ dịch vụ dựa trên các thành phần các dịch vụ (service components)
có sẵn và kết hợp theo nghiệp vụ nhất định, để phát triển thành dịch vụ mới. Qua tích
phối theo luồng chúng ta thấy rõ hơn các xử lý kết hợp dịch vụ theo thời gian trên một
ràng buộc nghiệp vụ nào đó, điều này giúp ứng dụng tích phối trở nên chặt chẽ và sẵn
dùng hơn, đồng thời đó cũng là cơ sở cho các tích phối dịch vụ khác.
2.3.2 Đa dịch vụ (Multiple services)
Thƣờng sử dụng khi chúng ta có một tập hợp các dịch vụ web chạy trong một hoặc
nhiều hệ thống và chúng ta muốn cung cấp tính năng mới hoặc tái sử dụng lại những đặc
tính hiện hữu do những dịch vụ web này cung cấp. Trong hƣớng tiếp cận này, chúng ta
tạo ra một dịch vụ web mới bằng cách tích hợp, kết hợp các tính năng, chức năng của các
dịch vụ web hiện có hoặc các module để tạo ra một dịch vụ web mới với nhiều tính năng
hơn.


Hình 2.4: Đa dịch vụ
Các dịch vụ web riêng l có thể kết hợp tuần tự với nhau tức là đầu ra của một dịch vụ
này sẽ là đầu vào của một dịch vụ khác hoặc một module khác trong hệ thống. Ngoài ra,
chúng ta cũng có thể tạo ra những đầu ra khác nhau khi thực thi tùy thuộc vào luồng dữ
liệu đầu vào.

CHU TIẾN CƢỜNG

23


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG

Hình 2.5: Logic đóng gói trong dịch vụ
Hình 2.5 mô tả chi tiết cách đóng gói trong dịch vụ tức là coi dịch vụ nhƣ một quá
trình đơn rồi kết hợp chúng lại với nhau tạo ra một dịch vụ khác theo một logic nào đó.
Tích phối đa dịch vụ đi sâu hơn về cách kết hợp và thừa kế các dịch vụ đã có, kết hợp
dịch vụ theo logic phân tích đặt ra mà không quan tâm nhiều về các vấn đề thời gian.
2.3.3 Hòa phối (Orchestration)

Hình 2.6: Minh họa h a phối - orchestration
Các đặc điểm cở bản của h a phối:
CHU TIẾN CƢỜNG

24


TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG


 Quy trình (process) luôn đƣợc điều khiển theo cái nhìn toàn cảnh
 Cục bộ hóa các thành phần trong quá trình
 Chú ý tới thực thi quá trình và tƣơng tác giữa các dịch vụ trong và ngoài
Thông qua các đặc điểm cơ bản trên, ta thấy h a phối là sự kết hợp điều phối hoạt
động của những dịch vụ theo một quy trình mong muốn.
Ví dụ phát triển và thực thi h a phối:

Hình 2.7: Phát triển hòa phối (Orchestrations)
Ví dụ cho thấy cách làm việc cụ thể trong h a phối theo các lựa chọn về công cụ thiết
kế (Bpel process), ngôn ngữ lập trình, kịch bản trên các loại dịch vụ có sẵn (Net, Java,
Siebel) để xây dựng h a phối.
2.3.4 Biên đạo phối (Choreography)
Các đặc điểm cơ bản quá trình biên đạo phối:
 Miêu tả cộng tác đa thành phần không dựa trên một khối điều khiển trung tâm
 Không có một ngƣời sở hữu ứng dụng và cung cấp dịch vụ đầy đủ
 Các thành phần tham gia là độc lập và trao đ i thông tin theo trật tự nhằm đạt mục
đích chung
 Miêu tả một sơ đồ thiết kế chung mà các thành phần tham gia biết toàn bộ
 Do vậy các luật đều phải đuợc rõ ràng và sự đồng thuận của tất cả
CHU TIẾN CƢỜNG

25


×