Đồ án môn học Xử lý phân bố
Trang 1Chương trình quản lý Trường Trung học cơ sở
Đồ án môn học Xử lý phân bố
Giáo viên hướng dẫn:
Nguyễn Trác Thức
Sinh viên thực hiện:
Nguyễn Minh Tuấn 07520389
Đỗ Hồng Hải 07520108
Trần Công Vương 07520422
Nguyễn Bá Chung 07520031
6/1/2011
Trang 22
Trang 3Mục Lục
Trang 4Lời Mở Đầu
Hiện nay công nghệ thông tin được xem là ngành công nghiệp mũi nhọn của các quốc gia, đặc biệt là các quốc gia đang phát triển, tiến hành công nhiệp hóa và hiện đại hóa như nước ta Sự bùng nổ thông tin và sự phát triển mạnh mẽ của công nghệ kỹ thuật
số yêu cầu muốn phát triển thì phải tin học hóa vào tất cả các ngành các lĩnh vực.
Cùng với sự phát triển nhanh chóng phần cứng máy tính, các phần mềm càng ngày trở nên đa dạng, phong phú, hoàn thiện hơn và hỗ trợ hiệu quả hơn cho con
người.các phần mềm hiện nay ngày càng mô phỏng được rất nhiều nghiệp vụ khó khăn,
hỗ trợ cho người dùng thuận tiện sử dụng, thời gin xử lý nhanh chóng, và một số nghiệp
vụ được tự động hóa cao.
Do vậy mà việc phát triển phần mềm, sự đòi hỏi không chỉ là sự chính xác, xử lý được nhiều nghiệp vụ thực tế mà còn phải đáp ứng các nhu cầu khác như về tốc độ, giao diện than thiện, mô hình hóa được thực tế vào máy tính để người sử dụng tiện lợi, quen thuộc, tính tương thích cao, bảo mật cao (đối với các dữ liệu nhạy cảm),… Các phần mềm giúp tiết kiệm một lượng lớn thời gian, công sức của con người, và tăng đọ chính xác và hiệu quả trong công việc (nhất là việc sửa lỗi và tự động đồng bộ hóa).Qua thời gian, công nghệ mới không ngừng ra đời làm thay đổi mạnh mẽ cuộc sống Phần mềm
“Quản Lý Trường Trung Học Cơ Sở” sử dụng kỹ thuật xứ lý phân bố RMI, ra đời với mong muốn góp phần nâng cao chất lượng công việc, tạo một cái nhìn khách quan cho công cuộc tin học hóa.
Lời cuối, chúng em xin chân thành cảm ơn những chỉ bảo, hướng dẫn tận tình cũng như những đóng góp bổ ích của gỉang viên hướng dẫn
Nhóm thực hiện
4
Trang 5NHẬN XÉT CỦA GIÁO VIÊN
Trang 6
I. Giới thiệu
1. Bối cảnh thực hiện dự án
6
Trang 7Việc quản lý học vụ trong trường trung học cơ sở Nếu không có sự hỗ trợ của tin học, việc quản lý này cần khá nhiều người, chia thành nhiều khâu, mới có thể quản lý được toàn bộ hồ sơ, học sinh (thông tin, điểm số, kỷ luật, học bạ,…), lớp học (sỉ số, GVCN, thời khóa biểu,…), giáo viên (thông tin, lịch dạy,…), … cũng như các nghiệp vụ sắp thời khóa biểu, tính điểm trung bình, xếp loại học lực cho học sinh toàn trường (số lượng học sinh có thể lên đến ha ba ngàn học sinh) Các công việc này đòi hỏi nhiều thời gian và công sức, mà sự chính xác và thống kê, và hiệu quả không cao, vì đa số đều làm bằng thủ công rất ít tự động một số nghiệp vụ như tra cứu, thống kê và hiệu chỉnh thông tin khá vất vả Ngoài ra còn có một số khó khăn về vấn đồ lưu trữ khá đồ sộ, dễ thất lạc, tốn kém,….Trong khi đó, các nghiệp vụ này hoàn toàn có thể tin học hóa một cách dễ dàng.Với sự giúp đỡ của tin học, việc quản lý học vụ sẽ trở nên đơn giản, thuận tiện, nhanh chóng và hiệu quả hơn rất nhiều.
Công nghệ phần mềm đã mang lịa những lợi ích vô cùng to lớn cho con người Do
đó, chúng ta cần đẩy mạnh việc sản xuất, thiết kê, thử nghiệm và phát triển phần mềm ứng dụng trong mọi lĩnh vực Để góp phần tin học hóa quản lý, chúng em đã xay dựng phần mềm “Quản lý trường Trung Học Cơ Sở” với mục tiêu có thể thể ứng dụng và mang lại hiệu quả công tác quản lý cho các trường THCS
• Đáp ứng nhu cầu về mặt dữ liệu cho máy con Như là cung cấp các dữ liệu
để hiện thị trên các máy con
• Lưu trữ các thao tác giữa các máy Client và máy chủ
Về phía máy con:
Trang 8Thiết kế hệ thống phần mềm quản lý trường THCS nhằm hỗ trợ phòng đào tạo của các trường THCS những nghiệp vụ sau:
• Được xây dựng dựa trên mô hình 3 lớp: Tầng giao diện(GUI/Presentation), tầng chứa xử lý Logic (Business logic Layer), tầng kết nối với máy chủ (Data access layer)
• Hỗ trợ phòng đào tạo các trường THCS quản lý và lưu trữ thông tin các học sinh và điểm các môn học
• Lập danh sách học sinh và điểm từng môn
• Lưu lại thông tin của các học sinh qua từng năm học
• Hỗ trợ tra cứu nhanh các thông tin về học sinh và điểm các môn học
• Hỗ trợ việc tính điểm tổng kết qua từng học kỳ và năm học và lưu lại thông tin đó qua từng năm
Vì vậy, nếu không có sự hỗ trợ của tin học, các yêu cầu trên đòi hỏi nhiều thời gian, công sức và nguồn nhân lực, độ chính xác và hiệu quả không cao Do vậy, phải xây dựng một hệ thống quản lý trường THCS để phòng đào tạo của các trường THCS quản lý các yêu cầu nghiệp vụ trên dễ dàng và hiệu quả, đơn giản và nhanh chóng
3. Phạm vi của dự án
Yêu cầu về hệ thống:
- Xây dựng một hệ thống an toàn và chất lượng Đảm bảo việc sao lưu dữ liệu tránh rủi ro, mất mát dữ liệu
- Tương thích với hệ thống máy tính của các trường THCS
Yêu cầu về chất lượng:
- Thực hiện đúng và đầy đủ các chức năng
- Tốc độ truy xuất và lưu trữ dữ liệu nhanh
- Giao diện thân thiện, dễ sử dụng và thao tác
- Tương thích với hệ thống máy tính của các trường THCS
- Phần mềm phải được thiết kế mở để tiện nâng cấp sau này
8
Trang 9II. Những hiểu biết cần thiết để làm được đồ án
1. Kiến thức cơ bản về Java:
Phần này chỉ nhắc lại những kiến thức cần sử dụng và chỉ nêu ra những thứ mà đồ
án sử dụng
a. Layout Manager
Hiểu biết kỹ về các loại layout để tiện cho việc thiết kế giao diện cho phần mềm
b. Các đối tượng khung chứa Container
Hiểu biết về các loại khung chứa như FrameView, JPanel…
Trang 102. Kiến thức về JDBC
Cần có kiến thức về JDBC(Java DataBase Connectivity), mô hình chi tiết kiến trúc của JDBC, JDBC Interface và mô hình của nó … Kiến thức cơ bản này sẽ hỗ trợ việc truy xuất cơ sở dữ liệu được dễ dàng hơn
3. Kiến thức về RMI
a. Giới thiệu:
- Lập trình đối tượng phân tán là một trong những vấn đề nóng bỏng của công nghệ phân tán phần mềm ngày nay Java là ngôn ngữ đi tiên phong trong việc giải quyết vấn đề lập trình phân tán
- Thông thường các chương trình của chúng ta được viết dưới dạng thủ tục hoặc hàm và việc các hàm gọi lẫn nhau, truyền tham số hay kết quả cho nhau chỉ xảy ra ở máy cục bộ Kỷ thuật RMI (Remote Method Invoke) – mang ý nghĩa triệu gọi phương thức từ xa – là cách thức giao tiếp giữa các đối tượng trong Java có mã lệnh cài đặt nằm trên các máy khác nhau có thể triệu gọi lẫn nhau
Mô hình triệu gọi các đối tượng từ xa
- Việc gọi phương thức của đối tượng từ xa luôn phức tạp hơn gọi
d. VAI TRÒ CỦA CÁC LỚP TRUNG GIAN ( STUB VÀ SKELETION )
- Để giải quyết vấn đề trên, đối tượng trên hai máy khác nhau không gọi trực tiếp mà thông qua lớp trung gian Lớp này tồn tại ở cả hai phía
10
Trang 11Client và Server Lớp ở máy Client gọi là Stub, lớp ở máy Server gọi là Skel (Skeletion).
- Các phương thức sử dụng trong chương trình:
o exportObject(Object) : nằm trong lớp UnicastRemoteObject
Phương thức này làm cho máy ảo Java nhận diện được đối tượng Object
Để sử dụng được lớp UnicastRemoteObject phải khai báo: import java.rmi.server.*;
o bind(URLString, Object) thuộc lớp Naming
- URLString: Chuỗi định vị có dạng như sau:
rmi://hostName:port/ObjectName Trong đó: rmi: là tên giao thức dùng để đăng ký
hostName, port: là địa chỉ IP và số hiệu cổng nơi máy chủ nơi bộ đăng ký đối tượng rmi đang chạy
ObjectName: là tên bất kỳ gợi nhớ để đặt cho đối tượng Các chương trình máy khách sẽ dựa vào tên này để truy tìm tham chiếu đến đối tượng cần dùng
- Object: Tên đối tượng
Phương thức bind() dùng để đăng ký một tên gợi nhớcho đối tượng Object với bộ quản lý rmi
o lookup(rmi://hostName:port/ObjectName) Phương thức này thuộc lớp Naming Đối số là chuỗi định dạng cho biết địa chỉ máy chủ và tên đăng ký đối tượng
- Việc truyền tham số qua mạng theo cơ chế RMI lại khác với cách truyền tham số thông thường
- Tất cả các kiểu dử liệu đơn giản như int,char… đều được truyền theo tham trị
- Tất cả các dử liệu kiểu đối tượng muốn truyền qua mạng đều buộc phải cài đặt một trong hai giao tiếp Remote hoặc Serializable
- Các đối tượng cài đặt giao tiếp Remote sẽ được truyền theo tham chiếu còn các đối tượng cà đặt giao tiếp Serializable sẽ được tuyền theo tham trị
- Do java cho phép một đối tượng có thể cài đặt cùng lúc nhiều giao tiếp interface khách nhau nên đối tượng có thể cài đặt cùng lúc hai giao tiếp Serializable và Remote
Trang 12- Khi đó nếu không dùng UnicastRemoteObject.exportObject() để đăng
ký đối tượng cho máy ảo Java thì đối tượng sẽ được truyền theo tham trị, ngược lại đối tượng sẽ được truyền theo tham chiếu
- Java cung cấp cho bạn khả năng ghi toàn bộ đối tượng xuống một tập tin Sau đó bạn có thể đem tập tin chứa đối tượng đi khắp nơi nếu cần thì khôi phục đối tượng về trạng thái ban đầu Đối tượng trong bộ nhớ
có thể quan hệ chằng chịt với nhau nhưng khi được ghi xuống tập tin thì bắt buộc phải trải phẳng đối tượng theo thứ tự
- Trong Java đối tượng muốn có khả năng ghi và lưu dữ liệu thành tập tin phải cài đặt giao tiếp java.io.Serializable Nếu đối tượng cần ghi chứa bên trong nhiều đối tượng con khác thì Java lấy tất cả các đối tượng con ghi luôn xuống đĩa
4. Kiến thức về mô hình 2tier, 3 layers
a. Mô hình 3layer ( sử dụng trong thiết kế xử lý client và server)
i. GUI: nhập liệu, trình bày dữ liệu, kiểm tra trính đúng dắn của dữ liệu trước khi gọi Business Logic Layer
ii. Business Logic Layer: đáp ứng các yêu cầu thao tác dữ liệu của GUI, kiểm tra các yêu cầu nghiệp vụ trước khi cập nhật dữ liệu.iii. Data Access Layer: kết nối và thao tác với CSDL
12
Trang 13b. Mô hình 2tier (sử dụng trong kết nối máy chủ - máy trạm)
i. Client kết nối đến server thông qua RMI
ii. Server sẽ thao tác với cơ sở dữ liệu và trả kết quả về cho client
Trang 15III. Yêu Cầu
1. Yêu cầu nghiệp vụ
Người dùng sẽ nhập điền đầy
đủ thông tin vào form sau đó nhấn nút để lưu xuống cơ sở
dữ liệu
mềm sẽ lần lượt xếp tất cả những học sinh đang ở lớp nhập học vào các lớp 6
nhập phải nhỏ hơn 10 và lớn hơn 0
Sau khi người dùng nhập và lựa chọn đầy đủ thông tin trên form nhấn nút để nhập điểm cho học sinh đó
nhập phải nhỏ hơn 10 và lớn hơn 0
Sau khi người dùng nhập và lựa chọn đầy đủ thông tin trên form, có để nhấn vào nút xem đểm để xem các điểm quá trình của học sinh đó sau khi chắc chắn nhấn nút để nhập điểm cho học sinh đó
tổng kết Lưu trữ thông tin và nhấn nút để nhập Người dùng sẽ lựa chọn các
điểm tổng kết cho nguyên 1
lớp
thông tin sau đó nhấn nút xác nhận để thực hiện quá trình xét lên lớp, Người dùng phải xác nhận lại lớp tiếp theo
những thông tin: Họ tên, địa chỉ, Email, Lớp, Ngày Sinh
Người dùng chỉ cần nhập vào những thông tin đã biết của học sinh là có thể tìm được chính xác học sinh đó
Trang 168 Danh sách lớp Kết xuất Thống kê
danh sách tất
cả học sinh hiện tại của 1 lớp
Người dùng chọn 1 lớp để lấy danh sách của lớp đó
học, năm học, học kỳ
Người dùng lựa chọn đầy đủ thông tin chọn xác nhận để thấy được những báo cáo về
môn học
học, lớp thông tin sẽ lấy danh sách Người dùng lựa chọn đủ
điểm tổng kết của các học sinh trong lớp đó
đủ thông tin về bảng điểm
Điểm
Kết xuất Lựa chọn năm
học, học kỳ, lớp
Người dùng lựa chọn đủ thông tin sẽ có được thông tin
về điểm của từng học sinh
2. Yêu cầu chức năng
1 Chỉnh sửa chuỗi config Người dùng nhập vào thông
tin máy chủ Sau khi đã kết nối với máy chủ người dùng
môn học cho học sinh
16
Trang 17cho học sinh theo từng môn
học
6 Nhập điểm tổng kết Người dùng xác nhập muốn
thực hiện tính toán và nhập điểm cho cả lớp
lớp của 1 lớp
kiếm thông tin học sinh dựa trên 1 số thông tin đã biết
biểu mẫu liên quan
10 Danh sách học sinh Cho phép in ra danh sách học
sinh
điểm của 1 lớp
12 Thay đổi quy định Cho phép người dùng thay
đổi các thông tin quy định về
hệ thống
3. Yêu cầu phi chức năng
có thể thay đổi những thông tin đã nhập
đổi điểm
sau khi đã nhập điểm môn học có thể sửa lại điểm nhưng với điều kiện
là chưa nhập điểm thi của môn học đó
đổi điểm thi
sau khi nhập
Trang 18điểm thi có thể thay đổi điểm
cứu trực quan
Tiện dụng Hỗ trợ khả
năng trả cứu nhiều thông tin 1 lúc trả về kết quả chính xác
IV. Thiết Kế Xử Lý (DFD)
18
Trang 191. Sơ đồ hệ thống con của quy trình
2. Giải thích các dòng dữ liệu lưu chuyển
1 Thông tin học sinh
2 Danh sách học sinh
3 Thông tin điểm của từng môn
4 Danh sách điểm của từng môn
5 Thông tin tra cứu của học sinh
6 Kết quả tra cứu của học sinh
3. Các mô hình DFD
Mô hình DFD cấp 1:
Mô hình DFD cấp 2:
Trang 2222
Trang 23 clientqltruonghoc.ClientQLTruongHocAboutBox
Trang 24VI. Thiết Kế Dữ Liệu
1. Mô hình thực thể ERD
2. Thuyết minh cho thực thể ERD
Thuộc tính mô tả cho các thực thể
- Thực thể KHOILOP: Mã khối, Tên khối
- Thực thể MONHOC: Mã môn học, Tên môn học, Qui định số tiết học liên tiếp tối thiểu, Qui định số tiết học liên tiếp tối đa
- Thực thể DIEMHANGNGAYMON: Mã điểm hàng ngày môn, Số điểm hàng ngày môn, Hệ số
- Thực thể HOCKY: Tên học kỳ
24
Trang 25- Thực thể NAMHOC: Năm học.
- Thực thể TONGKETNAM: Điểm tổng kết năm
- Thực thể TONGKETHOCKY: Điểm tổng kết học kỳ
- Thực thể DIEMHOCMON: Điểm thi, điểm tổng kết môn
Về cách qui định đặt thuộc tính tham gia làm khóa chính cho các thực thể
- Thực thể TINHTHANHPHO có mã Mã tỉnh thành phố là khóa chính
- Thực thể QUANHUYENTHIXA có mã Mã quận huyện thị xã là khóa chính
- Thực thể XAPHUONGTHITRAN có mã là Mã xã phường thị trấn là khóa chính
- Thực thể HOCSINH có Mã học sinh là khóa chính
- Thực thể LOP có Mã lớp là khóa chính
- Thực thể KHOILOP có Mã khối là khóa chính
- Thực thể MONHOC có Mã môn học là khóa chính
- Thực thể DIEMHANGNGAYMON có Mã điểm hàng ngày môn là khóa chính
- Thực thể HOCKY có Tên học kỳ là khóa chính
- Thực thể NAMHOC có Năm học là khóa chính
- Thực thể TONGKETNAM lấy khóa chính của thực thể HOCSINH và NAMHOC làm khóa chính
- Thực thể TONGKETHOCKY lấy khóa chính của các thực thể HOCSINH, NAMHOC, HOCKY làm khóa chính
- Thực thể DIEMHOCMON lấy khóa chính của các thực thể HOCSINH, HOCKY, MONHOC, NAMHOC làm khóa chính
3. Sơ đồ Logic
Trang 264. Thiết kế:
a. Thiết kế mô hình dữ liệu
Chuyển đổi từ mô hình ER sang mô hình quan hệ
Mỗi quan hệ tỉnh thành phố được xác định bởi một mã tỉnh thành phố.Thông tin cần lưu trữ còn lại là tên tỉnh thành phố
Mỗi quan hệ quận huyện, thị xã được xác định bởi một mã quận huyện thị xã Thông tin cần lưu trữ còn lại là tên quận huyện thị xã và tên tỉnh thành phố
26
Trang 27Mỗi quan hệ xã phường thị trấn được xác định bởi mã xã phường thị trấn Thông tin cần lưu trữ còn lại là tên xã phường thị trấn và tên quận huyện thị xã.
- HOCSINH(MaHS, MatKhau, HoHS, TenHS, GioiTinh, NgaySinh, Email, DiaChi, TenXPTT)
Quan hệ học sinh được xác định duy nhất bởi mã học sinh.Các thông tin còn lại cần lưu trữ là mật khẩu đăng nhập hệ thống, họ của học sinh, tên của học sinh, giới tính, ngày sinh, địa chỉ email và địa chỉ nhà
- KHOILOP(MaKhoi, TenKhoi)
Mỗi quan hệ khối lớp được xác định duy nhất bởi mã khối.Thông lưu trữ còn lại là tên khối
- LOP(MaL, TenL, MaKhoi)
Quan hệ lớp được xác định duy nhất bởi mã lớp.Thông tin lưu trữ còn lại là tên lớp và tên khối
- MONHOC(MaMH, TenMH, QuiDinhSoTietHocLienTiepToiThieu, QuiDinhSoTietHocLienTiepToiDa)
Quan hệ môn học được xác định duy nhất bởi mã môn học.Các thông tin cần lưu trữ còn lại là tên môn học, qui định số tiết học liên tiếp tối thiểu và qui định
số tiết học liên tiếp tối đa của môn học nào đó
- DIEMHANGNGAYMON(MaDHNM, DHNM, HeSo, MaHS, TenHK, NamHoc, MaMH)
Mỗi quan hệ điểm hàng ngày môn được xác định duy nhất bởi mã điểm hàng ngày môn, số điểm hàng ngày môn, tên học sinh, tên học kỳ, năm học, tên môn học và hệ số của điểm đó
- DIEMHOCMON(MaHS, TenHK, MaMH, NamHoc, Thi, TongKetMon)