Kết quả đánh giá công cụ

Một phần của tài liệu Vấn đề bế tắc (deadlock) trong quy trình được hiện thực bằng BPEL (Trang 48 - 51)

Với đầu vào là ba kiểu dạng mã nguồn chương trình BPEL đã xây dựng bằng công cụ Eclipse hoặc JDeveloper, các mã nguồn này không bị công cụ lập trình trên cảnh báo lỗi cú pháp ngôn ngữ BPEL. Công cụ phát hiện bế tắc đối với chương trình BPEL sử dụng thành phần hoạt động <flow>, đối với dạng mã nguồn kiểu 1, kết quả trả lại phải không thông báo các lỗi chu trình hoặc bế tắc. Dạng mã nguồn kiểu 2, tìm chu trình, nếu tồn tại chu trình sẽ cảnh báo, có khả năng sẽ xuất hiện chu trình logic trong quá trình runtime. Dạng mã nguồn kiểu 3, phân tích điều kiện joinCondition từ của các link, nếu các link điều hướng phụ thuộc cho các nhánh của thành phần lựa chọn <if> (phiên bản BPEL 2.0) hoặc <switch> [5] (phiên bản BPEL 1.0 hoặc

1.1), thì cảnh báo lỗi sai về cách sử dụng thành phần <link> gây ra bế tắc. Trong nội dung luận văn này giới thiệu công cụ phát hiện cảnh báo trong quy trình nghiệp vụ sử dụng thành phần hoạt động <flow>, có những điểm đã làm được và chưa làm được cần phải nghiên cứu và phát triển thêm như sau:

Kết quả:

- Phát hiện ra vấn đề gây bế tắc trong tiến trình nghiệp vụ BPEL chứa thành phần

<flow> sử dụng thành phần <link> kết hợp với thành phần hoạt động lựa chọn

<if>, và thành phần tuần tự <sequence>.

- Xây dựng công cụ bằng ngôn ngữ Java phát hiện và cảnh báo lỗi bế tắc.

- Kiểm chứng công cụ bằng các mã nguồn BPEL đã được chạy thực thi bằng các công cụ lập trình BPEL như Eclipse hay JDeveloper.

Định hướng thời gian tới:

- Chưa lường hết được luồng điều khiển trong chương trình BPEL với thành phần <scope> và trình điều khiển ngoại lệ bpel:joinFailure hoặc

suppressJoinFailure. Và sự kết hợp phức tạp giữa thành phần hoạt động

<flow> với các thành phần hoạt động lặp một phần chương trình như <while>, <

repeatUntil>, <forEach>, hay các chương trình nhiều <flow> lồng nhau, đưa

ra công thức hoặc điểm chung của bài toán bế tắc trong <flow>.

- Đối với bài toán 2, bế tắc do điều kiện joinCondition của các <link> từ các nhánh của thành phần hoạt động lựa chọn <if>, phải tối ưu thuật toán, liên quan tới các phép toán logic của điều kiện joinCondition, với biểu thức logic phức tạp, kết hợp của nhiều phép toán AND hoặc OR của nhiều <link>.

- Phát hiện thêm các lỗi gây bế tắc khác, như liên quan tới sự phụ thuộc điều kiển các biến hoặc dữ liệu của chương trình BPEL.

- Hoàn thiện công cụ hoàn chỉnh hơn.

Tổng kết chương ba

Trong chương này, luận văn trình bày ý tưởng giải quyết các bài toán gây bế tắc trong

<flow> đưa ra ở chương hai. Từ đó, phát biểu về công cụ xây dựng để kiểm tra, cảnh

Kết luận

Luận văn đã tìm hiểu về ngôn ngữ thực thi tiến trình nghiệp vụ BPEL cùng các thành phần hoạt động của nó. Tìm hiểu về thành phần hoạt động xử lý song song <flow>

và thành phần điều khiển phụ thuộc <link>. Từ đó, phát hiện ra các vấn đề về bế tắc như xuất hiện chu trình logic, hay bế tắc luồng thực thi. Sự kết hợp giữa thành phần hoạt động <flow> sử dụng <link> với thành phần hoạt động lựa chọn <if> và thành phần hoạt động tuần tự <sequence>, người lập trình không thể kiểm soát được luồng xử lý logic nghiệp vụ khi xây dựng bằng ngôn ngữ thực thi tiến trình nghiệp vụ BPEL. Các lỗi logic này vẫn thỏa mãn cú pháp ngôn ngữ BPEL, các công cụ lập trình, không phát hiện và kiểm soát, cảnh báo hết được.

Các ứng dụng thực tế, ngày càng phức tạp và mở rộng để đáp ứng được nghiệp vụ và quy trình sản xuất của tổ chức, công ty. Ngôn ngữ thực thi tiến trình nghiệp vụ BPEL có nhiều ưu điểm và sự phù hợp để áp dụng thực tiễn, như các hệ thống triển khai SOA của Oracle hay các ứng dụng của IBM. Bên cạnh BPML, BPEL tốt hơn dễ dàng tích hợp các dịch vụ Web, và nó phù hợp cho các mô hình xử lý tương tác đa doanh nghiệp[10]. Do tính phức tạp trong luồng xử lý cũng như ngôn ngữ lập trình, ngôn ngữ BPEL với cú pháp chặt chẽ, rõ ràng, với nhiều thành phần hoạt động xử lý các loại logic nghiệp vụ riêng, phân biệt tiến trình trừu tượng và thực thi, các biến và luồng xử lý dữ liệu, điều khiển ngoại lệ theo chuẩn OASIS. Luận văn đã giới thiệu công cụ để phát hiện các bế tắc chương trình BPEL trong khi runtime, và cảnh báo đơn giản để giúp phát hiện các lỗi logic nghiệp vụ.

Tài liệu tham khảo Tiếng Việt

1. Đỗ Đức Giáo, “Toán rời rạc”, ĐHQGHN, 2002.

Tiếng Anh

2. A. Alves, A. Arkinand, S. Askary, C. Barreto, B. Bloch, F. Curbera, M. Ford, A. Gułzar, N. Kartha, C. K. Liu, R. Kha-laf, D. K ¨onig, M. Marin, V. Mehta, S. Thatte, D. van der Rijn, P. Yendluri, and A. Yiu, “Web Services Business Process Execution Language Version 2.0”, OASIS Standard, 11 April 2007.

3. Charlton Barreto, Vaughn Bullard, Thomas Erl, John Evdemon, Diane Jordan, Khanderao Kand, Dieter König, Simon Moser, Ralph Stout, Ron Ten-Hove, Ivana Trickovic, Danny van der Rijn, Alex Yiu, “Web Services Business Process Execution Language Version 2.0”, OASIS Standard, 9 May 2007.

4. Manfred Reichert, Stefanie Rinderle, Peter Dadam, “On the Modeling of Correct Service Flows with BPEL4WS”, Department Databases and Information Systems University of Ulm, D-89069 Ulm, GERMANY {reichert, rinderle,

dadam}@informatik.uni-ulm.de.

5. Chun Ouyang, Eric Verbeek, Wil M.P. van der Aalst, Stephan Breutel, Marlon Dumas, Arthur H.M. ter Hofstede, “Formal semantics and analysis of control flow in WS-BPEL”, Science of Computer Programming 67, 2007 162–198.

6. BEA, IBM, Microsoft, SAP and Siebel, “Business Process Execution Language for Web Services Version 1.1”, S. Thatte, et al., May 2003.

7. IBM, “Web Service Flow Language (WSFL 1.0)”, F. Leymann, May 2001

8. Microsoft, “XLANG Web Services for Business Process Design”, S. Thatte, 2001. 9. Shin NAKAJIMA, “Model-Checking Behavioral Specification of BPEL

Applications”, Electronic Notes in Theoretical Computer Science 151, 2006 89– 105

10. James F. Chang, “Business process management systems”, Auerbach Publications Taylor & Francis Group, 2006.

Một phần của tài liệu Vấn đề bế tắc (deadlock) trong quy trình được hiện thực bằng BPEL (Trang 48 - 51)

Tải bản đầy đủ (PDF)

(51 trang)