Trên thực tế, một xu hướng kỹ thuật mới được hình thành, xu hướng phân tán các thành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng và sản xuất thông tin trên cơ sở mạng máy tín
Trang 1ĐẠI HỌC ĐÀ NẴNG
- -TIỂU LUẬN
Đề tài:
KỸ THUẬT ĐẢM BẢO DỮ LIỆU TRONG CÁC WEBSITE CẬP NHẬT CƠ SỞ DỮ LIỆU BẰNG ASP
TRÊN INTERNET
GVHD: PGS TS Lê Văn Sơn Thực hiện: Đỗ Công Đức
Chuyên ngành: Khoa học máy tính Khóa: 2008 - 2011
ĐÀ NẴNG, 08/2014
Trang 2- -Hiện nay, công nghệ thông tin là mối quan tâm hàng đầu của Việt Nam và toàn thế giới Chính mối quan tâm này đã làm nên cuộc cách mạng về khoa học và công nghệ Khởi đầu cho cuộc cách mạng khoa học và công nghệ này là sự hình thành và phát triển hàng loạt máy vi tính và các phương tiện xử lý thông tin khác Với sự phát triển nhanh chóng của khoa học máy tính cũng như nhu cầu trao đổi thông tin trong mọi hoạt động của xã hội đòi hỏi sự phát triển đồng bộ các phương tiện truyền thông Các thành tựu của ngành khoa học trí tuệ này đã góp phần quan trọng vào việc thay đổi bộ mặt của thế giới cả về bề mặt lẫn chiều sâu Việc ứng dụng các thành tựu của nền công nghệ hiện đại này trở thành vấn đề chủ chốt, quan trọng, quyết định sự thành bại của các thành phần tham gia vào lĩnh vực hoạt động trên thế giới từ kinh tế, văn hóa, chính trị đến quân sự.
Trên thực tế, một xu hướng kỹ thuật mới được hình thành, xu hướng phân tán các thành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng và sản xuất thông tin trên cơ sở mạng máy tính Nhằm khai thác có hiệu quả toàn hệ, vấn đề quan trọng hàng đầu cần tính đến là các tài nguyên và chiến lược khai thác, sử dụng chúng một cách có hiệu quả nhất.
Hiện nay các hệ thống thông tin trên mạng rất phổ biến như các website mua bán máy tính, đăng ký thi và thi qua mạng, các website thương mại điện tử, đang được sự quan tâm rất lớn Trong phạm vi báo cáo này sẽ trình bày về vấn đề đảm bảo gắn bó dữ liệu cho các website khi cập nhật dữ liệu bằng ngôn ngữ ASP.
Được sự giúp đỡ tận tình của PGS.TS Lê Văn Sơn và các bạn tôi đã hoàn thành được bản báo cáo Tuy nhiên thời gian và kiến thức có hạn nên bản báo cáo này chắc chắn còn nhiều khuyết điểm, tôi rất mong nhận được sự góp ý của Thầy giáo và các bạn Cho phép tôi được bày tỏ lòng biết ơn đối với PGS.TS Lê Văn Sơn
và các bạn đã ủng hộ, giúp đỡ tôi hoàn thành bản báo cáo này.
Trân trọng cảm ơn !
Trang 3CÁC KHÁI NIỆM VỀ HỆ TIN HỌC PHÂN TÁN
1.1 Định nghĩa hệ tin học phân tán
Hệ tin học phân tán là hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc các bộ
xử lý nằm ở xa ở các vị trí khác nhau và được liên kết với nhau thông qua phương tiện viễn thông dưới sự điều khiển thống nhất của hệ điều hành
Hệ phân tán là một tập hợp bao gồm các bộ xử lý hoặc bộ vi xử lý với bộ nhớ và đồng hồ độc lập Điều này đồng nghĩa với việc các bộ xử lý không sử dụng chung bộ nhớ và đồng hồ Trong hệ tin học phân tán, các tính toán có thể được tính trên nhiều bộ
xử lý hay trên vi xử lý của hệ thống đa bộ xử lý Như vậy hệ thống hệ tin học phân tán đòi hỏi hệ thống của mình phải trang bị bộ nhớ cục bộ Các bộ xử lý trao đổi thông tin qua các hệ thống đường truyền khác nhau như là cáp chuyên dụng, bus trao đổi, đường điện thoại, cáp quang, vv
Khác với hệ thống máy đơn, mạng máy tính là tập hợp các thiết bị đầu cuối được kết nối với nhau thông qua hệ thống đường truyền Các thiết bị đầu cuối của máy tính rất
đa dạng, bao gồm tập hợp các máy tính, các thiết bị chuyên dụng, các thiết bị truyền tin, các thiết bị tiếp nhận và hiển thị thông tin Hệ thống mạng máy tính được điều khiển bằng hệ điều hành mạng Hệ thống tin học này có thể là hệ tập trung hoặc hệ phân tán
Căn cứ vào các thành phần của hệ tin học, ta nhận thấy hệ tin học có thể bao gồm bốn thực thể sau:
Các
hệ thống phần mềm
Hệ thống
dữ liệu
Tập hợp phần cứng
Hệ thống truyền thông
Hình 1 Các thực thể của hệ tin học phân tán
Trang 4Trong hệ tin học phân tán, cấu hình phần cứng của mạng có thể bao gồm các bộ
xử lý có cấu tạo hoàn toàn khác nhau về khả năng, tốc độ và được thiết kế cho các chức năng khác nhau Chúng có thể là các bộ xử lý, các trạm làm làm việc, các máy tính tập trung và các máy tính điện tử vạn năng lớn Chúng được gọi bằng các tên khác nhau như trạm, node căn cứ vào ngữ cảnh mà ở đó nó được nêu ra
Ngoài hệ thống phần cứng, phần mềm, dữ liệu thì hệ phân tán còn có hệ thống truyền thông được mô tả như ở trên Song điều cơ bản để phân biệt hệ tin học phân tán với mạng máy tính là và hệ điều hành mạng chính là nguyên tắc xây dựng hệ
1.2 Các thành phần của hệ tin học phân tán
Các thành phần của hệ tin học phân tác có thể phản ánh trong bảng sau:
1 Bộ xử lý dùng cho các máy tính lớn hoặc máy trung
2 Bộ vi xử lý
3 Bộ xử lý hay vi xử lý với các bộ nhớ chính
4 Bộ xử lý hay vi xử lý với các bộ nhớ chính và kèm theo một vài bộ nhớ
truy cập nhanh
5 Máy lớn, trung hay vi tính hoàn chỉnh với điều kiện không sử dụng đồng
hồ chung
6 Trạm làm việc của mạng máy tính
7 Thiết bị đầu cuối của mạng
8 Các hệ thống tin học đóng vai trò nút trung chuyển
9 Các mạng cục bộ hoạt động độc lập trong mạng lớn
1.3 Ưu điểm và hạn chế của hệ thống phân tán
1.1.1 Ưu điểm
Chia xẻ tài nguyên: Chia xẻ tài nguyên trong hệ thống phân tán cung cấp một cơ
chế để chia xẻ tập tin ở vị trí xa, xử lý thông tin trong một cơ sở dữ liệu phân tán,
in ấn tại một vị trí xa, sử dụng những thiết bị ở xa để thực hiện các thao tác…
Tăng tốc độ tính toán: Hệ thống phân tán cho phép phân chia việc tính toán trên
nhiều vị trí khác nhau để tính toán song song
An toàn: Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn tiếp
tục làm việc mà không ảnh hưởng đến toàn bộ hệ thống
Trang 5 Thông tin liên lạc với nhau: Có nhiều lúc, chương trình cần chuyển đổi dữ liệu từ
vị trí này sang vị trí khác Khi các vị trí được nối kết với nhau trong một hệ thống mạng, việc trao đổi dữ liệu diễn ra rất dễ
1.1.2 Hạn chế
Giá phát triển phần mềm cao: Do các khó khăn khi cài đặt một hệ thống phân tán,
giá thành sẽ tăng lên
Dễ mắc lỗi hơn: Vì các trạm trong hệ phân tán làm việc song song, khó có thể
đảm bảo thuật toán được thực hiện đúng trên tất cả các trạm Do vậy mà số lỗi sẽ tăng lên
Khối lượng các xử lý tăng: Hệ thống phân tán cần truyền nhiều thông báo, nhiều
tính toán phụ Do vậy khối lượng xử lý tăng lên so với hệ thống tập trung
1.4 Nguyên tắc xây dựng hệ phân tán
Chia sẻ tài nguyên: Thực tế phát triển mạng máy tính đặt ra một vấn đề lớn là cần
phải dùng chung tài nguyên Một tiến trình trên một trạm nào đó có thể cung cấp tài nguyên dùng chung ở một trạm khác
Liên lạc: Khi các hệ thống đã được mắc nối với nhau, các thực thể trong hệ có thể
trao đổi thông tin với nhau
Tin cậy: Một trạm trong hệ bị sự cố không làm cho toàn hệ ảnh hưởng, mà ngược
lại, công việc đó được phân cho các trạm khác đảm nhận Ngoài ra, trạm bị sự cố
có thể tự động phục hồi lại trạng thái ban đầu trước khi có sự cố hay trạng thái ban đầu của nó
Tăng tốc: Đây là khái niệm mới về phân tán tải Một tính toán lớn nào đó, nếu chỉ
sử dụng một trạm thì thời gian cho kết quả lâu Tính toán này được chia nhỏ và thực hiện song song trên các trạm Điều này cần thiết đối với các trạm quá tải
1.5 Điều kiện của hệ phân tán
Để đảm bảo hoạt động thì các hệ thống kết nối với nhau phải thỏa mãn hai điều kiện
cơ bản sau đây :
Trang 6 Bất kỳ một hệ thống thành phần nào (hệ cục bộ) đều có thể liên lạc thông suốt với các hệ thống thành phần khác
Mỗi một hệ thống cục bộ được đặc trưng bằng một tên duy nhất và tên này có thể được nhận biết bởi các hệ thống viễn thông
1.6 Sự khác nhau giữa hệ tin học phân tán và hệ tin học
Sự khác nhau cơ bản của hệ tin học phân tán và hệ tin học đó là “hệ thống truyền thông
Các máy tính đơn được nối vào lại với nhau thành một hệ thống mạng thì hệ thông
đó gọi là hệ tin học phân tán
Các
hệ thống phần mềm
Hệ thống
dữ liệu
Tập hợp phần cứng
Hệ thống truyền thông
Các thực thể của hệ tin học phân tán
PhÇn cøng
PhÇn mÒm
D÷ liÖu
H×nh I-2 Ba thùc thÓ cña hÖ tin häc.
Các thực thể của hệ tin học
Trang 7KỸ THUẬT ĐẢM BẢO GẮN BÓ DỮ LIỆU TRONG CÁC WEBSITES KHI CẬP NHẬT CƠ SỞ DỮ LIỆU BẰNG NGÔN NGỮ
ASP TRÊN MẠNG INTERNET
1.7 Đặt vấn đề
Hiện tại, trên mạng Internet các hệ thống thông tin cũng như các hệ thống cung cấp tin tức, hệ thống kinh doanh thương mại điện tử đều được xây dựng trên cơ sở các công
cụ tạo web kết hợp với một số hệ quản trị cơ sở dữ liệu có sẵn trên thị trường như là SQL Server, Oracle, MySQL, Các hệ này hình thành dưới dạng các websites mang tính chất thông tin theo mô hình Client/Server và tỏ ra hữu dụng trong việc tra cứu thông tin với độ gắn bó dữ liệu không nhất thiết phải là gắn bó mạnh
Mô hình tổng quan về một hệ thống website có thể được mô tả trong hình vẽ sau:
Hình-1: Mô hình tổng quan về hệ thống website
Các hệ thống thông tin trên Internet với các truy cập đồng thời bao gồm cả việc đọc
và ghi dữ liệu đan xen nhau phải được nâng cấp để đáp ứng yêu cầu nhất quán cho người
sử dụng thông qua trình duyệt Chính vì thế, việc nghiên cứu hoàn thiện hệ bằng các giải pháp kỹ thuật ngay trong giai đoạn thiết kế nhằm đảm bảo dữ liệu đạt kết quả mạnh là hết sức cần thiết
Để đảm bảo duy trì sự gắn bó mạnh, người ta đã đề xuất các giải pháp kỹ thuật khác nhau và đã được công bố Trong phạm vi báo cáo này chỉ trình bày phương pháp đảm
Trang 8bảo gắn bó mạnh trên cơ sở thuật toán luân phiên cho các cập nhật của hệ phân tán triển
khai cho các hệ thống website
Mục tiêu của giải pháp nghiên cứu phải thỏa mãn yêu cầu cơ bản là với đối tượng
cần đặc trưng, thì thông tin biểu hiện về nó là duy nhất đúng ở thời điểm được phép truy cập bằng các trình duyệt có xét đến độ trễ và sự cố có thể của hệ thống viễn thông.
1.8 Cơ sở kỹ thuật của hệ thống thông tin trên Internet
Việc truy cập vào thông tin của các hệ thống website trên Internet có thể được khái
quát hóa bằng hình vẽ 2 Đây là hệ thống truy cập từ trình duyệt thể hiện kiến trúc n-bên
với các chương trình ứng dụng đã được công bố trong nhiều tài liệu tin học khác nhau
Hình – 2: Truy cập thông tin từ trình duyệt
Các hệ thống được xây dựng trên mạng Internet bao gồm các máy chủ kết nối với nhau qua mạng viễn thông, ví như mạng điện thoại công cộng
Khi thiết kế người ta thường dựa vào các hệ quản trị cơ sở dữ liệu có sẵn với ngôn ngữ SQL được sử dụng để kiểm nghiệm tính tương tác trên cả hai đối tượng server và client
Mối quan hệ giữa hệ quản trị cơ sở dữ liệu và công cụ tạo web có thể được mô tả trong hình 3
Hình – 3: Mô hình quan hệ giữa công cụ và hệ quản trị cơ sở dữ liệu
Việc kết nối cơ sở dữ liệu có thể thực hiện theo hai cách:
1 Theo sự kiện Application_OnStart.
2 Trên từng trang web động khi có yêu cầu sử dụng.
Gọi truy vấn HTML HTML
URL
Các bộ
Truy vấn
Chương trình
duyệt web
(IE, Netscape)
Các hệ thống thông tin dưới dạng các website
Các giao diện với thông tin (CSDL)
Nơi chứa thông tin (các files)
Programs
(Trên công cụ
tạo web động)
ADO
(ActiveX Data Object)
DBMS (SQL Server, Oracle, MySQL )
Trang 9Trong trường hợp thứ nhất thì cách thức mở cơ sở dữ liệu không phải là vấn đề đáng quan tâm vì đối tượng Connection duy trì kết nối cho toàn website Ngược lại trong cách thứ hai, cơ sở dữ liệu được mở theo chế độ Shared dùng chung Trong chế độ này, cơ sở
dữ liệu được xem như là tài nguyên dùng chung
Đoạn lệnh sau cho phép hình dung cơ chế mở một cơ sở dữ liệu trong công cụ tạo web động bằng ADO
<%
‘Global ADO variables
Dim cnn ‘as ADODB.Connection
Dim connectionString ‘as String
‘Create a connection string
‘You can edit connectionString variable to set your SQL server, login ID and password
connectionString = "Provider=SQLOLEDB;Data Source=MyServer;
Initial Catalog=MyDatabase; User ID=MyUID;
Password=MyPassword;"
‘Create connection object
Set cnn = Server.CreateObject(“ADODB.Connection”)
‘Open connection
‘Connection objection using supplied information in the connection string
cnn.Open connectionString
%>
Trong các công cụ tạo web đã được định hướng sử dụng để thiết kế hệ thống, các thuật toán điều khiển đồng thời để đảm bảo việc gắn bó dữ liệu được triển khai dưới dạng các khóa trong khi truy vấn hay cập nhật cơ sở dữ liệu như adLockReadOnly, adLockPessimistic, adLockOptimistic, adLockBatchOptimistic với đối tượng ADODB.RecordSet và các chế độ mở kết nối đến cơ sở dữ liệu như sau adModeShareDenyNone, adModeShareExclusive, adModeShareDenyWrite, adModeShareDenyRead, adModeReadWrite, adModeWrite , với đối tượng ADODB
Trang 10Connection được triển khai nhằm đảm bảo gắn bó dữ liệu.
Optimistic locking cập nhật bằng cách thay đổi đối tượng Field Khi sử dụng Optimistic locking, ADO không khóa bản ghi Lưu các thay đổi đối với bản ghi bằng cách chuyển sang bản ghi mới hoặc sử dụng phương thức Update.Phương thức này sẽ dẫn đến khóa bản ghi, kiểm tra phương thức Update có thành công hay không Nếu không chuyển qua chế độ thử lại
Optimistic locking sẽ chuyển thành Pessimistic locking khi giao dịch được sử dụng
Vì giao dịch khóa dữ liệu nên người dùng không thể cập nhật dữ liệu, thay đổi dữ liệu cho đến khi giao dịch được thực hiện xong
Như đã trình bày ở phần trước của bản báo cáo tính toàn vẹn của cơ sở dữ liệu cũng
vô cùng quan trọng trong việc đảm bảo gắn bó dữ liệu Chính vì thế, trong khi thiết kế cơ
sở dữ liệu chúng ta cần phải thực hiện tạo các ràng buộc cơ sở dữ liệu trong quá trình tạo các table dữ liệu Việc tạo các ràng buộc giữa các bảng có thể được tạo bằng câu lệnh cũng như bằng giao diện người sử dụng
Thêm vào đó nếu khi có sự cố thì hệ quản trị cơ sở dữ liệu cũng cần phải thực hiện các biện pháp khắc phục xử lý sự cố để đảm bảo tính gắn bó dữ liệu Trong tình huống này các hệ cơ sở dữ liệu cung cấp các giao dịch (Transaction) để triển khai Các phương thức quan trọng trong quá trình thiết kế các hệ thống cập nhật cơ sở dữ liệu bằng các giao dịch với các thao tác tương ứng trong bảng sau:
1 BeginTransaction <name> Bắt đầu một giao dịch có tên là name trên một
liên kết
3 Commit Khẳng định tất cả các thay đổi kể từ thời điểm
bắt đầu giao dịch
4 Rollback Khôi phục lại toàn bộ các thay đổi của giao dịch
kể từ khi nó bắt đầu thực hiện
Từ các phương thức trên người phát triển hệ thống cần lựa chọn sử dụng thích hợp để phát triển các hệ thống thông tin nhằm đảm bảo vấn đề gắn bó dữ liệu
1.9 Giải pháp đảm bảo gắn bó dữ liệu trên các hệ thống website
Trang 11Việc nghiên cứu và tìm ra giải pháp hữu hiệu nhằm đảm bảo gắn bó thông tin trong điều kiện lượng truy cập lớn, hơn nữa các truy cập này diễn ra đồng thời mang tính ngẫu nhiên và việc đọc và ghi đan chen lẫn nhau Sau khi xem xét các phương diện phầm mềm cơ sở như hệ điều hành, hệ quản trị cơ sở dữ liệu, công cụ tạo web động với vấn đề gắn bó dữ liệu, vấn đề còn lại là phải nghiên cứu phát triển các hàm, thủ tục người dùng Các hàm thủ tục này sẽ đóng vai trò cơ sở cho việc lập chương trình các hệ thống thông tin Hình sau cho phép hình dung các lớp hỗ trợ giải quyết có tính chất kỹ thuật cho vấn
đề gắn bó dữ liệu
Hình – 4: Cấu trúc lớp của việc giải quyết vấn đề gắn bó
Nội dung cơ bản của giải pháp kỹ thuật được thể hiện trên cơ sở giao dịch trực tuyến được trình bày thông qua hình vẽ dưới Trong đó toàn bộ thời gian của giao dịch chuyển
từ trạng thái gắn bó này đến trạng thái gắn bó của thông tin Do đó, vấn đề gắn bó trong
hệ thống chính là giải quyết vấn đề quản lý các giao dịch khi có nhiều truy cập diễn ra đồng thời, đặc biệt là các truy cập để thay đổi thông tin
Các chương trình ứng dụng
Các ngôn ngữ lập trình và các công cụ hỗ trợ
Các hệ quản trị cơ sở dữ liệu (DBMS)
Hệ điều hành
Hệ điều hành mạng các máy tính