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

Nghiên cứu ứng dụng kiến trúc SOA trong mô hình ứng dụng doanh nghiệp

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

LỜI CAM ĐOAN

Tôi – Phạm Đức Thọ, học viên lớp Cao học CNTT 2010 – 2012 Trƣờng Đại
học Bách khoa Hà Nội – cam kết Luận văn tốt nghiệp 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. Tạ Tuấn Anh, Viện Khoa học và công nghệ
Việt Nam.
Các kết quả trong Luận văn tốt nghiệp là trung thực, không sao chép toàn văn
của bất kỳ công trình nào khác.

Hà Nội, ngày 10 tháng 03 năm 2012
Học viên: Phạm Đức Thọ
Lớp: 10BCNTT-HV

1


LỜI CẢM ƠN
Tôi xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo, TS. Tạ Tuấn Anh, Viện Khoa
học và công nghệ Việt Nam, đã khuyến khích và rất tận tình hƣớng dẫn tôi trong
suốt quá trình thực hiện luận văn. Nhờ sự quan tâm chỉ bảo và những ý kiến đóng
góp quý báu của thầy, tôi mới có thể hoàn thành luận văn này.
Tôi xin chân thành cảm ơn tập thể các thầy, cô giáo trƣờng Đại học Bách
Khoa Hà Nội nói chung và Viện Công Nghệ Thông Tin và Truyền Thông nói riêng
đã tận tình giảng dạy truyền đạt cho tôi những kiến thức, kinh nghiệm quý báu trong
suốt những năm học vừa qua.
Tôi cũng xin cảm ơn các giảng viên đồng nghiệp ở trƣờng Đại học Hùng
Vƣơng đã tạo điều kiện về thời gian để tôi có thể học tập và hoàn thành luận văn.
Cuối cùng tôi xin chân thành cảm ơn gia đình, ngƣời thân đã hết lòng giúp đỡ,
hỗ trợ về vật chất lẫn tinh thần giúp tôi yên tâm học tập và nghiên cứu trong suốt
quá trình học tập và thực hiện luận văn.


2


MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................1
LỜI CẢM ƠN .............................................................................................................2
MỤC LỤC ..................................................................................................................3
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT ..................................................................6
DANH MỤC BẢNG ...................................................................................................7
DANH MỤC HÌNH ....................................................................................................8
MỞ ĐẦU .................................................................................................................. 11
1. Lý do chọn đề tài ............................................................................................. 11
2. Mục đích, phạm vi nghiên cứu .........................................................................11
3. Đối tƣợng nghiên cứu ...................................................................................... 12
4. Phƣơng pháp nghiên cứu ................................................................................. 12
5. Nhiệm vụ nghiên cứu....................................................................................... 12
CHƢƠNG 1: HỆ THỐNG THÔNG TIN DOANH NGHIỆP THEO MÔ HÌNH
KIẾN TRÚC HƢỚNG DỊCH VỤ ............................................................................. 13
1.1. Hệ thống thông tin doanh nghiệp ..................................................................13
1.1.1. Khái niệm ............................................................................................. 13
1.1.2. Phân loại các HTTT dùng trong doanh nghiệp ..................................... 13
1.2. Mô hình kiến trúc hƣớng dịch vụ ứng dụng trong HTTT doanh nghiệp ........15
1.2.1. Tổng quan về kiến trúc hướng dịch vụ .................................................. 15
1.2.2. Kiến trúc của SOA ................................................................................ 16
1.2.3. Các công nghệ được áp dụng ................................................................ 21
1.2.4. Lợi ích khi sử dụng mô hình SOA trong thiết kế và xây dựng HTTT
doanh nghiệp ..................................................................................................... 30
CHƢƠNG 2: MÔ HÌNH HÓA QUY TRÌNH NGHIỆP VỤ TRONG HTTT
DOANH NGHIỆP THEO KIẾN TRÚC SOA ........................................................... 35
2.1. Quy trình nghiệp vụ ...................................................................................... 35


3


2.1.1. Khái niệm quy trình nghiệp vụ .............................................................. 35
2.1.2. Mô hình hóa quy trình nghiệp vụ .......................................................... 36
2.1.3. Một số công cụ hỗ trợ việc mô hình hóa quy trình nghiệp vụ theo kiến
trúc SOA............................................................................................................ 39
2.2. Giới thiệu BPMN 2.0 ................................................................................... 40
2.2.1. Khái niệm cơ bản .................................................................................. 40
2.2.2. Các kí pháp cơ bản trong BPMN 2.0 .................................................... 41
2.2.3. So sánh BPMN 2.0 với biểu đồ hoạt động của UML ............................. 46
CHƢƠNG 3: MÔ HÌNH HÓA QUY TRÌNH NGHIỆP VỤ BẰNG BPMN 2.0.........48
3.1. Chuyển đổi mô hình truyền thống sang BPMN 2.0 ......................................48
3.2. Một số quy trình nghiệp vụ đơn giản ............................................................ 48
3.2.1. Quy trình nghiệp vụ xem thông tin chi tiết hồ sơ học sinh ..................... 48
3.2.2. Quy trình nghiệp vụ tra cứu hồ sơ học sinh .......................................... 51
3.2.3. Quy trình nghiệp vụ đăng nhập không nhớ mật khẩu ........................... 54
3.2.4. Quy trình nghiệp vụ học sinh nộp bài tập về nhà................................... 56
3.2.5. Quy trình nghiệp vụ sửa thông tin hồ sơ học sinh.................................. 58
3.2.6. Quy trình nghiệp vụ phân lớp tự động .................................................. 60
3.3. Quy trình nghiệp vụ có nhiều tác nhân cùng tham gia ...................................63
3.3.1. Quy trình nghiệp vụ xin nghỉ phép cho giáo viên .................................. 63
3.3.2. Quy trình nghiệp vụ xin miễn giảm học phí ........................................... 65
3.3.3. Quy trình đề nghị thanh toán Dạy trung tâm ......................................... 66
CHƢƠNG 4: ÁP DỤNG CÔNG CỤ HỖ TRỢ BPMN 2.0 TỰ ĐỘNG HÓA MỘT
SỐ QUY TRÌNH NGHIỆP VỤ ................................................................................. 69
4.1. Giới thiệu Activiti ........................................................................................ 69
4.1.1. Tổng quan ............................................................................................. 69
4.1.2. Cài đặt .................................................................................................. 69

4.2. Triển khai Activiti 5.9 để mô hình hóa quy trình nghiệp vụ bằng BPMN 2.0 72
4.3. Sử dụng công cụ Activiti tự động hóa một số quy trình nghiệp vụ ................ 76
4.3.1. Quy trình nghiệp vụ xin nghỉ phép cho giáo viên .................................. 76

4


4.3.2. Quy trình nghiệp vụ xin miễn giảm học phí ........................................... 85
4.3.3. Quy trình đề nghị thanh toán Dạy trung tâm ......................................... 91
4.4. Đánh giá .......................................................................................................98
4.4.1. Ưu điểm của BPMN 2.0 ........................................................................ 98
4.4.2. Nhược điểm của BPMN 2.0................................................................... 99
KẾT LUẬN ............................................................................................................. 100
1. Các nội dung đã hoàn thành trong luận văn ................................................... 100
2. Các đóng góp khoa học.................................................................................. 100
3. Hạn chế của luận văn ..................................................................................... 101
4. Hƣớng phát triển luận văn ............................................................................ 101
TÀI LIỆU THAM KHẢO ....................................................................................... 103

5


DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT
Chữ viết tắt

Chữ viết đầy đủ

BGH

Ban giám hiệu


BPM

Business Process Management

BPEL

Business Process Execution Language

BPMN

Business Process Modeling Notation

CRM

Customer Relationship Management

E- commerce

Electronic commerce

EAI

Enterprise application integration

ERP

Enterprise Resource Planning

HTTT


Hệ thống thông tin

GVCN

Giáo viên chủ nhiệm

JAX-RPC

Java APIs for XML-Based Remote Procedure Call

JAXM

Java API for XML Messaging

NSD

Ngƣời sử dụng

SCM

Supply Chain Management

SOA

Service-Oriented Architecture

SOAP

Simple Object Access Protocol


SRM

Supplier Relationship Management

UML

Unified Modeling Language

6


DANH MỤC BẢNG
Bảng 3-1 Mô tả quy trình nghiệp vụ xem thông tin chi tiết hồ sơ học sinh .................. 48
Bảng 3-2 Mô tả nghiệp vụ tra cứu hồ sơ học sinh ....................................................... 51
Bảng 3-3 Mô tả quy trình nghiệp vụ đăng nhập không nhớ mật khẩu ......................... 54
Bảng 3-4 Mô tả quy trình nghiệp vụ học sinh nộp bài tập về nhà ................................ 56
Bảng 3-5 Mô tả quy trình nghiệp vụ sửa thông tin hồ sơ học sinh ............................... 58
Bảng 3-6 Mô tả quy trình nghiệp vụ phân lớp tự động ................................................ 60
Bảng 3-7 Mô tả nghiệp vụ xin nghỉ phép cho giáo viên .............................................. 64
Bảng 3-8 Mô tả nghiệp vụ xin miễn giảm học phí ...................................................... 65
Bảng 3-9 Mô tả nghiệp vụ Đề nghị thanh toán dạy trung tâm ..................................... 67

7


DANH MỤC HÌNH
Hình 1.1 Mô hình cơ bản của SOA ............................................................................. 16
Hình 1.2 Kiến trúc tổng quan của SOA....................................................................... 17
Hình 1.3 Kiến trúc phân tầng chi tiết của SOA ........................................................... 18

Hình 1.4 Mô hình triển khai SOA trong thực tế. ......................................................... 19
Hình 1.5 Mô hình cơ bản của Web Service ................................................................. 20
Hình 1.6 Mô hình khung của Openwings .................................................................... 25
Hình 1.7 Mô hình ESB ............................................................................................... 28
Hình 2.1 Quy trình học sinh hoàn thành môn học ....................................................... 36
Hình 2.2 Các Event trong BPMN ............................................................................... 42
Hình 2.3 Các kiểu Activities trong BPMN .................................................................. 43
Hình 2.4 Các kiểu Sub-Process ................................................................................... 43
Hình 2.5 Các loại Gateway ......................................................................................... 44
Hình 2.6 Các đối tƣợng kết nối ................................................................................... 45
Hình 2.7 Các loại Artifacts ......................................................................................... 46
Hình 3.1 Mô hình nghiệp vụ xem thêm thông tin chi tiết hồ sơ học sinh ..................... 50
Hình 3.2 Mô hình hóa quy trình nghiệp vụ xem thông tin chi tiết hồ sơ học sinh
bằng BPMN 2.0 .......................................................................................................... 51
Hình 3.3 Mô hình nghiệp vụ tra cứu hồ sơ học sinh .................................................... 53
Hình 3.4 Mô hình hóa quy trình nghiệp vụ tra cứu hồ sơ học sinh bằng BPMN 2.0 ... 54
Hình 3.5 Biểu đồ hoạt động UML nghiệp vụ đăng nhập không nhớ mật khẩu ............ 55
Hình 3.6 Mô hình hóa quy trình nghiệp vụ đăng nhập không nhớ mật khẩu bằng
BPMN 2.0 .................................................................................................................. 56
Hình 3.7 Biểu đồ hoạt động UML nghiệp vụ nộp bài tập về nhà ................................. 57
Hình 3.8 Mô hình hóa quy trình nghiệp vụ nộp bài tập về nhà bằng BPMN 2.0 .......... 58
Hình 3.9 Biểu đồ luồng xử lý chức năng quy trình sửa thông tin hồ sơ học sinh ......... 59
Hình 3.10 Mô hình hóa quy trình nghiệp vụ sửa thông tin hồ sơ học sinh bằng
BPMN 2.0 .................................................................................................................. 60
Hình 3.11 Biểu đồ luồng xử lý chức năng nghiệp vụ phân lớp tự động ....................... 62
8


Hình 3.12 Mô hình hóa quy trình phân lớp tự động bằng BPMN 2.0 .......................... 63
Hình 3.13 Mô hình quy trình nghiệp vụ xin nghỉ phép cho giáo viên .......................... 65

Hình 3.14 Quy trình nghiệp vụ xin miễn giảm học phí ............................................... 66
Hình 3.15 Quy trình đề nghị thanh toán tiền dạy trung tâm ......................................... 68
Hình 4.1 Màn hình chính Activiti Explorer ................................................................. 70
Hình 4.2 Công cụ Activiti Modeler ............................................................................. 71
Hình 4.3 Công cụ Activiti Probe ................................................................................. 71
Hình 4.4 Công cụ Activiti Cycle ................................................................................. 72
Hình 4.5 Mô hình hóa quy trình bằng BPMN 2.0 trên Eclipse .................................... 73
Hình 4.6 Đăng nhập bằng quyền quản trị hệ thống ..................................................... 74
Hình 4.7 Tải thêm quy trình vào Activiti Explorer ...................................................... 74
Hình 4.8 Màn hình quản lý các quy trình hiện có ........................................................ 75
Hình 4.9 Màn hình khởi động quy trình đã mô hình hóa bằng BPMN 2.0 ................... 76
Hình 4.10 Mô hình quy trình nghiệp vụ xin nghỉ phép cho giáo viên .......................... 76
Hình 4.11 Giáo viên đăng nhập để xin nghỉ phép........................................................ 79
Hình 4.12 Màn hình chính Activiti Explorer ............................................................... 79
Hình 4.13 Chọn khởi động quy trình xin nghỉ phép .................................................... 79
Hình 4.14 Hoàn thiện thông tin xin nghỉ ..................................................................... 80
Hình 4.15 Ngƣời quản lý đăng nhập ........................................................................... 81
Hình 4.16 Màn hình chính Activiti Explorer của ngƣời quản lý .................................. 81
Hình 4.17 Các công việc đang chờ xử lý .................................................................... 81
Hình 4.18 Nhận việc xử lý yêu cầu xin nghỉ phép....................................................... 82
Hình 4.19 Xử lý yêu cầu và hoàn thành ...................................................................... 83
Hình 4.20 Nhận lại yêu cầu thay đổi ........................................................................... 83
Hình 4.21 Gửi lại yêu cầu ........................................................................................... 84
Hình 4.22 GV gửi lại yêu cầu đã sửa .......................................................................... 84
Hình 4.23 Quy trình nghiệp vụ xin miễn giảm học phí ............................................... 85
Hình 4.24 Học sinh đăng nhập vào hệ thống ............................................................... 87
Hình 4.25 Chọn quy trình Xin miễn giảm học phí ...................................................... 87

9



Hình 4.26 Điền đầy đủ thông tin vào form khởi động ................................................. 88
Hình 4.27 Quy trình đã đƣợc khởi động...................................................................... 88
Hình 4.28 GVCN nhận phần việc của mình ................................................................ 89
Hình 4.29 GVCN Xử lý công việc .............................................................................. 89
Hình 4.30 Quy trình chuyển tiếp công việc đến BGH ................................................. 90
Hình 4.31 BGH Xử lý công việc ................................................................................. 90
Hình 4.32 Quy trình đề nghị thanh toán tiền dạy trung tâm ......................................... 91
Hình 4.33 GV chọn quy trình Thanh toán Dạy trung tâm............................................ 93
Hình 4.34 GV nhập các thông tin để tiến hành thanh toán .......................................... 94
Hình 4.35 Công việc xuất hiện trong hàng chờ của giáo vụ ........................................ 94
Hình 4.36 Giáo vụ xử lý yêu cầu ................................................................................ 95
Hình 4.37 Giáo viên nhận lại yêu cầu ......................................................................... 95
Hình 4.38 Tải lên tài nguyên đính kèm ....................................................................... 96
Hình 4.39 Giáo vụ nhận lại yêu cầu ............................................................................ 96
Hình 4.40 Quản lý đào tạo nhận việc .......................................................................... 97
Hình 4.41 Thủ quỹ hoàn thành quy trình thanh toán ................................................... 97

10


MỞ ĐẦU
1. Lý do chọn đề tài
Hiện nay nhiều dịch vụ trên Internet cũng nhƣ trong các công ty đƣợc thiết kế
theo kiến trúc SOA (Service Oriented Architechture - kiến trúc hƣớng dịch vụ).
Dịch vụ là yếu tố then chốt trong SOA, nó giúp cho các doanh nghiệp có thể tích
hợp các thành phần hiện có vào các ứng dụng mới và các thành phần này có thể
đƣợc chia sẻ hoặc tái sử dụng trong nhiều lĩnh vực khác nhau của công ty đó mà
không cần phải chỉnh sửa mã nguồn hay phải tái cấu trúc lại hệ thống.
Xuất phát từ lợi ích của việc xây dựng hệ thống thông tin doanh nghiệp theo

hƣớng SOA nên ngày càng nhiều công ty áp dụng SOA trong việc thiết kế các hệ
thống thông tin doanh nghiệp của mình nhằm đạt đƣợc mức độ linh hoạt cao trong
kinh doanh. Chính vì lẽ đó tôi chọn đề tài “Nghiên cứu ứng dụng kiến trúc SOA
trong mô hình ứng dụng doanh nghiệp” là đề tài luận văn tốt nghiệp.
2. Mục đích, phạm vi nghiên cứu
 Nghiên cứu tìm hiểu về SOA, hệ thống thông tin doanh nghiệp, đƣa ra đƣợc
các lợi ích khi sử dụng SOA trong thiết kế và xây dựng hệ thống thông tin
doanh nghiệp.
 Nghiên cứu tìm hiểu về mô hình hóa quy trình nghiệp vụ và nghiên cứu cách
thức sử dụng kí pháp của BPMN 2.0. Từ đó mô hình hóa một số quy trình
nghiệp vụ trƣờng học.
 So sánh các ƣu điểm của BPMN 2.0 với biểu đồ hoạt động UML.
 Chuyển đổi một số mô hình quy trình nghiệp vụ dạng truyền thống sang
BPMN 2.0.
 Áp dụng phần mềm Activiti 5.9 để tiến hành tự động hóa một số quy trình
nghiệp vụ trƣờng học đã đƣợc mô hình hóa bằng BPMN 2.0.

11


3. Đối tượng nghiên cứu
- Các quy trình nghiệp vụ trong một tổ chức, doanh nghiệp.
- Kiến trúc SOA
- Ngôn ngữ mô hình hóa BPMN 2.0
- Phần mềm Activiti 5.9
4. Phương pháp nghiên cứu
Các phƣơng pháp nghiên cứu đã đƣợc áp dụng bao gồm:
- Phƣơng pháp nghiên cứu lý thuyết, tổng hợp tài liệu.
- Phƣơng pháp ứng dụng minh họa.
- Phƣơng pháp nghiên cứu thực tiễn.

5. Nhiệm vụ nghiên cứu
 Tìm hiểu khái quát về kiến trúc SOA, hệ thống thông tin doanh nghiệp,
sau đó tập trung vào tìm hiểu về BPMN 2.0, quy trình nghiệp vụ, và mô
hình hóa quy trình nghiệp vụ bằng BPMN 2.0.
 So sánh BPMN 2.0 với biểu đồ hoạt động UML.
 Nghiên cứu sử dụng công cụ Activiti 5.9 để tự động hóa các quy trình
nghiệp vụ đã đƣợc mô hình hóa bằng BPMN 2.0.

12


CHƢƠNG 1: HỆ THỐNG THÔNG TIN DOANH NGHIỆP THEO
MÔ HÌNH KIẾN TRÚC HƢỚNG DỊCH VỤ
1.1.

Hệ thống thông tin doanh nghiệp

1.1.1. Khái niệm
Hệ thống thông tin doanh nghiệp là hệ thống hỗ trợ cho các quy trình nghiệp
vụ của một tổ chức với các chức năng nhƣ sản xuất, phân phối, bán hàng, kế toán,
tài chính và nhân sự.
Các thành phần chính trong hệ thống thông tin doanh nghiệp gồm:
 Hệ thống hoạch định nguồn lực doanh nghiệp (Enterprise Resource
Planning - ERP)
 Hệ thống quản trị quan hệ khách hàng (Customer Relationship
Management - CRM) và hệ thống quản trị quan hệ nhà cung cấp
(Supplier Relationship Management - SRM)
 Hệ thống quản trị chuỗi cung ứng (Supply Chain Management - SCM)

1.1.2. Phân loại các HTTT dùng trong doanh nghiệp

Có nhiều cách phân loại các HTTT dùng trong doanh nghiệp. Dƣới đây là
cách phân loại dựa trên loại hỗ trợ mà HTTT cung cấp.
1.1.2.1.

Các hệ thống hỗ trợ hoạt động
 Hệ thống xử lý giao dịch (xử lý giao dịch kinh doanh)
 Hệ thống điều khiển tiến trình (điều khiển các quá trình công nghiệp)
 Hệ thống cộng tác xí nghiệp (hỗ trợ giao tiếp, cộng tác trong doanh
nghiệp)

Các hệ thống hỗ trợ hoạt động, hay các HTTT tác nghiệp, xử lý các dữ liệu
dùng cho các hoạt động kinh doanh và sinh ra trong các hoạt động đó. Các hệ thống

13


này sinh ra nhiều sản phẩm thông tin dùng bên trong và bên ngoài doanh nghiệp.
Chúng thƣờng đảm nhận các vai trò sau đây:
 Xử lý một cách hiệu quả các giao dịch kinh doanh,
 Điều khiển các tiến trình công nghiệp (thí dụ quá trình chế tạo sản
phẩm),
 Hỗ trợ việc giao tiếp và cộng tác trong toàn xí nghiệp,
 Cập nhật các CSDL cấp Công ty.
Tuy nhiên các hệ thống này không chú trọng vào việc tạo ra các sản phẩm
thông tin mang đặc thù quản lý. Muốn có các thông tin dạng đó phải tiến hành xử lý
tiếp trong các HTTT hỗ trợ quản lý.
1.1.2.2.

Các hệ thống hỗ trợ quản lý
 Hệ thống thông tin quản lý (các báo cáo theo mẫu định trƣớc)

 Hệ hỗ trợ quyết định (hỗ trợ quyết định tƣơng tác, không theo mẫu)
 Hệ thống thông tin điều hành (các thông tin cho lãnh đạo cấp cao nhất)

Các hệ thống hỗ trợ quản lý, trợ giúp các nhà quản lý trong việc ra quyết định.
Chúng cung cấp các thông tin và các hỗ trợ để ra quyết định về quản lý, là các
nhiệm vụ phức tạp do các nhà quản trị và các nhà kinh doanh chuyên nghiệp thực
hiện. Về mặt ý niệm, thƣờng chia ra các loại hệ thống chính sau đây, nhằm hỗ trợ
các chức trách ra quyết định khác nhau:
 Các HTTT quản lý - cung cấp thông tin dƣới dạng các báo cáo theo
mẫu định sẵn, và trình bày chúng cho các nhà quản lý và các chuyên
gia khác của doanh nghiệp,
 Các hệ thống hỗ trợ quyết định - cung cấp trực tiếp các hỗ trợ về mặt
tính toán cho các nhà quản lý trong quá trình ra quyết định (không theo
mẫu định sẵn, và làm việc theo kiểu tƣơng tác, không phải theo định
kỳ),

14


 Các HTTT điều hành - cung cấp các thông tin có tính quyết định từ các
nguồn khác nhau, trong nội bộ cũng nhƣ từ bên ngoài, dƣới các hình
thức dễ dàng sử dụng cho các cấp quản lý và điều hành.

1.2.

Mô hình kiến trúc hướng dịch vụ ứng dụng trong HTTT doanh

nghiệp
1.2.1. Tổng quan về kiến trúc hướng dịch vụ
SOA (Service Oriented Architecture) – Kiến trúc Định hƣớng Dịch vụ là một

cách tiếp cận hay một phƣơng pháp luận để thiết kế và tích hợp các thành phần khác
nhau, bao gồm các phần mềm và các chức năng riêng lẻ lại thành một hệ thống
hoàn chỉnh. Kiến trúc SOA rất giống nhƣ cấu trúc của các phần mềm hƣớng đối
tƣợng gồm nhiều module. Tuy nhiên khái niệm module trong SOA không đơn thuần
là một gói phần mềm, hay một bộ thƣ viện nào đó. Thay vào đó, mỗi module trong
một ứng dụng SOA là một dịch vụ đƣợc cung cấp rải rác ở nhiều nơi khác nhau và
có thể truy cập thông qua môi trƣờng mạng. Nói một cách ngắn gọn, một hệ thống
SOA là một tập hợp nhiều dịch vụ đƣợc cung cấp trên mạng, đƣợc tích hợp lại với
nhau để cùng cộng tác thực hiện các tác vụ nào đấy theo yêu cầu của ngƣời dùng.
Một trong những cách hiểu sai lầm nhất về SOA là coi SOA là một công nghệ.
Mặc dù SOA hoạt động đƣợc là nhờ công nghệ, nhƣng khách hàng cần phải chuyển
đổi từ chỗ chỉ việc tích hợp công nghệ SOA sang việc phải điều chỉnh các phƣơng
pháp thực hiện dự án, chính sách bảo trì và thay đổi để đạt đƣợc các lợi ích về khả
năng trƣởng thành và đáp ứng.
Dịch vụ là yếu tố then chốt trong SOA. Có thể hiểu dịch vụ nhƣ là một loại
module thực hiện một quy trình nghiệp vụ nào đó. Một trong những mục đích của
SOA là giúp các ứng dụng có thể 'nói chuyện' với nhau mà không cần biết các chi
tiết kỹ thuật bên trong. Để thực hiện điều đó SOA định ra một chuẩn giao tiếp (dùng
để gọi hàm dịch vụ) đƣợc định nghĩa rõ ràng và độc lập với nền tảng hệ thống, và
có thể tái sử dụng. Nhƣ vậy, SOA là cấp độ cao hơn của phát triển ứng dụng, chú
15


trọng đến quy trình nghiệp vụ và dùng giao tiếp chuẩn để giúp che đi sự phức tạp kỹ
thuật bên dƣới. Sự trừu tƣợng là cốt lõi của khái niệm dịch vụ, nó giúp cho các
doanh nghiệp có thể tích hợp các thành phần hiện có vào các ứng dụng mới và các
thành phần này có thể đƣợc chia sẻ hoặc tái sử dụng trong nhiều lĩnh vực khác nhau
của công ty đó mà không cần phải chỉnh sửa mã nguồn hay phải tái cấu trúc lại hệ
thống.
Có nhiều cách khác nhau để kết nối các dịch vụ, chẳng hạn dùng các giao thức

mạng có sẵn, hoặc tạo một giao thức riêng. Nhƣng từ năm 2001, các dịch vụ web
(Web service) đƣợc xây dựng dựa trên nền tảng web toàn cầu, bất cứ nơi nào cũng
có, đã trở thành một phƣơng pháp phổ biến cho việc kết nối các thành phần của hệ
thống SOA với nhau. Thoạt nhìn SOA và dịch vụ web trông có vẻ giống nhau
nhƣng chúng không phải là một.

Hình 1.1 Mô hình cơ bản của SOA

1.2.2. Kiến trúc của SOA
1.2.2.1.

Kiến trúc tổng quan của SOA

16


Hình 1.2 Kiến trúc tổng quan của SOA
 Service Provider: Cung cấp các dịch vụ phục vụ cho một nhu cầu nào đó.
User (ngƣời sử dụng hay một ứng dụng sử dụng service) không cần quan tâm
đến vị trí thực sự mà service họ cần sử dụng đang hoạt động.
 Serive Consumer: User sử dụng dịch vụ đƣợc cung cấp bởi Service Provider.
 Service Registry: Nơi lƣu trữ thông tin về các service của các Service
Provider khác nhau, Service Consumer dựa trên những thông tin này để tìm
kiếm và lựa chọn Service Provider phù hợp.
Service Provider sẽ đăng ký thông tin về service mà mình có thể cung cấp (các
chức năng có thể cung cấp, khả năng của hệ thống (tài nguyên, hiệu năng), giá cả
dịch vụ,...) vào Service Registry. Service Consumer khi có nhu cầu về một service
nào đó sẽ tìm kiếm thông tin trên Service Registry. Ngoài chức năng hỗ trợ tìm
kiếm, Service Registry còn có thể xếp hạng các Service Provider dựa trên các tiêu
chí về chất lƣợng dịch vụ, bầu chọn từ các khách hàng đã sử dụng service, ... Những

thông tin này sẽ hỗ trợ thêm cho quá trình tìm kiếm của Service Consumer. Khi đã
xác định đƣợc Service Provider mong muốn, Service Consumer thiết lập kênh giao
tiếp trực tiếp với Service Provider nhằm sử dụng service hoặc tiến hành thƣơng
lƣợng thêm (về mặt giá cả, tài nguyên sử dụng, ...).

17


1.2.2.2.

Kiến trúc chi tiết

Hiện nay chƣa có một mô hình chính thức nào của SOA. Thật sự SOA là một
phƣơng pháp luận giúp chúng ta tận dụng sức mạnh của các nguồn lực, nguồn tài
nguyên khác nhau trong mạng máy tính để trở thành một hệ thống nhất. Mỗi một
công ty, hệ thống có một mô hình SOA khác nhau. Nhìn chung mô hình SOA có
các đặc điểm sau:

Hình 1.3 Kiến trúc phân tầng chi tiết của SOA
Một vài thành phần quan trọng trong kiến trúc này:
 Connectivity: đây là tầng thấp nhất của SOA, có nhiệm vụ giao tiếp trực tiếp
với các thành phần khác nhƣ cơ sở dữ liệu, giao tiếp với các ứng dụng khác,
các web service,… Vì vậy có thể coi đây là tầng vật lý của SOA.
 Orchestration: là các dịch vụ xử lý các quy trình nghiệp vụ và dộc lập với
tầng vật lý phía bên dƣới.
 Composite Application: là các ứng dụng tổng hợp nhằm mục đích trình diễn
(presentation) và hiển thị thông tin cho ngƣời dùng cũng nhƣ cung cấp một
giao diện cho ngƣời dùng tƣơng tác với hệ thống nhƣ là một phần mềm duy
nhất. Tầng này có thể là các website, portal, các ứng dụng client mở rộng
(rich client), các thiết bị di động thông minh (smart device),…


18


 Các thành phần khác: gồm có quy trình phát triển (development), quản lý các
dịch vụ (service management), và quản lý con ngƣời (governance). Nhƣ vậy
có thể thấy SOA không chỉ đơn thuần là về mặt công nghệ mà nó là tổng hòa
của rất nhiều yếu tố: công nghệ, cơ sở hạ tầng, con ngƣời và quy trình nghiệp
vụ.

Hình 1.4 Mô hình triển khai SOA trong thực tế.
1.2.2.3.

SOA và Web service

Chúng ta có thể thấy mô hình trên của SOA rất giống với của mô hình Web
service:

19


Hình 1.5 Mô hình cơ bản của Web Service
SOA và Web service là hai khái niệm tách biệt nhau. SOA chỉ đặc tả một mô
hình phát triển các ứng dụng dựa trên dịch vụ, Còn Web service tập trung vào công
nghệ để thực hiện điều đó dựa trên nền tảng Web. Nói ngắn gọn, Web service là
một mô hình cụ thể hóa của SOA. Web service đƣợc sử dụng phần lớn trong các
ứng dụng SOA. Chúng ta cần chú ý là khái niệm “service” của SOA không chỉ là
Web service mà nó bao hàm cả các dịch vụ khác mà chúng ta có thể tìm thấy và sử
dụng chúng trong một mạng máy tính.
1.2.2.4.


Mô hình giao tiếp bằng thông điệp (message) trong SOA

So với kiểu thiết kế Component-Based, điểm khác biệt chính của SOA là cung
cấp khả năng giao tiếp giữa các thành phần trong hệ thống (service) sử dụng thông
điệp (message) dựa trên các chuẩn giao tiếp đã đƣợc chuẩn hóa (HTTP, FTP,
SMTP, ...). Chính nhờ đặc điểm này, hệ thống SOA trở nên độc lập với platform
(platform independent). Các service hoạt động trên nền các platform khác nhau vẫn
có thể giao tiếp với nhau nhờ vào các interface giao tiếp đã đƣợc chuẩn hóa để cộng
tác xử lý một tác vụ nào đó.
Sử dụng thông điệp (message) để giao tiếp có các lợi thế sau:

20


 Thông điệp trở thành ngôn ngữ chung của các platform và các ngôn ngữ lập
trình khác nhau. Điều này đảm bảo các service trên các platform khác nhau
hoạt động với cấu trúc dữ liệu đặc thù của platform đó.
 Hoạt động gửi nhận thông điệp đƣợc thực hiện theo cơ chế chỉ gửi. Phía gửi
và phía nhận không cần phải chờ thông điệp trả lời sau khi đã gửi đi một
thông điệp. Điều này giúp cho phía gửi và phía nhận tiếp tục xử lý công việc
sau khi gửi thông điệp mà không cần dừng thực thi để chờ thông điệp trả lời.
 Các thông điệp từ phía gửi có thể đƣợc gửi đến một dịch vụ trung gian có
nhiệm vụ lƣu trữ các thông điệp. Dịch vụ trung gian sẽ gửi (forward) thông
điệp cho phía nhận khi phía nhận có thể xử lý yêu cầu tiếp theo. Cơ chế
Store-and-Forward này đảm bảo các thông điệp sẽ không bị thất lạc trong
trƣờng hợp phía nhận bị quá tải và không thể nhận thêm yêu cầu mới.
 Việc trao đổi thông điệp theo cơ chế bất đồng bộ giúp ứng dụng không cần
ngừng thực thi để chờ một tác vụ kết thúc mà có thể tạo ra các luồng xử lý
các công việc khác nhau.

 Các thông điệp lƣu trữ thông tin về các đối tƣợng dữ liệu dƣới dạng đặc tả
hình thức thay thế việc phải nối tiếp hóa và hủy nối tiếp các đối tƣợng dữ
liệu truyền qua mạng khi ứng dụng thực hiện gọi từ xa một ứng dụng khác.
 Thông điệp có thể lƣu trữ thông tin về ngữ cảnh bảo mật của kênh giao tiếp.
Điều này cung cấp khả năng điều khiển liên quan đến bảo mật nhƣ xác thực
và ủy quyền.

1.2.3. Các công nghệ được áp dụng
1.2.3.1.

Sun JINI

Công nghệ Jini cho phép xây dựng một hệ thống là một mạng của các dịch vụ.
Các dịch vụ có thể đƣợc thêm vào và xoá bỏ khỏi mạng, và ngƣời dùng mới có thể
tìm kiếm các dịch vụ hiện có. Tất cả đều xảy ra động, không có sự quản lý.

21


Dịch vụ đƣợc dựa trên các giao diện đã đƣợc viết trong ngôn ngữ lập trình
Java. Nó không quan tâm đến việc dịch vụ cài bằng phần cứng hay phần mềm. Đối
tƣợng dịch vụ mà ngƣời dùng tải về đƣợc cung cấp bởi các thành phần cung cấp
dịch vụ. Client chỉ cần biết rằng họ đang làm việc với một cài đặt của một giao diện
đƣợc viết bằng ngôn ngữ lập trình Java. Việc thiết kế dựa trên các giao diện dịch vụ
cho phép xây dựng các hệ thống với tính sẵn dùng cao. Một thành phần có thể sử
dụng bất kỳ dịch vụ nào phù hợp với giao diện, thay vì đƣợc cấu hình tĩnh để giao
tiếp với một thành phần nhất định nào đó.
Công nghệ Jini đƣợc xây dựng phía trên công nghệ Java (xem hình dƣới).
Phƣơng thức triệu gọi từ xa của Java (RMI) cung cấp cơ chế thu rác từ xa của các
đối tƣợng từ xa và khả năng chuyển trạng thái của đối tƣợng cũng nhƣ mã đối tƣợng

qua mạng.
Kiến trúc Jini bao gồm:
 Dịch vụ tra cứu (Looup Services): Dịch vụ tra cứu lƣu trữ các dịch vụ
Jini và cung cấp các uỷ nhiệm để truyền thông với dịch vụ, bản thân nó
cũng là một dịch vụ Jini.
 Dịch vụ Jini(Jini services): Dịch vụ Jini đƣợc đăng ký với dịch vụ tra
cứu và có khả năng đƣợc triệu gọi thông qua giao diện công khai của
mình (giao diện này đƣợc định nghĩa thông qua một giao diện từ xa).
Hệ thống nền tảng truyền thông của Jini là RMI.
 Thành phần sử dụng dịch vụ Jini (Jini Client): Thành phần sử dụng dịch
vụ Jini là một phần mềm yêu cầu đối tƣợng uỷ nhiệm từ dịch vụ tra cứu
để gọi dịch vụ Jini.
Jini có một số các dịch vụ đƣợc xây dựng sẵn, bao gồm:
 Dịch vụ tìm kiếm tra cứu (Lookup Discovery Services): Dịch vụ tìm
kiếm tra cứu thông báo cho các thành phần sử dụng dịch vụ về các thay

22


đổi trong mạng Jini. Các dịch vụ có thể kết hợp hoặc tách ra khỏi mạng
bất kỳ thời điểm nào.
 Dịch vụ tái tạo ràng buộc(Lease Renewal Services): Khái niệm tái tạo
ràng buộc hỗ trợ mạng dịch vụ Jini tính naƣng tự hàn gắn và khắc phục
lỗi. Dịch vụ phải tái tạo ràng buộc không đƣợc tái tạo, dịch vụ sẽ là một
ứng viên bị loại bỏ khỏi mạng lƣới dịch vụ. Trách nhiệm của những
ngƣời quản trị trong lĩnh vực này đƣợc giảm tới mức tối thiểu nhờ tính
năng tự hàn gắn của hệ thống.
 Dịch vụ giao dịch (Transactor Services): Dịch vụ cho phép sử dụng các
giao dịch trong một hệ thống phân tán. Thông thƣờng, các tổ chức sử
dụng cơ sở dữ liệu để tạo các hệ thống giao dịch. Dịch vụ giao dịch của

Jini đƣa tính năng giao dịch của cơ sở dữ liệu lên mạng. Các dịch vụ có
thể tham gia vào các giao dịch để đảm bảo các thuộc tính ACID
(Atomicity- Consistency- Isolation- Durability) gắn liền với giao dịch.
 Dịch vụ hộp thƣ sự kiện (Event MailBox Services): Các thay đổi trong
mạng dịch vụ Jini đựơc truyền đi trogn hệ thống bằng cách sử dụng các
sự kiện phân tán. dịch vụ hộp thƣ sự kiện hỗ trợ tính năng thông báo
các sự sự kiện cho các dịch vụ ngay cả khi dịch vụ không đƣợc kích
hoạt tại thời điểm hiện tại.
1.2.3.2.

Openwings

Openwings là một khung kiến trúc hƣớng dịch vụ cho việc xây dựng các hệ
thống các siêu hệ thống (hệ thống của hệ thống). Mặc dù không bị ràng buộc cụ thể
với Jini, nó cho phép xây dựng dựa trên các khải niệm của Java và Jini để cung cấp
một giải pháp hoàn thiện hơn.
Openwings có hàng loạt các dịch vụ cốt lõi hỗ trợ tính toán hƣớng đối tƣợng.

23


Component Services (Các dịch vụ thành phần): cung cấp các kỹ thuật cho việc
đƣa ra công bố một dịch vụ trong hệ thống đảm bảo cho quá trình tìm kiếm phát
hiện (discover), thông qua sử dụng component cung các thƣ viện cho phép:
Tạo ra các khả năng cung cấp, định vị và sử dụng các dịch vụ nói chung trong
hệ thống mà không phụ thuộc vào bất cứ kỹ thuật định vị/ tìm kiếm
(location/lookup) nào. Ví dụ các kỹ thuật định vị/tìm kiếm nhƣ Jini, UDDI với mô
hình Web-services, giao thức phát hiện (discovery) Bluetooth.
Quá trình giao tiếp giữa các thành phần hay dịch vụ đƣợc định nghĩa với các
API chuẩn cho các dịch vụ thông qua việc thiết kế thừa từ những giao diện chuẩn

mà openwings đề xuất.
Cung cấp các component API cho giao thức tƣơng tác giữa các dịch vụ qua
mạng mà không phụ thuộc vào tính năng đồng bộ hay không đồng bộ của các dịch
vụ.
Cung cấp khả năng điều khiển các dịch vụ thành phần ngay trong thời điểm
dịch vụ đó đang đƣợc gọi thực thi.
Hỗ trợ việc đƣa ra các báo cáo về trạng thái của các thành phần tham gia vào
hệ thống.
Cho phép thiết lập môi trƣờng thực tho động dựa theo yêu cầu tại thời điểm sử
dụng.
Qua hình vẽ minh hoạ sau, ta có thể thấy đƣợc vị trí trung tâm của các dịch vụ
thành phần trong mô hình khung mà Openwings đề xuất:

24


Hình 1.6 Mô hình khung của Openwings
Install services (Các dịch vụ cài đặt): là một thành phần dịch vụ của
framework cho phép thực hiện cài đặt các thành phần mới vào hệ thống. Để cài đặt
đƣợc thì các thành phần này cần phải thông qua các quy trình chuẩn mà openwings
đề xuất.
Cung cấp các khả năng cài đặt thêm những dịch vụ mới để hạn chế tối đa các
tƣơng tác bằng tay cho ngƣời sử dụng. Đảm bảo không gây ảnh hƣởng tới các thành
phần hay dịch vụ đã đƣợc cài đặt trƣớc đó.
Cung cấp các khả năng tự động dò tìm và cho phép gọi thực hiện với các
thành phần đƣợc lƣu trữ trong các thiết bị lƣu trữ tự động.
Có cơ chế thẩm định quyền và độ ƣu tiên cho việc cài đặt và gọi thực hiện.
Có cơ chế huỷ cài đặt an toàn cho hệ thông khi cần thiết.

25



×