Nghiên cứu kỹ thuật chuyển đổi biểu đồ hoạt động thành queueing petri nets ứng dụng trong đánh giá hiệu năng phần mềm Nghiên cứu kỹ thuật chuyển đổi biểu đồ hoạt động thành queueing petri nets ứng dụng trong đánh giá hiệu năng phần mềm luận văn tốt nghiệp thạc sĩ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGUYỄN THANH LOAN
NGHIÊN CỨU KỸ THUẬT CHUYỂN ĐỔI BIỂU ĐỒ HOẠT ĐỘNG THÀNH QUEUEING PETRI NETS ỨNG DỤNG TRONG ĐÁNH GIÁ HIỆU NĂNG PHẦN MỀM
LUẬN VĂN THẠC SĨ KỸ THUẬT NGÀNH CÔNG NGHỆ THÔNG TIN
HÀ NỘI - 2019
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGUYỄN THANH LOAN
NGHIÊN CỨU KỸ THUẬT CHUYỂN ĐỔI BIỂU ĐỒ HOẠT ĐỘNG THÀNH QUEUEING PETRI NETS ỨNG DỤNG TRONG ĐÁNH GIÁ HIỆU NĂNG PHẦN MỀM
Chuyên ngành Công nghệ thông tin
LUẬN VĂN THẠC SĨ KỸ THUẬT NGÀNH CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC PGS TS HUỲNH QUYẾT THẮNG
HÀ NỘI - 2019
Trang 3LỜI CAM ĐOAN
Tôi tên là: Nguyễn Thanh Loan
Sinh ngày: 04 tháng 12 năm 1986 – Tại Hà Nội
Quê quán: Hà Nội
Hiện đang công tác tại: Công ty cổ phần công nghệ Teko Việt Nam
Là học viên cao học ngành Công nghệ thông tin khóa 2016B của Trường Đại học Bách Khoa Hà Nội
Cam đoan đề tài: “Nghiên cứu kỹ thuật chuyển đổi biểu đồ hoạt động thành
Queueing Petri Nets ứng dụng trong đánh giá hiệu năng phần” là công trình
nghiên cứu của bản thân tôi dưới sự hướng dẫn của PGS.TS Huỳnh Quyết Thắng Các số liệu, kết quả nghiên cứu trong luận văn là trung thực, rõ ràng
Hà Nội, ngày 21 tháng 10 năm 2019
Học viên thực hiện nghiên cứu
Nguyễn Thanh Loan
Trang 4Sinh viên thực hiện
Ký và ghi rõ họ tên
Trang 5MỤC LỤC
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ KỸ THUẬT MÔ HÌNH HÓA ĐÁNH GIÁ HIỆU NĂNG PHẦN MỀM 3
1.1 Định nghĩa về Hiệu năng phần mềm 3
1.2 Đánh giá hiệu năng phần mềm 3
1.3 Một số kỹ thuật mô hình hóa đánh giá hiệu năng phần mềm 5
Kỹ thuật mô hình hóa QN 5
Khái quát về QN 5
Ưu điểm và nhược điểm của QN 7
Một số nghiên cứu liên quan về QN 7
Kỹ thuật mô hình hóa PN 8
Khái quát về PN 8
Ưu điểm và nhược điểm của PN 9
Một số nghiên cứu liên quan về PN 10
1.4 Kết luận chương 11
CHƯƠNG 2 MÔ HÌNH HIỆU NĂNG QUEUEING PETRI NETS 12
2.1 Giới thiệu 12
2.2 Mô hình QPN 13
Metamodel 14
Định nghĩa hình thức 14
2.3 QPN phân cấp 16
2.4 Các nguyên tắc khởi hành 17
2.5 Ví dụ mô hình QPN 18
2.6 Môi trường mô hình QPN 20
Bộ chỉnh sửa QPN (QPE) 20
Bộ mô phỏng QPN (SimQPN) 23
Hỗ trợ mô hình 24
Dữ liệu đầu ra 24
Phân tích trạng thái ổn định 25
Xử lý và trực quan hóa các kết quả 26
2.7 Kết luận chương 26
CHƯƠNG 3 XÂY DỰNG BIẾN ĐỔI BIỂU ĐỒ HOẠT ĐỘNG THÀNH QUEUEING PETRI NETS VÀ THỬ NGHIỆM 28
3.1 Biểu đồ hoạt động (Activity Diagram) 28
Biểu đồ hoạt động 28
Trang 6Metamodel 28
Ký pháp và ngữ nghĩa 29
Định nghĩa hình thức 32
3.2 Xây dựng mô hình biến đổi biểu đồ hoạt động thành QPN 33
Sơ đồ khối của mô hình biến đổi 33
Các ràng buộc trong Bộ chuyển đổi AD2QPN 34
Tập luật trong Bộ chuyển đổi AD2QPN 35
Kết quả thực nghiệm của tập luật 39
Định nghĩa hình thức cho biến đổi AD2QPN 44
Cơ sở lý thuyết của tập luật 46
3.3 Thử nghiệm mô hình biến đổi biểu đồ hoạt động thành QPN 46
Giải pháp và công cụ xây dựng bộ chuyển đổi 46
Một số thông số đo hiệu năng hệ thống 47
Kịch bản thiết kế phần mềm 48
Kịch bản thử nghiệm 49
3.4 Kết luận chương 52
KẾT LUẬN VÀ KHUYẾN NGHỊ 53
TÀI LIỆU THAM KHẢO 55
Trang 7DANH MỤC HÌNH VẼ
Hình 1.1 Các giai đoạn mô hình hóa theo hướng hiệu năng và quy trình đánh giá
hiệu năng tại bước kiến trúc của phần mềm 4
Hình 1.2 Mô hình QN của XMLTranslator 8
Hình 1.3 Mô hình PN của XMLTranslator 9
Hình 2.1 Một place hàng đợi và ký hiệu của nó 13
Hình 2.2 Metamodel của QPN 14
Hình 2.3 Một place mạng con và ký hiệu của nó 17
Hình 2.4 Mô hình QPN của một hệ thống Java EE [9] 18
Hình 2.5 Cửa sổ QPE chính 23
Hình 2.6 Bộ chỉnh sửa hàm tỷ lệ QPE 23
Hình 3.1 Metamodel của biểu đồ hoạt động 29
Hình 3.2 Một số ký pháp trong biểu đồ hoạt động 29
Hình 3.3 Một ví dụ về biểu đồ hoạt động 31
Hình 3.4 Một ví dụ về AD gọi từ CallBehaviorAction trong AD khác 32
Hình 3.5 Sơ đồ khối của mô hình biến đổi 33
Hình 3.6 Biến đổi ActivityNode trong AD thành cấu trúc PCT 35
Hình 3.7 Cấu trúc SPCT cho s-place sinh ra từ CallBehaviorAction 36
Hình 3.8 Biến đổi ControlFlow trong AD thành pt-connection trong QPN 37
Hình 3.9 Xử lý một Action theo sau bởi một Fork Node 39
Hình 3.10: Biến đổi Action hoặc CallBehaviorAction 40
Hình 3.11: Biến đổi FJNode 40
Hình 3.12: Biến đổi DMNode 41
Hình 3.13: Biến đổi InitialNode và FinalNode (AD chính) 42
Hình 3.14: Biến đổi InitialNode và FinalNode (AD chính) 43
Hình 3.15: Biến đổi InitialNode và FinalNode 44
Hình 3.16 Giải pháp xây dựng Bộ chuyển đổi AD2QPN 47
Hình 3.17 AD liên kết với hồ sơ hiệu năng trong thử nghiệm 48
Hình 3.18 AD gọi từ CallBehaviorAction trong AD khác trong thử nghiệm 49
Hình 3.19 QPN tương ứng với AD chính 49
Hình 3.20 Subnet trong QPN tương ứng với AD gọi từ CallBehaviorAction 49
Hình 3.21 Cấu hình chạy thử nghiệm phân tích QPN 50
Trang 8DANH MỤC BẢNG
Bảng 3.1 Công cụ để thực hiện giải pháp xây dựng Bộ chuyển đổi AD2QPN 47Bảng 3.2 : Kết quả phân tích hiệu năng cho một số place trong QPN 50Bảng 3.3 Kết quả phân tích hiệu năng cho các Queue trong QPN 51Bảng 3.4: Kết quả phân tích hiệu năng cho các Queue trong QPN 52
Trang 9DANH MỤC CÁC KÍ HIỆU VIẾT TẮT
2 SPE Software Performance
Engineering
Kỹ nghệ hiệu năng phần mềm
3 UML Unified Modeling Language Ngôn ngữ mô hình hóa
thống nhất
6 FCFS First Come First Served
7 GSPN Generalized Stochastic Petri
10 XML eXtensible Markup Language
11 CPN Colored Petri Net
12 LGSPN Labeled Generalized Stochastic
PN
13 EQN Extended Queueing Network
14 SPN Stochastic Petri Net Mạng Petri ngẫu nhiên
15 CGSPN Colored Generalized Stochastic
Petri Net
Trang 10TT Viết tắt Đầy đủ Diễn giải
16 QPN Queueing Petri Net Mạng Petri hàng đợi
17 HQPN Hierarchically-Combined QPN QPN phân cấp
20 OMG Object Management Group Nhóm quản lý đối tượng
22 XSLT eXtensible Stylesheet Language
Transformation
Trang 11MỞ ĐẦU
Trong thập kỷ qua, một vài nghiên cứu đã nỗ lực tập trung vào nghiên cứu tầm quan trọng của việc đánh giá định lượng được tích hợp trong quy trình phát triển phần mềm để đáp ứng yêu cầu phi chức năng Trong các nghiên cứu này, hiệu năng là một trong những yếu tố ảnh hưởng nhất được các nghiên cứu quan tâm giải quyết Các vấn đề về hiệu năng có thể ảnh hưởng đến mức yêu cầu thay đổi thiết kế, ví dụ có thể yêu cầu thay đổi ở mức kiến trúc của phần mềm hoặc thậm chí tệ hơn trong phân tích yêu cầu
Các phương pháp phát triển phần mềm truyền thống tập trung vào đáp ứng các yêu cầu chức năng của phần mềm, còn các vấn đề về hiệu năng thường được
bỏ qua hoặc chỉ được quan tâm ở cuối cùng trong quá trình phát triển Cách phát triển này thường được gọi là phương pháp "sửa lỗi sau"
Trong cộng đồng nghiên cứu đã có sự quan tâm ngày càng nhiều về vấn đề đánh giá hiệu năng phần mềm sớm trong quy trình phát triển phần mềm, do vậy một số cách tiếp cận đánh giá hiệu suất phần mềm sớm đã được đề xuất Mặc dù một số cách tiếp cận đã được áp dụng thành công nhưng vẫn còn một khoảng trống cần được tiếp tục nghiên cứu bổ sung để đưa đánh giá hiệu năng được tích hợp ngay trong phát triển phần mềm
Từ vấn đề nêu trên, em đã chọn đề tài: “Nghiên cứu kỹ thuật chuyển đổi biểu
đồ hoạt động thành Queueing Petri Nets ứng dụng trong đánh giá hiệu năng phần mềm”
Mục tiêu của đề tài: Nghiên cứu tổng quan về đánh giá hiệu năng phần mềm, trong đó tập trung nghiên cứu các kỹ thuật mô hình hóa PN và QN; Nghiên cứu
mô hình hiệu năng Queueing Petri Nets và xây dựng biến đổi biểu đồ hoạt động thành Queueing Petri Nets; Cuối cùng tiến hành xây dựng chương trình thử nghiệm, đánh giá và phân tích
Cấu trúc của luận văn được chia thành ba chương cụ thể như sau:
Chương 1: Tổng quan về kỹ thuật mô hình hóa đánh giá hiệu năng phần mềm
Trong chương sẽ nghiên cứu và trình bày khái niệm về hiệu năng phần mềm, đánh hiệu năng phần mềm và một số kỹ thuật mô hình hóa đánh giá hiệu năng phần mềm (mạng Petri, mạng hàng đợi)
Trang 12Chương 2: Mô hình hiệu năng Queueing Petri Nets
Trong chương sẽ nghiên cứu và trình bày khái quát về mô hình hiệu năng QPN như định nghĩa, môi trường hoạt động của mô hình QPN
Chương 3: Xây dựng biến đổi biểu đồ hoạt động thành Queueing Petri Nets và thử nghiệm
Trang 13CHƯƠNG 1 TỔNG QUAN VỀ KỸ THUẬT MÔ HÌNH HÓA ĐÁNH GIÁ
HIỆU NĂNG PHẦN MỀM
Trong chương này, luận văn sẽ nghiên cứu và trình bày những khái niệm
cơ bản về hiệu năng phần mềm, đánh giá hiệu năng phần mềm và khái quát một
số kỹ thuật mô hình hóa đánh giá hiệu năng phần mềm, cụ thể: mạng Petri và mạng hàng đợi
1.1 Định nghĩa về Hiệu năng phần mềm
Theo tiêu chuẩn ISO/IEC 25010, chất lượng phần mềm được định nghĩa là mức độ mà phần mềm đáp ứng các yêu cầu với đặc tính cụ thể Một trong những đặc điểm chính ảnh hưởng đến chất lượng phần mềm đó là hiệu năng phần mềm, được chia thành ba đặc tính riêng: Hành vi thời gian, sử dụng tài nguyên và năng lực xử lý Các định nghĩa của ba đặc tính này có thể đóng vai trò như một định nghĩa về hiệu năng phần mềm Hiệu năng phần mềm bao gồm [1]:
- Hành vi thời gian: Bao gồm thời gian đáp ứng (response time), thời gian xử
lý (processing times) và thông lượng (throughput);
- Sử dụng tài nguyên (Resource utilization): Lượng tài nguyên cần để đáp ứng yêu cầu của phần mềm;
- Công suất (Capacity): Là khả năng đáp ứng tối đa của phần mềm
1.2 Đánh giá hiệu năng phần mềm
Đánh giá hiệu năng các phần mềm có thể được thực hiện bằng cách đo các thông số được trình bày ở phần trên hoặc bằng các kỹ thuật mô hình hóa Việc đo các thông số cho chúng ta đánh giá chính xác hiệu năng của phần mềm và thực hiện tương đối dễ, nhưng đòi hỏi phần mềm phải được xây dựng hoàn chỉnh thì mới thực hiện đo được Để hoàn thành một phần mềm phức tạp, thông thường chúng ta mất nhiều thời gian, dễ bị lỗi và tốn kém; do vậy trong các nghiên cứu hiện nay thường tập trung hướng vào nghiên cứu ngay tại các bước trong quy trình phát triển phần mềm với mục tiêu giảm lỗi ngay trong quá trình phát triển phần mềm
Trong luận văn này, chúng tôi tập trung nghiên cứu hướng đánh giá hiệu năng phần mềm bằng các kỹ thuật mô hình hóa, mà cụ thể đánh giá hiệu năng tại bước thiết kế kiến trúc của phần mềm Khi kiến trúc của phần mềm xuất hiện các vấn đề
Trang 14liên quan đến hiệu năng thì không thể khắc phục các vấn đề này được ngay nếu phần mềm đã được triển khai; nếu muốn khắc phục phải thay đổi thiết kế dẫn đến chi phí cao Do đó, rất có ích khi đánh giá các độ đo hiệu năng ngay tại bước thiết
kế kiến trúc của phần mềm bằng cách phát triển và đánh giá một mô hình hiệu năng liên quan đến kiến trúc của phần mềm Đánh giá mô hình hiệu năng này có thể bằng các kỹ thuật phân tích, kỹ thuật mô phỏng hoặc kỹ thuật lai
Hầu hết các nghiên cứu trong lĩnh vực Kỹ nghệ hiệu năng phần mềm (Software Performance Engineering - SPE) đều dựa trên việc phát triển các mô hình phân tích kiến trúc của phần mềm [9, 15] Tuy nhiên, các mô hình này thường chỉ được xây dựng bằng cách chỉ định một số hạn chế đối với cấu trúc của mô hình phần mềm gốc Các chỉ định hạn chế này phụ thuộc vào mô hình phân tích được chọn vì các mô hình phân tích thường có một biểu thức giới hạn Mặc dù đôi khi có thể đơn giản hóa mô hình của phần mềm để làm cho mô hình trở nên dễ phân tích hơn nhưng trong nhiều trường hợp các vấn đề quan trọng của phân mềm không được thể hiện vào mô hình phân tích hiệu năng
Hình 1.1 Các giai đoạn mô hình hóa theo hướng hiệu năng và quy trình đánh giá
hiệu năng tại bước kiến trúc của phần mềm
Hình 1.1 minh họa quá trình mô hình theo hướng hiệu năng Bắt đầu là một
mô tả về kiến trúc của phần mềm, gồm tập hợp các biểu đồ UML (Unified Modeling Language - ngôn ngữ mô hình hóa thống nhất) được chú thích bằng các thông tin định lượng để tạo ra một mô hình hiệu năng dựa trên mô phỏng Mô hình
Thuật toán mô
Mô hình
mô phỏng Phản hồi
hình
Độ đo hiệu năng
Công cụ đánh giá hiệu năng
Các kịch bản thử nghiệm
Trang 15thu được bằng cách sử dụng Thuật toán mô hình hóa phù hợp và sau đó được triển khai trong chương trình mô phỏng, cuối cùng thực thi Kết quả mô phỏng là tập các độ đo hiệu năng có thể được sử dụng để cung cấp phản hồi ở bước thiết kế kiến trúc phần mềm gốc Các phản hồi sẽ xác định chính xác các vấn đề liên quan đến hiệu năng tại bước kiến trúc của phần mềm và có thể cung cấp các đề xuất cho nhà thiết kế phần mềm về cách giải quyết những vấn đề liên quan đến hiệu năng phần mềm Chu trình mô hình hiệu năng được minh họa trong Hình 1.1 có thể được lặp lại cho đến khi kiến trúc của phần mềm đáp ứng yêu cầu về hiệu năng thì dừng lại
1.3 Một số kỹ thuật mô hình hóa đánh giá hiệu năng phần mềm
Như đã trình bày ở Phần 1.2, luận văn này sẽ tập trung nghiên cứu đánh giá hiệu năng phần mềm theo hướng sử dụng kỹ thuật mô hình hóa, cụ thể trong phần này, luận văn sẽ trình bày hai kỹ thuật mô hình hóa đánh giá hiệu năng: Mạng Petri (PN - Petri net) và Mạng hàng đợi (QN - Queueing Network)
Trước đây, việc đánh giá hiệu năng phần mềm dựa trên ngôn ngữ mô hình hóa thống nhất UML là vấn đề rất khó khăn và phức tạp Tuy nhiên, từ những năm
2002, nhiều nhà khoa học bắt đầu tiếp cận các hướng nghiên cứu đánh giá hiệu năng của phần mềm thông qua PN, QN
Kỹ thuật mô hình hóa QN
Khái quát về QN
Các mô hình QN đã được áp dụng rộng rãi như các mô hình hiệu năng hệ thống để biểu diễn và phân tích các hệ thống chia sẻ tài nguyên [3, 4] Một mô hình QN là tập hợp các trung tâm dịch vụ (service centers) tương tác với nhau biểu diễn các tài nguyên hệ thống và tập các khách hàng (customers) biểu diễn những người sử dụng chia sẻ các tài nguyên Mô hình QN được biểu diễn bằng một đồ thị có hướng, các nút của đồ thị là các trung tâm dịch vụ và các cạnh của đồ thị là hành vi các yêu cầu dịch vụ của khách hàng
Mô hình này có hai tham số Đầu tiên, chúng ta phải xác định cường độ công việc, trong trường hợp này là tốc độ khách hàng đến (ví dụ: một khách hàng cứ sau hai giây, hoặc 0,5 khách hàng / giây) Thứ hai, chúng ta phải chỉ định nhu cầu dịch
vụ, là yêu cầu dịch vụ trung bình của khách hàng (ví dụ: 1,25 giây) Đối với các giá trị tham số cụ thể, có thể đánh giá mô hình này bằng cách giải một số phương trình đơn giản, mang lại giá trị đánh giá hiệu suất như hệ số sử dụng (tỷ lệ thời
Trang 16gian của máy chủ bận rộn), thời gian cư trú (thời gian trung bình tại trung tâm dịch
vụ khách hàng, cả dịch vụ xếp hàng và nhận hàng), chiều dài hàng đợi (trung bình
số lượng khách hàng tại trung tâm dịch vụ, cả chờ và nhận dịch vụ) và thông lượng (tốc độ khách hàng đi qua Trung tâm dịch vụ)
Để tạo ra một mô hình QN, thông thường được chia thành ba bước:
- Bước 1: Định nghĩa (definition)
Bao gồm định nghĩa các trung tâm dịch vụ, xác định số lượng trung tâm dịch vụ, lớp khách hàng và cấu trúc liên kết của khách hàng
- Bước 2: Tham số hóa (parameterization)
Xác định các tham số mô hình, ví dụ: các quy trình, tỷ lệ dịch vụ và số lượng khách hàng
- Bước 3: Đánh giá (evaluation)
Để có được mô tả định lượng của hệ thống được mô hình hóa, bằng cách tính toán tập các số liệu hoặc chỉ số hiệu năng như sử dụng tài nguyên, thông lượng
hệ thống và thời gian đáp ứng của khách hàng Các chỉ số này có thể là riêng biệt cho từng tài nguyên hoặc cho toàn bộ hệ thống
Các phần mở rộng của mô hình QN gốc, đó là mô hình mạng hàng đợi mở rộng (EQN - Extended Queueing Network), đã được sử dụng để biểu diễn một số tính năng quan trọng của các hệ thống thực, như các hạn chế liên quan đến đồng
bộ và đồng thời, hàng đợi dung lượng hữu hạn, hạn chế bộ nhớ và sở hữu tài nguyên đồng thời EQN có thể được giải quyết bằng các kỹ thuật gần đúng [4]
Một mở rộng khác của các mô hình QN là mạng hàng đợi phân lớp (LQN – Layered Queueing Network) cho phép mô hình hóa các mẫu truyền dữ liệu giữa client-server trong các phần mềm phân tán [16, 18] Sự khác biệt chính giữa mô hình LQN và QN đó là trong LQN, một server có thể trở thành client (khách hàng) của các server khác trong lúc nó đang phục vụ các yêu cầu của clients của nó Các
mô hình LQN có thể được giải quyết bằng các phương pháp sắp xỉ dựa trên các phương pháp chuẩn của EQN cùng với việc sở hữu tài nguyên và Phân tích giá trị trung bình
Ví dụ về các công cụ đánh giá hiệu suất cho QN và EQN là Best-1, RESQ/IBM, QNAP2 và HIT [17] và cho LQN công cụ LQNS [18, 19]
Trang 17Ưu điểm và nhược điểm của QN
Đối với nhiều ứng dụng, mạng hàng đợi đạt được sự cân bằng thuận lợi giữa
độ chính xác và hiệu quả Về độ chính xác, phần lớn kinh nghiệm chỉ ra rằng các
mô hình mạng hạng đợi có thể được dự kiến là chính xác trong vòng 5 đến 10% cho hệ số sử dụng và thông lượng; trong vòng 10 đến 30% cho thời gian phản hồi Phương pháp này có nền tảng là lý thuyết xếp hàng và luật Little Do chi phí thấp, việc mô phỏng đơn giản, nó trở nên rất hữu dụng đối với các hệ thống không phức tạp, đòi hỏi độ chính xác của kết quả phân tích không cao Đối với các hệ thống phức tạp, do khả năng hạn chế trong việc biểu diễn các quan hệ tương tranh, đồng bộ cũng như các hoạt động nội tại của máy chủ nên phương pháp này không đáng tin cậy
Một số nghiên cứu liên quan về QN
Trong [14] sử dụng biểu đồ use case, biểu đồ triển khai và biểu đồ trình tự trong thiết kế của một hệ thống truy xuất thông tin đơn giản để sinh ra một mô hình EQN (Extended QN) và liên kết với việc giải mô hình này để thu thập được các giá trị hiệu năng cần thiết cho hệ thống
Trong [13], sử dụng biểu đồ use case, biểu đồ triển khai và biểu đồ hoạt động Tất cả các biểu đồ này cần được chú giải định lượng theo UML SPT Profile [2] Kết quả là mô hình QN đa lớp có thể phân tích được với các kỹ thuật chuẩn, các kết quả hiệu năng có thể được báo cáo lại để làm giá trị định lượng chú thích cho các phần tử trong UML
Cũng sử dụng biểu đồ use case, biểu đồ triển khai và UML SPT Profile để chú giải định lượng cho các phần tử trong UML nhưng [12] lựa chọn biểu đồ trình
tự thay vì biểu đồ hoạt động và mô hình đích nhắm đến là Layered QN (LQN) Kỹ thuật mô hình hóa này đã được thử nghiệm để phân tích hiệu năng của một hệ thống kiểm tra ở sân bay đối với các tài liệu du lịch có chữ ký đã được số hoá Hình 1.3 minh họa một QN bao gồm ba trung tâm dịch vụ tương ứng với thành phần Structure Builder, Market-up và những người sử dụng Chúng ta giả sử phân bố thời gian dịch vụ theo cấp số nhân và theo nguyên tắc hàng đợi FCFS Cấu trúc liên kết QN mô tả đường đi mà người sử dụng yêu cầu các luồng để hoàn
thành nhiệm vụ của họ, ở đây nhãn p đại diện cho xác suất mà thành phần
Trang 18Market-up đã hoàn thành việc đánh dấu văn bản lặp đi lặp lại Tỷ lệ dịch vụ t i , 1 ≤ i ≤ 3 và
số lượng khách hàng N là các tham số QN
Hình 1.2 Mô hình QN của XMLTranslator
Kỹ thuật mô hình hóa PN
Khái quát về PN
PN là một kỹ thuật mô hình hóa hình thức để đặc tả hành vi đồng bộ giữa
các hệ thống đang cùng hoạt động với nhau Một PN [2] được định nghĩa bởi tập
các place (vị trí), tập transtition (chuyển tiếp) và input function (hàm đầu vào)
mối quan hệ từ places đến transtitions, và output function (hàm đầu ra) mối quan
hệ từ transtion đến place, và một hàm marking (đánh dấu) liên kết mỗi place một
số nguyên không âm
PN được biểu diễn bằng đồ thị hai phía, có hướng: place được biểu diễn bởi các hình tròn, transtion được biểu diễn bởi các thanh hình chữ nhật (bars), input function biểu diễn bằng cung có hướng từ place đến transtion, output function bằng cung có hướng từ transition đến bars và đánh dấu bởi bullets, được gọi là các token (thẻ), miêu tả bên trong các place tương ứng Các token được phân bố trong các place định nghĩa trạng thái của mạng Petri Hành vi hoạt động của PN được biểu
diễn bởi trình tự transition firings Các nguyên tắc firing định nghĩa một transition
được phép hoặc không được phép
Dưới đây là các đặc điểm chính của PN:
- Quan hệ nhân quả và quan hệ phụ thuộc giữa các sự kiện có thể được biểu diễn rõ ràng Không xen kẽ, mối quan hệ một phần của đồng thời được giới thiệu trong các sự kiện độc lập lẫn nhau;
- Hệ thống có thể được biểu diễn tại các mức trừu tượng khác nhau;
- PN hỗ trợ xác minh một cách hình thức các thuộc tính hàm của các hệ thống
Trang 19Hình 1.2 minh họa cấu hình khởi tạo của kỹ thuật mô hình hóa PN tương ứng với hệ thống XMLTranslator Mỗi người sử dụng được biểu diễn bởi một mạng con được thể hiện bằng vùng màu xám trong hình, gồm: hai places và hai transitions, và các tokens trong places được mô tả bằng các yêu cầu dịch vụ Tương
tự, hai người sử dụng còn lại trong hệ thống cũng được biểu diễn tương ứng bởi các mạng con, được xác định bằng các vùng màu xám trong hình Các places được gán nhãn Q0, Q1, Q2 mô tả các hàng đợi liên kết đồng bộ Khi hoạt động, người
sử dụng yêu cầu vào Q1 để truy cập Structure Builder (Bộ biên dịch cấu trúc) Khi
đó đầu ra của Q1 được chuyển thành Q2 để truy cập Marker-up Cuối cùng các yêu cầu được trả về cho người sử dụng
Hình 1.3 Mô hình PN của XMLTranslator
Ưu điểm và nhược điểm của PN
Petri Nets cực kỳ hữu ích để đánh giá hiệu năng và mô tả các hệ thống phân tán được đặc trưng bởi tính tuần tự, đồng thời, đồng bộ hóa
Các đặc điểm điển hình được thể hiện bởi các hoạt động trong một hệ thống hướng sự kiện động, một cách đồng thời chẳng hạn như ra quyết định, đồng bộ hóa
và thứ tự ưu tiên đều có thể được mô hình hiệu quả bằng lưới Petri [20] Hạn chế
Trang 20của PN là thể hiện chủ yếu hành vi hệ thống và thiếu sự mô hình hóa phần cứng ở các khía cạnh tranh chấp phần cứng và lập lịch Trong khi đó, các hệ thống ngày càng phát triển về quy mô và độ phức tạp, việc xây dựng các mô hình nắm bắt chính xác các khía cạnh khác nhau trong hành vi của chúng trở thành một nhiệm
vụ ngày càng khó khăn hơn
Bởi vậy việc kết hợp PN và QN thành QPN cung cấp sức mạnh mô hình và tính biểu cảm lớn hơn Sử dụng QPN, ta có thể tích hợp cả hai khía cạnh phần cứng
và phần mềm của hành vi hệ thống vào cùng một mô hình Ngoài các chiến lược tranh chấp phần cứng và lập lịch, QPN giúp dễ dàng mô hình hóa sự tranh chấp phần mềm, sở hữu tài nguyên đồng thời, đồng bộ hóa, chặn và xử lý không đồng
bộ Những khía cạnh này có tác động đáng kể đến hiệu suất của các hệ thống phân tán hiện đại
Một số nghiên cứu liên quan về PN
Trong [11], một công cụ biến đổi mô hình mang tên SD2PN được giới thiệu cho phép biến đổi từ biểu đồ UML trình tự thành PN, thực hiện phân tích và tổng hợp trong biểu đồ trình tự bằng cách sử dụng các phương pháp phân tích và tổng hợp trên mô hình PN thu được Thuộc tính thời gian cũng được tích hợp vào PN cho phép mô tả chân thực hơn hoạt động của hệ thống biểu diễn bằng biểu đồ trình
tự
Một cải tiến sử dụng PN làm mô hình đích được trình bày ở [10] Mô hình nguồn được lựa chọn là biểu đồ UML hoạt động Phương pháp biến đổi này dựa trên bộ ngữ nghĩa theo Petri Net cung cấp cho biểu đồ hoạt động được đề cập tới trong [8]
Trong [7], một cải tiến khác được nêu ra, nhận biểu đồ trình tự như mô hình nguồn và Colored PN (CPN) như mô hình đích Một số thử nghiệm đối với hệ thống dịch vụ điện toán đám mây và hệ thống thang máy được tiến hành, tuy không phân tích định lượng mô hình đích thu được nhưng vẫn đem lại một sự tin tưởng nhất định do [7] đã cung cấp các định nghĩa hình thức, lập luận, chứng minh khoa học
Trong [6] trình bày kỹ thuật mô hình hóa từ biểu đồ hoạt động với các phần
tử được chú giải bởi UML SPT Profile thành Labeled Generalized Stochastic PN (LGSPN), các định nghĩa hình thức trở nên phức tạp hơn nhưng độ tin cậy lại cao
Trang 21hơn Cũng liên quan đến mô hình đích là LGSPN, trong [5] đề cập đến kỹ thuật
mô hình hóa từ biểu đồ trình tự hoặc biểu đồ trạng thái
1.4 Kết luận chương
Trong chương này, luận văn đã trình những khái niệm cơ bản về hiệu năng phần mềm, đánh giá hiệu năng phần mềm và hai mô hình đánh giá hiệu năng (PN, QN) Như vậy, có hai hướng tiếp cận để đánh giá hiệu năng phần mềm và trong những năm gần đây các nghiên cứu tập trung vào hướng đánh giá hiệu năng phần mềm sớm trong quá trình phát triển phần mềm, đó là sử dụng các kỹ thuật mô hình hóa mà cụ thể là đánh giá hiệu năng ngay tại biểu đồ UML của phần mềm Trong chương tới, luận văn tập trung nghiên cứu mô hình hiệu năng Queueing Petri Nets, đây là mô hình được kế thừa PN và QN
Trang 22CHƯƠNG 2 MÔ HÌNH HIỆU NĂNG QUEUEING PETRI NETS
Như đã trình bày ở Chương 1, chương này luận văn tập trung vào nghiên cứu và trình bày về mô hình hiệu năng QPN như định nghĩa về mô hình, môi trường hoạt động của mô hình QPN…
2.1 Giới thiệu
QPN được giới thiệu vào năm 1993 bởi Falko Bause [21], QPN có một số ưu điểm tốt hơn so với các mô hình thông thường khác như mạng hàng đợi (QN) và mạng Petri ngẫu nhiên (SPN - Stochastic Petri Nets) Bằng cách kết hợp điểm mạnh và sự mở rộng của QN và SPN, QPN cho phép tích hợp phần cứng và phần mềm của hệ thống vào cùng một mô hình Ngoài chiến lược điều phối và chiến lược sử dụng phần cứng, QPN dễ dàng đồng thời mô hình hóa tài nguyên, đồng
bộ, xử lý không đồng bộ và tranh chấp phần mềm Những vấn đề này đều ảnh hưởng nhiều đến hiệu năng của hệ thống
Một ưu điểm khác của QPN là có thể được sử dụng để kết hợp phân tích hệ thống một cách định tính và định lượng Một số lượng các kỹ thuật hiệu quả từ lý thuyết mạng Petri có thể được khai thác để xác minh một số đặc điểm định tính quan trọng của QPN Việc xác minh đặc điểm định tính không chỉ giúp hiểu rõ hơn về hành vi của hệ thống, nhưng cũng là điều kiện tiên quyết cần thiết để phân tích định lượng thành công [22] Ưu điểm cuối cùng nhưng không kém phần quan trọng, các mô hình QPN có biểu diễn đồ họa trực quan tạo điều kiện phát triển mô hình
Trong phần này, luận văn sẽ trình bày một cách khái quát về QPN Sau đó trình bày QPME (Queueing Petri net Modeling Environment - Môi trường mô hình hóa hàng đợi Petri) [23], một công cụ mã nguồn mở để mô hình hóa và phân tích các hệ thống sử dụng QPN Công cụ này được phát triển và duy trì bởi Descartes Research Group [24] tại Viện Công nghệ Karlsruhe (KIT) Phiên bản đầu tiên của công cụ được phát hành vào tháng 1 năm 2007 và kể từ đó nó được phân phối cho hơn 130 tổ chức trên toàn thế giới (các trường đại học, công ty và viện nghiên cứu)
Từ tháng 5 2011, QPME được phân phối theo Eclipse Public License
Trang 232.2 Mô hình QPN
Ý tưởng chính đằng sau QPN là thêm khía cạnh hàng đợi và thời gian vào các place của CGSPNs (Colored Generalized Stochastic Petri Nets) [21] Điều này được thực hiện bằng cách cho phép các hàng đợi (các trạm dịch vụ) được tích hợp vào các place của CGSPN Một place của CGSPN tích hợp hàng đợi được gọi là
queueing place (place hàng đợi) và bao gồm hai thành phần:
- Thành phần hàng đợi (queue) cho phép các token được đặt trong hàng đợi
để chờ thực hiện dịch vụ;
- Thành phần lưu ký (depository) lưu giữ các token đã hoàn thành dịch vụ
của chúng ở thánh phần hàng đợi
Hình 2.1 mô tả trực quan hình ảnh của place hàng đợi trong QPN
Hình 2.1 Một place hàng đợi và ký hiệu của nó
Hoạt động của QPN như sau: các token, khi được thêm vào một place hàng đợi bởi một transition đầu vào bất kỳ nào đó của place hàng đợi, được thêm vào place hàng đợi theo các chiến lược điều phối hàng đợi Các token trong place hàng đợi không có sẵn cho transition đầu ra của place hàng đợi Sau khi token hoàn thành dịch vụ của mình, token ngay lập tức được chuyển cho thành phần depository Tại đây, các token trở thành sẵn có cho các transition đầu ra của place
hàng đợi Place hàng đợi loại này được gọi là place hàng đợi theo thời gian (timed
queueing place) Ngoài ra, trong QPN còn có place hàng đợi tức thời (immediate queueing place) cho phép mô tả việc điều phối thuần túy Các token trong những
place hàng đợi tức thời được xem như có thể phục vụ ngay lập tức Điều phối cho
place hàng đợi tức thời có độ ưu tiên cao hơn so với place hàng đợi theo thời gian
Trang 24Metamodel
Hình 2.2 Metamodel của QPN
Mỗi QPN là tập hợp của các queue (hàng đợi), place (vị trí), transition (chuyển tiếp) và connection (cung kết nối) được mô tả như trong metamodel ở hình 2.2 Các Queue để điều phối các yêu cầu truy cập Một Place có thể chứa nhiều Color (màu) để phân biệt các token với nhau khi có nhiều loại Một Transition có thể có nhiều Mode (chế độ) Có hai loại transition là TimedTransition (t-transition)
là dạng transition có liên quan đến yếu tố thời gian và ImmediateTransition transition) là dạng transition mà thời gian không phải nhân tố ảnh hưởng đến nó Có hai loại Connection, PlaceTransitionConnnection (pt-connection) dùng để kết nối một place với một transition và ngược lại; IncidenceFunctionConnection (if-connection) dùng để kết nối có trọng số một color với một mode và ngược lại
Trang 25- T = {t1, t2,…, tn } là tập hữu hạn khác rỗng của các transition, P∩T=∅
- C là một hàm màu xác định một tập màu hữu hạn khác rỗng cho mỗi place
và một tập mode (chế độ) hữu hạn khác rỗng cho mỗi transition
- I- là hàm tỷ lệ ngược (backward incidence function - hàm này xác định
các cung kết nối từ color của place đến mode của transition) và I+ là hàm tỷ lệ
xuôi (forward incidence function - hàm này xác định các cung kết nối từ mode
của transition đến color của place) được xác định trên P×T thỏa mãn:
I-(p,t),I+(p,t) ∈ [𝐶(𝑡) → 𝐶(𝑝)𝑀𝑆], ∀(𝑝, 𝑡) ∈ 𝑃 × 𝑇1
- M0 là một hàm khởi tạo hình trạng (initial marking) được xác định trên P
thỏa mãn M0(p)∈C(p)MS
- 𝑄 = (𝑄̃1, 𝑄̃2, (𝑞1, … , 𝑞|𝑃|)) ở đây:
+ 𝑄̃1 ⊆ 𝑃 là tập các place hàng đợi theo thời gian
+ 𝑄̃2 ⊆ 𝑃 là tập các place hàng đợi tức thời
1 Chỉ số MS biểu thị đa tập C(p) MS biểu thị tập tất cả các đa tập hữu hạn của C(p)
2 Ký pháp Kendall được dùng để mô tả và phân loại một queue trong QN Luận văn sử dụng ký pháp Kendall
với 4 thành tố: A/S/c/D trong đó A mô tả quá trình đến queue, S cho biết phân phối của thời gian thực hiện dịch vụ, c là số lượng kênh dịch vụ (server), D là nguyên tắc điều phối trong queue Trong luận
văn này, A=M (phân phối hàm mũ của khoảng thời gian giữa hai yêu cầu liên tiếp), S=M (phân phối hàm
Trang 26Để có biết thêm chi tiết hơn về mô hình QPN, tham khảo thêm tài liệu [21,
22, 25]
2.3 QPN phân cấp
Một trở ngại lớn cho ứng dụng thực tế của QPN đó là vấn đề bùng nổ không
gian trạng thái: khi số lượng các hàng đợi và token tăng trong QPN, kích thước
không gian trạng thái của mô hình tăng theo cấp số nhân và nhanh chóng vượt quá khả năng các máy tính hiện nay Điều này đặt ra giới hạn về kích thước và độ phức tạp của các mô hình QPN, sự giới hạn này có thể phân tích dễ dàng Để giải quyết vấn đề này, QPN kết hợp phân cấp đã được đề xuất (Hierarchically-Combined QPNs, HQPNs) [26] Ý tưởng chính là cho phép đặc tả mô hình phân cấp và sau
đó khai thác cấu trúc phân cấp cho phân tích số học hiệu quả Loại phân tích này
được gọi là phân tích có cấu trúc và nó cho phép các mô hình được giải quyết
HQPN là một tổng quát hóa tự nhiên của QPN gốc Trong HQPN, một place hàng đợi có thể chứa toàn bộ QPN thay vì một hàng đợi duy nhất Như vậy một place
được gọi là một place mạng con và được mô tả trong Hình 2.2 Một place mạng
con có thể chứa một QPN gốc hoặc một HQPN cho phép nhiều cấp lồng nhau Để đơn giản, luận văn giới hạn HQPN trong hệ thống hai cấp Luận văn sử dụng thuật ngữ QPN mức cao (High-Level QPN, HLQPN) để chỉ cấp trên của HQPN và thuật ngữ QPN mức thấp (Low-Level QPN, LLQPN) để chỉ mạng con của HLQPN Mỗi mạng con của HQPN có một place vào và đầu ra riêng biệt, là các place của một CPN Các token được chèn vào một place mạng con sau khi transition firing được thêm vào place đầu vào tương ứng với mạng con HQPN Các ngữ nghĩa của place đầu ra của một place mạng con tương tự như ngữ nghĩa của lưu ký của một place hàng đợi: các token trong place đầu ra có sẵn cho các transtion đầu ra của place mạng con HQPN Cá token chứa trong tất cả các place của mạng con HQPN không
có sẵn cho các transition đầu ra của place mạng con HQPN Mỗi mạng con HQPN
cũng chứa một place dân cư thực được sử dụng để theo dõi tổng số token được
firing vào place mạng con HQPN
Trang 27Hình 2.3 Một place mạng con và ký hiệu của nó
2.4 Các nguyên tắc khởi hành
Các nguyên tắc khởi hành là phần mở rộng của mô hình hóa QPN được giới thiệu trong [25] để giải quyết hạn chế chung của mô hình QPN (và nói chung của mạng Petri), tức là, các token bên trong các place và lưu ký gốc không được phân biệt về thứ tự đi đến của chúng Các nguyên tác khởi hành được định nghĩa cho các place hoặc lưu ký gốc và xác định thứ tự mà các token đến có sẵn cho transition đầu ra Luận văn trình bày hai nguyên tắc khởi hành, Normal (được sử dụng mặc định) và FIFO (vào trước ra trước, First-In-First-Out) Nguyên tắc đầu tiên ngụ ý rằng các token trở nên có sẵn cho transtion đầu ra ngay khi đến giống như trong
mô hình QPN thông thường Nguyên tắc sau ngụ ý rằng các token trở nên có sẵn cho các transition đầu ra theo thứ tự đến của các token, tức là, một token chỉ có thể rời khỏi place/lưu ký chỉ sau khi tất cả các token đã đến trước khi nó rời đi, do đó gọi là thuật ngữ FIFO Ví dụ về cách FIFO được khai thác và các lợi ích nó mang lại cho chúng ta được giới thiệu trong [25] Một phương pháp thay thế được đưa
ra, token đặt trong một place gốc để thay thế place gốc với một place hàng đợi tức thời chứa một hàng đợi FCFS (First-Come-First-Served) Định nghĩa hàng đợi tổng quát từ [21] có thể được khai thác để định nghĩa chiến lược điều phối hàng đợi theo cách mà các token được phục vụ ngay lập tức theo FCFS, nhưng chỉ khi lưu ký trống [22] Nếu có một token trong lưu ký, tất cả các token bị chặn ngay tại
Trang 28vị trí hiện tại của chúng cho đến khi lưu ký trở nên trống Tuy nhiên, định nghĩa hàng đợi tổng quát từ [21], về mặt lý thuyết, không thực tế để thực hiện, vì vậy, trong thực tế, nó hiếm khi được sử dụng và các hàng đợi trong QPN thường được coi là các hàng đợi thông thường từ lý thuyết mạng hàng đợi
2.5 Ví dụ mô hình QPN
Phần này luận văn trình bày một mô hình QPN mẫu của hệ thống Java EE đơn giản Mô hình được lấy từ [27] và được minh họa trong Hình 2.3
Hình 2.4 Mô hình QPN của một hệ thống Java EE [9]
Hệ thống Java EE được mô hình hóa là một ứng dụng kinh doanh điện tử chạy trong môi trường Java EE bao gồm Máy chủ WebLogic (máy chủ ứng dụng Java EE) lưu trữ các thành phần ứng dụng và máy chủ cơ sở dữ liệu phụ được sử dụng để duy trì dữ liệu kinh doanh Dưới đây mô tả các place của mô hình hệ thống:
- Client: Place hàng đợi với chiến lược điều phối IS đại diện cho các client gửi yêu cầu đến hệ thống Thời gian dành cho hàng đợi của place này này tương ứng với thời gian suy nghĩ client, tức là thời gian dịch vụ của hàng đợi bằng với thời gian suy nghĩ client trung bình;
- WLS-CPU: Place hàng đợi với chiến lược điều phối PS đại diện cho CPU của Máy chủ WebLogic (WLS);
Trang 29- DBS-CPU: Place hàng đợi với chiến lược điều phối PS đại diện cho CPU của máy chủ cơ sở dữ liệu (DBS);
- DBS-I/O: Place hàng đợi với chiến lược điều phối FCFS đại diện cho
hệ thống con lưu trữ của DBS;
- WLS-Thread-Pool: Ordinary Place đại diện cho nhóm luồng của WLS Mỗi token trong place này đại diện cho một luống WLS;
- DB-Conn-Pool: Ordinary Place đại diện cho nhóm kết nối cơ sở dữ liệu của WLS Các token trong place này đại diện cho các kết nối cơ sở dữ liệu tới DBS
- DBS-Process-Pool: Ordinary Place đại diện cho nhóm xử lý của DBS Các token trong place này đại diện cho các xử lý cơ sở dữ liệu tới DBS;
- DBS-PQ: Ordinary Plac được sử dụng để giữ các yêu cầu đến tại DBS trong khi chúng đợi một xử lý máy chủ được phân bổ cho chúng Các loại token dưới đây (các màu token) được sử dụng trong mô hình
hệ thống:
- Token ‘r i ’ đại diện một yêu cầu được gửi bởi một client cho việc thực
thi một giao dịch của lớp i Với mỗi lớp yêu cầu sử dụng một màu token riêng (tức là ‘r 1 ’, ‘r 2 ’, ‘r 3 ’) Các token của các màu này có thể chỉ được chứa
trong các place Client, WLS-CPU, DBS-PQ, DBS-CPU và DBS-I/O;
- Token ‘t’ đại diện một luồng WLS Các token của mày này có thể chỉ được chứa trong place WLS-Thread-Pool;
- Token ‘p’ đại diện một xử lý DBS Các token của màu này có thể chỉ được chứa trong place DBS-Process-Pool;
- Token ‘c’ địa diện một kết nối cơ sở dữ liệu tới DBS Các token của mày này có thể chỉ được chứa trong place DB-Conn-Pool
Bây giờ chúng ta hãy xem vòng đời của một yêu cầu client trong mô hình
hệ thống Jave EE Mọi yêu cầu (được mô hình hóa bằng tokem màu 'ri' cho i nào đó) bắt đầu tại hàng đợi của place Client, ở đây các yêu cầu chờ một thời gian suy nghĩ của người dùng cụ thể Sau khi hết thời gian suy nghĩ, yêu cầu chuyển đến kho lưu trữ của Khách hàng ở đây yêu cầu chờ một luồng WLS được phân bổ cho
nó trước khi quá trình xử lý có thể bắt đầu Khi một luồng được phân bổ (được mô
Trang 30hình hóa bằng cách lấy token màu 't' từ place WLS-Thread-Pool), yêu cầu sẽ chuyển đến hàng đợi của place WLS-CPU ở đây yêu cầu nhận dịch vụ từ CPU của WLS Sau đó, yêu cầu chuyển đến lưu ký của place và đợi một kết nối cơ sở dữ liệu được phân bổ tới nó Kết nối cơ sở dữ liệu (được mô hình hóa bằng token 'c') được sử dụng để kết nối với các cơ sở dữ liệu và thực hiện cập nhật bất kỳ theo yêu cầu của giao dịch tương ứng Một yêu cầu được gửi đến máy chủ cơ sở dữ liệu đến tại place DBS-PQ (hàng đợi xử lý DBS) ở đây yêu cầu chờ xử lý máy chủ (được mô hình hóa bằng token 'p') sẽ được phân bổ cho nó Mỗi khi yêu cầu gửi đến máy chủ cơ sở dữ liệu được thực hiện, yêu cầu nhận được dịch vụ đầu tiên tại CPU và sau đó tại hệ thống lưu trữ con của máy chủ cơ sở dữ liệu Điều này hoàn thành việc xử lý yêu cầu gửi đến máy chủ cơ sở dữ liệu, sau đó là được gửi trở lại place Client để phân phối xử lý DBS, kết nối cơ sở dữ liệu và luồng WLS
2.6 Môi trường mô hình QPN
Môi trường mô hình QPN [23] (QPME -Queueing Petri net Modeling Environment) là một công cụ nguồn mở để mô hình hóa và phân tích ngẫu nhiên các hệ thống sử dụng QPN, được phân phối theo Eclipse Public License Công cụ này được phát triển và duy trì bởi Descartes Research Group [24] tại Karlsruhe Institute of Technology (KIT) QPME bao gồm hai thành phần chính:
- Bộ chỉnh sửa QPN (QPE - QPN Editor);
gồm bốn khung Khung giao diện chính hiển thị đồ họa đại diện của QPN hiện
đang được chỉnh sửa Bảng màu chứa tập các phần tử QPN có thể được chèn vào
mô hình QPN bằng cách kéo và thả, chẳng hạn như các palce, các transition và các kết nối Hơn nữa, Khung giao diện chính cũng cung cấp các trình soạn thảo cho việc định nghĩa các màu và các hàng đợi được sử dụng trong mô hình QPN Trong
Khung thuộc tính, người dùng có thể chỉnh sửa các thuộc tính của phần tử hiện
được chọn trong mô hình QPN Ví dụ các chiến lược điều phối và các phân phối
thời gian phục vụ của các place có thể được chỉ định trong khung này Khung
Trang 31Outline hiển thị danh sách tất cả các thành phần trong mô hình QPN Khung Console hiển thị đầu ra khi mô phỏng một mô hình QPN
Trong QPN, một transition định nghĩa tập các chế độ firing Một hàm tỷ lệ đặc tả hành vi của transition cho mỗi chế độ firing của transition theo các token được khám phá và/hoặc được tạo ra trong các place của QPN Hình 2.5 cho thấy
Bộ chỉnh sửa hàm tỷ lệ (Incidence Function Editor) được sử dụng để chỉnh sửa
hàm tỷ lệ của một transition Sau khi mở Bộ chỉnh sửa này hiển thị các place đầu vào transition bên trái, các chế độ firing của transition nằm ở giữa và các place đầu
ra transition bên phải Mỗi place (đầu vào hoặc đầu ra) được hiển thị dưới dạng thanh hình chữ nhật chứa một vòng tròn riêng cho mỗi màu token được phép đặt trong place Người dùng có thể tạo các kết nối từ một các màu token của các place đầu vào tới các chế độc hoặc từ các chế độ tới các màu token của các place đầu ra Nếu một kết nối được tạo ra giữa màu token của một place và một chế độ, điều này có nghĩa là khi transition fire trong chế độ này, các token của màu tương ứng được loại bỏ khỏi place này Tương tự, nếu một kết nối được tạo giữa một chế độ
và một màu token của một place đầu ra, điều này này có nghĩa là khi transition fire trong chế độ này, các token của màu tương ứng được gửi trong place này
Ngoài các tính năng cơ bản được mô tả ở trên, QPE có một số tính năng đặc trưng để nâng cao biểu thức mô hình của QPN và đơn giản hóa việc tạo các mô hình QPN phức tạp Những vấn đề này, được thực hiện bởi các tính năng đặc trưng sau:
- Quản lý màu trung tâm Người dùng có thể định nghĩa các màu token
toàn cục cho toàn bộ QPN thay vì trên từng place Tính năng này được đưa
ra bởi thực tế là trong QPN thường có cùng màu token (loại) được sử dụng
ở nhiều place Thay vì phải định nghĩa màu nhiều lần, người dùng có thể định nghĩa màu token một lần và sau đó tham chiếu nó ở tất cả place sử dụng nó Điều này giúp tiết kiệm thời gian, làm cho định nghĩa mô hình đơn giản hơn và không kém phần quan trọng, nó làm cho quá trình mô hình hóa
ít bị lỗi hơn vì các tham chiếu đến cùng màu token được chỉ định rõ ràng
Trang 32- Các hàng đợi chia sẻ Người dùng có thể chỉ ra nhiều các place hàng
đợi chia sẻ cùng một hàng đợi vật lý3 Trong QPE, các hàng đợi được định nghĩa tập trung (tương tự như các màu token) và mỗi khi các hàng đợi được định nghĩa, chúng có thể được tham chiếu từ bên trong các place hàng đợi Điều này cho phép sử dụng các place hàng đợi để thể hiện các thực thể phần mềm, ví dụ: các thành phần phần mềm, cái mà sau đó có thể được ánh xạ tới các tài nguyên phần cứng khác nhau được mô hình hóa như hàng đợi [28] Các hàng đợi chia sẻ không được hỗ trợ trong các mô hình QPN chuẩn [28]
- QPN phân cấp Các place mạng con có thể chứa các mô hình QPN
con đầy đủ QPN phân cấp cho phép mô hình các hệ thống lớp và nâng cao khả năng hiểu biết của QPN rất lớn QPE hỗ trợ đầy đủ thứ QPN phân cấp
- Các nguyên tắc khởi hành Các nguyên tắc khởi hành được xác định
cho các Ordonary Place hoặc lưu ký và xác định thứ tự các token đến trở thành có các transition đầu ra QPE hỗ trợ hai nguyên tắc:
+ Thông thường (được sử dụng theo mặc định);
+ Vào trước ra trước (FIFO)
Vào trước ra trước ngụ ý rằng các token trở nên có sẵn cho các transition đầu ra theo thứ tự đến của chúng trong khi Thông thường không xem xét thứ tự đến của các token Cách khai thác và các lợi ích mang lại của mở rộng QPN này có thể xem chi tiết trong [25]
3 Trong khi cùng một hiệu quả có thể đạt được bằng cách sử dụng nhiều place mạng con được ánh
xạ tới một QPN lồng nhau chứa một place hàng đợi đơn, điều này sẽ yêu cầu mở rộng các token mà nhập
QPN lồng nhau với một thẻ để theo dõi nguồn gốc của chúng như đã giải thích trong [3]