Công nghệ nén tệp thực thi Binary Delta và các ứng dụng trong mạng và truyền dữ liệu máy tính

36 166 0
Công nghệ nén tệp thực thi Binary Delta và các ứng dụng trong mạng và truyền dữ liệu máy tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Header Page of 27 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠ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 Ngành: Cơng nghệ thông tin Chuyên ngành: Truyền liệu 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 CHƢƠNG MỤC LỤC Footer Page of 27 Header Page of 27 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ÔNG NGHỆ NÉN 1.1 Tầm quan trọng nén liệu truyền tin 1.2 Nguyên tắc nén liệu 1.3 Một số phương pháp nén liệ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ÔNG NGHỆ NÉN DELTA 17 2.1 Tổng quan công nghệ nén Delta 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én Delta 20 2.3 Thuật toán nén Delta 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én delta 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 ứng dụng Error! Bookmark not defined CHƢƠNG - ỨNG DỤNG THUẬT TOÁN NÉN DELTA TRONG 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 Footer Page of 27 Header Page of 27 3.1 Mơ hình hệ thống cơng nghệ 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 ứng dụ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ực thi 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 ứng dụ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 Footer Page of 27 Header Page of 27 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 Footer Page of 27 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 Header Page of 27 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 Footer Page of 27 Header Page of 27 DANH MỤC CÁC HÌNH VẼ Hình 2.1 Bộ nén liệu thơng thường 17 Hình 2.2 Bộ nén Delta 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ơng nghệ 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 ứng dụ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ực thi chương trình đặt lịch tự động (1) Error! Bookmark not defined Hình 3.12: Thực thi chương trình đặt lịch tự động (2) Error! Bookmark not defined Hình 3.13: Thực thi chương trình đặt lịch tự động (3) Error! Bookmark not defined Hình 3.14: Thực thi chương trình đặt lịch tự động (4) Error! Bookmark not defined Hình 3.15: Thực thi chương trình đặt lịch tự động (5) Error! Bookmark not defined Hình 3.16: Thực thi chương trình đặt lịch tự động (6) Error! Bookmark not defined Hình 3.17: Thực thi 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ực thi mơ đun Quản lý gói cập nhật (1) Error! Bookmark not defined Hình 3.20: Thực thi mơ đun Quản lý gói cập nhật (2) Error! Bookmark not defined Hình 3.21: Thực thi mơ đun Quản lý gói cập nhật (3) Error! Bookmark not defined Hình 3.22: Thực thi mơ đun Quản lý gói cập nhật (4) Error! Bookmark not defined Hình 3.23: Thực thi mô đun Quản lý danh sách chi nhánh (1)Error! Bookmark not defined Hình 3.24: Thực thi mơ đun Quản lý danh sách chi nhánh (2)Error! Bookmark not defined Hình 3.25: Thực thi mô đun Quản lý danh sách chi nhánh (3)Error! Bookmark not defined Hình 3.26: Thực thi mơ đun Quản lý danh sách ứng dụng (1)Error! Bookmark not defined Hình 3.27: Thực thi mơ đun Quản lý danh sách ứng dụng (2)Error! Bookmark not defined Hình 3.28: Thực thi mơ đun Upload thủ cơng gói cập nhật (1)Error! Bookmark not defined Hình 3.29: Thực thi mơ đun Upload thủ cơng gói cập nhật (2)Error! Bookmark not defined Hình 3.30: Thực thi mơ đun Upload thủ cơng gói cập nhật (3)Error! Bookmark not defined Hình 3.31: Thực thi mơ đun Xem nhật ký upload (1) Error! Bookmark not defined Hình 3.32: Thực thi mơ đun Xem nhật ký upload (2) Error! Bookmark not defined CHƢƠNG Footer Page of 27 Header Page of 27 Footer Page of 27 Header Page of 27 CHƢƠNG MỞ ĐẦU Trong lĩnh vực công nghệ 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ền tệp đích có kích thước lớn mạng, ta cần truyền vá 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ệp thực thi thường dao động quanh 3:1 tỷ lệ nén vá 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 ứng dụ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 Footer Page of 27 Header Page of 27 8.1 CHƢƠNG - GIỚI THIỆU CHUNG VỀ MỘT SỐ CÔNG NGHỆ NÉN 1.1 Tầm quan trọng nén liệu truyền tin Trong kỹ thuật truyền tin nối tiếp, bit liệu truyề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én liệu trước truyền phương pháp nhằm tăng tốc độ truyền liệu Trong modem đại, việc thực nén liệu trước truyền thực modem theo giao thức V42bis Phương pháp đòi hỏi hai modem phải có giao thức nén liệu, điều nhiều khó thoả mãn Có phương pháp khác thực nén tập tin máy vi tính trước truyền đi, máy tí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ền liệu qua modem không hỗ trợ nén liệu truyền liệu trực tiếp qua cổng COM máy tí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ực nén giải nén giảm nhỏ nhiều thời gian để truyền liệ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ực nén tập tin xuống 50Kbyte chưa đến 10 giây 1.2 Nguyên tắc nén liệu Thông thường, hầu hết tập tin máy tính có nhiều thơng tin dư thừa, việc thực né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 Footer Page of 27 Header Page 10 of 27 (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én liệ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 ứng dụ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ã hoá 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ã hoá Footer Page 10 of 27 Header Page 22 of 27 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ã hố, 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 Footer Page 26 of 27 Header Page 27 of 27 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 Footer Page 27 of 27 T=cd ab Header Page 28 of 27 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 Footer Page 28 of 27 Header Page 29 of 27 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 Footer Page 29 of 27 Header Page 30 of 27 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

Ngày đăng: 03/03/2018, 12:48

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan