MỞ ĐẦU Quy trình nghiệp vụ đóng một vai trò then chốt để doanh nghiệp có thể quản lý và vận hành một cách nhịp nhàng, đạt hiệu quả cao. Có thể khẳng định, một doanh nghiệp xây dựng đƣợc quy trình tốt sẽ phát triển bền vững và có tính cạnh tranh cao hơn Để có thể triển khai thì trƣớc tiên quy trình nghiệp vụ phải đƣợc mô hình hóa. Mô hình hóa quy trình nghiệp vụ không những đƣợc sử dụng trong việc trao đổi các yêu cầu giữa chuyên gia nghiệp vụ và chuyên gia hệ thống mà còn đƣợc sử dụng để cài đặt hệ thống thực tế. Các quy trình nghiệp vụ hiện đại thƣờng kết hợp các tác vụ của con ngƣời với các tác vụ tự động (ví dụ, đƣợc cài đặt bởi webservice), nên ngôn ngữ mô hình hóa quy trình nghiệp vụ cần phải thu hẹp khoảng cách giữa giữa chuyên gia nghiệp vụ và chuyên gia hệ thống [2].
Mô hình hóa quy trình nghiệp vụ thƣờng tập trung vào mô hình hóa chính xác chức năng của quy trình mà bỏ qua các yêu cầu về an ninh. Nguyên nhân chủ yếu là do thực tế rằng các chuyên gia trong lĩnh vực quy trình nghiệp vụ không phải là chuyên gia về an ninh. Các yêu cầu về an ninh thƣờng xuyên đƣợc xem xét sau khi định nghĩa hệ thống. Cách tiếp cận này dẫn đến các lỗ hổng an ninh và rõ ràng cần thiết phải tăng cƣờng nỗ lực an ninh trong các giai đoạn trƣớc phát triển do việc sửa lỗi sẽ hiệu quả và tiết kiệm chi phí hơn.
Các nghiên cứu thực nghiệm cho thấy tại mức thiết kế quy trình nghiệp vụ thì khách hàng và ngƣời dùng cuối có thể biểu diễn các yêu cầu an ninh của họ và sau đó có thể thể hiện tại mức cao, các yêu cầu an ninh dễ dàng xác định bởi ngƣời mô hình hóa quy trình nghiệp vụ [2]. Các yêu cầu an ninh có thể đƣợc mô hình hóa trong quy trình nghiệp vụ và cần thiết phải xem xét các yêu cầu an ninh này trong bất kì ứng dụng nào tại mức độ trừu tƣợng cao nhất. Một trong các yêu cầu an ninh là điều khiển truy nhập tức là kiểm soát việc truy cập và thực hiện các hành động trên các nguồn tài nguyên hệ thống đƣợc đƣợc bảo vệ. Tuy nhiên, các nền tảng cho phép mô hình hóa quy trình nghiệp vụ hiện nay nhƣ Oracle BPM, Acitivi BPM đều chƣa tích hợp đầy đủ điều khiển truy cập theo vai trò RBAC [5].
Chính vì vậy, tôi xin chọn đề tài “Mở rộng công cụ Activiti cho đặc tả và cài đặt chính sách an ninh”. Trong luận văn, tôi đã trình bày một phƣơng pháp tích hợp chính sách an ninh RBAC vào quy trình nghiệp vụ BPM bằng cách mở rộng tiêu chuẩn BPMN cho đặc tả các chính sách an ninh [2], đồng thời ứng dụng của phƣơng pháp này vào việc mở rộng công cụ Activiti BPM cho đặc tả và cài đặt RBAC dựa vào [5]. Kết quả cụ thể đạt đƣợc: thứ nhất, tích hợp các chính sách RBAC vào pha mô hình hóa để các yêu cầu an ninh có thể đƣợc xem xét ngay từ đầu. Thứ hai, đã kiểm tra các chính sách đó tại pha thực thi để đảm bảo an toàn an ninh cho hệ thống.
1 TIEU LUAN MOI download : skknchat@gmail.com Về phần bố cục, luận văn đƣợc chia thành 3 chƣơng chính nhƣ sau: Chƣơng 1. Kiến thức nền tảng : Trình bày cơ sở lý thuyết và các công nghệ chính đƣợc sử dụng trong luận văn. Bao gồm: Mô hình hóa chuyên biệt miền, mô hình hóa đặc tả chính sách truy cập RBAC, mô hình hóa quy trình nghiệp vụ và cuối cùng, giới thiệu về công cụ mã nguồn mở Activiti BPM Chƣơng 2. Tích hợp mô đun chính sách truy cập RBAC với Activiti : Trình bày phƣơng pháp tích hợp chính sách an ninh vào quy trình nghiệp vụ và ứng dụng của phƣơng pháp vào việc tích hợp chính sách truy cập RBAC vào Activiti BPM Chƣơng 3.
Cài đặt và thực nghiệm : Trình bày bài toán vận tải hiện đang đƣợc triển khai tại Trung tâm Tƣ vấn Thiết kế Mobifone, ứng dụng kết quả của luận văn để giải quyết bài toán và cài đặt trên Activiti BPM. Cuối cùng là các kết quả đạt đƣợc. 2 TIEU LUAN MOI download : skknchat@gmail.com CHƢƠNG 1. KIẾN THỨC NỀN TẢNG 1.
Giới thiệu chƣơng Chƣơng này sẽ trình bày cơ sở lý thuyết và các công nghệ chính đƣợc sử dụng trong luận văn. Bao gồm ba nội dung chính là: Mô hình hóa chuyên biệt miền: các khái niệm và kiến trúc của DSM; cú pháp và ngữ nghĩa của một ngôn ngữ mô hình hóa chuyên biệt miền DMSL. Mô hình hóa và đặc tả chính sách truy cập RBAC: các khái niệm cơ bản về Core RBAC và ràng buộc phân quyền. Từ đó, xây dựng mô hình metamodel cho RBAC.
Mô hình hóa và thực thi quy trình nghiệp vụ với Activiti BPM: khái niệm, thành phần, vòng đời và tiêu chuẩn ký hiệu BPMN của quy trình nghiệp vụ. Cuối cùng, giới thiệu công cụ mã nguồn mở Activti BPM cho việc mô hình hóa và thực thi quy trình nghiệp vụ một cách tự động. Mô hình hóa chuyên biệt miền Các hệ thống phần mềm hiện nay ngày càng trở nên phức tạp, muốn cải thiện hiệu suất phát triển phần mềm không chỉ tốc độ mà còn chất lƣợng hệ thống đƣợc tạo ra, các nhà nghiên cứu đã cố gắng tìm ra một phƣơng pháp tự động chuyển từ mô hình sang code. Do đó, mô hình hóa chuyên biệt miền (DSM) đã ra đời.
DSM sử dụng một ngôn ngữ mô hình hóa chuyên biệt miền (DSML) để sinh code đầy đủ từ mô hình và code đƣợc sinh ra có ít lỗi hơn là code viết bằng tay [6]. Khái niệm DSM chủ yếu tập trung vào hai vấn đề. Đầu tiên, nâng cao mức độ trừu tƣợng trên cả lập trình bằng cách xác định một ngôn ngữ trực tiếp sử dụng các khái niệm và các luật từ miền vấn đề cụ thể. Thứ hai, tạo ra sản phẩm cuối cùng trong một ngôn ngữ lập trình đã chọn hoặc một hình thức khác từ các đặc tả mức cao đó.
Thông thƣờng, bộ sinh code tiếp tục đƣợc hỗ trợ bởi một số nền tảng (framework). Tự động hóa phát triển phần mềm có thể trở nên phổ biến bởi vì ngôn ngữ mô hình hóa, bộ sinh code và code của framework đã phù hợp với các yêu cầu của miền ứng dụng. Nói cách khác chúng là chuyên biệt miền và chúng hoàn toàn đƣợc kiểm soát bởi ngƣời dùng. Các mức độ trừu tƣợng cao Sự trừu tƣợng rất quan trọng trong phát triển phần mềm.
Trong suốt lịch sử phát triển phần mềm, nâng cao mức độ trừu tƣợng là nguyên nhân của các bƣớc nhảy vọt trong hiệu suất của nhà phát triển. Nếu nâng cao mức độ trừu tƣợng làm giảm tính phức tạp thì làm sao để tiếp tục nâng cao nó.1 thể hiện, các nhà phát triển tại 3 TIEU LUAN MOI download : skknchat@gmail.com các thời điểm khác nhau đã thu hẹp khoảng cách trừu tƣợng giữa ý tƣởng trong miền và cài đặt của chúng.1: Thu hẹp khoảng cách trừu tượng giữa ý tưởng miền và cài đặt của chúng Bƣớc đầu tiên trong phát triển bất kỳ phần mềm nào luôn là nghĩ về giải pháp liên quan đến miền vấn đề - một giải pháp ở mức độ trừu tƣợng cao nhất (bƣớc 1). Ví dụ, quyết định nên hỏi tên ngƣời trƣớc hay hỏi phƣơng thức thanh toán trƣớc trong khi đăng ký một hội thảo. Sau khi tìm ra giải pháp sẽ ánh xạ sang đặc tả của một số ngôn ngữ (bƣớc 2).
Trong lập trình truyền thống, bƣớc này các nhà phát triển ánh xạ các khái niệm miền vào việc code các khái niệm. Trong UML hoặc các ngôn ngữ mô hình hóa mục đích chung khác, các nhà phát triển ánh xạ giải pháp miền vấn đề vào đặc tả trong ngôn ngữ mô hình hóa. Bƣớc 3, cài đặt đầy đủ giải pháp: đƣa ra các điều kiện đúng và nội dung code cho các vòng lặp. Tuy nhiên, nếu sử dụng các ngôn ngữ mô hình hóa mục đích chung, thì cần ánh xạ bổ sung từ mô hình sang code.
Điều đáng chú nhất ở đây là các nhà phát triển vẫn phải thực hiện từ bƣớc 1 mà không có bất kì công cụ nào hỗ trợ, đặc biệt để giải quyết các lỗi phát sinh trong giai đoạn phát triển thƣờng tốn nhiều chi phí nhất. Tự động sinh code Trong bƣớc 3, việc sinh code tự động từ thiết kế UML là không thể. Thay vì yêu cầu nhà phát triển nắm vững cả miền vấn đề và lập trình, một giải pháp tốt hơn cho phép các nhà phát triển đặc tả ứng dụng dƣới dạng đã từng biết và sử dụng, sau đó có các bộ sinh code sử dụng các đặc tả đó và tạo ra cùng loại code giống nhƣ họ viết bằng tay. Điều này sẽ làm tăng mức độ trừu tƣợng đáng kể; từ việc lập trình với byte/bit, thuộc tính và kết quả trả về; lên đến các khái niệm và luật lệ của miền vấn đề mà các nhà phát triển đang làm việc với.
Sau đó, ngôn ngữ lập trình mới này hợp nhất với bƣớc 1 và bƣớc 2 và tự động hóa hoàn toàn ở bƣớc 3. Mức độ trừu tƣợng đƣợc nâng lên gắn liền với code đƣợc sinh tự động là mục đích của DSM. 4 TIEU LUAN MOI download : skknchat@gmail.com DSM không kỳ vọng rằng tất cả code có thể đƣợc sinh ra từ các mô hình nhƣng bất cứ gì mô hình hóa đƣợc từ quan điểm của ngƣời mô hình hóa thì đều sinh ra code hoàn chỉnh. Trong DSM, code đƣợc sinh ra dễ đọc và hiệu quả - lý tƣởng là giống nhƣ code đƣợc viết bởi những nhà phát triển giàu kinh nghiệm, những ngƣời định nghĩa ra bộ sinh code.
Code đƣợc sinh ra thƣờng đƣợc hỗ trợ bởi framework với mục đích nhất định cũng nhƣ bởi các nền tảng, thƣ viện, thành phần và các code kế thừa khác. Bộ sinh code không chỉ giới hạn bất kì ngôn ngữ hay kiểu lập trình nào. Ví dụ kết quả của bộ sinh code có thể là ngôn ngữ lập trình hƣớng đối tƣợng hoặc ngôn ngữ lập trình cấu trúc hay chức năng, nó có thể là ngôn ngữ lập trình truyền thống, một ngôn ngữ kịch bản, các định nghĩa dữ liệu hoặc một file cấu hình. Tóm lại, DSM về cơ bản nâng cao mức độ trừu tƣợng trong khi thu hẹp không gian thiết kế (thƣờng là các sản phẩm trong một công ty).
Cùng với ngôn ngữ mô hình hóa chuyên biệt miền DSML, vấn đề sẽ đƣợc giải quyết khi việc mô hình hóa trực quan giải pháp mà chỉ sử dụng các khái niệm miền quen thuộc. Sản phẩm cuối cùng đƣợc sinh tự động bởi các bộ sinh code chuyên biệt miền.