Luậ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
1. Networking
Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi các đường truyền vật
lý theo một kiến trúc nào đó .
Luận văn tốt nghiệp Phân tích đề tài
Trang 54
Trong thực tế là các máy tính trong mạng có thể chạy các hệ điều hành khác nhau trên
các nền phần cứng khác nhau . Do đó để có thể nói chuyện được với nhau, các quá trình
cần
phải dùng chung một phương thức giao tiếp (protocol) nào đó .
Tổ chức ISO (International Standards Organization) đã đưa ra mô hình tham khảo OSI (
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ác lớ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ó.
APPLICATION
LAYER
PRESENTATION
LAYER
SESSION LAYER
TRANSPORT LAYER
NETWORK LAYER
DATALINK LAYER
PHYSICAL LAYER
Sending
Application
Receiver
Application
SESSION LAYER
PRESENTATION
LAYER
APPLICATION
LAYER
TRANSPORT LAYER
NETWORK LAYER
DATALINK LAYER
PHYSICAL LAYER
Luận văn tốt nghiệp Phân tích đề tài
Trang 55
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à
kế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
HTTP,FTP,Telnet, SMTP
Transport Layer
TCP/IP,UDP
Physical Layer
EthernetX.25, Token Ring
Network Layer
IP
Receiving Data
Sending Data
Luận văn tốt nghiệp Phân tích đề tài
Trang 56
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 .
Network 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
hai 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à Telnet(telnet)là
những
ứng dụng đòi hỏi một hênh truyền đáng tin cậy, thứ tự gữi và nhận phải đảm bảo là điều
kiện
buộc phải có đối với ứng dụng này . Khi dùng HTTP để đọc từ một URL(Uniform
Resource
Location) dữ liệu cần phải nhận được theo đúng thứ tự mà nó gữi đi nếu không mọi thứ sẽ
bò
đảo lộn .
• UDP protocol cung cấp việc truyền nhận data không đảm bảo giữa hai ứng dụng trên
mạng . UDP không dựa trên connection như TCP . UDP gữi những package độc lập với
nhau
gọi là datagram từ ứng dụng này tới ứng dụng kia . Việc gữi nhưng datagram giống như
việc
Luận văn tốt nghiệp Phân tích đề tài
Trang 58
gữi thư thông qua bưu điện . Các package đến đích không theo thứ tự, không đảm bảo và
các
message độ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
trên connection như TCP .
Một máy tính nối mạng là một connection vật lý đối với mạng đó . Tất cả những dữ
liệu gữi cho máy tính thông qua connection đó . Tuy nhiên, dữ liệu có thể được gữi cho
những
ứng dụng khác nhau trên máy đó . Do đó làm cách nào để máy tính biết được ứng dụng
nào
sẽ nhận dữ liệu được gữi đến? . Điều này được giải quyết thông qua việc sử dụng port,
mỗi
ứng dụng mạng có một port tương ứng . Dữ liệu truyền qua mạng có kèm theo thông tin
đòa
chỉ nhằm xác đònh máy tính vàport đích. Mỗi máy tính được xác đònh bằng một đòa chỉ IP
32bits, IP protocol dùng đòa chỉ này để phân phát dữ liệu đúng cho từng máy . Port được
xác
đònh bằng một số 16bits . Các protocol TCP và UDP dùng port number để phân phát dữ
liệu
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ác chươ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à ServerSocket dùng TCP
và các lớp DatagramPackage, DatagramServer dùng UDP . Việc sử dụng những khả năng
mạng do Java support khá dể dàng so với C và C++ . Applet được nhúng trong các file
HTML
. Để chạy chương trình Applet qua mạng, trước hết chúng ta cần load các trang HTML
này về
máy cục bộ . Các Applet được nhúng trong trang HTML thông qua phần khai báo
APPLET .
Việc load các file ảnh và file audio được thực hiện thông qua lớp URL trong package
java.net.URL: Uniform Resource Location là đòa chỉ tài nguyên nào đó trên mạng. Để
load
một file ảnh từ mạng, đầu tiên trong chương trình Java cần tạo một URL chứa đòa chỉ tới
file
ả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ệu nằ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
hì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 database model) :
Trong mô hình cơ sở dữ liệu theo kiểu file – server các thành phần ứng dụng và phần
mềm cơ sở dữ liệu ở trên một hệ thống máy tính và các file vật lý tạo nên cơ sở dữ liệu
nằm
trên hệ thống máy tính khác . Một cấu hình như vậy thường được dùng trong môi trường
cục
bộ, trong đó một hay nhiều hệ thống máy tính đóng vai trò của server, lưu dữ các file dữ
liệu
cho hệ thống máy tính khác thâm nhập tới . Trong môi trường file – server, phần mềm
mạng
Luận văn tốt nghiệp Phân tích đề tài
Trang 60
được thi hành và làm cho phần mềm ứng dụng cũng như phần mềm cơ sở dữ liệu trên hệ
thống của người dùng cuối coi các file hoặc cơ sở dữ liệu trên file server thực sự như là
trên
máy tính chính họ .
Mô hình file server rất giống với mô hình tập trung . Các file cơ sở dữ liệu nằm trên
máy khác vơí các thành phần ứng dụng và phần mềm cơ sở dữ liệu ; tuy nhiên các thành
pphần ứng dụng và các phần mềm cơ sở dữ liệu có thể có cùng một thiết kế để vận hành
một
môi trường tạp trung . Thực chất phần mềm mạng đã làm cho phần mềm ứng dụng và
phần
mềm cơ sở dữ liệu tưởng rằng chúng đang truy xuất cơ sở dữ liệu trong môi trường cục
bộ .
Một nôi trường như vậy có thể phức tạp hơn mô hình tập trung bởi vì phần mềm mạng có
thể
phải thực hiện cơ chế đồng thời cho phép nhiều người sử dụng cuối có thể truy nhập vào
cùng
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
ở 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
độc lập .
2.4.Mô hình cơ sở dữ liệu Client/Server (Client/Server database model) :
Trong mô hình cơ sở dữ liệu Client/Server , cơ sở dữ liệu nằm trên một máy khác với
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
Trang 61
Trong mô hình này, các thành phần xử lý ứng dụng trên hệ thống Client đưa ra yêu cầu
cho phần mềm cơ sở dữ liệu trên máy client, phần mềm này sẽ kết nối với phần mềm cơ
sở
dữ liệu chạy trên Server . Phần mềm cơ sở dữ liệu trên Server sẽ truy cập vào cơ sở dữ
liệu
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ười sử 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ỉ
có 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 62
• Application development tools : Các công cụ này cung cấp các khả năng về ngôn ngữ
mà các nhân viên hệ thống thông tin chuyên nghiệp sử dụng để xây dựng các ứng dụng
cơ sở
dữ liệu của họ . Các công cụ ở đây bao gồm các công cụ về thông dòch, biên dòch đơn đến
các
công cụ CASE (Computer Aided Software Engineering ), chúng tự động tất cả các bước
trong
quá trình phát triển ứng dụng và sinh ra chương trình cho các ứng dụng cơ sở dữ liệu .
• Database administration Tools : Các công cụ này cho phép người quản trò cơ sở dữ
liệu sử dụng máy tính cá nhân hoặc trạm làm việc để thực hiện việc quản trò cơ sở dữ liệu
như
đònh nghóa các cơ sở dữ liệu, thực hiện lưu trữ hay phục hồi .
Back-end software : Phần mềm này bao gồm phần mềm cơ sở dữ liệu Client/ Server