Chương 3 : TÌM HIỂU VỀ AXIS2
4.7 Kết quả thực nghiệm
Dữ liệu đầu vào của dịch vụ Travel_WS bao gồm.
- Các thuộc tính chất lượng dịch vụ Cost, Time và Availability và trọng số tương ứng 0.3, 0.3, 0.4. Tổng các trọng số luôn phải bằng 1.
- Giá trị các thuộc tính chất lượng dịch vụ
{Cost, Time và Availability} = {1.7, 2.8,0.96}. - Thời gian timeout của dịch vụ Travel_WS là 15s.
Dữ liệu đầu vào của các dịch vụ thành phần BookingHotel, BookingTour - Thời gian timeout của các hàm chức năng là 15s
- Thời gian timeout của hàm chất lượng dịch vụ GetInfoQoS là 15s. Kết quả của khung đàm phán.
Kết quả các bước thực hiện của khung đàm phán như sau.
Bƣớc 1. Dịch Travel_WS đọc thông tin cấu hình để xác định các dịch vụ thành phần, sau đó Travel_WS gửi thông điệp GetInfoQoS với các dịch vụ thành phần.
Bƣớc 2. Kết quả phản hồi của hàm GetInfoQoS trong dịch vụ BookHotel là. [{cost:0.03636092,time:1.4978759,avaiablity:0.79, func:FuncHotel1}; {cost:0.49026966,time:1.2486365,avaiablity:0.96, func:FuncHotel2}; {cost:0.6564163,time:1.2208222,avaiablity:0.92, func:FuncHotel3}]
Kết quả phần hồi của hàm GetInfoQoS trong dịch vụ BookingTour là. [ {cost:0.78765845,time:0.81255513,avaiablity:0.79, func:FuncTour1}; {cost:0.9473247,time:1.2091951,avaiablity:0.84, func:FuncTour2}; {cost:0.73153687,time:0.7704551,avaiablity:0.79, func:FuncTour3}; {cost:0.7291133,time:1.2998772,avaiablity:0.84, func:FuncTour4}]
Bƣớc 3. Dịch vụ Travel_WS thực hiện tổng hợp kết quả phản hồi và tìm ra được các cặp hàm dịch vụ thỏa mãn điều kiện đầu vào. Kết quả của Travel_WS như sau. {cost:0.03636092,time:1.4978759,avaiablity:0.79, func:FuncHotel1,total:0.7762711}; {cost:0.78765845,time:0.81255513,avaiablity:0.79, func:FuncTour1,total:0.79606414} {cost:0.03636092,time:1.4978759,avaiablity:0.79, func:FuncHotel1,total:0.7762711}; {cost:0.73153687,time:0.7704551,avaiablity:0.79, func:FuncTour3,total:0.7665976} {cost:0.03636092,time:1.4978759,avaiablity:0.79,
func:FuncHotel1,total:0.7762711}; {cost:0.7291133,time:1.2998772,avaiablity:0.84, func:FuncTour4,total:0.94469714} {cost:0.49026966,time:1.2486365,avaiablity:0.96, func:FuncHotel2,total:0.9056719}; {cost:0.78765845,time:0.81255513,avaiablity:0.79, func:FuncTour1,total:0.79606414} {cost:0.49026966,time:1.2486365,avaiablity:0.96, func:FuncHotel2,total:0.9056719}; {cost:0.73153687,time:0.7704551,avaiablity:0.79, func:FuncTour3,total:0.7665976} {cost:0.6564163,time:1.2208222,avaiablity:0.92, func:FuncHotel3,total:0.93117154}; {cost:0.78765845,time:0.81255513,avaiablity:0.79, func:FuncTour1,total:0.79606414} {cost:0.6564163,time:1.2208222,avaiablity:0.92, func:FuncHotel3,total:0.93117154}; {cost:0.73153687,time:0.7704551,avaiablity:0.79, func:FuncTour3,total:0.7665976}
Bƣớc 4. Dịch vụ Web gửi thông điệp Confirm tới các dịch vụ thành phần yêu cầu xác định các hàm chức năng vừa chọn ở bước 3 có ở trạng thái sẵn sàng sử dụng không.
Bƣớc 5. Kết quả phản hồi của hàm Confirm trong dịch vụ BookingHotel. func:FuncHotel1,used:0,keys:8f2b6f6f-ee8e-4d80-be51-edf06719ea85; func:FuncHotel2,used:1,keys:8f6b9197-baad-4de5-91e1-69e28beccf24; func:FuncHotel3,used:1,keys:ca3a5fa5-8b76-46a1-a731-1ce3f238c058.
Kết quả phản hồi của hàm Confirm trong dịch vụ BookingTour.
func:FuncTour1,used:1,keys:b3859b81-f4e6-4c18-81f0-ebdfd0233236; func:FuncTour3,used:1,keys:a68564d4-3a55-4e48-b05f-8df8a3c66273; func:FuncTour4,used:1,keys:3153e320-c327-4cd8-9bd7-ec63c38f0c8e
Trong đó, giá trị used =1 nghĩa là hàm chức năng này ở trạng thái sẵn sàng và used = 0 là hàm này không ở trạng thái sẵn sàng. Mỗi hàm chức năng được nhận một giá trị keys, giá trị keys có ý nghĩa để dịch vụ thành phần xác định ứng dụng nào đang sử dụng hàm chức năng.
Với kết quả này, hàm FunctionHotel1 không ở trạng thái sẵn sàng nên dịch vụ Travel_WS tiến hành đàm phán lại.
Bƣớc 6. Dịch vụ Travel_WS tiến hành bỏ dữ liệu của FunctionHotel1. Khi đó dữ liệu tổng hợp của Travel_WS có được ở bước 3 là.
{cost:0.49026966,time:1.2486365,avaiablity:0.96, func:FuncHotel2,total:0.9056719};
{cost:0.78765845,time:0.81255513,avaiablity:0.79, func:FuncTour1,total:0.79606414}
{cost:0.49026966,time:1.2486365,avaiablity:0.96, func:FuncHotel2,total:0.9056719}; {cost:0.73153687,time:0.7704551,avaiablity:0.79, func:FuncTour3,total:0.7665976} {cost:0.6564163,time:1.2208222,avaiablity:0.92, func:FuncHotel3,total:0.93117154}; {cost:0.78765845,time:0.81255513,avaiablity:0.79, func:FuncTour1,total:0.79606414} {cost:0.6564163,time:1.2208222,avaiablity:0.92, func:FuncHotel3,total:0.93117154}; {cost:0.73153687,time:0.7704551,avaiablity:0.79, func:FuncTour3,total:0.7665976}
Bƣớc 7. Dịch vụ Travel_WS gửi lại thông điệp Confirm tới các dịch vụ thành phần yêu cầu xác định các hàm chức năng FuncHotel2, FuncHotel3, FuncTour1, FuncTour3 có ở trạng thái sẵn sàng không.
Bƣớc 8. Kết quả phản hồi của hàm GetInfoQoS trong dịch vụ BookingHotel. func:FuncHotel2,use:1,keys:d4884fbb-3e35-4b04-a2e6-37a25afbb316; func:FuncHotel3,use:1,keys:be25674c-2597-45bb-95bb-2ae253f2ca03.
Kết quả phản hồi của hàm Confirm trong dịch vụ BookingTour.
func:FuncTour1,use:1,keys:dc804f07-5a05-4c92-a865-1620d8a55041; func:FuncTour3,use:1,keys:1b2d3752-29f3-4003-96f3-c542272f6863.
Kết quả cho thấy các hàm chức năng này đều ở trạng thái sẵn sàng. Nên Travel_WS không tiến hành đàm phán lại nữa và thông báo kết quả trả về.
Bƣớc 9. Dịch vụ Travel_WS thông báo kết quả trả về. {cost:0.49026966,time:1.2486365,avaiablity:0.96, func:FuncHotel2,total:0.9056719}; {cost:0.78765845,time:0.81255513,avaiablity:0.79, func:FuncTour1,total:0.79606414} {cost:0.49026966,time:1.2486365,avaiablity:0.96, func:FuncHotel2,total:0.9056719}; {cost:0.73153687,time:0.7704551,avaiablity:0.79, func:FuncTour3,total:0.7665976} {cost:0.6564163,time:1.2208222,avaiablity:0.92, func:FuncHotel3,total:0.93117154}; {cost:0.78765845,time:0.81255513,avaiablity:0.79, func:FuncTour1,total:0.79606414} {cost:0.6564163,time:1.2208222,avaiablity:0.92, func:FuncHotel3,total:0.93117154}; {cost:0.73153687,time:0.7704551,avaiablity:0.79,
4.8 Tổng kết
Chương 4 trình bày về một mô hình đàm phán chất lượng dịch vụ cho dịch vụ Web để phục vụ bài toán tổng hợp dịch vụ Web. Trong đó, xây dựng các dịch vụ thành phần có một số hàm dịch vụ có chức năng giống nhau và được phân biệt nhau dựa vào thuộc tính chất lượng dịch vụ. Số lượng thuộc tính chất lượng dịch vụ trong khung là không bị giới hạn, các thuộc tính này được đánh độ ưu tiên dựa vào trọng số. Các trọng số này được lưu ở tệp tin cấu hình, người sử dụng có thể thay đổi được.
Dịch vụ kết hợp sẽ đàm phán với các dịch vụ thành phần, sau đó dịch vụ này chọn ra các hàm dịch vụ để thỏa mãn yêu cầu đưa ra. Việc thêm mới thuộc tính chất lượng dịch vụ hay thêm mới dịch vụ thành phần trong khung sẽ được thực hiện đơn giản bằng cách chỉnh sửa trên các tệp tin cấu hình.
KẾT LUẬN VÀ HƢỚNG NGHIÊN CỨU
Công nghệ dịch vụ Web ngày càng được ứng dụng rộng rãi trong các hệ thống thông tin. Bên cạnh chức năng, chất lượng dịch vụ của các dịch vụ Web ngày càng được quan tâm. Luận văn đã tìm hiểu về khía cạnh chất lượng dịch vụ trong kết hợp dịch vụ Web. Luận văn trình bày về tổng quan công nghệ dịch vụ Web, vấn đề chất lượng dịch vụ, kiến trúc Apache Axis 2, và đề xuất xây dựng khung đàm phán chất lượng dịch vụ cho dịch vụ Web kết hợp. Dưới đây là các kết quả mà khung đàm phán đã đạt được:
- Xây dựng được một dịch vụ Web kết hợp. Dịch vụ Web kết hợp này thực hiện đàm phán với các dịch vụ thành phần và chọn ra các hàm chức năng sao cho thỏa mãn yêu cầu đưa ra.
- Khung cho phép tổng hợp nhiều thuộc tính chất lượng dịch vụ, phân loại mức độ ưu tiên các thuộc tính chất lượng dịch vụ. Việc cập nhật các thuộc tính chất lượng dịch vụ được thực hiện trên tệp cấu hình, hệ thống tự động ghi nhận điều này. - Trong thiết kế của khung đàm phán đã tính toán đến việc thêm mới hoặc bỏ các dịch vụ Web thành phần.
- Các hàm chức năng của dịch vụ thành phần hay dịch vụ Web kết hợp đều có thời gian giới hạn. Nếu thời gian xử lý của các dịch vụ quá thời gian giới hạn thì kết quả của dịch vụ Web kết hợp được coi là thất bại và không có ý nghĩa.
- Khung được xây dựng trên mô ngôn ngữ Java và giao diện console.
Vấn đề chất lượng dịch vụ của dịch vụ Web hiện nay còn nhiều điều đáng phải quan tâm. Bởi thông tin chất lượng dịch vụ đang yếu tố nhạy cảm đối với khách hàng và nhà cung cấp dịch vụ, việc tính toán chất các thuộc tính chất lượng dịch vụ, việc có nhiều thuộc tính chất lượng dịch vụ được phân theo nhóm hay theo mức độ ưu tiên là các quan điểm chủ quan của nhà cung cấp hay của nhà phát triển. Quan điểm này có thể khác với quan điểm của khác hàng. Vậy có phương pháp nào để dung hòa được việc này. Đây là những vấn đề mà luận văn chưa đề cập tới. Sau đây là một số hướng phát triển của luận văn:
- Xây dựng cách tính chất lượng dịch vụ dựa trên một số thuật toán và nghiên cứu đã báo cáo trong các hội nghị khoa học.
- Xây dựng mô hình và cơ chế cho phép người dùng và nhà phát triển có thể tùy biến chọn phân loại hay độ ưu tiên chất lượng dịch.
- Xây dựng một mô đun chất lượng dịch triển khai trên Axis2. Kiến trúc của khung đàm phán chất lượng dịch mà chứa mô đun chuyên cung cấp chất lượng dịch vụ được mô tả ở hình 4-8 dưới đây. Trong phần thực nghiệm, tác giả cố gắng phát
triển ứng dụng theo mô hình này, nhưng đến nay vẫn chưa thành công. Vì vậy, đây là một trong những hướng phát triển tiếp của luận văn.
TÀI LIỆU THAM KHẢO
[1] Deepal Jayasinghe&Afkham Azeez, Apache Axis2 Web Services, version 2.0, 2- 2011.
[2] Buda Claudio, Web Services & Axis2 Architecture & Tutorial, 6- 2007. [3] Deepal Jayasinghe, Quickstart Apache Axis2, 4- 2008.
[4] Apache Axis: Webservice-Axis, version 1.4, 2006, https://axis.apache.org/axis/.
[5] Samisa Abeysinghe, Flows, Phases, Handlers and Modules, 2-2007, http://wso2.com/library/777/
[6] O'Reilly, Programming Web Services with SOAP, 12- 2001. [7]O'Reilly, Java Web Services, version 1.0, 3-2002.
[8] Abdaldhem Albreshne, Patrik Fuhrer, Jacque Pasquier Spasquier, Web Services Technologies, State of the Art, 9-2009.
[9] Patrick C.K.Hung, Haifei Li, Jun-Jang Jeng. An Overview of Research Issues
WS-Negotiation, Proceedings of the 37th Hawaii international conference on system
sciences, 2004.
[10] Farhana Zulkernine, Patrick Martin, Chris Craddock-SVP, Kirk Wilson-Ph.D,
A Policy-based Middleware for Web Services SLA Negotiation.
[11] Francis Brazier,Kassidy Clark,Michel Oey,Alexander Papaspyrou,Philipp Wieder,Wolfgang Ziegler,WS-Agreement Negotiation, version 1.0, 1-2011.
[12] Mahboobeh Moghaddam, Joseph G. Davis1, Service Selection in Web Service
Composition, 1-2011.
[13] Abhishek Srivastava, Paul G. Sorenson, Service Selection based on Customer Rating of Quality of Service Attributes, IEEE International Conference on Web Services, 2010.
[14] W3C, SOAP 1.2, 4- 2007, http://www.w3.org/TR/soap/ [15] W3C, WSDL 1.1, 3- 2001, http://www.w3.org/TR/wsdl [16]W3Schools, UDDI,
http://www.w3schools.com/Webservices/ws_wsdl_uddi.asp
[17] W3C, QoS for Web Services, Requirements and Possible Approaches. http://www.w3c.or.kr/kr-office/TR/2003/ws-qos/, 11-2003.
[18] Oracle, Communication Between a JAX-RPC Web Service and a client, https://docs.oracle.com/cd/E19644-01/817-5452/wsgjaxrpc.html
[19] G. E. Kersten and S. J. Noronha, "WWW-based Negotiation Support: Design, Implementation, and Use", Decision Support Systems, no. 2, pages 135-154, 1999. [20] S. Matwin, S. Szpakowicz and Z. Koperczak,"Negoplan: An Expert System Shell for NegotiationSupport," IEEE Expert, no. 4, pages 50-62, 1996.