Ngày nay cùng với sự pháttriển mạnh mẽ của môi trường Internet, 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ú. Đồng thời đi
cùng sự phát triển mạnh mẽ của nền kinh tế thị trường là nhu cầu áp dụng công nghệ
thông tin vào trong các quy trình thương m ại ngày càng trở nên phổ biến và là điểm mấu
chốt để 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 Web
Serviceđượ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 Bussiness và B2C –Bussiness 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ệctruy
cập đối với hệ thống đóng gói và 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 cácnền tảng khác nhau có thể sử dụng Web Serviceđể
chuyển đổi dữ liệu thông qua mạng Internet.
Nội dung của khóa luận đưa ra một cái nhìn tổng quát về công nghệ Web Service,
phân tích và tìm hiểu các thành phần chuẩn được sử dụng trong công nghệ Web Service,
đi vào nghiên cứu kiến trúc về Web Service. Từ những kiến thức thu được về công nghệ
Web Service, khóa luận đi đến một hướng tiếp cận mới đó là tìm hiểu về chất lượng các
dịch vụ Web – QoScho Web Servicedựa trên mô hình tích hợp Web Servicevới các
Web ServiceComposition. Từ các kiến thức về chất lượng các dịch vụ Web, khóa luận sẽ
tìm hiểu về một khía cạnh chất lượng dịch vụ Web đó là kiểm chứng ràng buộc thời gian
đáp ứng của các Web ServiceComposition và mô hình hóa các ràng buộc thời gian trên
biểu đồ UML Timing Diagram.
Để minh họa cho việc kiểm chứng ràng buộc thời gian đáp ứng của các Web
ServiceComposition, chúng tôi đã tiến hành xây dựng một ứng dụng nhỏ là Web Service
Travel-Agent và tiến hành đo lường thời gian đáp ứng của các Service Composition hợp
thành lên Web ServiceTravel-Agent đó.
85 trang |
Chia sẻ: nhungnt | Lượt xem: 2140 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng service proxy để kiểm chứng ràng buộc thời gian trong web service composition, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Đức Trung
XÂY DỰNG SERVICE PROXY ĐỂ KIỂM CHỨNG RÀNG BUỘC
THỜI GIAN TRONG WEB SERVICE COMPOSITION
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành : Công Nghệ Thông Tin
HÀ NỘI, 2009
i
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Đức Trung
XÂY DỰNG SERVICE PROXY ĐỂ KIỂM CHỨNG RÀNG BUỘC
THỜI GIAN TRONG WEB SERVICE COMPOSITION
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành : Công Nghệ Thông Tin
Cán bộ hướng dẫn: TS. Trương Ninh Thuận
HÀ NỘI, 2009
ii
LỜI CẢM ƠN
Em xin gửi lời cảm ơn sâu sắc nhất đến TS. Trương Ninh Thuận, người thầy đã cho
em định hướng, 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ề chất lượng dịch vụ Web. Thầy đã giúp đỡ em rất nhiều và đi cùng em trong
suốt thời gian thực hiện khoá luận. Thầy chỉ cho em cách tiếp cận, nghiên cứu một công
nghệ mới, 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 quý Thầy Cô và các bạn đã giúp đỡ em trong những
năm học qua. Em xin cảm ơn Bộ môn Công nghệ phần mềm, Khoa Công nghệ thông tin,
Trường Đại Học Công Nghệ, Đại Học Quốc Gia Hà Nội đã tạo điều kiện thuận lợi cho
em trong suốt quá trình học tập và làm khoá luận này.
Đề tài “Xây dựng Service Proxy để kiểm chứng ràng buộc thời gian trong Web
Service Composition ” là một đề tài khá mới mẻ, lại được hoàn thành trong quỹ thời gian
hạn hẹp nên khó tránh khỏi những khiếm khuyết. Em mong nhận được những góp ý chân
thành từ thầy cô giáo và các bạn để đề tài có thể được mở rộng và nghiên cứu kỹ hơn, đưa
vào trong thực tiễn ngành công nghệ thông tin hiện nay.
Hà Nội, ngày 15 tháng 05 năm 2009
Sinh viên:
Nguyễn Đức Trung
iii
TÓM TẮT KHOÁ LUẬN
Ngày nay cùng với sự phát triển mạnh mẽ của môi trường Internet, 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ú. Đồng thời đi
cùng sự phát triển mạnh mẽ của nền kinh tế thị trường là nhu cầu áp dụng công nghệ
thông tin vào trong các quy trình thương mại ngày càng trở nên phổ biến và là điểm mấu
chốt để 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 Web
Service đượ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 Bussiness và B2C – Bussiness 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
cập đối với hệ thống đóng gói và 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 các nền tảng khác nhau có thể sử dụng Web Service để
chuyển đổi dữ liệu thông qua mạng Internet.
Nội dung của khóa luận đưa ra một cái nhìn tổng quát về công nghệ Web Service,
phân tích và tìm hiểu các thành phần chuẩn được sử dụng trong công nghệ Web Service,
đi vào nghiên cứu kiến trúc về Web Service. Từ những kiến thức thu được về công nghệ
Web Service, khóa luận đi đến một hướng tiếp cận mới đó là tìm hiểu về chất lượng các
dịch vụ Web – QoS cho Web Service dựa trên mô hình tích hợp Web Service với các
Web Service Composition. Từ các kiến thức về chất lượng các dịch vụ Web, khóa luận sẽ
tìm hiểu về một khía cạnh chất lượng dịch vụ Web đó là kiểm chứng ràng buộc thời gian
đáp ứng của các Web Service Composition và mô hình hóa các ràng buộc thời gian trên
biểu đồ UML Timing Diagram.
Để minh họa cho việc kiểm chứng ràng buộc thời gian đáp ứng của các Web
Service Composition, chúng tôi đã tiến hành xây dựng một ứng dụng nhỏ là Web Service
Travel-Agent và tiến hành đo lường thời gian đáp ứng của các Service Composition hợp
thành lên Web Service Travel-Agent đó.
iv
MỤC LỤC
CHƯƠNG 1: ĐẶT VẤN ĐỀ ............................................................................................1
1.1. Bối cảnh ................................................................................................................1
1.2. Mục tiêu khóa luận ...............................................................................................2
1.3. Cấu trúc khóa luận................................................................................................3
CHƯƠNG 2: CÔNG NGHỆ WEB SERVICE .................................................................5
2.1. Kiến trúc hướng dịch vụ SOA ...............................................................................5
2.1.1. Khái niệm kiến trúc hướng dịch vụ SOA........................................................5
2.1.2. Nguyên tắc thiết kế của SOA ..........................................................................6
2.2. Công nghệ Web Service.........................................................................................7
2.2.1. Tổng quan về Web Service ..............................................................................7
2.2.2. Kiến trúc Web Service .....................................................................................9
2.2.3. Các công nghệ của Web Service ...................................................................13
CHƯƠNG 3: QoS CHO WEB SERVICE......................................................................24
3.1. Chất lượng dịch vụ Web Service – QoS cho Web Service ...................................24
3.2. Các yêu cầu về chất lượng dịch vụ cho Web Service...........................................25
3.3. QoS cho các dịch vụ Web ....................................................................................27
3.4. Điều chỉnh và thiết lập ràng buộc QoS ...............................................................27
3.5. Hiệu ứng thắt cổ chai trong quá trình thực thi của Web Service........................28
3.6. Đánh giá hiệu năng giao thức SOAP ..................................................................29
3.7. Phương pháp tiếp cận để cung cấp chất lượng dịch vụ cho Web Service ...........30
CHƯƠNG 4: BIỂU ĐỒ TIMING DIAGRAM...............................................................32
4.1. Giới thiệu UML ...................................................................................................32
4.2. Tổng quan về biểu đồ Timing Diagram...............................................................33
4.3. Mục đích của biểu đồ Timing Diagram...............................................................34
4.4. Các kí hiệu của biểu đồ Timing Diagram ...........................................................34
4.5. Các thành phần của biểu đồ Timing Diagram ....................................................36
v
4.5.1. Các trạng thái ...............................................................................................36
4.5.2. Các sự kiện và các thông điệp.......................................................................37
4.5.3. Thời gian.......................................................................................................38
4.5.4. Các đường State-Line ...................................................................................39
4.5.5. Ràng buộc thời gian......................................................................................40
CHƯƠNG 5: BÀI TOÁN NGHIÊN CỨU .....................................................................42
5.1. Tìm hiểu về Service Proxy ...................................................................................42
5.2. Tìm hiểu về Web Service Composition ................................................................45
5.3. Bài toán kiểm chứng ràng buộc thời gian đáp ứng của các Web Service
Composition ...............................................................................................................49
5.3.1. Giới thiệu bài toán ........................................................................................49
5.3.2. Mục tiêu và yêu cầu của bài toán .................................................................50
5.3.3. Phân tích bài toán.........................................................................................51
CHƯƠNG 6: THỰC NGHIỆM .....................................................................................54
6.1. Phạm vi ứng dụng ...............................................................................................54
6.2. Thiết kế ứng dụng ...............................................................................................56
6.3. Cài đặt, xây dựng và triển khai ứng dụng ...........................................................58
6.3.1. Cài đăt chương trình.....................................................................................58
6.3.2. Xây dựng và triển khai các Web Services thành phần..................................61
6.3.3. Xây dựng và triển khai Service Proxy...........................................................66
6.3.4. Phát triển chương trình client và thực nghiệm.............................................69
CHƯƠNG 7: KẾT LUẬN ..............................................................................................74
vi
DANH SÁCH CÁC THUẬT NGỮ VÀ KHÁI NIỆM
THUẬT NGỮ
KHÁI NIỆM
SOA
Service Oriented Architecture – Kiến trúc hướng dịch vụ
Service
Composition
Các Serivice có sẵn có thể được dùng để tích hợp lên một Web
Service lớn hơn. Hoặc là một Web Service thành phần chuyên
biệt phục vụ cho một nhiệm vụ
Service Composite
Web Service được tổng hợp lên từ các Service Composition
Service Provider
Nhà cung cấp dịch vụ Web Service. Đây chính là các nguồn
cung cấp đưa ra các dịch vụ cho khách hàng sử dụng
Service Consumer
Đây chính là dịch vụ ở phía người sử dụng, yêu cầu các dịch vụ
đưa ra bởi Service Provider
Service Broken
Nơi chấp nhận các yêu cầu đưa ra bởi Service Consumer, liên
hệ với Service Provider để lấy dịch vụ trả về cho Service
Consumer
W3C
Viết tắt của Word Wide Web Consortium – là một tổ chức lập
ra các chuẩn cho các công nghệ chạy trên nền Internet, đặc biệt
là Word Wide Web
QoS
Quality of Service - Chất lượng dịch vụ
Message request
Thông điệp yêu cầu
Message response
Thông điệp đáp ứng
vii
DANH SÁCH CÁC HÌNH VẼ
Hình 1: Web Service cho phép truy cập tới các code ứng dụng sử dụng chuẩn công
nghệ Internet.....................................................................................................................7
Hình 2: Web Service cung cấp một tầng trừu tượng giữa ứng dụng client và ứng dụng
cần gọi tới. .......................................................................................................................8
Hình 3: Mô tả cơ chế hoạt động của Web Service........................................................9
Hình 4: Web Service technology stack .......................................................................10
Hình 5: TCP/IP network model..................................................................................11
Hình 6: Mô tả cấu trúc của một thông điệp XML .......................................................14
Hình 7: Mô tả cấu trúc của một thông điệp SOAP .....................................................15
Hình 8: Mô tả thông điệp SOAP faults .......................................................................16
Hình 9: Mô tả việc trao đổi thông điệp SOAP thông qua giao thức HTTP .................17
Hình 10: Mô tả thành phần binding trong tài liệu WSDL.............................................20
Hình 11: Minh họa ví dụ của một tài liệu WSDL..........................................................20
Hình 12: Minh họa cấu trúc dữ liệu businessService ...................................................22
Hình 13: Biểu đồ Timing Diagram dưới dạng “Robus Diagram” ................................35
Hình 14: Biểu đồ Timing Diagram dưới dạng mở rộng................................................36
Hình 15: Minh họa các trạng thái được thể hiện trong biểu đồ Timing Diagram .........37
Hình 16: Minh họa các sự kiện và thông điệp trong biểu đồ Timing Diagram .............38
Hình 17: Minh họa thể hiện thời gian trong biểu đồ Timing Diagram..........................39
Hình 18: Thời gian ước lượng trong biểu đồ Timing Diagram .....................................39
Hình 19: Minh họa các đường state-line trong biểu đồ Timing Diagram .....................40
Hình 20: Minh họa các ràng buộc thời gian trong biểu đồ Timing Diagram................40
Hình 21: Minh hoạ mô hình Web Service với Service Proxy ........................................42
Hình 22: Minh họa mô hình tích hợp Web Service .......................................................46
Hình 23: Minh hoạ mô hình tổng quan bài toán Travel-Agent .....................................51
Hình 24: Minh hoạ đường Lifeline cho SearchHotel Service........................................52
Hình 25: Minh hoạ đường Lifeline cho SearchFlight Service.......................................53
viii
Hình 26: Minh họa thiết kế tổng thể của ứng dụng ......................................................56
Hình 27: Biểu đồ tuần tự của hệ thống.........................................................................57
Hình 28: Minh họa giao diện Admin của apache soap trên Web Server tại cổng 2417.59
Hình 29: Minh họa giao diện Admin của apache soap trên Web Server tại cổng 8080.60
Hình 30: Minh họa trang Admin của Apache Axis trên Web Server tại cổng 8080 .......60
Hình 31: Code kết nối database trong file SearchHotel Service ...................................61
Hình 32: Nội dung của tệp deploy.wsdl........................................................................62
Hình 33: Danh sách các dịch vụ liệt kê trên web site soap engine................................63
Hình 34: Nội dung file deploy.wsdd .............................................................................64
Hình 35: Các dịch vụ được liệt kê trên trang quản trị của Axis....................................65
Hình 36: Nội dung file WSDL của dịch vụ SearchFlightService ...................................66
Hình 37: Code Service Proxy goi tới SearchFlightService ...........................................67
Hình 38: Minh họa đo lường thời gian đáp ứng ...........................................................68
Hình 39: Minh họa test chương trình ...........................................................................70
Hình 40: Biểu đồ Timing Diagram mô tả ràng buộc thời gian của WSComposition .....71
Hình 41: Minh hoạ mô hình kiểm chứng ràng buộc thời gian đáp ứng.........................72
1
CHƯƠNG 1: ĐẶT VẤN ĐỀ
1.1. Bối cảnh
Sự phát triển của công nghệ thông tin cho phép ứng dụng hiệu quả vào các hoạt
động kinh doanh, giải trị, quản lý cũng như một số lĩnh vực khoa học xã hội khác. Sự
bùng nổ của Internet đã trở thành một điều kiện hết sức thuận lợi, đem lại hiệu suất cao
trong công việc đồng thời giảm thiểu chi phí cho các doanh nghiệp. Tuy nhiên các yêu
cầu về nghiệp vụ phức tạp trong hệ thống này dẫn đến các hệ thống phần mềm tương ứng
cũng ngày càng trở nên phức tạp, cồng kềnh và khó kiểm soát. Rất nhiều yêu cầu nghiệp
vụ đòi hỏi xử lý các vấn đề liên quan đến dữ liệu phân tán, xử lý các thông tin khác nhau
do nhiều tổ chức nắm giữ. Đã có nhiều kiến trúc phần mềm được đưa ra nhưng chưa đủ
mạnh để giải quyết được vấn đề này. Sự ra đời của kiến trúc phần mềm hướng dịch vụ đã
mở ra một hướng đi mới trong việc giải quyết các loại bài toán này.
Kiến trúc SOA định nghĩa một kiểu kiến trúc cho việc xây dựng các hệ thống phân
tán theo hướng dịch vụ, tức là hệ thống được phân tách thành các module chương trình,
và các module này được phát triển độc lập, các module sử dụng các công nghệ khác nhau
nhưng vẫn có thể giao tiếp được với nhau. Một công nghệ tiêu biểu nhất cho kiến trúc
hướng dịch vụ là công nghệ Web Service. Với công nghệ Web Service, mỗi Service ở đây
là một module có thể thực hiện các công việc khác nhau, ta có thể tổng hợp các Service
thành phần lại để cùng thực hiện một công việc lớn, đó được gọi là công nghệ tích hợp
Web Service, khi đó mỗi Service thành phần được gọi là một Service Composition. Sự ra
đời của công nghệ Web Service đã đem lại rất nhiều lợi thế cho việc chia sẻ tài nguyên
qua mạng, trợ giúp xây dựng các hệ thống phân tán đồng thời đáp ứng được tính mềm dẻo
cần thiết, hệ thống có thể dễ dàng chấp nhận những thay đổi lớn so với thiết kế ban đầu
mà vẫn đảm bảo cho vấn đề nâng cấp và bảo trì sau này. Web Service đem đến đầy đủ sự
2
đáp ứng cần thiết cho các quy trình B2B – Bussiness to Bussiness và B2C – Bussiness to
Customer, chính vì thế Web Service hiện tại đang là một thuật ngữ đang được nhắc đến
rất nhiều và ngày càng được sử dụng rộng rãi.
Tuy nhiên Web Service là một công nghệ triển khai thông qua môi trường Internet
cho nên vấn đề về chất lượng các dịch vụ Web cũng là một vấn đề đáng lưu tâm, chính vì
thế đã xuất hiện các tiêu chuẩn chất lượng dịch vụ cho Web Service – QoS cho Web
Service. Một khía cạnh về QoS cho Web Service đó là thời gian đáp ứng của các dịch vụ
Web, đây là một vấn đề rất đáng quan tâm vì Web Service là một kiến trúc phần mềm
phân tán, cho nên thường có một sự liên kết giữa các dịch vụ với nhau. Khi thời gian đáp
ứng của một dịch vụ quá lâu có thể dẫn đến ảnh hưởng tới các dịch vụ khác. Mặt khác khi
có nhiều nhà cung cấp dịch vụ Web thì khi đó sẽ có nhiều sự lựa chọn của khách hàng
trong việc tìm và sử dụng dịch vụ Web tốt nhất cho mình. Trên môi trường Internet,
người sử dụng trước tiên sẽ quan tâm nhất đến vấn đề thời gian, thời gian đáp ứng của
một dịch vụ Web nhanh hay chậm sẽ quyết định đến sự thành công hay không của nhà
cung cấp dịch vụ Web đó. Việc kiểm soát thời gian đáp ứng của các dịch vụ Web là một
khía cạnh rất rộng, cho nên ở phạm vi khóa luận này chúng tôi đề cập đến việc kiểm
chứng ràng buộc thời gian đáp ứng của việc tích hợp các Web Services có đáp ứng được
với tiêu chuẩn QoS về thời gian hay không.
1.2. Mục tiêu khóa luận
Để thực hiện các vấn đề nêu ra như trên, khoá luận sẽ lần lượt trình bày những kiến
thức cần thiết để giải quyết yêu cầu của bài toán đặt ra.
Khóa luận sẽ tập trung vào một số các vấn đề sau:
Tìm hiểu khái quát về kiến trúc hướng dịch vụ SOA, đi sâu tìm hiểu công nghệ
Web Service, kiến trúc và các thành phần sử dụng cho Web Service.
Tìm hiểu Service Proxy, một dạng Web Service đặc biệt được triển khai ở phía
người sử dụng dịch vụ.
3
Tiếp cận đến vấn đề về chất lượng các dịch vụ Web, các yếu tố ảnh hưởng đến
hiệu năng hoạt động của Web Service. Đi vào tìm hiểu việc đo lường thời gian đáp
ứng của các Web Service Composition sử dụng Service Proxy.
Nghiên cứu về biểu đồ UML Timing Diagram, mô hình hóa các ràng buộc thời
gian đáp ứng của Web Service Composition trên biểu đồ UML Timing Diagram.
Đề xuất phương pháp kiểm chứng tự động thời gian đáp ứng của các Web Services
trong một ứng dụng sử dụng sự tích hợp các Web Services với các ràng buộc mà
biểu đồ UML Timing Diagram mô tả.
1.3. Cấu trúc khóa luận
Các phần còn lại của khóa luận bao gồm các phần sau:
Chương 2 đưa ra cái nhìn tổng quát về công nghệ Web Service, tìm hiểu về các
thành phần chuẩn được sử dụng trong công nghệ Web Service, kiến trúc Web Service và
quy trình hoạt động của một Web Service.
Chương 3 tiếp cận đến vấn đề chất lượng dịch vụ Web. Xem xét các yêu cầu về
chất lượng cho Web Service, các yếu tố ảnh hưởng đến hiệu năng hoạt động của Web
Service và một vài phương pháp đơn giản để cung cấp chất lượng dịch vụ Web.
Chương 4 trình bày về biểu đồ mới được thêm vào trong UML 2.0 đó là biểu đồ
Timing Diagram. Tìm hiểu về mục đích biểu đồ, các thành phần sử dụng trong biểu đồ
Timing Diagram và từ đó sử dụng biểu đồ Timing Diagram để đặc tả cho các ràng buộc
thời gian của các Web Service Composition.
Chương 5 phân tích bài toán “Xây dựng Service Proxy để kiểm chứng ràng buộc
thời gian đáp ứng trong Web Service Compositio