ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGÔ NGUYỄN NHẬT MINH
CHỐNG SỬ DỤNG BẤT HỢP PHÁP
HỆ THỐNG QUẢN LÝ DỰA TRÊN
SOA
Chuyên ngành: Khoa học Máy tính
LUẬN VĂN THẠC SĨ
TP. HỒ CHÍ MINH, tháng 07 năm 2009
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : TS. Đặng Trần Khánh
Cán bộ chấm nhận xét 1: TS. Võ Thị Ngọc Châu
Cán bộ chấm nhận xét 2: TS. Nguyễn Đức Cường
Luận văn thạc sĩ được bảo vệ tại
HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 29 tháng 08 năm 2009
i
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
ĐẠI HỌC QUỐC GIA TP. HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
----------------
CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM
Độc Lập - Tự Do - Hạnh Phúc
---oOo---
Tp. HCM, ngày . .. . tháng . .. . năm .2009.
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên : Ngơ Nguyễn Nhật Minh ....................Giới tính : Nam ;/ Nữ
Ngày, tháng, năm sinh : 04/12/1983 ...................................Nơi sinh : Lâm Đồng
Chun ngành : Khoa học Máy tính ...................................MSHV: 00706141
Khố : 2006
..................
1- TÊN ĐỀ TÀI :
CHỐNG SỬ DỤNG BẤT HỢP PHÁP HỆ THỐNG QUẢN LÝ DỰA TRÊN
SOA
2- NHIỆM VỤ LUẬN VĂN :
- Nghiên cứu về SOA, hệ thống quản lý được xây dựng dựa trên SOA ..............
- Nghiên cứu bản quyền phần mềm ..........................................................................
- Nghiên cứu cách thức sử dụng phần mềm bất hợp pháp cũng như cách bảo
vệ phần mềm khỏi sử dụng bất hợp pháp ..............................................................
- Đưa ra giải pháp mới để bảo vệ hệ thống quản lý được xây dựng dựa trên
SOA ............................................................................................................................
- Chứng minh tính khả thi của giải pháp ..................................................................
3- NGÀY GIAO NHIỆM VỤ :09/2007 ........................................................................
4- NGÀY HOÀN THÀNH NHIỆM VỤ :01/2009 .......................................................
5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : TS. Đặng Trần Khánh ..........................
Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông
qua.
CÁN BỘ HƯỚNG DẪN
CHỦ NHIỆM BỘ MÔN
(Họ tên và chữ ký)
QUẢN LÝ CHUYÊN NGÀNH
(Họ tên và chữ ký)
TS. Đặng Trần Khánh
TS. Đinh Đức Anh Vũ
ii
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các cơng trình khác như đã ghi
rõ trong luận văn, các cơng việc trình bày trong luận văn này là do chính tơi thực hiện
và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở
trường này hoặc trường khác.
Ngày 1 tháng 9 năm 2009
Ngô Nguyễn Nhật Minh
iii
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
LỜI CẢM ƠN
Tôi xin gởi lời cảm ơn chân thành và sâu sắc nhất đến TS. Đặng Trần Khánh đã tận tình
hướng dẫn tơi và tạo mọi điều kiện để tơi có thể hồn thành luận văn này.
Tơi cũng xin cảm ơn gia đình đã động viên và tạo mọi điều kiện tốt nhất để tơi có thể tiếp
tục theo đuổi việc học tập nghiên cứu. Tôi trân trọng dành tặng thành quả của luận văn
này cho Thầy Mẹ. Nhờ công lao dưỡng dục của Thầy Mẹ mà con mới có được thành quả
như ngày hôm nay.
iv
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
TÓM TẮT LUẬN VĂN
Việc sử dụng phần mềm bất hợp pháp đã và đang gây thiệt hại lớn cho ngành công
nghiệp phần mềm. Để bảo vệ phần mềm khỏi những tấn công, sử dụng bất hợp pháp, hai
vấn đề quan trọng cần phải giải quyết là làm thế nào để xác định việc sử dụng phần mềm
bất hợp pháp hay không và làm thế nào chứng minh được một cá nhân, tổ chức nào đó đã
sử dụng phần mềm bất hợp pháp. Dù có nhiều nghiên cứu đã được tiến hành, với những
cách thức hiện tại, người tấn cơng ln tìm ra được kẽ hở để tấn cơng phần mềm, để có
thể sử dụng phần mềm bất hợp pháp. Ngày nay, xuất phát từ yêu cầu của các tổ chức,
doanh nghiệp cũng như sự phát triển của kiến trúc hướng dịch vụ (SOA), những hệ thống
xây dựng dựa trên SOA ngày càng phổ biến và đóng vai trị rất quan trọng trong sự thành
cơng của tổ chức, doanh nghiệp. Chi phí cho việc xây dựng một hệ thống như vậy thường
rất cao và phía bên sở hữu, phát hành sẽ chịu thiệt hại lớn nếu hệ thống như vậy bị sử
dụng bất hợp pháp. Với những điểm yếu của cách thức hiện tại, để bảo vệ những hệ
thống thông tin xây dựng dựa trên SOA, cần thiết phải có những cách mới.
Trong luận văn này, chúng tôi đưa ra cách tiếp cận mới để giải quyết vấn đề hiệu quả
hơn, cụ thệ, hệ thống thông tin dựa trên SOA sẽ được cài đặt cùng với một Supervisor.
Supervisor này sẽ chịu trách nhiệm theo dõi và phát hiện việc sử dụng bất hợp pháp của
hệ thống tại thời điểm cài đặt và trong quá trình hoạt động. Với cách tiếp cận mới, hệ
thống được bảo vệ tốt hơn, tuy nhiên cũng đưa tới nhiều vấn đề khác chẳng hạn như tính
riêng tư của người sử dụng. Những vấn đề này đã được định vị và giải quyết .
i
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
ABSTRACT
Using software got via cracking or other means has caused a great damage to the
software industry. To protect software from such illegal uses, two crucial problems have
to be solved: (1) how to verify if the use of software is illegal or not; (2) and how to
prove that one has used any illegal software. Although a vast number of research work
have been carried out, in current methods, there still exist breaches that malicious users
can exploit to use software without licenses. Nowadays, from the organizations'
requirements along with the development of web technologies and service-oriented
architecture (SOA) that own advanced and unique features, SOA-based information
systems become more popular and play a vital role in the success of organizations. Cost
of building such an information system is quite prohibitively high and the developers will
suer a great loss if the system is cracked and used without proper licenses. Due to
inherent weaknesses of the state-of-the-art methods, it is necessary to have a new way to
protect SOA-based information systems from illegal uses.
In this thesis, we propose a pragmatic approach to solve this problem effectively. In our
proposed approach, SOA-based information systems will be installed with a Supervisor.
This Supervisor is responsible for detecting and tracking illegal uses of systems at install
and during operation. With this approach, frstly, publishers can remotely control the use
of software; secondly, publishers can prove with evidence that users are using illegal
software; and most importantly, a system can detect whether the use of itself is illegal or
not by tracking and analyze user activities and then has corresponding actions. One of the
most challenging issues of our approach is how to guarantee user privacy and comply
with the related security acts (e.g., Sarbanes Oxley, PCI, and HIPAA Acts) with such
hidden Supervisor. Notably, this challenge has been located and solved nicely.
ii
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
Mục lục
CHỐNG SỬ DỤNG BẤT HỢP PHÁP HỆ THỐNG QUẢN LÝ DỰA TRÊN SOA ........ 1
TÓM TẮT LUẬN VĂN ....................................................................................................... i
ABSTRACT ........................................................................................................................ ii
Mục lục ............................................................................................................................... iii
Danh mục hình.................................................................................................................... vi
Danh mục bảng .................................................................................................................. vii
GIỚI THIỆU ........................................................................................................................ 1
I. Tổng quan về đề tài ................................................................................................... 1
II.
Các thuật ngữ được sử dụng trong báo cáo............................................................ 1
III.
Cách thức tổ chức báo cáo ..................................................................................... 2
Chương 1: KIẾN THỨC NỀN TẢNG ................................................................................ 4
I. Giấy phép phần mềm ................................................................................................. 4
1.
Khái niệm ........................................................................................................... 4
2.
Vấn đề sử dụng phần mềm bất hợp pháp ........................................................... 5
II.
Kiến trúc hướng dịch vụ ........................................................................................ 6
1.
Hệ thống thông tin .............................................................................................. 6
2.
Định nghĩa .......................................................................................................... 7
3.
Mục tiêu .............................................................................................................. 8
4.
Hiện thực và đánh giá ....................................................................................... 10
5.
Áp dụng ............................................................................................................ 15
III.
Sự riêng tư ............................................................................................................ 15
1.
Khái niệm ......................................................................................................... 15
2.
Tính riêng tư và pháp luật................................................................................. 16
3.
Luật pháp và công nghệ trong bảo vệ sự riêng tư ............................................ 18
Chương 2: BÀI TỐN BẢO VỆ HỆ THỐNG THƠNG TIN QUẢN LÝ ĐƯỢC XÂY
DỰNG DỰA TRÊN SOA ................................................................................................. 19
I. Hệ thống thông tin quản lý dựa trên SOA ............................................................... 19
II.
Mô tả bài toán ...................................................................................................... 20
iii
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
1.
Quy trình ........................................................................................................... 20
2.
Các đặc điểm của quy trình .............................................................................. 21
3.
Workflow Management System ....................................................................... 22
III.
Yêu cầu bài tốn ................................................................................................... 22
Chương 3: CÁC BÀI TỐN, VẤN ĐỀ LIÊN QUAN ..................................................... 23
I. Quản lý bản quyền số .............................................................................................. 23
II.
Phát hiện xâm nhập .............................................................................................. 25
1.
Tổng quan ......................................................................................................... 25
2.
Các kỹ thuật dùng để phát hiện xâm nhập ........................................................ 25
III.
Virus ..................................................................................................................... 27
1.
Tổng quan ......................................................................................................... 27
2.
Các kỹ thuật phát hiện virus ............................................................................. 28
Chương 4: CÁC GIẢI PHÁP HIỆN TẠI ĐỂ BẢO VỆ PHẦN MỀM ............................. 29
I. Các bước trong phân phối và kích hoạt phần mềm ................................................. 29
II.
Các kỹ thuật trong việc bảo vệ bản quyền phần mềm ......................................... 32
1.
Obfuscation ....................................................................................................... 32
2.
Watermarking ................................................................................................... 33
3.
Bằng chứng giả mạo (Tamper-proofing) .......................................................... 34
4.
Dongle .............................................................................................................. 35
5.
Cách thức tiếp cận XOM (eXcute Only Memory) ........................................... 36
III.
Nhận xét ............................................................................................................... 37
Chương 5: GIẢI PHÁP CHO VẤN ĐỀ CHỐNG SỬ DỤNG BẤT HỢP PHÁP ............ 38
I. Tổng quan ................................................................................................................ 38
II.
Áp dụng các kỹ thuật bảo vệ truyền thống .......................................................... 39
1.
Code obfuscation .............................................................................................. 39
2.
Watermarking và Tamper-proofing .................................................................. 41
III.
Theo dõi hành vi, ứng xử của người sử dụng ...................................................... 42
1.
Cấu trúc supervisor ........................................................................................... 42
2.
Thành phần Detection ....................................................................................... 42
iv
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
3.
IV.
Thành phần Decision ........................................................................................ 46
Các vấn đề với cách thức bảo vệ mới và giải pháp .............................................. 47
1.
Vấn đề tính riêng tư của người sử dụng ........................................................... 47
2.
Vấn đề quản trị hệ thống với giải pháp biến đổi tương đương quy trình ......... 47
3.
Tấn cơng trực tiếp vào cơ chế bảo vệ, vào supervisor ..................................... 48
Chương 6: TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN ...................................................... 49
Phụ lục 1: GIẤY PHÉP PHẦN MỀM ............................................................................... 50
Phụ lục 2: REVERSE ENGINEERING ............................................................................ 55
Phụ lục 3: VÍ DỤ VỀ TẤN CÔNG PHẦN MỀM ĐỂ SỬ DỤNG TRÁI PHÉP .............. 57
TÀI LIỆU THAM KHẢO ................................................................................................. 58
v
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
Danh mục hình
Hình 1: Thiệt hại do sử dụng phần mềm bất hợp pháp ở các khu vực trên thế giới. .......... 6
Hình 2: Sự khác biệt ở hệ thống được xây dựng khi không áp dụng SOA và khi áp dụng
SOA ..................................................................................................................................... 8
Hình 3: Mức trưởng thành: Silo ........................................................................................ 10
Hình 4: Mức trưởng thành: Integrated.............................................................................. 11
Hình 5: Mức trưởng thành: Componentized ..................................................................... 12
Hình 6: Mức trưởng thành: Services ................................................................................. 12
Hình 7: Mức trưởng thành: Composite Services ............................................................... 13
Hình 8: Mức trưởng thành: Virtualize Services ................................................................ 14
Hình 9: Mức trưởng thành: Dynamically Re-Configurable Services................................ 14
Hình 10: Quy trình nghiệp vụ chứng nhận lý lịch khoa học ............................................. 19
Hình 11: Quy trình nghiệp vụ và hiện thực hệ thống với SOA. ........................................ 20
Hình 12: Workflow của quy trình chứng nhận lý lịch khoa học (công nghệ WWF) ........ 21
Hình 13: Một kiến trúc tiêu biểu cho việc phân phối các file âm thanh ........................... 24
Hình 14: Hệ thống phát hiện xâm nhập dùng kỹ thuật chữ kí........................................... 26
Hình 15: Luồng cơ bản cho việc phân phối và kích hoạt phần mềm ................................ 29
Hình 16: Các bước để kích hoạt phần mềm ...................................................................... 31
Hình 17: Áp dụng kỹ thuật tung hỏa mù mã để bảo vệ phần mềm ................................... 32
Hình 18: Áp dụng kỹ thuật watermarking để bảo vệ phần mềm ....................................... 33
Hình 19: Các dạng thức tấn cơng với kỹ thuật Watermarking .......................................... 34
Hình 20: Áp dụng kỹ thuật tamperproofing để bảo vệ phần mềm .................................... 35
Hình 21: Bảo vệ phần mềm với dongle (Smart Cards) ..................................................... 35
Hình 22: Cải tiến giúp tăng hiệu suất cho cách tiếp cận phần cứng XOM ....................... 37
Hình 23: Mơ hình hoạt động tổng quan của giải pháp ...................................................... 39
Hình 24: Biến đổi tương workflow ................................................................................... 40
Hình 25: Cấu trúc của Supervisor ..................................................................................... 42
Hình 26: Hiện thực Detection – Dạng giám sát ............................................................... 43
Hình 27: Các bước trong việc nhận diện hành vi dị thường trong phân tích nhóm ngang
hàng. .................................................................................................................................. 45
Hình 28: Reverse Engineering và những quá trình liên quan trong quá trình chuyển đổi
giữa những mức độ trừu tượng khác nhau. ....................................................................... 55
Hình 29: Sử dụng Reverse Engineer để tấn công phần mềm ............................................ 56
vi
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
Danh mục bảng
Bảng 1: Các thuật ngữ sử dụng trong báo cáo ..................................................................... 2
Bảng 2: Bảy dạng malware theo phân loại của Salomon .................................................. 27
Bảng 3: Một số cơng cụ có thể dùng cho việc Reverse Engineering trong phần mềm ..... 56
vii
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
GIỚI THIỆU
I. Tổng quan về đề tài
Ngày nay, phần mềm đóng vai trị hết sức quan trọng trong nhiều lĩnh vực như xây
dựng, kiến trúc, quản trị doanh nghiệp, quản lý khách hàng… Việc sử dụng phần
mềm một cách hiệu quả đã giúp tăng năng suất lao động, giảm chi phí sản xuất, cơng
việc được xử lý chính xác hơn, kinh tế hơn. Xuất phát từ tính hiệu quả của việc sử
dụng phần mềm cũng như từ chính bản thân cơng việc, các khách hàng càng ngày
càng cần các phần mềm tốt hơn, phục vụ cho cơng việc hiệu quả hơn. Đáp ứng và đón
đầu xu thế đó, rất nhiều doanh nghiệp, tổ chức đã đầu tư nhiều tiền của, công sức vào
việc xây dựng và phát triển phần mềm. Tuy nhiên, việc sử dụng các phần mềm một
cách bất hợp phát đã khiến cho các doanh nghiệp, tổ chức này thiệt hại hàng tỉ dollar
hàng năm.
Kiến trúc hướng dịch vụ (SOA) là một cách thức tiếp cận cho phép xây dựng các hệ
thống thông tin quản lý với nhiêu ưu điểm nổi trội. Và cũng như những hệ thống phần
mềm khác, các hệ thống quản lý này cũng có thể bị sử dụng bất hợp pháp và nhà sản
xuất sẽ chịu thiệt hại rất lớn. Do đó, đề tài này được thực hiện với mục đích đưa ra
một cơ chế hiệu quả để chống sử dụng bất hợp pháp hệ thống quản lý, đặc biệt là các
hệ thống được xây dựng dựa trên SOA.
Ý tưởng của giải pháp trong đề tài này như sau: Thay vì thụ động dựa vào trợ giúp
của một bên thứ ba nào đó chẳng hạn như license server…, bản thân phần mềm sẽ tự
động thu thập dữ liệu về người sử dụng và cách thức sử dụng. Trên cơ sở phân tích
những dữ liệu này, phần mềm sẽ tự động quyết định việc sử dụng hệ thống của người
sử dụng có bất hợp pháp và đưa ra các giải pháp phù hợp. Tuy nhiên, với cách thức
tiếp cận này, ta phải đối mặt và xử lý các vấn đề phát sinh như tính chính xác của việc
ra quyết định, tính riêng tư của người sử dụng (user privacy).
II.
Các thuật ngữ được sử dụng trong báo cáo
Các thuật ngữ trong bảng sau được sử dụng trong báo cáo. Phần thuật ngữ và phần mơ
tả có thể được sử dụng với ý nghĩa tương đương nhau, có thể thay thế lẫn nhau.
#
Thuật ngữ
Mô tả
1
SOA
Service Oriented Architecture – Kiến trúc hướng dịch vụ
2
Architecture
Kiến trúc
3
Service
Dịch vụ
4
Privacy
Sự riêng tư/Tính riêng tư
1
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
5
Publisher
Nhà xuất bản
6
License
Giấy phép
7
Copyright
Bản quyền
8
User
Người sử dụng
9
Client
Khách hàng
10
Business
Nghiệp vụ
11
Process
Quy trình
12
Application
Ứng dụng
13
Management
Quản lý
14
Workflow
Quy trình
Bảng 1: Các thuật ngữ sử dụng trong báo cáo
III.
Cách thức tổ chức báo cáo
Báo cáo này được tổ chức với các chương như sau:
GIỚI THIỆU: giới thiệu tổng quan về đề tài, các thuật ngữ, cách thức tổ chức báo
cáo
Chương 1: KIẾN THỨC NỀN TẢNG: Trong chương này, các khái niệm cơ bản về
cấp phép phần mềm, về tình trạng sử dụng phần mềm bất hợp pháp được điểm qua.
Một số thống kê về tính nghiêm trọng của sử dụng phần mềm bất hợp pháp cũng được
giới thiệu. Ngoài ra, chương này cũng đưa ra một số đặc điểm chính của kiến trúc
hướng dịch vụ, một yếu tố đóng vai trị chính trong đề tài. Hai yếu tố cấp phép phần
mềm và kiến trúc hướng dịch vụ đóng vai trị nền tảng cho sự bàn luận tiếp theo trong
báo cáo này. Thêm vào đó, do giải pháp đưa ra có sự liên quan tới tính riêng tư, một
số khái niệm, tính chất, đặc điểm pháp lý của tính riêng tư cũng được giới thiệu.
Chương 2: BÀI TỐN BẢO VỆ HỆ THỐNG THƠNG TIN QUẢN LÝ ĐƯỢC
XÂY DỰNG DỰA TRÊN SOA: trình bày chi tiết về bài toán.
2
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
Chương 3: CÁC BÀI TOÁN, VẤN ĐỀ LIÊN QUAN: Liên quan tới vấn đề bảo vệ
bản quyền, chống sử dụng bất hợp pháp, các vấn đề bảo vệ bản quyền số, phát hiện
xâm nhập và virus được đề cập.
Chương 4: CÁC GIẢI PHÁP HIỆN TẠI ĐỂ BẢO VỆ PHẦN MỀM: Trong
chương này, các cách thức bảo vệ phần mềm khỏi việc sử dụng bất hợp pháp và kể cả
cách vượt qua chúng được giới thiệu.
Chương 5: GIẢI PHÁP CHO VẤN ĐỀ CHỐNG SỬ DỤNG BẤT HỢP PHÁP:
trình bày giải pháp cho vấn đề, cách thức hiện thực
Chương 6: TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN: đánh giá giải pháp đưa ra và
các hướng phát triển trong tương lai.
3
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
Chương 1: KIẾN THỨC NỀN TẢNG
I.
Giấy phép phần mềm
1. Khái niệm
Giấy phép phần mềm là một công cụ pháp lý điều khiển, chi phối việc sử dụng,
phân phối các phần mềm được bảo vệ bản quyền1, một hợp đồng thỏa thuận giữa
nhà xuất bản phần mềm (software publisher)2 và người sử dụng cuối (end user).
Một giấy phép phần mềm thường gán cho người sử dụng cuối quyền được sử dụng
một hoặc nhiều bản sao của phần mềm theo những cách nhất định (chẳng hạn như
phần mềm được cài đặt trên bao nhiêu máy, bao nhiêu người sử dụng có thể sử
dụng đồng thời, phần mềm được sử dụng trong thời gian bao lâu…) mà nếu không
tuân thủ sẽ cấu thành sự vi phạm quyền của nhà xuất bản được bảo vệ bởi luật bản
quyền3.
Giấy phép phần mềm có nhiều loại:
¾ Giấy phép phần mềm có quyền sở hữu
Với dạng giấy phép này, nhà xuất bản sẽ cấp phép quyền sử dụng một hoặc
nhiều bản sao phần mềm cho người sử dụng. Tuy nhiên, với dạng này, quyền
sở hữu phần mềm thuộc về nhà xuất bản. Để sử dụng những phần mềm được
cấp phép theo dạng này, người sử dụng phải chấp nhận những điều khoản, quy
định trong giấy phép.
¾ Giấy phép phần mềm miễn phí
Ngược lại với dạng giấy phép ở trên, với giấy phép phần mềm miễn phí, quyền
sở hữu một bản sao của phần mềm khơng cịn của nhà xuất bản. Thay vào đó,
quyền sở hữu bản sao phần mềm được chuyển cho người sử dụng cuối. Như
vậy, mặc định, người sử dụng cuối có tất cả các quyền được bảo vệ bởi luật
1
Bản quyền (copyright) (©) là luật bảo vệ các sản phNm, tác phNm của các tác giả khỏi việc sử dụng mà khơng có sự
cho phép. Với bản quyền, tác giả của sản phNm gốc có quyền trong một giai đoạn nhất định liên quan tới sản phNm
đó, bao gồm việc xuất bản, phân phối. Sau khoảng thời gian hiệu lực, tác phNm đó sẽ được sử dụng mà khơng cần sự
cho phép. Bản quyền được mô tả trong các điều khoản của luật sở hữu trí tuệ cùng với các phát minh và thương
hiệu. Bản quyền phần mềm là một mở rộng của luật bản quyền để áp dụng cho các phần mềm.
2
N hà xuất bản phần mềm là một công ty xuất bản trong công nghiệp phần mềm, đóng vai trị trung gian giữa nhà
phát triển và nhà phân phối. Trong một số cơng ty, ba vai trị này (phát triển, xuất bản, phân phối) có thể được kết
hợp. Một thực thể (cá nhân/tổ chức) có thể đảm nhận hai hoặc cả ba vai trò. N hà xuất bản phần mềm sẽ cấp phép
phần mềm với những giới hạn nhất định về thời gian, sử chỉnh sửa… Bên tác giả, phát triển phần mềm thường sử
dụng các nhà xuất bản để tiếp cận các thị trường. N hà xuất bản cũng có thể sử dụng nhà phát triển để tạo ra các phần
mềm đáp ứng với yêu cầu thị trường.
3
Xem ví dụ chi tiết về một giấy phép phần mềm ở Phụ lục 1: Giấy phép phần mềm
4
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
bản quyền cho người sở hữu bản sao. Với dạng giấy phép này, người sử dụng
có thể chỉnh sửa hay tái phân phối phần mềm.
¾ Giấy phép phần mềm mã nguồn mở
Giấy phép mã nguồn mở cho phép mã nguồn của phần mềm được công bố
dưới những điều khoản cho phép việc chỉnh sửa, tái phân phối phần mềm mà
khơng phải trả phí cho tác giả của bản gốc. N hững giấy phép dạng này có thể
có thêm những giới hạn như yêu cầu giữ nguyên tên của tác giả bản gốc, thông
báo về bản quyền trong mã chng trình
Các nhà phát triển phần mềm có thể chọn cách thức phát hành phần mềm của họ
theo nhiều cách. N ếu họ chọn dạng hai và ba, họ có thể thu lợi nhuận từ việc bảo
trì hệ thống, huấn luyện… N ếu họ chọn dạng một, họ sẽ thu lợi nhuận từ việc bán
giấy phép. Với lựa chọn này, việc sử dụng phần mềm khi không có giấy phép sẽ
gây thiệt hại cho phía nhà xuất bản, nhà phát triển và họ phải có biện pháp để ngăn
chặn.
2. Vấn đề sử dụng phần mềm bất hợp pháp
Việc sử dụng phần mềm không tuân theo những điều khoản, quy định của giấy
phép được xem là sử dụng bất hợp pháp. N hững hành động sau là ví dụ phổ biến
cho việc sử dụng bất hợp pháp.
¾ Cài đặt, sử dụng phần mềm khi khơng được cấp phép
¾ Chỉnh sửa phần mềm để có thể sử dụng số lượng bản sao phần mềm nhiều hơn,
cài đặt trên nhiều máy hơn
¾ Chỉnh sửa phần mềm một cách trái phép để gia tăng thời hạn sử dụng, để sử
dụng những chức năng không được cấp phép, để thêm vào những chức năng
mới, hay để phù hợp với một ngữ cảnh cụ thể.
¾ Tiến hành chỉnh sửa, tái phân phối khi không được phép.
Các đối tượng tiến hành những hoạt động sử dụng bất hợp pháp có thể là các cá
nhân hay tổ chức. Động cơ cho những hành động này có thể là để sử dụng phần
mềm hay một số phần/chức năng của phần mềm, để tạo ra những sản phNm dẫn
xuất xuất, những sản phNm mà không cần phải trả phí.
Đáp lại với việc sử dụng bất hợp pháp phần mềm, các cơng ty, tổ chức, chính phủ
có nhiều hành động, nỗ lực nhằm mục đích ngăn chặn. Tuy nhiên, vấn đề này vẫn
cịn rất nghiêm trọng. Theo [61]:
¾ Tỉ lệ sử dụng phần mềm bất hợp pháp gia tăng từ 38% trong năm 2007 lên
41% trong năm 2008
5
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
¾ Trong năm 2008, tỉ lệ sử dụng phần mềm bị đánh cắp là 41%
¾ Giá trị của những phần mềm không được cấp phép (là thiệt hại với N gười bán)
tăng hơn $5.1 tỉ (11%) và đạt khoảng $53.0 tỷ từ năm 2007 sang 2008
Hình 1: Thiệt hại do sử dụng phần mềm bất hợp pháp ở các khu vực trên thế giới.
(Đơn vị tính: triệu dollar)
(N guồn: )
II.
Kiến trúc hướng dịch vụ
1. Hệ thống thông tin
Theo [73], hệ thống thông tin (IS – Information System) đề cập tới một hệ thống
gồm con người, các dữ liệu, các hoạt động xử lý dữ liệu trong một tổ chức, các
quy trình được tự động hóa. Theo nghĩa hẹp, hệ thống thông tin chỉ tới một hệ
thống phần mềm được sử dụng để lưu trữ dữ liệu, tự động hóa các hoạt động của
tổ chức. Các hệ thống như vậy thường có những đặc điểm sau:
¾ Có nhiều ứng dụng tồn tại, mỗi ứng dụng phục vụ cho một bộ phận của tổ chức
hay một nghiệp vụ nào đó
¾ Các ứng dựng có thể được xây dựng bởi nhiều loại cơng nghệ khác nhau, có
thể khơng tương thích với nhau
¾ Sự tồn tại của những hệ thống cũ (legacy systems). N hững hệ thống này vẫn
tồn tại để phục vụ cho một yêu cầu nào đó và có khả năng sẽ được thay thế
trong tương lai.
¾ Các ứng dụng cần phải được cập nhật liên tục để có thể đáp ứng với những
thay đổi của nghiệp vụ
6
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
¾ Các ứng dụng mới có thể thêm vào để đáp ứng với những yêu cầu nghiệp vụ
mới.
2. Định nghĩa
Các tổ chức và doanh nghiệp luôn cần một hệ thống thông tin hiệu quả để có thể
hỗ trợ tốt cho hoạt động của họ. Họ mong muốn một hệ thống mà trên đó những
yêu cầu chính yếu sau được thỏa mãn:
¾ Có thể thay đổi quy trình nghiệp vụ, cấu hình một cách dễ dàng để đáp ứng với
những thay đổi trong quá trình sử dụng
¾ Dễ dàng tích hợp với những hệ thống khác (của những nhà cung cấp khác, sử
dụng cơng nghệ khác)
¾ Tận dụng được những hệ thống có sẵn mà khơng cần phải thay thế.
¾ Cho phép mở rộng dễ dàng
Để đáp ứng những u cầu đó, nhiều kiến trúc, cơng nghệ đã được đưa ra như kiến
trúc client-server, công nghệ DCOM, CORBA … Tuy nhiên những kiến trúc đó
vẫn chưa thỏa mãn tốt những yêu cầu trên, chẳng hạn như khi xây dựng hệ thống
với công nghệ CORBA, hệ thống sẽ phải tuân thủ theo những quy định riêng của
CORBA và khó tích hợp với những hệ thống được hiện thực bằng nhưng công
nghệ khác.
SOA là một kiến trúc cho phép thỏa mãn tốt những yêu cầu trên. SOA thừa kế một
số đặc điểm của những kiến trúc cũ và đồng thời đặt ra những nguyên tắc mới và
hiển nhiên là phải đối mặt với những vấn đề mới chẳng hạn như những vấn đề về
bảo mật.
SOA thiết lập một kiến trúc với mục đích gia tăng sự hiệu quả, sự linh động cho
các tổ chức, doanh nghiệp bằng cách sử dụng các dịch vụ. Các dịch vụ này sẽ
được thiết kế tuân theo những nguyên tắc sao cho chúng vẫn có thể phát triển độc
lập trong khi vẫn duy trì được những nền tảng, chuNn mực chung. Sư duy trì này
giúp cho các dịch vụ có thể phối hợp với nhau một cách dễ dàng.
Ta có thể thấy những khác biệt giữa hệ thống xây dựng không áp dụng SOA và có
áp dụng SOA ở Hình 2.
¾ Hình bên trái tương ứng với hệ thống khi không áp dụng SOA. Tương ứng với
hình này, ta thấy rằng các ứng dụng như Service Scheduling, Order Processing,
Account Management được xây dựng độc lập nhau, khó để giao tiếp với nhau,
khó để sử dụng những chức năng của nhau.
7
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
¾ Hình bên phải tương ứng với hệ thống khi áp dụng SOA. Tương ứng với hình
này, ta thấy rằng các ứng dụng được xây dựng dựa trên các dịch vụ chia sẻ, có
thể tái sử dụng. Các ứng dụng giờ đây dễ dàng tích hợp với nhau và có thể
thêm mới một ứng dụng vào hệ thống dễ dàng.
Hình 2: Sự khác biệt ở hệ thống được xây dựng khi không áp dụng SOA và khi áp dụng SOA
(N guồn: />
3. Mục tiêu
Theo [69], các mục tiêu của SOA bao gồm gia tăng sự cộng tác, chia sẻ
(Inteoperability), sự liên minh (Federation), đa dạng hóa nhà cung cấp, sự phù
hợp giữa cơng nghệ, kỹ thuật với nghiệp vụ, sự linh hoạt của tổ chức và giảm chi
phí
¾ Gia tăng sự cộng tác, chia sẻ
Sự cộng tác, chia sẻ ở đây đề cập tới chia sẻ dữ liệu. Với những chương trình,
những phần mềm khơng mang tính cộng tác, để trao đổi thơng tin với nhau,
chúng cần phải được tích hợp (integrated). N gược lại, với những chương trình,
những phần mềm có tính cộng tác cao, sự chia sẽ thông tin giữa chúng là dễ
dàng.
Mục tiêu của SOA là thiết lập sự cộng tác giữa các dịch vụ để giảm sự tích
hợp. Sự cộng tác này là hữu cơ, gắn liền với SOA.
8
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
Sự cộng tác này đạt được thông qua việc áp dụng thống nhất những nguyên lý,
những tiêu chuNn thiết kế. Việc áp dụng thống nhất này sẽ thiết lập một mơi
trường mà trong đó các dịch vụ được tạo ra bởi những bên, tổ chức khác nhau,
tại những thời điểm khác nhau có thể sử dụng được lẫn nhau, cùng nhau để
hoàn thành những quy trình nghiệp vụ.
¾ Gia tăng sự liên minh
Một mơi trường mà trong đó các tài nguyên được thống nhất với nhau trong
khi vẫn duy trì sự tự trị của chúng. Mơi trường đó được gọi là liên minh.
SOA hướng tới tạo ra một mơi trường có tính liên minh cao mà trong đó các
dịch vụ phối hợp cùng nhau đề hồn thành cơng việc trong khi vẫn duy trì sự
tự trị của chúng.
¾ Gia tăng sự đa dạng hóa nhà cung cấp
Các tổ chức, một doanh nghiệp có thể chọn lựa và sử dụng những sản phNm,
dịch vụ, công nghệ từ nhà cung cấp mà họ thấy thỏa mãn nhất và họ có thể
phối hợp các sản phNm, các dịch vụ, các công nghệ từ những nhà cung cấp
khác nhau một cách dễ dàng.
¾ Gia tăng sự phù hợp giữa công nghệ, kỹ thuật với nghiệp vụ
SOA đưa ra mô hình thiết kế với nhiều mức độ trừu tượng khác nhau. Bằng
cách xây dựng các lớp dịch vụ tương ứng với mơ hình nghiệp vụ (business
model), ta có thể gia tăng sự canh chỉnh phù hợp giữa công nghệ, kỹ thuật với
nghiệp vụ. Khi sự phù hợp giữa công nghệ, kỹ thuật với nghiệp vụ tăng lên,
việc thay đổi nghiệp vụ có thể tiến hành dễ dàng.
¾ Gia tăng sự linh động của tổ chức
Sự linh động ở đây đề cập tới tính hiệu quả của tổ chức khi thích ứng với
những thay đổi.
Khi SOA được áp dụng rộng khắp một tổ chức, các dịch vụ được chuNn hóa
cao và mang tính tái sử dụng, dễ chia sẽ cao. Điều này cho phép việc thích ứng
với các thay đổi dễ dàng hơn rất nhiều.
¾ Giảm chi phí
Với những mục tiêu, lợi ích trình bày ở trên, việc áp dụng thống nhất SOA
trong tổ chức sẽ giúp tổ chức giảm chi phí và tăng hiệu quả
9
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
N hững mục tiêu trên là những mục tiêu mà SOA hướng tới. Tuy nhiên, khơng phải
bất kì hiện thực nào của SOA cũng có thể đạt được tất cả các mục tiêu trên ở mức
độ cao. Trong phần tiếp theo, ta sẽ bàn về các hiện thực SOA.
4. Hiện thực và đánh giá
SOA không đưa ra một mơ hình chuNn để hiện thực mà chỉ đưa ra các mục tiêu.
Điều này sẽ khiến cho việc áp dụng khó khăn. Để giải quyết vấn đề này, nhiều tổ
chức, doanh nghiệp (IBM, Sonic and Partners, The Integration Consortium,
HP,…) đã đưa ra các mơ hình trưởng thành (maturity model) [67]. Các mơ hình
này sẽ đánh giá hiện thực SOA với nhiều tiêu chí khác nhau. Dựa trên các mơ hình
này, ta có thể đánh giá được mức độ áp dụng của SOA đối với một hệ thống nào
đó, khả năng phát triển ra sao, những lợi ích đem lại.
Trong báo cáo này, mơ hình trưởng thành của IBM được sử dụng [70][53]. Mơ
hình này định ra các mức trưởng thành (từ thấp tới cao): silo, integrated,
componentized, services, composite services, virtualize services, dynamically reconfigurable services. Các mức này được đánh giá dựa trên các tiêu chí về nghiệp
vụ, tổ chức, phương pháp, ứng dụng, kiến trúc, thông tin, và cơ sở hạ tầng. Ý
nghĩa và cách thức hiện thực của các mức độ này như sau:
a. Silo
Hình 3: Mức trưởng thành: Silo
Các bộ phận của tố chức hay doanh nghiệp xây dựng hệ thống riêng biệt, khơng có
tích hợp dữ liệu, quy trình, chuNn hóa, hay cơng nghệ. Điều này giới hạn một cách
nghiêm trọng khả năng của tổ chức hay doanh nghiệp trong việc hiện thực các quy
trình nghiệp vụ địi hỏi sự cộng tác của nhiều bộ phận, ứng dụng khác nhau và
10
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
việc tích hợp các hệ thống thơng tin khó khăn, địi hỏi sự can thiệp thủ cơng rất
lớn, chi phí lớn.
b. Integrated
Hình 4: Mức trưởng thành: Integrated
Các cơng nghệ, kỹ thuật tích hợp (EAI – Enterprise Application Integration) đã
được sử dụng để giao tiếp giữa các silos, tích hợp dữ liệu thay vì các kết nối độc
quyền, sở hữu riêng (proprietary connection). Với mức trưởng thành này, việc xây
dựng một hệ thống tích hợp ứng dụng từ nhiều bộ phận khác nhau đã trở nên khả
thi hơn, dễ dàng hơn.
Việc tích hợp ở mức này không tuân theo một chuNn về dữ liệu hay quy trình. Do
đó, việc kết nối hai hệ thống địi hỏi sử chuyển đổi dữ liệu, thao tác hay giao thức
(protocol). Mỗi một kết nối như vậy có thể địi hỏi những chương trình chuyển đổi
riêng, khó quản lý. Do đó, khơng dễ dàng để phát triển các quy trình nghiệp vụ
mới
c. Componentized
Các hệ thống IT trong các silos đã được phân tích và phân rã thành các thành phần
(component) cùng với một framework cho phép chúng có thể được phát triển với
cấu hình hay hệ thống mới.
Tuy nhiên, có những giới hạn trong việc ánh xạ các chức năng nghiệp vụ vào cáo
thành phần. Mặc dù các thành phần tương tác với nhau thông qua các giao diện
(interface), mối quan hệ giữa chúng không phải là kết nối lỏng lẻo (loosely
coupled). Điều này hạn chế việc tích hợp giữa các hệ thống thuộc các bộ phận
khác nhau của cùng một tổ chức hay thuộc các tổ chức khác nhau. Điều này gây
khó khăn cho việc phát triển các quy trình nghiệp vụ liên quan tới nhiều doanh
nghiệp, tổ chức.
11
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
Hình 5: Mức trưởng thành: Componentized
d. Services
Hình 6: Mức trưởng thành: Services
Các ứng dụng hỗn hợp (composite application) có thể được xây dựng từ các
business services (các dịch vụ này kết nối lỏng lẻo với nhau). Cách thức gọi các
dịch vụ này tuân theo các chuNn mở4, độc lập với nền tảng công nghệ, kỹ thuật
hiện thực. Các dịch vụ có nền tảng bên dưới hỗ trợ chúng với các giao thức, cơ
chế bảo mật, chuyển đổi dữ liệu, khả năng quản lý dịch vụ phù hợp ngay cả trong
trường hợp liên quan tới nhiều tổ chức, doanh nghiệp khác nhau5. Các dịch vụ có
thể được quản lý bằng cách trao trách nhiệm về SLA (Service Level Agreement)6
cho các bộ phận liên quan của tổ chức, doanh nghiệp.
4
Các chuNn mở: XML, SOAP, UDDI (Có thể xếp loại vào thế hệ Web Service thứ nhất)
Các chuNn liên quan tới chất lượng dịch vụ như WS-Security, WS-Policy, WS-Messaging, WS-N otification…
Chúng được đưa ra trong Web Service thế hệ thứ hai.
6
SLA – Service Level Agreement: theo nghĩa thông thường là một sự thỏa thuận giữa khách hàng và người cung
cấp dịch vụ. SLA thường chứa những điều kiện, khái niệm, quan niệm về dịch vụ, sự ưu tiên, trách nhiệm, bảo
đảm… Mỗi lĩnh vực khác nhau sẽ có những SLA khác nhau. Đối với Web Service, SLA có thể thể hiện những điều
kiện, khái niệm, quan niệm về dịch vụ, về những ai có thể sử dụng, về hiệu suất của dịch vụ…
5
12
Chống sử dụng bất hợp pháp hệ thống quản lý được xây dựng dựa trên SOA
Với mức độ này, các chức năng nghiệp vụ được phân tích và ánh xạ vào các dịch
vụ nghiệp vụ trong một kiến trúc cho phép các dịch vụ này có thể tích hợp dễ dàng
ở mức độ nghiệp vụ. Tuy nhiên, các luồng điều khiển trong ứng dụng không được
định nghĩa bởi các ngôn ngữ khai báo như BPEL 7(Business Process Execution
Language), thay vào đó, chúng được định nghĩa bởi những ngơn ngữ, chương
trình đặc thù. Việc này giới hạn khả năng linh động, hiệu quả trong việc phát triển
những quy trình nghiệp vụ mới.
e. Composite Services
Hình 7: Mức trưởng thành: Composite Services
Với mức trưởng thành này, một quy trình nghiệp vụ mới có thể được xây dựng từ
một tập các dịch vụ có sẵn bằng cách sử dụng những ngôn ngữ như BPEL để định
ra các luồng thông tin và điều khiển giữa các dịch vụ. Điều này cho phép việc kết
hợp các dịch vụ nghiệp vụ vào một quy trình mới nhanh hơn, hiệu quả hơn.
7
BPEL – Business Process Execution Language, là một ngôn ngữ chuNn do OASIS định nghĩa, mô tả sự tương tác
giữa các Web Service. Microsoft cũng đưa ra sự hỗ trợ tương tự như vậy. Công nghệ này của Microsoft gọi là WWF
– Windows Workflow Foundation
13