Web Services đóng một vai trò quan trọng trong các kiến trúc hướng dịch vụ, cho phép các dịch vụ có sẵn thể được lựa chọn một cách nhanh chóng để xây dựng một ứng dụng. Có ba tác nhân chính tham gia vào một hệ thống dựa trên Web Services, đó là Service Provider, Service Broker và Service Requester [1]. Có nhiều khía cạnh để đánh giá hiệu năng của Web Service như thời gian đáp ứng của hệ thống (response time), lượng thông tin truyền qua mạng trong đơn vị thời gian (throughput), số lượng lỗi xảy ra trong hệ thống trong đơn vị thời gian, số lượng giao dịch của hệ thống trong một ngày [5]. Ta có thể mô hình hóa hiệu năng Web Services thông qua mối quan hệ giữa thời gian đáp ứng của Web Services và tốc độ tới (arrival rate)[5]. Khi tính tốc độ tới chúng ta không cần quan tâm yêu cầu có thành công hay không. Việc thực hiện thu thập các mẫu trong đánh giá hiệu năng là thu thập các bộ số liệu ứng với các giá trị tốc độ tới khác nhau. Quá trình thu thập dữ liệu hiệu năng này có thể thực hiện dưới góc độ người dùng [3] hoặc dưới góc độ nhà quản trị hoặc nhà thiết kế hệ thống [2]. Trong nghiên cứu này chúng tôi xem xét hiệu năng dưới góc độ người sử dụng, xem xét hệ thống Web Services là một hộp đen và đánh giá thời gian đáp ứng của hệ thống.
Hiện nay, một số hướng tiếp cận dự đoán hiệu năng Web Services đang được triển khai nghiên cứu. Hướng tiếp cận đầu tiên là thực hiện dự đoán thông qua mô phỏng. Trong phương pháp này sử dụng ngôn ngữ UML mô hình hóa các tác nhân của hệ thống, từ đó xây dựng mô hình ca sử dụng (Use Case model) cho Web Services và biểu đồ thực thi tổng quát của Web Services tương ứng, rồi sử dụng công cụ mô phỏng SMTQA (Simulation of Multi-tiered Queueing Applications) cho các hệ thống được thiết kế theo kiến trúc multi-tiered, qua đó có thể dự đoán hiệu năng của Web Services [4]. Ưu điểm của phương pháp này là có thể dự đoán sớm hiệu năng của Web Services bằng mô phỏng, cho ta một ước lượng ở mức độ nào đó về hiệu năng của hệ thống, khẳng định tính khả thi của hệ thống trước khi triển khai, khắc phục được lỗi nếu có. Nhược điểm của phương pháp này là ta phải biết được thiết kế chi tiết của hệ thống để đưa vào mô phỏng, hơn nữa không thể kiểm soát một cách tuyệt đối các tham số đầu vào, cũng như trạng thái của hệ thống trong thực tế, do đó đầu vào có thể không chính xác, dẫn tới đầu ra không chính xác. Phương pháp này chỉ áp dụng cho các hệ thống có kiến trúc đa tầng (multi-tiered architecture) [5]. Hướng tiếp cận thứ hai là thực hiện dự đoán hiệu năng của các luồng công việc Web Services. Phương pháp này sử dụng ngôn ngữ thực thi Web Services WS-BPEL để mô hình hóa phía người sử dụng và phía Server[9]. Kết hợp với mô hình Queuing Network phương pháp này đưa ra giá trị dự đoán là cận trên và cận dưới của thời gian đáp ứng và Throughput [5,6]. Việc đánh giá cận là một trong những ưu điểm của phương pháp, nó phù hợp với thực tế, nó cho phép nhà quản trị có thể hình dung và đánh giá được khoảng hiệu năng, từ đó đưa ra chiến lược tối ưu hóa phù hợp. Hạn chế của phương pháp này là phải chỉ ra được những tài nguyên nào trong hệ thống mà các luồng công việc mô tả trong BPEL truy cập sử dụng, và hệ thống phải đánh giá thời gian dịch vụ trên từng tài nguyên đó.
Hướng tiếp cận thứ ba, phương pháp dựa trên góc nhìn từ phía người sử dụng [2,3]. Thu thập các dữ liệu mẫu về hiệu năng của hệ thống, sau đó sử dụng các mô hình Web Services khác nhau như M/M/1, M/G/1, M/M/m, Queuing Network kết hợp với mạng nơron để phân tích tìm ra các tham số cho mô hình và dự đoán hiệu năng. Ưu điểm của phương pháp này là không cần đòi hỏi phải biết nhiều thông tin về Web Services cần đánh giá. Trong [3] trình bày mô hình hàng đợi kết hợp với mạng Nơron cho kết quả tốt.
Chúng tôi kế thừa các nghiên cứu công bố trong [2,3,5] và sử dụng mô hình hàng đợi trong dự đoán hiệu năng. Do việc sử dụng mạng nơron chỉ cho một đầu ra duy nhất, nên kết quả dự đoán hiệu năng cho một giá trị duy nhất. Mặc dù có thể chứng minh tính hiệu quả của mô hình, xong giá trị dự đoán chỉ mang tính chất trung bình, không phản ánh được trong một số trường hợp. Cụ thể, trong hai lần đo đạc hiệu năng với cùng một tốc độ tới, cũng thu được kết quả thời gian đáp ứng khác nhau. Lý do là thời gian đáp ứng phụ thuộc vào đặc điểm của hệ thống tại từng thời điểm, các yếu tố phụ thuộc này thường mang tính chất ngẫu nhiên. Khắc phục nhược điểm này, ta đưa vào mô hình sử dụng nhiễu trong phân tích hồi quy Gaussian Process để đưa ra dải giá trị dự đoán cho hiệu năng.
Bố cục của bài báo tiếp theo trình bày như sau: trong phần II trình bày giải pháp đề xuất; trong phần III là
đánh giá trên cơ sở tính toán khoảng tin cậy cho kỳ vọng; trong phần IV trình bày thử nghiệm thực tế đã cài đặt; phần V là kết luận và hướng nghiên cứu tiếp theo.
Hình 1 mô tả tổng quan quá trình 3 bước thực hiện dự đoán hiệu năng Web Service theo giải pháp đề xuất.
Bước 1: Xây dựng mô hình của tín hiệu và nhiễu dựa trên các mẫu giá trị hiệu năng thu thập được.
Bước 2: Sử dụng mô hình hàng đợi, dựa vào các dữ liệu trong tập huấn luyện để đánh giá các tham số cho mô hình. Khi mô hình hàng đợi hoàn toàn xác định, chỉ phụ thuộc vào tốc độ tới, ta bắt đầu thực hiện làm giàu dữ liệu. Lấy các giá trị tốc độ tới nằm ngoài khoảng giá trị trong bộ dữ liệu huấn luyện, và tính toán thời gian đáp ứng, để thu được bộ giá trị dữ liệu mới.
Bước 3: Thực hiện phân tích hồi quy Gaussian Process dựa trên dữ liệu đã làm giàu, đưa ra kết quả dự đoán kì vọng cho thời gian đáp ứng và đánh giá khoảng tin cậy.
Hình 1: Phương pháp dự đoán hiệu năng Web Services
II.1. Xây dựng mô hình đầu vào
Kiểm thử hiệu năng hệ thống được sử dụng trong đánh giá hiệu năng phần mềm để đảm bảo hiệu năng hệ thống giống như mong đợi. Trong quá trình kiểm thử hiệu năng, ta có khả năng kiểm soát được tải của hệ thống, có thể thực hiện kiểm thử trong môi trường tải cao (nhiều yêu cầu) hoặc môi trường tải thấp (ít yêu cầu). Việc kiểm thử hiệu năng có thể tiến hành theo hai mô hình, mô hình mở (open model), hoặc mô hình
đóng (close model) [3,5]. Trong mô hình mở, người sử dụng tới hệ thống ở một tốc độ định trước và rời hệ thống khi yêu cầu được thực hiện. Trong mô hình đóng, số lượng người sử dụng được phục vụ trong hệ thống là cố định. Kế thừa các nghiên cứu trong [2,3,4,5], chúng tôi sử dụng mô hình mở.
Các lí thuyết nghiên cứu của Markov và Poisson đưa ra kết quả khẳng định rằng quá trình đến có phân phối xác suất theo hàm mũ (phân phối mũ) là một quá trình Poisson (Poisson process) [5]. Quá trình đó được thực hiện như sau: Với mỗi tốc độ tới ta thực hiện M lần, ở mỗi lần thứ ta lần lượt gửi yêu cầu ở tốc độ tới , sau đó thực hiện đo thời gian đáp ứng của hệ thống với từng yêu cầu thứ k là . Ở mỗi lần thứ j ta tính giá trị thời gian đáp ứng trung bình theo công thức (1):
(1)
Thời gian đáp ứng trung bình ứng với tốc độ tới cho tất cả các lần đo được tính là:
(2)
Ta thực hiện đo đạc N lần ở các giá trị tốc độ tới khác nhau, giá trị thời gian đáp ứng chỗ mỗi lần thứ i là được cho trong công thức (1) và (2). Kết quả đầu ra của kiểm thử hiệu năng là các bộ số liệu Dựa vào bộ dữ liệu hiệu năng thu thập ở trên, ta đi xây dựng mô hình dữ liệu đầu vào. Có hai mô hình đầu vào cần thiết cho phương pháp là mô hình tín hiệu và mô hình nhiễu. Mô hình tín hiệu là chung cho tất cả các phương pháp và có dạng:
(3)
Tiếp theo, ta đi xây dựng mô hình nhiễu. Nhiễu thường mang tính chất ngẫu nhiên do nhiều nguyên nhân khác nhau. Chúng ta sử dụng mô hình phân phối xác suất Gauss, hay còn gọi là phân phối chuẩn. Dựa vào các mẫu số liệu ta sẽ đánh giá các giá trị kì vọng và phương sai cho nhiễu.
Đặt và , khi đó ta thu được bộ số là đặc trưng cho nhiễu của tín hiệu (là sai số so với giá trị trung bình). Giá trị kì vọng của nhiễu là 0, và phương sai là:
(4)
Lí thuyết về độ tin cậy của phân phối Gauss [10] cho kết quả là với xác suất 95% thì khoảng tin cậy của kì vọng giá trị nhiễu sẽ là khoảng . Khi đó cũng với xác suất 95% thì khoảng tin cậy cho giá trị kì vọng của thời gian đáp ứng sẽ nằm trong khoảng . Thực hiện tương tự cho các giá trị tới khác ta thu được mô hình nhiễu cho bộ dữ liệu đầu vào.
II.2. Làm giàu dữ liệu sử dụng Queuing Network
Làm giàu dữ liệu cũng là một quá trình suy diễn, nhưng là suy diễn có căn cứ dựa trên mô hình của Web Services, do đó đạt độ chính xác cần thiết. Mô hình phổ biến nhất là mô hình mạng hàng đợi (Queuing Network) [10]. Như đã trình bày trong mục II.1, có thể kiểm soát được quá trình tới bằng cách điều chỉnh các thông số kiểm thử. Các thông số liên quan tới thời gian dịch vụ có thể được đánh giá dựa vào phân tích hồi quy, còn số lượng servers phụ thuộc vào mô hình kiến trúc của hệ thống. Gọi M là số số lượng hàng đợi trong hệ thống; là tốc độ tới trong toàn bộ hệ thống;là xác suất để yêu cầu của người dùng vào hàng đợi j sau khi rời khỏi hàng đợi I (); là xác suất để yêu cầu của người dùng rời khỏi hệ thống sau khi chờ ở hàng đợi i; là xác suất để yêu cầu của người dùng đến hệ thống ở hàng đợi i. Ta có thể đánh lại chỉ số các hàng đợi để chỉ số cho hàng đợi tương ứng với Web Service cần dự đoán hiệu năng là 1. Vì yêu cầu của người dùng luôn phải qua Web Service này nên xác suất để yêu cầu của người dùng đến hệ thống ở hàng đợi 1 là và xác suất người dùng tới hệ thống ở các hàng đợi khác là.là tốc độ tới tổng thể ở hàng đợi i; là tỉ số thăm (visit ratio) ở hàng đợi i (tỉ số thăm thực chất là giá trị tốc độ tới được chuẩn hóa). Tốc độ tới hàng đợi i được xem xét trong mối quan hệ với tốc độ rời đi ở các hàng đợi khác tới hàng đợi i. Ở mỗi hàng đợi tốc độ rời đi được đánh giá thông qua tốc độ tới. Khi đó công thức đánh giá thời gian đáp ứng E[R] của mô hình Queuing Network này là:
(5)
Trong công thức (5) ở trên đại lượng không có chỉ số i, ý chỉ thời gian đáp ứng chỉ phụ thuộc vào tốc độ tới của toàn bộ hệ thống mà không phụ thuộc vào tốc độ tới trong từng hàng đợi. Phần chứng minh công thức (5) được chỉ ra trong tài liệu [3]. Trước khi đưa ra kết quả dự đoán, ta phải đi xác định các tham số sử dụng bộ dữ liệu vào là tập huấn luyện. Gọi là bộ tham số trong mô hình hàng đợi. Đặt là công thức tính thời gian đáp ứng theo mô hình hàng đợi, phụ thuộc vào bộ tham số . Với một bộ giá trị xác định của tham số ta thu được kết quả dự đoán là . Ta đánh giá sai số trung bình bình phương trong kết quả dự đoán:
(6)
Ta chọn tham số i sao cho cực tiểu hóa hàm sai số bình phương trong công thức (6). Để làm được điều này ta áp dụng phương pháp Gradient liên hợp không tuyến tính [11]. Sau khi xác định các tham số mô hình hàng đợi, ta tiến hành lấy mẫu tại các điểm tốc độ tới phù hợp. Đặt lần lượt là giá trị tốc độ tới nhỏ nhất, giá trị tốc độ tới lớn nhất trong tập huấn luyện. Sau khi các tham số của mô hình hàng đợi đã xác định, ta sẽ sử dụng mô hình hàng đợi để lấy thêm các mẫu tại tốc độ tới nằm ngoài khoảng là chủ yếu. Gọi kích thước bộ dữ liệu mới lấy thêm từ mô hình hàng đợi là M, tập dữ liệu mới này có dạng: . Kết hợp tập dữ liệu mới này với tập huấn luyện ta có tập dữ liệu làm giàu trước khi đưa vào phân tích hồi quy Gaussian Process.
(còn tiếp)
» Tin mới nhất:
» Các tin khác: