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
Trang 1ĐẠ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
Trang 2ĐẠ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
Trang 3VIETNAM 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
Trang 4Lờ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
Trang 5VẤ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
Trang 6DEADLOCK 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
Trang 7Lờ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
Trang 8Mở đầ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>, <pick>,
<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
Trang 9Chươ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
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-to-consumer), 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
Trang 10quan 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 đó
Trang 11Tà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,
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