Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
1,07 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN LỚP CAO HỌC KHĨA Báo cáo cuối kỳ PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC Công nghệ thông tin với tự do, sáng tạo chia sẻ HVTH: Phạm Nguyễn Trường An MSHV: CH1101062 GVHD: HOÀNG VĂN KIẾM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học Mục lục A.KHOA HỌC VÀ NGHIÊN CỨU KHOA HỌC I.Khái niệm phân loại: .5 a.Phân loại theo nguồn gốc hình thành khoa học: b.Phân loại theo mục đích ứng dụng khoa học c.Phân loại theo mức độ khái quát hóa khoa học d.Phân loại theo kết họat động chủ quan người e.Phân loại theo cấu hệ thống tri thức chương trình đào tạo f.Phân loại theo đối tượng nghiên cứu khoa học II.Nghiên cứu khoa học a.Đặt vấn đề, mục đích, câu hỏi nghiên cứu b.Những giả định c.Danh mục tài liệu .8 d.Trình tự e.Tầm quan sát, liệu, kết f.Kết luận III.Đề tài nghiên cứu khoa học .9 a.Khái niệm đề tài .9 b.Đối tượng nghiên cứu phạm vi nghiên cứu c.Mục đích mục tiêu nghiên cứu B.PHƯƠNG PHÁP LUẬN SÁNG TẠO VÀ ĐỔI MỚI TRONG KHOA HỌC I.Khái niệm, đối tượng, mục đích ý nghĩa II.Những nội dung .10 a.Vấn đề khoa học 10 b.Các phương pháp phát vấn đề khoa học 10 c.Phương pháp giải vấn đề khoa học phát minh, sáng chế 11 d.Các phương pháp giải vấn đề tổng quát 13 C.ÁP DỤNG CÁC NGUYÊN TẮC SÁNG TẠO VÀO NHỮNG VẤN ĐỀ CỤ THỂ TRONG CÔNG NGHỆ THÔNG TIN .14 I.Sự giải phóng ngành phần mềm bùng nổ sáng tạo công nghệ thông tin 15 GVHD: Hoàng Văn Kiếm Trang 2/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học a.Giai đoạn 1: Phần mềm gắn liền với phần cứng 15 b.Giai đoạn 2: Định hình cơng nghiệp với trỗi dậy máy tính cá nhân 16 c.Sự trỗi dậy phần mềm mã nguồn mở câu chuyện Tái ông thất mã .17 II.Áp dụng nguyên tắc sáng tạo xây dựng phần mềm 19 a.Nhu cầu thực tế 19 b.Phân tích giải pháp có tìm vấn đề: .20 c.Xác định lại vấn đề 21 III.Sáng tạo, phát triển từ cơng cụ có: 23 a.Giao thức bittorrent 23 b.SHA-1 Hash file checksum .25 c.Giao diện người dùng 27 IV.Chi tiết thiết kế, mô tả hoạt động .29 a.Kết cấu chương trình .29 V.Giao diện 31 a.Bộ thư viện lõi .35 b.Cơ chế send file .37 VI.Một số mẹo dùng lúc cài đặt chương trình .38 a.Background 38 b.Synchronous socket programming 39 c.Thread synchronization 40 Cách lấy external IP 42 d.Lấy Icon file – task 43 e.Cách dừng thread 44 f.Cách ngăn không cho hệ thống vẽ lại chương trình .44 D.TÀI LIỆU THAM KHẢO: 46 GVHD: Hoàng Văn Kiếm Trang 3/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học A.KHOA HỌC VÀ NGHIÊN CỨU KHOA HỌC I Khái niệm phân loại: Khoa học trình nghiên cứu nhằm khám phá kiến thức mới, học thuyết mới… tự nhiên xã hội Những kiến thức hay học thuyết nầy, tốt hơn, thay dần cũ, khơng cịn phù hợp Khoa học bao gồm hệ thống tri thức qui luật vật chất vận động vật chất, qui luật tự nhiên, xã hội, tư Hệ thống tri thức hình thành lịch sử không ngừng phát triển sở thực tiễn xã hội Phân biệt hệ thống tri thức: tri thức kinh nghiệm tri thức khoa học Có nhiều hướng phân loại khoa học: theo nguồn gốc (lý thuyết, thực nghiệm, thực chứng…), theo mục đích ứng dụng (mơ tả, phân tích, tổng hợp, sáng tạo…), theo mức độ khái quát (cụ thể, trừu tượng, tổng quát…), theo tính tương liên (liên ngành, đa ngành…), theo cấu hệ thống tri thức (cơ sở, bản, chuyên ngành…), theo đối tượng nghiên cứu (tự nhiên, kỹ thuật, xã hội nhân văn, công nghệ, nông nghiệp, y học…) a Phân loại theo nguồn gốc hình thành khoa học: Khoa học lý thuyết (sciences théorique) Khoa học túy (scieces pures, sciences de pure érudition) Khoa học thực nghiệm (sciences empiricales,sciences expérimentales) Khoa học thực chứng (sciences positives) Khoa học quy nạp (sciences inductives) Khoa học diễn dịch (sciences déductives) GVHD: Hoàng Văn Kiếm Trang 4/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An b Phương pháp nghiên cứu khoa học tin học Phân loại theo mục đích ứng dụng khoa học Khoa học mơ tả (sciences descriptives) Khoa học phân tích (sciences analytiques) Khoa học tổng hợp (sciences synthétiques) Khoa học ứng dụng (sciences appliquées) Khoa học hành động (sciences de l’action) Khoa học sáng tạo (sciences créatrices) c Phân loại theo mức độ khái quát hóa khoa học Khoa học cụ thể (sciences concrètes) Khoa học trừu tượng (sciences abstraites) Khoa học tổng quát (sciences générales) Khoa học đặc thù (sciences particulières) Phân loại theo tính tương liên khoa học Khoa học liên môn(sciences inter-disciplinaires) Khoa học đa môn (sciences multi-disciplinaires) d Phân loại theo kết họat động chủ quan người Khoa học ký ức (sciences de la mémoire) Khoa học tư (sciences de la pensée) Khoa học suy luận (sciences de la raison) Khoa học tưởng tượng (sciences de l’imagination) e Phân loại theo cấu hệ thống tri thức chương trình đào tạo Khoa học (sciences de base) Khoa học sở (sciences fondamentales) Khoa học chuyên mơn (sciences de spécialisation) GVHD: Hồng Văn Kiếm Trang 5/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An f Phương pháp nghiên cứu khoa học tin học Phân loại theo đối tượng nghiên cứu khoa học Khoa học tự nhiên (sciences naturelles, sciences de la nature) Khoa học kỹ thuật (sciences techniques) Khoa học công nghệ (sciences technologiques, sciences d’engineering) Khoa học xã hội (sciences sociales) Khoa học nhân văn (sciences humaines) Khoa học nông nghiệp (sciences agricoles) Khoa học (sciences de la santée) II Nghiên cứu khoa học Nghiên cứu khoa học hoạt động tìm kiếm, xem xét, điều tra, thử nghiệm Dựa số liệu, tài liệu, kiến thức,… đạt từ thí nghiệm nghiên cứu khoa học để phát chất vật, giới tự nhiên xã hội, để sáng tạo phương pháp phương tiện kỹ thuật cao hơn, giá trị Phương pháp nghiên cứu khoa học nói chung gồm sáu bước sau: a Đặt vấn đề, mục đích, câu hỏi nghiên cứu Đặt vấn đề hay câu hỏi nghiên cứu phần quan trọng phương pháp nghiên cứu khoa học Mỗi phần dự án thực để trả lời câu hỏi Các câu hỏi nghiên cứu đơi hình thành tuyên bố gọi “vấn đề” "báo cáo vấn đề." Mục tiêu hay ý tưởng kiểm chứng gì? Câu hỏi khoa học trả lời gì? b Những giả định Giả định dạng dự báo, hình thành tuyên bố để dẫn tới câu trả lời cho câu hỏi nghiên cứu Giải thích cách thuyết phục dự án sử dụng để chứng minh cho mục đích nghiên cứu Nên cố gắng trình bày kỹ kết luận có thơng qua đo lường Khơng phải lúc kết luận phù hợp với giả thuyết GVHD: Hoàng Văn Kiếm Trang 6/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An c Phương pháp nghiên cứu khoa học tin học Danh mục tài liệu Danh sách tất vật tư, thiết bị, tài liệu sử dụng nghiên cứu thử nghiệm Danh sách tài liệu phải bao gồm trình tự tất thao tác d Trình tự Là mô tả chi tiết, bước cách thực thử nghiệm Mô tả rõ ràng cách khống chế biến số bước làm lấy kết cuối thông qua đo lường để chứng minh hay bác bỏ giả thuyết Các tiến trình thực nên đúc kết theo phương pháp mà theo người khác dễ dàng thực lại Hình ảnh mơ tả thao tác rõ bảng hiển thị e Tầm quan sát, liệu, kết Các kết thường hình thức tun bố để giải thích diễn giải liệu Kết thu dạng liệu thô, đồ thị, kết luận rút từ liệu có trước Hình ảnh sử dụng f Kết luận Kết luận tóm tắt nghiên cứu kết thử nghiệm Đây nơi trả lời vấn đề hay câu hỏi nghiên cứu Cần đưa tuyên bố cho dù liệu có hỗ trợ giả thuyết hay khơng Cần phải có đủ liệu để chứng minh phần phản bác toàn giả thuyết Trong trường hợp này, giải thích có kết khác Các phương pháp khoa học đúc bê tông mà hệ thống, minh bạch dễ để học hỏi sử dụng mà không nhà khoa học sử dụng cho lợi ích riêng họ Phương pháp khoa học điều cụ thể mà mang tính hệ thống, trực tiếp dễ để sử dụng học hỏi chí người nhà khoa học với mối quan tâm khác GVHD: Hoàng Văn Kiếm Trang 7/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học III Đề tài nghiên cứu khoa học a Khái niệm đề tài Đề tài hình thức tổ chức NCKH người nhóm người thực Một số hình thức tổ chức nghiên cứu khác khơng hồn tồn mang tính chất nghiên cứu khoa hoc, chẳng hạn như: chương trình, dự án, đề án b Đối tượng nghiên cứu phạm vi nghiên cứu Đối tượng nghiên cứu: chất vật hay tượng cần xem xét làm rõ nhiệm vụ nghiên cứu Phạm vi nghiên cứu: đối tượng nghiên cứu khảo sát trong phạm vi định mặt thời gian, không gian lĩnh vực nghiên cứu c Mục đích mục tiêu nghiên cứu Khi viết đề cương nghiên cứu, điều quan trọng thể mục tiêu mục đích nghiên cứu mà khơng có trùng lấp lẫn Vì vậy, cần thiết để phân biệt khác mục đích mục tiêu Mục đích: hướng đến điều hay cơng việc nghiên cứu mà người nghiên cứu mong muốn để hồn thành, thường mục đích khó đo lường hay định lượng Mục tiêu: thực hoạt động cụ thể, rõ ràng mà người nghiên cứu hoàn thành theo kế hoạch đặt nghiên cứu Mục tiêu đo lường hay định lượng GVHD: Hoàng Văn Kiếm Trang 8/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học B PHƯƠNG PHÁP LUẬN SÁNG TẠO VÀ ĐỔI MỚI TRONG KHOA HỌC I Khái niệm, đối tượng, mục đích ý nghĩa Phương pháp luận sáng tạo đổi phần ứng dụng Khoa học sáng tạo, bao gồm hệ thống phương pháp kĩ cụ thể giúp nâng cao suất hiệu quả, lâu dài tiến tới điều khiển tư sáng tạo người sử dụng Đối tượng mà mơn học nghiên cứu hồn thiện tư sáng tạo – trình suy nghĩ giải vến đề định người Mục đích mơn học trang bị cho người học hệ thống phương pháp kĩ cụ thể, giúp họ nâng cao suất, hiệu quá, lâu dài, tiến tới điều khiển tư sáng tạo (quá trình suy nghĩ giải vấn đề định) họ Các ích lợi: đời người chuỗi vấn đề cần giải quyết, chuỗi định cần phải đưa Nếu giải vấn đề không tốt, đưa định sai, phải trả giá thời gian, sức khỏe, phương tiện vật chất, tiền bạc, địa vị, danh tiếng… Ý nghĩa nhân đạo phát triển người: phương pháp luận sáng tạo đổi khoa học nhắm tới hoàn thiện tư sáng tạo nhắm tới hoàn thiện ngừoi mối quan hẹ ngừoi với người, người với xã hội, ngừoi với công cụ lao động (hiểu theo nghĩa rộng) người với tự nhiên II Những nội dung a Vấn đề khoa học Vấn đề khoa học (scientific problem) gọi vấn đề nghiên cứu (research problem) câu hỏi đặt người nghiên cứu đứng trước mâu thuẫn tính hạn chế tri thức khoa học có với u cầu phát triển tri thức trình độ cao Nghiên cứu khoa học tồn vấn đề: Vấn đề chất vật tìm kiếm GVHD: Hồng Văn Kiếm Trang 9/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học Vấn đề phương pháp nghiên cứu để làm sáng tỏ lý thuyết thực tiễn vấn đề thuộc lớp thứ b Các phương pháp phát vấn đề khoa học Có phương pháp: 1) Tìm kẻ hở, phát vấn đề 2) Tìm bất đồng 3) Nghĩ ngược lại quan niệm thông thường 4) Quan sát vướng mắt thực tiễn 5) Lắng nghe lời kêu ca phàn nàn 6) Cảm hứng: câu hỏi xuất quan sát kiện c Phương pháp giải vấn đề khoa học phát minh, sáng chế Có phương pháp: • Dựng Vepol đầy đủ • Chuyển sang Fepol • Phá Vepol • Xích Vepol • Liên trường Có 40 thủ thuật (nguyên tắc) sáng tạo bản: Nguyên tắc phân nhỏ Nguyên tắc “tách khỏi” Nguyên tắc phẩm chất cục bộ Nguyên tắc phản đối xứng Nguyên tắc kết hợp Nguyên tắc vạn Nguyên tắc “chứa trong” GVHD: Hoàng Văn Kiếm Trang 10/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học • Thực công việc tự động load task thư mục TaskList, bao gồm thuc xong task cịn dở dang • Thiết lập cấu hình mặc định cho chương trình lần chạy đầu tiên, lưu tùy chọn cấu hình người dùng • Tự động mở kết nối lắng nghe port người dùng chọn, sẵn sàng thực việc chia sẻ liệu máy tính với Chương trình có khả thu gọn xuống system tray GVHD: Hoàng Văn Kiếm Trang 31/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học Các button phía toolbar dùng để lọc (filter) task dựa theo trạng thái chúng Create Task form: Form cho phép người dùng tạo task Form gọi hàm tương ứng thư viện lõi để tính hash thơng số cần thiết khác task Q trình tính hash thường chiếm thời gian tương đối lâu nên chương trình cung cấp khả hủy bỏ q trình hash (tính pause q trình hash khơng đưa vào mức độ cần thiết không cao để đảm bảo giao diện ) Form Peer Input: GVHD: Hoàng Văn Kiếm Trang 32/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học Được dùng dialog box đặc biệt, dành riêng cho việc nhập thông số đặc trưng cho user Các textbox nhập IP port thiết kế kỹ để đảm bảo người dùng thông số không hợp lý (dù cố ý hay vô tình) Detail form Từ form người dùng xem lại thông tin liên quan đến task, danh sách file chia sẻ điều chỉnh thêm bớt user danh sách Option form Đây la nơi chứa thiết lập chuong trình, bên bao gồm tính nhung ảnh hưởng đến toàn hoạt động chương trình Request form GVHD: Hồng Văn Kiếm Trang 33/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học Form mở lên chương trình nhân tín hiệu bắt đầu chia sẻ file từ user khác Người dùng chấp nhận chia sẻ khơng, có quyền lựa chọn file nhận a Bộ thư viện lõi Cơng cụ tính Hash: NET hỗ trợ sẵn hàm cần thiết để tính Md5 SHA-1 hash namespace System.Security.Cryptograph Tuy nhiên, qua thực tế sử dụng em, công cụ có sẵn khơng phù hợp với việc tính Hash file, file có kích thước lớn Hơn dùng hàm có sẵn này, khơng thể biết q trình tính hash chạy tới đâu ước lượng thời gian tính tốn cần thiết Vì em tự cài đặt cơng cụ để tính hash theo hai thuật tốn MD5 SHA-1 đề cập phần hai GVHD: Hoàng Văn Kiếm Trang 34/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học Interface IHash bao gồm ba phương thức liệu đầu vào nạp vào hàm input Hàm result dùng để báo hiệu việc nhập liệu kết thúc trả kết tính tốn sau Hai clash MD5 SHA1 implement Interface chứa hàm cụ thể cho thuật toán Class Task, đơn vị quản lý tác vụ send file mà chương trình thực thơng tin task lưu đĩa cứng, định dạng file sử dụng dạng chữ trơn, file thơng tin có dạng thức sau: 17/06/2009 1:09:46 SA /* Thời điểm task tạo */ 01/01/0001 12:00:00 SA /* Thời điểm task hoành thành */ /* Số lượng user tham gia task */ /* Số lượng file task */ /* Dòng cuối cùng: task hash */ GVHD: Hoàng Văn Kiếm Trang 35/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học Các file thông tin lưu thư mục TaskList thư mục với file thực thi chương trình Thời task hồn thất để mặc định ngày 1/1/1 để báo hiệu task chưa hoàn tất Một task tạo máy (máy bắt đầu tiến hành chia sẻ) khơng có ngày hồn tất Task Hash tính cách lấy SHA-1 hash phần hashcode file Class transmission class peer, instance class task chứa instance class transmission, class có nhiệm vụ quản lý hoạt động chia sẻ liệu task Class peers đại diện cho user khác kết nối vào máy Trong class transmission có list peers chia sẻ liệu Một user tham gia chia sẻ nhiều task đại diện nhiều peer class transmission tương ứng Khi người dùng Start task, class transmission tạo thread riêng biệt để chạy hàm private void download() hàm lặp đến người dùng download hoàn chỉnh người dùng lệnh stop Class peers có nhiệm vụ gửi message đến user nhận message từ user gửi đến, peers có tối đa kết nối, kết nối có hàm ListenToPeer để nhận message gửi đến từ kết nối này, hàm chạy thread riêng, kết nối bị ngắt, peers bị hủy bỏ Mối quan hệ hai class class task được thể sơ đồ đây: b Cơ chế send file Khi chương trình bắt đầu chạy, form Main tạo socket listen port người dùng định form Options Các connections main nhận giao cho class tương ứng xử lý Sau kết nối thành công việc send file diễn theo giao thức gần tương tự bittorrent Một file chia làm nhiều piece - 2MiB, chương trình giữ hash code từ piece để checksum sau nhận liệu Mỗi piece lại chia làm nhiều block – 16KiB, đơn vị liệu gửi Việc truyền – nhận liệu thực thông qua message Peers trả lời message thật cần thiết GVHD: Hoàng Văn Kiếm Trang 36/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học Để cài đặt khả resume em dùng cách tạo file đánh dấu, nội dung file chuỗi số 0,1 số tương ứng với trạng thái nhân, chưa nhận block Mỗi file lưu hàng riêng Tên message Chú thích Announce Message bắt đầu trình chia sẻ file, sau message chuỗi message đồng nhằm gửi cho user tồn thơng tin task Connect Message báo hiệu bắt đầu hay chấp nhận kết nối Accept Trả lời cho connect, báo hiệu chấp nhận kết nối Disconnect Message thông báo hủy bỏ kết nối Have Peers gửi message sau nhận hoàn piece để trả lời cho message Ask Ask Dùng message để hỏi xem peers có piece hay khơng Nếu có peers trả lời message have Request Yêu cầu peers gửi block xác định đó, có peers trả lời message block Block Gửi liệu block tới cho peers, dùng để trả lời cho message Request Bảng giải message mà chương trình sử dụng: VI Một số mẹo dùng lúc cài đặt chương trình a Background Do đặc thù chương trình phải xử lý cơng việc việc địi hỏi nhiều thời gian tính hash, chờ kết nối v.v… nên việc dùng kỹ thuật đa luồng (multi thread) bắt buộc đảm bảo khả đáp ứng (responsiveness) Và BackgroundWorker đối tượng (control) sẵn có NET Framework nhằm đơn giản hóa việc lập trình đa luồng Khơng đa số control khác, BackgroundWorker nằm namespace System.ComponentModel Hỗ trợ kiện: DoWork, ProgressChage RunWorkerComplete BackgroundWorker điều khiển thông qua hàm: GVHD: Hoàng Văn Kiếm Trang 37/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học RunWorkAsync() có nhiệm vụ raise event DoWork, eventHandler DoWork thực tiến trình khác với tiến trình chạy RunWorkAsync(), sau kết thúc DoWork, kiện RunWorkerComplete raise eventHandler kiện thực thi thread điều khiển BackgroundWorker thread trước thu hồi Em thường hay sử dụng chung BackgroundWorker với ProgressBar timer (xem hình trên), để thể cho người dùng biết trình hoạt động BackgroundWorker làm chừng kết thúc Tuy đơn giản hóa cơng việc lập trình đa luồng nhiều, sử dụng BackgroundWorker không tránh khỏi số khó khăn đặc trưng việc lập trình luồng, đề cập chi tiết sau b Synchronous socket programming Để send liệu qua mạng phải quản lý kết nối hai máy NET mô hình hóa kết nối thơng qua đối tượng socket Một socket bao gồm hai IPEndPoint, hai đối tượng IPEndPoint chứa thông tin IP, port máy chủ IP, Port máy khách – thành phần đại diện cho kết nối Việc gửi nhận liệu thực thông qua hai Phương thức có sẵn socket Socket.Send() Socket.Receive() Đối tượng socket NET hỗ trợ nhiều giao thức transport khác GVHD: Hoàng Văn Kiếm Trang 38/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học TCP, IPX, UDP v.v… Do khơng có nhiều u cầu đặt biệt giao thức transport cho chương trình nên em chọn sử dụng giao thức TCP phổ biến có sẵn khả checksum tương đối Ở để đơn giản hóa cơng việc liên quan nhiều đến network kiến thức mạng máy tính em chọn lập trình socket đồng bộ, tức gọi phương thức Socket.Send() Socket.Receive(), chương trình bị khóa (block) liệu gửi/nhận thành công Cách hạn chế tình trạng máy bị tràn ngập tín hiệu gửi đến từ máy khác, trường hợp máy chia sẻ file phải kết nối với nhiều máy, máy lại có nhiều socket khác Tuy nhiên synchronous socket đơi khiến chương trình bị treo, địi hỏi phải áp dụng thêm kỹ thuật lập trình đa luồng việc quản lý sử dụng socket c Thread synchronization Việc trang bị khả đa luồng cho phép chương trình tận dụng tốt tài nguyên hệ thống, đảm bảo đáp ứng (responsiveness) phải thực công việc nặng Đổi lại, chương trình trở nên phức tạp so với ứng dụng đơn luồng phát sinh nhiều vấn đề đặt trưng lập trình đa xử lý Ngày chương trình đa luồng Một chương trình có dùng window form NET chắn đa luồng, dù người lập trình khơng có ý định đụng đến đa luồng bên dịng code người lập trình, đoạn code có sẵn thư viện NET ln ln có luồng chạy song song đảm nhận việc vẽ lại control Thế nên việc sử dụng đa luồng lập trình ngày gần bắt buộc Để chương trình đa luồng hoạt động sn sẻ, luồng phải đồng hóa (synchronization) tốt Đồng hóa quy tắc đảm bảo tiến trình chạy cách “có tổ chức” khơng xung đột với tài nguyên dùng chung Đây cơng việc phức tạp, khó lường hết tình xảy thực tế nhiều luồng lúc tranh giành tài nguyên hệ thống Và sơ sẩy người lập trình dẫn đến hàng loạt vấn đề Một lỗi mà em thường hay gặp “Cross-thread operation not valid “ , hình: GVHD: Hoàng Văn Kiếm Trang 39/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học Lỗi thường gặp lập trình multi thread Lỗi phát sinh thread thay đổi thuộc tính control tạo thread khác Do control redraw thời điểm thread khác truy cập vào nên để đảm bảo quán tránh xung đột, NET cấm việc thay đổi controls từ thread khác Vấn đề khắc phục sử dụng hàng loạt biến trung gian để giao tiếp thread thay can thiệp trực tiếp vào control thread triệt để sử dụng chế Invoke Và cuối vấn đề lớn phải đối mặt lập trình đa xử lý: chương trình bị deadlock Deadlock xảy thread hay tiến trình khơng thể kết thúc chờ điều kiện từ thread khác, mà điều kiện không xảy Điều dễ gặp phải thực tế Có bốn điều kiện để xảy deadlock (Coffman conditions) [6] Tài nguyên dùng nhiều thread (Mutual Exclusion) Thread giữ tài ngun cần có thêm tài ngun khác (Hold and wait) Thread phải tự trả lại tài ngun dùng chung, khơng giành (No Premption) Ít hai thread hình thành vịng tròn chờ tài nguyên lẫn (circular wait) Trong trường hợp cụ thể em, có nhiều khả gây deadlock GVHD: Hồng Văn Kiếm Trang 40/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học như: thread A vừa nhận liệu ghi vào file x, chờ truy cập file y từ thread B để hoàn tất Thread B giữ file y, lại chờ truy cập file x từ A Điểm đáng sợ deadlock khơng thể khắc phục, có chiến lược để lựa chọn deadlock: Cố tránh deadlock cách đồng hóa tiến trình tốt tốt Hoặc phải chấp nhận deadlock, restart chương trình hy vọng lần sau khơng gặp tình tương tự Cách lấy external IP Để thực kết nối, chương trình cần biết đến IP máy đích, nhiên với hầu hết người hiểu biết địa IP mập mờ Để tiện sử dụng, chương trình tích hợp khả tự xác định địa IP truy cập internet người dùng hiển thị form options Cần lưu ý có gateway (thường router) mà từ người dùng truy cập vào internet nắm external IP, việc truy cập vào gateway để lấy IP lúc làm được, thiết bị có cách giao tiếp khác máy người dùng không đủ quyền truy cập vào tran cung cấp thơng tin gateway Để lấy external IP trường hợp, cách đơn giản nhờ vào máy khác internet với công đặc biệt: Khi gửi gói tin đến máy này, máy bóc phần source IP gói tin gửi lại cho ta Có nhiều trang web thực việc hầu hết bị chèn quảng cáo rối rắm thế, ta tự tạo trang web hiển thị thứ địa IP máy vừa truy cập + Đối với ASP, cần tạo trang dòng: + Đối với PHP, : Sau tạo trang có nội dung , ta cần upload file lên host thường trực Ở địa em thực là: http://www.tourguidecontest.com/myip2.php GVHD: Hoàng Văn Kiếm Trang 41/45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học tin học Dữ liệu trả có dạng: