Viết chương trình cho giáo viên dựa trên mô hình Client-Server gồm các modul
Trang 1Luận văn tốt nghiệp Phân tích đề tài
Trang 53
Phần 2 : Phân Tích Đề Tài
I Nội dung đề tài
Viết chương trình cho giáo viên dựa trên mô hình Client – Server gồm các modul
Soạn câu hỏi trắc nghiệm
Quản lý ngân hàng đề và soạn đề thi
Trắc nghiệm và quản lí thông tin của người thi
II Yêu cầu của đề tài
Dựa vào nội dung của đề tài đặt ra ,chúng ta cần xây dựng một chương trình ứng dụng
dựa trên các yêu cầu sau :
Xây dựng một chương trình theo mô hình Client – Server, toàn bộdữ liệu liên quan
đến hệ thống được lưu trữ trên Server, việc truy cập và truyền dữ liệu được thực hiện thông
qua mạng nhằm phục vụ cho việc kiểm tra trắc nghiệm, cập nhật cơ sở dữ liệu
Hệ thống ngân hàng đề thi trắc nghiệm quản lí, lưu trữ tất cả các câu thi, đề thi của
giáo viên để kiểm tra trắc nghiệm, đồng thời hệ thống cũng quản lí, lưu trữ các nhóm người sử
dụng và kết quả thi của sinh viên Mỗi đề thi có một mức kiểm tra khác nhau, phù hợp với
trình độ của người sử dụng, nội dung muốn kiểm tra và hình thức ra đề
Thông qua trình duyệt Web, người sử dụng hệ thống ngân hàng đề thi trắc nghiệm
có thể thực hiện các thao tác phù hợp với các chức năng mà hệ th ống ngân hàng đề thi trắc
nghiệm cho phép Người sử dụng, tùy theo mức độ cho phép của hệ thống ngân hàng đề thi
trắc nghiệm mà có các quyền thao tác trên hệ thống khác nhau
Đối tượng sử dụng hệ thống ngân hàng đề thi trắc nghiệm này gồm : Người quản trị
chung , Giáo viên , Sinh viên
III Giải quyết các yêu cầu của đề tài
Vì chương trình xây dựng theo mô hình Client – Server ,việc truy xuất, truyền dữ liệu
qua mạng thông trình duyệt web Do đó chương trình của ta có liên quan đến các vấn đề sau
Trang 2Luận văn tốt nghiệp Phân tích đề tài
Open Systems Interconnection) dùng để phân lớp kiến trúc mạng Theo mô hình OSI, thông tin muốn gửi hay nhận qua mạng phải đi qua 7 lớp Mỗi lớp
có một chức năng khác nhau và cung cấp các interface để cáclớp phía trên có thể sử dụng
các dịch vụ mà lớp này cung cấp
1.1.Mô hình mạng OSI
Hình II.1.1
Application layer : chứa các dịch vụ phục vụ cho người dùng như
truyền nhận file hay
email …
Presentation layer : chứa các dịch vụ về thao tác dữ liệu như
nén, giải nén … Cấp này
không có các dịch vụ thông tin của riêng nó
Session layer : chứa các dịch vụ cho phép trao đổi thông tin
giữa các quá trình, tạo và
Trang 3kết thúc kết nối của các quá trình trên các máy khác nhau
Transport layer : chứa các dịch vụ tìm và sửa lỗi nhằm bảo
đảm tính đúng đắn của dữ
liệu nhận
Network layer : quản lý việc kết nối trong mạng liên quan đến
địa chỉ của máy tính gửi
và máy tính nhận cũng như sự tắc ngẽn giao thông của mạng
Datalink layer : bảo đảm các gói dữ liệu được gửi đi thông qua
mạng vật lý
Physical layer : phục vụ cho việc gửi các dữ liệu là các bit thô
thông qua kênh truyền
Do đặc tính của mô hình OSI, dữ liệu gửi phải đi qua tất cả 14 cấp để đến được chương
trình nhận Ở mỗi cấp, dữ liệu sẽ bị trễ một khoảng thời gian Điều này làm giảm hiệu suất
của mạng Mô hình TPC/IP có ưu điểm hơn và hiện đang được sửdụng rộng rãi
1.2.Mô hình mạng TCP/IP
Hình II.1.2
Để đảm bảo việc truy cập, truyền dữ liệu trên mạng là
không mất mát, các gói dữ liệu
đến đích phải theo đúng thứ tự đã được gởi và các máy tính chạy trên mạng Internet truyền
thông với nhau dùng các protocol TCP, UDP Do đó ta sử dụng mô hình mạng TCP/IP gồm
bốn lớp được mô tả bằng hình II.1.2
Application layer : chứa các ứng dụng có sử dụng mạng Lớp
này tương ứng với hai
lớp trên cùng (application và presentation layer) của mô hình OSI Application Layer
Transport layer : cung cấp các dịch vụ truyền nhận dữ liệu
giữa các quá trình với nhau
Các quá trình này có thể trao đổi thông tin với nhau thông qua địa chỉ của máy tính gửi/ nhận
và cổng thông tin Cấp này tương ứng với 2 cấp kế tiếp
(session và transport layer) của mô
hình OSI
Trang 4Network layer : đảm nhận việc xác định, tìm đường và phân
phối các gói thông tin tới
địa chỉ đích Network layer trong mô hình TCP/IP tương ứng với hai lớp network và datalink
của mô hình OSI
Physical layer : sử dụng các giao tiếp chuẩn hiện có như
Ethernet, Tokenking,… để
phục vụ cho việc gửi và nhận dữ liệu
Các thành phần liên quan đến mạng
Host : là một máy tính riêng lẻ trên mạng Mỗi host trên
mạng TCP/IP chỉ có duy
nhất một địa chỉ IP (IP number)
Hostname : Đó là một tên tượng trưng có thể ánh xạ vào
trong IP number Một vài
phương thức tồn tại biểu diễn cho ánh xạ đó, như là DNS
(Domain Name Service) và Sun's
NIS (Network Information Service)
IETF : Internet Engineering Task Force là một nhóm chịu trách
nhiệm cho việc duy
trì chuẫn Internet và định nghĩa một chuẫn mới
internet : là một mạng của nhiều mạng Khi viết bằng chữ
in hoa (Internet), nó quy
chiếu đến toàn bộ mạng có mối liên hệ với nhau của nhiều mạng
IP number : là địa chỉ duy nhất cho mỗi host trên Internet Nó
được biểu diễn bằng
một số nguyên 32bits
packet : là một thông điệp riêng lẻ gởi trên mạng Đôi khi
packet quy chiếu đến
datagram, nhưng giới hạn cũ luôn luôn quy chiếu đến dữ liệu ởtại lớp mạng và sau đó quy
chiếu thông điệp đến lớp cao hơn
protocol : Tập hợp các định dạng dữ liệu và các thông điệp
được sử dụng để chuyển
thông tin Những thực thể mạng khác nhau phải cùng một protocol theo trật tự để những thực
thể mạng khác có thể hiểu được
Luận văn tốt nghiệp Phân tích đề tài
Trang 57
socket : là một sự truyền thông endpoint Trong mô hình TCP/IP
một socket thường
thì được xác định bởi một cặp trùng khớp duy nhất của địa chỉ IP nguồn, số port và địa chỉ IP
đích, số port
router : Một host mà được biết đến đối với các package trả
về giữa các mạng khác
nhau như thế nào Một router có thể trở thành một điều gì đó đơn giản như là một máy với
Trang 5hai giao diện mạng (mỗi cái trên một mạng vật lý khác nhau)
Port number: nằm trong khoảng 0-65535(vì port được biểu diễn
bằng số nguyên
16bits) Những port nằm trong khoảng 0-1023 là những port dành riêng cho những dịch vụ
quen thuộc như HTTP, FTP, và các dịch của hệ thống, không nên dùng những port này trong
ứng dụng của chúng ta
Khi chúng ta viết các chương trình java truyền qua mạng điều này có nghĩa là chúng ta
đang lập trình ở lớp Application Chúng ta cần quan tâm tới các protocol TCP và UDP … Mà
chúng ta có thể dùng các lớp trong package java.net Các lớp này cung cấp việc truyền thông
qua mạng độc lập với hệ thống Tuy nhiên chúng ta cần hiểu rõ sự khác biệt giữa TCP và
UDP để xác định rõ những lớp nào trong thư viện java mà
chúng ta sử dụng
Khi muốn hai chương trình truyền dữ liệu cho nhau một cách
đáng tin cậy thì giữa chúng
phải thiết lập một connection và gữi dữ liệu qua lại thông qua connection đó
TCP là một protocol dựa trên connection cung cấp các dataflow giữa hai máy tính và
đảm bảo rằng data được gữi từ một đầu connection tới đầu kia không mất mát và đúng thứ tự
(nếu có lỗi thì sẽ được thông báo)
Những ứng dụng yêu cầu một kênh truyền point-to-point đáng tin cậy đều dùng TCP
.HyperText Transfer Protocol (HTTP), File Transfer Protocol (ftp) và
Trang 6message độc lập với nhau
Do đó ta có thể định nghĩa : UDP là một protocol gữi những package độc lập gọi là
các datagram từ máy này tới máy khác, không đảm bảo data đến thành công UDP không dựa
tới đúng cho từng ứng dụng
Trong việc truyền nhận data dựa trên connection, một ứng dụng thiết lập một
connection với một ứng dụng khác bằng cách gắn một socket cho mỗi port number Do đó sẽ
không thể có hai ứng dụng dùng chung một port
Thông qua các lớp trong package java.net của ngôn ngữ Java, cácchương trình viết
bằng Java có thể dùng TCP hay UDP để truyền nhận data qua mạng
Trong package java.net có URL, URLConnection, Socket và
Trang 7ảnh đó, sau đó dùng một số hàm cần thiết để connect và truy xuất file ảnh đó
Điểm nỗi bật của networking do Java mang lại là tính hữu dụng và dể sử dụng, điều
này được thể hiện qua package java.net trong các lớp thư viện của java
2 Các mô hình cơ sở dữ liệu
Luận văn tốt nghiệp Phân tích đề tài
Trang 59
Nhìn chung mọi ứng dụng cơ sở dữ liệu đều bao gồm các phần :
Thành phần xử lý ứng dụng (Application processing
components)
Thành phần phần mềm cơ sở dữ liệu (Database software components) •
Bản thân cơ sở dữ liệu (The database itself)
Thông thường có 5 mô hình kiến trúc dựa trên cấu hình phân tán về truy nhập dữ liệu
của hệ thống máy tính Client/Server :
Mô hình cơ sở dữ liệu tập trung (Centralized database model)
Mô hình cơ sở dữ liệu theo kiểu file-server(File – server database model)
Mô hình xử lý từng phần cơ sở dữ liệu (Database extract processing model)
Mô hình cơ sở dữ liệu Client/Server (Clent/Server database model)
Mô hình cơ sở dữ liệu phân tán (Distributed database model)
2.1.Mô hình cơ sở dữ liệu tập trung (Centralized database
model):
Trong mô hình này các thành phần xử lý ứng dụng, phần mềm cơ sở dữ liệu và bản thân
cơ sở dữ liệu đều ở trên cùng một bộ xử lý
Ví dụ người dùng máy tính cá nhân có thể chạy các chương trình ứng dụng có sử dụng
phần mềm cơ sở dữ liệu Oracle để truy nhập tới cơ sở dữ liệunằm trên điã cứng của máy tính
cá nhân đó Từ khi các thành phần ứng dụng, phần mềm cơ sở dữ liệu và bản thân cơ sở dữ
liệu cùng nằm trên một máy tính thì ứng dụng đã thích hợp với mô hình tập trung
Hầu hết công việc xử lý luồng thông tin chính được thực hiện bởi nhiều tổ chức mà vẫn
phù hợp với mô hình tập trung Ví dụ một bộ xử lý mainframe chạy phần mềm cơ sở dữ liệu
IMS hoặc DB2 của IBM có thể cung cấp cho các trạm làm việc
ở các vị trí phân tán sự truy
cập nhanh chóng tới cơ sở dữ liệu trung tâm Tuy nhiện trong rất nhiều hệ thống như vậy, cả 3
thành phần của ứng dụng cơ sở dữ liệu đều thực hiện trên cùng 1 máy mainframe do vậy cấu
Trang 8hình này cũng tương tự mô hình tập trung
2.2.Mô hình cơ sở dữ liệu theo kiểu file – server( File – server
cơ sở dữ liệu
2.3.Mô hình xử lý từng phần cơ sở dữ liệu (Database
extract processing model) :
Trong một mô hình khác trong đó một cơ sở dữ liệu ở xa có thể được truy cập bởi phần
mềm cơ sở dữ liệu, được gọi là xử lý dữ liệu từng phần Với mô hình này, người sử dụng có
thể tại một máy tính cá nhân kết nối với hệ thống máy tính
ở xa nơi có dữ liệu mong muốn
Người sử dụng sau đó có thể tác động trực tiếp đến phần mềm chạy trên máy ở xa và tạo yêu
cầu để lấy dữ liệu từ cơ sở dữ liệu đó Người sử dụng
cũng có thể chuyển dữ liệu từ máy tính
Trang 9ở xa về chính máy tính của mình và vào điã cứng và có thể thực hiện việc sao chép bằng
phần mềm cơ sở dữ liệu trên máy cá nhân
Với cách tiếp cận này, người sử dụng phải biết chắc chắn làdữ liệu nằm ở đâu và làm
như thế nào để truy nhập và lấy dữ liệu từ một máy tính ở
xa Phần mềm ứng dụng đi kèm
cần phải có trên cả 2 hệ thống máy tính để kiểm soát để kiểm soát sự truy cập và chuyển dữ
liệu giữa 2 hệ thống Tuy nhiên, phần mềm cơ sở dữ liệu chạy trên 2 máy không cần biết
rằng việc xử lý cơ sở dữ liệu từ xa đang diễn ra vì người sử dụng tác động tới chúng một cách
một máy có thành phần xử lý ứng dụng Nhưng phần mềm
cơ sở dữ liệu được tách ra giữa hệ
thống Client chạy các chương trình ứng dụng và hệ thống Server lưu trữ dữ liệu
Luận văn tốt nghiệp Phân tích đề tài
và gửi trả kết quả cho máy Client
Mới nhìn, mô hình cơ sở dữ liệu Client/Server có vẻ giống như mô hình file -server, tuy
nhiên mô hình Client/Server có rất nhiều thuận lợi hơn mô hình file-server Với mô hình file-
server, thông tin gắn với sự truy cập cơ sở dữ liệu vật lý phải chạy trên toàn mạng Một giao
tác yêu cầu nhiều sự truy cập dữ liệu có thể gây ra tắc nghẽn lưu lượng truyền trên mạng
Giả sữ một người dùng cuối tạo một query để lấy dữ liệu tổng số, yêu cầu đòi hỏi lấy
dữ liệu từ 1000 bản ghi, với cách tiếp cận file-server nội dung của tất cả 1000 bản ghi phải
đưa lên mạng, vì phần mềm cơ sở dữ liệu chạy trên máy ngườisử dụng phải truy cập từng bản
ghi để thoã mãn yêu cầu của người sử dụng Với cách tiếp cận cơ sở dữ liệu Client/Server, chỉ
Trang 10có query khởi động ban đầu và kết quả cuối cùng đưa lên mạng, phần mềm cơ sở dữ liệu
chạy trên máy lưu giữ cơ sở dữ liệu sẽ truy nhập các bản ghi cần thiết, xử lý chúng và gọi các
thủ tục cần thiết để đưa ra kết quả cuối cùng
Trong mô hình cơ sở dữ liệu Client/Server, thường nói đến các phần mềm front-end
software và back-end software Front-end software được chạy trên một máy tính cá nhân
hoặc một workstation và đáp ứng yêu cầu đơn lẽ riêng biệt, phần mềm này đóng vai trò của
Client trong ứng dụng cơ sở dữ liệu Client/Server và thực hiện các chức năng hướng tới nhu
cầu người dùng cuối cùng
Phần mềm Front-end software thường được chia thành các loại sau :
End user database software : Phần mềm cơ sở dữ liệu này có thể được thực hiện bởi
người sử dụng cuối trên chính hệ thống của họ để truy nhập các cơ sở dữ liệu cục bộ nhỏ cũng
như kết nối với các cơ sở dữ liệu lớn hơn trên cơ sở dữ liệu Server
Simple query and reporting software : Phần mềm này được thiết kế để cung cấp các
công cụ dễ dùng hơn trong việc lấy dữ liệu từ cơ sở dữ liệu và tạo các báo cáo đơn giản từ cơ
sở dữ liệu đã co ù
Data analysis software : Phần mềm này cung cấp các hàm về tìm kiếm, khôi phục,
chúng có thể cung cấp các phân tích phức tạp cho người dủng.Luận văn tốt nghiệp Phân tích đề tài
Trang 11Back-end software : Phần mềm này bao gồm phần mềm cơ sở dữ liệu Client/ Server
và phần mề m mạng chạy trên máy đóng vai trò là Server cơ sở dữ liệu
2.5.Distributed database model (Mô hình cơ sở dữ liệu phân
sở dữ liệu phân tán lại giả định bản thân cơ sở dữ liệu có
ở trên nhiều máy khác nhau
Qua các mô hình cơ sở dữ liệu trên, dễ thấy mô hình Clie
nt/Server là mô hình phù
hợp các yêu cầu đặt ra nhất Vấn đề ở đây là chúng ta sẽ hiện thực mô hình này bằng ngôn
ngữ gì và hiện thực như thế nào Các ngôn ngữ lập trình có thể xây dựng những giao diện đẹp
và thuận tiện thì thường không có cơ sở dữ liệu tốt đi kèm, và thường hạn chế khả năng khi sử
dụng trên mạng diện rộng Các phần mềm về cơ sở dữ liệu có thể sử dụng mô hình
Client/Server thì thường đòi hỏi có tính chuyên nghiệp cao Và hầu hết các biện pháp này thì
đều có nhược diểm là phải có sự cài đặt trên máy đơn trước khi móc nối với Server Ngôn
ngữ Java đưa ra một hướng giải quyết đơn giản các vấn đề trên Với việc thực thi các Applet
nhúng trong trang Web, chúng ta không cần có bất cứ một sự cài đặt nào mà vẫn sữ dụng
được các tính năng của chương trình (Với điều kiện là có một trình duyệt Web và máy tính đã
được nối mạng) Do tính năng mạng là được cung cấp sẵn nên Java có thể dùng trên mạng
Internet dễ dàng Với tính độc lập nền, người sử dụng không phải e ngại việc phần mềm
không tương thích với hệ điều hành của mình Đặc biệt là Java có thể kết nối với hầu hết các
cơ sở dữ liệu chuẩn của các hãng phần mềm thông qua JDBC,
vì vậy cơ sở dữ liệu của hệ
thống có thể xây dựng bằng hệ cơ sở dữ liệu chuẩn, chẳng hạn Oracle để quản lý dữ liệu một
cách chặt chẽ (Ở đây chúng ta sẽ dùng cơ sở dữ liệu là Ms Access trong môi trường Window
Luận văn tốt nghiệp Phân tích đề tài
Trang 63
95) Mô hình quản lý ngân hàng đề thi trắc nghiệm được xây
dựng dựa theo mô hình
Trang 12Three-tier như hình II.2.5
Client là một chương trình chạy dưới dạng applet thông qua trình
duyệt web để kết
nối và gởi các yêu cầu đến server
Server là một chương trình chạy dưới dạng application, có
nhiệm vụ sẽ lắng nghe,
phục vụ các yêu cầu từ client, trả kết quảvề cho client và là cầu nối trung gian tới cơ sở dữ
liệu
Database Server là phần cơ sở dữ liệu của hệ thống dùng
để lưu trữ tất cả các dữ
liệu liên quan đến hệ thống Ta sẽ sử dụng Access để tạo ra các cơ sở dữ liệu và kết nối với
server
Tất cả các dữ liệu đều được lưu trên máy Server (máy chủ),
việc kết nối, truy xuất cơ
sở dữ liệu thông qua JDBC
3 Sử dụng JDBC để tạo và truy xuất cơ sở dữ liệu
3.1 Thế nào là một cơ sở dữ liệu (Database)?
Hình II.2.5 Three-tier system structure
Luận văn tốt nghiệp Phân tích đề tài
với các mục đích khác nhau đồng thời truy cập và khai thác
3.2 Lấy dữ liệu ra từ cơ sở dữ liệu
SQL (Structure Query Language) là ngôn ngữ chuẩn về xử lý dữ liệu được ANSI và
ISO thừa nhận Hiện nay hầu hết các hệ cơ sở dữ liệu đều hổ trợ SQL SQL l à ngôn ngữ phi
thủ tục (non procedure language) : ta chỉ cần yêu cầu máy tính đưa ra những gì mà không cần
biết máy tính làm như thế nào Người sử dụng chỉ cần đưa ra một lệnh SQL sau đó hệ cơ sở