Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 84 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
84
Dung lượng
1,73 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNGNGHỆ
Nguyễn Thị Hương
CÔNG NGHỆNÉNDELTA
ỨNG DỤNGTRONGCẬPNHẬTPHẦNMỀMTẠI
NGÂN HÀNGCÔNGTHƯƠNGVIỆTNAM
Ngành: Côngnghệ thông tin
Chuyên ngành: Truyền dữ liệu và mạng máy tính
Mã số: 60 48 15
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS. TS. Nguyễn Văn Tam
Hà Nội – 2009
2
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Những số liệu trình bày
trong luận văn là trung thực và có nguồn gốc rõ ràng. Các kết luận khoa học của luận
văn chưa được công bố trong bất kỳ công trình nghiên cứu khoa học nào.
Hà Nội, ngày 4/12/2009
Tác giả
Nguyễn Thị Hương
3
LỜI CẢM ƠN
Em xin gửi lời cảm ơn sâu sắc tới thầy giáo hướng dẫn PGS, TS Nguyễn Văn Tam
đã tận tình chỉ bảo em những kiến thức quý giá giúp em hoàn thành luận văn này.
Em cũng xin chân thành cảm ơn các thầy, cô giáo khoa Côngnghệ thông tin - bộ môn
Truyền dữ liệu và mạng máy tính đã nhiệt tình chỉ bảo, góp ý để luận văn của em
được hoàn thiện.
Tôi xin cảm ơn các đồng chí đồng nghiệp làm việc tại phòng Nghiên cứu phát triển,
phòng Ứngdụng triển khai, bảo trì và phát triển phầnmềm – Trung tâm côngnghệ
thông tin – Ngân hàngcôngthươngViệtNam đã cung cấp các tài liệu cần thiết để tôi
hoàn thành luận văn này.
Do thời gian nghiên cứu cũng như năng lực có hạn, luận văn ko tránh khỏi những
thiếu sót, mong nhận được sự đóng góp ý kiến của quý thầy cô và các bạn.
Hà Nội, ngày 4/12/2009
Tác giả
Nguyễn Thị Hương
4
MỤC LỤC
TRANG PHỤ BÌA ………………………………………………………………….1
LỜI CAM ĐOAN 2
LỜI CẢM ƠN 3
MỤC LỤC 4
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT 6
DANH MỤC CÁC BẢNG BIỂU 7
DANH MỤC CÁC HÌNH VẼ 8
MỞ ĐẦU 9
CHƯƠNG 1 - GIỚI THIỆU CHUNG VỀ MỘT SỐ CÔNGNGHỆNÉN 10
1.1 Tầm quan trọng của nén dữ liệu trong truyền tin 10
1.2 Nguyên tắc của nén dữ liệu 10
1.3 Một số phương pháp nén dữ liệu 11
1.3.1 Phương pháp mã hoá độ dài loạt (Run-Length Encoding) 11
1.3.2 Phương pháp mã hoá Huffman 12
1.3.3 Phương pháp nén LZW 14
1.3.4 Chọn phương pháp nén 17
CHƯƠNG 2 – CÔNGNGHỆNÉNDELTA 19
2.1 Tổng quan về côngnghệnénDelta 19
2.1.1 Tổng quan 19
2.1.2 Tính hiệu quả 20
2.2 Nền tảng 20
2.1.3 Nền tảng chung 20
2.1.4 Bộ nén LZ77 - Nền tảng của bộ nénDelta 22
2.3 Thuật toán nénDelta 24
2.3.1 Giới thiệu 25
2.3.2 Đặt vấn đề: 26
2.3.3 Những nghiên cứu đầu tiên 27
2.3.4 Thuật toán cơ bản 28
2.3.5 Sự cải tiến của thuật toán 32
2.3.6 Xây dựng lại xâu đích 34
2.4 Một vài kết quả thí nghiệm 37
2.5 Các vấn đề liên quan 39
2.5.1 Khoảng trống miễn cưỡng trong bộ néndelta 39
2.5.2 Chọn file tham chiếu 40
2.5.3 Đồng bộ các file từ xa 41
2.5.3.1 Thuật toán rsync 41
2.5.3.2 Các kết quả thực nghiệm của rsync 43
2.5.3.3 Các ứngdụng 44
CHƯƠNG 3 - ỨNGDỤNG THUẬT TOÁN NÉNDELTATRONG VIỆC CẬPNHẬT
CÁC PHẦNMỀM NGHIỆP VỤ TẠINGÂNHÀNGCÔNGTHƯƠNGVIỆT NAM. 46
3.1 Mô hình hệ thống côngnghệ thông tin trong ngân hàngCôngThươngViệtNam 46
3.2 Quy trình cậpnhật các phầnmềm nghiệp vụ trong ngân hàngCôngThươngViệt
Nam 47
3.3 Chương trình cậpnhật tự động các phầnmềm nghiệp vụ 47
3.3.1 Thiết kế hệ thống 47
5
3.3.2 Thiết kế chương trình 48
3.3.2.1 Chương trình đặt lịch tự động 48
3.3.2.2 Chương trình quản lý trên Server TW 49
3.3.2.2.1 Quản lý gói cậpnhật 49
3.3.2.3.2 Quản lý danh sách chi nhánh 55
3.3.2.3.3 Quản lý danh sách ứngdụng 56
3.3.2.3.4 Upload thủ công gói cậpnhật 57
3.3.2.3.5 Xem nhật ký upload 58
3.3.3 Thực thi chương trình 59
3.3.3.1 Chương trình đặt lịch tự động 59
3.3.3.2 Chương trình quản lý trên server TW 63
3.3.3.2.1 Quản lý gói cậpnhật 63
3.3.3.2.2 Quản lý danh sách chi nhánh 65
3.3.3.2.3 Quản lý danh sách ứngdụng 67
3.3.3.2.4 Upload thủ công gói cậpnhật 68
3.3.3.2.5 Xem nhật ký upload 69
CHƯƠNG 4 - KẾT LUẬN 71
4.1 Kết luận 71
4.2. Ưu nhược điểm của phương pháp 71
4.3 Hướng nghiên cứu trong tương lai 72
TÀI LIỆU THAM KHẢO 73
Bảng đối chiếu encoding các bộ chữ hiện hành với Unicode 74
Thuật toán Knuth-Morris-Pratt Pattern Matching 83
6
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Chữ viết tắt
Nội dung tiếng Anh
Nội dung tiếng Việt
Delta compression Differential compression Phương pháp nén dựa trên
sự sai khác nhau giữa 2
file
LCS Longgest common
subsequence
Chuỗi chung dài nhất (của
2 xâu /chuỗi)
LZW Tên một phương pháp nén
được phát minh bởi
Lempel - Zip và Welch
Match Sự phù hợp (sự khớp
nhau) giữa 2 xâu
Patch file Bản vá của 1 file cần cập
nhật
QAM Quadrature Amplitude
Modulation
Điều chế biên độ trực giao
Script
Đoạn lệnh (viết bằng một
ngôn ngữ lập trình nào đó)
nhằm thực hiện một mục
đích cho trước.
String Xâu các ký tự văn bản
UTF Unicode Transformation
Format
Mã định dạng unicode
7
DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1: Các kết quả nén cho bộ dữ liệu gcc và emacs (KB /s) 24
Bảng 2.2: Các kết quả nén cho tập dữ liệu gcc và emacs (KB) 44
Bảng 2.3: Các kết quả nén cho emacs với các tập dữ liệu khác nhau (KB) 44
8
DANH MỤC CÁC HÌNH VẼ
Hình 2.1 Bộ nén dữ liệu thông thường 19
Hình 2.2 Bộ nénDelta 20
Hình 2.3: Sự đối lập của kích thước nén file và sự giống nhau giữa các file (KB) 38
Hình 2.4: Sự đối lập giữa thời gian thực hiện và sự giống nhau của các file 38
Hình 3.1: Mô hình hệ thống côngnghệ thông tin tại NHCTVN 46
Hình 3.2: Các mô đun chính chương trình quản lý tại Server TW 49
Hình 3.3: Các chức năng của mô đun Quản lý gói cậpnhật 50
Hình 3.4: Lưu đồ chức năng Tạo mới/chỉnh sửa gói cậpnhật 50
Hình 3.5: Các chức năng của mô đun Quản lý danh sách chi nhánh 55
Hình 3.6: Mối quan hệ giữa chức năng quản lý danh sách chi nhánh và các chức năng khác
56
Hình 3.7: Các mô đun chính của chức năng Quản lý danh sách ứngdụng 57
Hình 3.8: Mối quan hệ giữa chức năng Quản lý danh sách ứngdụng và chức năng Quản lý
gói cậpnhật 57
Hình 3.9: Mối quan hệ giữa chức năng Upload thủ công gói cậpnhật và các chức năng khác
58
Hình 3.10: Mối quan hệ giữa chức năng Xem nhật ký upload và các chức năng khác. 58
Hình 3.11: Thực thi chương trình đặt lịch tự động (1) 59
Hình 3.12: Thực thi chương trình đặt lịch tự động (2) 60
Hình 3.13: Thực thi chương trình đặt lịch tự động (3) 60
Hình 3.14: Thực thi chương trình đặt lịch tự động (4) 61
Hình 3.15: Thực thi chương trình đặt lịch tự động (5) 61
Hình 3.16: Thực thi chương trình đặt lịch tự động (6) 62
Hình 3.17: Thực thi chương trình đặt lịch tự động (6) 62
Hình 3.18: Giao diện màn hình quản lý trên Server TW 63
Hình 3.19: Thực thi mô đun Quản lý gói cậpnhật (1) 63
Hình 3.20: Thực thi mô đun Quản lý gói cậpnhật (2) 64
Hình 3.21: Thực thi mô đun Quản lý gói cậpnhật (3) 64
Hình 3.22: Thực thi mô đun Quản lý gói cậpnhật (4) 65
Hình 3.23: Thực thi mô đun Quản lý danh sách chi nhánh (1) 66
Hình 3.24: Thực thi mô đun Quản lý danh sách chi nhánh (2) 66
Hình 3.25: Thực thi mô đun Quản lý danh sách chi nhánh (3) 67
Hình 3.26: Thực thi mô đun Quản lý danh sách ứngdụng (1) 67
Hình 3.27: Thực thi mô đun Quản lý danh sách ứngdụng (2) 68
Hình 3.28: Thực thi mô đun Upload thủ công gói cậpnhật (1) 68
Hình 3.29: Thực thi mô đun Upload thủ công gói cậpnhật (2) 69
Hình 3.30: Thực thi mô đun Upload thủ công gói cậpnhật (3) 69
Hình 3.31: Thực thi mô đun Xem nhật ký upload (1) 70
Hình 3.32: Thực thi mô đun Xem nhật ký upload (2) 70
9
MỞ ĐẦU
Trong các lĩnh vực của côngnghệ thông tin - viễn thông hiện nay, việc truyền tải tin
tức đã là một công việc xảy ra thường xuyên. Tuy nhiên, thông tin được truyền tải đi
thường rất lớn, điều này gây khó khăn cho công việc truyền tải: gây tốn kém tài
nguyên mạng, tiêu phí khả năng của hệ thống… Để giải quyết vấn đề đó, các thuật
toán nén đã được ra đời.
Mỗi phương pháp nén có hiệu quả khác nhau với các loại tệp khác nhau. Luận văn
này sẽ trình bày một phương pháp nén có hiệu quả cao trong việc truyền tải tệp tin
trên mạng phục vụ cho việc cậpnhật phiên bản của tệp tin. Phương pháp dựa trên sự
sai khác nhau giữa tệp nguồn và tệp đích (gọi là Differential Compression – hay Delta
Compression) - trong quá trình cập nhật, tệp nguồn là tệp cũ, tệp đích là tệp mới- và
tạo ra một bản vá có kích thước nhỏ đáng kể so với tệp đích. Khi đó, thay vì phải
truyền tệp đích có kích thước lớn trên mạng, ta chỉ cần truyền bản vá có kích thước
rất nhỏ. Phương pháp đã đạt được tỉ lệ nén cao, rất hiệu quả trong việc tiết kiệm tài
nguyên mạng. Nếu tỷ lệ nén cho các tệp thực thi thường dao động quanh 3:1 thì tỷ lệ
nén của bản vá so với tệp đích theo phương pháp Delta có thể nằmtrong khoảng từ
10:1 tới 1000:1 và thậm chí có thể lớn hơn – tùy thuộc vào dung lượng tệp đích và
mức độ khác biệt của nó với tệp nguồn. Luận văn cũng trình bày ứngdụng của
phương pháp néntrong việc cậpnhậtphầnmềm nghiệp vụ tại Ngân hàngCông
thương Việt Nam.
10
CHƯƠNG 1 - GIỚI THIỆU CHUNG VỀ MỘT SỐ CÔNGNGHỆNÉN
1.1 Tầm quan trọng của nén dữ liệu trong truyền tin
Trong kỹ thuật truyền tin nối tiếp, do các bit dữ liệu được truyền đi nối tiếp, lại bị
giới hạn về dải thông của kênh truyền và giới hạn về các chuẩn ghép nối nên tốc độ
truyền tin tương đối chậm. Ðể tăng tốc độ truyền, ta có thể dùng nhiều phương pháp
như sử dụng kỹ thuật điều chế pha nhiều mức, điều chế QAM, TCM
Nén dữ liệu trước khi truyền đi cũng là một trong các phương pháp nhằm tăng tốc độ
truyền dữ liệu. Trong các modem hiện đại, việc thực hiện nén dữ liệu trước khi
truyền đi có thể được thực hiện ngay trong modem theo các giao thức V42bis.
Phương pháp này đòi hỏi hai modem phải có cùng một giao thức nén dữ liệu, điều
này nhiều khi khó thoả mãn.
Có một phương pháp khác là thực hiện nén các tập tin ngay tại các máy vi tính trước
khi truyền đi, tại các máy tính nhận, các tập tin lại được giải nén để phục hồi lại dạng
ban đầu. Phương pháp này có ưu điểm là bên phát và bên thu chỉ cần có chung phần
mềm nén và giải nén, ngoài ra còn có thể áp dụng được để truyền dữ liệu qua các
modem không hỗ trợ nén dữ liệu hoặc truyền dữ liệu trực tiếp qua cổng COM của
máy tính. Nhược điểm của phương pháp này là các máy vi tính phải tốn thêm thời
gian nén và giải nén, nhưng do sự phát triển nhanh chóng của các bộ vi xử lý mà thời
gian thực hiện nén và giải nén được giảm nhỏ hơn rất nhiều thời gian để truyền dữ
liệu. Ví dụ, khi truyền một tập tin có kích thước là 100Kbyte với dạng thức của một
SDU là: 8 bits dữ liệu, 2 bit STOP và 1 bit START, không dùng bit chẵn lẻ, tốc độ
truyền là 9600bits/giây thì mất khoảng 120 giây, trong khi một máy vi tính với bộ vi
xử lí 80386 có thể thực hiện nén tập tin trên xuống còn 50Kbyte chỉ mất chưa đến 10
giây.
1.2 Nguyên tắc của nén dữ liệu
Thông thường, hầu hết các tập tin trong máy tính có rất nhiều thông tin dư thừa, việc
thực hiện nén tập tin thực chất là mã hoá lại các tập tin để loại bỏ các thông tin dư
thừa.
Nhìn chung không thể có phương phát nén tổng quát nào cho kết quả tốt đối với tất
cả các loại tập tin vì nếu không ta sẽ áp dụng n lần phương pháp nén này để đạt được
một tập tin nhỏ tuỳ ý! Kỹ thuật nén tập tin thường được áp dụng cho các tập tin văn
bản (Trong đó có một số kí tự nào đó có xác suất xuất hiện nhiều hơn các kí tự
khác), các tập tin ảnh bitmap (Mà có thể có những mảng lớn đồng nhất), các tập tin
[...]... Vì vậy, việc áp dụng côngnghệ Delta vào thực tiễn sẽ có ý nghĩa lớn trong truyền dữ liệu trên 18 mạng máy tính, giúp giảm lưu lượng trên đường truyền, giảm thời gian truyền nhận gói tin 19 CHƯƠNG 2 – CÔNGNGHỆNÉNDELTACôngnghệnénDelta được phát triển bởi Microsoft, là một côngnghệnén dựa trên sự sai khác nhau của các file và được sử dụng cho việc cậpnhậtphầnmềm Quá trình nén dựa trên sự... phiên bản cũ của chúng đã tồn tại trên máy đích, việc áp dụng các thuật toán trên sẽ không thực sự hiệu quả Một côngnghệnén khác được Microsoft phát triển nhằm cậpnhật phiên bản mới cho các tệp thực thi Đó là côngnghệDelta Compression Nếu tỷ lệ nén cho các tệp thực thi thường dao động quanh 3:1 thì tỷ lệ nén của bản vá so với tệp đích theo côngnghệDelta có thể nằmtrong khoảng từ 10:1 tới 1000:1... 2.1.4 Bộ nén LZ77 - Nền tảng của bộ nénDelta Các bộ nénDelta phổ biến nhất hiện nay dựa trên thuật toán copy theo hướng nghiên cứu của Lempel-Ziv[9] Một trong các tool đó là vdelta và sự biến thể của nó vcdiff, xdelta được dùngtrong XDFS, và công cụ zdelta Bây giờ, ta sẽ mô tả chi tiết bộ nén như vậy, sử dụng ví dụ của zdelta Zdelta (tool) dựa trên thư viện nén zlib có thay đổi một chút, có một vài... tìm thấy trong file cơ sở Bộ giải nén Delta, hay applier, chấp nhận Delta cùng với file cơ sở, và xây dựng lại file đích (target file) 20 Hình 2.2 mô tả quá trình nénDelta Bộ tạo Delta chấp nhận dữ liệu đích F’ cùng với dữ liệu cơ sở F, và cung cấp một đại diện đã nén ÄF-F’ Sau đó Delta applier chấp nhận delta ÄF-F’ cùng với phần dữ liệu cơ sở F, để xây dựng dữ liệu đích F’ Hình 2.2 Bộ nénDelta 2.1.2... pháp nén khác 2.1 Tổng quan về côngnghệnénDelta 2.1.1 Tổng quan Trong một hệ thống nén dữ liệu thông thường, bộ nén chấp nhận một file và cung cấp một đại diện nhỏ gọn hơn của file đó Bộ giải nén thực hiện chức năng ngược lại, chấp nhận một dạng file nhỏ gọn và xây dựng lại file ban đầu Hình 2.1 mô tả quá trình này Bộ nén chấp nhận dữ liệu F’ và đưa ra một đại diện đã nén C(F’) Sau đó, bộ giải nén. .. đầu F’ Hình 2.1 Bộ nén dữ liệu thông thường Hệ thống nénDelta cũng sử dụng một bộ nén, nhưng bộ nén này chấp nhận 2 input: một file đích (target file) và một file tham chiếu hay file cơ sở (basic file) Giống như các bộ nén thông thường khác, bộ nénDelta cũng cung cấp một đại diện nhỏ gọn hơn của file ban đầu Đại diện nhỏ gọn hơn này còn được gọi là Delta[ 4], có thể tham chiếu tới phần dữ liệu tương... phù hợp như vậy với cùng độ dài được tìm thấy trong (b), chọn cái có khoảng cách tương đối nhỏ nhất tới vị trí j trong fnew hoặc tới một trong các con trỏ trong fold Cũng phải mã hoá độ dài của phần phù hợp và con trỏ được sử dụngtrong tham chiếu Tăng j thêm một phần bằng độ dài của sự phù hợp, và cậpnhật con trỏ pi nếu có (e) Nếu không có sự phù hợp nào tại độ dài tối thiểu 3, viết ra ký tự fnew[j]... các công cụ đang tồn tại Một chi tiết quan trọng khác liên quan tới phương pháp được sử dụng để mã hoá khoảng cách, độ dài phù hợp, thông tin con trỏ và các ký tự Ở đây, zdelta sử dụng phương pháp mã hoá Huffman được cung cấp bởi zlib, trong khi vdelta sử dụng sự mã hoá theo byte nhanh hơn rất nhiều nhưng lại ít cô đọng hơn Ngược lại, xdelta không có sự mã hoá thông minh nào, nó để cho người dùng áp dụng. .. dụng một công cụ nén để đưa ra output[4] gcc size Uncompressed gcc time emacs size emacs time 27288 - 27326 - 7479 24/30 8191 26/35 Xdelta 461 20 2131 29 Vcdiff 289 33 1821 36 Zdelta 250 26/32 1465 35/42 Gzip Bảng 2.1: Các kết quả nén cho bộ dữ liệu gcc và emacs (KB /s) 2.3 Thuật toán nénDelta Như trên đã nói, Delta sử dụng quá trình biến đổi từ string sang một string bằng các khối di chuyển Phần này... khác nhau của cùng 1 file [9] Quá trình tạo này cần 2 file là input Kích thước của file delta tuỳ thuộc vào sự giống nhau giữa 2 file này Phần dữ liệu xuất hiện trong target không giống trong basic sẽ được nénTrong trường hợp xấu nhất, khi basic và target không có điểm nào chung, delta sẽ là một dạng nén của target Delta Compression API yêu cầu các dạng đặc biệt của các file có thể thực thi (chẳng hạn . ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thị Hương
CÔNG NGHỆ NÉN DELTA
ỨNG DỤNG TRONG CẬP NHẬT PHẦN MỀM TẠI
NGÂN HÀNG CÔNG THƯƠNG VIỆT NAM
. thống công nghệ thông tin trong ngân hàng Công Thương Việt Nam 46
3.2 Quy trình cập nhật các phần mềm nghiệp vụ trong ngân hàng Công Thương Việt
Nam 47