1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lựa chọn dịch vụ Web theo Qos và ứng dụng

84 434 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lựa chọn dịch vụ Web theo QoS và ứng dụng
Tác giả Bùi Quang Huy
Người hướng dẫn TS. Nguyễn Mạnh Hùng
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Công nghệ Thông tin
Thể loại Đồ án tốt nghiệp đại học
Năm xuất bản 2011
Thành phố Hà Nội
Định dạng
Số trang 84
Dung lượng 3,61 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong những năm gần đây cùng với sự phát triển mạnh mẽ của môi trường Internet thì các ứng dụng triển khai trên nền Web ngày càng được phát triển rộng rãi và phong phú. Bên cạnh đó, là sự phát triển của nền kinh tế thị trường đã dần đặt ra nhu cầu áp dụng công nghệ thông tin vào trong các quy trình thương mại dần trở nên cấp thiết, giúp cho các tổ chức doanh nghiệp giải quyết công việc của mình. Sự ra đời của dịch vụ Web được coi là một công nghệ mang đến cách mạng trong tính toán phân tán mà cụ thể là thương mại điện tử với việc thay đổi cách thức hoạt động của các dịch vụ B2B(Business to Business) và B2C(Business to Customer). Giá trị cơ bản của dịch vụ Web dựa trên việc cung cấp các phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và hệ thống kế thừa. Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy trên những nền tảng khác nhau có thể sử dụng dịch vụ Web để chuyển đổi dữ liệu thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy tính. Bất kỳ lĩnh vực nào trong cuộc sống cũng có thể tích hợp với dịch vụ Web, đây là cách thức kinh doanh và làm việc có hiệu quả trong thời đại của truyền thông và trao đổi thông tin qua mạng. Từ đó, vấn đề chất lượng của dịch vụ Web Service đã trở thành một yếu tố quan trọng trong việc đánh giá sự thành công của các nhà cung cấp dịch vụ. Chất lượng dịch vụ quyết định đến khả năng sử dụng và hữu ích của dịch vụ, cả hai yếu tố này đều ảnh hưởng đến tính phổ biến của một dịch vụ Web.Nhằm giới thiệu một cách khái quát công nghệ Web Service, vấn đề chất lượng của dịch vụ Web Service để từ đó sử dụng thuật toán chuẩn hóa tối ưu giúp người dùng lựa chọn ra dịch vụ có chất lượng tốt nhất; em xin đi vào đề tài: “Sử dụng thuật toán chuẩn hóa tối ưu để lựa chọn dịch vụ Web theo QoS và ứng dụng trong dịch vụ đặt vé tàu”.Nội dụng của đồ án gồm những chương sau:Chương I: Công nghệ Web ServiceChương này tập trung trình bày khái quát về công nghệ Web Service, kiến trúc của Web Service, các công nghệ liên quan và hướng dẫn xây dựng một Web Service đơn giản.Chƣơng II: Lựa chọn Web Service dựa vào QoSChương này đi sâu vào vấn đề chất lượng dịch vụ Web Service, tập Ontology và từ vựng của QoS, cách hỗ trợ QoS cho Web Service và cuối cùng là thuật toán chuẩn hóa tối ưu để giúp lựa chọn dịch vụ Web theo QoS.Chƣơng 3: Xây dựng ứng dụng: Dịch vụ Đặt vé tàuChương này trình bày phân tích và thiết kế để xây dựng dịch vụ Đặt vé tàu, cũng như giới thiệu cách cài đặt và sử dụng các công cụ để có thể mô phỏng được hoạt động của Web Service, sử dụng Web Service trong ứng dụng và kết quả thực hiện cài đặt thuật toán.Kết luận: Đánh giá kết quả đạt đƣợc và hƣớng phát triển của đề tài

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN 1

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Hà Nội, tháng 12 /2011

Đề tài: “Sử dụng thuật toán chuẩn hóa tối ưu để lựa

chọn dịch vụ Web theo QoS và ứng dụng trong dịch

vụ đặt vé tàu”

Giảng viên hướng dẫn: TS NGUYỄN MẠNH HÙNG

Sinh viên thực hiện : BÙI QUANG HUY

Khóa : 2007- 2012

Hệ : Chính quy

Trang 2

KHOA CÔNG NGHỆ THÔNG TIN 1

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Hà Nội, tháng 12 /2011

Đề tài: “Sử dụng thuật toán chuẩn hóa tối ưu để lựa

chọn dịch vụ Web theo QoS và ứng dụng trong dịch

vụ đặt vé tàu”

Giảng viên hướng dẫn: TS NGUYỄN MẠNH HÙNG

Sinh viên thực hiện : BÙI QUANG HUY

Khóa : 2007- 2012

Hệ : Chính quy

Trang 3

ĐỀ TÀI ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Họ và tên sinh viên: BÙI QUANG HUY

2/ Nội dung chính của đồ án:

1 Công nghệ Web Service

2 Lựa chọn Web Service theo QoS

3 Xây dựng dịch vụ: Đặt vé tàu

3/ Ngày giao đồ án: 01/09/2011

4/ Ngày nộp đồ án : / /2011

(Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên)

TRƯỞNG KHOA

Trang 4

Trong những năm gần đây cùng với sự phát triển mạnh mẽ của môi trường Internet thì các ứng dụng triển khai trên nền Web ngày càng được phát triển rộng rãi

và phong phú Bên cạnh đó, là sự phát triển của nền kinh tế thị trường đã dần đặt ra nhu cầu áp dụng công nghệ thông tin vào trong các quy trình thương mại dần trở nên cấp thiết, giúp cho các tổ chức doanh nghiệp giải quyết công việc của mình Sự ra đời của dịch vụ Web được coi là một công nghệ mang đến cách mạng trong tính toán phân tán mà cụ thể là thương mại điện tử với việc thay đổi cách thức hoạt động của các dịch

vụ B2B(Business to Business) và B2C(Business to Customer) Giá trị cơ bản của dịch

vụ Web dựa trên việc cung cấp các phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và hệ thống kế thừa Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy trên những nền tảng khác nhau có thể sử dụng dịch vụ Web để chuyển đổi dữ liệu thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy tính Bất kỳ lĩnh vực nào trong cuộc sống cũng có thể tích hợp với dịch

vụ Web, đây là cách thức kinh doanh và làm việc có hiệu quả trong thời đại của truyền thông và trao đổi thông tin qua mạng Từ đó, vấn đề chất lượng của dịch vụ Web Service đã trở thành một yếu tố quan trọng trong việc đánh giá sự thành công của các nhà cung cấp dịch vụ Chất lượng dịch vụ quyết định đến khả năng sử dụng và hữu ích của dịch vụ, cả hai yếu tố này đều ảnh hưởng đến tính phổ biến của một dịch vụ Web

Nhằm giới thiệu một cách khái quát công nghệ Web Service, vấn đề chất lượng của dịch vụ Web Service để từ đó sử dụng thuật toán chuẩn hóa tối ưu giúp người

dùng lựa chọn ra dịch vụ có chất lượng tốt nhất; em xin đi vào đề tài: “Sử dụng thuật

toán chuẩn hóa tối ưu để lựa chọn dịch vụ Web theo QoS và ứng dụng trong dịch vụ đặt vé tàu”

Nội dụng của đồ án gồm những chương sau:

Chương I: Công nghệ Web Service

Chương này tập trung trình bày khái quát về công nghệ Web Service, kiến trúc của Web Service, các công nghệ liên quan và hướng dẫn xây dựng một Web Service đơn giản

Chương II: Lựa chọn Web Service dựa vào QoS

Chương này đi sâu vào vấn đề chất lượng dịch vụ Web Service, tập Ontology

và từ vựng của QoS, cách hỗ trợ QoS cho Web Service và cuối cùng là thuật toán chuẩn hóa tối ưu để giúp lựa chọn dịch vụ Web theo QoS

Chương 3: Xây dựng ứng dụng: Dịch vụ Đặt vé tàu

Chương này trình bày phân tích và thiết kế để xây dựng dịch vụ Đặt vé tàu, cũng như giới thiệu cách cài đặt và sử dụng các công cụ để có thể mô phỏng được hoạt động của Web Service, sử dụng Web Service trong ứng dụng và kết quả thực hiện cài đặt thuật toán

Kết luận: Đánh giá kết quả đạt được và hướng phát triển của đề tài

Trang 5

Em xin chân thành cảm ơn Khoa Công nghệ thông tin 1, Trường Học Viện Công Nghệ Bưu Chính Viễn Thông cơ sở phía Bắc đã tạo điều kiện tốt cho em thực hiện đề tài tốt nghiệp này

Em xin gửi lời cảm ơn sâu sắc nhất đến TS Nguyễn Mạnh Hùng, người thầy đã cho em định hướng và tận tình chỉ bảo em những ý kiến quý báu về công nghệ Web Service, các kiến thức về lựa chọn dịch vụ Web theo QoS Thầy đã giúp đỡ em tận tình

và đi cùng em trong suốt thời gian thực hiện đề tài này Thầy chỉ cho em cách tiếp cận, nghiên cứu và cách tìm ra những giải pháp cho vấn đề mắc phải

Em xin chân thành cảm ơn các thầy cô đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu; và cũng cảm ơn các bạn đã giúp đỡ em trong những năm học qua

Đề tài “Sử dụng thuật toán chuẩn hóa tối ưu để lựa chọn dịch vụ Web theo QoS

và ứng dụng trong dịch vụ đặt vé tàu” là một đề tài khá mới mẻ, mặc dù em đã cố

gắng hoàn thành trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Em mong nhận được sự cảm thông và tận tình chỉ bảo, góp ý của thầy cô và các bạn để đề tài có thể được mở rộng, nghiên cứu kỹ hơn

Trang 6

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Điểm: ……….………(bằng chữ: … ……… ….)

Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm đồ án tốt nghiệp?

…………, ngày tháng năm 20

CÁN BỘ- GIẢNG VIÊN HƯỚNG DẪN

(ký, họ tên)

Trang 7

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

…………, ngày tháng năm 20

CÁN BỘ- GIẢNG VIÊN PHẢN BIỆN

(ký, họ tên)

Trang 8

MỤC LỤC

MỤC LỤC i

Danh mục hình vẽ iii

Danh mục bảng iv

Chương I : CÔNG NGHỆ WEB SERVICE 1

1.1 Tổng quan về Web Service 1

1.1.1 Giới thiệu về Web Service 1

1.1.2 Đặc điểm của Web Service 4

1.1.3 Ưu và nhược điểm 4

1.2 Kiến trúc của Web Service 5

1.3 Các công nghệ của Web Service 8

1.3.1 XML 8

1.3.2 SOAP 10

1.3.3 WSDL 12

1.3.4 UDDI 15

1.4 Cách xây dựng một Web Service đơn giản 21

Chương II : LƯẠ CHỌN WEB SERVICE DỰA VÀO QOS 26

2.1 Tìm hiểu về QoS 27

2.1.1 Chất lượng dịch vụ Web Service 27

2.1.2 Các yêu cầu về QoS cho Web Service 27

2.2 Tập Ontology và từ vựng của QoS 29

2.2.1 Ontology và từ vựng 29

2.2.2 Mô hình lựa chọn theo QoS 31

2.3 Giải pháp có thể cho vấn đề chất lượng dịch vụ Web Service 34

2.3.1 Mở rộng UDDI 34

2.3.2 Mở rộng SOAP 34

2.3.3 Chứng thực chất lượng dịch vụ Web Service 35

2.4 Thuật toán chuẩn hóa tối ưu 37

2.4.1 Ví dụ 40

2.5 Đánh giá 42

Chương III : XÂY DỰNG ỨNG DỤNG: DỊCH VỤ ĐẶT VÉ TÀU 44

3.1 Bài toán 44

3.2 Khảo sát yêu cầu 45

3.2.1 Tài liệu khảo sát 45

3.2.1.1 Dữ liệu gốc 45

3.2.1.2 Dữ liệu mẫu 46

3.2.2 Khảo sát chi tiết 46

3.2.2.1 Hoạt động nghiệp vụ 46

3.2.2.2 Hệ thống mới 47

3.3 Phân tích và thiết kế 48

3.3.1 Pha phân tích 48

3.3.1.1 Danh sách tác nhân của hệ thống 48

3.3.1.2 Chức năng của hệ thống và kịch bản thực hiện chức năng 48

3.3.1.3 Tuần tự thực hiện các bước trong chức năng Đặt vé tàu 52

3.3.1.4 Xác định các lớp, quan hệ giữa các lớp 55

3.3.2 Pha thiết kế 56

Trang 9

3.3.2.1 Quan hệ giữa các lớp(Pha thiết kế) 56

3.3.2.2 Thiết kế CSDL dựa theo quan hệ giữa lớp 57

3.3.2.3 Các bước hoạt động của chức năng Đặt vé tàu 58

3.3.2.4 Biểu đồ trạng thái 59

3.3.2.5 Giao diện 59

3.4 Cài đặt 61

3.4.1 Cấu hình môi trường 61

3.4.1.1 Cấu hình AXIS 61

3.4.1.2 Cấu hình jUDDI 62

3.4.2 Tạo dịch vụ Web DatVeTau 64

3.4.3 Quảng bá dịch vụ Web DatVeTau 65

3.4.4 Giới thiệu ứng dụng Java mô phỏng việc sử dụng thuật toán chuẩn hóa tối ưu để lựa chọn dịch vụ Web theo QoS 66

3.4.5 Cách gọi các chức năng của dịch vụ Web từ Client (sử dụng ASP.Net) 68

KẾT LUẬN 70

TÀI LIỆU THAM KHẢO 72

Trang 10

Danh mục hình vẽ

Hình 1 1: Kiến trúc của Web Service 6

Hình 1 2: Cấu trúc của một thông điệp SOAP 10

Hình 1 3: Tham chiếu giữa các thành phần của WSDL 14

Hình 1 4: Ánh xạ Web Service WSDL sang UDDI 16

Hình 1 5: Giao diện khởi động của jUDDI 21

Hình 1 6: Giao diện thể hiện các API Inquiry và Publisher của jUDDI 21

Hình 1 7: Kết quả thực thi dịch vụ Web Calculator 25

Hình 2 1: QoS Ontology (WSMO) 30

Hình 2 2: Ontology và từ vựng của QoS 32

Hình 2 3: Lựa chọn dịch vụ theo QoS 32

Hình 2 4: Kiến trúc cho WS-QoS Broker 35

Hình 2 5: Xác định giá trị chất lượng phụ thuộc hasTendency 39

Hình 3 1: Dữ liệu gốc về chuyến Hà Nội-Sài Gòn 45

Hình 3 2: Dữ liệu gốc về chuyến Hà Nội-Đồng Đăng 45

Hình 3 3: Dữ liệu gốc về chuyến Hà Nội-Quán Triều 45

Hình 3 4: Dữ liệu mẫu về phiếu đặt vé 46

Hình 3 5: Biểu đồ UseCase của hệ thống 49

Hình 3 6: Tuần tự các bước trong chức năng Đặt vé tàu 53

Hình 3 7: Tuần tự các bước trong chức năng Đặt vé tàu với ngoại lệ chọn lại ghế 54

Hình 3 8: Quan hệ giữa các lớp 55

Hình 3 9: Quan hệ giữa các lớp trong pha thiết kế 56

Hình 3 10: Giải thích chi tiết các thành phần của từng lớp 57

Hình 3 11: Quan hệ giữa các bảng của cơ sở dữ liệu 58

Hình 3 12: Các bước hoạt động của chức năng Đặt vé tàu 58

Hình 3 13: Các trạng thái của đối tượng Ghế 59

Hình 3 14: Giao diện chức năng Đặt vé tàu 59

Hình 3 15: Giao diện khi lựa chọn Ga đi 60

Hình 3 16: Giao diện khi lựa chọn Ga đến 60

Hình 3 17: Giao diện khi chọn ngày đi sử dụng lịch 60

Hình 3 18: Giao diện hiển thị kêt quả tra cứu 60

Hình 3 19: Giao diện khi nhập thông tin cá nhân 60

Hình 3 20: Giao diện đặt vé thành công 61

Hình 3 21: Giao diện của phiếu đặt vé 61

Hình 3 22: Nội dung tập tin WSDL của dịch vụ Web DatVeTau 65

Hình 3 23: Giao diện hàm get_authToken của juddi 65

Hình 3 24: Giao diện hàm save_business của juddi 66

Hình 3 25: Giao diện hàm save_tModel của juddi 66

Hình 3 26: Giao diện hàm save_servcie của juddi 66

Hình 3 27: Ứng dụng Java áp dụng thuật toán chuẩn hóa tối ưu 68

Hình 3 28: Thêm Web Reference vào project 68

Hình 3 29: Thông điệp SOAP request và response khi ứng dụng sử dụng dịch vụ Web DatVeTau 69

Hình 3 30: Kết quả khi gọi hàm getChuyen() 69

Trang 11

Danh mục bảng

Bảng 1 1: Các thành phần của một thông điệp SOAP 11

Bảng 1 2: Các thành phần đặc tả giao diện của WSDL 13

Bảng 2 1: Dữ liệu về giá trị các thuộc tính chất lượng của từng dịch vụ 40

Bảng 3 1: Danh sách tác nhân của hệ thống 48

Bảng 3 2: Danh sách UseCase 48

Bảng 3 3: Kịch bản cho chức năng Đặt vé tàu 49

Bảng 3 4: Thông tin cấu hình User Variable 62

Trang 12

Chương I : CÔNG NGHỆ WEB SERVICE

Từ khi chiếc máy tính đầu tiên được phát minh cho tới nay, con người đã đạt được rất nhiều thành tựu lớn trong lĩnh vực công nghệ thông tin Và một thành tựu không thể không nhắc tới đó chính là công nghệ Web Có thể nói ngày 6/8/1911, là một ngày đáng nhớ bởi đó là thời điểm mã máy tính “non nớt” cho WWW được đăng trên alt.hypertext để mọi người có thể tải và tìm hiểu Cũng bắt đầu từ hôm ấy công nghệ Web được thế giới biết đến Trải qua một quá trình phát triển không lâu nhưng công nghệ Web đã có được những thành tựu của riêng mình với các thế hệ Web lần lượt ra đời Web Service hay còn được gọi là dịch vụ Web, là thế hệ thứ ba trong sự phát triển của Web sau HTML tĩnh và Web tương tác Web Service là một phương pháp mới để triển khai các các dịch vụ ứng dụng trên Web và cho phép Web có thể lập trình được chứ không phải chỉ là một Web tương tác [1] Dịch vụ Web được coi là một công nghệ mang đến cuộc cách mạng trong cách thức hoạt động của các dịch vụ B2B(Business to Business) và B2C(Business to Customer) Giá trị cơ bản của dịch vụ Web dựa trên việc cung cấp các phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và hệ thống kế thừa Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy trên những nền tảng khác nhau có thể sử dụng dịch vụ Web để chuyển đổi dữ liệu thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy tính Tuy nhiên, công nghệ xây dựng dịch vụ Web không nhất thiết phải là các công nghệ mới, có thể kết hợp với các công nghệ đã có như XML, SOAP, WSDL, UDDI… Với sự phát triển lớn mạnh của Internet, dịch vụ Web thật sự là công nghệ đáng được quan tâm để giảm chi phí và độ phức tạp trong tích hợp và phát triển hệ thống [10]

Để làm rõ những vấn đề trên, chúng ta sẽ cùng nhau tìm hiểu về công nghệ Web Service trong nội dung của Chương này Đầu tiên, ở mục Tổng quan về Web Service

sẽ mang đến một cái nhìn khái quát về công nghệ Web Service, khái niệm, đặc điểm,

ưu và nhược điểm của Web Service Tiếp theo, chúng ta sẽ tìm hiểu về kiến trúc của công nghệ Web Service, các công nghệ liên quan tới Web Service(XML, SOAP, WSDL, UDDI) Và cuối cùng là hướng dẫn cách xây dựng một dịch vụ Web đơn giản

1.1 Tổng quan về Web Service

1.1.1 Giới thiệu về Web Service

Để bắt đầu giới thiệu về công nghệ Web Service, chúng ta sẽ đi tìm hiểu về hoàn cảnh của dịch vụ Web và tại sao dịch vụ Web lại quan trọng cho sự phát triển phần mềm [9] Chắc hẳn ai trong lĩnh vực công nghệ thông tin cũng đã từng nghe hoặc thấy

ở đâu đó một vài lần về SOA (kiến trúc định hướng dịch vụ), là sự chuyển đổi mô hình theo cách mà các ứng dụng truyền thông với nhau; bao gồm hầu hết các ứng dụng phần mềm trung gian(middleware) Và các dịch vụ Web thì gồm một nhóm các tiêu chuẩn với ý định là có thể truyền thông cho nhiều hệ thống khác nhau mà không đòi hỏi một loại phần mềm trung gian, ngôn ngữ lập trình hoặc thậm chí là hệ điều hành

cụ thể Ban đầu, khi các máy tính ra đời, chúng hoạt động rất tốt, thực hiện được các nhiệm vụ phi thường, tự động hóa rất nhiều thứ mà con người phải vất vả mới thực hiện được Nhưng sau khi thực hiện được các tính toán phức tạp, thì một yêu cầu mới

Trang 13

được đặt ra đó là sự truyền thông giữa các ứng dụng Để đơn giản hóa, chúng ta lấy ví

dụ về các ứng dụng về nhân lực, ứng dụng về tài chính Các ứng dụng này hoạt động rất hiệu quả nhưng chưa có một cách hay để chia sẻ dữ liệu giữa chúng; tuy có thể viết các quy trình bó (batch) để chuyển dữ liệu từ một hệ thống này đến một hệ thống khác, nhưng điều đó không thể thay thế cho việc tích hợp thời gian thực

Bước tiếp theo trong chuỗi phát triển đó là tính toán phân tán Tính toán phân tán

đã cho phép các ứng dụng khác nhau nói chuyện với nhau, ngay cả khi chúng không ở trên cùng một máy tính Các công nghệ như CORBA, MTS và EJB (Enterprise Java Bean) đã cung cấp một hệ thống bao gồm một đăng ký về các loại để các ứng dụng có thể tìm thấy các thành phần mà chúng muốn tương tác và sau đó gọi các thành phần này như thể chúng đang nằm trên máy cục bộ Các hệ thống này đã được phần mềm trung gian hỗ trợ Nhưng vẫn còn một vấn đề, trong khi các ứng dụng tự do truyền thông bất cứ nơi nào trong hệ thống thì hệ thống vẫn còn là khép kín Ứng dụng khác phải sử dụng cùng một công nghệ như ứng dụng ở máy chủ

Mắt xích hầu như không tránh khỏi trong chuỗi tiến hóa này là các dịch vụ Web Dựa trên XML- một tiêu chuẩn mã nguồn mở dựa trên văn bản, dịch vụ Web là sự trao đổi các thông điệp dựa trên SOAP giữa các hệ thống Và từ đó đã mở rộng thế giới cho ứng dụng, bất cứ ai cũng có thể tiếp cận

Web Service (WS) là một phương pháp mới để triển khai các dịch vụ ứng dụng trên Web và cho phép Web có thể lập trình được chứ không chỉ là một Web tương tác Web Service là thế hệ thứ ba trong sự phát triển Web sau HTML tĩnh và Web tương tác được triển khai như PERL, ASP, JSP… Web Service thuộc loại black box- sử dụng lại các thành phần tính toán phân tán Mặc dù có nhiều nền tảng thành phần phân tán

có sẵn như CORBA, MS DCOM, NET, EJB; nhưng chỉ duy nhất Web Service có thể

hỗ trợ tất cả các nền tảng, các ngôn ngữ lập trình, giới hạn về vấn đề độc quyền và firewall- được coi là giải pháp thân thiện với các tính toán phân tán có sự tương tác Tất cả các kỹ thuật phân tán khác phải đối mặt với các vấn đề đau đầu như khó khăn trong việc trao đổi thông điệp và cách gọi đối tượng từ xa giữa các thành phần ở nền tảng khác nhau Ngoài ra, mỗi công nghệ này cần có các tầng giao thức riêng để có thể thiết lập được như giao thức ORB/IIOP cho CORBA, làm cho khả năng tương tác gặp khó khăn trong môi trường tính toán phân tán Phần lớn các kỹ thuật thành phần phân tán gặp khó khăn với bảo mật firewall Web Service làm việc trên một loạt giao thức bao gồm SOAP/ XML/ HTTP/ TCP/ IP, giúp cho WS được chấp nhận rộng rãi trên máy khách của dịch vụ Web có hỗ trợ các giao thức này WS đã làm một cuộc cách mạng trong tính toán phân tán và là dấu hiệu của một kỷ nguyên mới cho việc phát triển các ứng dụng phân tán lightweight nhờ ưu điểm của những tính năng mềm dẻo Việc triển khai các thành phần trong các kỹ thuật khác là không dễ dàng Nhưng lại rất

dễ dàng để deploy, publish, discover và invoke một dịch vụ Web trên mạng Từ đó, dịch vụ Web là giải pháp cho tất cả các vấn đề trên Là sự thay đổi lớn trong e-Commerce, B2B, Enterprise Application Integration (EAI) từ sử dụng các kỹ thuật độc quyền sang sử dụng công nghệ Web Service để phát triển các ứng dụng mới trực tuyến hay để đóng gói các ứng dụng sẵn có với kỹ thuật Web Service [1]

Trang 14

Không giống như mô hình Client/Server truyền thống, Web Service không cung cấp cho người dùng một giao diện đồ họa nào, Web Service đơn thuần chỉ là việc chia

sẻ các dữ liệu logic và xử lý các dữ liệu đó thông qua một giao diện chương trình ứng dụng được cài đặt xuyên suốt trên mạng máy tính Tuy nhiên, người phát triển Web Service hoàn toàn có thể đưa Web Service vào một giao diện đồ họa người dùng để có thể cung cấp thêm các chức năng đặc biệt cho người dùng

Vậy định nghĩa về Web Service như thế nào?

Câu trả lời là không có một định nghĩa chính xác về WS tại thời điểm này Chúng

ta có thể hiểu Web Service là một thành phần phân tán trực tuyến tự mô tả, trình bày các dịch vụ và chức năng thông qua giao diện trực tuyến và được lập trình có thể tự công bố, xác định được và gọi được qua mạng Điều quan trọng của WS chính là khả năng hỗ trợ đầu cuối theo thứ tự cho bất kỳ ứng dụng gọi dịch vụ, được cung cấp bởi bất kỳ dịch vụ Web trực tuyến nào [1]

Ngoài ra, theo W3C thì Web Service 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ự liê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 modul độc lập cho hoạt động của khách hàng và doanh nghiệp, bản thân nó được thực thi trên server [1]

Ý tưởng của dịch vụ Web là thay đổi cách phát triển phần mềm phân tán từ lập trình sang hợp thành, từ coding mới sang xây dựng ứng dụng mới từ các thành phần sẵn có hoặc được mua hoặc được sử dụng lại Đây chính xác là ưu điểm của lập trình hướng thành phần (COP) và Component Based Software Development (CBSD) Như vậy mục đích chính của Web Service không chỉ cung cấp dịch vụ trên Web mà còn cung cấp cơ chế để chia sẻ các dịch vụ của nó như một thành phần được xây dựng của dịch vụ Web khác hay các chương trình ứng dụng qua lập trình các dịch vụ Web đầu cuối Web Service thể hiện khả năng của nó làm thay đổi cách thức của mô hình nghiệp vụ doanh nghiệp trong tương tác giữa các hệ thống phân tán Một hệ thống của doanh nghiệp lớn được chia làm nhiều thành phần Web Service độc lập tương đối, lần lượt lấy các dịch vụ từ các thành phần Web Servcie đã được triển khai khác trên mạng EAI hay B2B có thể được xây dựng theo kiểu phân cấp của các thành phần Web Service Một số các thành phần Web Service này được phát triển từ đầu và các phần khác được xây dựng trên nền tảng của sự kết hợp các Web Service có sẵn hoặc bằng cách chuyển các thành phần phân tán có sẵn sang Web Service như các thành phần EJB [1]

Hiện nay có hàng nghìn dịch vụ Web có sẵn trên mạng Chúng ta có thể dự đoán rằng trong tương lai sẽ có nhiều hơn nữa các dịch vụ Web và nhiều hơn nữa các ứng dụng Web nắm lấy các ưu điểm của Web Service Các công cụ phát triển Web Service như AXIS của Apache, Microsoft NET Web Service studio dựa trên IIS server, IBM Web Sphere Web services, BEA Web Logic Workshop, Java Web Services

Trang 15

Development Pack (JWSDP), Mind Electric GLUE… Tất cả chúng được coi là các bộ công cụ phát triển hỗ trợ cho việc phát triển và triển khai Web Service Các ví dụ về dịch vụ Web trong đồ án sẽ được phát triển theo công cụ AXIS, kết hợp với jUDDI (cũng do Apache phát triển)

1.1.2 Đặc điểm của Web Service

Chúng ta đã có được cái nhìn khái quát về Web Service, Web Service là gì, thì ở phần này chúng ta sẽ đi sâu vào tìm hiểu những đặc điểm cụ thể của Web Service gồm những gì mà khiến nó được đánh giá cao và quan trọng trong tính toán phân tán [1, 10]:

- Web Service giúp tăng khả năng di động và tương tác của các hệ tính toán phân tán Web Service cho phép client và server tương tác được với nhau ngay cả trong những môi trường khác nhau Ví dụ, Web server cho ứng dụng được đặt trên một máy chủ chạy hệ điều hành Linux, trong khi người dùng sử dụng máy tính chạy hệ điều hành Window, khi đó ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêm yêu cầu đặc biệt nào để có thể tương thích giữa hai hệ điều hành này

- Giúp tăng khả năng sử dụng lại và mở rộng của các thành phần phân tán

- Giảm bớt sự phức tạp trong việc kết hợp và triển khai thành phần

- Giảm chi phí và thời gian cho việc phát triển phần mềm thành phần phân tán

- Tăng cường cho B2B và Electronic Data Interchange(EDI)

- Đơn giản hóa việc quản trị hệ thống phân tán

- Dễ dàng để đóng gói ứng dụng có sẵn sang Web Service phù hợp

- Hoạt động trên một loạt các giao thức chuẩn mở, được phát triển từ các chuẩn

đã được công nhận như XML

- Là Internet thế hệ thứ ba, là giải pháp cho tính toán phân tán

- Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnh vực cụ thể và cơ sở hạ tầng Web, đem lại lợi ích cho cả doanh nghiệp, khách hàng, nhà cung cấp khác và cả những cá nhân thông qua mạng Internet

Ngày nay dịch vụ Web đang rất phát triển, những lĩnh vực trong cuộc sống có thể

áp dụng và tích hợp dịch vụ Web là khá rộng lớn như dịch vụ chọn lọc và phân loại tin tức (hệ thống thư viện có kết nối đến Web portal để tìm kiếm các thông tin cần thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa điểm, đặt vé, ); các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, tỷ giá hối đoái, đấu giá qua mạng… thậm chí là giao dịch trực tuyến (cho cả B2B và B2C) [10]

Các ứng dụng có tích hợp dịch vụ Web không còn là xa lạ, đặc biệt trong điều kiện thương mại điện tử đang bùng nổ và phát triển không ngừng cùng với sự phát triển lớn mạnh của Internet Bất kỳ lĩnh vực nào trong cuộc sống cũng có thể tích hợp với dịch

vụ Web, đây là cách thức kinh doanh và làm việc có hiệu quả bởi ngày nay là thời đại của truyền thông và trao đổi thông tin qua mạng [10]

1.1.3 Ƣu và nhƣợc điểm

Chúng ta có thể rút ra ưu và nhược điểm của công nghệ Web Service như sau [1, 10]:

Trang 16

Ưu điểm của công nghệ Web Service:

- Cung cấp khả năng hoạt động rộng lớn và linh hoạt với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau

- Sử dụng các giao thức và chuẩn mở (giao thức và định dạng dữ liệu dựa trên văn bản), từ đó giúp cho người lập trình dễ dàng tiếp cận và hiểu được Nền tảng của Web Service là công nghệ XML (hầu hết các hệ thống đều có thể đọc và hiểu được tập tin XML)

- Nâng cao khả năng tái sử dụng

- Thúc đẩy phát triển các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện Web Service và quảng bá rộng rãi trên mạng Internet

- Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán

- Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành dịch

vụ, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác

Tuy có đặc điểm nổi trội và các ưu điểm trên, nhưng công nghệ Web vẫn mắc phải một số nhược điểm:

- Có quá nhiều chuẩn cho Web Service khiến cho người dùng khó nắm bắt, cũng như gây khó khăn cho các nhà phát triển

- An toàn và bảo mật thông tin là một vấn đề nan giải của Web Service

- Tốc độ thực thi- performance, của Web Service phụ thuộc nhiều vào tốc độ đường truyền Internet và nhìn chung các ứng dụng Web Service thực thi chậm hơn so với các ứng dụng bình thường khác

- Vấn đề chất lượng của dịch vụ (QoS) còn chưa được đảm bảo, nhất là khi Web Service bị rơi vào tình trạng quá tải, gây thiệt hại lớn vào khoảng thời gian chết của Web Service, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành

1.2 Kiến trúc của Web Service

Web Service là một thành phần phân tán trực tuyến tự mô tả, trình bày các dịch vụ

và chức năng thông qua giao diện trực tuyến và được lập trình có thể tự công bố, xác định được và gọi được qua mạng [1]; được coi là một công nghệ mang đến cuộc cách mạng trong cách thức hoạt động của các dịch vụ B2B(Business to Business) và B2C(Business to Customer) [10] Vậy, chúng ta hãy cùng nhau tìm hiểu kiến trúc của Web Service qua hình 1.1 để làm rõ những vấn đề này

Trang 17

Hình 1 1: Kiến trúc của Web Service Trong kiến trúc của Web Service có 3 thành phần quan trọng [1, 10]: Client (đưa ra yêu cầu Web Service), bên cung cấp Web Service và nơi đăng ký Web Service; cùng với đó là cơ chế hoạt động cần có 3 thao tác: Find, Publish và Bind Trong đó:

- Bên cung cấp Web Service sẽ tiến hành publish/register dịch vụ với UDDI (thao tác Publish) UDDI (Universal Description, Discovery, and Integration) giống như danh bạ điện thoại, các doanh nghiệp có thể thực hiện đăng ký số điện thoại của mình để khách hàng tìm được khi cần Cũng có trường hợp khách hàng đã biết số điện thoại của doanh nghiệp mà không cần tới danh bạ điện thoại, tương tự như thế Web Service cũng có thể hoạt động được mà không cần sự hỗ trợ của UDDI trong trường hợp client đã biết về thông tin của WS như địa chỉ WS, tên phương thức, đối số cần thiết của phương thức (bao gồm cả kiểu giá trị của giá trị trả về) Khi tiến hành publish/register, bên cung cấp WS sẽ đăng ký giao diện WSDL của mình với UDDI (có nhiều nơi đăng ký UDDI), về sau sẽ được sử dụng bởi client Để thực hiện được quá trình đăng ký này thì trước tiên bên cung cấp phải có một tài khoản hợp lệ của UDDI (ở đây chúng ta sẽ sử dụng jUDDI để mô phỏng UDDI, các thông điệp trao đổi SOAP giữa các bên sẽ sử dụng thư viện hàm API của jUDDI) Khi có được tài khoản hợp lệ, bên cung cấp sẽ bắt đầu tiến hành đăng ký bằng việc lấy mã chứng thực về tài khoản của mình từ UDDI (qua hàm get_authToken()) Bên cung cấp khi đó sử dụng

mã chứng thực để tiến hành lưu thông tin doanh nghiệp của mình: tên doanh nghiệp,

mô tả, thông tin liên lạc(tên cá nhân, số điện thoại, e-mail) (qua hàm save_business()) Nếu lưu thông tin thành công, bên cung cấp sẽ nhận được businessKey của mình BusinessKey sẽ được sử dụng để tiến hành lưu thông tin tModel (qua hàm save_tModel()), ở đây tModel được sử dụng để liên kết tới metadata bên ngoài UDDI (ở trường hợp này chính là tập tin WSDL); nếu thành công sẽ nhận được một tModelKey Sau khi hoàn tất các bước trên thì bên cung cấp mới tiến hành đăng ký dịch vụ của mình:tên dịch vụ, mô tả, accessPoint, overviewURL Và kết quả cuối cùng, bên cung cấp nhận được một ServiceKey và bên yêu cầu có thể truy cập UDDI

để biết thông tin về bên cung cấp cũng như về dịch vụ mà họ cung cấp Cụ thể quá trình này sẽ được trình bày ở phần cài đặt của Chương III

- Tiếp theo, bên yêu cầu WS có thể tìm dịch vụ (thao tác Find) phù hợp bằng: tên bên cung cấp WS (tên doanh nghiệp), thông tin danh mục, tên WS hay thậm chí là key của WS nếu bên yêu cầu biết trước được thông tin này Nếu thao tác Find có kết quả

Trang 18

trả về phù hợp, bên yêu cầu sẽ bắt đầu tiến hành sử dụng dịch vụ Web (thao tác Bind) Giả sử ở đây, bên yêu cầu tìm kiếm theo tên dịch vụ là A tại UDDI và được phản hồi kết quả là 2 dịch vụ A1 và A2 trùng khớp với yêu cầu, kèm theo đó là serviceKey, tên dịch vụ, mô tả của từng dịch vụ Bên yêu cầu chọn dịch vụ A1, để biết thêm thông tin

về dịch vụ này, bên yêu cầu sẽ sử dụng serviceKey để lấy thông tin chi tiết dịch vụ từ UDDI (qua hàm get_serviceDetail()) Qua đó, bên yêu cầu sẽ biết thêm về thông tin của doanh nghiệp cung cấp dịch vụ này, địa chỉ của truy xuất dịch vụ Web (WSDL)

Để bắt đầu sử dụng dịch vụ, bên yêu cầu cần tiến hành truy xuất tới WSDL để xem:

mô tả các chức năng dịch vụ hỗ trợ, nơi dịch vụ Web tồn tại, cách truy cập dịch vụ Web và cách gọi các phương thức từ xa được dịch vụ cung cấp Từ đó, bên yêu cầu sử dụng dịch vụ Web qua các phương thức từ xa mà dịch vụ cung cấp để đáp ứng những yêu cầu của mình

- Bên thứ 3 là nơi đăng ký dịch vụ Web (UDDI), đảm nhiệm chức năng cho phép bên cung cấp tiến hành đăng ký dịch vụ, bên yêu cầu tiến hành tìm kiếm, truy xuất thông tin Chi tiết được trình bày ở mục 1.3.4 trong Chương này

Cả yêu cầu và kết quả truy xuất UDDI đều có định dạng SOAP Các thông điệp SOAP được gửi đi chính xác bởi HTTP và TCP/IP

Ứng dụng mà chúng ta sẽ xây dựng ở Chương cuối là dịch vụ Đặt vé tàu, được xây dựng để mô phỏng công nghệ Web Service khi được áp dụng vào thực tế, nhưng trước

đó sẽ là việc sử dụng một thuật toán chuẩn hóa tối ưu để giúp người dùng lựa chọn ra được một dịch vụ Web có chất lượng dịch vụ (QoS) tốt nhất dựa theo một số tiêu chí chất lượng Như vậy, ứng dụng Đặt vé tàu sẽ sử dụng dịch vụ Web Đặt vé tàu (mà cụ thể là các phương thức của dịch vụ này) sau khi dịch vụ Web được lựa chọn dựa theo QoS

Web Service sử dụng một chồng giao thức, là tập hợp các giao thức mạng máy tính được sử dụng để định nghĩa, xác định ví trị, thi hành và tạo nên dịch vụ Web tương tác với những ứng dụng hay dịch vụ khác Chồng giao thức này gồm 4 thành phần chính [10]:

- Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng, bao gồm các giao thức như HTTP, SMTP, FTP và gần đây nhất là giao thức thay đổi khối mở rộng BEEP (Blocks Extensible Exchange Protocol)

- Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để

có thể hiểu được ở mức ứng dụng tương tác với người dùng Hiện tại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST

- Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một dịch vụ Web cụ thể WSDL thường được sử dụng cho mục đích này Dịch vụ Web sẽ sử dụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao tác và chức năng mà dịch vụ Web cung cấp

- Khám phá dịch vụ: tập trung dịch vụ vào một nơi đăng ký từ đó giúp một dịch Web có thể dễ dàng khám phá ra những dịch vụ nào có trên mạng Hiện tại, UDDI API thường được sử dụng để thực hiện công việc này

Trang 19

Kỹ thuật mô tả dịch vụ là một trong những thành phần chủ chốt của kiến trúc Web Service Các thông tin mô tả về kiến trúc Web Service được thể hiện trong hai tài liệu riêng biệt, đó là NASSL- Network Accessible Service Specification Language và WDS- Web-Defined Service NASSL là một tài liệu dưới dạng chuẩn XML cho các dịch vụ chạy trên nền Network để chỉ ra các thông tin hoạt động của Web Service, chẳng hạn như danh sách các Service, các mô tả về Service, ngày hết hạn của Service

và các thông tin liên quan đến các bên cung cấp dịch vụ Tài liệu WDS là một tài liệu mang tính đáp ứng đầy đủ cho tài liệu NASSL Khi ta kết hợp 2 tài liệu này với nhau,

ta sẽ có được mô tả đầy đủ về các dịch vụ để cho bên yêu cầu dịch vụ có thể dễ dàng tìm kiếm và gọi các dịch vụ đó

Như vậy, chúng ta đã cùng nhau tìm hiểu xong kiến trúc của công nghệ Web Service, và có được cái nhìn khái quát về việc tương tác giữa các thành phần tham gia Trong đó, một số công nghệ như: SOAP, XML, WSDL, UDDI, đã được nhắc tới Để tìm hiểu cụ thể về các công nghệ này chúng ta hãy cùng nhau tìm hiểu nội dung tiếp sau đây

1.3 Các công nghệ của Web Service

Công nghệ Web Service sử dụng một loạt các giao thức chuẩn mở giúp cho dịch

vụ Web được chấp nhận rộng rãi trên các máy khách có hỗ trợ chuẩn này Và từ đó, dịch vụ Web đã làm một cuộc cách mạng trong tính toán phân tán và là dấu hiệu của một kỷ nguyên mới cho việc phát triển các ứng dụng phân tán lightweight nhờ ưu điểm của những tính năng mềm dẻo Vậy chúng ta sẽ cùng nhau tìm hiểu xem những giao thức và công nghệ nào được Web Service sử dụng [1, 10]

1.3.1 XML

Đầu tiên, điều mà chúng ta không thể không nhắc tới chính là XML (eXtensible Markup Language)- ngôn ngữ đánh dấu dữ liệu, là ngôn ngữ mở rộng của HTML Người dùng có thể tự định nghĩa các thẻ Bất kỳ bản ghi XML nào cũng có dạng là Document Type Definition (DTD) hay Schema, các kiểu dữ liệu đặc trưng khác, element, thuộc tính của element, các subelement Bản ghi XML có thể được sử dụng

để thể hiện và chuyển đổi dữ liệu có cấu trúc trong các thẻ element phân cấp Các bản ghi XML với Schema hoặc DTD có thể được chấp nhận bởi bất kỳ chương trình hay phần mềm nào một cách dễ dàng nếu có hỗ trợ XML API

Trang 20

Trong ví dụ này, có hai bản ghi cho đối tượng student, trong đó lưu name và gpa (-điểm trung bình khóa học) bằng việc sử dụng hai thẻ:<name></name> và

<gpa></gpa> nằm trong thẻ <student></student>

Tất cả các bản ghi XML phải có siêu dữ liệu (metadata) của mình như việc một bản ghi dữ liệu trong một bảng dữ liệu của bất kỳ cơ sở dữ liệu nào cũng phù hợp với định nghĩa kiểu dữ liệu của bảng, đây được gọi là Schema của cơ sở dữ liệu Có nhiều định dạng khác nhau của XML Schema như internal DTD bên trong tập tin XML, separate external DTD, XML Schema Document(XSD) là một siêu dữ liệu cho bản ghi XML XSD chỉ rõ các cú pháp, cấu trúc và các ràng buộc bên trong XML tương ứng, bao gồm kiểu dữ liệu hay các kiểu dữ liệu khác của element, các thuộc tính của element

Ví dụ sau thể hiện Schema, mô tả cấu trúc của bản ghi XML Trong đó thẻ complexType được dùng để định nghĩa các kiểu dữ liệu khác

<element name = “student”

<complexType>

<element name = “name” type = “xsd: string” />

<element name = “gpa” type = “xsd: float” />

<xsd:element name=”name” type=”xsd:string”/>

<xsd:element name=”gpa” type=”xsd:float”/>

Trang 21

1.3.2 SOAP

SOAP là viết tắt cho cụm từ Simple Object Access Protocol SOAP là một giao thức đóng gói cho các dữ liệu chia sẻ giữa các ứng dụng Về cơ bản, SOAP là XML, nhưng nó phù hợp với XML Schema đặc tả SOAP được xây dựng từ các chuẩn XML như XML Schema và XML Namespaces dùng cho việc định nghĩa SOAP và các chức năng của nó SOAP cung cấp một cơ chế đơn giản và gọn nhẹ cho việc trao đổi thông tin có cấu trúc và định dạng giữa các thành phần trong một môi trường phân tán sử dụng XML SOAP được thiết kế dựa trên những chuẩn nhằm giảm chi phí tích hợp các

hệ thống phân tán xây dựng trên nhiều nền tảng khác nhau ở mức càng thấp càng tốt SOAP được sử dụng để đặc tả định dạng của thông điệp yêu cầu và phản hồi, từ đó tạo

và gửi các thông điệp qua HTTP port bằng phương thức HTTP POST [1]

Các đặc trưng của SOAP [14, 16]:

- SOAP được thiết kế đơn giản và dễ mở rộng

- Tất cả các message SOAP đều được mã hóa sử dụng XML

- SOAP sử dụng giao thức truyền dữ liệu riêng

- SOAP 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ì đặc trưng này, SOAP 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 [16]

Khi trao đổi các thông điệp SOAP, có hai thành phần liên quan: Bên gửi và bên nhận Thông điệp sẽ được chuyển từ bên gửi sang bên nhận Đây là ý niệm đơn giản nhất trong trao đổi thông điệp SOAP

Cấu trúc của một thông điệp SOAP có dạng như sau:

Hình 1 2: Cấu trúc của một thông điệp SOAP Thông điệp SOAP bao gồm phần tử gốc envelope bao trùm toàn bộ nội dung thông điệp SOAP, và các phần tử header và body Thành phần envelope của SOAP phải có một subelement, chính là Body Body của thông điệp SOAP có thể chính là dữ liệu, tên của phương thức được gọi, đối số của một phương thức được gọi, một thông điệp SOAP yêu cầu kết quả trả về từ một thông điệp SOAP phản hồi Ngoài ra, envelope

Trang 22

của SOAP có thể có subelement Header hoặc không, đây là tùy chọn, chỉ ra siêu dữ liệu của thông điệp

Bảng 1 1: Các thành phần của một thông điệp SOAP

<SOAP-ENV:Envelop> Phần tử bao trùm nội dung thông điệp, khai báo văn bản

XML như là một điệp SOAP

<SOAP-ENV:Header> Chứa các thông tin tiêu đề cho trang, phần tử này không

bắt buộc khai báo trong văn bản Header còn có thể mang

dữ liệu chứng thực, chữ ký số, thông tin mã hóa hay cài đặt cho các giao dịch khác Nếu phần tử envelop mà chứa phần tử header, thì nó chỉ chứa không nhiều hơn một phần tử Header và phần tử Header này bắt buộc phải là phần tử con đầu tiên của phần tử envelop Mỗi thành phần con của Header gọi là Header Entry, dùng để diễn giải, quy định một số ngữ nghĩa của thông điệp SOAP Các ứng dụng có thể xử lý và định tuyến các thông điệp dựa trên thông tin header và thông tin bên trong thông điệp đó Đây là ưu điểm mà các mô hình kiến trúc DCOM, CORBA và RMI không có được, vì các protocol header của chúng phải được chỉ định chi tiết cho mỗi ứng dụng

<SOAP-ENV:Body> Phần tử khai báo nội dung chính trong thông điệp, chứa

các thông tin yêu cầu và thông tin được phản hồi

Ví dụ sau là một thông điệp SOAP yêu cầu yêu cầu WS chuyển đổi 0o

C sang oF [1]:

Trong thành phần Body của thông điệp SOAP yêu cầu có dữ liệu kiểu String là

“0” là đối số của phương thức toFahrenheit từ xa của WS

Thông điệp SOAP phản hồi sau khi chuyển đổi sang oF:

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"

Trang 23

Kiểu truyền thông của SOAP [10,16]: có 2 kiểu truyền thông:

- Remote procedure call (RPC) cho phép gọi hàm hoặc thủ tục qua mạng Kiểu này được khai thác bởi nhiều dịch vụ Web

- Document: được biết đến như kiểu hướng thông điệp Nó cung cấp giao tiếp ở mức trừu tượng thấp, khó hiểu và yêu cầu lập trình viên mất công sức hơn

Cấu trúc dữ liệu: cung cấp những định dạng và khái niệm cơ bản giống như các ngôn ngữ lập trình khác như kiểu dữ liệu (int,string,date,…) hay những kiểu phức tạp hơn như struct, array, vector,… Định nghĩa cấu trúc dữ liệu SOAP được đặt trong namespace SOAP-ENC

1.3.3 WSDL

WSDL- Web Service Description Language, định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của XML, mô tả các chức năng WS hỗ trợ, nơi WS tồn tại, và cách truy cập WS và gọi các phương thức từ xa được cung cấp bởi WS WSDL được

sử dụng cho bên yêu cầu dịch vụ Bên yêu cầu dịch vụ sẽ sử dụng các thông tin về giao diện định nghĩa trong lược đồ WSDL để triệu gọi dịch vụ Web WSDL thường được

sử dụng kết hợp với XML Schema và SOAP để cung cấp Web Service qua Internet Client khi kết nối tới Web Service có thể đọc WSDL để xác định những chức năng có sẵn trên server Sau đó, client có thể sử dụng SOAP để lấy ra chức năng chính xác có trong WSDL [1]

Một tài liệu WSDL mô tả 1 dịch vụ Web như một tập các đối tượng trừu tượng gọi là các “ports” và “endpoint” Một tài liệu WSDL cũng định nghĩa bên trong nó các phương thức của dịch vụ Web Các phương thức tương ứng với “operation” và dữ liệu trao đổi tương ứng với “message” Một tập các phương thức liên quan được nhóm lại vào trong một “portType” Một ràng buộc kết nối (binding) chỉ định một giao thức mạng và đặc tả định dạng dữ liệu cho một portType cụ thể Nếu một client có được một tài liệu WSDL và tìm thấy binding, địa chỉ cho mỗi port, nó có thể gọi các phương thức của dịch vụ theo đúng giao thức và định dạng dữ liệu đã đặc tả [1]

Một tài liệu WSDL bao gồm hai phần: phần giao diện (mô tả giao diện và phương thức kết nối) và phần thi hành mô tả thông tin truy xuất cơ sở dữ liệu Cả 2 phần này sẽ được lưu trong 2 tập tin XML tương ứng là tập tin giao diện dịch vụ và tập tin thi hành dịch vụ

Phần đặc tả giao diện của WS được chia làm 4 phần là: Type, Message, portType và binding

Trang 24

Bảng 1 2: Các thành phần đặc tả giao diện của WSDL

<types …> Định nghĩa kiểu dữ liệu được sử dụng cho Web Service Để đảm

bảo tính không phụ thuộc vào platform, WSDL sử dụng cấu trúc của XML Schema để định nghĩa kiểu dữ liệu

<message …> Mô tả cho các thông điệp được sử dụng trong element portType

Định nghĩa các thành phần dữ liệu và các thông điệp mà nó được gọi tới Mỗi message có thể bao gồm một hoặc nhiều phần, các thành phần này có thể so sánh với các câu lệnh của các lời gọi hàm trong các ngôn ngữ lập trình truyền thống

<portType …> Mô tả tập trừu tượng của các phương thức được sử dụng lại bởi

một hoặc nhiều điểm cuối WS (port) Là thành phần quan trọng nhất trong một tài liệu WSDL, được sử dụng để mô tả Web Service, các thao tác được thực thi và các lời gọi thông điệp Thành phần portType có thể so sánh với thư viện hàm (hoặc các module, các lớp) trong các ngôn ngữ lập trình Thành phần portType thường có 4 kiểu thao tác được WSDL định nghĩa là:

- One-way: thao tác này thể hiện rằng nó chỉ nhận các lời gọi thông điệp nhưng không trả lại thông điệp đáp ứng

- Request-response: thao tác này bao gồm việc nhận các thông điệp yêu cầu và trả về các thông điệp đáp ứng

- Solicit-response: thao tác này sẽ gửi đi các yêu cầu và đợi các đáp ứng

- Notification: thao tác này sẽ gửi đi các yêu cầu nhưng không đợi để nhận các đáp ứng

<binding …> Đưa ra đặc tả định dạng thông điệp và định nghĩa đặc tả giao thức

kết nối như SOAP, HTTP và MINE Định nghĩa cách các dịch vụ Web kết hợp với nhau

Trong phần thi hành, có 2 thành phần: port và service Trong đó, thành phần service là thành phần bên ngoài của thành phần port, nơi tập hợp của các đầu cuối Web Service hay port liên quan đến nhau Bản ghi XML của WSDL định nghĩa Web Service như một nơi chứa các đầu cuối hay port

Từ đó, chúng ta có thể có cấu trúc của một tập tin WSDL như sau:

Trang 25

Mô hình tham chiếu giữa các thành phần của WSDL [18]:

Hình 1 3: Tham chiếu giữa các thành phần của WSDL Một ví dụ cụ thể [1]:

</wsdl:input>

<wsdl:output>

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/enco ding/"

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

Trong đó:

Trang 26

- Tên của dịch vụ Web là ConvertService được lưu ở thẻ <wsdl :service>

</wsdl :service> nằm ở phần cuối cùng của tập tin WSDL Trong đó còn có thẻ port để lưu địa chỉ của WS: http://localhost:8080/axis/services/Convert Thành phần binding của thẻ port là ConverSoapBinding giúp ràng buộc với thẻ <wsdl: binding></wsdl:binding> ở phía trên

- Trong phần định nghĩa thông điệp, có hai thông điệp được định nghĩa là:

• toFahrenheitResponse (-thông điệp phản hồi): mô tả kiểu trả về của phương thức gọi từ xa của WS

• toFahrenheitRequest (-thông điệp yêu cầu): mô tả kiểu đối số của phương thức đó

Thành phần name và type định nghĩa tên và kiểu dữ liệu của thông điệp được trao đổi

- Thẻ <wsdl:portType></wsdl:portType> mô tả công việc được cung cấp bởi

WS Công việc này được thể hiện là một phương thức (toFahrenheit), bên client cần phải biết các thông số đầu vào và kiểu dữ liệu trả về Ngoài ra còn có hai thông điệp được định nghĩa để yêu cầu WS và phản hồi của WS

- Thẻ <wsdl:binding></wsdl:binding> đưa ra cách để client và WS có thể dùng

để trao đổi thông điệp cho nhau Thành phần con, <wsdlsoap: binding> quy định SOAP là giao thức và các thông điệp yêu cầu cũng như phản hồi phải theo định dạng SOAP Có 4 hành động có thể thực hiện: input only, output only, input/output, output/input

Trong đồ án, chúng ta sẽ sử dụng công cụ AXIS của Apache để tạo ra tập tin WSDL cho dịch vụ Web Cách tạo cũng như sử dụng như thế nào sẽ được nói chi tiết

ở phần cuối của Chương và một phần trong Chương cuối

1.3.4 UDDI

Công nghệ cuối cùng được đề cập đến là Universal Description, Discovery, and Integration (UDDI), đặc tả kỹ thuật cho việc xây dựng chỉ dẫn để phân phối cho các hoạt động nghiệp vụ và Web Service, là một tập hợp các đặc tả để các bên cung cấp dịch vụ Web quảng bá thông tin về dịch vụ của mình; và giúp bên yêu cầu dịch vụ tìm các thông tin để tìm ra dịch vụ Web và thực thi [1]

Trang 27

tin về cách sử dụng dịch vụ và biết được đối tượng cung cấp dịch vụ UDDI định nghĩa một số thành phần cho biết trước các thông tin này để cho phép các client truy tìm và nhận lại những thông tin yêu cầu sử dụng dịch vụ Web Nếu phía client của một dịch

vụ biết nơi tồn tại của nó và cách gọi các phương thức mà dịch vụ hỗ trợ thì WS không cần phải đăng ký UDDI bao gồm một XML Schema định nghĩa 4 cấu trúc dữ liệu cốt lõi của UDDI: business, service, binding và giao diện lập trình tModel, một tập các API cung cấp cách quảng bá và các phương thức truy vấn tới các cấu trúc dữ liệu [1] Qua kiến trúc của Web Service trong hình 1.1, chúng ta có thể thấy một yêu cầu tìm kiếm dịch vụ Web ở nơi đăng ký dịch vụ và tìm thấy được mô tả dịch vụ mong muốn Với các thông tin này thì yêu cầu sẽ được tìm ở nơi đăng ký, bên yêu cầu kết nối tới nơi cung cấp WS và gọi dịch vụ

Cấu trúc của UDDI gồm 3 thành phần chính [1]:

- White Pages: có mức cao nhất, là nơi chứa các thông tin cơ bản về bên cung

cấp như tên, mô tả, thông tin liên lạc (tên, địa chỉ, số điện thoại, fax, website) và xác nhận kinh doanh mà bên cung cấp được biết tới Những thông tin này cho phép các đối tượng khác xác định được dịch vụ

- Yellow Pages: chứa thông tin mô tả dịch vụ Web theo những loại khác nhau

(industry code, service type/business categories theo sản phẩm/dịch vụ hay vị trí vật lý) Những thông tin này cho phép các đối tượng thấy được dịch vụ Web theo từng loại với nó

- Green Pages: Đặc tả cách kết nối tới bên cung cấp dịch vụ, bao gồm thông tin

kỹ thuật (như: URL) về cách để tìm và thực thi một WS Một ứng dụng yêu cầu một dịch vụ sẽ sử dụng WSDL để tiến hành tương tác với Green Pages của bản kê các dịch

vụ

tModel chứa các thông tin về loại dịch vụ được sử dụng

Hình 1 4: Ánh xạ Web Service WSDL sang UDDI

Trang 28

Các thành phần của ánh xạ Web Service WSDL sang UDDI được mô tả trong hình 1.4 có thể được giải thích như sau:

- businessEntity: Trình bày nhà cung cấp Web Service, chứa các thông tin về

công ty, bao gồm danh sách liên lạc, thông tin, phân biệt các tổ chức thương mại, và danh sách các nhà cung cấp Web Service

- businessService: Trình bày một Web Service độc lập được cung cấp bởi

businessEntity, mô tả các thông tin về cách thức gắn kết với Web Service, định nghĩa kiểu Web Service và phân loại danh mục được liệt kê trong đó

- bindingTemplate: Là kỹ thuật mô tả của Web Service được trình bày bởi

businessService bindingTemplate trình bày sự hoạt động thực tế của Web Service, mô

tả công nghệ sử dụng để giao tiếp với Web Service Một businessService có thể có nhiều bindingTemplate, cho nên dịch vụ phải chỉ rõ các hành động cụ thể khác nhau trong cùng một dịch vụ

- tModel: Mục đích của tModel là dùng để liên kết đến siêu dữ liệu bên ngoài

UDDI Thành phần quan trọng nhất của tModel là một URL trỏ đến một tài liệu mô tả thông tin siêu dữ liệu Tài liệu này có thể là tài liệu bất kỳ HTML, Word,… tùy ý mô

tả đặc tả kỹ thuật nào đó Ví dụ, chúng ta có thể định nghĩa ra một kiểu cổng (portType) WSDL mới, và đồng nghĩa với đó chúng ta có thể định nghĩa ra một tModel mới mà biểu diễn cổng đó trong UDDI Sau đó, chúng ta có thể chỉ định ra dịch vụ thương mại mà thực thi kiểu cổng đó bằng việc kết hợp tModel với một business service‟s binding template Có hai thuộc tính cơ bản bên trong một tModel: tModelKey đóng vai trò định danh duy nhất giữa các tModel với nhau và name dùng cung cấp một tên với đầy đủ ngữ nghĩa cho tModel

Ví dụ: Cấu trúc dữ liệu của UDDI [1]

Trang 29

Đặc tả UDDI chỉ định các lệnh cho phép chương trình tiến hành truy cập các thông tin ở nơi đăng ký UDDI Các lệnh API này được chia làm 2 phần:các lệnh API để quảng bá và lệnh API để yêu cầu [1]:

- Cú pháp của thành phần API thực hiện quảng bá: save_XX, delete_XX (XX có thể là business, services,binding,tModel)

- Lệnh API để yêu cầu được sử dụng để tìm hay lấy thông tin về WS, cú pháp: find_XX (thực hiện tìm kiếm tổng quát ở nơi đăng ký UDDI theo các tiêu chí), get_XXDetail (sẽ gọi trực tiếp nếu biết key từ trước)

Ví dụ: Sử dụng find_XX để tìm business có name=”SUN” đã tiến hành đăng ký ở UDDI

<?xml version='1.0' encoding='UTF-8'?>

<Envelope xmlns='http://schemas.xmlsoap.org/soap/envelope/'>

<Body>

Trang 30

<find_business generic="1.0" xmlns="urn:uddi-org:api">

Trang 31

<bindingTemplate serviceKey=”[SVK1]”

bindingKey=”[BDK1]”>

<accessPoint URLType=”[URL2]”</accessPoint>

Chúng ta có thể thấy rằng bên trong thẻ <businessEntity></businessEntity> có thể

có nhiều thẻ <businessServices></businessServices> và mỗi bussinessServices lại có thể có nhiều WS; mỗi WS có thể gồm hay liên kết nhiều binding Mỗi binding tham chiếu tới tModel duy nhất của nó cung cấp tất cả cả thông tin chi tiết về kỹ thuật để lấy được WS

Thông điêp SOAP tModel tham chiếu bằng tModelKey=[TMK1]

Trong đồ án này, để bước đầu làm quen với UDDI cũng như việc publish dịch

vụ Web lên UDDI, sau đó có thể sử dụng các hàm API của UDDI để tìm kiếm dịch vụ Web được yêu cầu, chúng ta sẽ sử dụng công cụ jUDDI của Apache để làm một UDDI cục bộ Sau đây sẽ là một số minh họa về jUDDI:

Trang 32

Hình 1 5: Giao diện khởi động của jUDDI

Hình 1 6: Giao diện thể hiện các API Inquiry và Publisher của jUDDI

Chi tiết về cách sử dụng jUDDI sẽ được trình bày cụ thể trong Chương cuối của

đồ án

1.4 Cách xây dựng một Web Service đơn giản

Đặc tả giao diện cho dịch vụ Web chứa đầy đủ thông tin cần thiết cho client của dịch vụ có thể truy cập nó, đặc tả này có dạng:

Cũng có thể có trường hợp hai hay nhiều đặc tả WSDL làm việc cùng nhau, đặc

tả WSDL này có thể import definition từ các WSDL khác

Ví dụ: Ta tiến hành chia myService.wsdl thành hai đặc tả WSDL, service sẽ implement myServicesImpl.wsdl còn interface tương ứng với myServiecIntf.wsdl

Trang 33

• Phát triển WS trên trang server và triển khai WS trên server WS

• Phát triển client WS dựa trên tập tin stub được tạo ra ở trên

Nếu như chúng ta bắt đầu thiết kế một WS với tập tin WSDL mới, được gọi là thiết kế

“Green field”, một giao diện Java sẽ được sinh ra từ WSDL, các công đoạn khác giống nhau

- Thiết kế Bottom-up:

• Thiết kế và phát triển WS với một WS có sẵn như từ tập tin nguồn Java

• Tạo và triển khai WS với những lựa chọn phát triển khác nhau

• Phát triển client WS để lấy dịch vụ từ WS được triển khai

Sau đây là một dịch vụ Web nhỏ:

- Bước 1: Tạo dịch vụ web:

Tạo tập tin Calculator.java có nội dung như sau:

//Calculator.java

public class Calculator{

public String Add(int x,int y){

<part name="x" type="xsd:int"/>

<part name="y" type="xsd:int"/>

</message>

<message name="AddRequest">

<part name="x" type="xsd:int"/>

<part name="y" type="xsd:int"/>

</message>

Trang 34

</port>

</service>

</definitions>

- Bước 2: Tạo client:

Sau khi đã có tập tin WSDL, chúng ta tiếp tục tiến hành tạo tập tin client để sử dụng WSDL Tạo tập tin CalculatorClient.java tại thư mục C:\Webservice\Calculator,

có nội dung như sau:

Trang 35

public class CalculatorClient {

private int x;

private int y;

Scanner input=new Scanner(System.in);

public void setX(int a){

String result=(String)call.invoke(new Object[]{a,b});

System.out.println("Ket qua : "+result);

public static void main(String args[]){

CalculatorClient cal=new CalculatorClient();

Scanner input=new Scanner(System.in);

String ans;

System.out.println("Moi chon phep tinh:");

System.out.println("(1) Tinh tong (a+ b)");

System.out.println("(2) Tinh hieu (a- b)");

System.out.println("(3) Ket thuc.");

Trang 36

Cuối cùng chúng ta tiến hành biên dịch và chạy client, kết quả có dạng:

Hình 1 7: Kết quả thực thi dịch vụ Web Calculator Như vậy, chúng ta đã có được những kiến thức cơ bản về công nghệ Web Service làm cơ sở cho việc tìm hiểu chi tiết về một khía cạnh cụ thể của Web Service ở Chương II

Trang 37

Chương II : LƯẠ CHỌN WEB SERVICE DỰA VÀO QOS

Qua nội dung của Chương đầu, chúng ta đã có được những kiến thức cơ bản, khái quát về công nghệ Web Service, và từ đó có thể xây dựng được một dịch vụ Web Trong nội dung Chương này chúng ta sẽ cùng nhau đi tìm hiểu cụ thể hơn về một khía cạnh liên quan tới Web Service, đó chính là việc lựa chọn dịch vụ Web sao cho phù hợp với yêu cầu Để bắt đầu sẽ là giới thiệu liên quan tới việc lựa chọn dịch vụ Web,

nó nằm ở đâu và có liên quan gì tới dịch vụ Web Việc tạo và publish dịch vụ Web chỉ

là một phần của mô hình sử dụng dịch vụ Web Bước tiếp theo liên quan tới người sử dụng- những người có nhu cầu sử dụng một dịch vụ Web nào đó, người sử dụng sẽ khai phá (discovery), lựa chọn (selection), tích hợp (integration) và cuối cùng mới tiến hành sử dụng Về khai phá dịch vụ Web, các dịch vụ Web sẽ được tập trung tại một nơi gọi là UDDI để từ đó người sử dụng có thể tìm được dịch vụ mong muốn, khai phá nhằm mục đích đưa ra cho người sử dụng một danh sách các dịch vụ Web đáp ứng được yêu cầu một cách chính xác, có ích Dữ liệu đầu vào của khai phá có thể là tên của dịch vụ, tên của doanh nghiệp cung cấp dịch vụ, thậm chí là Key của dịch vụ nếu như người dùng biết thông tin chi tiết Các hàm API của UDDI thường thực hiện nhiệm vụ này Một dịch vụ Web được thiết kế ra để thực hiện một nhiệm vụ cụ thể nào

đó và trong nhiều trường hợp chúng ta phải kết hợp một loạt các dịch vụ Web lại với nhau nhằm thực hiện được công việc đặt ra; đây chính là nhiệm vụ của pha tích hợp Tuy nhiên, sau khi khai phá chúng ta sẽ được một danh sách các dịch vụ đáp ứng được yêu cầu, vậy sẽ lựa chọn dịch vụ nào để sử dụng trong tích hợp lại là một vấn đề Đây chính là nội dung mà Chương này sẽ đề cập tới, đó là lựa chọn dịch vụ Web

Việc lựa chọn dịch vụ vẫn là một thách thức lớn, đặc biệt khi tập tất cả các dịch vụ đáp ứng được đầy đủ các yêu cầu của người dùng Trong số những dịch vụ này thì dịch vụ được gọi cuối cùng bởi người dùng là rất quan trọng, thường phụ thuộc vào một đánh giá tổng hợp của chất lượng dịch vụ (QoS) Hiện nay có nhiều cách tiếp cận tới vấn đề lựa chọn dịch vụ Web phù hợp nhất này, mà tiêu biểu là 4 phương hướng chính sau đây [3]:

- Web Service được lựa chọn dựa trên quan hệ ngữ nghĩa Dịch vụ Web được lựa chọn là dịch vụ Web giống về ngữ nghĩa nhất với yêu cầu về dịch vụ Sự tương đồng này được đo bằng mức độ phù hợp về ngữ nghĩa theo bản thể (ontology)

- Web Service được lựa chọn dựa trên chất lượng dịch vụ (QoS) của Web Service Ở đây, dịch vụ Web được lựa chọn là dịch vụ Web có hầu hết các thuộc tính QoS phù hợp với dịch vụ được yêu cầu

- Web Service được lựa chọn dựa trên danh tiếng (reputation) của dịch vụ Vì vậy, dịch vụ Web được lựa chọn là dịch vụ Web có danh tiếng lớn nhất được đưa ra bởi tất cả những người đã từng sử dụng dịch vụ Web đó

- Web Service được lựa chọn dựa trên sở thích của người sử dụng Trong đó, dịch vụ Web được lựa chọn là dịch vụ Web phù hợp với sở thích của người dùng nhất trên các tính năng của dịch vụ

Trang 38

Để lựa chọn được dịch vụ Web có rất nhiều cách, tuy nhiên trong nội dung này thì chúng ta chỉ cùng nhau xem xét về vấn đề lựa chọn dịch vụ Web dựa trên chất lượng của dịch vụ (QoS) Đầu tiên chúng ta sẽ tìm hiểu một cách khái quát về chất lượng của dịch vụ Tiếp sau là tập Ontology và từ vựng của chất lượng dịch vụ Một thuật toán chuẩn hóa tối ưu được sử dụng để lựa chọn dịch vụ web theo QoS được trình bày tiếp theo đó, cùng với những đánh giá về điểm mạnh và điểm yếu của thuật toán

2.1 Tìm hiểu về QoS

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

Hiện nay công nghệ Web Service ngày càng phát triển nhanh chóng và trở nên phổ biến QoS (Quality of Service), chất lượng dịch vụ Web Service trở thành một yếu tố quan trọng trong việc đánh giá sự thành công của các nhà cung cấp dịch vụ Web QoS quyết định đến khả năng sử dụng và hữu ích của dịch vụ, cả 2 yếu tố này đều ảnh hưởng đến tính phổ biến của một dịch vụ Web

Sự phát triển mạnh mẽ của thương mại điện tử đã đặt ra một yêu cầu là làm sao để

có thể tích hợp liền mạch các quy trình thương mại, các ứng dụng thương mại điện tử

và Web Service thông qua môi trường mạng Internet Việc đánh giá được chất lượng của một dịch vụ Web gặp rất nhiều khó khăn, vì môi trường mạng Internet và các ứng dụng Web ngày càng phát triển mạnh mẽ, do đó yêu cầu về chất lượng dịch vụ cũng thay đổi và khó có thể dự đoán theo cách tự nhiên được Các ứng dụng với các đặc điểm và yêu cầu riêng biệt sẽ cạnh tranh nhau về tài nguyên mạng- vốn đã rất hạn chế Việc thay đổi lưu lượng thông tin trên mạng, tấn công từ chối dịch vụ, ảnh hưởng của

cơ sở hạ tầng công nghệ thông tin yếu kém, vấn đề an ninh cho các ứng dụng Web, từ

đó cần đưa ra các chuẩn chất lượng cho dịch vụ Thông thường, không đáp ứng được các yêu cầu QoS là một nguyên nhân then chốt dẫn tới các giao tác có hiệu suất hoạt động thấp [5]

Với các chuẩn như SOAP, UDDI và WSDL đã được thống nhất sử dụng cho công nghệ Web Service- bao gồm các dịch vụ tài chính, công nghệ cao, đa phương tiện và giải trí Hầu hết các dịch vụ Web cần được xây dựng tuân thủ theo các chuẩn, QoS là một yếu tố then chốt để đánh giá sự thành công cũng như sự khác nhau về chất lượng phục vụ của các dịch vụ Web

QoS bao gồm một loạt các kỹ thuật phù hợp nhu cầu của bên yêu cầu dịch vụ với dịch vụ của nhà cung cấp dựa trên các tài nguyên mạng có sẵn Chúng ta sẽ cùng nhau tìm hiểu về các thuộc tính phi chức năng của các Web Service như: performance, reliability, availability,… ở phần tiếp sau đây

2.1.2 Các yêu cầu về QoS cho Web Service

Chất lượng dịch vụ cho Web Service cần phải đáp ứng được các yêu cầu chính dưới đây [2, 5]:

- Avaiability- tính có sẵn: Tính có sẵn thể hiện một khía cạnh chất lượng của dịch

vụ, trình bày dịch vụ có sẵn để dùng tại một thời điểm cụ thể hay không, cụ thể là xác suất mà dịch vụ sẵn sàng phục vụ Trong tính có sẵn, một giá trị thời gian được dùng

để mô tả liệu một dịch vụ có sẵn sàng để phục vụ hay không Giá trị lớn hơn chỉ ra

Trang 39

rằng dịch vụ luôn sẵn sàng để sử dụng trong khi giá trị nhỏ hơn chỉ ra khó có thể dự đoán được liệu dịch vụ có sẵn sàng trong khoảng thời gian cụ thể hay không Ngoài ra, còn có một đại lượng thời gian để kết hợp với tính có sẵn của một dịch vụ được gọi là Time to Repair (TTR)- thời gian phục hồi, mô tả khoảng thời gian được dùng để phục hồi một Web Service nếu có lỗi xảy ra Lý tưởng nhất là thời gian đó có giá trị nhỏ

- Accessibility:- khả năng truy cập: Khả năng truy cập là một khía cạnh chất lượng dịch vụ qua khả năng phục vụ các yêu cầu Web Service Yêu cầu này diễn tả khả năng ước lượng bao gồm tỷ lệ thành công hoặc sự thay đổi thành công của một dịch vụ cụ thể tại một thời điểm Có thể có những tình huống khi một Web Service là

có sẵn, nhưng lại không thể truy cập được Một Web Service có tính truy cập cao có thể đạt được bằng cách xây dựng hệ thống có khả năng mở rộng cao Khả năng mở rộng đề cập đến khả năng phục vụ các yêu cầu một cách nhất quán mặc dù có thể có nhiều yêu cầu khác nhau cùng tồn tại trong một tập hợp các yêu cầu

- Integrity- tính toàn vẹn: Tính toàn vẹn là một khía cạnh chất lượng dịch vụ ở cách thức mà Web Service đảm bảo sự đúng đắn chính xác trong các tương tác theo từng khía cạnh cụ thể của tài nguyên Việc thực hiện đúng đắn của các giao tác Web Service sẽ cung cấp tính đắn trong các tương tác Một giao tác tham chiếu tới trình tự làm việc của các thao tác được xử lý như một đơn vị công việc độc lập Tất cả các hoạt động được hoàn thành, tạo sự thành công cho một giao tác Khi một giao tác không được thực hiện thành công thì tất cả các thay đổi sẽ được phục hồi lại trạng thái ban đầu

- Performance- khả năng hoạt động: Khả năng hoạt động cũng là một khía cạnh chất lượng dịch vụ, được đo bằng giới hạn của thông lượng (throughput) và độ trễ Giá trị thông lượng cao hơn và độ trễ thấp biểu thị rằng Web Service hoạt động tốt Thông lượng biểu thị số lượng yêu cầu Web Service phục vụ tại một đơn vị thời gian định kỳ

Độ trễ là thời gian xoay vòng giữa việc gửi yêu cầu và nhận các đáp ứng

- Reliability- tính tin cậy: Biểu thị khả năng đảm bảo dịch vụ và chất lượng dịch

vụ Cụ thể, tính tin cậy được tính bằng số lượng lỗi trên một tháng hoặc một năm Theo nghĩa khác, tính tin cậy liên quan tới việc cung cấp đúng đắn và đảm bảo các thông điệp sẽ được gửi và nhận bởi bên yêu cầu dịch vu và bên cung cấp dịch vụ

- Regulatory- tính linh động: Thể hiện Web Service có thể thích ứng với các luật, quy tắc và khả năng kết hợp chuẩn, và thiết lập các dịch vụ mức cao hơn Web Service

sử dụng một số chuẩn như SOAP, UDDI, WSDL Việc tuyệt đối tuân thủ nhằm đảm bảo tính đúng đắn của các phiên bản của các chuẩn bởi các nhà cung cấp dịch vụ là cần thiết để gọi đúng dịch vụ Web mà bên yêu cầu dịch vụ yêu cầu

- Security- tính bảo mật: Tính bảo mật của dịch vụ Web biểu thị ở cơ chế bảo mật, thẩm định, mã hóa thông điệp và cung cấp quyền truy cập Tính bảo mật được thêm vào các yêu cầu này vì dịch vụ Web được gọi qua môi trường Internet công cộng Các nhà cung cấp dịch vụ Web có thể có các hướng tiếp cận khác nhau để đảm bảo độ an toàn cho các dịch vụ Web

Web Service Modeling Ontology (WSMO) là một mô hình định nghĩa để mô tả ngữ nghĩa dịch vụ Web và định nghĩa bốn khía cạnh chính của SWS (Sematic Web Service), cụ thể là Ontology, Web Service, Goal và Mediator Để có được cái nhìn cụ

Trang 40

thể về QoS của Web Service, chúng ta sẽ sử dụng mô hình WSMO và các đặc trưng để

mô tả một mô hình QoS, các độ đo chất lượng đặc trưng, các thuộc tính giá trị và các phép đo tương ứng của thuộc tính đó Ở phần cuối, chúng ta sẽ xem xét một thuật toán

để chuẩn hóa các thuộc tính chất lượng khác nhau, cung cấp một cách đánh giá linh động và công bằng Vấn đề này được thực hiện bằng cách xem xét các yêu cầu chất lượng của người dùng với một tập các quảng bá chất lượng do bên cung cấp cung cấp cho Sau đó, tổng hợp đánh giá tất cả độ chính xác các độ đo theo các thuộc tính chất lượng được chuẩn hóa Một ma trận trọng số được áp dụng để có được một đánh giá cuối cùng [2]

2.2 Tập Ontology và từ vựng của QoS

Web Service Modeling Ontology (WSMO) [21] là mô hình định nghĩa cho việc mô

tả các khía cạnh khác nhau liên quan tới ngữ nghĩa dịch vụ Web WSMO được tạo thành từ 4 yếu tố cụ thể Ontology, Web Service, Goal và Mediator Nói một cách vắn tắt:

- Ontology cung cấp các thuật ngữ và ngữ nghĩa hình thức cho các yếu tố khác của WSMO

- Web service định nghĩa mô tả ngữ nghĩa của dịch vụ bao gồm các yếu tố thuộc tính và phi thuộc tính của chúng

- Goal đặc tả các yêu cầu của người yêu cầu dịch vụ Web

- Mediator giải quyết vấn đề không đồng nhất: ooMediators (giữa các bản thể), ggMediators (giữa các goal), wgMediators (giữa web service và goal) và wwMediators (giữa các dịch vụ)

Theo WSMO, các khía cạnh chất lượng là một thành phần của thông tin phi chức năng (một số đã được trình bày cụ thể ở phần trên) của mô tả dịch vụ Web và được xác định đơn giản như: Accuracy (tính chính xác), Availability (tính sẵn sàng), Financial (tài chính), Network-related QoS (chất lượng dịch vụ liên quan tới mạng), Performance (khả năng hoạt động), Reliability (độ tin cậy), Robustness (độ chắc chắn), Scalability (khả năng mở rộng), Transactional (tính giao dịch) và Trust (sự tin tưởng) Các định nghĩa của QoS không có ý nghĩa mà cũng không đủ khả năng linh động cho các thuộc tính QoS Vì vậy ở đây, với mục đích lựa chọn dịch vụ, chúng ta

sẽ sử dụng một class mới- class khái niệm QoS, lọc class các yếu tố phi chức năng trong WSMO Bên cạnh đó, mô hình QoS cũng được định nghĩa theo cùng cú pháp kế thừa từ mô hình WSMO Mô hình QoS được định nghĩa có thể được gọi bởi các thực thể Web Service và goal, các yếu tố chất lượng có thể được cân nhắc thích đáng trong quá trình lựa chọn dịch vụ [2]

Đặc tả Ontology QoS sẽ có tên là WSMO-QoS Bản thể bổ sung này cung cấp các khía cạnh chất lượng chi tiết về dịch vụ Người phát triển được hưởng lợi ích từ WSMO-QoS cho matchmaking dựa trên QoS và phép đo QoS

2.2.1 Ontology và từ vựng

Chúng ta định nghĩa class QoS trong hình 2.1, là một subclass của class nonFunctionalProperties đã được định nghĩa trong WSMO Class QoS có thể được đính kèm với class webService hay Goal Lưu ý rằng mô hình khái niệm WSMO hiện tại vẫn không đổi, chúng ta chỉ thay đổi class nonFunctionalProperties [22, 23, 24]

Ngày đăng: 30/04/2014, 09:11

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Andy Ju An Wang and Kai Qian, Component-Oriented Programming.: Wiley, 2005, pp. 267-311. [Online]. http://as.wiley.com/WileyCDA/WileyTitle/productCd-0471644463.html Sách, tạp chí
Tiêu đề: Component-Oriented Programming
[2] Xia Wang, Tomas Vitar, Mick Kerrigan, and Ioan Toma, A QoS-aware Selection Model for Semantic Web Service., Service-Oriented Computing - ICSOC 2006, 4th International Conference, Chicago, IL, USA, December 4-7, 2006, pp. 1-12.[Online]. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.93.4360&amp;rep=rep1&amp;type=pdf Sách, tạp chí
Tiêu đề: A QoS-aware Selection Model for Semantic Web Service
Tác giả: Xia Wang, Tomas Vitar, Mick Kerrigan, Ioan Toma
Nhà XB: Service-Oriented Computing - ICSOC 2006
Năm: 2006
[3] Manh Hung Nguyen and Dinh Que Tran, Towards a Multi-Criteria Aggregation Model for Selection of Web Service.: FAIR - Fundamental and Applied IT Research, Trường Đại Học Lạc Hồng, TP Biên Hòa, Đồng Nai, Việt Nam, pp. 2- 4. [Online]. http://fair.lhu.edu.vn/submission/data/abstract/39.pdf Sách, tạp chí
Tiêu đề: Towards a Multi-Criteria Aggregation Model for Selection of Web Service
Tác giả: Manh Hung Nguyen, Dinh Que Tran
Nhà XB: FAIR - Fundamental and Applied IT Research
[4] Doug Tidwell, James Snell, and Pavel Kulchenko, Programming Web Service with SOAP. Sebastopol, CA, USA: O'Reilly &amp; Associates, Inc, December 2001.[Online]. http://sirpabs.ilahas.com/oreilly_pdf/O%27Reilly%20-%20Programming%20Web%20Services%20with%20SOAP.pdf Sách, tạp chí
Tiêu đề: Programming Web Service with SOAP
Tác giả: Doug Tidwell, James Snell, Pavel Kulchenko
Nhà XB: O'Reilly & Associates, Inc
Năm: 2001
[7] T.Rajendran, Dr.P.Balasubramanie, and Resmi Cherian, An Efficient WS-QoS Broker Based Architecture for Web Service Selection.: Foundation of Computer Science, February 2010, pp. 3-4. [Online]. http://www.ijcaonline.org/allpdf/pxc387333.pdf Sách, tạp chí
Tiêu đề: An Efficient WS-QoS Broker Based Architecture for Web Service Selection
Tác giả: T.Rajendran, Dr.P.Balasubramanie, Resmi Cherian
Nhà XB: Foundation of Computer Science
Năm: 2010
[8] Yutu Liu, Anne H.H.Ngu, and Liangzhao Zeng, QoS Computation and Policing in Dynamic Web Service. New York, NY, USA: WWW Alt. '04 Proceedings of the 13th international World Wide Web, 2004, pp. 71-72. [Online].http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.2.1739&amp;rep=rep1&amp;type=pdf Sách, tạp chí
Tiêu đề: QoS Computation and Policing in Dynamic Web Service
Tác giả: Yutu Liu, Anne H.H.Ngu, Liangzhao Zeng
Nhà XB: WWW Alt. '04 Proceedings of the 13th international World Wide Web
Năm: 2004
[9] Nicholas Chase, Hiểu biết về Đặc tả các dịch vụ Web, Phần 3:Giao diện khám phá và mô tả thống nhất UDDI.: IBM Groups, Oct. 2010. [Online].http://www.ibm.com/developerworks/vn/edu/ws-understand-web-services3/section6.html Sách, tạp chí
Tiêu đề: Hiểu biết về Đặc tả các dịch vụ Web, Phần 3:Giao diện khám phá và mô tả thống nhất UDDI
Tác giả: Nicholas Chase
Nhà XB: IBM Groups
Năm: 2010
[10] Van Hai Vo. (2009) Giới thiệu về Web Service. [Online]. http://vovanhai.wordpress.com/web-services/gi%E1%BB%9Bi-thi%E1%BB%8 7u-v%E1%BB%81-web-service/ Sách, tạp chí
Tiêu đề: Giới thiệu về Web Service
Tác giả: Van Hai Vo
Năm: 2009
[11] w3schools.com. Web Services Tutorial. [Online]. http://www.w3schools.com/ webservices/default.asp Sách, tạp chí
Tiêu đề: Web Services Tutorial
Nhà XB: w3schools.com
[15] quanghd. (2010) Giới thiệu về SOA. [Online]. http://sites.google.com/site/ quanghd/home/asp-net-web-service/gioi-thieu-ve-soa Sách, tạp chí
Tiêu đề: Giới thiệu về SOA
Tác giả: quanghd
Năm: 2010
[16] quanghd. (2010) Giới thiệu về SOAP. [Online]. http://sites.google.com/site/ quanghd/home/asp-net-web-service/gioi-thieu-ve-soap Sách, tạp chí
Tiêu đề: Giới thiệu về SOAP
Tác giả: quanghd
Năm: 2010
[17] quanghd. (2010) Giới thiệu về UDDI. [Online]. http://sites.google.com/site/ quanghd/home/asp-net-web-service/gioi-thieu-ve-uddi Sách, tạp chí
Tiêu đề: Giới thiệu về UDDI
Tác giả: quanghd
Năm: 2010
[18] quanghd. (2010) Giới thiệu về WSDL. [Online]. http://sites.google.com/site/ quanghd/home/asp-net-web-service/gioi-thieu-ve-wsdl Sách, tạp chí
Tiêu đề: Giới thiệu về WSDL
Tác giả: quanghd
Năm: 2010
[19] The Apache Software Foundation. (2000-2005) Axis User's Guide. [Online]. http://ws.apache.org/axis/java/user-guide.html Sách, tạp chí
Tiêu đề: Axis User's Guide
Tác giả: The Apache Software Foundation
Năm: 2000-2005
[20] The Apache Software Foundation. (2011, June) Apache jUDDI. [Online]. http://juddi.apache.org/usersguide.html Sách, tạp chí
Tiêu đề: Apache jUDDI
Tác giả: The Apache Software Foundation
Năm: 2011
[21] D. Roman, H. Lausen, and U. Keller, Web Service Modeling Ontology(WSMO). IOS Press Amsterdam, The Netherlands: WSMO Final Draf, 10 February 2005 Sách, tạp chí
Tiêu đề: Web Service Modeling Ontology(WSMO)
[22] D.T. Tsesmetzis, I.G. Roussaki, I.V. Papaioannou, and M.E. Anagnostou, QoS awareness support in Web-Service semantics. IEEE Computer SocietyWashington, DC, USA: AICT-ICIW '06 Proceedings of the Advanced Int'l Conference on Telecommunications and Int'l Conference on Internet and Web Applications and Services , 2006, p. 128 Sách, tạp chí
Tiêu đề: QoS awareness support in Web-Service semantics
[23] Y. Mou, J. Cao, S.S. Zhang, and J.H. Zhang, Interactive Web Service Choice- Making Based on Extended QoS Model. IEEE Computer Society Washington, DC, USA: CIT '05 Proceedings of the The Fifth International Conference on Computer and Information Technology, 2005, pp. 1130-1134 Sách, tạp chí
Tiêu đề: Interactive Web Service Choice-Making Based on Extended QoS Model
[24] I.V. Papioannou, E.A. Miliades, I.G. Roussaki, and D.T. Tsesmetziz, QoS Ontology Language for Web-Services. IEEE Computer Society Washington, DC, USA: AINA '06 Proceedings of the 20th International Conference on Advanced Information Networking and Applications, 2006 Sách, tạp chí
Tiêu đề: QoS "Ontology Language for Web-Services
[12] w3schools.com. WSDL Tutorial. [Online]. http://www.w3chools.com/WSDL [13] w3chools.com. UDDI Tutorial. [Online]. http://www.w3schools.com/UDDI Link

HÌNH ẢNH LIÊN QUAN

Hình 1. 4: Ánh xạ Web Service WSDL sang UDDI - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 1. 4: Ánh xạ Web Service WSDL sang UDDI (Trang 27)
Hình 2. 2: Ontology và từ vựng của QoS - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 2. 2: Ontology và từ vựng của QoS (Trang 43)
Hình 2. 4: Kiến trúc cho WS-QoS Broker - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 2. 4: Kiến trúc cho WS-QoS Broker (Trang 46)
Bảng 2. 1: Dữ liệu về giá trị các thuộc tính chất lượng của từng dịch vụ - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Bảng 2. 1: Dữ liệu về giá trị các thuộc tính chất lượng của từng dịch vụ (Trang 51)
Hình 3. 6: Tuần tự các bước trong chức năng Đặt vé tàu - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 3. 6: Tuần tự các bước trong chức năng Đặt vé tàu (Trang 64)
Hình 3. 7: Tuần tự các bước trong chức năng Đặt vé tàu với ngoại lệ chọn lại ghế - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 3. 7: Tuần tự các bước trong chức năng Đặt vé tàu với ngoại lệ chọn lại ghế (Trang 65)
Hình 3. 8: Quan hệ giữa các lớp - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 3. 8: Quan hệ giữa các lớp (Trang 66)
Hình 3. 9: Quan hệ giữa các lớp trong pha thiết kế - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 3. 9: Quan hệ giữa các lớp trong pha thiết kế (Trang 67)
Hình 3. 10: Giải thích chi tiết các thành phần của từng lớp - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 3. 10: Giải thích chi tiết các thành phần của từng lớp (Trang 68)
Hình 3. 11: Quan hệ giữa các bảng của cơ sở dữ liệu - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 3. 11: Quan hệ giữa các bảng của cơ sở dữ liệu (Trang 69)
Hình 3. 12: Các bước hoạt động của chức năng Đặt vé tàu - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 3. 12: Các bước hoạt động của chức năng Đặt vé tàu (Trang 69)
Hình 3. 20: Giao diện đặt vé thành công - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 3. 20: Giao diện đặt vé thành công (Trang 72)
Hình 3. 27: Ứng dụng Java áp dụng thuật toán chuẩn hóa tối ưu - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 3. 27: Ứng dụng Java áp dụng thuật toán chuẩn hóa tối ưu (Trang 79)
Hình 3. 29: Thông điệp SOAP request và response khi ứng dụng sử dụng dịch vụ Web - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 3. 29: Thông điệp SOAP request và response khi ứng dụng sử dụng dịch vụ Web (Trang 80)
Hình 3. 30: Kết quả khi gọi hàm getChuyen() - Lựa chọn dịch vụ Web theo Qos và ứng dụng
Hình 3. 30: Kết quả khi gọi hàm getChuyen() (Trang 80)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w