Báo cáo đồ án Cơ sở ngành mạng. Nội dung gồm 2 phần, phần 1 là nguyên lý hệ điều hành đề tài: giao tiếp giữa các tiến trình bằng đường ống pipe; phần 2 là lập trình mạng đề tài: Thiết kế website servlet quản lý hồ sơ học sinh khối tiểu học. Nội dung phần 1 hướng dẫn cài đặt hệ điều hành linux trên môi trường máy ảo VMWare, tìm hiểu nguyên lý hoạt động của đường ống Pipe và code gửi nhận dữ liệu. Nội dung phần 2 là xây dựng website java servlet Quản lý hồ sơ học sinh, cơ sở dữ liệu là SQL server
MỤC LỤC LỜI NÓI ĐẦU PHẦN I NGUYÊN LÝ HỆ ĐIỀU HÀNH TIÊU ĐỀ: GIAO TIẾP GIỮA CÁC TIẾN TRÌNH BẰNG ĐƯỜNG ỐNG PIPE CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Bối cảnh mục tiêu Giới thiệu hệ điều hành Linux Tiến trình, tiến trình Linux 3.1 Tổng quan tiến trình 3.2 Cấu trúc tiến trình 3.3 Các thao tác điều khiển tiến trình Đường ống Pipe CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG Mơ tả tốn Cách thức giải Môi trường ngôn ngữ lập trình Thuật toán sử dụng triển khai thuật toán 4.1 Thuật toán 4.2 Triển khai thuật toán 10 CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 13 Cài đặt cơng cụ lập trình 13 1.1 Cài đặt máy ảo VMWare: 13 1.2 Cài đặt hệ điều hành Ubuntu 13 Chạy chương trình 13 Kết 14 Đánh giá kết 15 CHƯƠNG 4: KẾT LUẬN 17 Kết luận 17 Hướng phát triển 17 PHẦN II LẬP TRÌNH MẠNG 18 TIÊU ĐỀ: THIẾT KẾ WEBSITE SEVLET QUẢN LÝ HỒ SƠ HỌC SINH KHỐI TIỂU HỌC ( TRƯỜNG TIỂU HỌC NGÔ SĨ LIÊN) – THUỘC SỞ GIÁO DỤC VÀ ĐÀO TẠO THÀNH PHỐ ĐÀ NẴNG 18 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 18 SVTH: Phạm Hồng Nguyên Page 1 Bối cảnh mục tiêu 18 Lý thuyết liên quan 18 2.1 Tìm hiểu HTML, CSS, JavaScript JSP 18 2.2 Sevlet, JSP mơ hình MVC 21 2.3 Các công cụ cần thiết cài đặt môi trường lập trình 22 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 24 Phân tích hệ thống 24 1.1 Phân tích đề tài 24 1.2 Các nhóm chức hệ thống 24 1.3 Các tác nhân hệ thống 24 1.4 Biểu đồ ca sử dụng tác nhân 24 Thiết kế hệ thống 26 2.1 Người sử dụng 26 2.2 Những chức 26 Thuật toán sử dụng triển khai thuật toán 27 CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 29 Triển khai 29 1.1 Tạo Dynamic Web Project 29 1.2 Kết nối sở liệu 29 1.3 Cấu trúc Project cần xử lý 29 1.4 Các chức 31 CHƯƠNG 4: KẾT LUẬN 38 Kết luận 38 Hướng phát triển 38 TÀI LIỆU THAM KHẢO 39 PHỤ LỤC 40 Phần hệ điều hành 40 Phần lập trình mạng 47 SVTH: Phạm Hồng Nguyên Page LỜI NÓI ĐẦU Đồ án Cơ sở ngành mạng đồ án quan trọng sinh viên khoa Công nghệ Thông Tin trường Đại học Bách Khoa – Đại học Đà Nẵng, học kỳ đồ án chia làm hai phần chính: Phần đầu Nguyên lý hệ điều hành phần thứ hai Lập trình mạng Trong Ngun lý hệ điều hành mơn học bổ ích giúp sinh viên hiểu cấu tổ chức việc quản lý, điều phối tiến trình hệ thống máy tính Qua hiểu biết phần phần mềm máy tính hệ điều hành Việc nghiên cứu đồ án nguyên lý hệ điều hành giúp em hiểu rõ hệ điều hành Linux, hệ điều hành có nhiều tính vượt trội có triển vọng tương lai Bên cạnh mơn học Lập trình mạng khơng phần quan trọng, mơn học có ý nghĩa thực tiễn cao đặc biệt thông qua việc nghiên cứu, viết ứng dụng website Servlet giúp em hiểu rõ chế hoạt động, cách xây dựng hệ thống quản lý thông tin quan, doanh nghiệp, trường học…những nơi mà mức độ tương tác người dùng đơn vị quản lý cao Em xin chân thành cảm ơn hướng dẫn thầy Nguyễn Văn Nguyên tận tình dẫn giúp em hoàn thành đề tài đồ án suốt thời gian vừa qua SVTH: Phạm Hồng Nguyên Page PHẦN I NGUYÊN LÝ HỆ ĐIỀU HÀNH TIÊU ĐỀ: GIAO TIẾP GIỮA CÁC TIẾN TRÌNH BẰNG ĐƯỜNG ỐNG PIPE CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Bối cảnh mục tiêu Trên hệ điều hành Linux việc giao tiếp tiến trình thực thơng qua nhiều chế trao đổi liệu, có chế Pipe Mục tiêu đề tài giúp hiểu Pipe cách thức hoạt động Giới thiệu hệ điều hành Linux Năm 1991, theo học đại học đại học Helsinki (Phần Lan), ông Linux Torvads nảy sinh ý tưởng viết hệ điều hành thay cho hệ điều hành cũ kỹ Ông bắt tay vào xây dựng hệ điều hành này, đặt móng cho phát triển hệ điều hành Linux Ngày nay, Linux phân làm nhiều nhánh : Ubuntu, Linux Mint , Fedora…nhưng phổ biến Ubuntu Ban đầu Linux hệ điều hành với giao diện dòng lệnh (command line interface ), sau người ta xây dựng thêm giao diện người dùng đồ họa (Graphic user interface) để sử dụng dể dàng Khác với hệ điều hành Windows, Linux HĐH mã nguồn mở miễn phí, nên cài đặt người dùng lo vấn đề quyền Ngồi Linux có tính bảo mật cao, tính linh hoạt hoạt động mượt mà máy có cấu hình yếu Linux hệ điều hành đa người dùng, đa chương trình đa xử lý, hỗ trợ nhiều giao thức mạng khác nhau, hỗ trợ chế giao tiếp Pipe, Sockets… Bên cạnh đó, Linux có nhược điểm định : Số lượng ứng dụng hạn chế, khó làm quen trước quen thuộc với HĐH Windows, số nhà sản xuất không phát triển driver hỗ trợ… Tiến trình, tiến trình Linux 3.1 Tổng quan tiến trình SVTH: Phạm Hồng Nguyên Page Tiến trình chương trình xử lý, gồm ghi, trỏ lệnh biến Tài nguyên cho tiến trình gồm nhớ, thiết bị nhập xuất…, tiến trình thực thao tác tạo, thay thế, chép xử lý tín hiệu Hình: Sơ đồ trạng thái tiến trình Linux 3.2 Cấu trúc tiến trình Trong trình thực hiện, tiến trình đặc nhiều thuộc tính hệ thống trì trạng thái, định danh, giá trị ghi bao gồm đếm chương trình, mã định danh người sử dụng có tên mà tiến trình thực hiện, thông tin Kernel sử dụng để thiết lập lịch biểu tiến trình (thứ tự ưu tiên, v.v…) 3.3 Các thao tác điều khiển tiến trình Các thao tác điều khiển tiến trình gồm: Tạo lập tiến trình hàm System(), nhân tiến trình hàm fork(), thay tiến trình hành với hàm exec(), kiểm sốt đợi tiến trình con, đón xử lý tín hiệu tiến trình kết thúc, bỏ rơi tiến trình Đường ống Pipe Pipe chế giao tiếp tiến trình hệ điều hành Linux Dữ liệu pipe theo chiều định Khi pipe thiết lập hai tiến trình, tiến trình ghi liệu vào pipe, tiến trình lại đọc liệu từ pipe SVTH: Phạm Hồng Nguyên Page Pipe thích hợp cho trường hợp liệu tạo qua trình liệu đầu vào cho q trình Tuy nhiên ta sử dụng Pipe để xây dựng ứng dụng theo kiến trúc Client- Server cách sử dụng hai Pipe : Một Pipe để truyền yêu cầu (request) Pipe lại để truyền trả lời (reply) Có hai loại pipe: Nomal Pipe (Ống dẫn bình thường): Chỉ giới hạn không gian phạm vi địa trình Cho phép giao tiếp trình cha với trình hay trình trình với Java hỗ trợ pipe loại Trong q trình thay luồng Named Pipe (Ống dẫn có tên): Loại cho phép hai q trình có không gian địa khác (trên máy) giao tiếp với Thực chất giống tập tin với quy định liệu lấy đầu tập tin thêm vào cuối tập tin SVTH: Phạm Hồng Nguyên Page CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG Mơ tả tốn Cho file text có dạng ***.txt, bên file có nhiều chuỗi số, chuỗi gồm nhiều số xếp ngẫu nhiên cách ký tự space Ví dụ file lưu chuỗi dạng sau: 12 147 23 78 ; 24 67 48 123 ; Thực việc đọc liệu file xếp theo thứ tự sau: + Các số hàng xếp theo thứ tự từ lớn đến nhỏ + Tính tổng số hàng sau xếp hàng theo quy tắc chuỗi số có tổng nhỏ nằm , chuỗi có tổng lớn dần hàng cuối in tổng tính Cách thức giải Tạo hai tiến trình hệ điều hành Linux gồm: -tientrinh_cha (tiến trình cha) -tientrinh_con (tiến trình con) Thiết lập Pipe giưa hai tiến trình này, tiến trình ghi liệu vào Pipe tiến trình lại đóng vai trò đọc liệu Tiến trình cha đọc liệu từ file ****.txt, sau chuyền chuỗi dự liệu cho tiến trình Tiến trình thực tính tốn, cuối trả chuỗi kết cho tiến trình cha để ghi lại vào file Mơi trường ngơn ngữ lập trình Thuật tốn triển khai lập trình file ****.c thực thi cửa sổ dòng lệnh Terminal hệ điều hành Ubuntu 14.04.4 (một nhánh Linux), sử dụng ngơn ngữ lập trình C/ C++ Thuật tốn sử dụng triển khai thuật toán 4.1 Thuật toán Các biến hàm quan trọng sử dụng chương trình: SVTH: Phạm Hồng Nguyên Page Biến counter dùng để đếm số dãy số (số hàng) file Fstream inFile; file.open("input.txt",ios::in); Hai dòng lệnh dùng để tạo đối tượng inFile, đối tượng giúp mở file đọc liệu từ file Fstream outFile outFile.open("input.txt",ios::out); Hai dòng lệnh dùng để tạo đối tượng outFile, đối tượng giúp mở file ghi liệu từ file Hàm void read_file(): dùng để đọc liệu từ file lưu dãy số vào mảng hai chiều Hàm void write_file(): dùng để ghi lại liệu vào file dãy số mảng Hàm void tientrinh_cha(int *con_toi_cha,int *cha_toi_con): Là hàm thực tiến trình cha Hàm void tientrinh_con(int *con_toi_cha,int *cha_toi_con): Là hàm thực tiến trình Hàm tạo Pipe: rc=pipe (cha_toi_con) Hàm tạo Pipe có tên cha_toi_con, khơng phải lúc tạo Pipe nên chia trường hợp: + Nếu rc= -1 : Lỗi không tạo Pipe + Nếu rc= 0: Tạo Pipe đọc ghi Khi tạo Pipe ta cần phải tạo hai tiến trình hoạt động song song dùng Pipe vừa tạo để giao tiếp hai tiến trình với Để tạo hai tiến trình cần sử dụng hàm : fork() với cú pháp: pid = fork(); Vì Linux hỗ trợ sẵn đa tiến trình nên ta cần gọi hàm fork() để tạo hai tiến trình hoạt động song song Nhưng lúc hàm fork() tạo thành cơng hai tiến trình mà xảy trường hợp sau: SVTH: Phạm Hồng Nguyên Page + Nếu pid= -1 : Lỗi không tạo tiến trình + Nếu pid khác -1 : tạo hai tiến trình hoạt động cách song song Thứ tự thực thuật tốn mơ tả sơ đồ sau: SVTH: Phạm Hồng Nguyên Page 4.2 Triển khai thuật toán 4.2.1 Code xử lý tiến trình cha: Tiến trình cha nhận liệu từ hàm read_file() thực ghi vào Pipe gửi tới tiến trình xử lý Sau nhận lại kết từ tiến trình xử lý tiến hành ghi lại vào file * Nhận liệu từ hàm read_file() ghi vào Pipe: void tientrinh_cha(int *con_toi_cha,int *cha_toi_con) { //xu ly o tien trinh cha int rc,i,j; close(PIPE1_DOC); // Dóng dau ong khong dung den close(PIPE1_GHI); rc=write(PIPE0_GHI,mang,100*sizeof(int)); // Ghi du lieu doc duoc vao pipe if (rc==-1){ perror("Error"); close(PIPE0_DOC); close(PIPE0_GHI); exit(1); } * Đọc liệu từ Pipe ghi lại kết nhận từ tiến trình vào file text rc=read(PIPE0_DOC,mang,100*sizeof(int)); // Doc du lieu tu tien trinh gui ve -sizeof : kiem tra kich thuoc tro if (rc HocSinh_BangDiem.jsp, Kết quả: SVTH: Phạm Hồng Nguyên Page 37 CHƯƠNG 4: KẾT LUẬN Kết luận Nhận thấy thời gian ngắn khơng thể hồn thiện hết tất chức đề ban đầu thầy giao, em có xin phép giới hạn lại phạm vi đề tài quản lý hồ sơ học sinh trường tiểu học cụ thể vòng năm học Trong thời gian em cố gắng xây dựng hệ thống đầy đủ tác nhân chức theo yêu cầu đề tài có điều kiện tiếp tục nâng cấp trang web hoàn thiện Hướng phát triển Đồ án dừng lại phạm vi trường tiểu học cụ thể, vòng hai học kỳ thức năm học nên chưa bao quát thay đổi danh sách lớp học, giáo viên đặc biệt học sinh qua năm Chính cần phải nâng cấp lên thành website quản lý học sinh nhiều năm, đến việc tạo quản lý sổ liên lạc, sổ học bạ, quan sát biến đổi kết học tập từ giáo viên có biện pháp giảng dạy cụ thể cho em … góp phần nâng cao chất lượng giảng dạy nhà trường SVTH: Phạm Hồng Nguyên Page 38 TÀI LIỆU THAM KHẢO [1] Nguyễn Phương Lan, Hồng Đức Hải (2001), Lập trình Linux- Tập 1,NXB Giáo Dục [2] Ts Nguyễn Thái Sơn, Hệ điều hành nguồn mở Ubuntu – Linux, NXB Đại Học Quốc Gia TP Hồ Chí Minh [3] Richard Stones and Neil Matthew (2003), Beginning Linux Programming, 2nd Edition,Wrox Press [4] John Shapley Gray (January 13, 2003), Interprocess Communications in Linux®: The Noods & Crannies, Publisher Prentice Hall PTR [5] Demon Warlock, Võ Minh Mẫn (2012), Web Development: izwebz – Thiết kế web chuẩn [6] Budi Kerniawan, A Tutorial Servlet & JSP, Website: BraniySoftware.com [7] Patrick LeBlanc, Microsoft SQL Server 2012 – Step by Step, Ebook+ Exercises [8] Các tài liệu java, jsp, sevlet trang web o7planning - Địa chỉ: http://o7planning.org SVTH: Phạm Hồng Nguyên Page 39 PHỤ LỤC Phần hệ điều hành Source code: #include #include #include #include #include #include #include #define PIPE0_DOC con_toi_cha[0] #define PIPE0_GHI cha_toi_con[1] #define PIPE1_DOC cha_toi_con[0] #define PIPE1_GHI con_toi_cha[1] using namespace std; void read_file(void); void write_file(void); int sapxep_min(void); int mang[10][10]; int dem = 0; void read_file() //ham doc file { int j,i; SVTH: Phạm Hồng Nguyên Page 40 char input[20]; //mang gom 20 phan tu fstream file; doi tuong file file // vua doc tu file vua ghi du lieu vao file !- o day la tao file.open("input.txt",ios::in); //mo file doi so : 1- ten file; 2-Flat file o che mo, ghi if (!file) { cout >input) { if (strcmp(input,";")==0) //so sanh hai chuoi giong { mang[dem][i]='\0'; tang 1, cot la 0; //"\0=NULL" neu gap ky tu null, so hang dem++; i=0; } else { mang[dem][i]=atoi(input); gan vao mang i++; //chuyen ki tu doc duoc sang so kieu int va //tang bien dem hang len mot } SVTH: Phạm Hồng Nguyên Page 41 } file.close(); //dong file } void write_file() //Ham viet vao file { int i,j,m; // Open our file fstream outFile; outFile.open("input.txt",ios::out); for(i=0;i Đăng Nhập Tên tài khoản: Mật khẩu: Change this to a button or input when using this as a form > Đăng nhập SVTH: Phạm Hồng Nguyên Page 48 Đồ án Cơ sở ngành mạng| Copyright @2015 2016| Phạm Hồng Nguyên 12T4 - Hotline 0986799731 jQuery > Bootstrap Core JavaScript > Metis Menu Plugin JavaScript > Custom Theme JavaScript > 2.1.2 TrangChuGiaoVu.jsp Trang chủ Giáo vụ SỞ GIÁO DỤC VÀ ĐÀO TẠO THÀNH PHỐ ĐÀ NẴNG HỆ THỐNG QUẢN LÝ HỒ SƠ HỌC SINHTRƯỜNG TIỂU HỌC NGÔ SĨ LIÊN
container1 > SVTH: Phạm Hồng Nguyên Page 49 GIÁO VỤ menu > container -menu > THÔNG TIN GIÁO VỤ Tìm /btn-group > Go! > Do du lieu tai day > Cập nhật ngày 12/05/2016. panel heading > SVTH: Phạm Hồng Nguyên Page 50Họ tên: Trần Thị Lệ Hằng Email: hang@gmail.com Số điện thoại: 0912640403 Địa chỉ: 60 Trần Phú, Q.Hải Châu, TP.Đà Nẵng
Container- conten > - HẾT - SVTH: Phạm Hồng Nguyên Page 51 ... trình mạng 47 SVTH: Phạm Hồng Nguyên Page LỜI NÓI ĐẦU Đồ án Cơ sở ngành mạng đồ án quan trọng sinh viên khoa Công nghệ Thông Tin trường Đại học Bách Khoa – Đại học Đà Nẵng, học kỳ đồ. .. Phạm Hồng Nguyên Page 23 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG Phân tích hệ thống Website phục vụ việc quản lý hồ sơ học sinh trường tiểu học cụ thể hệ thống cung cấp cho người sử dụng người quản. .. tin học sinh + Cập nhật bảng điểm học sinh SVTH: Phạm Hồng Nguyên Page 26 2.3 Cơ sở liệu Cơ sở liệ gồm có bảng : +Giáo viên +Học sinh +Bảng điểm +Lớp học Nội dung liên kết bảng sau: Thuật toán