Luận án Môi trường Tính toán lưới

BPMN (đầu tiên được gọi là “Business Process Modeling Notation” trong phiên bản 1 [69]. Sang phiên bản 2, nó được đổi thành “Business Process Model & Notation” [70]) là một hệ thống ký hiệu sử dụng đồ họa, dùng để mô hình hóa các tiến trình nghiệp vụ. Nó được phát triển bởi BPMI (Business Process Management Initiative) và OMG (Object Management Group) với mục đích chính là tạo ra một hệ thống ký hiệu thống nhất và dễ hiểu cho tất cả những người sử dụng các tiến trình nghiệp vụ, từ những người phân tích nghiệp vụ bắt đầu tạo ra bản phác thảo cho tiến trình nghiệp vụ, cho đến những người phát triển các công nghệ để cài đặt việc thực thi các tiến trình nghiệp vụ đó. BPMN cũng hướng đến mục tiêu có thể tạo ra các tiến trình tự động mà có thể được thực thi trên máy tính, qua việc hỗ trợ tối đa khả năng chuyển đổi thành các tiến trình nghiệp vụ được biểu diễn bằng BPEL [99]. Hiện nay, BPMN đã được chuẩn hóa và được hỗ trợ của hơn 70 công ty trên thế giới, trong đó có nhiều công ty lớn.

pdf166 trang | Chia sẻ: toanphat99 | Lượt xem: 5226 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận án Môi trường Tính toán lưới, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
(1978). Activity, consciousness, and personality, Prentice-Hall, USA . 59. Litzkow M.J, M. Livny and M.W. Mutka (1988), “Condor-a hunter of idle workstations”, The 8th International Conference on Distributed, IEEE Comput, pages 104-111. 141 60. Lisa Childers and Borja Sotomayor (2006), Globus Toolkit 4: Programming Java Services. Morgan Kaufmann, USA. 61. Lowry Edward and Cleburne W Medlock (1969), Object code optimization, Communications of the ACM, Vol 12(1), pages 13-22. 62. Marjorie Bardeen, Eric Gilbert, Thomas Jordan, Paul Nepywoda, Elizabeth Quigg, Mike Wilde and Yong Zhao (2006), “The QuarkNet/Grid Collaborative Learning e- Lab”, Future Generation Computer Systems,Vol 22(6), pages 700-708. 63. Mathias Weske and Gottfried Vossen (1998), Workflow languages, Springer Berlin Heidelberg. 64. Melbourne Health (2012), Collaborative Framework 2012 – 2017, at 65. Mendling Jan, Kristian Bisgaard Lassen and Uwe Zdun (2006), Transformation strategies between block-oriented and graph-oriented process modelling languages, Technical report. 66. M. Robinson (1993). Common artefacts in the design of computer support for collaborative work. In Developing CSCW systems: Design Concepts, CoTech WG4. 67. Miguel L. Bote-Lorenzo, Eduardo Gomez-Sanchez, Guillermo Vega-Gorgojo, Yannis Dimitriadis, Juan I. Asensio-Perez and Ivan M. Jorrin-Abellan (2008), Gridcole: A tailorable grid service based system that supports scripted collaborative learning, Computers and Education, Vol 51(1), pages 155-172. 68. OASIS, Diane Jordan and John Evdemon (2009), Web Services Business Process Execution Language, Technical report. 69. Object Management Group (2006), Business Process Modeling Notation (BPMN) Version 1.0, Technical report. 70. Object Management Group (2011), Business Process Model and Notation (BPMN) Version 2.0, Technical Report January. 71. Onyeka Ezenwoye, S. Masoud Sadjadi, Ariel Cary and Michael Robinson (2007), Grid Service Composition in BPEL for Scientific Applications, Lecture Notes in Computer Science, Vol (4804), pages 1304-1312. 72. Onyeka Ezenwoye, S. Masoud Sadjadi, Ariel Cary and Michael Robinson (2007), Orchestrating WSRF-based Grid Services, Technical report. 73. Ouyang Chun, Van Der Aalst, M P Wil and H M Arthur (2009), From business process models to process-oriented software systems: The BPMN to BPEL way, ACM Transactions on Software Engineering and Methodology, Vol 19(1), pages 1-37. 74. Ouyang Chun, Marlon Dumas, Stephan Breutel and Arthur H M Hofstede (2006), “Translating Standard Process Models to BPEL. In Advanced Information Systems Engineering”, 18th International Conference (CAiSE 2006), Luxembourg, pages 417- 432. 75. ODE Apache, version 1.3.5 (2011), at 76. Papakhian M (1998), Comparing job-management systems: the user’s perspective, IEEE Computational Science and Engineering, Vol 5(2), pages 4-9. 142 77. Paul WPurdom Jr and Edward F Moore (1972), Immediate predominators in a directed graph, Communications of the ACM, Vol 15(8), pages 777-788. 78. Papazoglou Michael, Joachim W Schmidt, John Mylopoulos, Wil Van Der Aalst and Kees Max Van Hee (2002), Workflow Management Models , Methods , and Systems, MIT press. 79. Recker Jan and Jan Mendling (2006), “On the Translation between BPMN and BPEL: Conceptual Mismatch between Process Modeling Languages”, In The 18th International Conference on Advanced Information Systems Engineering. Proceedings of Workshops and Doctoral Consortium, Namur University Press. 80. Rodden, T. (1991), A survey of CSCW systems, Interacting with Computers, Vol 3(3), pages 319-353. 81. Rubio-Montero A. J, E. Huedo, R.S. Montero and I.M. Llorente (2007), “Management of Virtual Machines on Globus Grids Using GridWay”, IEEE International Parallel and Distributed Processing Symposium, pages 1-7. 82. Sabri Pllana, Jun Qin, and Thomas Fahringer (2005), “Teuta: A Tool for UML Based Composition of Scientific Grid Workflows”, In: First Austrian Grid Symposium, OCG, pages: 12. 83. Sabrina De Capitani Di Vimercati, Sara Foresti, Pierangela Samarati and Sushil Jajodia (2007), Access Control Policies and Languages, International Journal of Computational Science and Engineering, Vol 3(2), pages 94-102. 84. Samarati Pierangela and Sabrina De Capitani Di Vimercati (2001), Access Control: Policies, Models, and Mechanisms, In Foundations of Security Analysis and Design, vol 2171, pages 137-196. 85. SoapUI (2010), SoapUI Tool at 86. Solaiman B (2001), “Medical decision-making and collaborative reasoning”, In Proceedings of the IEEE 2nd International Symposium on Bioinformatics and Bioengineering Conference, pages 161-165. 87. Sotomayor Borja (2005), The Globus Toolkit 4 Programmer’s Tutorial. 88. Stan Bhagyavati, Stan Kurkovsky and Arris Ray (2004), “A collaborative problem- solving framework for mobile devices”, In ACM-SE 42: Proceeding of the 42nd. Annual Southeast Regional Conference, New York, pages 5-10. 89. Suchman Lucy (1987), Plans and situated actions: The problem of human-machine communication, Cambridge University. 90. Tarjan Robert (1973), Enumeration of the elementary circuits of a directed graph, SIAM Journal on Computing, Vol 2(3), pages 211-216. 91. Tarjan Robert and Loukas Georgiadis (2004), “Finding dominators revisited”, In Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms, Society for Industrial and Applied Mathematics. 92. Taverna (2012), Pack: Taverna 2.3 starter pack at org/packs/192.html. 93. The Globus Security Team (2005), Globus Toolkit Version 4 Grid Security Infrastructure: A Standards Perspective, Technical report. 143 94. Thomas Friese, Matthew Smith, Bernd Freisleben, Julian Reichwald, Thomas Barth and Manfred Grauer (2006), Collaborative Grid Process Creation Support in an Engineering Domain, Lecture Notes in Computer Science, Vol 4297, pages 263-276. 95. Thomas Friese, T. Dornemann, S. Herdt and Bernd Freisleben (2007), “Grid Workflow Modelling Using Grid-Specific BPEL Extensions”, In: Proceedings of German e-Science Conference, pages: 9. 96. Unified Modeling Language (UML) at 97. Von Gregorn Laszewski (2002), GSFL: A Workflow Framework for Grid Services. 98. W.M.P. van der Aalst, A.H.M. ter Hofstede, B. Kiepuszewski and A P Barros (2003), Workflow Patterns, Distributed and Parallel Databases, Vol 14(1), pages 5-51. 99. White Stephen (2006), Introduction to BPMN. IBM Corporation. 100. Wikipedia, BPMN Tools at Process_Modeling_Notation_tools. 101. W3C Working Group (2004), Web Services Architecture at TR/ws-arch/, Technical report. 102. WMP van der Aalst, Weske Mathias and Wirtz Guido (2003), Advanced Topics In Workflow Management: Issues, Requirements and Solutions, Journal of Integrated Design & Process Science, Vol 7(3), pages 49-77. 103. Yu Jia and Rajkumar Buyya (2006), A Taxonomy of Workflow Management Systems for Grid Computing, Journal of Grid Computing, Vol 3(3-4), pages 171-200. 104. Yuan Eric and Jin Tong (2005), “Attributed based access control (ABAC) for web services”, ICWS '05 Proceedings of the IEEE International Conference on Web Services, Washington, USA, pages 74-79. 105. Yushun Li, Shengwen Yang, Jinlie Jiang and Meilin Shi (2006), Build Grid-enalbled large-scale Collaboration Environment in e-Learning Grid, Computer Supported Cooperative Work in Design and Manufacturing, Vol 31, pages 742-754. 106. Xianlong Jin, Zhi Li Yuan Cao, Xiaoyun Zhang and Yuanyin Li (2007), Architecture of collaborative design grid and its application based on LAN, Advances in Engineering Software, Vol 38(2), pages 121-132. 144 PHỤ LỤC A: TÍNH TOÁN LƯỚI A.1 Kiến trúc hướng dịch vụ Kiến trúc hướng dịch vụ (Service Oriented Architecture - SOA) là một giải pháp hoàn chỉnh để giải quyết ba vấn đề thách đố mà cộng đồng doanh nghiệp và khoa học đã phải đối mặt: sự không đồng nhất, sự tương thông và các yêu cầu luôn thay đổi. Hành vi của kiến trúc này có thể được biểu diễn trong Hình A-4, với ba thành phần tham gia: nhà cung cấp dịch vụ, điểm đăng ký dịch vụ và người dùng dịch vụ. Đầu tiên, một dịch vụ được một nhà cung cấp dịch vụ xây dựng, sau đó họ phát hành dịch vụ đó cho điểm đăng ký dịch vụ. Sau này, khi một người dùng cần một dịch vụ thì họ sẽ yêu cầu điểm đăng ký dịch vụ tìm cho họ xem dịch vụ đó có tồn tại hay không, và nếu có thì làm thế nào để có được nó. Cuối cùng, nếu dịch vụ đó được tìm thấy, thì các thông tin liên quan đến dịch vụ sẽ được gửi về cho người dùng đó, và dựa trên thông tin này mà người đó có thể gọi dịch vụ đó mà đang được quản lý bởi nhà cung cấp dịch vụ. Do đó, mục tiêu chính của kiến trúc này là phát triển và khai thác các dịch vụ ứng dụng, là các thành phần phần mềm có ba đặc trưng sau: - Tính gắn kết lỏng lẻo - Sự trong suốt về vị trí - Sự độc lập với giao thức Hình A-1: Kiến trúc Hướng Dịch Vụ. A.2 Dịch vụ WEB A.2.1 Định nghĩa Sau đây là một định nghĩa khá chính thức về dịch vụ Web được trích dẫn từ [101]: “Một dịch vụ WEB là một hệ thống phần mềm được thiết kế để hỗ trợ sự tương tác tương thông giữa máy tính với máy tính (interoperable machine-to-machine interaction) qua mạng máy tính. Nó có một giao diện được mô tả dưới một định dạng mà máy tính có thể xử lý được (đặc biệt là WSDL)” [101]. A.2.2 Kiến trúc (Architecture) 145 Kiến trúc phân tầng của Dịch vụ WEB được biểu diễn trong Hình A-2 [101]. Các chức năng của mỗi tầng như sau: - Tầng Tiến trình: một tiến trình là sự kết hợp của nhiều dịch vụ WEB. Do đó, tầng này nói chung bao gồm một tập hợp các dịch vụ WEB. Ví dụ dịch vụ WEB “khám phá” cho phép tìm kiếm một dịch vụ WEB cần thiết từ tập các dịch vụ WEB. Trong khi đó, các dịch vụ WEB choreography and aggregation nhằm tạo ra các dịch vụ WEB mới bằng cách kết hợp các dịch vụ đã có. - Tầng Mô tả: tầng này cần có một ngôn ngữ mà có thể mô tả các dịch vụ WEB mà máy tính có thể hiểu được. Web Services Description Language (WSDL) là ngôn ngữ đã được chọn bởi vì nó đáp ứng được các yêu cầu về mô tả các dịch vụ WEB. Thông qua việc đọc một tệp WSDL của một dịch vụ WEB, máy tính có thể hiểu các thao tác nào mà dịch vụ này hỗ trợ, cũng như cách gọi các thao tác đó như thế nào. - Tầng Thông báo: tầng này nhằm hiện thực hóa việc gọi các thao tác trong tầng mô tả bởi việc gửi các thông báo giữa các máy. Giao thức SOAP (Simple Object Access Protocol) đã được thiết kế cho tầng này. Nó đặc tả các định dạng của các thông báo yêu cầu và các các thông báo trả lời được trao đổi giữa client và server. - Tầng Truyền thông: Tầng này quan tâm đến việc truyền thông báo giữa các client và các server. Giao thức HTTP (HyperText Transfer Protocol) là lựa chọn chủ yếu cho tầng này, mặc dù về mặt lý thuyết thì các giao thức khác cũng có thể được sử dụng. Hình A-2: Kiến trúc Dịch Vụ Web. A.3 Web Service Resource Framework (WSRF) và Grid Services Chuẩn WSRF là một sự cải tiến và thay thế cho chuẩn OGSI (Open Grid Services Infrastructure) mà là một sự mở rộng của WSDL và XML Schema. OGSI cho phép sự mô hình hóa và quản lý các dịch vụ WEB có trạng thái, nhưng nó lại có một số hạn chế như quá 146 cứng nhắc và không mềm dẻo. WSRF nhằm khắc phục các hạn chế này. Trong hạ tầng lưới, các dịch vụ WEB có trạng thái cũng còn được gọi là các dịch vụ lưới. Trước khi xuất hiện các dịch vụ lưới, dịch vụ Web bị coi như một dịch vụ cô lập với mỗi thể hiện của nó hoàn toàn độc lập với các thể hiện khác của chính nó, bởi vì chúng không lưu giữ thông tin gì về trạng thái của bản thân chúng khi chúng mang nhưng kết quả đầu ra đến cho các Web client được yêu cầu. Tính không trạng thái này của dịch vụ Web làm cho mô hình client-server của chúng trở nên đơn giản. Tuy nhiên, việc phát triển các dịch dụ có tính giao tác dựa trên các dịch vụ Web đòi hỏi những thao tác phức tạp về trạng thái cố kết ở phía đầu server, và điều này không nhất quán với bản tính không trạng thái của dịch vụ Web. Vì lý do này, mà tổ chức OASIS đã chấp nhận Web Service Resource Framework (WSRF), một chuẩn mà cho phép các dịch vụ Web truy nhập vào các trạng thái cố kết của chúng theo một cách nhất quán và tương kết. Trong WSRF thì một trạng thái được gọi là tài nguyên trạng thái. WSRF nhằm mô hình hóa và quản lý các tài nguyên trạng thái dựa trên một cấu trúc được gọi là tài nguyên dịch vụ Web (WS-Resource), mà bao gồm một dịch vụ Web và các tài nguyên trạng thái gắn với nó [45]. WSRF định nghĩa các biện pháp nhờ đó: - Tài nguyên dịch vụ Web có thể được tạo ra và hủy bỏ - Một tài nguyên trạng thái được sử dụng khi có sự trao đổi thông báo của dịch vụ Web được thực thi - Một tài nguyên trạng thái có thể được truy vấn và bị thay đổi nhờ sự trao đổi thông báo của dịch vụ Web. Mỗi tài nguyên trạng thái thường có nhiều thể hiện độc lập mà chúng có thể được tạo ra và tiêu hủy. Khi một thể hiện mới của một tài nguyên trạng thái được tạo ra, thường là do một dịch vụ Web được gọi với cái tên là nhà sản xuất tài nguyên (resource factory), nó có thể được gán cho một định danh (identity - ID) (cũng còn được gọi là khóa tài nguyên). WSRF định nghĩa một loại quan hệ đặc biệt, được gọi là mẫu tài nguyên ngầm định, giữa một dịch vụ Web và các tài nguyên trạng thái của nó. Quan hệ này là một cơ chế nhằm gắn kết một tài nguyên trạng thái với việc thực thi sự trao đổi thông báo của dịch vụ Web. Thuật ngữ ngầm định có nghĩa là một tài nguyên trạng thái gắn kết với một trao đổi thông báo cho trước được coi như một đầu vào ngầm định cho việc thực thi yêu cầu thông báo. Đầu vào ngầm định có nghĩa là tài nguyên trạng thái này không được cung cấp như một tham số đầu vào tường minh trong thân của yêu cầu thông báo. Do đó, sự gắn kết này chủ yếu được thực hiện theo một cách động, tức là được thực hiện vào thời gian thực thi sự trao đổi thông báo [45]. Để biểu diễn địa chỉ của một dịch vụ Web được khai thác tại một điểm cuối cho trước của mạng, WSRF sử dụng cấu trúc Endpoint Reference (EPR) (Tham chiếu Điểm cuối) từ chuẩn WS-Addressing. Thành phần chính của một tham chiếu điểm cuối là một địa chỉ điểm cuối của dịch vụ Web. Tham chiếu điểm cuối cũng có thể chứa một metadata gắn với dịch 147 vụ Web đó, như các thông tin mô tả dịch vụ và các thuộc tính tham chiếu (tên này được dùng trong phiên bản 1.1 của WSRF. Trong phiên bản 1.2 đã được đổi thành các tham số tham chiếu). Các thuộc tính tham chiếu đóng một vai trò quan trọng trong mẫu tài nguyên ngầm định, vì nó được sử dụng để lưu giữ khóa tài nguyên của một thể hiện của tài nguyên trạng thái. Dịch vụ lưới là dịch vụ Web mà tuân theo chuẩn WSRF. Chúng cũng còn được gọi là dịch vụ Web tương thích với WSRF (WSRF-compatible Web services). A.4 Chương trình lập lịch Các chương trình lập lịch là một phần của phần sụn lưới mà chịu trách nhiệm lập lịch cho các công việc/chương trình cần được thực thi. Các chức năng chính của một chương trình lập lịch gồm có: - Gửi và giám sát công việc: chức năng này bao gồm gửi công việc từ một nút đến các nút mà sẽ có thể thực thi công việc; sau đó giám sát và kiểm soát trạng thái của các công việc đang được thực thi. - Quản lý tài nguyên: chức năng này cho phép chương trình lập lịch có thể truy nhập, tìm và cấp phát các tài nguyên cần thiết để thực thi các công việc. Các tài nguyên có thể là tính toán, bộ nhớ, dữ liệu hoặc phần mềm. - Tiến hành so khớp: đây là quá trình cố gắng tìm ra các tài nguyên phù hợp nhất trong số các tài nguyên sẵn có để thực thi các công việc. Hiện nay, có nhiều chương trình lập lịch đã được phát triển cho phần sụn lưới như Condor [59][39], GridWay [44] [81], và PBS [41]. Về so sánh chi tiết hơn giữa một số chương trình này, có thể được tham khảo thêm trong [30] [76]. A.5 Hạ tầng an ninh lưới Trong tính toán lưới, đảm bảo an ninh luôn là một trong những bộ phận quan trọng của các ứng dụng và hệ thống lưới. Có một số vấn đề cần phải giải quyết để đảm bảo yêu cầu an ninh này [60]: - Xác thực: là cơ chế kiểm tra xem một người dùng có đúng là đối tượng mà người đó đã khai báo hay không. Cơ chế này nhằm giúp chống lại những người dùng phi pháp bằng cách mạo danh của người khác. - Riêng tư: là cơ chế nhằm đảm bảo rằng thông tin trao đổi giữa các bên là riêng tư, có nghĩa là chỉ những bên tham gia (bên nhận và bên gửi) mới có thể hiểu được nội dung trao đổi. Nếu ai đó có nghe lén trên đường truyền thông thì cũng không thể hiểu nội dung là gì. - Toàn vẹn: Tính toàn vẹn của thông báo được gửi có nghĩa là phía nhận phải có thể chắc chắn rằng thông báo được nhận đúng là thông báo mà phía gửi đã gửi. Nói 148 cách khác, mọi thay đổi về nội dung của thông báo gốc trong quá trình truyền đều có thể bị phát hiện. - Sự cấp quyền: Đây là cơ chế mà quyết định ai có quyền gì (có thể làm gì) trên tài nguyên nào. Điều này có nghĩa là trước khi cho phép một người dùng thực hiện một hành động trên một tài nguyên nào đó, thì hệ thống phải chắc chắn rằng người đó có đủ quyền để thực hiện hành động đó. - Sự ủy quyền: Có nhiều tình huống trong tính toán lưới, việc cho phép một người dùng được ủy quyền của mình cho người dùng khác để thực thi một công việc nào đó là rất hữu ích và tiện lợi. Khả năng này cũng có thể mang đến một tiện ích thú vị khác là đăng nhập một lần. Bởi vì một ứng dụng lưới có thể chạy qua nhiều tổ chức khác nhau, nên sẽ vừa bất tiện và vừa thiếu an toàn nếu bắt buộc ứng dụng phải đăng nhập lại nhiều lần, mỗi khi ứng dụng muốn truy nhập vào các tài nguyên của một tổ chức. Trong bộ công cụ Globus Toolkit 4, có một thành phần có tên gọi Grid Security Infrastructure (GSI) đã được phát triển nhằm giải quyết các vấn đề an ninh nêu trên [93][60]. Dựa trên Hạ tầng Khóa Công Khai (Public Key Infrastruture - PKI) và nhằm trợ giúp cho các nhà phát triển các ứng dụng lưới, GSI có các đặc điểm sau: - Về hỗ trợ Xác thực: Nó sử dụng chứng chỉ số hóa X509 (X509 digital certificates). - Về hỗ trợ Riêng tư: Nó cung cấp hai mức độ riêng tư: mức giao vận với một lược đồ gọi là GSI Transport, và mức thông báo với hai lược đồ: GSI Secure Message và GSI Secure Conversation. - Về hỗ trợ Toàn vẹn: Đặc tính này được hỗ trợ bởi Hạ tầng Khóa Công Khai (PKI). - Về hỗ trợ sự Cấp quyền: Nó cung cấp khả năng Cấp quyền ở cả hai phía là Client và Server. - Về hỗ trợ sự Ủy quyền: Nó sử dụng ủy nhiệm proxy. 149 PHỤ LỤC B: NGÔN NGỮ VÀ HỆ THỐNG LUỒNG CÔNG VIỆC Quản lý luồng công việc là quá trình mô hình hóa và kiểm soát việc thực thi các tiến trình ứng dụng, hay tiến trình nghiệp vụ trong nhiều lĩnh vực như khoa học, kỹ thuật, kinh doanh,v.v. nhằm mục đích tìm ra các tiến trình tối ưu theo cách hiệu quả nhất [78]. Trong thời gian gần đây, việc nghiên cứu các hệ thống quản lý luồng công việc đang thu hút được nhiều sự chú ý, vì cho phép kết hợp góc nhìn hướng dữ liệu, là cách tiếp cận truyền thống trong các hệ thống thông tin, với góc nhìn hướng tiến trình, trong đó các hoạt động và sự xuất hiện của chúng theo thời gian được mô hình hóa, được đặc tả và có thể được thực thi một cách tự động và có kiểm soát [63]. Trong các hệ thống này, các tiến trình nghiệp vụ được mô hình hóa bằng các luồng công việc. Để thực hiện được những việc này, các hệ thống quản lý luồng công việc cần có các ngôn ngữ mô hình hóa các luồng công việc, hay nói ngắn gọn, ngôn ngữ luồng công việc. Như vậy, ngôn ngữ luồng công việc giúp xây dựng các mô hình tiến trình và các mô hình tiến trình này chính là các biểu diễn cho các tiến trình nghiệp vụ. Các ngôn ngữ luồng công việc có nhiệm vụ mô tả được các thông tin liên quan đến luồng công việc trong các tiến trình nghiệp vụ, nhằm mục tiêu điều khiển và kiểm soát được việc thực thi các tiến trình nghiệp vụ này trong các hệ thống quản lý luồng công việc (WMS - Workflow Management Systems). Các thông tin liên quan trong luồng công việc thường không đồng nhất và bao gồm nhiều khía cạnh, từ mô tả cấu trúc của tiến trình nghiệp vụ, khía cạnh tổ chức và các chương trình ứng dụng, cho đến các dữ liệu chi tiết về môi trường thực thi tiến trình. Có một hạn chế khá lớn trong các WMS hiện nay là thiếu tính linh hoạt trong việc thực thi các luồng công việc. Điều này có nghĩa là sau khi một luồng công việc đã được định nghĩa, rồi thực thi, không thể thực hiện một sự thay đổi nào trong luồng công việc đó nữa, ngoài trừ dừng hẳn lại, rồi định nghĩa và thực thi lại từ đầu. Điều này thường gây lãng phí về thời gian và công sức, nhất là với các luồng công việc có thời gian thực thi trong thời gian dài rất phổ biến trong các ứng dụng thực tế. Do đó, yêu cầu về tính linh hoạt trong WMS cũng đang thu hút được nhiều nghiên cứu trong thời gian gần đây [102]. Kỹ thuật luồng công việc đã được lựa chọn như một trong số các nền tảng lý thuyết và công nghệ trong nghiên cứu về khung cộng tác dùng trong luận án, do cho phép biểu diễn khá đầy đủ phần kế hoạch hành động, cũng như hỗ trợ khả năng chuyển đổi, thực thi các kế hoạch này. Cụ thể hơn, hai ngôn ngữ luồng công việc tiêu biểu là BPMN và BPEL và các công nghệ liên quan được chọn sử dụng để biểu diễn các kế hoạch ở hai mức khác nhau. Trong khi BPMN được dùng để mô tả các kế hoạch tại mức trừu tượng (chưa thực thi được), thì BPEL sẽ được dùng để mô tả các kế hoạch tại mức chi tiết hơn (thực thi được). 150 B.1 Các khái niệm cơ bản Định nghĩa B-1. Tiến trình nghiệp vụ (cũng được gọi là thủ tục) như được định nghĩa trong [43]: “Là thủ tục trong đó các tài liệu, thông tin và nhiệm vụ được trao chuyển giữa những đối tượng tham gia theo một tập các quy tắc đã được xác định nhằm đạt được, hay đóng góp vào một mục tiêu kinh doanh tổng thể nào đó”. Trong Hình B-1 biểu diễn cấu trúc của một tiến trình nghiệp vụ theo định nghĩa ở trên. Hình B-1. Cấu trúc của một tiến trình nghiệp vụ. Như có thể thấy từ Hình B-1, các hệ thống quản lý luồng công việc cần hỗ trợ cho các luồng công việc trong các khía cạnh như sau: (trình bày trong [63] [102]). - Khía cạnh chức năng: liên quan đến việc mô tả các chức năng luồng công việc cần phải thực hiện. Các chức năng này thường được phân chia theo một cấu trúc phân cấp, trong đó các chức năng cấp cao thường được gọi là các hoạt động, còn các chức năng cấp thấp thường được gọi là các nhiệm vụ hay các hoạt động con. Cấu trúc phân cấp này sẽ cho phép biểu diễn được việc tách/gộp các chức năng. Đến lượt mình, các nhiệm vụ lại có thể được chia nhỏ hơn thành các nhiệm vụ con. Và quá trình phân chia này có thể lặp lại nhiều lần cho đến khi các nhiệm vụ là đủ nhỏ và không phân chia được nữa - chúng được gọi là nhiệm vụ nguyên tố. Các nhiệm vụ ở mức trên sẽ phân chia nhỏ hơn là các nhiệm vụ không nguyên tố. - Khía cạnh tiến trình: nhằm xác định các điều kiện và thứ tự thực thi cho các chức năng của luồng. Khía cạnh chức năng và tiến trình thường được kết hợp trong định nghĩa tiến trình luồng. Khía cạnh tổ chức (còn được gọi là 'khía cạnh tài nguyên' ): khía cạnh này liên 151 quan đến vai trò và quyền hạn của những người tham gia sử dụng luồng trong một tổ chức. Điều này liên quan đến việc quản lý trách nhiệm, phân quyền truy nhập cho các cá nhân và các nhóm người dùng trong tổ chức đó. Các đối tượng này được coi như một loại tài nguyên của hệ thống. - Khía cạnh thông tin: bao gồm các loại thông tin điều khiển luồng, cũng như các thông tin cần thiết cho các hoạt động/nhiệm vụ, ví như dữ liệu vào, ra. Ngoài ra, giữa các hoạt động/nhiệm vụ trong luồng công việc cũng cần có các luồng dữ liệu trao đổi với nhau nhằm biểu diễn các phụ thuộc dữ liệu giữa chúng. Các loại thông tin trên có thể được chia thành hai loại (theo [102]): thông tin điều khiển nhằm điểu khiển thứ tự hoạt động của các nhiệm vụ và thông tin sản xuất là các thông tin liên quan trực tiếp đến các nhiệm vụ như các dữ liệu vào/ra. - Khía cạnh vận hành: khía cạnh này quan tâm đến việc thực thi luồng công việc trên một môi trường điều hành cụ thể. Nó chủ yếu thực hiện việc ánh xạ các hoạt động/nhiệm vụ của luồng công việc với các chương trình hay ứng dụng, sẽ thực sự thực thi các hoạt động/nhiệm vụ đó. Đồng thời nó cũng quản lý việc trao đổi các thông tin vào/ra của các chương trình hay ứng dụng thực thi đó với các hoạt động/nhiệm vụ tương ứng, nhằm cụ thể hóa các loại thông tin mà luồng công việc cần biểu diễn. - Khía cạnh hành vi: Khía cạnh này biểu diễn các ràng buộc cho các luồng điều khiển giữa các nhiệm vụ. Bên cạnh các luồng điều khiển cơ bản như: tuần tự, rẽ nhánh và lặp, các tiến trình nghiệp vụ còn yêu cầu các luồng điều khiển nâng cao khác như: AND-split, AND-join (hay đồng bộ), OR-split, OR-join [98]. Định nghĩa B-2. Luồng công việc: được định nghĩa trong [2], như sau: “Là mô hình được biểu diễn trên máy tính của tiến trình nghiệp vụ, nhằm đặc tả tất cả các tham số liên quan để hoàn thành tiến trình này." Như đã trình bày ở trên, một tiến trình nghiệp vụ bao gồm nhiều khía cạnh. Vì một luồng công việc là một mô hình hay một biểu diễn cho một tiến trình nghiệp vụ. Tuy nhiên, do các nguyên nhân lý thuyết và thực hành, chỉ một loại luồng công việc không thể biểu diễn được đầy đủ hết tất cả các khía cạnh của tiến trình nghiệp vụ. Bởi vì nếu có một loại luồng công việc như thế, sẽ phải là sự tổng hợp của rất nhiều các kỹ thuật mô hình hóa khác nhau cho các khía cạnh khác nhau của tiến trình nghiệp vụ. Như thế sẽ trở nên quá phức tạp đến mức không còn hữu dụng. Do đó, tương tự như trong nhiều lĩnh vực cần sự mô hình hóa, một tiến trình nghiệp vụ cần được biểu diễn bằng nhiều luồng công việc khác nhau, trong đó mỗi luồng sẽ biểu diễn một hay một số ít khía cạnh liên quan chặt chẽ của tiến trình nghiệp vụ. Đó là lý do các nghiên cứu của luận án chọn hai ngôn ngữ luồng công việc là BPMN và BPEL, thuộc hai kiểu ngôn ngữ khác nhau, để có khả năng biểu diễn đầy đủ các khía cạnh của tiến trình nghiệp vụ, (được gọi là kế hoạch trong khung cộng tác được đề xuất trong 152 luận án). Chi tiết về hai ngôn ngữ luồng công việc này sẽ được trình bày chi tiết hơn trong phần sau. B.2 Các ngôn ngữ luồng công việc Phân loại ngôn ngữ luồng Thành phần trung tâm của mọi WMS là ngôn ngữ luồng công việc (WL - workflow language). Có nhiều cách tiếp cận khác nhau trong việc mô hình hóa và thực thi các luồng công việc và điều này cũng dẫn đến nhiều loại ngôn ngữ luồng công việc khác nhau. Ví dụ để cho phép người dùng mô hình hóa các luồng công việc, thường yêu cầu các ngôn ngữ luồng công việc cần có tính trực quan và dễ sử dụng, thường được biểu diễn bằng đồ thị. Để thực thi luồng công việc, việc sử dụng các ngôn ngữ kịch bản (văn bản) lại phù hợp hơn. Do đó trong các WMS đầy đủ có hỗ trợ cả mô hình hóa và thực thi các luồng công việc, thường có thể có nhiều mức biểu diễn các luồng công việc, từ mức trừu tượng (sử dụng đồ thị) cho đến mức chi tiết thực thi (sử dụng kịch bản). Hơn nữa, việc chuyển từ biểu diễn trừu tượng sang các kịch bản thường được làm tự động hoặc bán tự động. Có hai hướng tiếp cận đang được các WL sử dụng phổ biến hiện nay là hướng luồng dữ liệu và hướng tiến trình: - Các WL hướng luồng dữ liệu: đại diện cho cách tiếp cận này là ngôn ngữ SCUFL (Simple Conceptual Unified Flow Language) được sử dụng trong hệ quản trị luồng công việc Taverna [54]. Trong cách tiếp cận này, việc biểu diễn các luồng dữ liệu và biến đổi chúng là trọng tâm của luồng. Trong Hình B-2 minh họa việc sử dụng SCUFL để mô hình hóa một luồng công việc trong Taverna, được lấy từ một ví dụ trong bộ mẫu các luồng công việc của Taverna phiên bản 2.3 [92]. Trong hình này ta có thể thấy các dữ liệu vào sẽ bắt đầu được đưa vào thông qua các Workflow Input (luồng dữ liệu vào, cụ thể là ID và namespace), sau đó chúng sẽ được xử lý bằng các processor (bộ xử lý). Giữa các processor với nhau và với các thành phần dữ liệu được nối với nhau bằng các liên kết dữ liệu. Cuối cùng, các dữ liệu xử lý xong sẽ được đưa ra các luồng dữ liệu ra. Cách biểu diễn hướng luồng dữ liệu này rất thích hợp và dễ dàng cho những người dùng không có nhiều kinh nghiệm và kiến thức về tin học, vì không yêu cầu người dùng phải biểu diễn tường minh các cơ chế điều khiển và hoạt động phức tạp của luồng (như trình tự thu thập dữ liệu, các cơ chế xử lý song song,v.v). Thông thường, thứ tự thực thi của các processor chủ yếu được xác định dựa vào sự sẵn sàng của các luồng dữ liệu vào. Bất kỳ processor nào mà có các luồng dữ liệu vào đã sẵn sàng thì đều được xếp lịch để thực thi. Các cơ chế xếp lịch này sẽ được ngầm cài đặt bởi workflow engine là thành phần chịu trách nhiệm dịch và thực thi các mô hình luồng mà người dùng đã thiết kế. Do đó, các hoạt động song song của các processor độc lập cũng là ngầm định do các engine này quản lý. 153 Hình B-2. Một workflow được biểu diễn trong Taverna - Các WL hướng tiến trình: đại diện cho cách tiếp cận này là ngôn ngữ BPEL (Business Process Execution Language). Trái với các WL hướng luồng dữ liệu, thứ tự hoạt động của các bộ xử lý (hay còn gọi là các hoạt động) cần được định nghĩa tường mình bằng các luồng điều khiển. Đặc biệt là các thực thi song song của các bộ xử lý độc lập cũng cần phải được đặc tả rõ ràng. Ngôn ngữ này sẽ được trình bày chi tiết hơn ở phần sau. Các ngôn ngữ luồng công việc cho lưới GSFL GSFL (Grid Service Flow Language) [97] là một trong số những ngôn ngữ luồng được đề xuất đầu tiên cho môi trường lưới. Mục tiêu phát triển của GSFL là kế thừa các kết quả đã có trong các hệ thống luồng, có thể sáng tác các luồng mới từ các Web Service hiện có, để từ đó tạo ra một hệ thống luồng có thể hỗ trợ việc sáng tác các luồng mới từ các Grid Service. Việc phát triển GSFL cũng nhằm mục đích tương thích với chuẩn OGSA (Open Grid Service Architechture). Trong [97] đã đưa ra một số phân tích các yêu cầu riêng biệt của luồng công việc trong môi trường lưới, so với môi trường Dịch vụ Web thông thường. Một số yêu cầu đó là: - Đặc tả của luồng công việc cho lưới cần phải cho phép bản thân luồng công việc được xuất ra như là một dịch vụ (Dịch vụ web hoặc Dịch vụ lưới), và nó cũng có thể được mô tả bằng cách tương như các loại dịch vụ đó. Điều này sẽ cho phép dễ dàng tạo ra các luồng công việc cho lưới một cách đệ quy. 154 - Bản thân luồng công việc cho lưới cần hỗ trợ cơ chế cho phép các dịch vụ thành phần có thể trao đổi dữ liệu/thông báo trực tiếp với nhau mà không cần luồng công việc đóng vai trò trung chuyển các dữ liệu này. Điều này rất quan trọng, nhất là trong môi trường lưới, vì kích thước dữ liệu trao đổi thường khá lớn, nên nếu thiếu cơ chế trao đổi trực tiếp này giữa các dịch vụ, bản thân luồng công việc rất dễ trở thành điểm “cổ chai” cho các dịch vụ thành phần và đồng thời cũng giảm đáng kể khả năng thực thi song song của các dịch vụ này. Trong OGSA có sử dụng các cơ chế notificationSources và notificationSinks để giải quyết vấn đề này, nên các ngôn ngữ luồng công việc cho lưới cũng nên hỗ trợ các cơ chế này. Tuy nhiên trong [97], một yêu cầu khá quan trọng của các ngôn ngữ luồng công việc cho lưới là khả năng hỗ trợ gọi các dịch vụ lưới lại không được đề cập đến, chủ yếu chỉ tận dụng khả năng gọi các dịch vụ web mà đã được các ngôn ngữ luồng trước đó hỗ trợ như XLANG và WSFL. Ngoài ra, dường như còn thiếu các cài đặt hoàn chỉnh để từ đó đánh giá được hiệu quả thực thi và tính thực tế của ngôn ngữ này. A-GWL A-GWL (viết tắt của Abstract Grid Workflow Language) [37] là một ngôn ngữ luồng ở mức cao nhằm để mô tả các luồng ở mức logic trừu tượng. Ngôn ngữ này dựa trên lược đồ hoạt động của ngôn ngữ UML, là một ngôn ngữ mô hình hóa hướng đối tượng hiện đang được sử dụng rất rộng rãi. Luồng có thể được tạo ra từ UML, và sau đó nó có thể được tự động chuyển sang A-GWL bằng một công cụ gọi là Teuta [82]. Ưu điểm của ngôn ngữ này là sự kế thừa khả năng biểu diễn phong phú của lược đồ hoạt động của UML, trong đó đã cung cấp khá đầy đủ các thành phần để biểu diễn các loại luồng công việc ở nhiều mức trừu tượng khác nhau, như các cấu trúc điều khiển luồng (tuần tự và cả song song), các luồng dữ liệu, các cơ chế đồng bộ hóa giữa các hoạt động và cả cơ chế gửi tin nhắc để cho phép các dịch vụ trực tiếp gửi thông tin cho nhau (nhất là gửi dữ liệu kích thước lớn), không cần phải qua một trung tâm điều phối (như workflow engine). Tuy nhiên, A-GWL mới chỉ dừng ở mức mô tả được các luồng công việc ở mức trừu tượng và nó còn thiếu khả năng chuyển đổi sang các ngôn ngữ chi tiết hơn để có thể thực thi được luồng công việc đã được mô hình hóa. GWEL Grid Workflow Execution Language (GWEL) là một ngôn ngữ luồng công việc nhằm hỗ trợ trực tiếp cho việc kết hợp các dịch vụ lưới [26]. Tuy nhiên, nghiên cứu này mới dừng ở các ý tưởng khái quát, còn nhiều chi tiết như cú pháp của ngôn ngữ, phương pháp kết nối với các dịch vụ lưới như thế nào,v.v vẫn chưa được đề cập đến. Trong [103], các tác giả đưa ra một khảo sát và phân loại chi tiết hơn về các hệ thống và ngôn ngữ luồng công việc cho môi trường lưới. Trong số các ngôn ngữ luồng công việc, có 155 hai ngôn ngữ được luận án lựa chọn để biểu diễn cho các kế hoạch trong khung cộng tác, đó là BPMN và BPEL. Phần tiếp theo sẽ tóm tắt một số nội dung chính của hai ngôn ngữ này. B.3 BPEL và BPMN BPEL Giới thiệu Các nỗ lực xây dựng dịch vụ Web nhằm đạt được sự tương thông giữa các ứng dụng có sử dụng các tiêu chuẩn WEB. Với mục tiêu đó, một mô hình tích hợp nối kết lỏng lẻo đã được dịch vụ WEB sử dụng để cho phép có sự tích hợp linh hoạt giữa các hệ thống không đồng nhất thuộc các lĩnh vực ứng dụng khác nhau. Với các đặc tả cho dịch vụ WEB như SOAP, WSDL, UDDI, các ứng dụng khác nhau có thể tìm kiếm nhau và tương tác lẫn nhau theo một mô hình nối kết lỏng lẻo và độc lập với hạ tầng mà chúng đang chạy. Tuy nhiên, việc tích hợp hệ thống đòi hỏi thêm những khả năng khác chứ không chỉ là những tương tác đơn giản như trong mô hình dịch vụ Web. Mô hình này chủ yếu hỗ trợ các tương tác theo kiểu hỏi-đáp không có thông tin trạng thái, hoặc các tương tác một chiều không có sự liên hệ. Các ứng dụng và các tiến trình nghiệp vụ trong thực tế yêu cầu các tương tác phức tạp, và do đó chúng yêu cầu cần có sự hỗ trợ của các mô hình tích hợp các tiến trình nghiệp vụ chuẩn hóa và linh hoạt [68]. Mô hình cho các tương tác nghiệp vụ thường đòi hỏi dãy các trao đổi thông báo ngang hàng, theo kiểu hỏi-đáp hoặc một chiều có thông tin trạng thái và tương tác trong một thời gian lâu dài giữa hai hay nhiều đối tác tham gia. Do vậy, một mô tả hình thức cho các giao thức trao đổi thông báo như vậy là cần thiết để định nghĩa các tương tác nghiệp vụ được sử dụng trong các tiến trình nghiệp vụ. WS-BPEL (Web Services - Business Process Execution Language) được ra đời chính là nhằm mục đích này. Nó là một ngôn ngữ tiêu chuẩn cho phép định nghĩa các tiến trình nghiệp vụ mới thông qua việc kết hợp và tương tác của các tiến trình nghiệp vụ (hay các dịch vụ) hiện có. Khởi đầu nó có cái tên là BPEL for Web services, BPEL4WS, rồi sau đó chuyển thành WS-BPEL. Gần đây, BPEL đang trở thành một trong các ngôn ngữ chuẩn hóa thông dụng để cấu thành các Web service. BPEL có thể được dùng để định nghĩa hai loại tiến trình: trừu tượng và khả thi. Một tiến trình trừu tượng chủ yếu hướng tới khía cạnh nghiệp vụ không quan tâm làm cho nó có thể thực thi được, và nó sẽ được khai báo tường minh là “abstract”. Trong khi đó, tiến trình khả thi sẽ được đặc tả chi tiết và đầy đủ để nó có thể thực thi được. WS-BPEL định nghĩa một mô hình và một cú pháp nhằm mô tả hành vi của một tiến trình nghiệp vụ dựa trên sự tương tác giữa nó và các đối tác. Những tương tác này xuất hiện thông qua các giao diện dịch vụ Web và cấu trúc của quan hệ này tại mức giao diện được đóng gói trong một đối tượng được gọi là liên kết đối tác. Tiến trình BPEL sẽ xác định 156 những tương tác với các đối tác này sẽ được phối hợp như thế nào để đạt được mục tiêu về nghiệp vụ, cũng như các trạng thái và lôgic cần thiết cho sự phối hợp này. Ngoài ra, WS-BPEL cũng đưa vào những cơ chế để giải quyết các trường hợp ngoại lệ và xử lý lỗi, cũng như cơ chế bồi thường cho các hoạt động nghiệp vụ trong trường hợp xuất hiện ngoại lệ hay khi có yêu cầu từ đối tác. Các mục tiêu thiết kế của BPEL Ban đầu khi thiết kế BPEL (lúc đó còn được gọi là BPEL4WS (BPEL For Web Services)), các nhà thiết kế đã đề ra mười mục tiêu cho nó [33]: - Mục tiêu 1: BPEL4WS định nghĩa các tiến trình nghiệp vụ mà tương tác với các thực thể bên ngoài thông qua các thao tác của dịch vụ WEB được định nghĩa bởi chuẩn WSDL 1.1 và bản thân chúng cũng được biểu diễn như là các dịch vụ WEB được định nghĩa bởi WSDL 1.1. Những tương tác này là “trừu tượng” theo nghĩa là các phụ thuộc là ở định nghĩa ở portType, chứ không phải là ở định nghĩa ở port. - Mục tiêu 2: BPEL4WS định nghĩa các tiến trình nghiệp vụ sử dụng ngôn ngữ dạng XML (XML based language). BPEL4WS không quan tâm đến những biểu diễn đồ thị của các tiến trình, cũng như không xác định phương pháp luận cụ thể nào cho các tiến trình. - Mục tiêu 3: BPEL4WS nên định nghĩa một tập các khái niệm về sự phối hợp các dịch vụ WEB như là một phương tiện sẽ được sử dụng bởi cả hai loại khung nhìn bên ngoài (trừu tượng) và bên trong (khả thi) của tiến trình nghiệp vụ. - Mục tiêu 4: BPEL4WS nên cung cấp cả hai chế độ điều khiển là theo kiểu phân cấp và theo kiểu đồ thị và cho phép sử dụng trộn lẫn cả hai cách này một cách liền mạch nhất. Điều này sẽ giúp giảm được sự phân mảnh của không gian mô hình hóa tiến trình. - Mục tiêu 5: BPEL4WS cung cấp các một cách giới hạn các hàm thao tác dữ liệu sao cho chúng đủ để thực hiện các thao tác dữ liệu đơn giản cho việc định nghĩa các dữ liệu liên quan đến tiến trình và các luồng điều khiển. - Mục tiêu 6: BPEL4WS nên hỗ trợ một cơ chế định danh cho các thể hiện của tiến trình mà cho phép xác định định danh của thể hiện tiến trình tại mức thông báo ứng dụng. Định danh của thể hiện nên do đối tác định nghĩa và có thể thay đổi theo thời gian. - Mục tiêu 7: BPEL4WS nên hỗ trợ việc sinh ra và kết thúc ngầm định các thể hiện của tiến trình như một cơ chế quản lý vòng đời cơ bản. Các thao tác quản lý vòng đời nâng cao như tạm dừng, hồi phục có thể được bổ sung trong các phiên bản sau. - Mục tiêu 8: BPEL4WS nên định nghĩa một mô hình giao tác thực thi trong thời gian dài mà dựa trên các kỹ thuật đã được kiểm chứng qua thực tiễn như hành động bù đắp và phân phạm vi nhằm hỗ trợ việc khắc phục sự cố cho các phần của các tiến trình nghiệp vụ thực thi trong thời gian dài. 157 - Mục tiêu 9: BPEL4WS nên sử dụng dịch vụ WEB như là mô hình để tách và ghép các tiến trình. Kết hợp cách tiếp cận này với chuẩn WS-Policy sẽ làm mô hình này mạnh mẽ hơn. - Mục tiêu 10: BPEL4WS nên được xây dựng dựa trên các chuẩn dịch vụ WEB tương thích và các đề xuất tiêu chuẩn một cách tối đa theo cách modul và có thể kết hợp được. Chỉ trong trường hợp chưa có chuẩn hoặc đề xuất phù hợp, một đặc tả tương ứng mới cần được phát triển như một đặc tả của BPEL4WS hoặc một đề xuất tiêu chuẩn Dịch vụ WEB riêng biệt. Các khái niệm cơ bản Có hai cách tiếp cận trong việc cấu thành các dịch vụ Web: orchestration và choreography. Theo cách orchestration, chỉ một dịch vụ đóng vai trò là dịch vụ chính sẽ gọi các dịch vụ khác. Thế nên, chỉ dịch vụ chính này biết về trình tự các activity, trạng thái của các yêu cầu và trả lời của các dịch vụ được gọi. Ngược lại, trong cách choreography không có dịch vụ chính. Sự phản ứng giữa các dịch vụ do cơ chế điều phối hỗ trợ. BPEL hiện nay chỉ hỗ trợ cách orchestration. Trong BPEL, dịch vụ chính này được gọi là tiến trình nghiệp vụ (Business Process, BP) và các dịch vụ khác được gọi là đối tác. Có hai loại đối tác trong BPEL: đối tác được gọi là đối tác được gọi bởi dịch vụ chính và đối tác client là đối tác sẽ gọi dịch vụ chính. Mối liên kết tiềm tàng giữa một đối tác và một BP được gọi là liên kết đối tác (Partner Link, PL). Giao diện giữa một tiến trình và một đối tác là thông qua một portType mà đề xuất các thao tác. BPEL hỗ trợ hai lớp thao tác: input-only và input-output. Cấu tạo của một tiến trình BPEL Các thành phần chính của một tiến trình nghiệp vụ được mô tả trong Hình B-3 Hình B-3. Các thành phần chính của một tiến trình nghiệp vụ Trong Hình B-4 đưa ra một tiến trình nghiệp vụ cụ thể thực hiện việc giải một phương trình bậc 2. 158 Hình B-4. Tiến trình BPEL giải phương trình bậc 2. Các BPEL engine BPEL engine là một phân hệ phần mềm có nhiệm vụ thực thi các tiến trình nghiệp vụ được biểu diễn bằng BPEL. Phân hệ này thường được tích hợp trong những hệ thống phần mềm có hỗ trợ BPEL. Phần này sẽ giới thiệu tóm tắt về ba loại BPEL engine đang được sử dụng rộng rãi hiện nay là ActiveBPEL engine, BPEL engine trong JBI và ODE engine của Apache. ActiveBPEL engine Phiên bản 5.0 mới nhất của engine này là cài đặt mã nguồn mở cho BPEL engine, được viết bằng JAVA. Nó hỗ trợ cả hai chuẩn BPEL4WS 1.1 và WS-BPEL 2.0. Một trong những nhược điểm của engine này là quá trình khai thác các tiến trình BPEL không được tự động và rất phức tạp trong việc tạo tệp khai thác. BPEL engine trong JBI Engine này chỉ được tích hợp trong môi trường phát triển ứng dụng Netbeans. Một trong những hạn chế lớn nhất của engine này hiện nay là nó chỉ hỗ trợ chuẩn BPEL4WS 1.1 mà không có hỗ trợ cho chuẩn WS-BPEL 2.0. ODE engine ODE Engine (Orchestration Director Engine) là một BPEL engine mã nguồn mở của Apache. Phiên bản mới nhất hiện nay là 1.3 có nhiều đặc tính quan trọng như: - Hỗ trợ cả hai chuẩn BPEL4WS 1.1 và WS-BPEL 2.0. - Hỗ trợ 2 lớp truyền thông: Web service http transport của Axis2 và ServiceMix của JBI. 159 - Nó có thể được tích hợp dễ dàng với gần như tất cả các lớp truyền thông nhờ giao diện API với engine. - Cho phép việc khai thác nhanh các tiến trình BPEL. Điều này có nghĩa là chỉ cần sao chép các tệp cần thiết vào thư mục khai thác (do engine quy định trước), sau đó engine đang chạy sẽ tự động phát hiện ra các tệp này, rồi dịch và làm chúng sẵn sàng cho việc sử dụng. Bản ODE hiện nay không nhận ra tất cả các thông tin cần thiết được gửi đến từ các tiến trình BPEL và cũng không hỗ trợ việc gọi các dịch vụ lưới. Chương 4 sẽ khảo sát vấn đề này một cách chi tiết hơn và đưa ra giải pháp của luận án. BPMN Giới thiệu BPMN (đầu tiên được gọi là “Business Process Modeling Notation” trong phiên bản 1 [69]. Sang phiên bản 2, nó được đổi thành “Business Process Model & Notation” [70]) là một hệ thống ký hiệu sử dụng đồ họa, dùng để mô hình hóa các tiến trình nghiệp vụ. Nó được phát triển bởi BPMI (Business Process Management Initiative) và OMG (Object Management Group) với mục đích chính là tạo ra một hệ thống ký hiệu thống nhất và dễ hiểu cho tất cả những người sử dụng các tiến trình nghiệp vụ, từ những người phân tích nghiệp vụ bắt đầu tạo ra bản phác thảo cho tiến trình nghiệp vụ, cho đến những người phát triển các công nghệ để cài đặt việc thực thi các tiến trình nghiệp vụ đó. BPMN cũng hướng đến mục tiêu có thể tạo ra các tiến trình tự động mà có thể được thực thi trên máy tính, qua việc hỗ trợ tối đa khả năng chuyển đổi thành các tiến trình nghiệp vụ được biểu diễn bằng BPEL [99]. Hiện nay, BPMN đã được chuẩn hóa và được hỗ trợ của hơn 70 công ty trên thế giới, trong đó có nhiều công ty lớn. Trong hệ thống được xác định trong luận án, BPMN được lựa chọn làm công cụ để xây dựng các kế hoạch (plan), vì vai trò của các kế hoạch chính là các tiến trình nghiệp vụ ở dạng khởi đầu. Các loại mô hình trong BPMN Từ phiên bản 2, BPMN hỗ trợ ba loại mô hình: - Tiến trình (hay Orchestration): loại mô hình này lại có thể bao gồm ba loại:  Tiến trình nghiệp vụ riêng tư không thực thi được.  Tiến trình nghiệp vụ riêng tư thực thi được.  Tiến trình nghiệp vụ công. - Choreographies - Tiến trình nghiệp vụ cộng tác Ví dụ về các loại mô hình trên được cho trong các Hình B-5 – B-8 [70]. 160 Hình B-5. Tiến trình nghiệp vụ riêng tư. Hình B-6. Tiến trình nghiệp vụ công. Hình B-7. Choreography. 161 Hình B-8. Tiến trình nghiệp vụ cộng tác Các thành phần cơ bản của BPMN Thành phần cơ bản nhất của BPMN là các “biểu đồ tiến trình nghiệp vụ” (Business Process Diagram - BPD). Nó là một loại lưu đồ được điều chỉnh để mô hình hóa các tiến trình nghiệp vụ. Một BPD được cấu thành từ nhiều phần tử đồ họa. Có khá nhiều phần tử đồ họa trong BPMN và được chia làm năm nhóm: - Các đối tượng luồng - Dữ liệu - Các đối tượng kết nối - Các làn (Swimlanes) - Các ký hiệu gia công (Artifacts) Các đối tượng luồng Gồm có ba đối tượng cơ bản nhất của BPD là Event, Activity và Gateway (xem Hình B-9). Hình B-9. Các loại đối tượng luồng cơ bản - Sự kiện: được biểu diễn bởi hình tròn, biểu thị cho điều gì đó xảy ra trong quá trình hoạt động của tiến trình nghiệp vụ, và gây ảnh hưởng đến luồng hoạt động này. Có ba loại sự kiện: Bắt đầu, Trung gian và Kết thúc. 162 - Hoạt động: là thuật ngữ chung để biểu thị cho công việc cần được thực hiện. Nó được biểu diễn bởi hình chữ nhật có góc tròn. Có hai loại Hoạt động là Nhiệm vụ là loại hoạt động nguyên tố và Tiến trình con là loại hoạt động phức mà bên trong có chức các hoạt động khác. - Rẽ nhánh: được dùng để biểu diễn việc hợp hay tách các luồng hoạt động. Nó được biễu diễn bởi một hình thoi. Có khá nhiều loại gateway được cung cấp trong BPMN nhằm biểu diễn nhiều cách điều khiển các luồng khác nhau (xem Hình B- 10). Hình B-10. Các loại gateway trong BPMN Dữ liệu Có bốn phần tử dữ liệu trong BPMN (xem B-11 cho cách ký hiệu các phần tử): - Đối tượng dữ liệu: biểu diễn thông tin được các hoạt động sử dụng để thực thi được hoặc kết quả chúng tạo ra - Dữ liệu vào: biểu diễn dữ liệu đầu vào cho các tiến trình - Dữ liệu ra: biểu diễn dữ liệu đầu ra cho các tiến trình - Kho dữ liệu: biểu diễn dữ liệu cần được lưu trữ. 163 Hình B-11. Các loại phần tử dữ liệu Các đối tượng kết nối Khi các đối tượng luồng cần kết nối với nhau, chúng sẽ sử dụng các đối tượng kết nối. Có ba loại đối tượng kết nối là: Luồng tuần tự, luồng thông báo và liên kết (xem hình B-12). Hình B-12. Các loại đối tượng kết nối cơ bản Các làn Các làn là công cụ cho phép tổ chức hay chia các hoạt động trong tiến trình thành các nhóm. Có hai loại làn trong BPMN là Pool và Lane (xem Hình B-13): - Pool: là công cụ cho phép chia các tiến trình theo nhóm các thành viên. Mỗi Pool sẽ đại diện cho một thành viên trong tiến trình. - Lane: là công cụ phân chia bên trong Pool. Tức là mỗi Pool có thể bao gồm một hoặc nhiều Lane. 164 Hình B-13. Các loại Làn Các ký hiệu gia công (Artifacts) Ngoài các kí hiệu cơ bản ở trên, BPMN còn cho phép người mô hình và các công cụ phát triển mở rộng thêm các thành phần ký hiệu mới và chúng được gọi là các ký hiệu gia công. Có hai loại ký hiệu gia công đã được định nghĩa trước trong BPMN là Nhóm và Chú thích (xem Hình B-14). Hình B-14. Các ký hiệu gia công đã được định nghĩa sẵn. Một số công cụ hỗ trợ BPMN - Bonita Open Solution: Bonita Open Solution phiên bản 5 một môi trường hỗ trợ BPMN2, mã nguồn mở, là sản phẩm của hãng BonitaSoft [23]. - jBPM: jBPM [46] là sản phẩm mã nguồn mở của Jboss. - Activity BPM 165 PHỤ LỤC C: AXIS 2 Axis2 [4] là phiên bản mới của Axis (Apache eXtensible Interaction System), là một SOAP engine và một công cụ phần sụn của dịch vụ Web. Nó là một hệ thống quản lý thông báo SOAP với thiết kế kiến trúc kiểu modul. Khung Axis2 (Axis2 Framework) được xây dựng dựa trên bẩy modul cốt lõi. Các module khác không phải cốt lõi được phân lớp trên đỉnh của các modul cốt lõi này [4]. Trong số bẩy modul cốt lõi, có hai modul Xử lý XML và Xử lý SOAP là có quan hệ đến nghiên cứu của luận án. - Modul xử lý XML: xử lý các thông báo SOAP là nhiệm vụ quan trọng nhất và phức tạp nhất trong Axis2 và hiệu quả của nó là nhân tố quan trọng nhất quyết định hiệu năng. Axis2 sử dụng mô hình AXIOM (AXis Object Model) để cung cấp một giao diện lập trình ứng dụng (API) đơn giản nhằm tăng cường hiệu năng xử lý SOAP và XML của Axis2 so với Axis. - Modul xử lý SOAP: modul này kiểm soát thứ tự thực thi các xử lý. Bên cạnh việc định nghĩa sẵn các pha thực thi khác nhau, modul này cũng hỗ trợ khả năng có thể mở rộng bằng cách cho phép người sử dụng mở rộng Mô hình Xử lý tại các vị trí plug-in đặc biệt. Mô hình Xử lý SOAP được minh họa trong Hình C-1. Hình C-1. Mô hình Xử lý SOAP của Axis2 Hai hoạt động cơ bản của một bộ xử lý SOAP là gửi và nhận các thông báo SOAP. Để hỗ trợ các hoạt động này, kiến trúc trên cung cấp hai pipe (hay luồng xử lý thông báo) được gọi là In Pipe (pine nhập) và Out Pipe (pipe xuất). Cài đặt cho hai pipe này là do định nghĩa của hai phương thức (methods) send() và receive() trong Axis2 engine. Khả năng có thể mở rộng của mô hình xử lý SOAP được cung cấp bởi các handler. Khi xử lý một thông báo SOAP, chỉ có các handler mà đã được đăng ký mới được thực thi. Axis2 hỗ trợ ba phạm vi mà các handler có thể đăng ký vào là toàn cục, dịch vụ hoặc thao 166 tác. Chuỗi handler cuối cùng sẽ được tính toán bằng việc tổng hợp các handler từ tất cả các phạm vi. Hoạt động như các bộ chặn, các handler xử lý các bộ phận của thông báo SOAP và cung cấp các dịch vụ bổ sung. Các giai đoạn khác nhau của pipe được gọi là pha (phase), mà cung cấp một cơ chế nhằm xác định trật tự của các handler. Một handler luôn chạy trong một pha chuyên biệt. Cả hai pipe đều có các pha được xây dựng sẵn, cũng như các chỗ dành cho “các pha của người dùng”, đến người dùng có thể định nghĩa.

Các file đính kèm theo tài liệu này:

  • pdfluanan_binh_final_2898_058.pdf