Tên đề tài: “Xây dựng chương trình nhắn tin SMS quảng bá cho Viễn thông Hà Nội”.
Trang 1VIỄN THÔNG HÀ NỘI TRUNG TÂM TIN HỌC -o0o -
XÂY DỰNG CHƯƠNG TRÌNH NHẮN TIN SMS QUẢNG BÁ CHO VIỄN THÔNG HÀ NỘI
MS : VNPT HNI - 2012-06 Phòng PTPM2 – Trung tâm Tin học - VTHN
Trang 21
MỤC LỤC
MỤC LỤC 1
MỤC LỤC CÁC HÌNH VẼ, SƠ ĐỒ 3
DANH MỤC CÁC TỪ VIẾT TẮT 4
BÁO CÁO ĐỀ TÀI KHOA HỌC 5
LỜI NÓI ĐẦU 6
CHƯƠNG I: KHẢO SÁT THỰC TRẠNG CÁC CHƯƠNG TRÌNH NHẮN TIN QUẢNG BÁ 7
1 Tại Viễn thông Hà Nội 7
2 Các đơn vị ngoài 8
CHƯƠNG II: NGHIÊN CỨU GIẢI PHÁP XÂY DỰNG CHƯƠNG TRÌNH 9
1 Xây dựng CSDL 9
2 Ứng dụng Web 9
3 Ứng dụng Desktop 10
CHƯƠNG III: XÂY DỰNG – PHÁT TRIỂN CHƯƠNG TRÌNH 11
1 Lựa chọn công nghệ 11
1.1 Cơ sở dữ liệu MySQL 11
1.1 1 Tổng quan 11
1.2 2 Một số tính năng chính của MySQL 12
1.2 2 Các ưu điểm của hệ quản trị cơ sở dữ liệu MySQL 21
1.2 Tổng quan Net Framework và Web Service 24
1.2.1 Net Framework 24
1.2.1.1 Biên dịch và ngôn ngữ trung gian (MSIL) 27
1.2.1.2 Web Services 28
1.2.2 Kiến trúc Web Service 30
1.2.2.1 XML – eXtensible Markup Language 32
1.2.2.2 WSDL - Web Service Description Language 33
1.2.2.3 UDDI - Universal Description, Discovery and Intergration 34
1.2.2.4 SOAP - Simple Object Accesss Protocol 36
Trang 32
1.2.3 Bảo mật trong Web Service 36
1.2.4 Xây dựng Web Service 38
1.2.5 Tích hợp Web Service theo chuẩn 39
1.3 ASP.NET 41
1.4 Kiến trúc 3 lớp/tầng trong ASP.NET 43
1.4.1 Phân biệt giữa tầng (tier) và lớp (layer) 43
1.4.2 Các thành phần trong kiến trúc 3 tầng/lớp 45
1.4.3 Mô tả chi tiết mô hình 3 lớp 47
1.5 JQuery 50
1.5.1 Tổng quan 50
1.5.2 Những tính năng của Jquery 50
2 Xây dựng cơ sở dữ liệu 54
2.1 Tổng quan về cơ sở dữ liệu 54
2.2 Các đối tượng chính trong cơ sở dữ liệu 56
3 Xây dựng – Phát triển chương trình 58
4 Các chức năng chính 59
4.1 Chức năng của chương trình 59
4.2 Giao diện chương trình 62
CHƯƠNG IV KẾT LUẬN 74
1 Đánh giá ưu, nhược điểm của đề tài 74
2 Hướng mở rộng đề tài 74
3 Đề xuất 75
Trang 43
MỤC LỤC CÁC HÌNH VẼ, SƠ ĐỒ
Hình 1: Sơ đồ hệ thống SMSGateWay 4x86 7
Hình 2: Giao diện quản trị mySQL 12
Hình 3: Mô hình Replicate trong MySQL 1 14
Hình 4: Mô hình MySQL Cluster 18
Hình 5: Mô hình MySQL Cluster nâng cao 19
Hình 6: Cấu hình Replicate gữa các Cluster 19
Hình 7: Kiến trúc ứng dụng Net 26
Hình 8: Web service cho phép các chương trình truy nhập 28
Hình 9: Mô hình dụng dịch vụ Web Service 29
Hình 10: Chồng giao thức của dịch vụ WEB 31
Hình 11: Kiến trúc web service 32
Hình 12: Cấu trúc WSDL 34
Hình 13: Mô hình ví dụ về cấu trúc UDDI 35
Hình 14: Cấu trúc SOAP message 36
Hình 15: Sơ đồ hoạt động của AJAX 42
Hình 16: Mô hình 3 tầng 43
Hình 17: Các thành phần trong kiến trúc 3 tầng/ lớp 45
Hình 18: Mô hình 3 lớp 47
Hình 19: Mô hình CSDL phần quản trị 54
Hình 20: Mô hình CSDL phần chức năng 55
Hình 21: Sơ đồ chức năng của hệ thống SMSQB 60
Hình 22: Tiến trình gửi tin quảng bá MT và nhận tin yêu cầu MO 61
Hình 23: Tình tự cấu hình SMS quảng bá 61
Hình 24: Trình tự cấu hình từ khóa 62
Trang 54
DANH MỤC CÁC TỪ VIẾT TẮT
Intergration
Trang 65
BÁO CÁO ĐỀ TÀI KHOA HỌC
Tên đề tài: Xây dựng chương trình nhắn tin SMS quảng bá cho Viễn thông Hà Nội
Cấp quản lý đề tài : Viễn thông Hà Nội
Cơ quan chủ trì đề tài : Trung tâm Tin Học
Chủ nhiệm đề tài : Nguyễn Mạnh Hùng
Những người tham gia thực hiện :
Mục tiêu của đề tài:
Dựa trên khảo sát hiện trạng hệ thống nhắn tin quảng bá của Viễn thông Hà Nội, nhóm thực hiện đặt ra mục tiêu đề tài như sau:
- Xây dựng chương trình cho người không có trình độ IT có thể chủ động cấu hình thực hiện các kịch bản quảng bá – tiếp thị (MT) và tiếp nhận thông tin phản hổi của khách hàng (MO) thông qua SMS
- Khả năng tạo và lưu trữ dữ liệu SMS tập trung
- Khả năng cấu hình kết nối tới các nguồn CSDL khác nhau(Oracle, SQL, MySQL, XLS,Text…) để upload vào cơ sở dữ liệu SMS tập trung
- Cấu hình gói cước, khuyến mại cho từng user để đưa ra ngoài Internet
- Tạo các giao diện tra cứu, giám sát, báo cáo các SMS đã gửi(nhận)
Trang 76
LỜI NÓI ĐẦU
Trong những năm vừa qua, nhằm đẩy mạnh tin học hóa các khâu trong qui trình sản xuất, Viễn thông Hà Nội đã xây dựng các hệ thống nhắn tin tự động thông báo cước, thông báo khuyến mại cho Vinaphone…Tuy nhiên, có một số vấn đề phát sinh: các kịch bản phân tán tại các đơn vị quản lý các hệ thống tin học, nguồn thông tin và số máy cần gửi cũng phân tán dẫn đến khó khăn trong việc quản lý kịch bản và dữ liệu Ngoài ra, việc cấu hình các kịch bản đòi hỏi phải có trình độ IT cao dẫn đến không thuận tiện cho người dùng tại
các đơn vị kinh doanh Đề tài “Xây dựng chương trình nhắn tin SMS quảng bá cho
Viễn thông Hà Nội” được thực hiện nhằm giải quyết các vấn đề còn tồn tại góp phần
tăng năng suất lao động của Viễn thông Hà Nội
Nội dung đề tài bao gồm :
- Chương I: Khảo sát thực trạng các chương trình nhắn tin quảng bá
- Chương II: Nghiên cứu giải pháp xây dựng chương trình
- Chương III: Xây dựng – Phát triển chương trình
- Chương IV: Kết luận
Trang 87
CHƯƠNG I: KHẢO SÁT THỰC TRẠNG CÁC CHƯƠNG
TRÌNH NHẮN TIN QUẢNG BÁ
1 Tại Viễn thông Hà Nội
Hệ thống SMSGateWay 4x86 là dự án đầu tư của Viễn thông Hà Nội, đơn vị cung cấp là NEO Tháng 10/2010 đầu số 4086 được Tập đoàn Bưu chính Viễn thông Việt Nam công nhận là đầu số nghiệp vụ phục vụ điều hành sản xuất kinh doanh Công ty Dịch vụ Viễn thông được Viễn thông Hà Nội giao quản trị hệ thống SMSGateWay, các đơn vị khác như Trung tâm Tin Học, Trung tâm điều hành Thông tin… khai thác cổng SMSGateWay này cho các hệ thống điều hành sản xuất kinh doanh mà đơn vị quản lý
Hình 1: Sơ đồ hệ thống SMSGateWay 4x86
Mô hình này có ưu điểm như: Chủ động bổ xung các kịch bản SMS qua đầu số 4x86 cho công tác điều hành sản xuất kinh doanh và làm dịch vụ cho 1080, bổ sung phương thức thực hiện các công đoạn nghiệp vụ qua SMS cho các bài toán nghiệp vụ điều hành sản xuất kinh doanh của Viễn thông Hà Nội
Trang 98
Bên cạnh đó mô hình này có một số hạn chế: Các kịch bản nằm phân tán tại các đơn vị quản lý các hệ thống IT như TTTH, TTDHTT… Nguồn thông tin, số máy cần gửi nằm phân tán trên nhiều nguồn dữ liệu khác nhau Chưa có giao diện tra cứu, báo cáo, giám sát tin nhắn gửi đi Ngoài ra, để tạo ra kịch bản SMS cần sự làm việc giữa bên cung cấp
dữ liệu với bên có hệ thống IT(làm kịch bản) dẫn đến mất công, nhiều thời gian trễ Ví dụ: một đơn vị có danh sách khách hàng muốn gửi tin nhắn thông báo khuyến mại, nếu không có người có trình độ IT đơn vị này sẽ phải gửi danh sách khách hàng và nội dung tin nhắn sang cho đơn vị quản lý SMSGW Sau đó đơn vị quản lý SMSQW dựa trên yêu cầu để viết các đoạn chương trình thực hiện gửi tin nhắn…Dẫn đến mất rất nhiều thời gian và công sức
2 Các đơn vị ngoài
Các đơn vị kinh doanh SMS quảng bá thường làm theo các bước như sau:
- Đăng ký gói cước với nhà cung cấp
- Gửi cho nhà cung cấp danh sách số máy cần gửi tin kèm theo nội dung tin nhắn
cần gửi (thường là nội dung tĩnh không cá biệt hóa theo từng số máy)
- Nhà cung cấp dịch vụ gửi cho khách hàng 1 tin nhắn mẫu để khách hàng kiểm tra
- Nếu khách hàng đồng ý bên cung cấp dịch vụ sẽ thực hiện gửi tin vào 1 thời điểm
nào đó, do nhà cung cấp đặt Khách hàng sẽ không có giao diện để cấu hình thời gian chạy, tần suất chạy…
- Báo cáo, thống kê tin nhắn gửi cũng do nhà cung cấp gửi lại cho khách hàng khi
khách hàng có nhu cầu
Từ thực tế các chương trình nhắn tin quảng bá tại Viễn thông Hà Nội và các đơn vị ngoài, nhóm đề tài thấy cần thiết phải có chương trình có khả năng giúp cho các đơn vị có thể chủ động upload danh sách số máy, nội dung tin nhắn, chủ động cấu hình được thời gian gửi tin Sau đó chủ động quản lý, giám sát các tin nhắn gửi đi
Trang 101 Xây dựng CSDL
CSDL của chương trình nhắn tin SMS quảng bá cho Viễn thông Hà Nội gồm các phần:
- Quản lý dữ liệu về thông tin gửi, số máy gửi, thời gian gửi
- Quản lý các kịch bản quảng bá
- Quản lý được user & quyền cho các user truy cập vào chương trình
- Quản lý khuyến mãi, gói cước, cước cho từng người dùng
2 Ứng dụng Web
Để đáp ứng yêu cầu quản lý tập trung kịch bản và dễ dàng cho việc triển khai, bảo trì, nâng cấp chương trình nhóm đề tài quyết định sử dụng giao diện Web cho việc cấu hình kịch bản quảng bá Vì giao diện Web có các ưu điểm sau:
- Quản lý tập trung, không mất thời gian cài đặt cho từng máy trạm và không bị hạn
chế số lượng người sử dụng
- Khi có sự cố máy trạm cũng không bị mất thông tin vì tất cả được quản lý tập
trung nên việc xử lý sự cố cũng rất đơn giản, nhanh chóng
- Chương trình ứng dụng chỉ việc cài đặt trên một máy chủ, chỉ việc dùng Browser
như Internet Explorer, FireFox truy cập vào máy chủ thông qua Internet là có thể
sử dụng được chương trình ứng dụng mà không phải cài thêm bất cứ phần mềm nào khác=> Chương trình có thể triển khai ở các đơn thông qua mạng intranet/internet
Việc tạo kịch bản gồm các bước: upload dữ liệu, cấu hình kịch bản, kiểm soát việc gửi dữ liệu… Công đoạn upload dữ liệu có thể thực hiện qua 2 phương thức: upload qua Web hoặc upload qua ứng dụng Desktop Tuy nhiên, nếu dùng upload qua Web sẽ gây tình trạng quá tải cho server Web khi người dùng upload một số lượng lớn bản ghi Do dó,
Trang 11- Phần upload dữ liệu: Để đáp ứng yêu cầu quản lý tập trung dữ liệu nhóm đề tài
quyết định sử dụng ứng dụng Desktop để upload thông tin gửi, số máy gửi đến CSDL tập trung Không dùng upload trên Web để tránh tình trạng quá tải của server Web
- Phần chạy ngầm gửi tin nhắn: Viết bằng WindowService sẽ chạy theo tần suất 1
phút/lần đọc trong dữ liệu xem kịch bản nào đến thời gian được gửi Sau đó sẽ đọc
dữ liệu của kịch bản đó rồi thực hiện gửi tuần tự từng bản tin
Trang 12mà nhóm đã và đang thực hiện nhằm đạt được mục tiêu đề ra
1 Lựa chọn công nghệ
Dựa trên qui mô hệ thống, điều kiện hạ tầng mạng/thiết bị và năng lực đội ngũ, nhóm đề tài đã lựa chọn giải pháp cơ bản sau:
- Cơ sở dữ liệu: hệ quản trị cơ sở dữ liệu MySQL
- Giao diện chương trình: WEB, có áp dụng các công nghệ mới như ASP.NET 4.0, AJAX, jQuery, …
- Mô hình phát triển: mô hình 3 lớp
1.1 Cơ sở dữ liệu MySQL
1.1 1 Tổng quan
- MySql là phần mềm quản trị cơ sở dữ liệu (CSDL) mã nguồn mở được phát triển bởi công ty MySQL AB MySQL là phần mềm CSDL miễn phí nằm trong nhóm LAMP (Linux – Apache - PHP) Phiên bản đầu tiền được ra mắt vào tháng 5 năm 1995 Cơ sở dữ liệu MySQL đã trở thành cơ sở dữ liệu mã nguồn mở phổ biến nhất trên thế giới vì cơ chế xử lý nhanh và ổn định của nó,
sự đáng tin cậy cao và dễ sử dụng Nó được sử dụng mọi nơi – ngay cả châu Nam Cực - bởi các nhà phát triển Web riêng lẻ cũng như rất nhiều các tổ chức lớn nhất trên thế giới để tiết kiệm thời gian và tiền bạc cho những Web sites
có dung lượng lớn, phần mềm đóng gói – bao gồm cả những nhà đi đầu trong
Trang 1312
lĩnh vực công nghiệp như Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube
và Zappos.com.MySQL không chỉ là cơ sở dữ liệu mã nguồn mở phổ biến nhất trên thế giới, nó còn trở thành cơ sở dữ liệu được chọn cho thế hệ mới của các ứng dụng xây dựng trên nền Linux, Apache, MySQL, PHP/Perl/Python MySQL chạy trên hơn 20 flatform bao gồm: Linux, Windows, OS/X, HP-UX, AIX, Netware, mang đến cho bạn tính linh hoạt trong việc sử dụng
- Dù là người mới làm quen với công nghệ cơ sở dữ liệu hay là một nhà phát triển giàu kinh nghiệm hoặc là DBA thì MySQL đều là hệ quản trị CSDL dễ
sử dụng
Hình 2: Giao diện quản trị mySQL
1.2 2 Một số tính năng chính của MySQL
- Đến phiên bản 5.0 MySQL đã cung cấp những tính năng chính cho CSDL doanh nghiệp như các CSDL Oracle, DB2, SQLServer như sau:
o ACID Transactions: giao dịch thực hiện để xây dựng kinh doanh đáng tin cậy và an toàn của các ứng dụng
Trang 1413
triển
o Triggers: để thi hành quy định kinh doanh phức tạp ở cấp cơ sở dữ liệu
o Views: Để thu thập thông tin từ nhiều bảng trong cơ sở dữ liệu
o Information Schema : Cung cấp truy cập dễ dàng để siêu dữ liệu
o Distributed Transactions: Hỗ trợ các giao dịch phức tạp trên nhiều cơ sở
dữ liệu
o Pluggable Storage Engine: Hỗ trợ nhiều cơ chế lưu dữ liệu
o Archive Storage Engine for historical and audit logs and data
o Federated Storage Engine: Tạo một CSDL trên nhiều server vật lý
o Rễ dàng cài đặt, cấu hình thông qua chế độ Wizard tự động
- MySQL phiên bản 5.1 tập trung nhiều cải tiến những tính năng sau:
o Replicate: Là cho phép sao chép dữ liệu từ một máy chủ cơ sở dữ liệu (master) để nhân rộng cho một hoặc nhiều máy chủ cơ sở dữ liệu khác (slave) Replicate khác với đồng bộ là: không cần phải được kết nối liên tục để nhận thông tin từ các Master, có nghĩa là bản cập nhật có thể xảy
ra sau một khoảng thời gian tùy thuộc vào cấu hình Replicate chỉ đồng
bộ một chiều từ Master về slave Replicate có thể nhân rộng tất cả các database hoặc những database được chọn, thậm chí cho phép replicate các bảng chọn trong một database Tuỳ thuộc vào mục đích sử dụng, ta
có thể dùng replicate vào mục đích sau:
Replicate để sao lưu dữ liệu (replicate for backup): Để sử dụng replicate như là một giải pháp sao lưu bằng cách sao chép dữ liệu
từ master thể để một slave
Trang 1514
Replicate giữa Master và Slave sử dụng cơ chế lưu dữ liệu khác nhau (storage engine): Cung cấp một số lợi thế trong quá trình replicate để tận dụng lợi thế của các loại engine khác nhau nhằng tăng hiệu năng của hệ thống ví dụ: Muốn sử dụng bảng engine INNODB trên master để tận dụng các chức năng giao dịch, nhưng lại sử dụng engine MYISAM sử dụng trên các slave, nơi không cần hỗ trợ giao dịch nhưng cầu lấy dữ liệu nhanh hiệu quả
Replicate nhân rộng quy mô: Đối với mô hình lớn việc tăng quy
mô để tăng tốc độ đáp ứng của hệ thống Việc nhân rộng được thể hiện bằng mô hình dưới đây
Hình 3: Mô hình Replicate trong MySQL
Replicate giữa các database khác nhau đến các slave khác nhau như sau:
Trang 1615
Sử dụng replicate trong trường hợp khẩn cấp khi Mysql master bị lỗi và chuyển sang chạy trên slave Giả sử ban đầu ta có mô hình
tổ chức database như sau:
Nếu Mysql Master bị lỗi, phải chuyển đổi lại mô hình như sau: Chuyển Slave 1 đang được hoạt động trở thành chủ như sau sử lụng
3 sử dụng STOP SLAVE và CHANGE MASTER TO MASTER_HOST='Slave1'
với Slave 1 từ Slave 2 hoặc Slave 3 Mô hình mới sẽ được tổ chức như sau:
Trang 1716
người sử dụng đặt ra và quản lý các tiến trình đang chạy vid dụ như hình sau:
mysql> SHOW PROCESSLIST\G
******************* 1 row *************************
Id: 1 User: root Host: localhost db: NULL Command: Query Time: 0 State: NULL Info: show processlist
****************** 2 row *************************
Id: 2 User: event_scheduler Host: localhost
db: NULL Command: Daemon Time: 3 State: Waiting for next activation Info: NULL
Trang 1817
o Inforomation schema: schema là siêu dữ liệu được theo dõi trong
PROCESSLIST, ENGINES và PLUGINS
o Clustering: MySQL Cluster là một cơ sở dữ liệu sẵn sàng cao (High Availability) sử dụng một kiến trúc độc đáo và một giao diện chuẩn SQL Hệ thống này bao gồm một số các quá trình giao tiếp, hoặc các node mà có thể được phân phối trên máy chủ để đảm bảo tính sẵn sàng liên tục trong trường hợp máy chủ hoặc mạng bị lỗi MySQL Cluster sử dụng một công cụ lưu trữ, bao gồm một bộ các node dữ liệu để lưu trữ
dữ liệu mà có thể được truy cập bằng cách sử dụng chuẩn SQL với MySQL Server hay thông qua API NDB truy cập thời gian thực MySQL Cluster bao gồm ba loại các node sau:
Một dữ liệu các node: Lưu trữ tất cả các dữ liệu thuộc Cluster MySQL Dữ liệu là ngay lập tức nhân rộng giữa các node để đảm bảo nó là liên tục có sẵn trong trường hợp một hoặc nhiều các node bị lỗi Các node cũng quản lý các giao dịch cơ sở dữ liệu Các ứng dụng sử dụng các NDB API truy cập dữ liệu của các node trực tiếp nhanh hơn là thông qua một MySQL Server
Hai node quản lý Server: Nodes này xử lý cấu hình hệ thống lúc khởi động và được kế thừa khi có một sự thay đổi cluster Thường chỉ có một Node là cấu hình Cluster được lập và hoạt động nhưng không có tùy chọn để chạy các node bổ sung, thay thế để tăng sự sẵn sàng cho các hoạt động bảo trì cũng như truy cập vào bản ghi cluster Bởi vì quản lý Node chỉ được dùng lúc khởi động và tái cấu hình hệ thống, Cluster sẽ vẫn trực tuyến và sẵn sàng bất kể tình trạng của Node này
Ba MySQL Server: Nodes SQL cho phép truy cập vào dữ liệu nhóm các node Nut này cung cấp cho các nhà phát triển một
Trang 1918
giao diện chuẩn để phát triển chương trình MySQL Server lần lượt xử lý yêu cầu gửi dữ liệu tới các node, do đó loại bỏ sự cần thiết cho các nhóm lập trình cấp thấp trong ứng dụng Hơn nữa MySQL Server Nodes được thêm vào để tăng hiệu suất
Hình 4 dưới dây là một ví dụ cơ bản một cấu hình MySQL Cluster gồm:
• Một MySQL Server Node
• Một Management Server Node
• Và bốn Data Nodes cho phép mở rộng khả năng tính toán
và tăng tính sẵn sàng
Hình 4: Mô hình MySQL Cluster
Hình 5 cung cấp một cấu hình Cluster tăng khả năng xử lý dữ liệu Cấu hình gồm:
• Ba Node MySQL Server
• Hai Node Management Server (đảm bảo tăng độ sẵn sàng của hệ thống)
• Bốn Data Nodes (tạo thành hai nhóm dữ liệu node) đảm bảo tăng khả xử lý và tính sẵng sàng của hệ thống
Trang 2019
Hình 5: Mô hình MySQL Cluster nâng cao
Hình 6: Cấu hình Replicate gữa các Cluster
Ngoài ra để tăng khả năng xử lý của hệ thống Cluster MySQL còn cho phép cấu hình xử lý nhiều tác vụ cùng một lúc (Multi-Threaded), đồng thời truy cập dữ liệu các node(Multi-Threaded Disk Data File Access)
Trang 2120
o Plugin API: Plugin API - MySQL 5,1 đang phát triển mới, linh hoạt plugin API cho phép thêm mới, gỡ bỏ các thành phần khác nhau tại DB thời gian chạy, mà không cần khởi động lại máy chủ MySQL cung cấp các hàm API cho hầu hết các ngôn ngữ lập trình thông dụng như: C, C++, VB, VB Net, C##, Perl, PHP…
o Backup and maintenance: MySQL hỗ trợ nhiều kiểu sau lưu khác nhau tuỳ vào mục đích sử dụng cụ thể Các kiểu và những đặc tính sao lưu của MySQL như sau:
Logical versus physical backups: Sao lưu logic thông tin đại diện như cấu trúc cơ sở dữ liệu (CREATE DATABASE, CREATE TABLE) và nội dung Sao lưu vật lý bao gồm bản sao nguyên của những thư mục và tập tin mà cơ sở dữ liệu lưu trữ nội dung
Online versus offline backups: Online sao lưu diễn ra trong khi các máy chủ MySQL chạy Offline sao lưu diễn ra trong khi máy chủ được ngừng lại Sự khác biệt này cũng có thể được mô tả là sao lưu "nóng", "lạnh" hay “ấm”
Local versus remote backups: Để đảm bảo không làm ảnh hưởng đến khả năng xử lý dữ liệu Ta có thể chọn cách sao lưu cho một máy chủ MySQL đang chạy từ một máy chủ MySQL khác
Snapshot backups: Là cách tại một thời điểm nào đấy sao lưu toàn bộ những thay đổi dữ liệu trong ngày
Full versus incremental backups: Đây là hình thức sao lưu toàn
bộ hệ thống tại một thời điểm Cách sao lưu này rất an toàn tuy nhiên cách này rất mất thời gian nên phương pháp này chỉ áp dụng những lúc hệ thống rỗi
Trang 2221
Point-in-time recovery: Đây là hình thức sao lưu theo thời gian thực Mỗi khi dữ liệu có thay đổi MySQL lưu lại các thay đổi này vào file backup để phục hồi khi hệ thống lỗi
Backup scheduling, compression, and encryption: Sao lưu, nén
và mã hoá theo lịch đặt ra cho hệ thống
Table maintenance: Là hình thức bảo trì dữ liệu cho các table để tránh các lỗi về dữ liệu
1.2 2 Các ưu điểm của hệ quản trị cơ sở dữ liệu MySQL
Sau đây là các ưu điểm của hệ quản trị cơ sở dữ liệu MySQL:
+ Tính thực thi cao:
Kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ liệu cấu hình máy chủ
cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng đặc thù Dù ứng dụng là một hệ thống xử lý giao dịch tốc độ cao hay web site dung lượng lớn phục vụ hàng triệu yêu cầu mỗi ngày, MySQL có thể đáp ứng khả năng xử lý những đòi hỏi khắt khe nhất của bất kì hệ thống nào Với các tiện ích tải tốc độ cao, đặc biệt bộ nhớ caches, và các cơ chế xử lý nâng cao khác, MySQL đưa ra tất cả các vũ khí cần phải có cho các hệ thống doanh nghiệp khó tính ngày nay
+ Có thể sử dụng ngay:
Trang 2322
Sự đáng tin cậy cao và tính “mì ăn liền” là những tiêu chuẩn đảm bảo của MySQL MySQL đưa ra nhiều tùy chọn có thể dùng ngay từ cấu hình tái tạo chủ/tớ tốc độ cao, để các nhà phân phối thứ 3 đưa ra những giải pháp có thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL
+ Hỗ trợ giao dịch mạnh:
MySQL đưa ra một trong số những engine giao dịch cơ sở dữ liệu mạnh nhất trên thị trường Các đặc trưng bao gồm hỗ trợ giao dịch ACID hoàn thiện ( Atomic – tự động, Consistent – thống nhất, Isolated – độc lập, Durable – bền vững), khóa mức dòng không hạn chế, khả năng giao dịch được phân loại, và hỗ trợ giao dịch đa dạng (multi-version) mà người đọc không bao giờ gây trở ngại cho người viết và ngược lại Tính toàn vẹn của dữ liệu cũng phải được bảo đảm trong suốt quá trình server có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, và phát hiện khóa chết ngay lập tức
+ Nơi lưu trữ Web và Data đáng tin cậy:
MySQL là nhà máy chuẩn cho các web sites phải trao đổi thường xuyên vì nó có engine xử lý tốc độ cao, khả năng chèn dữ liệu nhanh ghê gớm, và hỗ trợ mạnh cho các chức năng chuyên dụng của web như tìm kiếm văn bản nhanh Những tính năng này cũng được áp dụng cho môi trường lưu trữ dữ liệu mà MySQL tăng cường đến hàng terabyte cho các server đơn Các tính năng khác như bảng nhớ chính, cây B và chỉ số băm, và bảng lưu trữ đã được cô lại để giảm các yêu cầu lưu trữ đến 80% làm cho MySQL trở thành lựa chọn tốt nhất cho cả ứng dụng web
và các ứng dụng doanh nghiệp
+ Chế độ bảo mật dữ liệu mạnh:
Vì bảo mật dữ liệu cho một công ty là công việc số một của các chuyên gia về cơ
sở dữ liệu, MySQL đưa ra tính năng bảo mật đặc biệt chắc chắn dữ liệu sẽ được bảo mật tuyệt đối Trong việc xác nhận truy cập cơ sở dữ liệu, MySQL cung cấp
Trang 2423
các kĩ thuật mạnh mà chắc chắn chỉ có người sử dụng đã được xác nhận mới có thể truy nhập được vào server cơ sở dữ liệu, với khả năng này để chặn người dùng ngay từ mức máy khách là điều có thể làm được SSH và SSL cũng được hỗ trợ để chắc chắn các kết nối được an toàn và bảo mật Một đối tượng framework đặc quyền được đưa ra mà người sử dụng chỉ có thể nhìn thấy dữ liệu, các hàm mã hóa
và giải mã dữ liệu mạnh chắc chắn rằng dữ liệu sẽ được bảo mật Cuối cùng, tiện ích backup và recovery cung cấp bởi MySQL và các hãng phần mềm thứ 3 cho phép backup logic và vật lý hoàn thiện cũng như recovery toàn bộ hoặc tại một thời điểm nào đó
+ Sự phát triển ứng dụng hỗn hợp:
Một trong số các lý do khiến cho MySQL là cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới là nó cung cấp hỗ trợ hỗn hợp cho bất kì sự phát triển ứng dụng nào cần Trong cơ sở dữ liệu, hỗ trợ có thể được tìm thấy trong các stored procedure, trigger, function, view, cursor, ANSI-standard SQL, và nhiều nữa Với các ứng dụng nhúng, thư viện plug-in có sẵn để nhúng vào cơ sở dữ liệu MySQL hỗ trợ trong bất kì ứng dụng nào MySQL cũng cung cấp các bộ kết nối như: ODBC, JDBC, … để cho phép tất cả các form của ứng dụng sử dụng MySQL như một server quản lí dữ liệu được ưu tiên
+ Dễ dàng quản lý:
MySQL trình diễn khả năng cài đặt nhanh đặc biệt với thời gian ở mức trung bình
từ lúc download phần mềm đến khi cài đặt hoàn thành chỉ mất chưa đầy 15 phút Điều này đúng cho dù flatform là Microsoft Windows,Linux, Macintosh hay Unix Khi đã được cài đặt, tính năng tự quản lý như tự động mở rộng không gian, tự khởi động lại, và cấu hình động sẵn sàng cho người quản trị cơ sở dữ liệu làm việc MySQL cũng cung cấp một bộ hoàn thiện các công cụ quản lý đồ họa cho phép một DBA quản lý, sửa chữa, và điều khiển hoạt động của nhiều server MySQL từ một máy trạm đơn Nhiều công cụ của các hãng phần mềm thứ 3 cũng
Trang 2524
có sẵn trong MySQL để điều khiển các tác vụ từ thiết kế dữ liệu và ETL, đến việc quản trị cơ sở dữ liệu hoàn thiện, quản lý công việc, và thực hiện kiểm tra
+ Mã nguồn mở tự do và hỗ trợ 24/7:
Nhiều công ty lưỡng lự trong việc giao phó toàn bộ cho phần mềm mã nguồn mở
vì họ tin họ không thể tìm được một cách hỗ trợ hay mạng lưới an toàn phục vụ chuyên nghiệp, hiện tại, họ tin vào phần mềm có bản quyền để chắc chắn về sự thành công toàn diện cho các ứng dụng chủ chốt của họ Những lo lắng của họ có thể được dẹp bỏ với MySQL, sự bồi thường là có trong mạng lưới MySQL
+ Tổng chi phí thấp nhất:
Bằng cách sử dụng MySQL cho các dự án phát triển mới, các công ty đang thấy rõ việc tiết kiệm chi phí Được hoàn thành thông qua sử dụng server cơ sở dữ liệu MySQL và kiến trúc scale-out, các doanh nghiệp đã tìm ra cái mà họ có thể đạt được ở mức ngạc nhiên về khả năng xử lý Thêm vào đó, tính tin cậy và dễ duy trì của MySQL ở mức trung bình mà người quản trị cơ sở dữ liệu không phải mất nhiều thời gian sửa chữa hay vấn đề thời gian chết
Trên đây cũng là những lý do nhóm đề tài quyết định chọn hệ quản trị cơ sở dữ liệu MySQL làm hệ quản trị cơ sở dữ liệu cho chương trình
1.2 Tổng quan Net Framework và Web Service
1.2.1 Net Framework
.Net Framework là bộ khung phát triển ứng dụng mới, nó cung cấp một giao diện lập trình ứng dụng (Application Programming Interface-API) mới cho các dịch vụ và hệ điều hành Windows, nó cũng mang lại nhiều kỹ thuật khác nổi bật của Microsofts suốt từ những năm 90 Trong số đó có các dịch vụ COM + , công nghệ ASP, XML và thiết kế hướng đối tượng, hỗ trợ các giao thức Web Service mới như SOAP, WSDL và UDDL với trọng tâm là Internet, tất cả được tích hợp trong kiến trúc DNA (Distributed Applications Architecture)
Trang 2625
.Net Framework hỗ trợ tích hợp ngôn ngữ, tức là ta có thể kế thừa các lớp, bắt các ngoại lệ (Exception), đa hình thông qua nhiều ngôn ngữ .Net Framework thực hiện việc này nhờ vào đặc tả Common Type System - CTS (hệ thống kiểu chung)
mà tất cả các thành phần Net đều tuân theo Ví dụ , mọi thứ trong Net đều là đối tượng, thừa kế từ lớp gốc System.Object
Ngoài ra Net còn bao gồm Common Language Specification (đặc tả ngôn ngữ chung) Nó cung cấp các quy tắc cơ bản mà ngôn ngữ muốn tích hợp phải thỏa mãn CLS chỉ ra các yêu cầu tối thiểu của ngôn ngữ hỗ trợ Net Trình biên dịch tuân theo CLS sẽ tạo các đối tượng có thể tương hợp với các đối tượng khác Bộ thư viện lớp của khung ứng dụng (Framework Class Library-FCL) có thể được dùng bởi bất kỳ ngông ngữ nào tuân theo CLS
.Net Framework nằm ở tầng trên của hệ điều hành (bất kì hệ điều hành nào không chỉ là windows) .Net Framework bao gồm:
- Bốn ngôn ngữ chính thức : C#, VB.Net, C++ và Jscript.Net
- Common Language Runtime-CLR, nền tảng hướng đối tượng cho phát triển ứng dụng Windows và web mà các ngôn ngữ có thể chia sẻ sử dụng
- Bộ thư viện Framework Class Library – FCL
Trang 2726
Hình 7: Kiến trúc ứng dụng Net
Thành phần quan trọng nhất của Net Framework là CLR, nó cung cấp môi trường cho ứng dụng thực thi, CLR là một máy ảo, tương tự máy ảo Java CLR kích hoạt đối tượng, thực hiện kiểm tra bảo mật, cấp phát bộ nhớ, thực thi và thu dọn chúng
Trong hình 7 minh họa, tầng trên của CLR bao gồm:
- Các lớp cơ sở
- Các lớp dữ liệu và XML
- Các lớp cho dịch vụ web , web form , và windows fom
- Các lớp này được gọi chung là FCL , Framework Class Library, cung cấp API hướng đối tượng cho tất cả các chức năng của Net Framework (hơn 5000 lớp)
.NET Framework
Data and XML classes
(ADO.NET, SQL, XML,…)
Framework Base Classes
(IO, string, net, security, threading, reflextion, text,…)
Common Language Runtime
(debug, exception, type – checking, JIT compiler)
Windows Platform
.NET Framework
Trang 2827
Các lớp cơ sở tương tự với các lớp trong Java Các lớp này hỗ trợ các thao tác nhập xuất, thao tác chuỗi, văn bản, quản lý bảo mật, truyền thông mạng, quản lý chương trình con và các chức năng tổng hợp khác …
Trên mức này là lớp dữ liệu và XML Lớp dữ liệu hỗ trợ việc thao tác các dữ liệu trên cơ sở dữ liệu Các lớp này bao gồm các lớp SQL (Structure Query Language: ngôn ngữ truy vấn có cấu trúc) cho phép ta thao tác dữ liệu thông qua một giao tiếp SQL chuẩn Ngoài ra còn một tập các lớp gọi là ADO.Net cũng cho phép thao tác dữ liệu Lớp XML hỗ trợ thao tác dữ liệu XML, tìm kiếm diễn dịch XML
Trên lớp dữ liệu và XML là lớp hỗ trợ xây dựng các ứng dụng Windows (Windows Forms), ứng dụng Web (Web forms) và dịch vụ Web (Web services)
1.2.1.1 Biên dịch và ngôn ngữ trung gian (MSIL)
Với Net chương trình không biên dịch thành tập tin thực thi mà biên dịch thành ngôn ngữ trung gian (MSIL - Microsoft Intermediate Language, viết tắt là IL), sau đó chúng được CLR thực thi Các tập tin IL biên dịch từ C# đồng nhất với các tập tin IL biên dịch từ ngôn ngữ Net khác
Khi biên dịch dự án, mã nguồn C# được chuyển thành tập tin IL lưu trên đĩa Khi chạy chương trình thì IL được biên dịch (hay thông dịch) một lần nữa bằng trình Just In Time – JIT, lúc này kết quả là mã máy và bộ vi xử lý máy sẽ thực thi
Trình biên dịch JIT chỉ chạy khi có yêu cầu Khi một phương thức được gọi, JIT phân tích IL và sinh ra mã máy tối ưu cho từng loại máy JIT có thể nhận biết
mã nguồn đã được biên dịch chưa, để có thể chạy ngay ứng dụng hay phải biên dịch lại
CLS có nghĩa là các ngôn ngữ Net cùng sinh ra mã IL.Các đối tượng được tạo theo một ngôn ngữ nào đó sẽ được truy vập và thừa kế bởi các đối tượng của ngôn ngữ khác Vì vậy ta có thể tạo được một lớp cơ sở trong VB.Net và kế thừa nó từ C#
Trang 29Về khái niệm kỹ thuật có thể xem Web Service là một giao diện kết nối, được xây dựng dựa trên chuẩn công nghệ Internet
Hình 8: Web service cho phép các chương trình truy nhập
Các Web Service được cài đặt trên máy chủ yêu cầu gửi và nhận thông tin thông qua các giao thức chuẩn Internet Gọi một Web Service, tương ứng với việc gọi tới tới một thủ tục chạy trên Server tức là cũng có các tham số đưa vào và nhận kết quả trả lại của thủ tục đó, do đó dịch vụ Web cho phép Client và Server tương tác được với nhau ngay cả trong những môi trường khác nhau Ví dụ, đặt Web server cho ứng dụng trên một máy chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành Windows, ứng dụng vẫn có thể chạy và
Trang 30sự được coi trọng khi triển khai các hệ thống lớn bởi chúng có thể tồn tại ở nhiều dạng, có thể được dùng ở mọi nơi và phục vụ nhiều mục đích khác nhau Đây là một trong những điểm mạnh của Web Service, điểm mạnh này chính là khả năng xây dựng phân tán, tức là một dịch vụ Web bao gồm có nhiều mô-đun và có thể đặt nhiều nơi trên mạng Internet
Các dịch vụ Web vẫn dựa trên giao thức HTTP để truyền dữ liệu, đồng thời nó cần phải sử dụng thêm một loại giao thức để phục vụ cho việc gọi hàm Hiện nay có hai giao thức được dùng chủ yếu là : SOAP (Simple Object Access Protocol) và SDL (Service Description Language, đây là giao thức riêng của Microsoft ) Cả hai giao thức này đều được xây dụng dựa trên XML, mục đích chung của chúng là giúp định nghĩa các lệnh gọi hàm, tham số và giá trị
Hình 9: Mô hình dụng dịch vụ Web Service
Trang 3130
Ngoài ra, Microsoft cũng đưa ra thêm một ý tưởng mới về tập tin Discovery File, có phần mở rộng là disco Tập tin dạng này dùng để cung cấp các thông tin cho các trình duyệt để các trình duyệt này có thể xác định được các trang trên các máy chủ mà có chứa các Web Service
Tổng kết lại một số ưu điểm của Web Service bao gồm:
- Web Service cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau
- Sử dụng các giao thức và chuẩn mở Giao thức và định dạng dữ liệu dựa trên văn bản (text), giúp các lập trình viên dễ dàng hiểu được
- Nâng cao khả năng tái sử dụng
- Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong
hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán
- Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác
1.2.2 Kiến trúc Web Service
Web Service gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language) và UDDI (Universal Description, Discovery, and Integration) Hình dưới mô tả chồng giao thức của Web Service, trong đó UDDI được sử dụng để đăng ký và khám phá dịch vụ Web đã được miêu tả
cụ thể trong WSDL Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server, sau đó các ứng dụng SOAP yêu cầu một dịch vụ Web Các thông điệp SOAP được gửi đi chính xác bởi HTTP và TCP/IP
Trang 3231
Hình 10: Chồng giao thức của dịch vụ WEB
Chồng giao thức dịch vụ Web là tập hợp các giao thức mạng máy tính được sử dụng để định nghĩa, xác định vị trí, thi hành và tạo nên dịch vụ Web tương tác với những ứng dụng hay dịch vụ khác Chồng giao thức này có 4 thành phần chính:
- Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks Extensible Exchange Protocol- BEEP)
- Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để có thể hiểu được ở mức ứng dụng tương tác với người dùng Hiện tại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST
- Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một Web Service cụ thể WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML Web Service sẽ sử dụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao tác và chức năng mà Web Service cung cấp
- Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ đó giúp một Web Service có thể dễ dàng khám phá ra những dịch vụ nào đã có
WEB SERVICES UDDI (Discovery) WSDL (description) SOAP (remote service call) HTTP (Transport application
protocol) TCP/IP (Transport protocol)
Trang 33Kiến trúc tổng quát của dịch vụ Web như sau:
Hình 11: Kiến trúc web service
Trong đó, tầng giao thức tương tác dịch vụ (Service Communication Protocol) với công nghệ chuẩn là SOAP SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi một dịch vụ từ xa thông qua một thông điệp XML Ngoài ra, để các dịch vụ có tính an toàn, toàn vẹn
và bảo mật thông tin, trong kiến trúc Web Service, chúng ta có thêm các tầng Policy, Security, Transaction, Management
1.2.2.1 XML – eXtensible Markup Language
Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử dụng
để định nghĩa các thành phần dữ liệu trên trang Web và cho những tài liệu B2B
Trang 3433
(Business to Business) Về hình thức, XML hoàn toàn có cấu trúc thẻ giống như ngôn ngữ HTML nhưng HTML định nghĩa thành phần được hiển thị như thế nào thì XML lại định nghĩa những thành phần đó chứa cái gì Với XML, các thẻ có thể được lập trình viên tự tạo ra trên mỗi trang Web và được chọn là định dạng thông điệp chuẩn bởi tính phổ biến và hiệu quả
Do Web Service là sự kết hợp của nhiều thành phần khác nhau nên nó sử dụng các tính năng và đặc trưng của các thành phần đó để giao tiếp XML là công cụ chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một Web Service, tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML Khi đó, các thông tin mã hóa sẽ hoàn toàn phù hợp với các thông tin theo chuẩn của SOAP hoặc XML-RPC và có thể tương tác với nhau trong một thể thống nhất
1.2.2.2 WSDL - Web Service Description Language
WSDL định nghĩa cách mô tả Web Service theo cú pháp tổng quát của XML, bao gồm các thông tin:
WSDL thường được sử dụng kết hợp với XML Schema và SOAP để cung cấp Web Service qua Internet Một Client khi kết nối tới dịch vụ Web có thể đọc WSDL
Trang 3534
để xác định những chức năng sẵn có trên Server Sau đó, Client có thể sử dụng SOAP để lấy ra chức năng chính xác có trong WSDL
Hình 12: Cấu trúc WSDL
1.2.2.3 UDDI - Universal Description, Discovery and Intergration
Để có thể sử dụng các dịch vụ, trước tiên Client phải tìm dịch vụ, ghi nhận thông tin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ UDDI định nghĩa một số thành phần cho biết các thông tin này, cho phép các Client truy tìm và nhận những thông tin được yêu cầu khi sử dụng dịch vụ Web Cấu trúc UDDI bao gồm:
Trang 3635
Hình 13: Mô hình ví dụ về cấu trúc UDDI
- Trang trắng - White pages: chứa thông tin liên hệ và các định dạng chính yếu của Web Service, chẳng hạn tên giao dịch, địa chỉ, thông tin nhận dạng… Những thông tin này cho phép các đối tượng khác xác định được dịch vụ
- Trang vàng - Yellow pages: chứa thông tin mô tả Web Service theo những loại khác nhau Những thông tin này cho phép các đối tượng thấy được Web Service theo từng loại với nó
- Trang xanh - Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức năng của Web Service
- Loại dịch vụ tModel: chứa các thông tin về loại dịch vụ được sử dụng
- Những thông tin về Web Service được sử dụng và công bố lên mạng sử dụng giao thức này Nó sẽ kích hoạt các ứng dụng để tìm kiếm thông tin của Web Service khác nhằm xác định xem dịch vụ nào sẽ cần đến nó
Trang 3736
1.2.2.4 SOAP - Simple Object Accesss Protocol
Để một ứng dụng được kết nối với Web Service thì cả ứng dụng đó và Web Server đều phải dùng chung một giao thức gọi là SOAP
SOAP – Simple Object Access Protocol là giao thức truy cập đối tượng đơn giản cung cấp cách thức triệu gọi các phương thức từ xa thông qua XML và HTTP Các Web Service có thể dùng SOAP làm bên truyền tải cho dữ liệu XML đang được trao đổi giữa bên cung cấp và bên sử dụng Web Service Nếu một phương thức Web Service yêu cầu một đối tượng thì một thông điệp SOAP được tạo ra dưới dạng XML trong phần thông điệp SOAP để mô tả và truyền dữ liệu của đối tượng đó
Hình 14: Cấu trúc SOAP message
1.2.3 Bảo mật trong Web Service
Web Service liên kết và tương tác với các ứng dụng qua Internet, chính vì vậy bảo mật là một vấn đề được quan tâm khi các công ty tiến tới kết hợp ứng dụng với một dịch vụ Web Việc đảm bảo an toàn cho Web Service là một vấn đề quan trọng, đặc biệt đối với những dịch vụ liên quan đến trao đổi tiền tệ, dịch vụ bán hàng qua mạng hay liên quan đến trả tiền bằng tài khoản và có yêu cầu thông tin cá nhân của người dùng
Trước khi có WS-Security (bảo mật cho dịch vụ Web) thì ý nghĩa thông thường của an toàn Web Service là bảo mật kênh truyền dữ liệu Hiện nay, nó được thực hiện cho những SOAP/HTTP dựa trên cơ chế truyền thông điệp bằng cách sử dụng
Trang 38Khái niệm về WS-Security là một chuẩn an toàn bao trùm cho SOAP, nó được dùng khi muốn xây dựng những Web Service toàn vẹn và tin cậy Toàn vẹn có nghĩa
là khi có một giao dịch hay khi truyền thông tin, hệ thống và thông tin sẽ không bị chặn, giao dịch sẽ không bị mất cũng như không thể có người lấy cắp được dữ liệu trên đường truyền WS-security được thiết kế mang tính mở nhằm hướng tới những
mô hình an toàn khác bao gồm PKI, Kerberos và SSL Nó cũng đưa ra nhiều hỗ trợ cho các cơ chế an toàn khác, nhiều khuôn dạng chữ ký và công nghệ mã hóa, đảm bảo sự an toàn, toàn vẹn thông điệp và tính tin cậy của thông điệp Tuy nhiên, WS–security cũng chưa thể đảm bảo được tất cả yêu cầu về bảo mật và an toàn thông tin,
nó chỉ là một trong những lớp của giải pháp an toàn cho dịch vụ Web
Tính toàn vẹn tạo ra một chữ ký số hóa XML dựa trên nội dung của thông điệp Nếu dữ liệu bị thay đổi bất hợp pháp, nó sẽ không còn thích hợp với chữ ký số hóa XML đó Chữ ký này được tạo ra dựa trên khóa mà người gửi thông điệp tạo ra, do
đó người nhận chỉ nhận thông điệp khi có chữ ký sử dụng và nội dung phù hợp Ngược lại sẽ có một thông báo lỗi Việc chứng thực được thực hiện giữa client và server là cách chứng thực rất cơ bản (sử dụng định danh người dùng và mật khẩu) WS-security chỉ là một trong những lớp an toàn và bảo mật cho Web Service,
vì vậy cần một mô hình an toàn chung lớn hơn để có thể bao quát được các khía cạnh khác Các thành phần được thêm có thể là WS-Secure Conversation Describes,WS-Authentication Describes,WS-Policy Describes hay WS-Trust Describes Chúng sẽ thực hiện việc đảm bảo an toàn hơn cho hệ thống khi trao đổi
dữ liệu, mở và đóng các phiên làm việc cũng như quản lý dữ liệu cần chứng thực và chính sách chứng thực