Mô hình tham chiếu WF Phần mềm thực thi WF được gọi là Hệ quản trị WFviết tắt là WFMS "Là hệ thống cho phép định nghĩa, tạo ra các WF, cung cấp môi trường thực thị WF và các công cụ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
PHẠM THỊ PHƯƠNG GIANG
TÍCH HỢP ỨNG DỤNG DỰA TRÊN NỀN CÔNG
NGHỆ WORKFLOW
LUẬN VĂN THẠC SĨ KHOA HỌC
NGƯỜI HƯỚNG DẪN : TS VŨ TUYẾT TRINH
HÀ NỘI – 2010
Trang 2MỤC LỤC
LỜI CAM ĐOAN 3
Danh mục các ký hiệu, các chữ viết tắt 4
Danh mục các hình vẽ, đồ thị 5
ĐẶT VẤN ĐỀ 6
CHƯƠNG I: TỔNG QUAN VỀ WORKFLOW 8
I Khái niệm cơ bản 8
II Đặc điểm 14
2.1 Độc lập luồng 14
2.2 Độc lập miền ứng dụng 15
2.3 Giám sát và Lưu vết 16
2.4 Hỗ trợ thao tác thủ công 16
III Hệ thống quản lý WF 17
3.1 Mô hình tham chiếu WF 17
3.2 Các thành phần 18
3.2.1 Định nghĩa tiến trình 18
3.2.2 Dịch vụ sắc lệnh 20
3.2.3 Các chức năng của WF phía khách 22
3.2.4 Các chức năng triệu gọi ứng dụng 24
3.2.5 Quản trị hệ thống 26
III Tổng kết 27
CHƯƠNG II TÍCH HỢP ỨNG DỤNG DỰA TRÊN WF 29
I Tích hợp ứng dụng 29
1.1 Các vấn đề trong tích hợp 29
1.1.1 Ngữ nghĩa 29
1.1.2 Trao đổi thông tin 31
1.2 Các kiến trúc tích hợp 34
1.2.1 Kiến trúc point–to-point 34
1.2.2 Kiến trúc Hus&Bus 35
1.2.3 Kiến trúc Bus-Oriented 37
1.2.4 Kiến trúc hướng đối tượng phân tán 38
1.3 Các công nghệ tích hợp 38
II Tích hợp dựa trên WF 41
2.1 Phương pháp tích hợp xử lý nghiệp vụ 41
2.1.1 Khái niệm 41
2.1.2 Thành phần 43
2.1.3 Đặc điểm 44
2.1.4 Kiến trúc ba tầng của BPI 45
2.2 Yêu cầu WF cho tích hợp 46
2.3 Các chuẩn đăng tả WF trên mạng 48
2.3.1 Đặc tả chuẩn tương tác WFMC 49
2.3.2 Đặc tả joinFlow(OMG) 50
2.3.3 Đặc tả SWAP 51
Trang 32.3.4 Đặc tả WF-XML 52
2.4 Kiến trúc tích hợp dựa trên WF 56
CHƯƠNG III MÔ PHỎNG BÀI TOÁN E-LEARNING 61
I Mô tả bài toán 61
II Mô hình hóa trong môi trường WF 63
2.1 Mô hình hóa các hệ thống con 64
2.1.1 Luồng xử lý dạy học của giáo viên (K ý hiệu T) 64
2.1.2 Luồng xử lý học tập của sinh viên (Ký hiệu là L) 64
2.1.3 Luồng xử lý quản lý đào tạo của cán bộ (Ký hiệu A) 65
2.1.4 Luồng xử lý quản trị của quản trị hệ thống 65
2.2 Mô hình hóa tương tác giữa các hệ thống con 66
III Thiết kế kiến trúc hệ thống WF .71
IV Môi trường và công cụ triển khai ứng dụng 76
KẾT LUẬN 78
TÀI LIỆU THAM KHẢO 79
Trang 4LỜI CAM ĐOAN
Tôi – Phạm Thị Phương Giang – cam kết Luận văn tốt nghiệp Cao học là công
trình nghiên cứu của bản thân tôi, dưới sự hướng dẫn của TS.Vũ Tuyết Trinh các kết quả nêu trên luận văn là trung thực, không phải là sao chép toàn văn của bất cứ công trình nào khác
Trang 5Danh mục các k ý hiệu, các chữ viết tắt
Từ
WF Workflow Thuật ngữ luồng công việc
WFMS Workflow Management System Hệ thống quản lý Workfow
WFMC Workflow Management Coliation Hội liên hiệp quản lý Workflow
WFRM Workflow Reference Model Mô hình tham chiếu Workflow
BPI Business Process Integration Tích hợp quy trình nghiệp vụ
WAPI Workflow Application
Programming Interface
Giao diện lập trình ứng dụng Workflow
IPC Inter Process Communication Sự liên lạc giữa các tiến trình
BPI Business process integration
oriented Approach
Phương pháp tích hợp quy trình nghiệp vụ
MOM Message Oriented Middware Tầng trung gian hướng thông điệp
DOT Ditributed Object Technology Công nghệ đối tượng phân tán
SWAP Simple Workflow Access
Protocol Giao thức truy nhập WF đơn giản
SOA Service Oriented Architecture Kiến trúc hướng dịch vụ
RPC Remote Procedure Call Lời gọi thủ tục từ xa
WS Web Service Dịch vụ Web
OMG Object Management Group
RMI Remote Method Invocation Lời triệu gọi phương thức từ xa
Trang 6Danh mục các hình vẽ, đồ thị
Hình 1 : Ví dụ xử lý đăng ký khóa học 9
Hình 2 : Trình tự xử lý tuần tự 10
Hình 3 : Trình tự xử lý song song 11
Hình 4 : Trình tự xử lý chọn 11
Hình 5 : Trình tự xử lý lặp 12
Hình 6 : Mối quan hệ giữa các thuật ngữ case, workitem, resource, activity 13
Hình 7: Góc nhìn WF ba chiều 14
Hình 8: Sự phân biệt các ứng dụng độc lập luồng và ứng dụng phụ thuộc luồng…15 Hình 9: Tầng logic và tầng xử lý được phân chia vào 2 tầng 16
Hình 10: Mô hình tham chiếu WF- Các thành phần và giao diện 17
Hình 11: Sự trao đổi định nghĩa tiến trình 18
Hình 12: Siêu mô hình định nghĩa tiến trình cơ bản 19
Hình 13: Giao diện ứng dụng phía khách 23
Hình 14: Giao diện ứng dụng được triệu gọi 26
Hình 15: Giao diện quản trị và giám sát hệ thống 27
Hình 16: Tầng trung gian RPC 31
Hình 17: Tầng trung gian hướng thông điệp 32
Hình 18: Tầng trung gian hướng đối tượng phân tán 33
Hình 19: Tầng trung gian hướng cơ sở dữ liệu 33
Hình 20: Kiến trúc point-to-point 35
Hình 21: Kiến trúc Hub&Bus 36
Hình 22: Kiến trúc Bus - Oriented 37
Hình 23: Kiến trúc hướng đối tượng phân tán 38
Hình 24: Mô hình tích hợp hướng xử lý 42
Hình 25: Các thành phần giải pháp tích hợp xử lý nghiệp vụ 44
Hình 26: BPI quản lý việc di chuyển thông tin và chia sẻ các mô hình xử lý 45
Hình 27: Kiến trúc 3 tầng BPI 46
Hình 28: Tích hợp ứng dụng dựa trên quy trình xử lý 47
Hình 29: Sự tương tác giữa các nguồn 54
Hình 30: Kiến trúc tích hợp dựa trên WF hướng Bus 57
Hình 31: Kiến trúc tích hợp dựa trên WF hướng Hub&Bus 58
Hình 32: Kiến trúc tích hợp với WF đóng vai trò trung tâm 58
Hình 33: Mối quan hệ giữa các đối tượng trong môi trường e-learning 63
Hình 34: WF dạy học của giáo viên 64
Hình 35: WF học của sinh viên 65
Hình 36: WF quản lý đào tạo 65
Hình 37: WF quản trị hệ thống 66
Hình 38: Mô phỏng sự tương tác giữa 2 hệ thống con 72
Hình 39 Ba vai trò trong kiến trúc SOA 72
Hình 40: Các thành phần lõi WWF 74
Hình 41: Các thành phần tích hợp cho hệ thống E-learning 75
Trang 7ĐẶT VẤN ĐỀ
Workflow (viết tắt là WF) – luồng công việc là khái niệm được đề xuất bởi Fritz
Nordsieck [15] (1968).Từ những năm 70 đến năm 80, đã có nhiều công ty, tổ chức
cá nhân nghiên cứu và phát triển các sản phẩm WF, và chứng minh tính giá trị của
nó trong nhiều lĩnh vực Đặc biệt hội liên hiệp các tổ chức quản lý WF (WfMC) đã
cố gắng nghiên cứu, đưa ra các chuẩn công nghệ WF vào năm 1993 , giúp cho công nghệ WF phát triển rộng rãi trên nhiều lĩnh vực
Công nghệ WF mặc dù mới ra đời nhưng đã hứa hẹn đóng góp tạo bước đột biến
quan trọng trong quá trình phát triển CNTT, đặc biệt trong lĩnh vực tích hợp ứng
dụng làm nền tảng cho một thế hệ các ứng dụng kiểu mới Điều này được giải thích bởi các l ý do sau:
- Bản chất công nghệ WF là “tư duy tiến trình”
Tư duy tiến trình là tư duy thực hiện công việc theo một thứ tự nào đó Tư duy này phù hợp với thực thi công việc cuộc sống hàng ngày Thực tế tư duy này xuất hiện từ thời kỳ nguyên thủy, khi đó con người phải từ mày mò, tìm ra cách thức sinh tồn và phát triển Tư duy này thể hiển rõ khi xã hội phát triển, công việc đòi hỏi
sự tương tác của nhiều người, khi đó sự tường minh công việc càng trở nên cần thiết, giúp con người có thể làm việc cùng nhau đề hoàn thành một công việc nào đó
- Xu hướng thực hiện tương tác giữa các ứng dụng WF
Nếu như trước đây, các ứng dụng được xây dựng nhằm giải quyết một vấn đề cụ thể khép kín thì ngày nay người ta muốn các ứng dụng đó có thể trao đổi, ‘nói chuyện’ với nhau để cùng đóng góp giải quyết những vấn đề có nội dung, phạm vị rộng hơn Yêu cầu về một môi trường cho phép các ứng dụng có thể trao đổi, phối hợp với nhau cùng đáp ứng yêu cầu chung ngày càng trở nên bức thiết Nền tảng công nghệ WF cho phép tạo ra môi trường như vậy
- Tính không đồng nhất của các ứng dụng
Các ứng dụng được xây dựng trên những công nghệ nền khác nhau Vì vậy các ứng dụng đang vận hành là không đồng nhất và phân tán theo địa lý Việc tích hợp chúng để tạo thành những hệ thống lớn hơn là rất khó khăn, tốn kém thậm chí là
Trang 8không khả thi Hơn nữa, logic nghiệp vụ luôn thay đổi Việc tách logic nghiệp vụ ra khỏi các ứng dụng sẽ cho phép “dễ dàng” thay đổi hệ thống trước những đòi hỏi sửa đổi logic nghiệp vụ mà ít làm thay đổi cấu trúc bên trong của từng ứng dụng Vấn
đề quản lý các đối tượng tham gia bao gồm xác định vai trò của từng đối tượng trong tiến trình, phân công công việc, cung cấp công cụ, cũng là một khía cạnh rất quan trọng khi đề cập tới tư duy tiến trình
Từ những nguyên nhân trên, tôi nhận thấy WF đóng vài trò quan trọng trong việc
tích hợp ứng dụng Vì thế mà tôi lựa chọn đề tài “Tích hợp ứng dụng dựa trên nền công nghệ Workflow”
Mục tiêu của luận văn là tìm hiểu về WF và các công nghệ liên quan Dựa trên
công nghệ WF, luận văn khai thác khả năng sử dụng công nghệ trong việc tích hợp ứng dụng
Để đạt được mục đích trên, tôi sẽ tập trung vào các nội dung sau:
- Tìm hiểu về WF: các khái niệm cơ bản, các đặc điểm WF, và các yêu cầu quản lý WF, hệ thống quản lý WF
- Tìm hiểu về khả năng tích hợp ứng dụng với WF: mô hình hóa quy trình tích hợp, tương tác giữa các ứng dụng, các công nghệ
- Ứng dụng công nghệ tích hợp dựa trên WF để xây dựng hệ thống learning
e-Phần tiếp theo của luận văn được trình bày như sau:
- Chương 1: Giới thiệu tổng quan về WF
- Chương 2: Trình bày tích hợp dựa trên nền công nghệ WF
- Chương 3: Đề xuất áp dụng giải pháp tích hợp ứng dụng dựa trên nền
công nghệ WF cho bài toán e-learning
- Kết luận: Tổng kết các kết quả đã làm được và chưa làm được, đưa ra
hướng phát triển cho luận văn
Trang 9CHƯƠNG I: TỔNG QUAN VỀ WORKFLOW
I Khái niệm cơ bản
“WF là sự tự động hóa của một tiến trình công việc, toàn bộ hay một phần, trong
đó các tài liệu, thông tin hay các tác vụ được luân chuyển từ đối tượng này đến đối tượng kia thay cho hành động, tuân theo một tập các quy tắc mang tính thủ tục”
[1][2]
Theo định nghĩa trên, WF gồm hai thành phần chính: Công việc và tiến trình thực
hiện công việc Công việc mô tả cái gì đó được làm Một công việc cụ thể gọi là
case Mỗi case có một định danh duy nhất, và chu trình sống giới hạn Các case
tương tự nhau là các case được xử lý theo cùng một cách thức được nhóm vào một
loại case Một case gắn liền với một tiến trình thực hiện Tiến trình thực hiện là
cách thức thứ tự các bước xử lý, được gọi là process Mỗi loại case có một process
riêng
Ví dụ: Phòng đào tạo xử lý đăng ký học của sinh viên
Loại case, đối tượng được xử lý: “đăng ký học” gồm các case như: đăng ký học của sinh viên (đã có tài khoản), đăng ký học của người dùng bất kỳ
Các bước xử lý đăng ký học như sau:
(1) Đăng nhập hệ thống
(2) Kiểm tra tài khoản
(3) Lấy thông tin của sinh viên (tài khoản hợp lệ)
(4) Lấy thông tin của khóa học (tài khoản hợp lệ)
(5) Từ chối (tài khoản không hợp lệ)
(6) Hiển thị danh sách các khóa học có thể được đăng k ý
(7) Chọn khóa học cần đăng ký
(8) Kiểm tra điều kiện hợp lệ đăng ký khóa học
(9) Thực hiện đăng ký khóa học cho sinh viên (khóa học hợp lệ )
(10) Từ chối (khóa học này chưa hợp lệ với sinh viên)
(11) Kết thúc quá trình đăng ký
Trình tự thực hiện các bước
Trang 10Hình 1 : Ví dụ xử lý đăng ký khóa học
Như ví dụ trên, process gồm tập các bước xử lý theo một thứ tự nào đó Mỗi bước
xử lý gọi là task Task được hiểu như một đơn vị công việc không thể phân chia nhỏ
hơn nữa Ví dụ các task trong xử lý đăng ký khóa học như trên là: đăng nhập hệ thống, nhận thông tin sinh viên, nhận thông tin khóa học,… Như vậy một Process gồm tập các task, và thứ tự thực hiện các task đó Một Process được coi như một thủ tục cho một loại case cụ thể Như vậy một tác vụ được xử lý trong một hay nhiều case
Trang 11Theo ví dụ trên, trình tự thực hiện các task có thể tiến hành tuần tự, hay song song
Để mô tả trình tự xử lý, theo định nghĩa các thuật ngữ do tổ chức WFMC đưa ra [3],
có bốn khối cơ bản như sau:
- Tuần tự (Sequential Routing): là tuyến thực thi tuần tự các task Hay nói cách khác, task này hoàn thành rồi đến task tiếp theo, luôn có sự kết nối giữa chúng Ví
dụ trong xử lý đăng ký khóa học, các task6, task7, task8 thực thi tuần tự
Hình 2 : Trình tự xử lý tuần tự
- Song Song(Parallel Routing): Là tuyến có nhiều hơn một hành động được thực
thi cùng một lúc Trong trường hợp này, hai hoạt động cần thiết được thực thi đồng
thời mà kết quả task này không phụ thuộc vào task còn lại Để thực thi tuyến song
song, tại thời điểm bắt đầu ta sử dụng một bộ AND-split để phân chia điều khiển và
bộ join để kết hợp nó lại tại thời điểm kết thúc Nhiệm vụ chính của bộ
AND-join nhằm để đồng bộ thực thi các hoạt động song song Như xử lý trên, sau khi
task2 sẵn sàng, task3, task4 có thế được tiến hành cùng một lúc, nhưng không phải
bắt buộc Nhưng điều kiện tiên quyết để task6 bắt đầu thực thi là khi tất cả các hoạt động song song (task3, task4) phải được sẵn sàng
Trang 12Hình 3 : Trình tự xử lý song song
- Chọn (Selective routing): Khi chỉ duy nhất một hoạt động xử lý phải được tiến
hành cùng lúc Để thực thi tuyến chọn, ở thời điểm bắt đầu, ta sử dụng bộ OR-split
để phân chia điều khiển và OR-join để hợp nó lại ở thời điểm kết thúc Nhiệm vụ chính của OR-join là chọn giữa các hoạt động xử lý có thể từ trước Từ xử lý trên,
task8 sẵn sàng, task9 hoặc task10 có thể được tiến hành Điều kiện tiên quyết cho task11 bắt đầu thực thi là khi một trong các hoạt động phải được sẵn sàng Như mô
tả ở hình sau:
Hình 4 : Trình tự xử lý chọn
Trang 13- Lặp (Iteration routing): Tuyến lặp định nghĩa chu trình hoạt động WF bao gồm
thực thị có tính lặp của một hay nhiều hoạt động cho đến khi điều kiện được đáp ứng
Hình 5 : Trình tự xử lý lặp
Như trên ta đã biểu diễn WF dưới các khái niệm mô tả (case, process, task) Sau
đây ta biểu diễn WF dưới các khái niệm thực thi:
Một task có thể được xử l ý trong một hay nhiều case Vì vậy một task trong case
cụ thể được gọi là workitem Khi thực thi một task cho một case nào đó, ta cần các nguồn hỗ trợ (resource) Resource (mô tả ai thực thi tác vụ hoặc nguồn thông tin
nào được khai thác bởi hệ thống) ở đây có thể là phần cứng (CPU, máy in, máy fax),
hay có thể là dữ liệu (hệ quản trị CSDL), hay có thể là con người Một workitem
được thực thi bởi resource gọi là activity
Như với case sinh viên đăng k ý khóa học ở trên, gồm các task như: đăng nhập hệ
thống, hiển thị danh sách các khóa học, kiểm tra điều kiện đăng ký có hợp lệ không
Task đăng nhập hệ thống (task1) có thể được chứa trong nhiều case như trong case
đăng k ý khóa học (case1), case theo dõi kết quả đánh giá môn học (case2)…task1 trong case1 gọi là workitem1, task1 trong case2 gọi là workitem2 Workitem1 thực
thi trong thực tế yêu cầu nguồn là con người cụ thể là đối tượng sinh viên sử dụng
tài khoản của mình để đăng nhập vào hệ thống Workitem1 được thực thi bởi nguồn
Trang 14con người gọi là activity1 sinh viên đăng nhập hệ thống trong case sinh viên đăng
k ý khóa học
Mối quan hệ giữa case, task, workitem, resource, activity được biểu diễn như hình
sau:
Hình 6 : Mối quan hệ giữa các thuật ngữ case, workitem, resource, activity
Điều kiện thực hiện
Một workitem có thể được thực thi chỉ khi có nguồn khởi động nó Ta gọi nó là
trigger Có nhiều dạng trigger khác như: sự kiện bên ngoài, thời điểm cụ thể (ví dụ:
sinh ra danh sách thứ tự vào lúc 6 giờ) Vì thế chúng ta phân biệt giữa 3 loại trigger (1) Nguồn khởi tạo; (2) Sự kiện bên ngoài; (3) Tín hiệu thời gian
Như vậy thành phần công việc của WF được mô tả bởi các case, case gắn liền với
một process được thực thi Process là tập các task, và thứ tự thực thi các task Task trong một case cụ thể gọi là workitem, workitem được thực thi bởi nguồn nào đó gọi
là activity
Dựa vào mô tả các khái niệm cơ bản trong WF nói trên, Van der Aalst and van Hee [6] biểu diễn các khái niệm của WF dưới không gian ba chiều như sau:
Trang 16
Hình 8: Sự phân biệt giữa các ứng dụng độc lập luồng và ứng dụng phụ thuộc luồng [4]
Dưới góc nhìn WF, ứng dụng được chia thành hai phần: logic ứng dụng (công việc hay chức năng), điều khiển ứng dụng (tiến trình xử l ý) Sự phân tách này cho phép các ứng dụng trở thành độc lập luồng Nhờ đặc tính này, các ứng dụng WF giúp cho việc nâng cấp và phát triển trong tương lai Đặc biệt là khi có sự thay đổi quy trình nghiệp vụ, các ứng dụng phụ thuộc luồng do sự lẫn lộn logic nghiệp vụ và điều khiển thực thi mà làm nó khó thích nghi Còn các ứng dụng WF dễ dàng thay đổi để thích nghi với quy trình nghiệp vụ mới mà không tác động nhiều đến cấu trúc bên trong của chương trình Mặt khác nhờ đặc tính này mà ứng dụng WF có khả năng tái sử dụng cao Vì thế, WF phù hợp với việc xây dựng các ứng dụng trong tương lại (ứng dụng phức tạp, dễ thích nghi với sự thay đổi quy trình nghiệp vụ, khả năng mở rộng cao)
Ví dụ trong quy trình xử lý đăng ký khóa học, có tác vụ đăng nhập hệ thống Giả sử khi ta muốn thay cách thức đăng nhập từ sử dụng tài khoản sang sử dụng dấu vấn tay Với ứng dụng WF, ta đơn giản thay logic đăng nhập mức logic ứng dụng, mà không tác động gì đến cấu trúc bên trong của hệ thống
2.2 Độc lập miền ứng dụng (Domain – Independence)
Trang 17Hình 9: Tầng logic và tầng xử l ý được phân chia vào 2 tầng: Flow và work [4]
Từ đặc điểm độc lập luồng của ứng dụng WF: tách ứng dụng thành hai phần logic ứng dụng và logic điều khiển, dẫn tới WF không phụ thuộc vào lĩnh vực ứng dụng
cụ thể nào cả Vì thế khi ứng dụng WF vào các lĩnh vực ứng dụng cụ thể yêu cầu cung cấp các thành phần thực thi công việc cụ thể cho lĩnh vực ấy Đặc tính này giúp cho công nghệ WF có thể áp dụng cho nhiều lĩnh vực ứng dụng khác nhau
2.3 Giám sát và Lưu vết
Nhờ đặc tính tách rời logic xử l ý trong các ứng dụng WF, dẫn tới hệ thống có thể giám sát, lưu vết lại thông tin tại mức xử l ý Các thông tin mức xử l ý, trình tự thực hiện các bước, bắt đầu và kết thúc xử l ý đều được lưu vết lai Những thông tin này ngoài việc giúp hệ thống phục hồi, còn giúp người dùng phân tích, tìm hiểu để cải tiến các quy trình nghiệp vụ Ví dụ xử l ý đăng k ý khóa học ở trên, WF giúp ta theo
dõi các bước xử lý (task) của một sinh viên đăng ký khóa học
2.4 Hỗ trợ thao tác thủ công
Nhờ đặc tính giám sát và lưu vết, mà người dùng WF có thể phát hiển lỗi xảy ra
trong thời gian thực thi WF Đặc tính hỗ trợ thao tác thủ công giúp cho người dùng
Trang 18tự sửa các lỗi đã phát hiện bằng cách ghi đè lên định nghĩa xử lý hay thay đổi tiến trình xử lý bằng thao tác thủ công Ví dụ khi xuất hiện lỗi WF không cho phép sinh viên đăng ký thành công khóa học dù sinh viên đó hợp lệ trong việc đăng ký Nhờ đặc tính giám sát và lưu vết mà người dùng WF biết WF lỗi ở bước nào, kết hợp với đặc tính này giúp người dùng WF có thể tự sửa lỗi ở bước đó
III Hệ thống quản lý WF
3.1 Mô hình tham chiếu WF
Phần mềm thực thi WF được gọi là Hệ quản trị WF(viết tắt là WFMS)
"Là hệ thống cho phép định nghĩa, tạo ra các WF, cung cấp môi trường thực thị WF
và các công cụ giám sát thông qua việc sử dụng phần mềm, chạy trên một hoặc nhiều máy WF có khả năng hiểu định nghĩa tiến trình, tương tác với người tham gia
WF và khi cần, có thể sử dụng các ứng dụng và công cụ IT" [1]
Hình 10: Mô hình tham chiếu WF- Các thành phần và giao diện
Hình 10 chỉ ra các thành phần và các giao diện chính của mô hình tham chiếu WF (WFRM) MWFR gồm 5 giao diện chính như trên hình vẽ Các giao diện và các thành phần này sẽ được trình bày cụ thể ở các phần tiếp theo
Trang 193.2 Các thành phần
3.2.1 Định nghĩa tiến trình
Công cụ định nghĩa tiến trình (tham chiếu thành phần 1 trong hình 10)
"Là sự biểu diễn một tiến trình nghiệp vụ theo một khuôn mẫu hỗ trợ thao tác tự
động hóa, như là mô hình hóa, hay ban hành sắc lệnh bởi một hệ thống quản lý WF Định nghĩa tiến trình bao gồm một mạng lưới các hoạt động và mối quan hệ giữa chúng, điều kiện bắt đầu và kết thúc tiến trình, và thông tin về các hoạt động riêng
lẻ, như là những người tham gia, các ứng dụng IT và dữ liệu liên quan" [7]
Trao đổi định nghĩa WF (tham chiếu giao diện 1 hình 10)
Giao diện giữa các công cụ mô hình hóa, định nghĩa và phần mềm quản lý WF trong lúc thực thi được gọi là giao diện xuất/nhập định nghĩa tiến trình Bản chất của giao diện này là khuôn dạng trao đổi và các lời gọi API, mà chúng có thể hỗ trợ
sự trao đổi thông tin định nghĩa tiến trình thông qua sự đa dạng trên phương diện vật lý hay phương diện trao đổi điện tử Giao diện có thể hỗ trợ trao đổi một định nghĩa tiến trình đầy đủ (hoặc một phần - ví dụ một tập hợp định nghĩa tiến trình thay đổi hoặc các thuộc tính của hoạt động riêng biệt trong định nghĩa tiến trình)
Hình 11: Sự trao đổi định nghĩa tiến trình
Có hai khía cạnh trong phần này là:
Trang 20- Xuất xứ của một siêu mô hình mà có thể được dùng để biểu diễn các đối tượng, các mối quan hệ của chúng và các thuộc tính trong một định nghĩa tiến trình và có thể tạo thành nền tảng cho một tập hợp khuôn dạng trao đổi để trao đổi thông tin giữa các sản phẩm
- Lời gọi API (trong WAPI) giữa các hệ thống WF hoặc giữa một hệ thống WF với sản phẩm định nghĩa tiến trình, cung cấp cách thức chung để truy cập định nghĩa tiến trình WF Việc truy cập có thể chỉ đọc, vừa đọc vừa ghi hoặc chỉ ghi và
có thể thao tác tập hợp các đối tượng chuẩn được xác định trong siêu mô hình hoặc trong một tập hợp sản phẩm cụ thể
Một siêu mô hình cơ bản
Hình 12: Siêu mô hình định nghĩa tiến trình cơ bản
Các thuộc tính riêng biệt theo các loại sẽ được xác định:
Định nghĩa loại WF:
- Tên tiến trình WF
- Số phiên bản
- Điều kiện bắt đầu và kết thúc tiến trình
- Bảo mật, kiểm tra thông tin hoặc dữ liệu điều khiển khác
Hoạt động:
Trang 21- Tên hoạt động
- Loại hoạt động (Luồng con, luồng nguyên tử, )
- Điều kiện hoạt động trước và sau
- Các ràng buộc về danh mục khác
Các điều kiện chuyển đổi:
- Các điều kiện luồng hoặc thực thi
Dữ liệu có liên quan đến WF:
- Tên và đường dẫn dữ liệu
- Loại dữ liệu
Vai trò:
- Tên và tổ chức thực thể
Ứng dụng được triệu gọi
- Loại hoặc tên chung
- Tham số thực thi
- Vị trí hay đường dẫn truy nhập
3.2.2 Dịch vụ sắc lệnh
(tham chiếu thành phần 2 hình 10)
" Là phần mềm bao gồm một hay nhiều WF Engine để tạo ra môi trường thực thi
WF Các ứng dụng có thể giao tiếp với các dịch vụ này thông qua giao diện lập trình ứng dụng WF" [1]
Dịch vụ sắc lệnh WF cung cấp môi trường thực thi trong đó, tiến trình được khởi tạo và được kích hoạt, sử dụng một hoặc nhiều bộ máy quản lý WF, chịu trách nhiệm cho việc thông dịch và kích hoạt một phần hoặc tất cả định nghĩa tiến trình
và tương tác với các tài nguyên bên ngoài cần thiết để xử lý các hoạt động khác nhau
Giao diện lập trình ứng dụng Workflow (Workflow Application Programming Interface – WAPI) có thể được xem như một tập hợp các lời gọi API và các chức năng trao đổi được hỗ trợ bởi dịch vụ sắc lệnh WF tại ranh giới của nó để tương tác với các nguồn tài nguyên hay ứng dụng khác
Trang 22Sự tương tác với nguồn tài nguyên bên ngoài có thể sử dụng được bởi dịch vụ enactment nào đó thông qua một trong hai giao diện sau:
- Giao diện ứng dụng phía khách (tham chiếu giao diện 2 hình 10): Thông qua
giao diện này, WF Engine tương tác với một bộ quản lý danh sách công việc (worklist handler), có trách nhiệm tổ chức công việc với tư cách là tài nguyên người dùng Worklist handler có trách nhiệm lựa chọn và thực hiện worklist item từ worklist Sự kích hoạt các công cụ ứng dụng được kiểm soát bởi worklist handler hoặc người dùng cuối
- Giao diện triệu gọi ứng dụng (tham chiếu giao diện 3 hình 10): Giao diện này
cho phép WF Engine kích hoạt trực tiếp một công cụ nào đó để đảm nhận một họat động cụ thể Đây là điển hình của ứng dụng dựa trên máy chủ mà không có giao diện người dùng Tại đây một hoạt động cụ thể sử dụng một công cụ cần có sự tương tác của người dùng cuối, thông thường sẽ được triệu gọi thông qua giao diện worklist để cung cấp tính mềm dẻo nhiều hơn cho nhiệm vụ lập lịch cho người dùng Bằng việc sử dụng một giao diện chuẩn cho sự triệu gọi công cụ, các công cụ ứng dụng trong tương lai có thể thực hiện WF theo cách chuẩn hóa
Trong phần này, dịch vụ sắc lệnh WF được coi như là một thực thể logic đơn lẻ mặc dù về mặt vật lý nó có thể hoặc tập trung hoặc phân tán về chức năng Trong một dịch vụ sắc lệnh WF phân tán, một vài WF Engine điều khiển một phần của tiến trình enactment và tương tác với một vài người dùng và các công cụ ứng dụng liên quan đến các hoạt động trong tiến trình Một dịch vụ enactment như thế được coi như có tên chung và phạm vi quản trị, để các định nghĩa tiến trình và tên người dùng hay tên ứng dụng có thể được điều khiển trên một nền tảng phù hợp Hệ thống
WF phân tán tận dụng các giao thức cụ thể và định dạng trao đổi giữa các WF Engine để đồng bộ hoạt động, trao đổi thông tin điều khiển hoạt động và tiến trình của chúng Dữ liệu liên quan đến WF có thể cũng được chuyển giữa các WF Engine
Sự trao đổi chuẩn hóa là cần thiết giữa các WF Engine Sử dụng giao diện 4, dịch
vụ enactment có thể truyền hoạt động hay các tiến trình con tới dịch vụ enactment
Trang 23(đồng nhất) khác để thực hiện Trong mô hình WF liên quan gọi là Workflow Engine Interchange Sự quản lý chung và chức năng giám sát cũng được yêu cầu trong một môi trường đồng nhất
WF Engine (tham chiếu thành phần 2 hình 10)
"Một WF Engine có trách nhiệm cho một phần hay toàn bộ môi trường điều khiển thời gian thực thi trong một dịch vụ enactment" [1]
Là một phần mềm dịch vụ hay "Engine" cung cấp môi trường tại thời điểm thực thi cho một WF Đặc biệt phần mềm cung cấp điều kiện thuận lợi để điều khiển:
- Sự thông dịch của định nghĩa tiến trình
- Điều khiển các thể hiện của tiến trình: tạo, kích hoạt, hủy bỏ, kết thúc,
- Điều hướng giữa các hoạt động của tiến trình: tuần tự hoặc song song, sắp xếp các thời hạn, thông dịch của dữ liệu liên quan đến WF,
- Đăng nhập và kết thúc phiên làm việc của người tham gia
- Xác định các mục công việc cho người dùng chú ý và một giao diện hỗ trợ giao tiếp với người dùng
- Duy trì dữ liệu điều khiển WF và dữ liệu liên quan WF, truyền dữ liệu liên quan đến WF tới/từ ứng dụng hay người dùng
- Một giao diện để triệu gọi các ứng dụng bên ngoài và liên kết với bất kỳ dữ liệu liên quan đến WF
- Giám sát hoạt động cho mục đích điều khiển, quản lý và kiểm tra sổ sách Một WF Engine có thể điều khiển sự thực thi của một tập các tiến trình, hay một tập các tiến trình con, các thể hiển của tiến trình với một phạm vi xác định Phạm vi đó được quyết định bởi phạm vi của các loại đối tượng, và các thuộc tính của chúng
WF Engine có thể thông dịch các loại đối tượng và các thuộc tính đó bên trong các định nghĩa tiến trình
3.2.3 Các chức năng của WF phía khách
Các ứng dụng WF phía khách (tham chiếu thành phần 3.1 hình 10)
Bộ quản lý danh sách công việc là thực thể phần mềm, thực thể này tương tác với người dùng cuối trong các hành động yêu cầu huy động các nguồn tài nguyên của
Trang 24con người Bộ điều khiển danh sách có thể được cung cấp như một phần của sản phẩm quản lý WF hay có thể được viết bởi một người dùng
Sự kích hoạt các mục công việc riêng lẻ từ danh sách công việc (ví dụ khởi động ứng dụng và liên kết dữ liệu liên quan tới WF) có thể nằm dưới sự điều khiển của ứng dụng WF phía khách hay người dùng cuối Một loạt các thủ tục được định nghĩa giữa ứng dụng WF client và dịch vụ sắc lệnh WF để cho phép các mục mới được thêm vào trong danh sách công việc, các hoạt động đã hoàn thành được loại ra khỏi danh sách công việc, các hoạt động tạm thời sẽ bị đình chỉ
Sự triệu gọi ứng dụng có thể cũng được điều khiển từ bộ quản lý danh sách công việc, hoặc trực tiếp hoặc dưới sự kiểm soát của người dùng cuối
Giao diện ứng dụng WF client (tham chiếu giao diện 2 hình 10)
Hình 13: Giao diện ứng dụng phía khách
Trang 25Các chức năng điều khiển tiến trình:
- Tạo/khởi động/kết thúc một tiến trình riêng lẻ cụ thể
- Đình chỉ/bắt đầu lại một tiến trình riêng lẻ
- Ép buộc thay đổi một trạng thái trong một tiến trình đơn lẻ hay một hoạt động
- Gắn hay truy vấn một thuộc tính của một tiến trình hay một hoạt động
Các chức năng điều khiển danh sách công việc/mục công việc:
- Mở/đóng một truy vấn danh sách công việc, thiết lập để chọn lọc các tiêu chuẩn
- Nắm bắt các danh mục danh sách công việc, chọn lọc những thông tin quan trọng
- Khai báo sự lựa chọn/gán lại/hoàn thành một mục công việc cụ thể
- Gán hay truy vấn một thuộc tính mục công việc
Các chức năng giám sát tiến trình:
- Thay đổi trạng thái hoạt động của một định nghĩa tiến trình WF và/hoặc tiến trình hiện còn hoạt động
- Thay đổi trạng thái của toàn bộ tiến trình hoặc hoạt động của một loại cụ thể
- Gán các thuộc tính tới tất cả các tiến trình hay hoạt động của một loại cụ thể
- Chấm dứt toàn bộ tiến trình
Các chức năng điều khiển dữ liệu:
- Lấy lại/trả về dữ liệu liên quan hay ứng dụng WF
Các chức năng quản lý:
- Hỗ trợ thêm các chức năng quản lý thông qua WAPI có thể phù hợp cho các ứng dụng khách nào đó
3.2.4 Các chức năng triệu gọi ứng dụng
Các ứng dụng được triệu gọi (tham chiếu thành phần 3.2 hình 10)
Người ta giả sử rằng bất kỳ sự thực thi WFM riêng biệt nào sẽ không đủ logic để hiểu làm thế nào để triệu gọi tất cả các ứng dụng có khả năng mà phải tồn tại trong một môi trường sản phẩm không đồng nhất Điều này sẽ yêu cầu tính logic để đối phó với sự triệu gọi toàn bộ nền và môi trường mạng, cùng với nghĩa của ứng dụng
Trang 26chuyển đổi hoặc dữ liệu liên quan đến WF trong một khuôn dạng chung và mã hóa
(hoặc chuyển đổi nó thành môi trường ứng dụng riêng lẻ)
Tuy nhiên, có nhiều hệ thống WF mà các hệ thống này phải đối phó với nhiều
hạn chế của các ứng dụng, đặc biệt trong các ứng dụng mà dữ liệu được phân loại rõ
ràng và có thể được kết hợp trực tiếp với một công cụ ứng dụng đặc biệt như bộ xử
lý word hay bảng tính Trong các trường hợp triệu gọi khác của một hoạt động bởi
một ứng dụng riêng biệt có thể hoàn thành nhờ cơ chế trao đổi chuẩn như giao thức
OSI TP hay X.40
Một vài giao diện hợp lý cho việc triệu gọi ứng dụng được xác định trong bảng sau:
Loại giao diện Truy cập dữ liệu có liên quan đến WF Đạt
tiêu chuẩn?
Lời gọi ORB (Đối tượng liên
kết và khởi động dịch vụ) Tham chiếu (Gọi tham số) Có
Lời gọi thực thi từ xa Tham chiếu (Gọi tham số) Có
Trao đổi thông điệp Được nhúng hay thông qua tham chiếu Có
Giao dịch Được nhúng hay thông qua tham chiếu Có
Giao diện triệu gọi các ứng dụng (tham chiếu giao diện 3 hình 10)
Trang 27Hình 14: Giao diện ứng dụng được triệu gọi
Trong trường hợp đơn giản, sự triệu gọi ứng dụng được điều khiển cục bộ tới một
WF Engine, sử dụng thông tin trong định nghĩa tiến trình để xác định bản chất của hoạt động, loại ứng dụng được triệu gọi và bất kỳ yêu cầu dữ liệu nào Các ứng dụng được triệu gọi có thể nằm trong WF Engine, cùng nằm trên một nền tảng hay nằm ở một nơi riêng biệt, nền tảng mạng có thể truy nhập được, định nghĩa tiến trình bao gồm đủ loại ứng dụng và thông tin địa chỉ để triệu gọi ứng dụng
3.2.5 Quản trị hệ thống
Công cụ quản trị và giám sát (tham chiếu thành phần 4 hình 10)
Giao diện sẽ bao gồm các lệnh đặc biệt trong tập hợp WAPI để thực hiện thao tác quản lý thiết kế và các chức năng giám sát Thêm vào đó, việc xem xét chi tiết để biết chắc phần nào giao diện mở rộng có thể sử dụng cơ chế giao thức đang dùng như CMIP và SNMP để quản lý thiết lập và khôi phục trạng thái và thông tin thống
kê được định nghĩa trên nền tảng thông tin quản lý mở (MIB)
Giao diện quản l ý và giám sát (tham chiếu giao diện 5 hình 10)
Giao diện như ví dụ chỉ ra một ứng dụng quản lý độc lập tương tác với các miền
WF khác nhau, mặc dù các kịch bản thay thế cũng có khả năng thực hiện được Ví
Trang 28dụ ứng dụng quản lý có thể là một phần không thể thiếu của một dịch vụ enactment, mặc dù khả năng quản lý các chức năng khác nhau thông qua việc thêm (không đồng bộ) các miền WF
Hình 15: Giao diện quản trị và giám sát hệ thống
Giao diện này cũng có thể thực hiện cho ứng dụng quản lý để đảm nhận các chức năng quản lý khác nhau, được chỉ ra ở dưới
III Tổng kết
Từ các thành phần của WFMS theo mô hình tham chiếu ở trên, ta thấy có 3 chức năng cơ bản của hệ quản trị WF
- Chức năng xây dựng WF: liên quan đến việc định nghĩa và khả năng mô hình
hóa tiến trình WF và các hoạt động cấu thành nó
- Chức năng thực thị WF: liên quan với việc tạo môi trường thực thị WF, giám
sát và điều khiển các thể hiện hoạt động của tiến trình, sắp xếp các bước hoạt động khác nhau trong tiến trình và triệu gọi các nguồn tài nguyên ứng dụng IT và con người phù hợp
- Chức năng tương tác WF: liên quan đến sự tương tác giữa phần mềm điều
khiển tiến trình với người sử dụng và với các công cụ ứng dụng IT để xử lý các bước hoạt động khác nhau
Tóm tắt phần I đã trình bày đầy đủ nền tảng cơ sở WF Đồng thời tìm hiểu kiến trúc
hệ thống quản lý WF (dựa vào chuẩn do tổ chức WFMC đưa ra) Để WF có thể mở
Trang 29rộng tương tác với các ứng dụng khác hay các bộ máy WF khác Tổ chức WFMC cũng đã đưa ra các chuẩn tương tác (chuẩn giao diện 4, 5) hỗ trợ hệ thống WF triệu gọi các ứng dụng từ xa và tương tác với các bộ máy WF khác Từ đó cho thấy WF hoàn toàn là công nghệ có thể ứng dụng trong lĩnh vực tích hợp ứng dụng Như vậy,
ta có thể sử dụng WF để mô hình cho một ứng dụng nào đó, vấn đề đặt ra khi tích hợp các ứng dụng với nhau thì WF đóng vai trò gì?
Sau đây ta tìm hiểu các vấn đề tích hợp ứng dụng như mô hình, kiến trúc Sau đó ta tìm hiểu WF đóng vài trò nào trong tích hợp ứng dụng, hay nó nằm ở đâu trong kiến trúc tích hợp ứng dụng Lựa chọn một framework tích hợp dựa trên công nghệ WF
để xây dựng ứng dụng e-learning
Trang 30CHƯƠNG II TÍCH HỢP ỨNG DỤNG DỰA TRÊN WF
I Tích hợp ứng dụng
Xuất phát từ nhu cầu chia sẻ thông tin ngày càng phát triển không chỉ các phòng ban trong một tổ chức mà còn giữa các tổ chức với nhau Vì vậy các nhà phát triển phần mềm đưa ra giải pháp tích hợp hay còn gọi là tích hợp ứng dụng Vậy tích hợp ứng dụng là gì ? Là sự chia sẽ dữ liệu và các quy trình nghiệp vụ không giới hạn
giữa bất kỳ ứng dụng hay kho dữ liệu nào đã được kết nối trong thương mại (Theo
Linthicum năm 2000) [8] Mục đích chính của tích hợp là cung cấp thông tin có giá
trị cho toàn bộ tổ chức nhằm thích ứng với sự phát triển của thị trường Vấn đề chính cần giải quyết trong tích hợp ứng dụng là trao đổi thông tin giữa các ứng dụng không đồng nhất Hay nói cách khác, ta cần trả lời cho câu hỏi: Làm cách nào mà chúng ta đảm bảo rằng các ứng dụng không đồng nhất, được thiết kế ở các thời kỳ khác nhau, bởi các đội phát triển khác nhau, và sử dụng các công nghệ khác nhau,
có thể giao tiếp với nhau mà không cần biết rõ về nhau Để trả lời cho câu hỏi đó, ta tìm hiểu hai vấn đề chính trong tích hợp ứng dụng là: ngữ nghĩa và trao đổi thông tin
1.1 Các vấn đề trong tích hợp
1.1.1 Ngữ nghĩa
‘Ngữ nghĩa’ là vấn đề trả lời cho câu hỏi làm sao để các ứng dụng hiểu được
nhau (ứng dụng này hiểu được ứng dụng kia thực thi cái gì, cho phép tương tác cái
gì và thông qua giao diện nào?) Để các ứng dụng hiểu được nhau thì chúng phải có cùng phải thông qua một mô hình giao tiếp chung và mô tả cách thức tích hợp giống nhau Sau đây ta trình bày các mô hình giao tiếp, và cách thức tích hợp trong tích hợp ứng dụng
1.1.1.1 Mô hình giao tiếp
Mô hình giao tiếp là cách thức các hệ thống có thể tương tác với nhau
Có 2 sự lựa chọn mô hình giao tiếp:
Trang 31- Giao tiếp đồng bộ: Giao tiếp này yêu cầu cơ sở hạ tầng mạng tin cậy Nếu
cơ sở hạ tầng mạng không đáng tin cậy, người gửi có thể ở chế độ đợi trong khi yêu cầu bị mất trên đường truyền Có 3 loại phổ biến: Request/reply, One-way, Polling
- Giao tiếp không đồng bộ: Là giao tiếp có ích khi mục đích giao tiếp là
chuyển thông tin Hơn thế nữa, nó có thể hoạt động trong môi trường không đáng tin cậy Có ba loại: Chuyển thông điệp, Publish/subscribe, Broadcast
1.1.1.2 Các phương thức tích hợp
Phương thức tích hợp là phương pháp được sử dụng để xây dựng một yêu cầu từ người gửi đến người nhận Có hai phương pháp chính:
- Gửi thông điệp: Trong phương pháp này, người gửi xây dựng thông điệp
chứa: thông tin trên hành động mong đợi (thông tin điều khiển) và dữ liệu để thực thi các hành động đó Phương pháp này cung cấp nhiều sự linh hoạt vì thông tin điều khiển có thể dễ dàng thay đổi Nhược điểm khả năng ẩn đối với nhà thiết kế
- Định nghĩa giao diện: Người gửi giao tiếp thông qua một giao diện, trong
đó xác định các hành động có thể được triệu gọi bởi một ứng dụng Bất kỳ dữ liệu nào được xử lý, đều được gửi thông qua giao diện
Nhận xét: Sự khác nhau giữa 2 phương thức tích hợp này đó là:
Tích hợp dựa trên giao diện Tích hợp dựa trên thông điệp
- Giao diện được gắn liền với một ứng
- Giao diện làm cho ứng dụng trông
giống một thủ tục hay một đối tượng
Sử dụng ngôn ngữ như C, C++,Java
- Dễ dàng hơn trong việc tái sử dụng và
Trang 32Liên quan đến phương thức tích hợp là khái niệm Bộ kết nối - Connectors (hay Adapter) Trong đó, ứng dụng yêu cầu một điểm truy nhập mà cho phép một thông điệp hay một lời triệu gọi trên giao diện được chuyển qua vào ứng dụng Bộ kết nối
là điểm truy nhập - là một giao diện vào ứng dụng mà định nghĩa các yêu cầu mà người nhận sẽ chấp nhận trong khi ẩn dưới sự phức tạp của hoàn thành tích hợp
1.1.2 Trao đổi thông tin
Sau khi các ứng dụng đã hiểu được nhau thì vấn đề tiếp theo là làm thế nào để các ứng dụng có thể trao đổi thông tin với nhau Để các ứng dụng có thể trao đổi thông tin với nhau ta cần tạo ra môi trường thực thi tích hợp – môi trường trung gian Ngoài ra còn có thành phần service hỗ trợ giao tiếp giữa các ứng dụng
sử dụng phương thức tích hợp định nghĩa giao diện Mặc dù ưu điểm đơn giản nhưng yêu cầu bộ máy xử lý gửi yêu cầu lớn, tốn chi phí Khả năng mở rộng kém, ít
sử dụng trong các ứng dụng hiện nay
b) Tầng trung gian hướng thông điệp (MOM)
Trang 33MOM là loại tầng trung gian sử dụng các thông điệp, nó cung cấp khả năng tạo, điều khiển, lưu trữ và giao tiếp những thông điệp này MOM truyền thống là phần mềm hàng đợi sử dụng thông điệp là các đơn vị thông tin dưới dạng byte
Hình 17: Tầng trung gian hướng thông điệp (MOM)
Có hai mô hình được hỗ trợ bởi MOM là: point to point và hàng đợi thông điệp (MQ) (loại thứ 2 thông dụng hơn) MQ thực thi theo mô hình không đồng bộ, sử dụng bộ quản lý thông điệp để đặt và lấy các thông điệp gửi và nhận từ hàng đợi
Ưu điểm sử dụng thông điệp tương đối dễ quản lý, ứng dụng không bị chen ngang bởi lớp tầng trung gian Ít bị lỗi khi lỗi mạng Có rất nhiều công cụ dựa trên MOM như: MQIntegrator của IBM, SagaVista của Saga [9] Tầng trung gian này thích hợp cho loại mô hình tích hợp đồng nhất dữ liệu và xử lý đa bước, không hiệu quả trong loại tích hợp thành phần
c) Công nghệ đối tượng phân tán (DOT)
DOT là loại tầng trung gian mà mở rộng khái niệm công nghệ hướng đối đối tượng đến xử lý phân tán DOT cung cấp khả năng tạo các giao diện hướng đối tượng đến các ứng dụng mà có thể truy nhập các ứng dụng khác Cũng giống RPC, DOT sử dụng mô hình giao tiếp đồng nhất (cho phép truyền lời triệu gọi đến các giao diện) và phương thức tích hợp định nghĩa giao diện (trong việc tạo các đối tượng phân tán)
Trang 34Hình 18: Tầng trung gian hướng đối tượng phân tán (DOT)
Có hai loại đối tượng phân tán: CORBA và Mô hình đối tượng thành phần (COM) CORBA được tạo bởi tổ chức OMG [10], là chuẩn hơn là một công nghệ Nó cung cấp các đặc tả phác họa các quy tắc giúp nhà phát triển khi tạo các đối tượng phân tán CORBA CORBA có khả năng ứng dụng trên nhiều nền COM là chuẩn đối tượng phân tán, cũng giống như CORBA nó cung cấp các quy tắc để tạo các đối tượng COM (những quy tắc bao gồm các chuẩn giao diện và các giao thức giao tiếp) Trong khi các đối tượng COM đã có trên nền Window DOT tương thích với tạo các hệ thống dựa trên thành phần
Có thể kết hợp công nghệ MOM và DOT để giải quyết một số các vấn đề trong tích hợp
d) Tầng trung gian hướng cơ sở dữ liệu
Tầng trung gian là loại phần mềm giúp giao tiếp dễ dàng với CSDL Nhà phát triển
sử dụng tầng trung gian hướng CSDL như bộ máy để trích rút thông tin từ CSDL từ
xa hay địa phương
Hình 19: Tầng trung gian hướng cơ sở dữ liệu
Trang 35Tầng trung gian hướng CSDL làm việc với hai loại CSDL cơ bản: Giao diện mức lời gọi (CLIs) và tầng trung gian CSDL nguyên thủy
e) Bộ giám sát xử lý giao dịch (TPMs)
TPM là loại phần mềm mà duy trì tính toàn vẹn của một giao dịch Chúng hỗ trợ các đặc tính như quay lui (rollback), vượt qua lỗi (failover), tự động khởi động lại (auto restart), lưu vết lỗi (error logging), tái tạo loại trừ các điểm lỗi đơn TPMs đảm bảo rằng một giao dịch duy trì các đặc tính ACID (atomicity, consistency, isolation, durability) trong suốt chu trì sống của nó
TPMs cho phép một giao dịch được tạo thành bởi người gửi và sau đó đảm bảo rằng
nó đến đúng nơi, đúng thời điểm và đã hoàn thành theo đúng thứ tự Điều này có thể xuất hiện như là lời xác nhận đơn giản, nhưng TPMs là loại phức tạp nhất trong tất cả các loại tầng trung gian
Nhiều công cụ tích hợp ứng dụng sử dụng TPMs như công nghệ cơ bản Chức năng TPM được tích hợp vào cả hai công nghệ MOM và DOT
Kết luận: Việc lựa chọn loại tầng trung gian phù thuộc vào giải quyết vấn nào trong
tích hợp ứng dụng đó Một kiến trúc tích hợp mạnh yêu cầu các công nghệ MOM, DOT, TPM được tích hợp vào một framework đồng nhất
1.1.2.2 Các dịch vụ
Mô hình giao tiếp, phương thức tích hợp, và tầng trung gian là lõi của bất kỳ giải pháp tích hợp nào Các dịch vụ là phần tử then chốt cuối cùng
Một service là một mở rộng chức năng đến giao tiếp cơ bản hay khả năng tầng trung
gian Các dịch vụ không phải là một phần lõi, nhưng chúng trợ giúp đáng kể cho nhà thiết kế và nhà phát triển thực thi giải pháp Các dịch vụ hướng tới giảm gánh nặng của việc ứng dụng các công nghệ lõi Chúng cũng nâng cấp các công nghệ lõi đáp ứng các đặc tính mong muốn như bảo mật hay độ tin cậy
1.2 Các kiến trúc tích hợp
1.2.1 Kiến trúc point–to-point
Kiến trúc này [16] liên kết các ứng dụng thông qua liên kết giao diện lập trình ứng dụng trực tiếp (API), giao thức truyền file (FTP), hay các giao diện batch Nói
Trang 36chung, các giao diện point-to-point được thực thi mà không sử dụng sản phẩm tích hợp nào, với việc biến đổi dữ liệu diễn ra sử dụng mã lệnh ở điểm tích hợp
Trang 37Hình 21: Kiến trúc Hub&Bus
Đặc điểm:
Hầu hết các bộ môi giới trong thị trường cung cấp một vài hay tất cả các đặc tính sau:
- Sự biến đổi thông điệp sử dụng các công cụ mapping tinh xảo
- Định tuyến thông điệp dựa trên chủ đề\nội dung của đầu vào dữ liệu
- Quản lý các xử lý phức tạp
- Giám sát và kiểm tra các giao dịch hay các luồng dữ liệu
- Các bộ adapter (COTS) cho việc kết nối các ứng dụng đến Bộ môi giới (hay hub) (Adaptersfor EDI, SWIFT, XML, database )
Ưu điểm:
- Kiến trúc này ngăn cản kết nối chặt chẽ giữa ứng dụng nguồn và ứng dụng đích
- Giảm số giao diện kết nối hơn so với kiến trúc point to point vì sử dụng bộ môi giới trung tâm
- Giảm lập trình ứng dụng cho phần tích hợp ở các ứng dụng ví dụ: sự biến đổi
và các quy tắc định tuyến dữ liệu không phải là mã cứng bên trong ứng dụng mà thay vào đó được lưu giữ bên trong kho lưu trữ trung tâm
Nhược điểm:
Trang 38- Vì tất cả dữ liệu được truyền đều thông qua Bộ môi giới, nên dễ dẫn tới hiện tượng thắt nút cổ chai, tác động đến hiệu năng của việc tích hợp ứng dụng
- Kiến trúc Hub & Spoke làm cho Bộ môi giới trở thành một điểm lỗi đơn Ví dụ trong trường hợp các hệ thống được phân tán về mặt địa l ý, thực thi kiến trúc hub đơn đưa ra khó khăn thật sự
1.2.3 Kiến trúc Bus-Oriented
Trong kiến trúc này [16], tất cả các nút được liên kết trong một chuỗi dọc theo sườn giao tiếp chung Dữ liệu (hay thông điệp) mà được gửi giữa các ứng dụng liên kết nối, được truyền dọc theo bus đến adapter Adapter điều khiển sự biến đổi dữ liệu, định tuyến kế tiếp đến nút nhận
Hình 22: Kiến trúc Bus - Oriented
Ưu điểm:
- Vì chức năng môi giới không trú ẩn trung tâm, không có điểm lỗi đơn
Trang 39- Kiến trúc này có khả năng mở rộng hơn Vì định dạng dữ liệu gửi không kết dính chặt chẽ với các ứng dụng nhận
Nhược điểm:
- Kiến trúc này yêu cầu phát triển mỗi adapter cho mỗi ứng dụng tích hợp Vì thế
nó là kiến trúc tích hợp tốt khi số lượng ứng dụng tích hợp giới hạn không quá nhiều Hiện nay, trong khi mỗi ứng dụng cần chia sẻ thông tin với một số các thực thể không thể biết trước, ở các vị trí khác nhau, cách tiếp cận này không thích hợp
1.2.4 Kiến trúc hướng đối tượng phân tán
Các đối tượng trong mạng có thể được phân tán thông qua sự mở rộng khái niệm hướng đối tượng Các đối tượng này có thể được phân tán trên các máy chủ khác nhau và được đánh địa chỉ qua các bộ Adapter Các công nghệ được biết tốt nhất là kiến trúc môi giới yêu cầu đối tượng chung (CORBA), và mô hình đối tượng thành phần/ mô hình đối tượng thành phần phân tán (COM/DCOM)
Hình 23: Kiến trúc hướng đối tượng phân tán
1.3 Các công nghệ tích hợp
Sau khi tìm hiểu các kiến trúc tích hợp ta có thể tổng kết các công nghệ hiện nay sử dụng trong tích hợp như sau:
Trang 40Ta phân loại các công nghệ dựa theo mô hình tích hợp và mô hình giao tiếp
Có 3 loại mô hình tích hợp:
- Mô hình hướng chức năng
+ Giao tiếp thông qua thủ tục hoặc lời gọi thủ tục
+ Thiếu sự đóng gói dẫn đến sự kết dính mạnh
- Mô hình hướng đối tượng
+ Giao tiếp qua các lời gọi phương thức
+ Đóng gói thông qua các giao diện được định nghĩa
- Mô hình hướng dịch vụ
+ Dịch vụ được tìm thấy trong bộ đăng ký
+ Thường được truy nhập dựa trên thông điệp, độ kết dính kém
Các công nghệ tích hợp
- Lời gọi thủ tục từ xa (RPC) và lời gọi phương thức từ xa (RMI)
RPC
+ Giao thức cho lời gọi thủ tục và các hàm từ xa
+ Ẩn việc truyền tải chi tiết
+ Giao tiếp đồng bộ
RMI
+ Tương tự như RPC