TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI CHU TIẾN CƢỜNG TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Chun ngành: Công nghệ thông tin LUẬN VĂN THẠC SĨ KHOA HỌC CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC : TS VŨ THỊ HƢƠNG GIANG Hà Nội – Năm 2012 CHU TIẾN CƢỜNG TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG LỜI CAM ĐOAN Tơi xin cam đoan luận văn "Tích phối phần mềm dƣới dạng dịch vụ theo tiêu chí ngồi chức năng" kết nghiên cứu riêng tơi, khơng chép tồn văn cơng trình nghiên cứu khác Nội dung luận văn có tham khảo sử dụng tài liệu theo danh mục tài liệu luận văn Tôi xin chịu trách nhiệm với nội dung đƣợc viết luận văn Hà Nội, Ngày 26 tháng 03 năm 2012 Tác giả luận văn Chu Tiến Cường CHU TIẾN CƢỜNG TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG LỜI CẢM ƠN Em xin cảm gửi lời cảm ơn chân thành tới Cô giáo Tiến Sĩ Vũ Thị Hƣơng Giang, ngƣời tận tình hƣớng dẫn em suốt trình thực đồ án Em xin chân thành cảm ơn tồn thể q thầy Đại Học Bách Khoa Hà Nội truyền đạt kiến thức quý báu thời gian em học tập trƣờng Tôi xin gửi lời cảm ơn chân thành đến gia đình, bạn bè đồng nghiệp – ngƣời giúp đỡ động viên tơi q trình học tập Hà Nội, ngày 26 tháng 03 năm 2012 Học viên thực Chu Tiến Cường CHU TIẾN CƢỜNG TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG MỤC LỤC DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ Mở đầu 10 Chƣơng - DỊCH VỤ 12 1.1 Kiến trúc hƣớng dịch vụ (SOA - Service Oriented Architecture) 12 1.2 Dịch vụ web (Web Service) 13 1.3 Phân loại 13 1.4 Các thành phần dịch vụ web 14 1.5 Quy trình phát triển dịch vụ web 16 1.6 Bảo mật dịch vụ web 17 Kết luận 19 Chƣơng - TÍCH PHỐI DỊCH VỤ 21 2.1 Định nghĩa 21 2.2 Các nguyên tắc tích phối dịch vụ 21 2.3 Phân loại 22 2.4 Các mơ hình tích phối 32 2.4.1 BPML (Business Process Modeling Language) 32 2.4.2 BPEL (Business Process Execution Language) 34 2.4.3 Xây dựng mơ hình tích phối theo BPEL 36 2.4.4 WSCI (Web Services Choreography Interface) 36 2.5 Mô hình tích phối mở rộng 37 2.5.1 Mơ hình khung tích phối an tồn [7]: 39 CHU TIẾN CƢỜNG TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG 2.5.2 MEO [11] 41 Kết luận 52 Chƣơng - KHUNG TÍCH PHỐI DỊCH VỤ WEB THEO CÁC TIÊU CHÍ AN TỒN 54 3.1 Mục tiêu 54 3.2 Cách tiếp cận 55 3.3 Mơ hình tích phối an tồn cho dịch vu web WMEO 57 3.3.1 Hoạt động tích phối (Coordination Activity) 57 3.3.2 Kịch tích phối 59 3.3.3 Ràng buộc (Constraint) 60 3.4 Triển khai mơ hình bảo mật cho WMEO dựa mã hóa RSA 61 3.5 Quy trình tích phối theo WMEO 63 Kết luận 66 Chƣơng - XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM 67 4.1 Giới thiệu ứng dụng đặt vé máy bay 67 4.2 Xây dựng ba dịch vụ tham gia 68 4.3 Các nghiệp vụ 75 4.4 Khái quát framework BDA Meobi 76 4.4.1 Các thƣ viện MEO 76 4.4.2 Các dịch vụ tham gia hệ thống tích phối 78 4.4.3 Các bƣớc thực thi hệ thống tích phối 78 4.5 Cài đặt ứng dụng 79 KẾT LUẬN 82 TÀI LIỆU THAM KHẢO 84 CHU TIẾN CƢỜNG TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGOÀI CHỨC NĂNG DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT BPM Business Process Management Quản lý quy trình nghiệp vụ BPEL Business Process Execution Ngôn ngữ thực thi tiến trình nghiệp vụ Language BPML Ngơn ngữ mơ hình hóa Business Process Modeling Language BPEL4WS BPEL cho Dịch vụ web Business Process Execution Language for Web Services CA Coordination Activity Hoạt động tích phối CS Coordination Scenario Kịch tích phối DPWS Devices Profile for Web Services Mơ tả thiết bị dịch vụ web ESB Enterprise Service Bus Luồng dịch vụ thƣơng mại FTP File Transfer Protocol Giao thức truyền tệp HTTP HyperText Transfer Protocol Giao thức truyền tải siêu văn HTTPS HyperText Transfer Protocol Secure Giao thức HTTP bảo mật JMS Java Message Service Dịch vụ thông điệp Java MEO Model for sEcure cOordination Mơ hình tích phối bảo mật UDDI Universal Discovery, Description, Tích hợp, Khám phá Mơ tả tồn cầu and Integration URL Universal Resource Locator Chỉ định tài nguyên toàn cầu TCP Transmission Control Protocol Giao thức điều khiển truyền vận RSA Ron Rivest, Adi Shamir, Len Thuật tốn mã hố cơng khai Adleman RPC Remote Procedure Call Gọi hàm từ xa VTA Virtual Travel Agency Chi nhánh du lịch ảo IDE Integrated Development Mơi trƣờng phát triển tích hợp Environment CHU TIẾN CƢỜNG TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG QoS Quality of Service Chất lƣợng dịch vụ SOAP Simple Object Access Protocol Giao thức truy cập đối tƣợng đơn giản SOA Service Oriented Architecture Kiến trúc hƣớng dịch vụ SSL Secure Socket Layer Giao thức tầng giao tiếp bảo mật SMTP Simple Mail Transfer Protocol Giao thức truyền tải thƣ tín đơn giản WSDL Web Service Description Language ngôn ngữ diễn tả cho dịch vụ Web WSCI Web Services Choreography Giao tiếp tích phối dịch vụ Web Interface WSC Web Services Choreography Biên đạo dịch vụ web WSO Web Services Orchestration H a phối dịch vụ web WS Web Service Dịch vụ web XML eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng XSD XML Schema Definition Định nghĩa lƣợc đồ XML XPDL XML for Process Definition Ngôn ngữ định nghĩa tiến trình dựa Language XML CHU TIẾN CƢỜNG TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ Hình 1.1: Ba tác nhân tham gia hệ thống xây dựng theo SOA 12 Hình 1.2: Ngăn xếp giao thức dịch vụ web 14 Hình 1.3: Mơ tả WSDL 15 Hình 1.4: Các bƣớc phát triển dịch vụ web 17 Hình 1.5: p dụng chế an toàn cho dịch vụ web 18 Hình 2.1: Mơ hình tích phối t ng qt 21 Hình 2.2: Luồng t chức dịch vụ có ràng buộc 22 Hình 2.3: Luồng t chức dịch vụ song song 22 Hình 2.4: Đa dịch vụ 23 Hình 2.5: Logic đóng gói dịch vụ 24 Hình 2.6: Minh họa h a phối - orchestration 24 Hình 2.7: Phát triển hịa phối (Orchestrations) 25 Hình 2.8: Minh họa biên đạo phối (Choreography) 26 Hình 2.9: Sự khác orchestration choreography 27 Hình 2.10: Quá trình nghiệp vụ cho vay – dịch vụ Lender 29 Hình 2.11: Quá trình nghiệp vụ cung cấp xe 30 Hình 2.12: Quá trình nghiệp vụ mơi giới xe 31 Hình 2.13: Luồng quy trình BPEL4WS 36 Hình 2.14: WSCI - Web Services Choreography Interface 37 Hình 2.15: Các tầng SOA 39 Hình 2.16: Các khái niệm MEO - Model for sEcure cOordination 41 Hình 2.17: Tập hợp ràng buộc hoạt động tích phối 44 CHU TIẾN CƢỜNG TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Hình 3.1: nguyên lý xác thực 61 Hình 3.2: Nguyên lý độ tin cậy 62 Hình 3.3: Nguyên lý toàn vẹn 63 Hình 4.1: Ứng dụng Booking flight 67 Hình 4.2: Mơ hình use case Booking Flight 75 Hình 4.3: Framework BDA meobi 77 Hình 4.4: Các dịch vụ web sẵn dùng 78 CHU TIẾN CƢỜNG TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Mở đầu Trong năm gần đây, khoa hoc máy tính liên tục phát triển mạnh mẽ, mở nhiều hƣớng công nghệ tin học, với sử bùng n mạng internet thúc đẩy việc trao đ i thông tin cách nhanh chóng với biến đ i không ngừng ứng dụng theo chiều hƣớng Điều chứng tỏ ngƣời ngày đặt nhiều yêu cầu từ thực tế vào hệ thống máy tính, đặc biệt ứng dụng dựa internet Internet đời kéo theo vô số yêu cầu phát triển tảng này, từ sở hạ tầng mạng đến ứng dụng world wide web ngƣời ta ngày hƣớng đến yêu cầu cao nhƣ: mạng xã hội, dịch vụ web nhƣ chuyển dần khái niệm sống vào tin học Từ đó, kiến trúc hƣớng dịch vụ / dịch vụ web đời, mở định hƣớng phát triển mạnh: mơ thức lập trình hƣớng dịch vụ Mơ thức lập trình hƣớng dịch vụ thuận lợi để xây dựng ứng dụng từ dịch vụ sẵn có, việc mơ tả, tìm kiếm kết nối dịch vụ đƣợc chuẩn hóa Ứng dụng kiểu bao gồm nhiều hành động, hành động tƣơng ứng với lời gọi chức dịch vụ có sẵn cung cấp Quy trình nghiệp vụ ứng dụng đƣợc thể dƣới dạng sơ đồ tích phối, rõ ràng buộc đặc tính thực thi hành động Ngoài việc biểu diễn quy trình nghiệp vụ ứng dụng cần xây dựng, sơ đồ tích phối phải rõ tiêu chí mà ứng dụng có khả đáp ứng, ví dụ nhƣ tính an tồn, tính chịu lỗi, tính tự chủ, v.v Nhƣ vậy, cần có khung tích phối dịch vụ cho phép phát triển ứng dụng đáp ứng tiêu chí cần quan tâm Xuất phát từ thực tế tơi định chọn đề tài "Tích phối phần mềm dƣới dạng dịch vụ theo tiêu chí chức năng" làm đề tài tốt nghiệp cá nhân Mục tiêu luận văn gồm ba vấn đề nhƣ sau: - Thứ nhất: Tìm hiểu lý thuyết dịch vụ - Thứ hai: Tìm hiểu khung tích phối dịch vụ - Thứ ba: Dựa khung tích phối dịch vụ, xây dựng khung tích phối dịch vụ web theo tiêu chí an tồn cải đặt thử nghiệm theo tiêu chí CHU TIẾN CƢỜNG 10 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG money Double Số tiền trả payDate DateTime Ngày toán - requestPayment: Gửi yêu cầu toán trực tuyến Yêu cầu: Tham số Kiểu Mô tả accountNumber String Số tài khoản money Double Mã thông báo qua điện thoại paymentCode String Mã dịch vụ tốn Trả về: có smsToken gửi đến mobile Tham số Kiểu Mô tả resultCode String Mã code trả resultMessage String Thông điệp trả - confimPayment: Xác nhận toán trực tuyến Yêu cầu: Tham số Kiểu Mô tả accountNumber String Số tài khoản money Double Mã thông báo qua điện thoại paymentCode String Mã dịch vụ tốn smsToken String Mã thơng báo qua điện thoại Trả về: có smsToken gửi đến mobile Tham số Kiểu Mô tả resultCode String Mã code trả resultMessage String Thơng điệp trả c Dịch vụ Seeking: tìm kiếm chỗ thực hoạt động đặt vé trƣớc bay sở liệu bay Các method dịch vụ: - checkFlightAvailability: Kiểm tra chuyến bay bay ngày Yêu cầu: CHU TIẾN CƢỜNG 71 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Tham số Kiểu Mô tả from String Nơi To String Nơi đến Trả về: Danh sách chuyến bay ngày - searchFlight: Cho phép tìm chuyến bay Yêu cầu: Tham số Kiểu Mô tả from String Nơi To String Nơi đến fromDate Date Ngày toDate Date Ngày Trả về: Danh sách chuyến bay thỏa mãn yêu cầu - getFlightDetails: Lấy thông tin chi tiết chuyến bay Yêu cầu: Tham số Kiểu Mô tả flightCode String Mã chuyến bay Trả về: Chuyến bay thỏa mãn yêu cầu Tham số Kiểu Mô tả flightId String Mã chuyến bay flightName String Tên chuyến bay leavePlace String Nơi arrivePlace String Nơi đến leaveDate DateTime Ngày time String Giờ price Double Giá vé chuyến bay - checkAvailability: Kiểm tra chuyến bay c n chỗ trống Yêu cầu: Tham số Kiểu Mô tả flightCode String Mã chuyến bay CHU TIẾN CƢỜNG 72 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Trả về: Chuyến bay thỏa mãn yêu cầu Tham số Kiểu Mô tả valid boolean True: c n trống; false: hết chỗ - requestBooking: Yêu cầu đặt vé Yêu cầu: Tham số Kiểu Mô tả flightCode String Mã chuyến bay identityNumber String Chứng minh nhân dân khách hàng seatNumber Int Số lƣợng ghế Tham số Kiểu Mô tả paymentCode String Mã code toán Trả về: - confirmBooking: Xác nhận đặt vé Yêu cầu: Tham số Kiểu Mô tả flightCode String Mã chuyến bay identityNumber String Chứng minh nhân dân khách hàng seatNumber Int Số lƣợng ghế paymentCode String Mã code tốn smsToken String Mã thơng báo qua điện thoại Kiểu Mô tả Trả về: Tham số genarateTicketId String Mã code vé trả nhƣng chƣa có hiệu lực valid Boolean True: có hiệu lực, False: chƣa hiệu lực flightId String Số máy bay chairNumber String Số ghế Ghi chú: Vé toán sử dụng đƣợc, kèm theo smsToken gửi đến mobile sau toán - cancelBooking: Hủy đặt vé cho chuyến bay chƣa cất cánh (tính đến thời điểm tại) CHU TIẾN CƢỜNG 73 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG u cầu: Tham số Kiểu genarateTicketId String Mô tả Mã code vé trả nhƣng chƣa có hiệu lực Trả về: Tham số Kiểu Mô tả cancelCode String Mã code cancel - confirmCancelBooking: Xác nhận hủy đặt vé Yêu cầu: Tham số Kiểu Mô tả genarateTicketId String Mã code vé trả nhƣng chƣa có hiệu lực cancelCode String Mã code cancel smsToken String Mã thông báo qua điện thoại Tham số Kiểu Mô tả Valid Boolean True: hủy; false: hủy Trả về: - getBookingInfo: Xem phiếu đặt vé khách hàng Yêu cầu: Tham số Kiểu genarateTicketId String Mô tả Mã code vé trả nhƣng chƣa có hiệu lực Trả về: Tham số Kiểu Mô tả genarateTicketId String Mã code vé Valid Boolean True: có hiệu lực, False: chƣa hiệu lực flightId String Số máy bay chairNumber String Số ghế Ghi chú: Trong thời gian vé chƣa có hiệu lực tiếng, sau bị đặt mua ngƣời khác Quản ngƣời dùng: Quản lý thông tin user: xem cập nhật thơng tin ngƣời dùng CHU TIẾN CƢỜNG 74 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Quản lý nhật ký gồm có cách tra cứu khách hàng, xem danh sách khách hàng, xem thông tin chi tiết, cập nhật thông tin cá nhân, hủy tài khoản kích hoạt tài khoản cho khách hàng, c n đăng ký tài khoản cho khách hàng Hình 4.2: Mơ hình use case Booking Flight 4.3 Các nghiệp vụ Bằng cách gọi phƣơng thức dịch vụ này, ứng dụng đặt vé chuyến bay thực chức sau: Đăng ký khách hàng: Đăng ký khách hàng - registerCustomer (adventurer) Trả thông tin khách hàng hệ thống - getCustomer (adventurer) Đặt vé máy bay: Xem danh sách chuyến bay c n sẵn - checkFlightAvailability, hay tìm kiếm chuyến bay - searchFlight (seeking) Xem chi tiết chuyến bay - getFlightDetails (seeking) Xem chuyến bay c n chỗ trống - checkAvailability (seeking) Đặt chỗ cho chuyến bay - requestBooking (seeking) CHU TIẾN CƢỜNG 75 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Xác nhận đặt chỗ - comfirmBooking (seeking) Thanh tốn vé máy bay: Lấy thơng tin vé đặt - getBookingInfo (seeking) Kiểm tra tài khoản - checkCreditCard (payment) Yêu cầu toán - requestPayment (payment) Xác nhận toán sms - confimPayment (payment) Lấy thông tin vé mua - getBookingInfo (seeking) Hủy đặt vé: Lấy thông tin vé đặt - getBookingInfo (seeking) Hủy vé đặt, cancelBooking (seeking) Xác nhận hủy vé đặt, comfirmCancelBooking (seeking) 4.4 Khái quát framework BDA Meobi 4.4.1 C c thƣ viện MEO Gói meobi.demo.api: gồm lớp đối tƣợng, interface thuộc tính cho hệ thơng tích phối Gói meobi.demo.api.constraint: lớp định nghĩa interface ràng buộc cho hệ thơng tích phối Gói meobi.demo.api.scenario: định nghĩa cho node kịch cho hệ thơng tích phối Mỗi node mơ tả Coordinator Activity Gói meobi.demo.api.service: interface định nghĩa lớp dịch vụ chung Gói meobi.demo.api.util - meobi.demo.tools: interface logs Gói meobi.demo.controllers: control điều khiển (xác thực, bảo tồn, log, bảo mật vv) Gói meobi.demo.coordinatedsystem: loại hệ thống tích phối mơ tả Gói meobi.demo.gui: lớp giao diện cho node tích phối Gói meobi.demo.model: thực thi cho interface ràng buộc meobi.demo.api.constraint Gói meobi.demo.tools.service: lớp mô tả dịch vụ (dịch vụ xác thực, dịch vụ toán, booking vé vv…) CHU TIẾN CƢỜNG 76 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Gói meobi.demo.tools.security: lớp bảo mật mã hóa, giải mã cho liệu Gói meobi.demo.tools.webservice: lớp logic nghiệp vụ dịch vụ web cho dịch vụ adventurer, payment, seeking Gói service.adventurer: thể hiển cho lớp dịch vụ web adverturer client Gói service.payment: thể hiển cho lớp dịch vụ web payment client Gói service.seeking: thể hiển cho lớp dịch vụ web seeking client Hình 4.3: Framework BDA meobi CHU TIẾN CƢỜNG 77 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG 4.4.2 C c dịch vụ tha gia hệ thống t ch phối AdventurerService: Thể cho dịch vụ adventurer thực thi hàm adventurer.AdventurerService.java BookingFlight PaymentService: Thể cho dịch vụ payment thực thi hàm payment.PaymentService.java BookingFlight SeekingService: Thể cho dịch vụ seeking thực thi hàm seeking.SeekingService.java BookingFlight BookingFlight: project thể nghiệp vụ cho hệ thống Booking Flight Mô tả chung cho ba dịch vụ web adventurer, payment seeking Hình 4.4: Các dịch vụ web sẵn dùng 4.4.3 C c bƣớc thực thi hệ thống t ch phối Bước 1: Khởi tạo dịch vụ CHU TIẾN CƢỜNG 78 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Bước 2: Khởi tạo hoạt động tích phối (CA-Coordinator Activity) cho hệ thống tích phối, CA có Profile thuộc dịch vụ cung cấp bƣớc 1, ngồi thêm thuộc tính xác thực cần thiết Bước 3: Tạo ràng buộc CA với Mơ hình xác thực – ràng buộc xác thực: Đăng kí dịch vụ với cặp khóa RSA Public-Key Private-Key (khóa bí mật dịch vụ), Server xác thực lƣu giữ khóa cơng khai tƣơng ứng với ID dịch vụ Các CA thuộc dịch vụ gắn dùng cặp khóa dịch vụ xác thực Các ràng buộc liên quan đến xác thực đƣợc server xác thực thực trả kết xác thực cho CA Ví dụ: CA muốn xác thực có thuộc hệ thống phải gửi yêu cầu với ID dịch vụ cần xác thực đoạn chữ ký (mã hóa Private-Key) dịch vụ Sau server xác thực dùng Public-Key dịch vụ để giải mã kết khớp với mong muốn dịch vụ xác thực thành cơng Bước 4: Tạo node tích phối theo CA tƣơng ứng Bước 5: Thực thi kịch tích phối dựa node kịch đƣa 4.5 C i đặt ứng dụng 4.5.1 Môi trƣờng cho ứng dụng Ngơn ngữ lập trình: Java Nền ứng dụng: Java Standard Edition Server Apache Tomcat 7.0 Cơ sở liệu: MySQL 5.5 Công cụ lập trình: Eclipse Indigo Service Release Thƣ viện dịch vụ web: JAX-WS Web Services (axis2) Một số thƣ viện có sẵn: log4j-1.2.8.jar (tiện ích log), bcprov-jdk16-146.jar (mã hóa), mysql-connector-java-5.1.6-bin.jar (kết nối database) 4.5.2 Cấu h nh hệ thống Nội dung chủ đề giúp cấu hình Tomcat Axis2 Eclipse Để thực đƣợc phần cần tải về: Eclipse: Eclipse Java EE cho Web Developers, bản: Indigo Service Release CHU TIẾN CƢỜNG 79 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Axis2-1.6.1-war.zip: giải nén để lấy gói war Apache Tomcat 7: giải nén đƣợc thƣ mục server tomcat7 a Cấu hình server Tomcat Eclipse theo bƣớc: Giải nén gói Eclipse Tomcat vừa download Chạy Eclipse Chọn Window/Preferences Chọn Server/Runtime Environment, chọn Add Chọn Apache/Apache Tomcat v7.0 Chọn Check Create new local server, chọn Next, chọn Browse Chọn đến folder Apache Tomcat sau giải nén Chọn OK, chọn Finish b Cấu hình Axis2 Eclipse gồm bƣớc: Chọn Window/Preferences/Web Services/Axis2 Preferences, chọn Browse Chọn đến thƣ mục chứa gói war Axis2 Nếu hiển thị thông báo Axis2 runtime loaded successfully bạn chọn thƣ mục, chọn Apply Chọn Server and Runtime mục Web Services Chọn Web service runtime, chọn Apache Axis2, chọn OK Đến cấu hình xong Axis2 Eclipse c Tạo dịch vụ web Adventurer Trên dự án BookingFlight, chọn AdverturerService.java, nhấp phải chuột, chọn dự án Vào mục Web Service, chọn Web Service Service implementation: nhập lớp (class) tạo dịch vụ “adventurer.AdventurerService”, sau Finish để hồn thành d Tạo dịch vụ web Client CHU TIẾN CƢỜNG 80 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Trên dự án demo, chọn dự án Vào mục Web Service, chọn Web Service Client Service definition: http://localhost:8080/AdventurerService/services/AdventurerService?wsdl Chọn next/Port Name: chọn Soap12Endpoint/Custom package name: service.adventurer/Chọn Finish để hồn thành Sau ta đƣợc gói: service.adventurer e Đánh giá chƣơng trình: Chƣơng trình thừa kế sẵn có để trình bày cách thức hoạt động sử dụng mơ hình MEO, ngồi áp dụng thực tế mơ hình dịch vụ web kết trả về, bên cạnh áp dụng giải pháp mã hóa RSA cho việc chứng thực Tạo dịch vụ sẵn dùng sử dụng dịch vụ cho u cầu nghiệp vụ tích phối Có thể tái sử dụng dịch vụ đƣợc cung cấp sẵn Kết hợp dịch vụ theo yêu cầu nghiệp vụ Chƣơng trình chủ yếu tập trung vào mục đích đƣa giải pháp công nghệ chƣa quan tâm nhiều tới khía cạnh xử lý nghiệp vụ chi tiết Tuy nhiên ứng dụng mơ tả t ng quát đầy đủ khía cạnh cho ứng dụng lớn phát triển sử dụng đƣợc, bên cạnh vấn đề khác xây dựng hệ thống chƣa đƣợc đề cập ví dụ nhƣ: tạo tài liệu mô tả dịch vụ, công cụ kiểm tra hệ thống vv Với ứng dụng Booking Flight, viết làm việc mô hình tích phối MEO cách để xây dựng ứng dụng tích phối Do thời gian c n hạn chế nên việc đƣa số giải thuật cho việc xác thực, mã hóa cho hệ thống tích phối an toàn c n nhiều hạn chế chủ yếu c n giai đoạn demo nhƣng việc tiếp tục phát triển hồn thiện mơ hình tích phối theo tiêu chí thừa kế phát triển để có hệ thống ngày hồn thiện CHU TIẾN CƢỜNG 81 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG KẾT LUẬN Kết đạt đƣợc Qua luận văn tơi trình bày yếu tố dịch vụ web nhƣ đặc tính, vấn đề bảo mật dịch vụ yếu tố quan trọng dịch vụ tham gia vào hệ thống tích phối, ngồi khái qt đƣợc quy trình cách xây dựng dịch vụ vấn đề làm việc với hệ thống tích phối dịch vụ Để làm việc với hệ thống tích phối luận văn trình bày kiểu tích phối: luồng dịch vụ, đa dịch vụ, h a phối biên đạo phối việc thực thi để xây dƣng đƣợc hệ thống tích phối phải dựa mơ hình tích phối: BPEL, BPML, WSCI mở rộng mơ hình phối theo tiêu chí bảo mật MEO – mơ hình dựa ba khái niệm: hoạt động tích phối, ràng buộc kịch tích phối theo tiêu bảo mật, sở tơi đề xuất mơ hình tích phối WMEO cho dịch vụ web theo tiêu chí bảo mật: xác thực, bí mật an tồn, đồng thời triển khai mơ hình bảo mật WMEO dựa giải thuật mã hóa RSA Kết góp phần xây dựng hƣớng giải tích phối dịch vụ web theo tiêu chí an tồn mở đầu cho tiêu chí khác, đồng thời khái quát đƣợc vấn đề xây dƣng hệ thống tích phối dịch vụ web với đề xuất quy trình tích phối hệ thống WMEO Luận văn bƣớc đầu ứng dụng giải pháp đề xuất để xây dựng dịch vụ web đơn giản sở dịch vụ web có sẵn Qua chƣơng - phần trình bày đề mơ, phần tâp trung giải vấn đề xác thực dùng giải thuật RSA, mã hóa hệ thống tích phối Đ nh gi chung Qua thời gian nghiên cứu luận văn học đƣợc nhiều khái niệm từ đặc điểm dịch vụ web mơ hình tích phối theo tiêu chí ngồi chức năng, bên cạnh đề xuất khung tích phối dịch vụ web theo tiêu chí an tồn triển khai tiêu chí bảo mật Tuy nhiên, bên cạnh kết đạt đƣợc, nghiên cứu c n có hạn chế nhƣ: mơ hình c n mang tính lý thuyết, chƣa sâu cho thuật toán bảo mật, chƣa ứng dụng thực tế Hƣớng ph t tri n CHU TIẾN CƢỜNG 82 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Do chủ đề thuộc tính ngồi chức rộng nên toán toán phát triển lâu dài Trong tƣơng lai em tiếp tục nghiên cứu sâu thêm tính bảo mật mở rộng thêm cho tinh khác nhƣ tính chịu lỗi, khơng thối thác vv… lĩnh vực em đam mê dựa tảng lý thuyết đƣa mà c n vào thực tế ứng dụng CHU TIẾN CƢỜNG 83 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG TÀI LIỆU THAM KHẢO Tiếng việt: [1] Nguyễn Thị Dung (2010), “Kiến trúc hƣớng dịch vụ & ứng dụng (service-orientedarchitecture)”, Đại học Thái Nguyên [2] Hoàng Xuân Tuấn (2009), “Nghiên cứu web services composition sử dụng bpel4ws”, Học viện Cơng nghệ Bƣu Viễn thơng TP.HCM [3] Phạm Hùng Tiến, Đặng Hồi Đức, “SOA, Web Service in Grid Computing” [4] Nguyễn Đức Trung (2009), “Xây dựng service proxy để kiểm chứng ràng buộc thời gian web service composition”, ĐHQGHN - Đại học Công nghệ [5] Trần Đăng Khoa Phạm Minh Tuấn, “Nghiên cứu xây dựng ứng dụng hỗ trợ vận hành tiến trình nghiệp vụ (BPML) mơi trƣờng WEB”, Đại học Khoa học Tự nhiên TP.HCM [6] Hồ Bảo Thanh, Nguyễn Hoàng Long (2005), “Nghiên cứu kiến trúc hƣớng dịch vụ (Service-Oriented Architecture) ứng dụng”, Đại học Khoa học Tự nhiên TP.HCM Tiếng anh: [7] Ali Arsanjani, Ph.D, arsanjan@us.ibm.com, (09 Nov 2004), “Service-oriented modeling and architecture How to identify, specify, and realize services for your SOA” [8] Chris Peltz Hewlett Packard (January 2003), Co, “web services orchestration” [9] Kenneth J Turner April 2007, “Representing and Analysing Composed Web Services using CRESS” Network and Computer Applications, 30(2):541-562, Copyright Elsevier Science Publishers, Amsterdam [10] Martin Owen and Jog Raj, Popkin Software (2003), “BPMN and Business Process Management”, Popkin Software (www.popkin.com) [11] Thi-Huong-Giang Vu, Christine Collet, and Genoveva Vargas-Solar, “Defining and Modelling Service-Based Coordinated Systems” [12] Thi-Huong-Giang Vu, “Towards a Secure Service Coordination”, http://wwwlsr.imag.fr/Les.Personnes/Thi-Huong-Giang.Vu/ [13] Warwick Bailey, www.icodeon.com, “BPEL for Web Services” CHU TIẾN CƢỜNG 84 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG [14] Riina Maigre (09.02.2006), "Web services composition with WS-BPEL and OWLS" [15] Stephan Reiff-Marganiec, Hong Qing Yu, Marcel Tilly, “Service Selection based on Non-Functional Properties” [16] St´ephanie Chollet, Philippe Lalanda, “An Extensible Abstract Service Orchestration Framework” [17] Stefan Tai, “Composing Web Services Specifications: Experiences in Implementing Policy-driven Transactional Processes” [18] John Domingue, Dumitru Roman, and Michael Stollberg, “Web Service Modeling Ontology (WSMO) – An Ontology for Semantic Web Services”, June, 9th and 10th, Innsbruck, Austria [19] “Web Services Security: SOAP Message Security 1.0 (WS-Security 2004)”, Copyright © OASIS Open 2002-2004 [20] Yuli Vasiliev, “SOA and WS-BPEL Composing Service-Oriented Solutions with PHP and ActiveBPEL” [21] http://vi.wikipedia.org/wiki/Dịch_vụ_web [22] T ng hợp tài liệu từ Internet [23] http://vi.wikipedia.org/wiki/RSA_(mã_hóa) [24] http://vi.wikipedia.org/wiki/MD5 Tiếng pháp: [25] Thi-Huong-Giang Vu (Le 18 novembre 2008), “Coordination sécurisée des services” CHU TIẾN CƢỜNG 85 ...TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG LỜI CAM ĐOAN Tơi xin cam đoan luận văn "Tích phối phần mềm dƣới dạng dịch vụ theo tiêu chí ngồi chức năng" kết... tích phối dịch vụ sau CHU TIẾN CƢỜNG 20 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Chƣơng - TÍCH PHỐI DỊCH VỤ Trong chƣơng tìm hiểu rõ vấn đề dịch vụ nhƣ dịch vụ. .. TIẾN CƢỜNG 11 TÍCH PHỐI CÁC PHẦN MỀM DƢỚI DẠNG DỊCH VỤ THEO CÁC TIÊU CHÍ NGỒI CHỨC NĂNG Chƣơng - DỊCH VỤ Trong chƣơng này, giới thiệu dịch vụ, thƣờng nói đến dịch vụ nghĩ đến dịch vụ sống nhƣng