Tải bản đầy đủ (.pdf) (11 trang)

Vấn đề bế tắc (deadlock) trong quy trình được hiện thực bằng BPEL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (385.44 KB, 11 trang )

Header Page 1 of 128.

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Phạm Thị Dung

VẤN ĐỀ BẾ TẮC (DEADLOCK)
TRONG QUY TRÌNH ĐƯỢC HIỆN THỰC BẰNG BPEL

LUẬN VĂN THẠC SỸ

HÀ NỘI - 2015

1
luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer
Page 1 of 128.


Header Page 2 of 128.

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Phạm Thị Dung

VẤN ĐỀ BẾ TẮC (DEADLOCK)
TRONG QUY TRÌNH ĐƯỢC HIỆN THỰC BẰNG BPEL

Ngành: Công nghệ thông tin
Chuyên ngành: Kỹ thuật phần mềm


Mã số: 60.48.01.03

LUẬN VĂN THẠC SỸ
Cán bộ hướng dẫn:

TS. Võ Đình Hiếu

HÀ NỘI - 2015

2
luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer
Page 2 of 128.


Header Page 3 of 128.

VIETNAM NATIONAL UNIVERSITY, HANOI
UNIVERSITY OF ENGINEERING AND TECHNOLOGY

Dung Pham Thi

DEADLOCK PROBLEMS IN THE PROCESS
IS IMPLEMENTED IN BPEL
Major: Information of Technology

Supervisor: Ph.D Hieu Vo Dinh

HA NOI, 2015

3

luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer
Page 3 of 128.


Header Page 4 of 128.

Lời cảm ơn
Trước tiên, em xin bày tỏ lòng biết ơn chân thành và sâu sắc tới Thầy giáo, TS Võ
Đình Hiếu đã tận tình chỉ bảo, hướng dẫn, động viên và giúp đỡ em trong suốt quá
trình thực hiện đề tài luận văn.
Em xin gửi lời cảm ơn sâu sắc tới các Thầy Cô trong Khoa Công nghệ thông tin đã
truyền đạt kiến thức quý báu cho em trong sáu năm học vừa qua.
Con xin nói lên lòng biết ơn vô hạn đối với Cha Mẹ luôn là nguồn động viên, chăm
sóc và khích lệ con trên mỗi bước đường học vấn.
Cuối cùng, xin chân thành cảm ơn các Anh Chị và Bạn Bè, các thành viên lớp K53CB
và K19CNPM đã ủng hộ, giúp đỡ tôi trong suốt thời gian tôi học tập trên giảng đường
và thực hiện đề tài luận văn này.
Tôi xin chân thành cảm ơn!

Hà Nội, ngày 09 tháng 08 năm 2015
Học viên

Phạm Thị Dung

4
luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer
Page 4 of 128.


Header Page 5 of 128.

VẤN ĐỀ BẾ TẮC (DEADLOCK)
TRONG QUY TRÌNH ĐƯỢC HIỆN THỰC BẰNG BPEL
Phạm Thị Dung
Khóa K19KTPM, ngành công nghệ thông tin.

Tóm tắt Luận văn tốt nghiệp:
Dịch vụ Web ra đời đã mở ra hướng mới cho việc tương tác giữa các ứng dụng thông qua sử
dụng các tiêu chuẩn Web, hiện được áp dụng đa dạng trong hệ thống phần mềm thực tế. Dịch
vụ Web sử dụng mô hình tích hợp kết nối lỏng lẻo và độc lập nền tảng đã cho phép tính linh
hoạt trong việc tích hợp các hệ thống B2C, B2B và các ứng dụng doanh nghiệp. Tuy nhiên,
độ lớn và phức tạp của các hệ thống ngày nay thì tích hợp giữa các ứng dụng và các quy trình
nghiệp vụ hệ thống yêu cầu đòi hỏi nhiều hơn ngoài sử dụng các giao thức tiêu chuẩn Web.
Khi đó, tích hợp giữa các dịch vụ Web theo quy trình nghiệp vụ cần sử dụng một mô hình tích
hợp quy trình chuẩn. Ngôn ngữ thực thi quy trình nghiệp vụ BPEL (Bussiness Execute
Process Language) ( hay WS-BPEL, BPEL4WS) đưa ra để định nghĩa một mô hình và ngữ
pháp mô tả hành vi của quy trình nghiệp vụ dựa trên tương tác giữa các quy trình và các đối
tác của nó, đơn giản hóa bài toán kết hợp các dịch vụ theo quy trình nghiệp vụ.
BPEL sử dụng các đặc tả XML như WSDL, XML Schema, XPath và XSLT. WSDL và XML
Schema cung cấp mô hình dữ liệu, còn XPath và XSLT cung cấp hỗ trợ cho việc thao tác sử
dụng dữ liệu trong BPEL. BPEL mô hình quy trình nghiệp vụ định nghĩa các thành phần hoạt
động cơ sở và có cấu trúc. Trong đó, thành phần hoạt động quan trọng, được dùng khi mô
hình một ứng dụng nghiệp vụ <flow>, sử dụng để định nghĩa một tập các thành phần hoạt
động thực thi đồng thời hoặc song song.
<flow> được xem như cấu trúc dạng đồ thị, như một chuỗi các liên kết <link>, <link>
quy định luồng chạy ẩn của điều khiển giữa các thành phần hoạt động trong một <flow>.
Mỗi <link> phải có ít nhất một thành phần nguồn <source> và ít nhất một thành phần
đích <target>. Thành phần <target> của một <link> không được bắt đầu cho tới khi
thành phần <source> của <link> hoàn thành. Vấn đề về bế tắc, xung đột giữa các thành
phần hoạt động trong thành phần hoạt động <flow> có thể xảy ra trong một quy trình nghiệp
vụ. Khi sử dụng <link> đặc biệt trong trường hợp nhiều <link> trong một <flow>, dễ

gây ra bế tắc như xuất hiện chu trình của các thành phần hoạt động, thành phần đích là thành
phần nguồn của một thành phần hoạt động đã thực thi xong hoặc các thành phần hoạt động
song song cùng thao tác tới một biến toàn cục. Luận văn sẽ đi sâu tìm hiểu về, các vấn đề sẽ
gây ra bế tắc, xung đột trong một <flow>, từ đó, xây dựng chương trình phát hiện và cảnh
báo về vấn đề này.

5
luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer
Page 5 of 128.


Header Page 6 of 128.

DEADLOCK PROBLEMS IN THE PROCESS
IS IMPLEMENTED IN BPEL
Dung Pham Thi
K19KTPM course, information technology faculty
Abtract thesis:
Web services have been launched to open the way to the interaction between applications
through the use of Web standards currently applied varied in actual software system. Web
Services used loose connected integration models and platform independence which has
allowed flexibility in integrating systems B2C, B2B and enterprise applications. However, the
magnitude and complexity of today's systems integrate between applications and business
process systems requiring more demanding exterior use standard Web protocols. Meanwhile,
the integration between Web services according to business processes using an integrated
model. Language executable BPEL business processes (Business Process Execute Language)
(- or WS-BPEL, BPEL4WS) launched to define a model and grammar for describing the
behavior of the business process based on interactions between the process and its partners, to
simplify the problem combined with services as business processes.
BPEL uses the XML specification as WSDL, XML Schema, XPath, and XSLT. WSDL and

XML Schema provides data models, and XPath and XSLT provide support for the use of data
manipulation in BPEL. BPEL business process model defines the basic activities and the
structured activities. In particular, important activities, or used to model a business application
is <flow>, used to define a set of components executed simultaneously or in parallel.
<Flow> is seen as structures graphically, as a sequence of the <link>, <link> specified
stream in the background of control between the activities in a <flow>. Each <link>
should have at least one <source> activity and at least one destination component <target>.
The <target> of a <link> is not started until the <source> of <link> finish. The
issue of impasse, the conflict between the activities in <flow> can happen in a business
process. When using the <link> especially in the case of multiple <link> in a <flow>,
prone to deadlock cycle occurs as the activity, the destination component is part of an active
ingredient source runaway or moving components operating in parallel with actions to a
global variable. Dissertations will go deep to find out about, the problem would cause
deadlock, conflict in a <flow>, from there, building programs to detect and alert on this
issue.

6
luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer
Page 6 of 128.


Header Page 7 of 128.

Lời cam đoan
Tôi xin cam đoan vấn đề phát hiện và xây dựng công cụ cảnh báo bế tắc (deadlock) trong quy
trình được hiện thực bằng BPEL được trình bày trong luận văn này là do tôi thực hiện dưới sự
hướng dẫn của TS Võ Đình Hiếu.
Tất cả những tham khảo từ các nghiên cứu liên quan đề được nêu nguồn gốc một các rõ ràng
từ danh mục tài liệu tham khảo trong luận văn. Trong luận văn, không có việc sao chép tài
liệu, công trình nghiên cứu của người khác mà không chỉ rõ về tài liệu tham khảo.


Hà Nội, ngày 09 tháng 08 năm 2015
Tác giả

Phạm Thị Dung

7
luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer
Page 7 of 128.


Header Page 8 of 128.

Mở đầu
Dịch vụ Web ra đời đã mở ra hướng mới cho việc tương tác giữa các ứng dụng thông
qua sử dụng các tiêu chuẩn Web, hiện được áp dụng đa dạng trong hệ thống phần mềm
thực tế. Các ứng dụng, hệ thống đòi hỏi ngày càng mở rộng quy mô và phức tạp về các
quy trình nghiệp vụ. Việc sử dụng các dịch vụ Web riêng lẻ cho từng chức năng
nghiệp vụ, ngày càng không đáp ứng được với độ phức tạp của hệ thống. Ngôn ngữ
thực thi quy trình nghiệp vụ BPEL đưa ra để định nghĩa một mô hình và ngữ pháp để
mô tả hành vi của quy trình nghiệp vụ và đối tác hay các dịch vụ Web.
BPEL mô hình quy trình nghiệp vụ định nghĩa từ các thành phần hoạt động cơ bản như
<invoke>, <receive>, <reply>, <assign>… và các thành phần hoạt động có
cấu trúc như <sequence>, <if>, <while>, <repeatUntil>, ,
<flow>…. Trong đó, thành phần hoạt động quan trọng, được dùng khi mô hình một
ứng dụng nghiệp vụ <flow>, sử dụng để định nghĩa một tập các thành phần hoạt
động thực thi đồng thời hoặc song song. Bởi liên kết <link> quy định phụ thuộc thực
thi trong một <flow>, trong khi các thành phần hoạt động của BPEL được thiết kế để
chương trình không xảy ra bế tắc hoặc chu trình, tuy nhiên, việc sự kết hợp giữa thành
phần hoạt động cấu trúc có lựa chọn như <if> hay tuần tự <sequence> trong

<flow> có sử dụng <link>, có thể gây ra bế tắc.
Nội dung của luận văn được chia thành các chương như sau:
Chương 1: Luận văn giới thiệu tổng quan về kết hợp dịch vụ Web và ngôn ngữ BPEL.
Chương 2: Luận văn phát biểu về thành phần hoạt động <flow> và vấn đề deadlock.
Chương 3: Luận văn đề xuất và xây dựng công cụ kiểm tra và cảnh báo deadlock.
Phần kết luận : Tóm lược kết quả đạt được của luận văn và định hướng phát triển
tương lai.

8
luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer
Page 8 of 128.


Header Page 9 of 128.

Chương 1: Tổng quan về kết hợp dịch vụ và ngôn ngữ BPEL
Chương này, luận văn giới thiệu tổng quan về kết hợp dịch vụ Web và ngôn ngữ thực
thi quy trình nghiệp vụ BPEL cùng các thành phần hoạt động của nó. Ngoài ra, luận
văn còn nêu lên được tại sao nên sử dụng BPEL trong các ứng dụng nghiệp vụ sử dụng
dịch vụ Web.
1.1.

Tổng quan về kết hợp dịch vụ Web

Web service – dịch vụ Web, tạo ra với mục đích để tương tác giữa các ứng dụng bởi
việc sử dụng các tiêu chuẩn Web. Các dịch vụ Web sử dụng mô hình kết nối lỏng lẻo
cho phép tích hợp linh hoạt giữa các hệ thống độc lập như B2C (business-toconsumer), B2B (business-to-business) hay các hệ thống tích hợp ứng dụng doanh
nghiệp. Các đặc tả liên quan tới dịch vụ Web như SOAP – định nghĩa một giao thức
giao tiếp XML cho khả năng tương tác dịch vụ cơ bản, WSDL (ngôn ngữ mô tả dịch
vụ Web) giới thiệu cú pháp chung cho mô tả dịch vụ và UDDI cung cấp kết nối hạ

tầng cho việc giao tiếp và kết nối. Kết hợp, các đặc tả đó cho phép các ứng dụng tương
tác với mỗi cái khác theo mô hình kết nối lỏng lẻo, độc lập về nền tảng [2].
Việc tích hợp các hệ thống thực tế mong đợi nhiều vào khả năng tương tác đơn giản,
sử dụng các giao thức tiêu chuẩn. Dịch vụ Web có nền tảng tích hợp mềm dẻo áp dụng
trong các ứng dụng và quy trình nghiệp vụ có thể giải quyết các vấn đề tương tác phức
tạp thông qua một mô hình tích hợp quy trình chuẩn. Mô hình tương tác được hỗ trợ
trực tiếp bởi WSDL là mô hình phi trạng thái nhận yêu cầu – phản hồi hoặc cách thức
tương quan nhiều chiều.
Các mô hình tương tác nghiệp vụ hiện nay cơ bản áp dụng một trong các kiểu trao đổi
thông điệp như peer-to-peer, yêu cầu - phản hồi, một chiều, có trạng thái, các tương tác
dài (long – running) liên quan tới hai hoặc nhiều bên. Để định nghĩa các tương tác
nghiệp vụ hệ thống, mô tả hình thức các giao thức trao đổi thông điệp cùng với sử
dụng các quy trình nghiệp vụ của chúng là điều cần thiết. Các quy trình nghiệp vụ bao
gồm các hành vi phụ thuộc dữ liệu, khả năng xác định các điều kiện ngoại lệ, hậu quả/
kết quả của tương tác, và tính phối hợp giữa các đơn vị, phòng ban. Một hệ thống được
biểu diễn chi tiết, rõ ràng ở nhiều khía cạnh khác nhau càng tốt. Vai trò phân tích hệ
thống, các chi tiết thực thi nghiệp vụ hệ thống không nhất thiết đưa ra, khi đó cần một
quy trình trừu tượng để mô tả hành vi trao đổi thông điệp thấy được của mỗi bên liên

9
luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer
Page 9 of 128.


Header Page 10 of 128.

quan sẽ quan trọng hơn. Các vai trò xây dựng, triển khai, cần một quy trình thể hiện
luồng thực thi và tích hợp các dịch vụ giữa các bên liên quan, hoặc quản lý trao đổi dữ
liệu. Ngôn ngữ BPEL định nghĩa hai quy trình: trừu tượng và thực thi sẽ mô tả, biểu
diễn tiến trình nghiệp vụ hệ thống sử dụng các dịch vụ Web theo hai quy trình đó.

1.2.

Ngôn ngữ thực thi quy trình nghiệp vụ BPEL

WS-BPEL (Web Services Business Process Execution Language) hay ngắn gọn BPEL
(Business Process Execution Language) là ngôn ngữ thực thi tiến trình nghiệp vụ các
dịch vụ Web. Phiên bản BPEL4WS (Business Process Execution Language for Web
Services 1.0) được giới thiệu vào tháng 7/2002, kết hợp chung của IBM, Microsoft và
BEA. Nó sử dụng ngôn ngữ luồng dịch vụ Web (Web Services Flow Language WSFL) của IBM và XLANG của Microsoft. Phiên bản 1.1 và thêm sự tham gia đóng
góp của SAP và Siebel Systems, được phát hành vào tháng 5/2003 [3]. Phiên bản gần
nhất WS-BPEL 2.0 được giới thiệu năm 2007. Trong phạm vi tài liệu luận văn này, chỉ
đề cập và sử dụng phiên bản WS-BPEL 2.0 và gọi ngắn gọn là BPEL hay WS-BPEL.
Đặc tả BPEL 2.0 định nghĩa một ngôn ngữ cho quy trình nghiệp vụ xây dựng dựa trên
các dịch vụ Web. BPEL 2.0 cung cấp một mô tả quy chuẩn hoàn chỉnh về ngôn ngữ
thực thi quy trình nghiệp vụ. Các khái niệm cơ bản của BPEL được hiểu theo một trong
hai hướng, trừu tượng hoặc thực thi. Một tiến trình trừu tượng BPEL là một tiến trình
đặc tả từng phần không phải để thực thi và phải được khai báo rõ ràng như kiểu trừu
tượng. Trong khi tiến trinh thực thi được đặc tả đầy đủ và có thể được thi hành, một tiến
trình trừu tượng có thể ẩn các chi tiết thao tác cụ thể hóa được yêu cầu thể hiện bởi vật
thực thi. Tất cả kiến trúc của tiến trình thực thi tạo nên giá trị tới tiến trình trừu tượng, vì
thế tiến trình BPEL thực thi và trừu tượng có độ mạnh thể hiện như nhau.
-

Tiến trình trừu tượng cung cấp hai cơ chế ẩn các chi tiết thao tác; một sử dụng

các thẻ không rõ ràng một cách rõ ràng hoặc thiếu sót. Các tiến trình trừu tượng có vai
trò mô tả, thường đưa ra nhiều ca sử dụng, một ca sử dụng mô hình hành vi nhìn thấy
của vài hoặc tất cả các dịch vụ được đề xuất bởi tiến trình trừu tượng. Ca sử dụng khác
định nghĩa một khuôn mẫu tiến trình, khuôn mẫu này thể hiện những thực hành tốt
nhất từng miền cụ thể. Bất kể với từng ca sử dụng và mục đích, tất cả các tiến trình

trừu tượng chia sẻ một cơ sở cú pháp chung. Chúng có yêu cầu khác nhau về mức độ
của độ mờ và hạn chế trong các phần của một định nghĩa tiến trình, có thể bị bỏ sót
hoặc bị ẩn. Cách sử dụng phù hợp của các tiến trình trừu tượng có hiệu quả khác nhau
trong các ràng buộc nhất quán và trong cú pháp của tiến trình đó.

10
luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer
Page 10 of 128.


Header Page 11 of 128.

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
dadam}@informatik.uni-ulm.de.

Ulm,


GERMANY

{reichert,

rinderle,

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
6.
7.
8.
9.

in WS-BPEL”, Science of Computer Programming 67, 2007 162–198.
BEA, IBM, Microsoft, SAP and Siebel, “Business Process Execution Language for
Web Services Version 1.1”, S. Thatte, et al., May 2003.
IBM, “Web Service Flow Language (WSFL 1.0)”, F. Leymann, May 2001
Microsoft, “XLANG Web Services for Business Process Design”, S. Thatte, 2001.
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.

11
luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer
Page 11 of 128.




×