CHẤT LƯỢNG DỊCH VỤ CHO DỊCH VỤ WEB Hoàng Xuân Huy Đại học Công Nghệ Luận văn thạc sĩ ngành: Công nghệ thông tin. Mã số: 60.48.01.03 Người hướng dẫn khoa học: TS. Võ Đình Hiếu Abstract:Luận văn tìm hiểu các kiến thức liên quan đến dịch vụ web XML, SOAP, WSDL, UDDI. Đặc điểm thuộc tính chất lượng dịch vụ trong dịch vụ web, các phương pháp so sánh dịch vụ web dựa vào nhiều thuộc tính chất lượng dịch vụ và các phương pháp biểu diễn chất lượng dịch vụ.Ngoài ra, luận văn đưa ra các vấn đề về tổng hợp dịch vụ, đàm phán dịch vụ web, tìm hiểu các nội dung về mã nguồn mở Axis2.Trên cơ sở đó, tác giả trình bày một khung đàm phán chất lượng dịch vụ cho dịch vụ web trong lĩnh vực du lịch.Khung đàm phán này là công cụ sử dụng cho nghiên cứu và giảng dạy.Ngoài ra, sản phẩm khung đàm phán này được hoàn thiện như mong muốn của tác giả thì nó có thể được đem vào ứng dụng thực tế trong lĩnh vực du lịch. Keyword:dịch vụ web, SOAP, WSDL, UDDI, chất lượng dịch vụ web, tổng hợp dịch vụ, đàm phán dịch vụ web, Axis2.
X`ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ HOÀNG XUÂN HUY XÂY DỰNG KHUNG ĐÀM PHÁN CHẤT LƯỢNG DỊCH VỤ CHO DỊCH VỤ WEB Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm Mã số : 60.48.01.03 TÓM TẮT LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội - 2014 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CƠNG NGHỆ HỒNG XUÂN HUY XÂY DỰNG KHUNG ĐÀM PHÁN CHẤT LƯỢNG DỊCH VỤ CHO DỊCH VỤ WEB Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm Mã số : 60.48.01.03 NGƯỜI HƯỚNG DẪN KHOA HỌC: TS VÕ ĐÌNH HIẾU Hà Nội - 2014 CHẤT LƯỢNG DỊCH VỤ CHO DỊCH VỤ WEB Hồng Xn Huy Đại học Cơng Nghệ Luận văn thạc sĩ ngành: Công nghệ thông tin Mã số: 60.48.01.03 Người hướng dẫn khoa học: TS Võ Đình Hiếu Abstract: Luận văn tìm hiểu kiến thức liên quan đến dịch vụ web XML, SOAP, WSDL, UDDI Đặc điểm thuộc tính chất lượng dịch vụ dịch vụ web, phương pháp so sánh dịch vụ web dựa vào nhiều thuộc tính chất lượng dịch vụ phương pháp biểu diễn chất lượng dịch vụ Ngoài ra, luận văn đưa vấn đề tổng hợp dịch vụ, đàm phán dịch vụ web, tìm hiểu nội dung mã nguồn mở Axis2 Trên sở đó, tác giả trình bày khung đàm phán chất lượng dịch vụ cho dịch vụ web lĩnh vực du lịch Khung đàm phán công cụ sử dụng cho nghiên cứu giảng dạy Ngoài ra, sản phẩm khung đàm phán hoàn thiện mong muốn tác giả đem vào ứng dụng thực tế lĩnh vực du lịch Keyword: dịch vụ web, SOAP, WSDL, UDDI, chất lượng dịch vụ web, tổng hợp dịch vụ, đàm phán dịch vụ web, Axis2 4 LỜI MỞ ĐẦU Đặt vấn đề, định hướng nghiên cứu Dịch vụ web đời, coi cách mạng công nghệ Bởi dịch vụ web cho phép ứng dụng trao đổi liệu với thông qua Internet giao thức chuẩn mà không cần quan tâm đến tảng cơng nghệ bên Ngày nay, dịch vụ web phát triển phổ biến triển khai nhiều lĩnh vực đời sống Khi ngày nhiều dịch vụ web cung cấp chức tương tự nhau, để phân biệt chức dịch vụ thường dựa vào thông tin chất lượng dịch vụ chúng Hơn nữa, yêu cầu người dùng thường phức tạp mà dịch vụ đơn lẻ đáp ứng yêu cầu Vì vậy, cần phải xây dựng dịch vụ tổng hợp từ dịch vụ đơn lẻ thỏa mãn yêu người dùng Có vấn đề đưa ra, làm chọn chức phù hợp số chức giống thuộc dịch vụ đơn lẻ để phục vụ cho tổng hợp dịch vụ Để trả lời cho câu hỏi này, tác giả sử dụng mơ hình chất lượng dịch vụ để phân biệt hàm dịch vụ giống sử dụng phương pháp để chọn hàm dịch vụ tối ưu kho hàm dịch vụ dịch vụ thành phần Từ đó, tác giả đề xuất giải − − pháp xây dựng khung đàm phán chất lượng dịch vụ cho dịch vụ web Nội dung luận văn Luận văn chia thành phần sau: Mở đầu: Phần đặt vấn đề đưa mục tiêu giải pháp cho toán Chương 1: giới thiệu tổng quan, khái niệm dịch vụ web, kiến trúc dịch vụ web, mơ hình phân tầng dịch vụ web, phương pháp tiếp cận tổng − hợp dịch vụ web tự động Chương 2: Trình bày chất lượng dịch vụ dịch vụ web, thuộc tính chất lượng dịch vụ, phương pháp cung cấp chất lượng dịch vụ Vấn đề đám phán − dịch vụ web,chính sách đàm phán, giao thức đàm phán, thơng điệp đàm phán Chương 3: Trình bày Axis2, giới thiệu Axis2, Mô đun xử lý XML, mô đun thông − tin, mô đun xử lý thông điệp SOAP, mô đun triển khai, mô đun client API Chương 4: Đưa mơ hình khung đàm phán chất lượng dịch vụ dịch vụ web, dịch vụ triển khai Axis2, cài đặt thử nghiệm ngôn ngữ Java sử dụng thư viện Axis2 5 − Kết luận & định hướng: tổng kết lại kiến thức tìm hiểu trình bày luận văn, đánh giá kết làm Đưa hướng phát triển tương lại 6 Chương TỔNG QUAN VỀ DỊCH VỤ WEB 1.1 Giới thiệu dịch vụ web Dịch vụ web thiết kế hệ thống phần mềm để cung cấp phương tiện cho phần mềm giao tiếp với môi trường mạng internet Dịch vụ web dựa chuẩn XML, nên dịch vụ web cho phép ứng dụng truy cập thông qua giao thức định dạng liệu phổ biến HTTP, XML, SOAP,REST, WSDL, JSON Vì ứng dụng trao đổi liệu với dịch vụ web không cần quan tâm đến vấn đề hệ điều hành, tảng ứng dụng 1.2 Kiến trúc dịch vụ web Có ba vai trò kiến trúc dịch vụ web bao gồm: Nhà cung cấp dịch vụ, nhà yêu cầu dịch vụ, đăng ký dịch vụ 1.2.1 SOAP SOAP giao thức đóng gói thơng điệp dựa XML SOAP cung cấp chế đơn giản nhẹ trao đổi thông tin ứng dụng môi trường phân tán sử dụng XML Cấu trúc thông điệp SOAP bao gồm : Phong bì thư SOAP, phong bì thư SOAP bao gồm thành phần sau: Phần tiêu đề, phần thân, phần lỗi 1.2.2 WSDL Ngôn ngữ miêu tả dịch vụ web viết tắt WSDL WSDL định dạng XML, định nghĩa cú pháp XML để miêu tả trừu trượng thành phần dịch vụ web Các phần tử sau định nghĩa tài liệu WSDL để miêu tả dịch vụ: Types, Message, PortType, Binding, Port, Service 1.2.3 UDDI Mô tả khám phá dịch vụ web viết tắt UDDI UDDI xây dựng dựa số tiêu chuẩn công nghệ, bao gồm thành phần sau: HTTP, XML, XSD, SOAP WSDL Vì nơi chứa thông tin dịch vụ, cho phép đăng ký dịch vụ cho phép tìm kiếm dịch vụ 1.3 Mơ hình phân lớp dạng ngăn xếp dịch vụ web Trong kiến trúc dịch vụ web bao gồm hai thành phần: Thành phần lõi thành phần mở rộng Trong đó, thành phần lõi thành phần bắt buộc dịch vụ web Nó bao gồm lớp sau: Lớp giao thức giao tiếp, lớp thông điệp gồm liệu dạng XML giao thức SOAP, lớp miêu tả WSDL lớp khám phá UDDI 7 Thành phần mở gồm lớp chất lượng dịch vụ lớp xử lý logic Thành phần mở có vai trị hỗ trợ phát triển yêu cầu cao cấp xây dựng dịch vụ web 1.4 Phương pháp tiếp cận để tổng hợp dịch vụ tự động Có hai loại tổng hợp dịch vụ tổng hợp dịch vụ tay tổng hợp dịch vụ tự động Trong tổng hợp dịch vụ tự động có hai phương pháp tiếp cận là: Phương pháp dựa quy trình cơng việc (workflow) phương pháp dựa vào lập kế hoạch trí tuệ nhân tạo 8 Chương CHẤT LƯỢNG DỊCH VỤ VÀ ĐÀM PHÁN CHẤT LƯỢNG DỊCH VỤ 2.1 Chất lượng dịch vụ Ngày nay, dịch vụ web ngày phát triển Chúng không phát triển tảng web mà chúng phát triển mạnh mẽ tảng di động Vì vây, vấn đề chất lượng dịch vụ quan tâm 2.1.1 Các thuộc tính chất lượng dịch vụ Chất lượng dịch vụ sử dụng để xác định thuộc tính phi chức dịch vụ Các thuộc tính chất lượng dịch vụ định nghĩa cụ thể cho dịch vụ web chẳng hạn như: Độ sẵn sàng, an ninh, thời gian đáp ứng, chi phí, thông lượng, độ tin cậy 2.1.2 Phương pháp cung cấp chất lượng dịch vụ Cung cấp thông tin chất lượng dịch vụ dịch vụ thành phần đóng vai trò quan trọng việc tổng hợp chất lượng dịch vụ web Đối với dịch vụ web thành phần có nhiều giải pháp đề xuất để cung cấp thông tin chất lượng dịch vụ Sử dụng UDDI để chứa thông tin chất lượng dịch vụ, cách đăng ký thông tin chất lượng dịch vụ UDDI Bởi cấu trúc cho phép mơ tả thông tin chất lượng dịch Sử dụng SOAP để lưu trữ thông tin chất lượng dịch vụ Do SOAP có khả hỗ trợ tìm kiếm dịch vụ web, nên đính kèm thơng tin chất lượng dịch vụ mục tìm kiếm Một phương án đề xuất xây dịch vụ WS_QoS độc lập chứa thông tin chất lượng dịch vụ xây dựng hàm riêng biệt chứa thông tin chất lượng dịch vụ Sử dụng SOAP Trước người dùng muốn sử dụng hàm dịch vụ, người dùng kiểm tra thông tin chất lượng dịch vụ thơng qua WS_QoS qua hàm chứa thông tin chất lượng dịch vụ 2.2 Đàm phán dịch vụ web Đàm phán tương tác hai hay nhiều bên nỗ lực đạt số thỏa thuận khía cạnh cụ thể Khía cạnh đàm phán mức giá hàng hóa thương mại điện tử chi phí phải trả để sử dụng dịch vụ 9 2.2.1 Chính sách đàm phán Chính sách hiểu đặt quy tắc xác định hành động hay xác nhận thực điều kiện định đáp ứng, dẫn đến định để đạt mục tiêu định Mỗi sách đàm phán thường có đặc tả miền cụ thể khác Các yếu tố miền là: Ngữ cảnh, mục đích, ràng buộc, vấn đề ưu tiên hay vấn đề tùy chọn số yếu tố khác hình 2.2.2 Thơng điệp đàm phán Các thành phần đàm phán sử dụng thơng điệp để trao đổi với q trình đàm phán Khi dịch vụ A đàm phán dịch B thơng điệp u cầu (Request message) gửi từ dịch A tới dịch vụ B, dịch vụ B phản hồi cho thông điệp A với thông điệp phản hồi (Respone message) 2.2.3 Giao thức đàm phán Giao thức đàm phán sử dụng để mô tả chế quy tắc bên đàm phán Các giao thức xác định bên tương tác với trả ảnh hướng định chúng Hệ thống hỗ trợ đàm phán viết tắt NSS kiến trúc dịch vụ web cho phép trao đổi thông điệp đàm phán nhà cung cấp dịch vụ nhà yêu cầu dịch vụ với dịch vụ đàm phán thứ ba Các dịch vụ đàm phán thường dịch vụ web, dịch vụ đàm phán xác định tập giao thức đàm phán nguyên thủy, để nhà yêu cầu dịch vụ nhà cung cấp dịch vụ giao tiếp hoạt động 10 Chương TÌM HIỂU VỀ MÃ NGUỒN MỞ AXIS2 3.1 Giới thiệu Axis2 Axis2 khung chương trình triển khai dịch vụ web Ngồi Axis2 mã nguồn mở cho phép phát triển thêm tính tiện ích xung quanh dịch vụ web Axis2 cung cấp khung chương trình để xử lý thơng điệp SOAP Khung chương trình mở rộng người dùng mở rộng xử lý thông điệp SOAP hoạt động sở Axis2 có khả triển khai dịch vụ web với hỗ trợ WSDL không cần WSDL Axis2 cung cấp giao diện thao tác người dùng (Client API) sử dụng để gọi dịch vụ web Giao diện thao tác người dùng hỗ trợ cho hai mơ hình đồng bất đồng 3.2 Mô đun xử lý XML Axis1 sử dụng DOM để thể lược đồ XML toàn cấu trúc phân cấp đầy đủ đối tượng (tương ứng với thông điệp đến) lưu trữ nhớ Điều khơng có vấn đề kích thước thơng điệp nhỏ Nhưng kích thước thơng điệp lớn, nên vấn đề Axis1 Axis2 khắc phụ điều cách sử dụng kỹ thuật gọi trục mơ hình đối tượng (AXIs Object Model - AXIOM) để thể lược đồ XML 3.3 Mơ đun xử lý thơng tin Các ứng dụng địi hỏi khả hỗ trợ hai loại liệu tĩnh liệu động sử dụng khung dịch vụ web (Web service framework) Hiện số khung dịch vụ web đáp ứng điều Axis2 có hai hệ thống phân cấp đối tượng để hỗ trợ liệu tĩnh liệu động Mơ hình thơng tin có hai hệ thống phân cấp ngữ cảnh (context) mơ tả ( description) Trong hệ thống phân cấp mô tả (Description) biểu diễn liệu tĩnh Dữ liệu tĩnh nạp từ tập tin cấu hình Mặt khác, hệ thống phân cấp ngữ cảnh (Context) chứa nhiều thông tin động đối tượng có nhiều thể 3.4 Mô đun xử lý thông điệp SOAP Nhận gửi thơng điệp SOAP coi hai số công việc chủ yếu máy xử lý SOAP Trong kiến trúc Axis2 cung cấp hai đường ống để thực hai hành động nhận gửi thơng điệp SOAP Hai đường ống có tên InPipe OutPipe Các mẫu tin nhắn trao đổi phức tạp ký hiệu MEPs, 11 xây dựng kết nối hai loại ống InPipe OutPipe Ngoài cịn hai đường ống khác có mục đích hỗ trợ cho thông điệp gửi đến gửi bị lỗi 3.5 Xử lý, giai đoạn, luồng Axis2 Axis2 xây dựng chế xử lý (handlers) làm tăng khả mở rộng mềm dẻo mơ hình xử lý thơng điệp SOAP, cịn cung cấp thêm tiện ích dịch vụ (Add on services) cho nhiệm vụ hay hệ thống khác Xử lý (handler) Axis2 không trạng thái, nghĩa Axis2 không giữ trạng thái qua thực chúng nhớ Một xử lý (handler) có quyền đọc viết vào ngữ cảnh thông điệp ( Message context) thông điệp SOAP đến Khái niệm giai đoạn (phase) giới thiệu Axis2, giai đoạn nơi đặt xử lý (handlers) chuỗi dây chuyền thực Giai đoạn có nhiệm vụ hỗ trợ việc thứ tự động xử lý (handlers) Dòng chảy hay gọi luồng (flow) tập hợp giai đoạn thứ tự giai đoạn theo dòng chảy xác định định nghĩa tập tin cấu hình axis2.xml Có bốn loại dịng chảy định nghĩa Axis2: Dòng chảy InFlow, dòng chảy InFaulFlow, dòng chảy OutFlow, dịng chảy OutFaultFlow 3.6 Mơ đun giao vận mô đun triển khai Axis2 thiết kế để khắc phục nhược điểm cung cấp cách linh hoạt, thân thiện, mơ hình cấu hình triển khai dễ dàng Axis2 có hai loại giao vận giao vận gửi (Transport Senders) giao vận nhận ( Transport Receivers) Chúng truy cập thông qua tệp cấu hình Axis2 Giao vận nhận có nhiệm vụ nhận thơng điệp, giao vận gửi có nhiệm vụ gửi thơng điệp ngồi Hơn giao vận gửi giao vận nhận hoàn toàn độc lập Axis2 coi cập nhật nóng Khi Axis2 tìm thấy tệp mới, đối xử triển khai nóng Triển khai nóng triển khả triển khai dịch vụ hệ thống chạy thời gian thực Trong hệ thống quản trị Axis2 bạn không muốn triển khai nóng, bạn thay đổi dễ dàng tệp cấu hình axis2.xml Chương XÂY DỰNG KHUNG ĐÀM PHÁN CHẤT LƯỢNG DỊCH VỤ CHO DỊCH VỤ WEB Trong lĩnh vực dụ lịch có dịch vụ đặt tour, dịch vụ đặt phòng, dịch vụ đặt vé máy bay, dịch vụ đặt xe, dịch vụ tra cứu thời tiết… Thông thường dịch vụ miễn phí để tạo điều kiện thuận lợi phát triển du lịch 12 Nhưng số nhà cung cấp dịch vụ yêu cầu phải trả phí sử dụng để giảm bớt thông tin rác Bởi đối tượng khách hàng người VIP, giàu dịch vụ phục vụ cho khách sạn, tour thuộc hạng sang Đặc điểm dịch vụ là: - Các dịch vụ riêng lẻ, độc lập, cung cấp nhà cung cấp dịch vụ khác - Các dịch vụ có nhiều hàm dịch vụ có chức tương tự nhau, chúng phân biệt dựa vào thông tin chất lượng dịch vụ Các hàm gọi hàm chức - Ký hiệu thông tin chất lượng dịch QoS Các dịch vụ có số hàm dịch vụ chuyên cung cấp QoS cho hàm chức Các hàm gọi hàm dịch vụ phi chức hay hàm phi chức Các hàm phi chức cho phép người dùng hỏi thông tin chất lượng dịch hàm chức - năng, từ người dùng định nên sử dụng hàm chức cho phù hợp Các dịch vụ ký hiệu Book_WSi, xét ngữ cảnh khung đàm phán luận văn i= 1, Đồng thời Book_WSi dịch vụ thành phần khung đàm phán mô tả mục 4.1 Các yêu cầu người dùng thường phức tạp, dịch vụ đơn lẻ khơng đáp ứng Vì vậy, cần thiết phải xây dựng dịch vụ tổng hợp mới, dịch vụ thực tổng hợp từ dịch vụ thành phần Có hai loại tổng hợp dịch vụ: Một tổng hợp hàm dịch vụ chức năng, hai tổng hợp hàm dịch vụ phi chức Trong nội dung luận văn thực tổng hợp hàm dịch phi chức để tạo dịch tổng hợp Cụ thể xây dựng khung đàm phán chất lượng dịch vụ cho dịch vụ web, kết khung đàm phán tạo dịch tổng hợp chất lượng dịch vụ 4.1 Mơ tả tốn Giả sử, Book_WSi dịch vụ thành phần với (i= 1, 2) tương ứng dịch vụ đặt phòng BookHotel đặt tour BookTour Trong BookHotel có hàm dịch vụ đặt phịng giống nhau, chúng khác chất lượng dịch vụ ký hiệu FuncHotelj, với (j=1, 2, 3) là: FuncHotel1, FuncHotel2, FuncHotel3 Ngồi BookHotel có hàm dịch vụ GetQoS, hàm trả danh sách đối tượng chất lượng dịch vụ ObjQoS hàm đặt phòng Tương tự, ta có 13 BookTour có hàm dịch vụ đặt tour ký hiệu FuncTourk, với (k= 1, 2, 3, 4) là: FuncTour1, FuncTour2, FuncTour3, FuncTour4 Dịch vụ BookTour có hàm dich vụ GetQoS trả danh sách đối tượng chất lượng dịch vụ ObjQoS hàm đặt tour Giả sử khung đàm phán xét thuộc tính chất lượng dịch vụ cost, time, avaiablity tương ứng có ý nghĩa giá cả, thời gian độ sẵn sàng Khi ObjQoS = {cost, time, avaiablity} Gọi Travel_WS dịch vụ tổng hợp khung đàm phán Trong Travel_WS có giá trị chất lượng dịch vụ đầu vào (const_cost, const_time, const_avaiablity) Dịch vụ WS_Travel có nhiệm vụ chọn cặp (FuncHotelj, FuncTourk) dịch thành phần Book_WSi thỏa mãn biểu thức sau