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

KHAI PHÁ và kết hợp tối ưu các DỊCH vụ WEB NGỮ NGHĨA với SOA

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 (7.02 MB, 97 trang )

1

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

KHOÁ LUẬN TỐT NGHIỆP

KHAI PHÁ VÀ KẾT HỢP TỐI ƢU
CÁC DỊCH VỤ WEB NGỮ NGHĨA
VỚI SOA

Giảng viên hƣớng dẫn
Sinh viên thực hiện
Lớp
Khoá
Niên khóa

: PGS TS. VŨ THANH NGUYÊN
ThS. NGUYỄN ĐĂNG KHOA
: CAO THỊ HUYỀN SA
LÊ HẢI ĐƢỜNG
: CNPM02
: 02
: 2007-2012

TP. Hồ Chí Minh, tháng 02 năm 2012
1

Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên


ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


2

LỜI CẢM ƠN

Nhóm thực hiện xin đƣợc cảm ơn thầy Vũ Thanh Nguyên và thầy Nguyễn
Đăng Khoa vì đã hƣớng dẫn, tìm hƣớng đi cho nhóm trong suốt quá trình thực hiện
khóa luận.
Xin cảm ơn các thầy cô trong khoa Công nghệ phần mềm đã cung cấp cho
chúng em những kiến thức quý báu để hoàn thành khóa luận.
Xin cảm ơn các thành viên lớp CNPM02, đã hỗ trợ nhóm trong thời gian thực
hiện khóa luận, giúp đỡ nhóm thực hiện tìm kiếm một số tài liệu và là nguồn ủng
hộ tinh thần cho nhóm.

Nhóm thực hiện:
Cao Thị Huyền Sa
Lê Hải Đường

2

Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng



3

NHẬN XÉT
(Của giảng viên hƣớng dẫn)
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................

....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
3

Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


4

NHẬN XÉT
(Của giảng viên phản biện)
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................

....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
4

Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


5


TÓM TẮT KHÓA LUẬN
Một workflow bao gồm một chuỗi các bƣớc đƣợc kết nối. Nhấn mạnh là
trên mô hình flow, nơi mà mỗi bƣớc tiếp theo bƣớc trƣớc đó mà không có sự
chậm trễ hay khoảng cách và kết thúc ngay trƣớc khi bƣớc tiếp theo có thể bắt
đầu. Nó là một mô tả của một chuỗi các hoạt động, đƣợc khai báo là work của
một ngƣời, một nhóm ngƣời, một tổ chức của nhân viên, hoặc một hoặc nhiều cơ
chế đơn giản hoặc phức tạp. Workflow có thể đƣợc xem nhƣ là sự trừu tƣợng của
một công việc thực tế.
Trong công nghệ phần mềm, một Kiến Trúc Hƣớng Dịch Vụ (SOA) là một
tập hợp các nguyên tắc và phƣơng pháp thiết kế và phát triển phần mềm trong
form của các services tƣơng thích. Các web services có thể thực hiện một kiến
trúc hƣớng dịch vụ. Các web services làm cho các building-blocks chức năng có
thể truy cập qua các giao thức Internet tiêu chuẩn độc lập với các nền tảng và với
các ngôn ngữ lập trình. Các Web Services mở ra khả năng có các workflow đầy
đủ chạy tự động khi các ứng dụng chuyển thành các web services.
Các implementors thƣờng xây dựng các SOAs bằng cách sử dụng các
chuẩn dịch vụ web (ví dụ, SOAP) đã đƣợc sự chấp nhận rộng rãi trong ngành
công nghiệp sau khi giới thiệu Version 1.2 từ W3C (World Wide Web
Consortium) in 2003. Những chuẩn này (còn gọi là các đặc tả dịch vụ Web) cũng
cung cấp khả năng tƣơng tác cao hơn và một số bảo vệ từ việc khóa các phần
mềm của nhà cung cấp độc quyền. Tuy nhiên, ngƣời ta có thể sử dụng bất kỳ công
nghệ dựa trên service nhƣ Jini, CORBA hoặc REST.
Một số công cụ thiết kế workflow (BPEL, Windows Workflow
Foundation) có khả năng làm việc với web service bằng cách cho phép chỉ định
một web service cho một workflow step. Tuy nhiên, những công cụ này thiếu khả
năng tối ƣu hóa workflow hoặc khả năng đề cử các web services tốt nhất có thể
phù hợp cho mỗi bƣớc. Đó là bởi vì những công cụ này không giữ các thông tin
về cách web services tồn tại và sử dụng chúng trong quá trình thiết kế.
Khóa luận này tìm hiểu một giải pháp để hỗ trợ quá trình thiết kế workflow
với khả năng phát hiện và tối ƣu hóa các thành phần của các web services.


5

Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


6
ABSTRACT
A workflow consists of a sequence of concatenated (connected) steps.
Emphasis is on the flow paradigm, where each step follows the precedent without
delay or gap and ends just before the subsequent step may begin. It is a depiction
of a sequence of operations, declared as work of a person, a group of persons, an
organization of staff, or one or more simple or complex mechanisms. Workflow
may be seen as any abstraction of real work.
In software engineering, a Service-Oriented Architecture (SOA) is a set of
principles and methodologies for designing and developing software in the form
of interoperable services. Web services can implement a service-oriented
architecture. Web services make functional building-blocks accessible over
standard Internet protocols independent of platforms and programming languages.
Web Services opens the ability to have the full workflow run automatically when
applications turn into web services.
Implementors commonly build SOAs using web services standards (for
example, SOAP) that have gained broad industry acceptance after
recommendation of Version 1.2 from the W3C (World Wide Web Consortium) in
2003. These standards (also referred to as Web service specifications) also
provide greater interoperability and some protection from lock-in to proprietary

vendor software. One can, however, implement SOA using any service-based
technology, such as Jini, CORBA or REST.
Some of workflow designing tools (BPEL, Windows Workflow
Foundation) have ability to work with web service by allow assigning a web
service to a workflow step. Howerver, these tools lack the ability to optimize the
workflow or recommend the best web services that could be suitable for each
step. It is because these tools don't keep the information about the existed web
services and using them in the designing process.
This thesis learns a solution to support the workflow designing process
with the ability to discovery and optimize the composition of web services.

6

Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


7

MỞ ĐẦU
Web ngữ nghĩa, hay còn gọi là thế hệ Web 3.0 là một lĩnh vực hoàn toàn
mới mẻ, đang cần có những đầu tƣ nghiên cứu nghiêm túc để có thể thực sự đƣa
web 3.0 trở thành thực tế và áp dụng rộng rãi, để tận dụng đƣợc các ƣu điểm lớn
của chúng mà web 2.0 đã trở nên già cỗi và khó lòng quản lý.
Một trong số những khía cạnh cần đƣợc nghiên cứu trong lĩnh vực web
ngữ nghĩa là việc sử dụng ontology matching để phối hợp tối ƣu các dịch vụ web
ngữ nghĩa, phục vụ cho việc tái sử dụng tài nguyên sẵn có trong môi trƣờng web

ngữ nghĩa trong việc xây dựng website theo hƣớng dịch vụ.
Với giới hạn về thời gian và kinh nghiệm nghiên cứu, nhóm sinh viên
quyết định thực hiện đề tài nghiên cứu tìm hiểu về các khái niệm trong quá trình
kết hợp các dịch vụ web ngữ nghĩa và các công cụ hỗ trợ đã có hiện nay. Qua đó,
xây dựng và phát triển cho riêng mình giải thuật mới trong việc matching và khai
phá các dịch vụ web ngữ nghĩa, phục vụ cho quá trình thực hiện tạo nên một công
cụ thực tế nếu phát triển khóa luận về sau.

7

Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


8

MỤC LỤC
Chƣơng 1: GIỚI THIỆU ĐỀ TÀI .......................................................................... 12
1.1.

Mục tiêu – giới hạn của đề tài ................................................................. 12

1.1.1.

Mục tiêu ........................................................................................... 12

1.1.2.


Giới hạn ........................................................................................... 12

1.2.

Kết quả tóm lƣợc của đề tài .................................................................... 12

1.3.

Cấu trúc khóa luận .................................................................................. 12

Chƣơng 2: KIẾN THỨC CƠ BẢN ....................................................................... 14
2.1. Services Orient Architecture ...................................................................... 14
2.1.1. Giới thiệu công nghệ ........................................................................... 14
2.1.2. Đặc điểm của SOA .............................................................................. 17
2.1.3. Ƣu và khuyết điểm của SOA ............................................................... 20
2.2. Web Service ................................................................................................ 20
2.2.1. Giới thiệu công nghệ ........................................................................... 20
2.2.3. Các thành phần của dịch vụ web ......................................................... 22
2.2.4. Ƣu và khuyết điểm .............................................................................. 30
Chƣơng 3: Ontoglogy – CƠ SỞ LÝ THUYẾT ..................................................... 32
3.1. Description Logic ....................................................................................... 32
3.1.1. Giới thiệu ............................................................................................. 32
3.1.2. Cú pháp Description Logic .................................................................. 32
3.1.3. Ngữ nghĩa của Description Logic ........................................................ 33
3.2. Ontology ..................................................................................................... 35
3.2.1. Ontology là gì ...................................................................................... 35
3.2.2. Các thành phần của ontology............................................................... 35
3.2.3. Phân loại Ontology .............................................................................. 36
3.2.5. Ví dụ .................................................................................................... 39

3.3. Semantic Web ............................................................................................. 40
3.3.1. Giới thiệu Semantic Web..................................................................... 40
3.3.2. RDF(S) ................................................................................................. 42
3.3.3. OWL(S) ............................................................................................... 43
3.4. Dịch vụ web ngữ nghĩa (Semantic Web Service)....................................... 44
3.4.1. Giới thiệu ............................................................................................. 44
3.4.2. Kiến trúc Semantic Web Service ......................................................... 46
3.5. Web Service Annotation Ontology............................................................. 46
8

Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


9
3.5.1. OWL-S ................................................................................................. 46
3.5.2. WSMO ................................................................................................. 47
3.5.3. WSDL-S .............................................................................................. 48
3.5.4. SAWSDL ............................................................................................. 49
3.5.5

So sánh giữa OWL-S, WSMO, WSDL-S, SAWSDL ..................... 51

Chƣơng 4: KHAI PHÁ SEMANTIC WEB SERVICE ......................................... 53
4.1. Kiến trúc (Architecture) .............................................................................. 53
4.1.2. Kiến trúc Khai phá Dịch vụ web (Web Service Discovery) ............... 53
4.2. Phƣơng pháp – Giải thuật ........................................................................... 59

4.2.1. Định nghĩa Matchmaking .................................................................... 59
4.2.2. Degree of Match (DoM) ...................................................................... 60
4.2.3. Các hƣớng tiếp cận Matchmaking ....................................................... 61
4.3. Các công cụ Matchmaking – Các công trình liên quan .............................. 70
4.3.1. OWL-S/UDDI Matchmaker (OWL-S/UDDIM) ................................. 70
4.3.2. Hybrid OWL-S Web Service Matchmaker (OWLS-MX)................... 76
4.3.3. METEOR-S Web Service Discovery Infrastructure (MWSDI) –
Lumina ........................................................................................................... 79
4.3.4. TUB OWL-S Matcher (OWLSM) ....................................................... 83
Chƣơng 5: CÁC KHÁI NIỆM TRONG VIỆC XÂY DỰNG GIẢI THUẬT PHỤC
VỤ KHAI PHÁ DỊCH VỤ WEB NGỮ NGHĨA .................................................. 86
5.1. Giới thiệu .................................................................................................... 86
5.2. Ví dụ: .......................................................................................................... 87
5.3. Các tiêu chí đánh giá dịch vụ ...................................................................... 90
5.4. Quá trình lựa chọn dịch vụ ......................................................................... 91
Chƣơng 6: KẾT LUẬN ......................................................................................... 93
6.1. Tổng kết ...................................................................................................... 93
6.2. Những đóng góp của đề tài ......................................................................... 94
6.3. Hƣớng phát triển ......................................................................................... 94
DANH MỤC TÀI LIỆU THAM KHẢO .............................................................. 95

9

Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng



10
DANH MỤC CÁC BẢNG, SƠ ĐỒ, HÌNH
Danh mục hình
Hình 2.1. Mô hình trừu tƣợng Kiến trúc hƣớng dịch vụ SOA ................................. 5
Hình 2.2. Mô hình hoạt động của SOA .................................................................... 6
Hình 2.3. Mô hình hoạt động của Web Service...................................................... 11
Hình 2.4: Các thành phần của Web service ............................................................ 12
Hình 2.5: Mô hình gửi nhận thông điệp qua SOAP ............................................... 14
Hình 2.6: Cấu trúc của một SOAP message ........................................................... 15
Hình 2.7: Cấu trúc WSDL ...................................................................................... 16
Hình 3.1. Phân loại ontology theo chủ đề của sự phân hóa .................................... 26
Hình 3.2. Phân loại Ontology dựa trên mức độ tổng quát ...................................... 28
Hình 3.3. Cấu trúc Semantic web ........................................................................... 30
Hình 3.4. Cấu trúc dịch vụ web ngữ nghĩa ............................................................. 34
Hình 3.5. Mô hình OWL-S ..................................................................................... 35
Hình 3.6. Mô hình WSMO ..................................................................................... 36
Hình 3.7. Mô hình tài liệu WSDL-S ...................................................................... 37
Hình 3.8. Mô hình SAWSDL ................................................................................. 38
Hình 3.9. Tập dữ liệu từ thế giới thực .................................................................... 40
Hình 4.1. Kiến trúc khai phá dịch vụ web ngữ nghĩa ............................................ 41
Hình 4.2. Ví dụ về OWL-S SAO ........................................................................... 43
Hình 4.3. Kiến trúc tập trung I ............................................................................... 44
Hình 4.4. Kiến trúc tập trung II ............................................................................. 45
Hình 4.5. Kiến trúc tập trung .................................................................................. 46
Hình 4.6. Cấu trúc của ontology trƣớc (a) và sau (b) khi thêm yêu cầu Q............. 51
Hình 4.7. Tóm tắt giải thuật trong cách tiếp cận IV ............................................... 52
Hình 4.8. Biểu diễn dịch vụ trong bảng 4.7 ........................................................... 54
Hình 4.9. Vehicle ontology.................................................................................... 58
Hình 4.10: Cách xác định mức DoM ...................................................................... 58
Hình 4.11. Kiến trúc UDDI/OWL-S Registry ....................................................... 58

Hình 4.12: Ánh xạ giữa OWL-S Profile và UDDI ................................................. 60
Hình 4.13: Màn hình tùy chọn của OWLS-MX ..................................................... 64
10Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


11
Hình 4.14. Kiến trúc Lumina - Semantic Web Service Discovery ........................ 68
Hình 4.15: Mô hình kết hợp kết quả Matching ...................................................... 69
Hình 5.1. Domain ontology trong dịch vụ giao thức ăn tại nhà ............................ 74
Hình 5.2. Domain ontology cho Thức ăn Trung Quốc ........................................... 75
Hình 5.3. Một ví dụ về nguyên tắc phân loại QoS ................................................. 78
Danh mục bảng
Bảng 2.1. Các thành phần của tài liệu WSDL ........................................................ 17
Bảng 3.1 Ba ngôn ngữ biểu diễn dịch vụ web đƣợc W3C đệ trình ........................ 39
Bảng 4.1. Một số khái niệm thƣờng gặp ................................................................ 48
Bảng 4.2: Giá trị các cấp độ Match theo output ..................................................... 49
Bảng 4.3: Tóm tắt giải thuật trong cách tiếp cận I ................................................. 50
Bảng 4.4. Tóm tắt giải thuật trong cách tiếp cận II ................................................ 50
Bảng 4.5. Tóm tắt giải thuật trong cách tiếp cận IV ............................................... 52
Bảng 4.6. Tóm tắt giải thuật trong cách tiếp cận V ................................................ 53
Bảng 4.7. Ví dụ về các khai báo dịch vụ ............................................................... 54
Bảng 4.8. Bảng so sánh các hƣớng tiếp cận ........................................................... 56
Bảng 4.9: Các mức DoM trong OWLSM ............................................................... 70

11Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa


Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


12
Chƣơng 1: GIỚI THIỆU ĐỀ TÀI
1.1.

Mục tiêu – giới hạn của đề tài
1.1.1. Mục tiêu

Đề tài nghiên cứu các khái niệm trong web ngữ nghĩa, mô hình kiến trúc
hƣớng dịch vụ SOA, và quá trình kết hợp và tối ƣu các dịch vụ web ngữ nghĩa, và
các giải thuật, công cụ phục vụ việc kết hợp và tối ƣu các dịch vụ web trong quá
trình thiết kế workflow.
Với công trình nghiên cứu này, hi vọng sẽ đóng góp phần nào về việc đƣa
các khái niệm về web 3.0 trở nên gần gũi và quen thuộc hơn với công nghệ hiện
tại.
1.1.2. Giới hạn
Đề tài giới hạn trong việc nghiên cứu sâu về các khái niệm có liên quan:
Mô hình kiến trúc hƣớng dịch vụ (SOA), dịch vụ web (Web Service), web ngữ
nghĩa (Semantic Web) và dịch vụ web ngữ nghĩa (Semantic Web Service), Lôgic
mô tả (Description Logic), Ontology.
Dựa trên những khái niệm đã nghiên cứu, nhóm thực hiện phân tích, so
sánh các công cụ phục vụ việc khai phá và kết hợp các dịch vụ web với SOA. Từ
đó, xây dựng giải thuật mới phục vụ quá trình này.
1.2.

Kết quả tóm lƣợc của đề tài


Kết quả trƣớc mắt của đề tài là một tài liệu phục vụ nghiên cứu các vấn đề
liên quan.
Ngoài ra, hƣớng phát triển của đề tài là xây dựng một giải thuật mới phục
vụ cho việc tham khảo và tạo nền tảng để xây dựng một công cụ mới, nếu đề tài
đƣợc phát triển lên.
1.3.

Cấu trúc khóa luận
Khóa luận đƣợc chia thành 5 chƣơng:
-

Chƣơng 1: Giới thiệu lý do thực hiện đề tài, cùng các mục tiêu và giới
hạn đƣa ra. Mục tiêu của chƣơng một là khái quát những nguyên nhân
dẫn đến xây dựng đề tài và những kết quả mà đề tài đạt đƣợc.

-

Chƣơng 2: Trình bày các kiến thức nền tảng của đề tài: Kiến trúc hƣớng
dịch vụ, Web Service. Chƣơng hai cung cấp những nền tảng mà những
khái niệm cơ sở đƣợc phát triển và dựa vào. Mục tiêu của chƣơng hai là

12Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


13

giúp cho các phần trình bày sau đƣợc rành mạch, dễ hiểu hơn, đồng
thời là một nguồn tài liệu nghiên cứu cho những độc giả quan tâm.
-

Chƣơng 3: Trình bày cơ sở lý thuyết về ontology và web ngữ nghĩa. Về
ontology, chúng tôi đƣa ra các khái niệm về ontology, phân loại các
ontology đƣợc W3C đƣa ra và công nhận, đồng thời diễn giải ngữ nghĩa
trong ontology qua một ví dụ cụ thể. Về web ngữ nghĩa, chƣơng 3 giới
thiệu về web ngữ nghĩa (công nghệ, kiến trúc, ngôn ngữ…) và các khái
niệm cao hơn nhƣ: dịch vụ web ngữ nghĩa, web service annotation
ontology.

-

Chƣơng 4: Các kiến thức cơ bản về quá trình khai phá dịch vụ web ngữ
nghĩa: giới thiệu, kiến trúc, các hƣớng tiếp cận hiện có của quá trình và
phân tích, nhận xét các công cụ khai phá hiện nay.

-

Chƣơng 5: Trình bày các khái niệm trong việc xây dựng giải thuật phục
vụ cho khai phá dịch vụ web ngữ nghĩa. Đây là phần chính của khóa
luận, dựa trên các chƣơng cung cấp các kiến thức trƣớc.

-

Chƣơng 6: Kết luận, tổng kết những điều làm đƣợc của đề tài, những
điều chƣa làm đƣợc và hƣớng phát triển.

13Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên

ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


14
Chƣơng 2: KIẾN THỨC CƠ BẢN
2.1. Services Orient Architecture
2.1.1. Giới thiệu công nghệ
2.1.1.1. SOA là gì?
SOA là viết tắt của Service Oriented Architecture (kiến trúc hƣớng dịch
vụ). Nhƣ tên gọi của mình, SOA là một qui trình, hay hƣớng tiếp cận việc xây
dựng, thiết kế, tích hợp phần mềm hay hệ thống phần mềm bằng cách khai phá và
kết hợp các module, đóng vai trò là các “dịch vụ” có tính “kết nối mềm dẻo” và
tái sử dụng. Mỗi dịch vụ thực hiện một nghiệp vụ cố định và đƣợc xem là những
thành phần tạo nên ứng dụng. Các dịch vụ sẽ giao tiếp với nhau qua một ngôn ngữ
chung và đƣợc kết hợp qua mạng. Nói khái quát hơn, SOA là một tổ hợp các dịch
vụ đƣợc khai phá và kết hợp để xây dựng các phần mềm, chức năng hoặc hệ
thống.

14Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


15


Hình 2.1 Mô hình trừu tƣợng Kiến trúc hƣớng dịch vụ SOA
Kiến trúc hƣớng dịch vụ SOA gồm 3 lớp dịch vụ:
- Application Service Layer: gồm các dịch vụ ứng dụng
- Domain Service Layer
- Enterprise Service Layer.

15Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


16
2.1.1.2. Hoạt động của mô hình SOA
Kiến trúc SOA hoạt động dựa vào ba thành phần chính: Service Registry,
Service Provider và Service Consumer.

Hình 2.2. Mô hình hoạt động của SOA

- Service Provider: Cung cấp các service phục vụ cho một nhu cầu nào
đó. Nhiệm vụ của Service Provice là chứa các dịch vụ, đƣa chúng đến
Service Register với các thông tin đầy đủ của service, phục vụ cho
user (service consumer) .User (service consumer) 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. Họ
chỉ cần quan tâm dịch vụ đó là gì.
- Serive Consumer: khách hàng dịch vụ hay những user sử dụng
service đƣợc cung cấp bởi Service Provider. Nhiệm vụ của Service
Consumer là tìm kiếm trong Service Registry dịch vụ thích hợp để
thực thi một nghiệp vụ đƣợc đƣa ra.

- Service Registry: Nơi lƣu trữ thông tin về các service 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.

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 (resource, performance,
giá cả dịch vụ...) vào Service Registry. Service Consumer khi có nhu cầu về một
16Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


17
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.1.2. Đặc điểm của SOA
2.1.2.1. Nguyên tắc cơ bản của mô hình SOA
SOA tìm cách giải quyết một số vấn đề theo cách nhìn lấy ứng dụng làm trung
tâm. Có thể tóm gọn những phát biểu đó theo các nguyên lý nhƣ sau:
-

Ứng dụng phải mở ra khả năng cho phép các ứng dụng mới hoặc ứng dụng

đang tồn tại có thể sử dụng đƣợc. Nó cũng phải có khả năng kết nối tới các
dịch vụ đƣợc đƣa ra bởi các ứng dụng khác để tạo thành các dịch vụ cao
cấp hơn hay còn gọi là ứng dụng tổ hợp.

-

Sự khác biệt về công nghệ không thành vấn đề và khả năng tƣơng tác trở
thành mục tiêu then chốt.

-

Các chuẩn mở phải đƣợc thông qua để cho phép tích hợp giữa các doanh
nghiệp. Phối hợp tiến trình nghiệp vụ giữa nhiều nhà cung cấp, nhiều đối
tác thậm chí có thể với cả khách hàng.

-

Phải chú ý tới việc quản lý và và đảm bảo khả năng có thể quản trị của hệ
thống để đảm bảo tính linh hoạt do ba nguyên tắc đầu tiên không bị xáo
trộn và xung đột với nhau.

Nói cách khác, SOA nhấn mạnh việc hạ thấp các rào cản truyền thống tới khả
năng tái sử dụng của ứng dụng. Tôn trọng nguyên tắc thiết kế này của SOA sẽ
giải quyết đƣợc bài toán lớn về vấn đề tích hợp cũng nhƣ bảo trì hệ thống phần
mềm đang là thách thức đối với các nhà phát triển công nghệ thông tin trong giai
đoạn hiện nay.
Dựa trên nguyên lý, hệ thống SOA có những tính chất cơ bản. Để có thể xem
xét hoạt động và xây dựng đƣợc hệ thống thì việc hiểu rõ tính chất của hệ thống
đóng vai trò rất quan trọng.


17Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


18
2.1.2.2. Các tính chất của SOA
Bởi đặc trƣng của kiến trúc và hoạt động, mô hình SOA có các tính chất
đặc trƣng sau:
 Kết nối lỏng lẻo
Vấn đề kết nối nói tới một số ràng buộc giữa các module lại với nhau. Có 2
loại kết nối là lỏng lẻo và chặt chẽ. Các module có tính chất kết nối lỏng lẻo có
một số ràng buộc đƣợc mô tả rõ ràng trong khi các module có tính kết nối chặt lại
có nhiều ràng buộc không thể biết trƣớc. Hầu nhƣ mọi kiến trúc phần mềm đều
hƣớng đến tính kết nối lỏng lẻo giữa các module. Mức độ kết nối của hệ thống
ảnh hƣởng trực tiếp đến khả năng chỉnh sửa hệ thống. Kết nối càng chặt bao nhiêu
thì có nhiều thay đổi chỉnh sửa khi có sự thay đổi nào đó xảy ra. Mức độ kết nối
tăng dần khi bên sử dụng dịch vụ cần biết nhiều thông tin ngầm định của bên
cung cấp dịch vụ để sử dụng dịch vụ đƣợc cung cấp. Nghĩa là nếu bên sử dụng
dịch vụ biết vị trí và chi tiết định dạng dữ liệu của bên cung cấp dịch vụ thì quan
hệ sẽ càng trở nên chặt chẽ. Ngƣợc lại, nếu bên sử dụng dịch vụ không cần biết
mọi thông tin chi tiết của dịch vụ trƣớc khi triệu gọi nó thì quan hệ giữa 2 bên
càng có tính lỏng lẻo.
Kết nối lỏng lẻo làm cho sự phụ thuộc ở mức tối thiểu. Khi đó, những sự
thay đổi sẽ có ảnh hƣởng ít nhất tới hệ thống và hệ thống vẫn có thể hoạt động khi
có thành phần nào đó bị hƣ hỏng. Tối thiểu hóa sự phụ thuộc giúp hệ thống linh
hoạt, và ít xảy ra sự cố.
Tính kết nối lỏng lẻo giúp gỡ bỏ những ràng buộc điều khiển giữa những

hệ thống đầu cuối. Mỗi hệ thống có thể tự quản lý độc lập nhằm tăng năng xuất,
khả năng mở rộng và khả năng đáp ứng cao. Những thay đổi cài đặt cũng đƣợc
che dấu đi. Tính chất kết nối lỏng lẻo đem đến sự độc lập giữa bên cung cấp và
bên sử dụng nhƣng nó đòi hỏi các giao diện phải theo chuẩn và cần một thành
phần trung gian quản lý, trung chuyển yêu cầu giữa các hệ thống đầu cuối.


Tái sử dụng dịch vụ

Bởi vì các dịch vụ đƣợc cung cấp trên môi trƣờng 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à sử dụng lại. 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 giao diện 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 tốc độ 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ụ đƣợc 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 dịch vụ chia sẻ cơ sở hạ tầng.

18Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


19


Quản lý chính sách


Tập các chính sách là tập tất cả các qui tắc chung mà mọi thành phần trong
hệ thống đều phải tuân thủ. 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 chính sách. Các chính sách
cần đƣợc quản lý và áp dụng cho mỗi dịch vụ cả trong quá trình thiết kế và trong
thời gian triển khai.
Việc đó làm tăng khả năng tạo ra các dịch vụ có đặc tính tái sử dụng. Bởi
vì các chính sách đƣợc thiết kế tách biệt, và tùy vào mỗi ứng dụng nên giảm tối đa
các thay đổi phần mềm. Nếu không sử dụng các chính sách, thì các nhân viên phát
triển phần mềm, nhóm điều hành và nhóm hỗ trợ phải làm việc với nhau trong
suốt thời gian phát triển để cài đặt và kiểm tra những chính sách. Ngƣợc lại, nếu
sử dụng các chính sách, những nhân viên phát triển phần mềm chỉ cần tập trung
vào quy trình nghiệp vụ trong khi nhóm điều hành và nhóm hỗ trợ tập trung vào
các luật kết hợp.


Tự động dò tìm và ràng buộc động

SOA hỗ trợ khái niệm khai thác dịch vụ (service discovery). 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ề một dịch vụ nào thỏa
yêu cầu tìm kiếm. Ví dụ, một hệ thống chuyển khoản, khách hàng yêu cầu một
registry tìm tất cả các dịch vụ có khả năng kiểm tra thẻ tín dụng. Registry trả về
một tập các danh mục thỏa mãn yêu cầu. Các mục đó chứa thông tin về dịch vụ,
bao gồm cả chi phí giao dịch. Bên sử dụng sẽ chọn một dịch vụ có phí giao dịch
thấp nhất trong danh sách các dịch vụ trả về, kết nối đến nhà cung cấp dịch vụ
dựa trên thông tin địa chỉ registry đã cung cấp để sử dụng dịch vụ kiểm tra thẻ tín
dụng. Trong phần mô tả dịch vụ kèm theo đã có tất cả các tham số cần thiết dùng
để thực thi dịch vụ, bên sử dụng chỉ cần định dạng dữ liệu yêu cầu đúng theo mô
tả và gửi đi. Nhà cung cấp dịch vụ sẽ thực thi kiểm tra thẻ tín dụng và trả về một

thông điệp có định dạng đúng nhƣ trong phần mô tả dịch vụ. Mối ràng buộc duy
nhất giữa bên cung cấp và bên sử dụng là bản hợp đồng đƣợc cung cấp bởi
registry trung gian. Mối ràng buộc này là ràng buộc trong thời gian chạy. Tất cả
thông tin cần thiết về dịch vụ đƣợc lấy về và sử dụng trong khi chạy. Vậy với
SOA, bên sử dụng dịch vụ không cần biết định dạng của thông điệp yêu cầu và
thông điệp trả về, cũng nhƣ địa chỉ dịch vụ cho đến khi cần.
 Khả năng tự hồi phục
Với kích cỡ và độ phức tạp của những hệ thống phân tán ngày nay, khả
năng phục hồi của một hệ thống sau khi bị sự cố là một yếu tố rất quan trọng. 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 lỗi mà không
cần sự can thiệp của con ngƣời.
Độ tin cậy là mức độ đo khả năng của một hệ thống xử lý tốt nhƣ thế nào
trong tình trạng hỗn loạn. Trong SOA, các dịch vụ luôn có thể hoạt động hay
19Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


20
ngừng hoạt động bất cứ lúc nào, nhất là đối với những áp 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 phụ thuộc vào khả năng phục hồi
của phần cứng sau khi bị lỗi. Hạ tầng mạng phải cho phép các kết nối động từ
nhiều hệ thống khác nhau kết nối đến trong khi chạy. Một khía cạnh khác ảnh
hƣởng đến độ tin cậy là kiến trúc mà dựa trên đó những ứng dụng đƣợc xây dựng.
Một kiến trúc hỗ trợ kết nối và thực thi động sẽ có khả năng tự phục hồi hơn một
hệ thống không hỗ trợ những tính năng trên.
Ngoài ra, những hệ thống dựa trên dịch vụ yêu cầu tách biệt giữa giao diện
và cài đặt, nên có thể có nhiều cài đặt khác nhau cho cùng một giao diện. Nếu một

thể hiện service nào đó không hoạt động thì một thể hiện khác vẫn có thể hoàn tất
giao dịch cho khách hàng mà không bị ảnh hƣởng gì. Khả năng này chỉ có đƣợc
khi client tƣơng tác với giao diện của dịch vụ chứ không tƣơng tác trực tiếp cài
đặt của dịch vụ. Đây là một trong những tính chất cơ bản của hệ thống hƣớng dịch
vụ (SOA).
2.1.3. Ƣu và khuyết điểm của SOA
2.1.3.1. Ƣu điểm
 Hệ thống uyển chuyển và lâu dài. Dễ dàng và nhanh chóng tạo ra các
Bussiness process từ các service đã có.
 Khả năng tƣơng tác của các service khá cao.
2.1.3.2. Khuyết điểm
 Hệ thống phức tạp.
 Khó miêu tả dữ liệu không cấu trúc trong header của message
2.2. Web Service
2.2.1. Giới thiệu công nghệ
Theo định nghĩa của W3C (World Wide Web Consortium), dịch vụ Web là
một hệ thống phần mềm đƣợc thiết kế để hỗ trợ khả năng tƣơng tác giữa các ứng
dụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự
gắn kết của nó đƣợc mô tả bằng XML. Dịch vụ Web là tài nguyên phần mềm có
thể xác định bằng địa chỉ URL, thực hiện các chức năng và đƣa ra các thông tin
ngƣời dùng yêu cầu. Một dịch vụ Web đƣợc tạo nên bằng cách lấy các chức năng
và đóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn thấy và có thể truy
cập đến những dịch vụ mà nó thực hiện, đồng thời có thể yêu cầu thông tin từ
dịch vụ Web khác. Nó bao gồm các mô-đun độc lập cho hoạt động của khách
hàng và doanh nghiệp và bản thân nó đƣợc thực thi trên server.
20Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng



21
Trƣớc hết, có thể nói rằng ứng dụng cơ bản của Dịch vụ Web là tích hợp
các hệ thống và là một trong những hoạt động chính khi phát triển hệ thống.
Trong hệ thống này, các ứng dụng cần đƣợc tích hợp với cơ sở dữ liệu (CSDL) và
các ứng dụng khác, ngƣời sử dụng sẽ giao tiếp với CSDL để tiến hành phân tích
và lấy dữ liệu. Trong thời gian gần đây, việc phát triển mạnh mẽ của thƣơng mại
điện tử và B2B cũng đòi hỏi các hệ thống phải có khả năng tích hợp với CSDL
của các đối tác kinh doanh (nghĩa là tƣơng tác với hệ thống bên ngoài - bên cạnh
tƣơng tác với các thành phần bên trong của hệ thống trong doanh nghiệp).
2.2.2. Hoạt động của dịch vụ web

Hình 2.3. Mô hình hoạt động của Web Service

Hoạt động của mô hình Web Service như sau:
-

Service Provider: Dùng Web Services Description Language (WSDL) để
mô tả dịch vụ mà mình có thể cung cấp và xuất bản (đăng ký) với Service
Broker (tƣơng tự với Service Registry trong SOA).

-

Service Broker: Lƣu trữ thông tin về các service đƣợc cung cấp bởi các
Service Provider. Cung cấp chức năng tìm kiếm hỗ trợ Service Requester
(Service Consumer trong SOA) trong việc xác định Service Provider phù
hợp. Thành phần chính của Service Broker là các kho lƣu trữ đƣợc mô tả
bởi Universal Discovery, Description, and Integration (UDDI).


21Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


22
-

Service Requester: Dùng WSDL để đặc tả nhu cầu sử dụng (loại service,
thời gian sử dụng, resource cần thiết, mức giá ...) và gởi cho Service
Broker. Bằng việc sử dụng UDDI và chức năng tìm kiếm của Service
Broker, Service Requester có thể tìm thấy Service Provider thích hợp.
Ngay sau đó, giữa Service Requester và Service Provider thiết lập kênh
giao tiếp sử dụng SOAP để thƣơng lƣợng giá cả và các yếu tố khác trong
việc sử dụng service.

Nhƣ vậy, sử dụng Web Service cho việc tích hợp SOA giúp ứng dụng đạt
đƣợc những mục tiêu theo nguyên lý SOA:
-

Thông qua các chuẩn công nghiệp. Các chuẩn này gồm Web Service với
các định nghĩa thành phần chuẩn công nghiệp cho XML.

-

Sử dụng đƣợc những phần mềm thƣơng mại đã xây dựng sẵn nhiều nhất có
thể. Phần mềm phải cung cấp các kênh giao tiếp (adapter) cho Web
service.


-

Đóng gói các ứng dụng cho phép kế thừa với giao diện đúng theo chuẩn
công nghệ chung. Các Web Service đều phải đƣợc sử dụng thông qua giao
diện này.

-

Sử dụng dữ liệu và tầng dữ liệu độc lập nằm giữa các ứng dụng để ẩn đi
cấu trúc dữ liệu bên dƣới. Mọi tƣơng tác với dữ liệu đều phải thông qua
Web Service.

2.2.3. Các thành phần của dịch vụ web
Nền tảng của các dich vụ web gồm các yếu tố: XML (eXtensible Markup
Language), SOAP (Simple Object Access Protocol), UDDI (Universal
Description, Discovery and Integration), WSDL (Web Services Description
Language).

22Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


23

Hình 2.4: Các thành phần của Web service



XML - eXtensible Markup Language
XML là một chuẩn mở do W3C đƣa ra và đƣợc phát triển từ SGML. XML

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, nó đƣợc
sử dụng để định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu
B2B.
Về hình thức, XML hoàn toàn có cấu trúc thẻ giống nhƣ ngôn ngữ HTML,
nhƣng không tuân theo một đặc tả quy ƣớc nhƣ HTML, ngƣời sử dụng hay các
chƣơng trình có thể quy ƣớc định dạng các tag XML để giao tiếp với nhau. Trong
khi HTML định nghĩa thành phần đƣợc hiển thị nhƣ thế nào thì XML lại định
nghĩa những thành phần đó chứa cái gì. Với XML, các thẻ có thể đƣợc lập trình
viên tự tạo ra trên mỗi trang web và đƣợc chọn là định dạng thông điệp chuẩn bởi
tính phổ biến và hiệu quả mã nguồn mở.
Do Web Service là sự kết hợp của nhiều thành phần khác nhau nên nó sử
dụng các tính năng và đặc trƣng của các thành phần đó để giao tiếp. Vì vậy XML
là công cụ chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây
dựng một Web Service, tất cả dữ liệu sẽ đƣợc chuyển sang định dạng thẻ XML.
Khi đó, các thông tin mã hóa sẽ hoàn toàn phù hợp với các thông tin theo chuẩn
của SOAP hoặc XML-RPC và có thể tƣơng tác với nhau trong một thể thống
nhất.
23Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


24
Ví dụ về tài liệu XML:

<?xml version="1.0" encoding = “UTF-8” ?>
<DOCUMENT>
<GREETING>
Xin Chào XML
</GREETING>
<MESSAGE>
Đây là chương trình XML đầu tiên
</MESSAGE>
</DOCUMENT>

Tài liệu XML chỉ chứa dữ liệu, không nhắc đến cách trình bày. Điều này
có ý nghĩa đó là một XML parser, không cần phải hiểu ý nghĩa của các thẻ. Nó chỉ
cần tìm các thẻ và xác định đây là một tài liệu XML hợp lệ vì trình duyệt không
cần phải hiểu ý nghĩa của các thẻ, nên ngƣời dùng có thể tạo ra các thẻ bất kì để
sử dụng.


SOAP (Simple Object Access Protocol)

Là một giao thức dựa trên XML để cho phép các ứng dụng trao đổi thông
tin qua HTTP, đƣợc thiết kế đơn giản và dễ mở rộng. Đơn giản, SOAP là một
giao thức để truy cập một Web Service, một giao thức truyền thông hay một định
dạng để gửi tin nhắn. Tất cả các thông điệp SOAP đều đƣợc mã hóa sử dụng
XML, cho nên không bị ràng buộc bởi bất kỳ ngôn ngữ lập trình nào hoặc công
nghệ nào. Vì những đặc trƣng này, nó không quan tâm đến công nghệ gì đƣợc sử
dụng để thực hiện miễn là ngƣời dùng sử dụng các message theo định dạng XML.
Tƣơng tự, service có thể đƣợc thực hiện trong bất kỳ ngôn ngữ nào, miễn là nó có
thể xử lý đƣợc những message theo định dạng XML.

Hình 2.5: Mô hình gửi nhận thông điệp qua SOAP

24Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


25
Bộ khung của một thông điệp SOAP bao gồm:
-

Protocol Header: Cho biết thông tin về các chuẩn giao thức đƣợc sử dụng.

-

SOAP Envelop: Phần chính của thông điệp. Thông tin chính của message
bao gồm:


SOAP Header: Chứa các SOAP header.



SOAP Body: Thông tin về name và data đƣợc đặc tả dƣới dạng
XML. Ngoài ra còn có trƣờng lỗi đƣợc dùng để gởi các web service
exception.

Hình 2.6: Cấu trúc của một SOAP message
Ví dụ:


<?xml version="1.0"?>
xmlns:soap=" />soap:encodingStyle=" /><soap:Header>
...
</soap:Header>
<soap:Body>
25Giảng viên hƣớng dẫn: PGS TS. Vũ Thanh Nguyên
ThS. Nguyễn Đăng Khoa

Sinh viên thực hiện: Cao Thị Huyền Sa
Lê Hải Đƣờng


×