I.1 Mô hình mạng OSI:
Application layer: chứa các dịch vụ phục vụ cho người dung như truyền
nhận file hay email…
Presentation: 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: 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 chủ 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 nghẽn giao thông của mạng.
Application Layer
Presentation Layer
Session Layer
Transport Layer
Network Layer
Datalink Layer
Physical Layer
Sending
Applicatio
n
Receiver
Applicatio
n
Session Layer
Presentation Layer
Application Layer
Transport Layer
Network Layer
Datalink Layer
Physical Layer
5
Datalink layer: bảo đảm các gói dữ liệu được gửi thông tin 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 đi phả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 TCP/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
Để đả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 dung các protocol TCP, UDP. Do
đó ta sử dụng mô hình mạng TCP/IP gồm 4 lớp được mô tả bằng hình II.1.2
hình II.1.2
6
Application Layer
HTTP,FTP,Telnet,
SMTP
Transport Layer
TCP/IP,UDP
Physical Layer
EthernetX.25, Token Ring
Network Layer
IP
R
e
c
e
i
v
i
n
g
D
a
t
a
Sending Data
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.
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 cấp
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,
Tokenring,… để 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ạng 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).
• Host name: đó 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 32 bit.
• 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 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.
7
• 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 máy 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 post 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 vụ của hệ
thống, không nên dung 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ể dung các lớp trong package và
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 sẽ được thông báo).
Những ứng dụng yêu cầu một kênh truyền point- to- point đámg tin cậy
đều dùng TCP. HyperText Transfer Protocol (HTTP), File Transfer Protocol
(FTP) và Telnet là những ứng dụng đòi hỏi một kê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
dung HTTP để đọc từ một URL (Uniform Resouce 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.
8
• 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 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ộtconnection vật lý đối với mạng đó. Tất cả
những dữ liệu gửi cho máy tính 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 thích 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 dung địa chỉ này để phân phát dữ liệu đúng cho từng máy.
Port được xác định bằng 1 số 16bits. Các protocol TCP và UDP dung 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 dung chung một port.
Thông qua các lớp trong packet java.net của ngôn ngữ java, các chương
trình viết bằng java có thể dung TCP hay UDP để truyền nhận data qua mạng.
Trong package java.net có URL, URL connection, Socket và
ServerSocket dung 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.
9
Việc load các file ảnh và file Audio được thực hiện thông qua lớp URL
trong packet java.net. URL : Uniform Resouce 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 đó dung 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à để 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
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 (Client/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 than cơ sở dữ liệu đều ở trên cùng một bộ xử lý.
Ví dụ người dung 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
đĩa 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ác 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
10
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 bị 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 một 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 cùng 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 dung 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 trữ 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 đượ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 dung 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 của 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ới 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 phầ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 mô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
nhậ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ô
11
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 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 đĩa cứng và có thể thực hiiê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 sự truy
cập và chuyển dữ liệu giữa hai hệ thống. Tuy nhiên, phần mềm cơ sở dữ liệu
chay 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.
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. 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 thao 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 dung cuối tạo một query để lấy dữ liệu tổng số, yêu cầu 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
12
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 co 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 dung cuối
cùng.
* Phần mềm Front- end software đượ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 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ễ dung hơn trong việc lấy dữ liệu từ cơ sở dữ liệu và
tạo báo cáo đơn giản từ cơ sở dữ liệu đã có.
• 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 dung.
• 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.
13
* Back- 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 tán)
Cả hai mô hình File- Server và Client/Server đều giả định là dữ liệu nằm
trên một bộ xử lý và chương trình ứng dụng truy nhập dữ liệu nằm trên một máy
khác, còn mô hình cơ 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 Client/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ữ
kiệ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 điểm là phải có sự cài đặt trên máy đơn trước khi móc nối với Server. Với
công nghệ JSP, 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 và có 1 trình duyệt Web và
máy tính đã được nối mạng). JSP truy xuất cơ sở dữ liệu dựa vào trình truy xuất
JPBC theo chuẩn java do tính năng mạng là được cung cấp sẵn nên Java có thể
dung trên mạng Internet dễ dàng. Với tính năng độ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ơ sở dữ liệu chuẩn của các hang
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ẽ dung cơ sở dữ liệu là MS Access trong môi trường
Windows 9x). 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 Three- tier như hình II.2.5
14
Không có nhận xét nào:
Đăng nhận xét