Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
856,68 KB
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ÔNGNGHỆNÉNDELTAỨNGDỤNGTRONG CẬP NHẬT PHẦN MỀM TẠI NGÂN HÀNG CÔNG THƢƠNG VIỆT NAM Ngành: Côngnghệ thông tin Chuyên ngành: Truyềnliệumạngmáytí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 CHƢƠNG MỤC LỤC TRANG PHỤ BÌA ………………………………………………………………….1 LỜI CAM ĐOAN Error! Bookmark not defined LỜI CẢM ƠN Error! Bookmark not defined MỤC LỤC DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG BIỂU DANH MỤC CÁC HÌNH VẼ MỞ ĐẦU CHƢƠNG - GIỚI THIỆU CHUNG VỀ MỘT SỐ CÔNGNGHỆNÉN 1.1 Tầm quan trọngnénliệutruyền tin 1.2 Nguyên tắc nénliệu 1.3 Một số phương pháp nénliệu 1.3.1 Phương pháp mã hoá độ dài loạt (Run-Length Encoding) 1.3.2 Phương pháp mã hoá Huffman 11 1.3.3 Phương pháp nén LZW 12 1.3.4 Chọn phương pháp nén 15 CHƢƠNG – CÔNGNGHỆNÉNDELTA 17 2.1 Tổng quan côngnghệnénDelta 17 2.1.1 Tổng quan 17 2.1.2 Tính hiệu 18 2.2 Nền tảng 19 2.1.3 Nền tảng chung 19 2.1.4 Bộ nén LZ77 - Nền tảng nénDelta 20 2.3 Thuật toán nénDelta 23 2.3.1 Giới thiệu 23 2.3.2 Đặt vấn đề: 25 2.3.3 Những nghiên cứu 26 2.3.4 Thuật toán 27 2.3.5 Sự cải tiến thuật toán 31 2.3.6 Xây dựng lại xâu đích Error! Bookmark not defined 2.4 Một vài kết thí nghiệm Error! Bookmark not defined 2.5 Các vấn đề liên quan Error! Bookmark not defined 2.5.1 Khoảng trống miễn cưỡng néndelta Error! Bookmark not defined 2.5.2 Chọn file tham chiếu Error! Bookmark not defined 2.5.3 Đồng file từ xa Error! Bookmark not defined 2.5.3.1 Thuật toán rsync Error! Bookmark not defined 2.5.3.2 Các kết thực nghiệm rsync Error! Bookmark not defined 2.5.3.3 Cácứngdụng Error! Bookmark not defined CHƢƠNG - ỨNGDỤNG THUẬT TOÁN NÉNDELTATRONG VIỆC CẬP NHẬT CÁC PHẦN MỀM NGHIỆP VỤ TẠI NGÂN HÀNG CƠNG THƢƠNG VIỆT NAMError! Bookmark not defined 3.1 Mơ hình hệ thống cơngnghệ thơng tin ngân hàng Cơng Thương Việt NamError! Bookmark not defined 3.2 Quy trình cập nhật phần mềm nghiệp vụ ngân hàng Công Thương Việt Nam Error! Bookmark not defined 3.3 Chương trình cập nhật tự động phần mềm nghiệp vụ .Error! Bookmark not defined 3.3.1 Thiết kế hệ thống Error! Bookmark not defined 3.3.2 Thiết kế chương trình Error! Bookmark not defined 3.3.2.1 Chương trình đặt lịch tự động Error! Bookmark not defined 3.3.2.2 Chương trình quản lý Server TW Error! Bookmark not defined 3.3.2.2.1 Quản lý gói cập nhật Error! Bookmark not defined 3.3.2.3.2 Quản lý danh sách chi nhánh Error! Bookmark not defined 3.3.2.3.3 Quản lý danh sách ứngdụng Error! Bookmark not defined 3.3.2.3.4 Upload thủ cơng gói cập nhật Error! Bookmark not defined 3.3.2.3.5 Xem nhật ký upload Error! Bookmark not defined 3.3.3 Thựcthi chương trình Error! Bookmark not defined 3.3.3.1 Chương trình đặt lịch tự động Error! Bookmark not defined 3.3.3.2 Chương trình quản lý server TW Error! Bookmark not defined 3.3.3.2.1 Quản lý gói cập nhật Error! Bookmark not defined 3.3.3.2.2 Quản lý danh sách chi nhánh Error! Bookmark not defined 3.3.3.2.3 Quản lý danh sách ứngdụng Error! Bookmark not defined 3.3.3.2.4 Upload thủ cơng gói cập nhật Error! Bookmark not defined 3.3.3.2.5 Xem nhật ký upload Error! Bookmark not defined CHƢƠNG - KẾT LUẬN Error! Bookmark not defined 4.1 Kết luận Error! Bookmark not defined 4.2 Ưu nhược điểm phương pháp Error! Bookmark not defined 4.3 Hướng nghiên cứu tương lai Error! Bookmark not defined TÀI LIỆU THAM KHẢO 33 Bảng đối chiếu encoding chữ hành với UnicodeError! Bookmark not defined Thuật toán Knuth-Morris-Pratt Pattern Matching Error! Bookmark not defined CHƢƠNG CHƢƠNG DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT Chữ viết tắt Nội dung tiếng Anh Delta compression Differential compression LCS Longgest common subsequence LZW Match Patch file QAM Quadrature Amplitude Modulation Script String UTF Unicode Transformation Format Nội dung tiếng Việt Phương pháp nén dựa sai khác file Chuỗi chung dài (của xâu /chuỗi) Tên phương pháp nén phát minh Lempel - Zip Welch Sự phù hợp (sự khớp nhau) xâu Bản vá file cần cập nhật Điều chế biên độ trực giao Đoạn lệnh (viết ngôn ngữ lập trình đó) nhằm thực mục đích cho trước Xâu ký tự văn Mã định dạng unicode CHƢƠNG DANH MỤC CÁC BẢNG BIỂU Bảng 2.1: Các kết nén cho liệu gcc emacs (KB /s) 23 Bảng 2.2: Các kết nén cho tập liệu gcc emacs (KB)Error! Bookmark not defined Bảng 2.3: Các kết nén cho emacs với tập liệu khác (KB)Error! Bookmark not defined CHƢƠNG DANH MỤC CÁC HÌNH VẼ Hình 2.1 Bộ nénliệu thông thường 17 Hình 2.2 Bộ nénDelta 18 Hình 2.3: Sự đối lập kích thước nén file giống file (KB) Error! Bookmark not defined Hình 2.4: Sự đối lập thời gian thực giống fileError! Bookmark not defined Hình 3.1: Mơ hình hệ thống côngnghệ thông tin NHCTVNError! Bookmark not defined Hình 3.2: Các mơ đun chương trình quản lý Server TWError! Bookmark not defined Hình 3.3: Các chức mơ đun Quản lý gói cập nhật Error! Bookmark not defined Hình 3.4: Lưu đồ chức Tạo mới/chỉnh sửa gói cập nhật Error! Bookmark not defined Hình 3.5: Các chức mơ đun Quản lý danh sách chi nhánh .Error! Bookmark not defined Hình 3.6: Mối quan hệ chức quản lý danh sách chi nhánh chức khác Error! Bookmark not defined Hình 3.7: Các mơ đun chức Quản lý danh sách ứng dụngError! Bookmark not defined Hình 3.8: Mối quan hệ chức Quản lý danh sách ứngdụng chức Quản lý gói cập nhật Error! Bookmark not defined Hình 3.9: Mối quan hệ chức Upload thủ cơng gói cập nhật chức khác Error! Bookmark not defined Hình 3.10: Mối quan hệ chức Xem nhật ký upload chức khác Error! Bookmark not defined Hình 3.11: Thựcthi chương trình đặt lịch tự động (1) Error! Bookmark not defined Hình 3.12: Thựcthi chương trình đặt lịch tự động (2) Error! Bookmark not defined Hình 3.13: Thựcthi chương trình đặt lịch tự động (3) Error! Bookmark not defined Hình 3.14: Thựcthi chương trình đặt lịch tự động (4) Error! Bookmark not defined Hình 3.15: Thựcthi chương trình đặt lịch tự động (5) Error! Bookmark not defined Hình 3.16: Thựcthi chương trình đặt lịch tự động (6) Error! Bookmark not defined Hình 3.17: Thựcthi chương trình đặt lịch tự động (6) Error! Bookmark not defined Hình 3.18: Giao diện hình quản lý Server TW Error! Bookmark not defined Hình 3.19: Thựcthi mơ đun Quản lý gói cập nhật (1) Error! Bookmark not defined Hình 3.20: Thựcthi mơ đun Quản lý gói cập nhật (2) Error! Bookmark not defined Hình 3.21: Thựcthi mơ đun Quản lý gói cập nhật (3) Error! Bookmark not defined Hình 3.22: Thựcthi mơ đun Quản lý gói cập nhật (4) Error! Bookmark not defined Hình 3.23: Thựcthi mơ đun Quản lý danh sách chi nhánh (1)Error! Bookmark not defined Hình 3.24: Thựcthi mô đun Quản lý danh sách chi nhánh (2)Error! Bookmark not defined Hình 3.25: Thựcthi mơ đun Quản lý danh sách chi nhánh (3)Error! Bookmark not defined Hình 3.26: Thựcthi mô đun Quản lý danh sách ứngdụng (1)Error! Bookmark not defined Hình 3.27: Thựcthi mơ đun Quản lý danh sách ứngdụng (2)Error! Bookmark not defined Hình 3.28: Thựcthi mơ đun Upload thủ cơng gói cập nhật (1)Error! Bookmark not defined Hình 3.29: Thựcthi mơ đun Upload thủ cơng gói cập nhật (2)Error! Bookmark not defined Hình 3.30: Thựcthi mơ đun Upload thủ cơng gói cập nhật (3)Error! Bookmark not defined Hình 3.31: Thựcthi mô đun Xem nhật ký upload (1) Error! Bookmark not defined Hình 3.32: Thựcthi mơ đun Xem nhật ký upload (2) Error! Bookmark not defined CHƢƠNG CHƢƠNG MỞ ĐẦU Trong lĩnh vực côngnghệ thông tin - viễn thông nay, việc truyền tải tin tức công việc xảy thường xuyên Tuy nhiên, thông tin truyền tải thường lớn, điều gây khó khăn cho cơng việc truyền tải: gây tốn tài nguyên mạng, tiêu phí khả hệ thống… Để giải vấn đề đó, thuật tốn nén đời Mỗi phương pháp nén có hiệu khác với loại tệp khác Luận văn trình bày phương pháp nén có hiệu cao việc truyền tải tệp tin mạng phục vụ cho việc cập nhật phiên tệp tin Phương pháp dựa sai khác tệp nguồn tệp đích (gọi Differential Compression – hay Delta Compression) - trình cập nhật, tệp nguồn tệp cũ, tệp đích tệp mới- tạo vá có kích thước nhỏ đáng kể so với tệp đích Khi đó, thay phải truyềntệp đích có kích thước lớn mạng, ta cần truyềnvá có kích thước nhỏ Phương pháp đạt tỉ lệ nén cao, hiệu việc tiết kiệm tài nguyên mạng Nếu tỷ lệ nén cho tệpthựcthi thường dao động quanh 3:1 tỷ lệ nénvá so với tệp đích theo phương pháp Delta nằm khoảng từ 10:1 tới 1000:1 chí lớn – tùy thuộc vào dung lượng tệp đích mức độ khác biệt với tệp nguồn Luận văn trình bày ứngdụng phương pháp nén việc cập nhật phần mềm nghiệp vụ Ngân hàng Công thương Việt Nam 8.1 CHƢƠNG - GIỚI THIỆU CHUNG VỀ MỘT SỐ CÔNGNGHỆNÉN 1.1 Tầm quan trọngnénliệutruyền tin Trong kỹ thuật truyền tin nối tiếp, bit liệutruyền nối tiếp, lại bị giới hạn dải thông kênh truyền giới hạn 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 dùng nhiều phương pháp sử dụng kỹ thuật điều chế pha nhiều mức, điều chế QAM, TCM Nénliệu trước truyền phương pháp nhằm tăng tốc độ truyềnliệuTrong modem đại, việc thựcnénliệu trước truyềnthực modem theo giao thức V42bis Phương pháp đòi hỏi hai modem phải có giao thứcnén liệu, điều nhiều khó thoả mãn Có phương pháp khác thựcnén tập tin máy vi tính trước truyền đi, máytính nhận, tập tin lại giải nén để phục hồi lại dạng ban đầu Phương pháp có ưu điểm bên phát bên thu cần có chung phần mềm nén giải nén, ngồi áp dụng để truyềnliệu qua modem không hỗ trợ nénliệutruyềnliệu trực tiếp qua cổng COM máytính Nhược điểm phương pháp máy vi tính phải tốn thêm thời gian nén giải nén, phát triển nhanh chóng vi xử lý mà thời gian thựcnén giải nén giảm nhỏ nhiều thời gian để truyềnliệu Ví dụ, truyền tập tin có kích thước 100Kbyte với dạng thức SDU là: bits liệu, bit STOP bit START, không dùng bit chẵn lẻ, tốc độ truyền 9600bits/giây khoảng 120 giây, máy vi tính với vi xử lí 80386 thựcnén tập tin xuống 50Kbyte chưa đến 10 giây 1.2 Nguyên tắc nénliệu Thông thường, hầu hết tập tin máytính có nhiều thông tin dư thừa, việc thựcnén tập tin thực chất mã hoá lại tập tin để loại bỏ thơng tin dư thừa Nhìn chung khơng thể có phương phát nén tổng quát cho kết tốt tất loại tập tin khơng ta áp dụng n lần phương pháp nén để đạt tập tin nhỏ tuỳ ý! Kỹ thuật nén tập tin thường áp dụng cho tập tin văn (Trong có số kí tự có xác suất xuất nhiều kí tự khác), tập tin ảnh bitmap (Mà có mảng lớn đồng nhất), tập tin dùng để biểu diễn âm dạng số hố tín hiệu tương tự (analog signal) khác (Các tín hiệu có mẫu lặp lại nhiều lần) Ðối với tập tin nhị phân tập tin chương trình sau nén khơng tiết kiệm nhiều Ngồi ra, số trường hợp để nâng cao hệ số nén người ta bỏ bớt số thơng tin tập tin (Ví dụ kỹ thật nén ảnh JPEG) 1.3 Một số phƣơng pháp nénliệu 8.1.1.1 1.3.1 Phương pháp mã hoá độ dài loạt (Run-Length Encoding) Loại dư thừa đơn giản tập tin đường chạy dài gồm kí tự lặp lại, điều thường thấy tập tin đồ hoạ bitmap, vùng liệu tập tin chương trình, số tập tin văn Ví dụ, xét chuỗi sau: AAAABBBAABBBBBCCCCCCCCDABCBAAABBBBCCCD Chuỗi mã hố cách đọng cách thay chuỗi kí tự lặp lại thể kí tự lặp lại với biến đếm số lần kí tự lặp lại Ta muốn nói chuỗi gồm bốn chữ A theo sau ba chữ B lại theo sau hai chữ A, lại theo sau năm chữ B Việc nén chuỗi theo phương pháp gọi mã hoá độ dài loạt Khi có loạt dài, việc tiết kiệm đáng kể Có nhiều cách để thực ý tưởng này, tuỳ thuộc vào đặc trưng ứngdụng (các loạt chạy có khuynh hướng tương đối dài hay khơng ? Có bit dùng để mã hố kí tự mã ?) Nếu ta biết chuỗi chứa chữ cái, ta mã hố biến đếm cách đơn giản cách xen kẽ số với chữ Vì chuỗi kí tự mã hố lại sau: 4A3BAA5B8CDABCB3A4B3CD Ở "4A" có nghĩa "bốn chữ A" Chú ý khơng đáng để mã hố loạt chạy có độ dài cần đến hai kí tự để mã hố thêm vào Ai quen thuộc với zlib, gzip thuật toán dựa Lempel-Ziv dễ dàng hiểu mô tả Ý tưởng là, để mã hoá file thời ta substring file tham chiếu, cách làm tốt mã hoá phần file thời Để nhận biết phù hợp mã hoá, trì bảng, cho file tham chiếu, Told, cho phần mã hoá file thời, Tnew Bảng Tnew chất xử lý theo cách bảng băm gzip, đó, insert thực thể xem xét mã hoá fnew Bảng Told xây dựng sớm cách quét fold , giả sử fold không lớn Khi tìm kiếm phù hợp, tìm bảng để tìm phù hợp lớn Quá trình băm substring làm ký tự nó[4] Giả sử file tham chiếu file thời vừa nhớ Cả bảng băm khởi tạo rỗng Các bước mã hố sau (giải mã suy từ việc mã hóa) Tiền xử lý file tham chiếu For i = to len (fold ) -3: (a) Tính hi = h ( fold [i, i+2] ), giá trị băm ký tự bắt đầu vị trí thứ i fold (b) Insert trỏ vào vị trí i bảng băm hi Told Mã hoá file thời Khởi tạo trỏ p1,…pk 0, với k=2 Set j=0 While j0) [6] Như vậy, khối di chuyển chuỗi chung khơng rỗng S T có độ dài l, bắt đầu vị trí p xâu S vị trí q xâu T Một tập phủ T S, biểu thị S(T), tập khối di chuyển, ký tự T[i] xuất S chứa xác khối di chuyển Ví dụ, tập phủ T=abcab S = abda [(0,0,2),(0,3,2)] Một tập phủ tầm thường bao gồm khối di chuyển có độ dài 1, thể ký tự T[i] xuất S Vấn đề tìm tập phủ tối thiểu, S(T), |S(T)| |S(T)| với S(T) Thuộc tính bao phủ S(T) đảm bảo chứa tất phù hợp có thể, thuộc tính tối thiểu khiến số lượng khối di chuyển (và đó, đoạn script chỉnh sửa) nhỏ Do thuộc tính bao phủ, rõ ràng S(T) chứa LCS S T (xem móc nối xâu T[qj, ….qj+lj-1], (pj,qj,lj) khối di chuyển S(T), xâu theo thứ tự tăng qj) Ép buộc tối thiểu đảm bảo LCS cung cấp tạo khối di chuyển tốt 8.2.2.3 2.3.3 Những nghiên cứu Trước trình bày giải pháp, nói nghiên ban đầu Hướng nghiên cứu sử dụng LCS Như biết, LCS có thuộc tính khơng cần thiết tạo tập phủ khối di chuyển Ví dụ, cặp xâu sau chứa LCS abc không chứa xâu chung (được di chuyển) de xâu chung (được lặp lại) abc LCS phù hợp bên trái, S(T) bên phải S=abcde S=abc de T= de abc T= de abc S= a b c S= a b c T= a b c a b c T= a b c a b c Heckel vấn đề tương tự với thuật toán LCS đề xuất thuật toán (theo thời gian) để dò khối di chuyển [7] Thuật tốn thực thoả đáng trường hợp có ký tự lặp lại xâu Tuy nhiên, trường hợp khác, thuật tốn cho kết khơng tốt Ví dụ, với hai xâu aabb bbaa, thuật toán Heckel thất bại việc tìm xâu chung Một cải tiến hướng nghiên cứu LCS áp dụng việc tách LCS cách lặp lặp lại Ví dụ, sau tìm LCS ví dụ trên, ta loại bỏ từ xâu đích T tính lại LCS Q trình lặp lại lại LCS có độ dài Chiến lược phân tách LCS thành cơng việc tìm tập phủ, khơng tối thiểu Ví dụ sau minh hoạ: S=abcd e a S= ab cd ea T= cd a b T=cd ab Giả sử S xâu nguồn, T xâu đích, biểu đồ bên trái phù hợp đạt qua thuật toán phân tách LCS LCS cda, LCS thứ hai b Vì cda khơng phải xâu S, đạt khối di chuyển Tập phủ tối thiểu, bên phải, bao gồm khối di chuyển Một chiến thuật khác tìm xâu chung dài chuỗi chung dài (chuỗi bao gồm khoảng trắng, xâu khơng có khoảng trắng) Việc tính xâu chung dài cách lặp lại có kết tập phủ, khơng cần thiết tạo tính tối thiểu Hãy xem ví dụ sau: S= abcdefd eab S= abc de fdeab T= c deab c T= cde abc Sơ đồ bên trái khối di chuyển đạt cách tìm kiếm lặp lặp lại xâu chung dài S T Kết là, ta có tập khối di chuyển, khối tối thiểu Việc tìm kiếm xâu chung dài phương pháp tham lam, che giấu phù hợp tốt 8.2.2.4 2.3.4 Thuật toán Thuật toán phía bên trái xâu đích T, cố gắng tìm tiền tố T S Nếu khơng có tiền tố T S, ta loại bỏ ký tự T bắt đầu lại Nếu có nhiều tiền tố S, ta chọn tiền tố dài ghi khối di chuyển Sau đó, loại bỏ tiền tố tương ứng từ T sau tiếp tục với tiền tố dài phần lại T, bắt đầu với phần đầu S Tiến trình tiếp tục T hết ký tự Khối di chuyển ghi lại tạo thành S(T), tập phủ tối thiểu khối di chuyển T S, hình thành sau Ví dụ bước thi hành thuật toán Bước 1: S= uvwuvwxy T= |zuvwxwu Khối di chuyển dài bắt đầu T[0]: none Bước 2: S= uvw uvwx y Bước 3: S= uv w u v w xy z u v 1, w xchúng | w u ta tìm Khối dàicủa nhấtT[0,…,6] bắt đầu T[5]: (2,5,2) TrongT =bước kiếmdi 1chuyển tiền tố S[0,….,7], khơng có phù hợp nào, tìm kiếm phù hợp tiền tố T[1,…,6] bước Lần này, tìm thấy phù hợp, chọn phù hợp dài nhất, bắt đầu S[4] Trong bước thứ 3, tìm kiếm cho tiền tố T[5, 6] S[0,…7], tìm thấy phù hợp dài S[2], có độ dài Bây giờ, T xét hết thuật toán kết thúc Chú ý rằng, bước, bắt đầu phần bên trái S để xem xét tất phù hợp Thuật tốn mô tả Chúng ta giả định rằng, xâu nguồn lưu mảng S[0…m] xâu đích lưu T[0,…n] T[q] ký tự phần khơng tương thích T, q khởi tạo Thuật toán sau: q:=0 While q0 then print(p;q;l) q:=q+Max(1,l) End Thực câu lệnh có nhãn L đơn giản Tìm S từ trái sang phải cho tiền tố dài T[q…n] Chú ý rằng, việc tìm kiếm kết thúc có l+1 ký tự lại S, với l độ dài lớn khối di chuyển tìm thấy lặp lại thời Tương tự vậy, khơng thể tìm thấy khối di chuyển dài ký tự cuối T[n] đạt tới L: l:=0; p:=0; pCur:=0 while pCur +1