Web Service và Kiểm Thử Web Service
Bài đăng này đã không được cập nhật trong 3 năm
I. Web Service (WS)
1. Giới thiệu
1.1 Định nghĩa
Theo định nghĩa của W3C: 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ự gắn kết của nó được mô tả bằng XML.
1.2 Đặc điểm
- Tính độc lập: WS không đòi hỏi các tiến trình phía client phải đặt bất cứ thành phần nào ở phía server.
- Cho phép client và server tương tác ngay cả trong môi trường khác nhau( ví dụ: server chạy linux, client chạy windows)
- Tự mô tả: giao diện của WS được mô tả thông qua tài liệu WSDL – định nghĩa cấu trúc thông điệp trao đổi và cấu trúc dữ liệu sử dụng trong thông điệp đó.
- Truy cập thông qua web: WS sử dụng giao thức chuẩn của web. Mô tả dịch vụ được đưa ra bằng cách sử dụng WSDL, các dịch vụ được xác định với sự giúp đỡ của UDDI registry và triệu gọi thông qua SOAP
- Độc lập về ngôn ngữ, nền tảng, giao thức: WS có cơ sở là tiêu chuẩn mở XML. Một client được viết bằng bất cứ ngôn ngữ nào cũng có thể truy cập một trang WS viết bằng bất cứ ngôn ngữ nào khác. WS độc lập nền tảng, client và WS có thể chạy trên 2 nền tảng độc lập khác nhau.
- Dựa trên chuẩn mở: những chuẩn này là XML, WSDL, SOAP và UDDI
- WS rất linh động: với UDDI và WSDL thì việc mô tả và phát triển WS có thể được tự động hóa
1.3 Ưu / Nhược điểm
Ưu điểm: Có thể tái sử dụng, dễ bảo trì Linh hoạt, dễ mở rộng Cài đặt dễ dàng Chi phí thấp hiệu quả cao Tính ổn định chịu lỗi cao Tính bảo mật cao
Nhược điểm Dữ liệu truyền nhiều Không hỗ trợ kết nối thời gian dài Không hỗ trợ duy trì kết nối trạng thái
1.4 Ứng dụng
Ứng dụng trong nhiều lịnh vực: - Dịch vụ chọn lọc và phân loại tin tức - Các ứng dụng dịch vụ du lịch( cung cấp giá vé, thông tin về địa điểm..) - Các đại lý/ cả hàng bán hàng qua mạng, dịch vụ giao dịch trực tuyến…
2. Hoạt động của WS
Mô hình hoạt động
Một ứng dụng WS bao gồm 2 thành phần: Client và Server giao tiếp với nhau qua giao thức HTTP. • Client gửi yêu cầu qua các lời gọi hàm thông qua HTTP Request đến Server • Server gửi các kết quả được thực thi các ở hàm thông qua HTTP Request
Mô hình hoạt động của ứng dụng WebService gồm 3 thành phần chính: • UDDI register: Công cụ giúp nhà phát triển WS công bố những thông tin về WebService của mình cho cộng đồng các nhà phát triển ứng dụng. Người dùng sẽ dựa vào các thông tin này để sử dụng WebService trong ứng dụng riêng của minh. • WebService: Chứa giao thức SOAP định dạng dữ liệu, tài liệu WSDL định nghĩa các hàm trong WebService, XML để xây dựng ứng dụng phân tán. • Applicantion Client: Ứng dụng phía Client sử dụng WebService xây dựng riêng cho mình
Cách thức hoạt động có thể mô tả như sau: Đầu tiên, Applicantion Client cần truy vấn các mẫu tin UDDI theo 1 thông tin nào đó(chẳng hạn tên loại) để xác định WebService cần tìm. Khi đã xác định được WebService cần cho ứng dụng, Client có thế lấy thông tin về địa chỉ của tài liệu WSDL của WebService này dựa trên mẫu tin UDDI. Tài liệu WSDL sẽ mô tả cách thức liên lạc với WebService, định dạng gói tin truy vấn và phản hồi. Dựa vào những thông tin này, Client có thể tạo những gói tin SOAP tương ứng để liên lạc với Service.
3. Các thành phần
3.1 XML – Extensible Markup Language
XML là nền tảng cho việc xây dựng một Web Service và tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML.
3.2 WSDL – Web Service Description Language
WSDL là một ngôn ngữ dựa trên nền XML dùng để định vị và mô tả WS. • WSDL là viết tắt của Web services Description language. • WSDL dựa trên nền tảng XML. • WSDL được dùng để mô tả WS. • WSDL được dùng để định vị WS. • WSDL là một tiêu chuẩn W3C. WSDL định nghĩa cách mô tả web service theo cú pháp tổng quát XML, bao gồm các thông tin: • Tên service • Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của web service. • Loại thông tin: những thao tác, những tham số, những kiểu dữ liệu gồm có giao diện của web service, công với tên cho giao diện này. • Phần giao diện mô tả giao diện và giao thức kết nối, phần thi hành mô tả thông tin để truy xuất service.
3.3 UDDI – Universal Description, Descovery and Integration
UDDI là một thư mục dịch vụ, nơi mà chúng ta có thể đăng ký và tìm kiếm các dịch vụ web. • UDDI là viết tắt của Universal Description, Discovery and integration. • UDDI là một thư mục dùng để lưu trữ thông tin về các dịch vụ web. • UDDI là một thư mục các giao diện dịch vụ web được mô tả bởi WSDL. • UDDI giao tiếp thông qua SOAP. • UDDI được xây dựng để góp phần vào nền tảng Microsoft .NET.
Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận thông 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 web services. Cấu trúc UDDI gồm các thành phần: • White pages: chứ thông tin liên hệ và các định dạng chính yếu của web services (tên giao dịch, địa chỉ...) Những thông tin này cho phép các đối tượng khác xác định được service. • Yellow pages: chứa thông tin mô tả web service theo những chủng loại khác nhau. Những thông tin này cho phép các đối tượng thấy web service theo từng chủng loại của nó. • Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức năng của web service để tìm kiếm.
3.4 SOAP – Simple Object Access Protocol
• SOAP là một giao thức dựa trên nền XML cho phéo ứng dụng trao đổi các thoogn tin thông qua HTTP. Nói cụ thể hơn thì SOAP là một giao thức dùng để truy cập các dịch vụ web. • SOAP là viết tất của Simple Object Access Protocol. • SOAP là một giao thức truyền thông. • SOAP là một định dạng dùng để gửi đi các thông điệp. • SOAP được thiết kế để giao tiếp thông qua internet. • SOAP là một nền tảng XML. • SOAP rất đơn giản và có thể mở rộng. • SOAP cho phép chúng ta vượt qua bức tường lửa (firewall) • SOAP là một tiêu chuẩn W3C. • SOAP là giao thức sử dụng XML để định nghĩa dữ liệu dạng thuần văn bản (plaint text) thông qua HTTP. SOAP là cách mà web service sử dụng để truyền tải dữ liệu. Vì dựa trên XML nên SOAP là một giao thức không phụ thuộc platform cũng như bất kì ngôn ngữ lập trình nào. • Một thông điệp SOAP được chia thành hai phần là header và body. Phần header chỉ ra địa chỉ web service, host, Content-Type, Content-Length tương tự như một thông điệp HTTP.
II. Kiểm thử Web Service
1. Khái niệm
Kiểm thử webservice bao gồm kiểm thử chức năng cơ bản và khả năng tương tác của webservice, một số các chức năng SOA (service oriented architecture), QoS (quality of service) và kiểm thử load/stress.
2. Phương thức kiểm thử Web Service
2.1 Kiểm thử ứng dụng Web
a) Kiểm thử giao diện người dùng - Kiểm thử thiết kế giao diện người dùng - Kiểm thử thực thi giao diện người dùng - Kiểm thử khả năng sử dụng và khả năng truy cập b) Kiểm thử chức năng - Kiểm thử đơn giản chấp nhận được (fuctional acceptance simple testing - FAST) - Kiểm thử chức năng hướng tác vụ (task oriented functional testing - TOFT) - Kiểm thử lỗi ép buộc (forced error tests - FET) - Kiểm thử điều kiện biên và phân tích lớp tương đương (boundary condition test - BCT ) - Kiểm thử dạng khám phá (exploratory testing - ET) c) Kiểm thử cơ sở dữ liệu Kiểm thử cơ sở dữ liệu (CSDL) : Bao gồm kiểm thử dữ liệu hiện tại và tính toàn vẹn của dữ liệu, đảm bảo dữ liệu không bị hỏng và các sơ đồ dữ liệu là đúng đắn cũng như kiểm thử chức năng của các ứng dụng CSDL. d) Kiểm thử cài đặt Kiểm thử cài đặt thường sử dụng phương pháp so sánh các thuộc tính hệ thống và các các tệp cả trước và sau khi cài đặt và xóa cài đặt. e) Kiểm thử khả năng tương thích và cấu hình Chiến thuật trong kiểm thử cấu hình và khả năng tương thích là thực hiện các kiểm thử đơn giản chấp nhận chức năng (FAST), tập con các kiểm thử chức năng hướng tác vụ (TOFT) và tập các kiểm thử ép buộc lỗi (FET) để thực thi tập hợp các chức năng. Kiểm thử này tập trung trên dữ liệu vào và ra, sự phụ thuộc của các thiết lập/cấu hình, tương tác trên cấu hình phần mềm và phần cứng. Ngoài ra, kiểm thử này kiểm thử bao phủ tất cả những cài đặt của người dùng (máy tính, cấu hình, kết nối, hệ điều hành, trình duyệt, phần mềm…). f) Kiểm thử bảo mật web Kiểm thử bảo mật web là kiểm thử hiệu quả sự bảo vệ toàn bộ hệ thống web (công nghệ bảo mật, công nghệ mạng, lập trình, thâm nhập hệ thống mạng). g) Kiểm thử hiệu năng Kiểm thử hiệu năng ứng dụng với các tốc độ kết nối mạng khác nhau. Kiểm thử chịu tải (stress test) Trong kiểm thử hiệu năng web, các chức năng của webservice trên các hệ điều hành, các nền tảng phần cứng khác nhau phải được kiểm thử để tìm ra các lỗi phần mềm, thất thoát bộ nhớ…
2.2 Kiểm thử hướng dịch vụ Web
Về cơ bản, chức năng của webservice hoạt động dựa trên giao thức SOAP. WSDL cấp thông tin về giao diện webservice, bao gồm cả các loại cổng (port type), ràng buộc (binding)…Do đó, kiểm thử webservice là vấn đề trao đổi thông điệp SOAP thích hợp:
a) Kiểm thử tập tin WSDL Điểm đặc biệt của webservice là các tập tin của chúng có chứa siêu dữ liệu về các giao diện của chúng theo tiêu chuẩn mở. Công cụ kiểm thử các tập tin WSDL tạo ra các kế hoạch kiểm thử hộp đen tự động và tập tin WSDL cũng được kiểm thử hộp trắng.
b) Kiểm thử thông điệp SOAP
- Kiểm thử khả năng trung gian SOAP
- Kiểm thử các thông báo không đồng bộ và khả năng cảnh báo của webservice trong RPC đồng bộ.
- Khách hàng của webservice và mô phỏng của nhà sản xuất.
c) Kiểm thử khả năng sản xuất, tìm kiếm và liên kết của SOA Đặc trưng cơ bản của SOA là khả năng xuất bản (publish), tìm kiếm (find) và kết nối (bind) tạo thành một tam giác. Trước hết, nhà cung cấp webservice xuất tập tin WSDL của dịch vụ trên UDDI, nơi mà người sử dụng dịch vụ có thể tìm thấy chúng. Sau đó, người tiêu dùng liên kết các dịch vụ dựa trên đăng ký tập tin WSDL. Công cụ kiểm thử webservice kiểm thử từng đoạn của tam giác này.
All rights reserved