Tổng quan nghiên cứu
Trong kiến trúc hướng dịch vụ hiện đại, hơn 80% các hệ thống phần mềm doanh nghiệp được xây dựng dựa trên việc tích hợp các dịch vụ Web phân tán thông qua chuẩn định dạng XML và giao thức WSDL. Ngôn ngữ thực thi tiến trình nghiệp vụ BPEL, được tổ chức OASIS chuẩn hóa thành chuẩn WS-BPEL 2.0 vào năm 2007 sau phiên bản BPEL 1.1 năm 2003, đã trở thành tiêu chuẩn cốt lõi để kết hợp các dịch vụ đơn lẻ thành một quy trình phức hợp hoàn chỉnh. Tuy nhiên, việc bảo đảm tính đúng đắn theo kịch bản nghiệp vụ của các tiến trình này luôn là một bài toán hóc búa, bởi các tương tác đa luồng và phi đơn định rất dễ dẫn đến lỗi bế tắc hoặc sai lệch luồng dữ liệu. Việc kiểm chứng trực tiếp trên mã nguồn tài liệu XML của BPEL là hoàn toàn bất khả thi do thiếu một nền tảng toán học hình thức tường minh.
Luận văn thạc sĩ chuyên ngành Kỹ thuật phần mềm tại Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội đã giải quyết triệt để thách thức này thông qua đề tài nghiên cứu về mô hình hóa và kiểm tra tiến trình nghiệp vụ. Mục tiêu cụ thể của công trình là xây dựng quy tắc chuyển đổi ngữ nghĩa từ 15 cấu trúc hoạt động trong tài liệu đặc tả BPEL sang ký pháp tiến trình hữu hạn trạng thái FSP, từ đó ánh xạ sang hệ thống chuyển trạng thái được gán nhãn LTS. Nghiên cứu được thực nghiệm hoàn thiện vào tháng 11 năm 2015, tập trung vào phạm vi các kịch bản tích hợp dịch vụ Web điển hình. Ý nghĩa khoa học và thực tiễn của công trình thể hiện ở việc hỗ trợ phát hiện sớm 100% các vi phạm thuộc tính an toàn trước khi triển khai hệ thống, giúp giảm thiểu rủi ro vận hành và tối ưu hóa chi phí bảo trì phần mềm doanh nghiệp.
Cơ sở lý thuyết và phương pháp nghiên cứu
Khung lý thuyết áp dụng
Nghiên cứu được thiết lập dựa trên 2 khung lý thuyết hình thức nền tảng trong khoa học máy tính:
Lý thuyết hệ thống chuyển trạng thái được gán nhãn LTS mô hình hóa hành vi động của hệ thống dưới dạng một bộ 4 thành phần toán học, trong đó bao gồm tập trạng thái hữu hạn, tập hành động chuyển dịch, quan hệ chuyển đổi trạng thái và trạng thái khởi đầu xác định. Một hệ thống LTS được coi là an toàn khi nó thỏa mãn tính đơn định và không bao giờ tiếp cận tới trạng thái lỗi ký hiệu là pi.
Lý thuyết đại số tiến trình hữu hạn trạng thái FSP đóng vai trò là ngôn ngữ ký hiệu đại số trung gian, cho phép đặc tả hình thức các tiến trình song song, cấu trúc lựa chọn điều kiện và phép ghép nối đồng bộ giữa các dịch vụ thành phần.
Các khái niệm chính được làm rõ bao gồm: ngôn ngữ WS-BPEL kết hợp từ 2 nền tảng XLANG và WSFL; các thuộc tính an toàn định nghĩa luồng vận hành chuẩn; phép ghép nối song song giữa 2 mô hình LTS độc lập; và cơ chế xử lý ngoại lệ đồng bộ trong kiến trúc dịch vụ phân tán.
Phương pháp nghiên cứu
Nguồn dữ liệu của nghiên cứu bao gồm bộ tài liệu đặc tả tiêu chuẩn OASIS WS-BPEL 2.0 cùng tập hợp các kịch bản tiến trình nghiệp vụ mẫu được trích xuất từ các bài toán thực tế như tính toán diện tích đa dịch vụ và điều phối giao dịch phân tán.
Cỡ mẫu nghiên cứu bao gồm 10 cấu trúc hoạt động đơn lẻ và 4 mô hình quy trình nghiệp vụ phức hợp. Phương pháp chọn mẫu có chủ đích được áp dụng nhằm bao phủ toàn bộ các nhóm lệnh cơ bản như Invoke, Receive, Reply, Assign, Sequence, If, While, Scope và Fault Handlers. Lý do lựa chọn phương pháp phân tích hình thức thông qua công cụ LTSA là vì công cụ này có khả năng tự động phân tích không gian trạng thái với độ chính xác 100%, loại bỏ hoàn toàn các sai số chủ quan thường gặp trong phương pháp kiểm thử hộp đen truyền thống. Toàn bộ quá trình nghiên cứu, xây dựng thuật toán chuyển đổi và kiểm thử mô phỏng được thực hiện liên tục trong khoảng thời gian 12 tháng, hoàn tất nghiệm thu vào cuối năm 2015.
Kết quả nghiên cứu và thảo luận
Những phát hiện chính
Nghiên cứu đã đạt được 4 phát hiện và đóng góp kỹ thuật nổi bật:
Thứ nhất, nghiên cứu thiết lập thành công quy tắc ánh xạ cú pháp từ 15 cấu trúc hoạt động trong tệp XML BPEL sang ký pháp đại số FSP tương đương, đảm bảo giữ nguyên vẹn ngữ nghĩa điều khiển luồng dữ liệu.
Thứ hai, mô hình hóa trực quan hành vi của các tiến trình phức hợp sang hệ thống chuyển trạng thái LTS, minh chứng qua việc cấu trúc Sequence với chuỗi lệnh liên hoàn được biểu diễn chính xác qua 5 trạng thái liên tiếp từ trạng thái khởi đầu 0 đến trạng thái kết thúc E.
Thứ ba, thông qua thực nghiệm trên bài toán Compose1 và kịch bản tính diện tích đa dịch vụ, công cụ kiểm chứng đã định vị chính xác đường dẫn chuyển dịch dẫn đến trạng thái lỗi pi, đạt tỷ lệ phát hiện vi phạm ràng buộc an toàn 100% ngay từ giai đoạn thiết kế.
Thứ tư, quá trình tự động hóa chuyển đổi và phân tích thông qua công cụ LTSA giúp rút ngắn khoảng 75% thời gian thẩm định kiến trúc tiến trình so với các kỹ thuật rà soát thủ công trước đây.
Thảo luận kết quả
Nguyên nhân cốt lõi dẫn đến các khiếm khuyết trong tiến trình BPEL bắt nguồn từ tính bất định khi các dịch vụ Web bên ngoài phản hồi không đồng bộ, hoặc sự thiếu sót trong việc khai báo các nhánh bắt lỗi CatchAll. Khi so sánh với các công trình nghiên cứu kiểm thử động trên môi trường chạy thực nghiệm, phương pháp tiếp cận mô hình hóa hình thức LTS/FSP vượt trội hơn hẳn nhờ khả năng duyệt cạn kiệt mọi nhánh rẽ khả dĩ mà không cần phụ thuộc vào hạ tầng mạng thực tế.
Dữ liệu kiểm chứng trong nghiên cứu được minh họa trực quan thông qua đồ thị chuyển trạng thái LTS và bảng ánh xạ tương quan giữa các thẻ XML với phương trình FSP. Đồ thị chuyển trạng thái cho phép người kỹ sư quan sát trực tiếp các cung chuyển dịch trạng thái, qua đó phát hiện ngay các chu trình lặp vô hạn hoặc các nút bế tắc khi hai dịch vụ cùng chờ đợi tài nguyên. Bảng đối chiếu cú pháp giúp chuẩn hóa toàn bộ các biến số đầu vào và đầu ra của hành động gán trị Assign, hỗ trợ đắc lực cho việc phát hiện các lỗi sai lệch dữ liệu trước khi sinh mã thực thi.
Đề xuất và khuyến nghị
Dựa trên kết quả nghiên cứu, 4 giải pháp cụ thể được đề xuất nhằm nâng cao chất lượng tích hợp phần mềm doanh nghiệp:
Chuẩn hóa quy trình mô hình hóa hình thức bằng cách áp dụng bộ quy tắc chuyển đổi BPEL sang FSP trong vòng 6 tháng đầu tiên của dự án, hướng tới mục tiêu giảm thiểu 80% lỗi giao tiếp dịch vụ do đội ngũ kiến trúc sư phần mềm chủ trì thực hiện.
Xây dựng module chuyển đổi tự động từ tệp XML BPEL sang mã nguồn FSP tích hợp trực tiếp vào môi trường phát triển Eclipse trong thời hạn 3 tháng, giúp tiết kiệm 90% thời gian tạo mô hình do nhóm kỹ sư công cụ phụ trách.
Đào tạo và chuyển giao công nghệ kiểm chứng hệ thống chuyển trạng thái LTSA cho toàn bộ 100% chuyên viên kiểm thử chất lượng phần mềm trong lộ trình 4 tuần nhằm nâng cao kỹ năng kiểm chứng tự động các thuộc tính an toàn.
Mở rộng mô hình kiểm tra cho các cấu trúc bồi hoàn giao dịch phức tạp như Compensation Handlers trong các hệ thống ngân hàng số, đặt mục tiêu hoàn thiện kiểm soát 100% rủi ro hủy giao dịch trong năm tài chính tiếp theo dưới sự giám sát của ban quản trị công nghệ.
Đối tượng nên tham khảo luận văn
Nhóm 1: Các nhà nghiên cứu, giảng viên và học viên cao học chuyên ngành Kỹ thuật phần mềm có thể sử dụng luận văn làm tài liệu tham khảo chuyên sâu về phương pháp hình thức, đặc biệt là ứng dụng của đại số tiến trình FSP và mô hình LTS trong kiểm chứng hệ thống.
Nhóm 2: Kiến trúc sư hệ thống phần mềm tại các doanh nghiệp công nghệ thông tin có thể áp dụng trực tiếp các quy tắc chuyển đổi để rà soát, tối ưu hóa các kịch bản tích hợp dịch vụ Web quy mô lớn trước khi vận hành.
Nhóm 3: Chuyên viên kiểm thử phần mềm tự động và đảm bảo chất lượng QA/QC có thể khai thác quy trình kiểm chứng bằng công cụ LTSA để xây dựng các kịch bản kiểm thử thuộc tính an toàn tự động, triệt tiêu lỗi logic bế tắc.
Nhóm 4: Các nhà quản lý dự án công nghệ trong lĩnh vực chính phủ điện tử và thương mại điện tử có thể sử dụng các kết luận của luận văn để thiết lập tiêu chuẩn nghiệm thu chất lượng cho các tiến trình nghiệp vụ B2B phức tạp.
Câu hỏi thường gặp
Tại sao không thể kiểm chứng tính đúng đắn trực tiếp trên mã nguồn BPEL? Mã nguồn BPEL được viết bằng ngôn ngữ XML chỉ đóng vai trò đặc tả cấu trúc thực thi mà không cung cấp ngữ nghĩa toán học hình thức. Do đó, việc kiểm chứng trực tiếp trên tệp BPEL không thể chứng minh được tính an toàn hay phát hiện lỗi bế tắc trong khoảng 100% các nhánh rẽ tương tác phức tạp.
Ký pháp FSP đóng vai trò trung gian như thế nào trong quy trình kiểm chứng? Ký pháp FSP cung cấp cú pháp toán học ngắn gọn để biểu diễn các tiến trình hữu hạn trạng thái. FSP đóng vai trò cầu nối giúp chuyển đổi các thẻ XML phức tạp của BPEL thành mô hình đại số mà công cụ LTSA có thể tự động biên dịch sang hệ thống chuyển trạng thái LTS chỉ trong vài giây.
Công cụ LTSA phát hiện trạng thái lỗi trong tiến trình nghiệp vụ bằng nguyên lý nào? Công cụ LTSA sử dụng phép ghép nối song song giữa mô hình LTS của tiến trình với mô hình LTS của thuộc tính an toàn. Nếu hệ thống hợp thành có thể kích hoạt chuỗi hành động dẫn tới trạng thái lỗi pi, LTSA sẽ lập tức thông báo vi phạm kèm theo dấu vết lỗi chi tiết.
Phương pháp này có kiểm tra được các tiến trình chạy song song không? Có, nghiên cứu đã xây dựng quy tắc chuyển đổi riêng cho cấu trúc Flow trong BPEL. Cơ chế này cho phép mô hình hóa khoảng 2 đến nhiều nhánh hành động đồng thời và sử dụng phép ghép nối song song của FSP để phát hiện các xung đột tài nguyên giữa các luồng.
Doanh nghiệp cần chuẩn bị những công cụ gì để triển khai phương pháp này? Doanh nghiệp chỉ cần chuẩn bị tài liệu đặc tả tiến trình BPEL chuẩn hóa, môi trường Eclipse BPEL Designer và công cụ mã nguồn mở LTSA. Đội ngũ kỹ sư cần được đào tạo qua khóa học kéo dài khoảng 2 đến 4 tuần về đại số tiến trình để làm chủ quy trình phân tích.
Kết luận
Công trình nghiên cứu đã mang lại 5 đóng góp học thuật và thực tiễn mang tính then chốt:
- Hệ thống hóa toàn diện cơ sở lý thuyết về ngôn ngữ tiến trình nghiệp vụ WS-BPEL 2.0 và mô hình trạng thái hình thức LTS/FSP.
- Xây dựng thành công thuật toán ánh xạ ngữ nghĩa từ 15 cấu trúc hoạt động BPEL sang ký pháp đại số FSP.
- Hiện thực hóa quy trình kiểm chứng tự động thuộc tính an toàn của dịch vụ Web thông qua công cụ LTSA.
- Chứng minh tính khả thi và độ chính xác 100% của giải pháp qua các ca kiểm thử nghiệp vụ thực tế như tính diện tích đa dịch vụ và kịch bản Compose1.
- Định hình phương pháp luận phân tích hình thức giúp loại bỏ lỗi kiến trúc ngay từ pha thiết kế sớm.
Trong giai đoạn tiếp theo kéo dài 12 tháng, hướng phát triển tự nhiên của đề tài là xây dựng plugin tự động hóa hoàn toàn việc trích xuất BPEL sang FSP và mở rộng kiểm chứng cho các dịch vụ Web RESTful. Các nhà phát triển và đơn vị tích hợp hệ thống hãy áp dụng ngay phương pháp kiểm chứng mô hình hóa hình thức để chuẩn hóa quy trình và nâng cao độ tin cậy tuyệt đối cho các tiến trình nghiệp vụ cốt lõi.