Nghiên cứu xây dựng hệ thống truyền tải trao đổi dữ liệu kèm mã hóa bảo mật ứng dụng trong ngành khí tượng thủy văn

73 17 0
Nghiên cứu xây dựng hệ thống truyền tải trao đổi dữ liệu kèm mã hóa bảo mật ứng dụng trong ngành khí tượng thủy văn

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VƯƠNG MINH PHƯƠNG NGHIÊN CỨU XÂY DỰNG HỆ THỐNG TRUYỀN TẢI TRAO ĐỔI DỮ LIỆU KÈM MÃ HĨA BẢO MẬT ỨNG DỤNG TRONG NGÀNH KHÍ TƯỢNG THỦY VĂN LUẬN VĂN THẠC SỸ KỸ THUẬT CHUYÊN NGÀNH KỸ THUẬT VIỄN THÔNG Hà Nội – 2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VƯƠNG MINH PHƯƠNG NGHIÊN CỨU XÂY DỰNG HỆ THỐNG TRUYỀN TẢI TRAO ĐỔI DỮ LIỆU KÈM MÃ HÓA BẢO MẬT ỨNG DỤNG TRONG NGÀNH KHÍ TƯỢNG THỦY VĂN LUẬN VĂN THẠC SỸ KỸ THUẬT CHUYÊN NGÀNH KỸ THUẬT VIỄN THÔNG NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS PHẠM NGỌC NAM Hà Nội – 2017 MỤC LỤC CHƯƠNG TÍNH CẤP THIẾT CỦA HỆ THỐNG ĐỒNG BỘ DỮ LIỆU KTTV.1 1.1 Đặt vấn đề 1.1.1 Bối cảnh 1.1.2 Thực trạng nhu cầu truyền tin đồng số liệu khí tượng thủy văn .3 1.2 Thực trạng phần mềm truyền tin đồng liệu giới 1.3 Sự cần thiết phải xây dựng phần mềm đồng liệu KTTV .12 1.3.1 Mục tiêu đề tài 13 1.3.2 Nội dung nghiên cứu .13 1.4 Kết luật chương 13 CHƯƠNG CÁC GIẢI PHÁP KHOA HỌC VÀ KỸ THUẬT PHÙ HỢP CHO HỆ THỐNG ĐỒNG BỘ KTTV 14 2.1 Socket .14 2.2 Các mơ hình lập trình mạng 15 2.2.1 Mơ hình client/server 15 2.2.2 Mơ hình peer-to-peer 20 2.2.3 So sánh mơ hình P2P client-server 21 2.3 Windows services 22 2.3.1 Windows service .22 2.3.2 Tại lại cần phải sử dụng windows services 22 2.4 Kết luân chương .22 CHƯƠNG THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG ĐỒNG BỘ DỮ LIỆU KTTV 23 3.1 Thiết kế mô hình phân tán cân tải Client-Server 23 3.1.1 Lớp thứ (lớp core) 24 3.1.2 Lớp thứ (lớp chia tải) 24 3.1.3 Lớp thứ (lớp người dùng) 24 3.1.4 Ưu nhược điểm mơ hình 25 3.2 Sơ đồ Usecase 25 3.2.1 Số lượng usercase 25 3.2.2 Mô tả use-case 26 3.2.3 Mô tả chi tiết 30 3.3 Thiết kế xây dựng sở liệu .31 3.3.1 Nội dung sở liệu bao gồm: 31 3.3.2 Một số bảng quan trọng : 31 3.4 Xây dựng phần mềm 35 3.4.1 Sơ đồ khối phầm mềm 35 3.4.2 Kết đạt .36 3.5 Kết luận chương .38 CHƯƠNG TRIỂN KHAI PHẦN MỀM VÀ CHẠY KIỂM THỬ .39 4.1 Quy trình kiểm thử 39 4.1.1 Cài đặt .39 4.1.2 Kịch test .41 4.1.3 Kịch test .41 4.1.4 Kịch test .42 4.2 Kết kiểm thử 42 4.3 Kết luận chương .45 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ 46 5.1 Các điểm đạt phần mềm 46 5.2 Các điểm chưa hướng nâng cấp tới 46 5.3 Kết luận chương .47 TÀI LIỆU THAM KHẢO 48 PHỤ LỤC I: CHI TIẾT USE-CASE .49 PHỤ LỤC II : CODE MỘT SỐ HÀM QUAN TRỌNG 60 DANH SÁCH HÌNH VẼ Hình 1-1:Mơ hình chia sẻ liệu trung tâm TTDL Hình 1-2: Mơ hình hoạt động dropbox Hình 2-1: Các kiểu socket 14 Hình 2-2: Mơ hình client-server 15 Hình 2-3: Quá trình trao đổi liệu client server 17 Hình 2-4: Bảy thao tác để truyền nhận liệu client server 18 Hình 2-5: Mơ hình Peer-2-Peer 20 Hình 3-1: Mơ hình chia tải 23 Hình 3-2 Use-Case Kiểm tra kết nối 27 Hình 3-3 User-Case Quản lý phiên làm việc 27 Hình 3-4 User-Case Quản lý hệ thống (bằng file luật) .28 Hình 3-5 Use Case Đồng liệu 28 Hình 3-6 Use Case Phát liệu 29 Hình 3-7 Use-Case Ghi lịch sử 29 Hình 3-8 Use-Case xác thực liệu thiếu 30 Hình 3-9 Use-Case Xóa liệu cũ định kỳ .30 Hình 3-10: Sơ đồ khối phần mềm 35 Hình 3-11: Giao diện cài đặt phần mềm .37 Hình 3-12: Phần mềm dạng windows services 37 Hình 3-13: Thư mục làm việc hệ thống đồng 37 Hình 4-1: Mơ hình áp dụng kiểm thử .40 DANH SÁCH BẢNG BIỂU Bảng 2-1:So sánh mơ hình client-server P2P .21 Bảng 3-1: Liệt kê use-case 25 Bảng 3-2: số bảng sở liệu quan trọng hệ thống đồng 31 Bảng 4-1: Thông số đường truyền internet mơ hình kiểm thử 40 Bảng 4-2:Kết kịch test phiên .44 Bảng 4-3:Kết kịch test 45 DANH SÁCH TỪ VIẾT TẮT KTTV ĐKV TTDB TTDL TU CNTT Khí tượng thủy văn Đài Khu Vực Trung tâm dự báo trung ương Trung tâm thông tin liệu Trung ương Công nghệ thông tin P2P Peer to peer LỜI NÓI ĐẦU Hiện việc truyền tải, đồng liệu, thông tin phần thiết yếu sống thời đại bùng nổ thơng tin địi hỏi việc truyền liệu nhanh, xác đảm bảo an toàn bảo mật Đặc biệt Thơng tin lĩnh vực khí tượng thủy văn coi vấn đề sống bối cảnh diễn biến khí hậu xảy bất thường ngày nhiều hơn, việc có thơng tin dự báo kịp thời xác để có phương hướng xử lý quan trọng Quan trọng không có liệu thơ phục vụ cơng tác dự báo từ khắp đài trạm quan trắc nước gửi phải đảm bảo xác nhanh chóng Bản thân người viết cơng tác ngành Khí tượng thủy văn, nhận thấy tầm quan trọng thơng tin, liệu đóng vai trị quan trọng trạng ngành dùng nhiều phương thức truyền số liệu khác chưa đáp ứng hầu hết yêu cầu cần thiết, nên người viết đề xuất thực đề tài: Nhiên cứu xây dựng hệ thống truyền tải trao đổi liệu kèm mã hóa bảo mật ứng dụng ngành khí tượng thủy văn Mục tiêu đề tài xây dựng hệ thống đồng số liệu đơn vị ngành Khí tượng thủy văn, từ đài trạm quan trắc khắp nước để phục vụ cơng tác dự báo phịng chống thiên tai Hệ thống phải đảm bảo hoạt động cách tự động, chạy ổn định liên tục 24/24, xảy lỗi, liệu đảm bảo đầy đủ, độ trễ đường truyền trễ hệ thống thấp, phục vụ nhiều đài trạm nước quốc tế Người viết xin chân thành cảm ơn Trung tâm Khí Tượng Thủy Văn Quốc Gia, Trung Tâm Thông Tin Dữ Liệu tạo điều kiện hỗ trợ đồng thời chân thành cám ơn PGS TS Phạm Ngọc Nam hướng dẫn hỗ trợ người viết thực đề tài Học viên Vương Minh Phương TÓM TẮT LUẬN VĂN Đề tài tập trung vào xây dựng hệ thống truyền tải đồng thông tin liệu áp dụng ngành khí tượng thủy văn Hệ thống bao gồm phần thiết kế hệ thống, xây dựng phần mềm hoạt động hệ thống Hệ thống bao gồm việc thiết kế mơ hình đồng liệu khí tượng thủy văn phục vụ công tác dự báo cảnh báo Đồng thời thiết kế xây dựng phần mềm đồng liệu hoạt động hệ thống đó.Hệ thống phải đảm bảo số liệu đồng đầy đủ xác, nhanh chóng, thực tài ngun sẵn có Phần mềm phải đảm bảo lỗi, hoạt động ổn định liên tục 24/24 Phần mềm phải có khả tự khôi phục hoạt động gặp số cố hay gặp phải lỗi kết nối internet, điện… Luận văn gồm chương  Chương 1: Tính cấp thiết hệ thống đồng liệu KTTV Chương tập trung vào phân tích tầm quan trọng hệ thống truyền tin KTTV, trạng hạ tần kỹ thuật phương thức truyền số liệu KTTV sử dụng  Chương 2: Các giải pháp khoa học kỹ thuật phù hợp cho hệ thống đồng liệu KTTV Chương tập trung vào đưa giải pháp mơ hình kỹ thuật áp dụng để xây dựng hệ thống đồng liệu KTTV  Chương 3: Thiết kế xây dựng hệ thống đồng liệu KTTV Chương tập trung vào xây dựng hệ thống, phần mềm giải pháp đưa  Chương 4: Triển khai phần mềm kiểm thử hệ thống Chương mô tả qui trình kiểm thử hệ thống, đưa số kết kiểm thử định  Chương 5: Kế luận kiến nghị Chương đưa đánh giá phần mềm sau kiểm thử chạy thực tế thời gian Các điểm đạt chưa đạt phần mềm đồng thời đưa định hướng nâng cấp tới hệ thống cho phù hợp với nhu cầu hạ tầng kỹ thuật CHƯƠNG TÍNH CẤP THIẾT CỦA HỆ THỐNG ĐỒNG BỘ DỮ LIỆU KTTV Chương nêu tính cấp thiết đề tài khảo sát trạng phương thức truyền tin KTTV 1.1 Đặt vấn đề 1.1.1 Bối cảnh Thiên tai giới ngày có diễn biến phức tạp năm gần làm số người chết lên đến hàng nghìn người gây thiệt hại hàng trăm tỷ USD Trong năm qua, thiên tai làm nước thiệt hại lớn người tài sản Theo báo cáo Trung tâm khí tượng thủy văn quốc gia, từ năm 2008 đến cuối 2012 thiên tai làm nước chết, tích gần 1,9 nghìn người, bị thương gần nghìn người, gây thiệt hại 74 nghìn tỷ đồng Như tỷ lệ thiệt hại tài sản chiếm 1,48% GDP hàng năm Trong năm 2014, có bão áp thấp nhiệt đới hoạt động Biển Đông, mưa bão trận lũ quét gây sạt lở đất, làm 133 người chết tích, 145 người bị thương, tài sản, thống kế quan chức cho thấy gần 2000 nhà bị đổ sập 43.000 nhà bị ngập hư hại, 230.000 hoa màu bị thiệt hại Tổng thiệt hại lên đén 2.830 tỷ đồng Trong năm 2015 nước ta thiên tai xuất với tần suất dầy đặc Nắng nóng gay gắt với nhiệt độ cao kỷ lục 60 năm qua diễn diện rộng khiến hàng nghìn người dân khu vực miền Trung lâm vào cảnh thiếu lương thực nước uống.Theo ban đạo phòng chống lụt bão trung ương (PCLB) cho biết, ảnh hưởng biến đổi khí hậu nên năm trở lại đây, thiệt hại tài sản thiên tai gây ngày lớn.Dự báo năm thời tiết việt nam có diễn biến bất thường theo xu chung giới hiệu ứng nhà kính tốc độ tàn phá tự nhiên người Với tình hình thời tiết ngày biến đổi phức tạp nhanh chóng, việc dự báo, cảnh bảo để sớm có biện pháp phịng chống kịp thời vô quan trọng Nhận thấy tầm quan đó, nhiều năm qua, Việt Nam liên tục không ngừng đầu tư trang thiết bị phục vụ việc dự báo cảnh báo thời tiết Đã có nhiều trạm Exception flow Kết Thay Client không kết nối đến server, server không gửi kết client, password cố định khơng xác Client nhận trả lời từ server xác thực hay không Client tự động kết nối trở lại với server, Client đưa thông báo mật khẩu/username khơng xác ID Tên usecase Tác nhân Mô tả Bối cảnh Xác thực kết nối tạm thời Client-Server Dùng để xác thực thông tin client với server cấp Sau server xác thực username password cố định client phép tham gia hoạt động hệ thống, Server gửi trả cho client mã (được tạo bất kỳ) client dùng mã để thực yêu cầu lấy file gửi file lên server Có mạng internet, client đăng nhập thành công username password cố định Server gửi trả password tạm thời cho client Client nhận password tạm thời Client gửi kèm mã với yêu cầu tới server Server đọc xác nhận mã tạm thời Server trả lời yêu cầu client Client không kết nối đến server, server không gửi kết client, mã cố định tạm thời sai Client có mã để thực giao dịch với server Client tự động kết nối trở lại tới server, client lưu lại thông tin lỗi Điều kiện Normal flow Exception flow Kết Thay ID Tên usecase Tác nhân Mô tả Bối cảnh Điều kiện Tạo phiên làm việc Client-Server Client gửi yêu cầu tới server chờ phục vụ, phục vụ xong hủy kết nối Khi client gửi mã tạm thời username kèm yêu cầu lên server, server thực yêu cầu trả theo yêu cầu client Có mạng internet, client đăng nhập thành công username password cố định, phiên làm việc trì 50 Normal flow Exception flow Kết Thay ID Tên usecase Tác nhân Mô tả Bối cảnh Điều kiện Normal flow Exception flow Kết Thay ID Tên usecase Tác nhân Client tạo kết nối tạm thời với server Client gửi username+ mã tạm thời + mã lệnh lên server Server xác nhận username+ mã tạm thời đọc mã lệnh Server xác định lệnh client thực phục vụ client Server trả kết cho client Client đọc kết trả server Client tiến hành ngắt kết nối tạm thời Server đóng kết nối tạm thời Client không kết nối đến server, server không gửi kết client, mã cố định tạm thời sai Client nhận kết yêu cầu server trả Client tự động kết nối trở lại tới server, client lưu lại thông tin lỗi Kiểm tra trạng thái client server Client-Server Client server nắm trạng thái kết nối (bị lỗi hay khơng) Khi client kết nối tới server bắt đầu trao đổi liệu client server cần phải biết trạng thái kết nối phía để đưa hành động phù hợp Có mạng internet trì, thơng tin xác thực hợp lệ, Client tạo phiên làm việc với server Client kiểm tra kết nối tới server định kỳ gửi gói tin kiểm tra Server kiểm tra kết nối tới client định kỳ nhận gói tin Client khơng kết nối đến server, mã cố định tạm thời sai Server khơn nhận gói tin sau khoảng thời gian Kết nối trì, client server có thơng tin trạng thái kết nối Client tự động kết nối trở lại tới server, client server lưu lại thông tin lỗi Tự động kết nối trở lại Client 51 Mô tả Bối cảnh Điều kiện Normal flow Exception flow Kết ID Tên usecase Tác nhân Mô tả Bối cảnh Điều kiện Normal flow Exception flow Kết Thay ID Tên usecase Tác nhân Mô tả Bối cảnh Client tự động kết nối trở lại với server Khi client server kết nối (được xác thực usecase id 7) Client tự động thử kết nối lại với server sau khoảng thời gian định Client kết nối tới server Client xác định trạng thái kết nối Client nghỉ khoảng thời gian Client thử kết nối trở lại với server Nếu khơng Client lặp lại qui trình Client khơng kết nối đến server, Chuyển kết nối Client Client chuyển kết nối tới server khác Sau tự động kết nối tới server thời không đạt kết (sau lần thử) Client chuyển kết nối tới server khác (nằm luật kết nối Client server cntt qui định) Client khơng có khả kết nối với server thời, Client thử kết nối lại với server thời lần Client xác định khả kết nối với server thời Client nghỉ khoảng thời gian Client kết nối với server khác (địa IP khác) Client không kết nối đến server, Client kết nối với server ưu tiên khác Lặp lại usecase 20 Ngắt kết nối Server/Client Client/Server chủ động ngắt kết nối phiên làm việc Trong trường hợp sau client/server chủ động ngắt kết nối phiên làm việc 52 Điều kiện Normal flow Exception flow Kết ID Tên usecase Tác nhân Mô tả Bối cảnh Điều kiện Normal flow Exception flow Server/Client nhận yêu cầu gửi liệu khơng có liệu Client/Server gửi liệu không hợp lệ Client gửi username/password không hợp lệ Client/Server kết thúc phiên làm việc Username password client kết nối lên tồn hệ thống Client kết nối với server Client/Server đóng socket kết nối Client/Server hủy kết nối phiên làm việc Lấy luật từ database Server CNTT Chức dùng để quản trị hệ thống, cấp quyền, quản lý kết nối… Khi server cntt khởi động Client kết nối với server cntt để yêu cầu tham gia hệ thống, sau server cntt xác thực lấy từ database luật làm việc client bao gồm: Luật kết nối: server phải kết nối tới để trao đổi liệu theo mức ưu tiên Luật đồng file liệu: thư mục, loại số liệu truyền-nhận, thời gian cho phép lấy file cũ Luật quyền hạn: server chia tải hay đơn vị khai thác Luật giám sát, phục vụ công tác giám sát số liệu Client gửi username password yêu cầu lấy luật tới server cntt, thân server cntt khởi động Client gửi username+ password mã lệnh yêu cầu lấy file luật tới server cntt _ server cntt khởi động phần mềm tự động lấy file luật Server cntt xác thực client lấy luật client database_ server cntt tự xác thực lấy luật csdl Client không kết nối đến server, thông tin client lên 53 Kết ID Tên usecase Tác nhân Mô tả Bối cảnh Điều kiện Normal flow Exception flow Kết Thay ID Tên usecase Tác nhân Mô tả Bối cảnh Điều kiện Normal flow Exception không đúng, server cntt khơng kết nối với database Server có luật client yêu cầu từ csdl Tạo mã hóa file luật Server CNTT Chức dùng để quản trị hệ thống, cấp quyền, quản lý kết nối… Khi server yêu cầu lấy luật từ database sau tạo luật chứa thơng tin thư mục truyền-nhận, loại file tham gia trao đổi, luật giám sát… mã hóa chúng thành dạng file để truyền Có yêu cầu tạo luật gửi tới server cntt Server nhận yêu cầu tạo luật Server tạo mã hóa file luật Server lưu file luật vừa tạo vào thư mục định trước Server kết nối tới csdl File luật đối tượng yêu cầu sinh thư mục server cntt định trước Server cntt đưa thông báo tạo file luật 10 Đồng file luật Server CNTT- Client Server CNTT tiến hành gửi file luật cho đối tượng yêu cầu Sau mã hóa tạo thành file luật đối tượng yêu cầu, Có kết nối internet, client kết nối với server cntt Client gửi yêu cầu tạo luật Server tạo file luật Server gửi file luật cho client Client nhận file luật Client không kết nối đến server cntt, 54 flow Kết Đặc biệt Thay ID Tên usecase Tác nhân Mô tả Bối cảnh Điều kiện Normal flow Exception flow Kết ID Tên usecase Tác nhân Mô tả Bối cảnh Điều kiện Normal flow Exception flow Kết Client có file luật thư mục qui định sẵn Trừ server cntt tự tạo file luật (nếu tham gia truyền nhận liệu) Client sử dụng file luật trước (nếu có) đưa thơng báo khơng thể lấy file luật 11 Giải mã file luật Các phần tử tham gia trao đổi liệu Giải mã file luật thư mục qui định trước để có thơng tin thư mục, loại số liệu tham gia, client hay server… Sau có file luật, tiến hành giải mã file luật Có file luật Đọc file luật Giải mã file luật đưa vào class phần mềm File luật không khớp với class tạo để chứa nội dung file luật Dữ liệu file luật “nạp” vào class phần mềm để sử dụng 14 Theo dõi thư mục Client-Server Client Server tạo watcher để theo dõi thư mục để gửi Sau có file luật, client server tham gia trao đổi liệu tiến hành theo dõi thư mục mà quản lý trao đổi liệu Client server tham gia trao đổi liệu lấy giải mã thành cơng file luật Client/Server watcher thư mục trao đổi liệu qui định file luật Quá nhiều biến động xảy thời điểm bị tràn nhớ đệm Client/Server có danh sách file mới/được cập nhật 55 Thay ID Tên usecase Tác nhân Mô tả Bối cảnh Điều kiện Normal flow Exception flow Kết ID Tên usecase Tác nhân Mô tả Bối cảnh Điều kiện Normal flow thư mục Client/Server thử watcher lại thư mục sau khoảng thời gian 15 Xử lý liệu Client-Server Client- server xử lý liệu phát sinh Sau watcher thư mục mà phải theo dõi qui định file luật, có kiện file mới/cập nhật file server/client xử lý kiện Client server tham gia trao đổi liệu lấy giải mã thành cơng file luật Client/server nhanh chóng thêm tồn thơng tin file vào hàng đợi Định kỳ có luồng riêng xử lý hàng đợi đó, client File xác thực (thư mục gửi file, file ẩn, phần mở rộng file) hợp lệ chờ gửi Nếu server: File xác thực (thư mục gửi file, file ẩn, phần mở rộng file) hợp lệ file thêm vào hàng đợi tương ứng client mà lấy file chờ xử lý Client/ server có danh sách file chuẩn chờ gửi đến địa 12 Gửi yêu cầu truyền-nhận file Client-Server Client gửi yêu cầu trao đổi liệu với server định kỳ Sau kết nối tới server qua số IP port đọc từ file luật Client định kỳ gửi mã lệnh yêu cầu trao đổi liệu với server Client kết nối với server mà trao đổi liệu Client gửi yêu cầu tạo phiên làm việc truyền nhận file Server xử lý 56 Exception flow Client không kết nối với server, mã tạm username không Kết Server có yêu cầu truyền nhận file Thay Client tự động kết nối tới server, client-server ghi lại lỗi ID Tên usecase Tác nhân Mô tả Bối cảnh 13 Xử lý yêu cầu truyền nhận file Client-Server Server xử lý yêu cầu truyền nhận file từ client Sau client gửi yêu cầu truyền nhận file lên server, server xử lý yêu cầu truyền nhận file tương ứng Điều kiện Normal flow Client kết nối tới server, username mã tạm thời Client gửi yêu cầu truyền nhận file Nếu yêu cầu truyền file: server lấy từ hàng đợi với client tương ứng file mà client nhận, gửi thơng tin file nội dung cho client Client build file từ nội dung server gửi Nếu yêu cầu nhận file: server đọc thông tin file nội dung file client lấy từ hàng đợi gửi lên sau build file từ nội dung Exception flow Client không kết nối tới server, username mã tạm thời khơng Kết Server client có file cần, trả file kích thước bytes hàng đợi rỗng Thay Client-server ghi lại lỗi, file lỗi đưa ngược vào hàng đợi, lỗi kết nối client tự kết nối trở lại với server ID Tên usecase Tác nhân Mô tả 16 Ghi lịch sử kiện Client-Server Log connection (log kết nối) dùng ghi lại thông tin client/server ngắt kết nối vào có kết nối trở lại Log transmission (log truyền nhận) dùng để ghi lại thông tin client/server truyền/nhận file nào, vào lúc nào, bao lâu, dung lượng file Log error (log lỗi) dùng để ghi lại lỗi xảy trình 57 Bối cảnh Điều kiện Normal flow truyền nhận (chủ yếu phục vụ công tác sửa lỗi phần mềm) Khi client server bắt đầu tham gia vào trao đổi liệu, tất hoạt động ghi vào log dạng text Client server tham gia vào trao đổi liệu Mỗi kiễn diễn ghi vào file log connection/transmission/error tương ứng với kiện Exception flow Kết File log sinh thư mục qui định Thay Client kết nối trở lại tới server ID Tên usecase Tác nhân Mô tả 17 Đồng file log Client-Server-Server CNTT File log sau sinh định kỳ gửi lên server CNTT Bối cảnh Sau file log sinh thư mục qui định định kỳ gửi tập trung server cntt để phục vụ công tác giám sát đánh giá Điều kiện Client server có tham gia trao đổi liệu, có kết nối internet Normal flow Client server gửi file log lên cấp mà kết nối tới từ file log đẩy lên cấp cao (server cntt) Exception flow Khơng có kết nối internet Kết File log tập trung server cntt ID Tên usecase Tác nhân Mô tả Bối cảnh Điều kiện Normal flow 18 Xác thực liệu thiếu Client-Server Server client phải xác thực để biết thông tin liệu mà client/server chưa nhận Khi client/server kết nối với để trao đổi liệu (lần đầu kết nối trở lại) server/client phải có thông tin để biết đối phương thiếu liệu vào hàng đợi tương ứng Client server vừa kết nối để trao đổi liệu Client tạo phiên làm việc với server yêu cầu xác thực liệu Client khởi tạo chuỗi thông tin chứa tên file + mã md5 file 58 tương ứng gửi lên server Client khởi tạo chuỗi thông tin chứa tên file + mã md5 file tương ứng gửi lên server Client-Server so sánh với lọc file chưa gửi cho chúng vào hàng đợi chờ xử lý Exception flow Không gửi chuỗi lên server Kết Client/server có danh sách file mà đối phương thiếu Thay Client kết nối trở lại với server, client-server ghi lại lỗi ID Tên usecase Tác nhân Mơ tả Bối cảnh 19 Xóa liệu định kỳ Client-Server liệu cũ xóa bớt Sau khoảng thời gian qui định liệu cũ sau lưu backup xóa bớt Điều kiện Normal flow Định kỳ client-server duyệt file thư mục xóa file cũ Exception flow Kết Các file cũ bị xóa giải phóng dung lượng lưu trữ 59 PHỤ LỤC II : CODE MỘT SỐ HÀM QUAN TRỌNG Client kết nối var endPoint = new IPEndPoint(IpAddress, Port); var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp); try{ socket.Connect(endPoint); } Cath{} Server xử lý kết nôi var serverEndpoint = new IPEndPoint(IPAddress.Any, Port); var serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp); try{ serverSocket.Bind(serverEndpoint); }catch (Exception) return; } serverSocket.Listen(100); try { while (true) { var socket = serverSocket.Accept(); var t1 = new Thread(ServeOne) { IsBackground = true }; t1.Start(socket); } } Catch{} Client gửi username password using (var ns = new NetworkStream(socket)){ byte[] value = new byte[1]; value[0] = 0; ns.Write(value, 0, value.Length); byte[] userNameBytes = Encoding.UTF8.GetBytes(Username); byte[] userNameLength = BitConverter.GetBytes(userNameBytes.Length); byte[] passwordBytes = Encoding.UTF8.GetBytes(Password); byte[] passwordLength = BitConverter.GetBytes(Password.Length); ns.Write(userNameLength, 0, userNameLength.Length) ns.Write(userNameBytes, 0, userNameBytes.Length); 60 ns.Write(passwordLength, 0, passwordLength.Length); ns.Write(passwordBytes, 0, passwordBytes.Length); server nhận username password client gửi lên using (var socket = (Socket)obj){ using (var ns = new NetworkStream(socket)) byte[] value = new byte[1]; ns.Read(value, 0, 1); byte[] usernamelengthdata = new byte[4]; ns.Read(usernamelengthdata, 0, 4); int usernamelength = BitConverter.ToInt32(usernamelengthdata, 0); byte[] usernamedata = new byte[usernamelength]; ns.Read(usernamedata, 0, usernamelength); string username = Encoding.UTF8.GetString(usernamedata, 0, usernamelength); byte[] passwordlengthdata = new byte[4]; ns.Read(passwordlengthdata, 0, 4); int passwordlength = BitConverter.ToInt32(passwordlengthdata, 0); byte[] passworddata = new byte[passwordlength]; ns.Read(passworddata, 0, passwordlength); string password = Encoding.UTF8.GetString(passworddata, passwordlength); server gửi trả client mã tạm thời token thay cho password var letter = "abcdefghijklmnop123456789".ToCharArray(); Random r = new Random(); var token = ""; for (var i = 0; i < 5; i++){ token += letter[r.Next(0, 25)].ToString();} ValDictionary[username] = token; Listclients.Add(username, socket); var Token = ValDictionary[username]; var tokenLength = BitConverter.GetBytes(Token.Length); ns.Write(tokenLength, 0, tokenLength.Length); var tokenBytes = Encoding.UTF8.GetBytes(Token); ns.Write(tokenBytes, 0, tokenBytes.Length); 61 0, Client nhận mã tạm thời token thay cho password byte[] tokenlengthdata = new byte[4]; ns.Read(tokenlengthdata, 0, 4); int tokenlength = BitConverter.ToInt32(tokenlengthdata, 0); byte[] tokendata = new byte[tokenlength]; ns.Read(tokendata, 0, tokenlength); token = Encoding.ASCII.GetString(tokendata, 0, tokenlength); Xử lý check kết nối server với client byte[] data = { }; socket.ReceiveTimeout = 6000; while (true) { socket.Receive(data); } Xử lý check kết nối client với server byte[] data = { }; while (true){ fixSocket.Send(data); Thread.Sleep(4000);} Xử lý gửi file từ server xuống client byte[] filebytes = Encoding.UTF8.GetBytes(filePath); byte[] filebytesLength = BitConverter.GetBytes(filebytes.Length); byte[] fileLength = BitConverter.GetBytes(fileInfo.Length); try{ ns.Write(filebytesLength, 0, filebytesLength.Length); ns.Write(filebytes, 0, filebytes.Length); ns.Write(fileLength, 0, fileLength.Length) var t1 = Server.getDateTimeNow(DateTime.Now); using (var fs = fileInfo.OpenRead()){ var buffer = new byte[16000]; int count; while ((count = fs.Read(buffer, 0, buffer.Length)) > 0){ ns.Write(buffer, 0, count); }} catch (Exception ex){} 62 Xử lý client nhận file từ server Directory.CreateDirectory(thongtin.Filepath); using (var fs = TryCreateFileStream(thongtin.Filepath + "\\" + thongtin.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)) { var buffer = new byte[16000]; try{ ns.ReadTimeout = 6000; int count1; while ((count1 = ns.Read(buffer, 0, buffer.Length)) > 0){ fs.Write(buffer, 0, count1);} catch{} tạo md5 để so sánh file client server public Dictionary GetLastFileModifiedFast(Dictionary file, string dir, DateTimeOffset reDlTime, string md5Path){ foreach (FileData f in FastDirectoryEnumerator.EnumerateFiles(dir, "*.*", SearchOption.AllDirectories)){ if (f.LastWriteTime > reDlTime || f.LastAccesTime > reDlTime && !extension.Contains(Path.GetExtension(f.Path))){ var fileName = f.Path.Substring(dir.Length + 1); file[(md5Path + "\\" + fileName).Replace("/", "\\")] f.Size.ToString();}} Mã hóa chuỗi json danh sách file client gửi tới server string json = JsonConvert.SerializeObject(listCfile, Formatting.None); byte[] jsonbytes = Encoding.UTF8.GetBytes(json); ns.Write(jsonbytes, 0, jsonbytes.Length); ns.Write(new[] { (byte)'\n' }, 0, 1); Nhận chuỗi json giải mã thành danh sách file client string json; using (var sr = new StreamReader(ns)){ json = sr.ReadLine();} Dictionaryvalues= JsonConvert.DeserializeObject(json); 63 = Theo dõi thư mục public RecoveringFileSystemWatcher RunRecoveringWatcher(string path, Action onchange) { while (true){ try{ var watcher = new RecoveringFileSystemWatcher(path); watcher.IncludeSubdirectories = true; watcher.NotifyFilter = NotifyFilters.FileName| NotifyFilters.Size; watcher.All += (_, e) =>{ if (e.ChangeType == WatcherChangeTypes.Changed){ onchange(e.FullPath);}}; watcher.EnableRaisingEvents = true; return watcher;} catch (Exception ex){} 64 ... NỘI VƯƠNG MINH PHƯƠNG NGHIÊN CỨU XÂY DỰNG HỆ THỐNG TRUYỀN TẢI TRAO ĐỔI DỮ LIỆU KÈM MÃ HĨA BẢO MẬT ỨNG DỤNG TRONG NGÀNH KHÍ TƯỢNG THỦY VĂN LUẬN VĂN THẠC SỸ KỸ THUẬT CHUYÊN NGÀNH KỸ THUẬT VIỄN THÔNG... LUẬN VĂN Đề tài tập trung vào xây dựng hệ thống truyền tải đồng thông tin liệu áp dụng ngành khí tượng thủy văn Hệ thống bao gồm phần thiết kế hệ thống, xây dựng phần mềm hoạt động hệ thống Hệ thống. .. truyền tải trao đổi liệu kèm mã hóa bảo mật ứng dụng ngành khí tượng thủy văn Mục tiêu đề tài xây dựng hệ thống đồng số liệu đơn vị ngành Khí tượng thủy văn, từ đài trạm quan trắc khắp nước để

Ngày đăng: 28/02/2021, 08:05

Từ khóa liên quan

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

Tài liệu liên quan