Trong một ứng dụng web, với mỗi tính năng hay việc cập nhật mới ứng dụng, ta không phải đưa ra một chương trình thực thi mới trên mỗi máy desktop của người sử dụng.. Nhìn chung mọi ứng
Trang 1Giới thiệu đề tài
Đề tài “ Xây dùng Web site khối phổ thông chuyên Toán-Tìn trường dai
học Sư phạm Hà nội" ra đời nhằm mục đích phục vụ cho việc quản ly thông tin
của giáo viên và học sinh cũng như việc tìm hiểu thông tin của học sinh cũ về
khối Thực chất đây là một bài toán quản lí trên Web Như vậy, Web site này
không đơn giản là cung cấp thông tin mà nó phải có khả năng xử lý dữ liệu, trả
kết qủa động về cho máy khách Mợi người có thể tìm hiểu thông tin về khối,
trao đổi thảo luận với nhau thông qua điễn đàn,
Ngoài những chức năng trên thì em đã đưa vào trang quản lí nhiều chức năng
phục vụ cho người quản trị Web site, mở ra khả năng làm việc thông qua mạng
Người quản trị có khả năng ngồi ở nhà có thể truy cập vào trang quản lý của mình
(có mật khẩu riêng và địa chỉ URL khác) để thay đồi, cập nhật thông tin về điểm,
Về nội dung báo cáo chia làm 5 chương như sau:
Chương Í Mạng máy tính và Internet: đưa ra các khái nệm về mạng
máy tính như mạng máy tính là gì, mô hình OSI, giao thức TCP/IP, Giới thiệu Internet , Interanet và các ứng dụng của nó
Chương 2 Tổng quan về CSDL - Vấn đề tích hợp Web với CSDL:
trình bày các kiến thức cơ bản về CSDL Nghiên cứu các giải pháp tích hợp Web với CSDL phục vụ cho việc xây dựng Web database
Chương 3 Công nghệ ASP: Nêu ra vấn đề lùa chọn công nghệ thực hiện
dé tai Trình bày ASP và công nghệ được sử dụng trong đề tài
Chương 4 Phân tích và thiết kế hệ thống: Đi sâu vào việc xây đựng đề tài Chương 5 Giới thiệu chương trình: Hướng dẫn cài đặt, triển khai chương
trình Nêu lên các mặt mạnh và hạn chế của chương trình
Em đã cố hết sức để hoàn thành đề tài ở mức tốt nhất có thể Tuy nhiên, do thời gian thực hiện đề tài không phải là dài và khối lượng công việc lại lớn
Mặt khác, trước khi nhận đề tài, nghiệp vụ xây dựng Web còn rất mới đối
với em nên em phải nghiên cứu nhiều về vấn đề về lý thuyết nên chương trình
còn nhiều thiếu sót, hạn chế, em rất mong được sự chỉ bảo, góp ýcủa thày cô
giáo và các bạn để em có thể nâng cấp chương trình hoàn thiện hơn
Trang 2Em xin chan thanh cam on!
Nhân đây, em còng xin bày tỏ lòng biết ơn đối với các thày, cô giáo trong
khoa Toán ứng dụng nói riêng và các thày cô giáo của trường Đại học Bách Khoa Hà nội nói chung đã truyền đạt kiến thức cho em trong suốt 5 năm học tập tại trường Những kiến thức đó là hành trang không thể thiếu cùng em trong quá trình công tác sau này
Được trở thành sinh viên của trường Đại học Bách Khoa Hà nội là niềm vinh
dự lớn đối với em và em có gắng phấn đấu học tập và lao động để xứng đáng với
niềm vinh dự đó.
Trang 3Chuong 1 Mang may tinh va internet
1.1 Mang may tinh
1.1.1 Khái niệm về mạng máy tính
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 đó
Đường truyền vật lý dùng để chuyên các tín hiệu điện tử giữa các máy tính Các tín hiệu điện tử đó biểu thị các giá trị dữ liệu dưới dạng các xung nhị phân (on - off) Tất cả các dữ liệu được truyền giữa các máy tính đều thuộc một dạng
sóng điện từ (EM) nào đó, trải qua các tần số radio tới sóng cực ngắn (viba) và
tia hồng ngoại Tuy theo tan sé sóng điện từ có thể dùng các đường truyền vật lý
khác nhau để truyền các tín hiệu
Kiến trúc mạng máy tính thê hiện cách nối các máy tính với nhau ra sao và tập hợp tắt cả các quy tắc, quy ước mà tất cả các thực thể tham gia truyền thông
trên mạng phải tuân theo đê cho mạng hoạt động tốt Cách nối các máy tính
được gọi là hình trạng (topolopy) của mạng (gọi tắt là topo) Còn các tập quy tắc, quy ước truyền thông thì được gọi là giao thức (protocol) của mạng
1.1.2 Mô hình mạng OSI
Khi thiết kế mạng, các nhà thiết kế tự do lùa chọn kiến trúc mạng của mình
Từ đó dẫn đến tình trạng không tương thích giữa các mạng: phương pháp truy
nhập đường dẫn khác nhau, sử dụng họ giao thức khác nhau Sự không tương
thích đó là trở ngại cho sự tương tác của người sử dụng các mạng khác nhau Nhu cầu trao đổi thông tin càng lớn thì trở ngại đó càng không thể chấp nhận được với người sử dụng Sự thúc bách của khách hàng đã khiến cho các nhà sản
xuất và các nhà nghiên cứu — thông qua các tổ chức chuân hoá quốc gia và quốc
tế — tích cực tìm kiếm một sự hội tụ cho các sản phẩm mạng trên thị trường
Vì lý do trên, vào năm 1984 Tổ chức tiêu chuẩn hoá ISO đã xây đựng một mô
hình tham chiếu cho việc kết nói đến các hệ thống mở (Reference Model for Open Systems Interconnection hay gon hon: ISO Reference Model) để làm
Trang 4bay tang như sau:
Application
chuân cho các nhà thiết kế và chế tạo các sản phâm về mạng Mô hình này gồm
Receiver
APPLICATION LAYER APPLICATION LAYER
PRESENTATION LAYER PRESENTATION LAYER
SESSION LAYER SESSION LAYER
TRANSPORT LAYER TRANSPORT LAYER
DATALINK LAYER DATALINK LAYER
PHYSICAL LAYER PHYSICAL LAYER
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 địch vụ thông tin của riêng nó
Trang 5Session 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 nghẽ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 bít 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, đữ 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.1.3 Họ giao thức TCP/IP
Năm 1970, Vint Cerf và Robert Kahn đã đưa ra việc thiết kế chỉ tiết cho mét
protocol dé liên lạc giữa các mạng khác nhau Đến năm 1982, việc thiết kế này
dugc cai dat rong rai va duoc goi la TCP/IP (Transmission control protocol)
TCP/IP gồm bốn líp được mô ta bằng hình sau:
APPLICATION LAYER HTTP, FTP, TELNET, SMTP
Trang 6Application 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 đị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 hai 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 m6 hinh 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
TCP là giao thức truyền điều khiển “có liên kết”, nó gửi từng gói đữ liệu
đi, nơi nhận đữ liệu theo giao thức này phải có trách nhiệm thông báo và kiểm
tra dữ liệu đã đủ hay chưa, có lỗi hay không có lỗi, nếu dữ liệu bị mất hay háng
TCP sẽ yêu cầu gửi lại đữ liệu cho đến khi hết các lỗi Trước khi truyền dữ liệu bao giê cũng có sự kết nối giữa máy gửi và máy nhận (do đó mới gọi là “có liên
kết") Truyền dữ liệu theo TCP đảm bảo việc truy cập, truyền dữ liệu trên mạng
là không mất mát Nó thích hợp cho các ứng dụng đòi hỏi độ tin cậy khi truyền
dữ liệu, nhưng lại không thích hợp cho các ứng dụng đòi hỏi lưu thông trên
mạng rộng rãi Muốn gửi gói đữ liêu (datagram) đến nhiều đích, TCP phải thiết lập đến một mạch ảo Đây là một tiến trình tiêu thụ thời gian và tập trung tài
nguyên Đối với các ứng dụng phụ thuộc vào việc truyền rộng rãi, UDP là một
giao thức líp vận chuyền thích hợp hơn
UDP có thể truyền đữ liệu mà không đòi hỏi phải thiết lập một mạch dir liệu Mỗi đơn vị dữ liệu được gởi với một địa chỉ nguồn và đích đầy đủ và chỉ số
cổng liên quan cho việc truyền đữ liệu UDP là một giao thức vận chuyển
“không liên kết”vì nó không sử dụng một kết nói được thiết lập đề truyền dữ liệu
và nó cũng không có cơ chế để kiểm tra dữ liệu UDP có xu thế hoạt động nhanh
hơn TCP Tuy nhiên, UDP không bảo đảm rằng đến theo thứ tự nó được gửi.
Trang 7Một thuận lợi lớn của UDP so với TCP là giao thức này thích hợp cho những ứng dụng được truyền rộng rãi Một gói đữ liệu có thể truyền trên mang bằng
cách xác định một địa chỉ truyền rộng rãi (broadcast address) trên địa chỉ đích
IP là giao thức liên mạng cung cấp khả năng kết nối các mạng con thành
liên mạng để truyền dữ liệu Vai trò của IP tương tự giao thức tang mang trong
mô hình OSI, nó giải mã các địa chỉ và tìm đường đề đưa đữ liệu đến đích
TCP/IP có những đặc điểm sau đây —- những đặc điểm đã làm nó trở nên
phô biến:
Tính độc lập về topolopy của mạng: TCP/IP được dùng trên mạng bus, rimg và star Nó có thể dùng trong mạng cục bộ (LAN) còng như mạng diện
rong (WAN)
Tính độc lập về phần cứng mạng: TCP/IP có thể dùng Ethernet, tokenring,
Chuẩn nghỉ thức mở: Với chuẩn TCP/IP có thể hiện thực trên bat ky phan
cứng hay hệ điều hành nào Do đó, TCP/IP là tập nghi thức lý tưởng đề kết hợp phần cứng còng như phần mềm khác nhau
Sơ đồ địa chỉ toàn cầu: mỗi máy tính trên mang TCP/IP có một địa chỉ xác định duy nhất Mỗi packed dữ liệu được gửi trên mạng TCP/IP có một header
gồm địa chỉ của máy đích còng như địa chỉ của máy nguồn
Khung Client-Server: TCP/IP là khung cho những ứng dụng client-server
mạnh hoạt động trên mạng cục bộ và mạng diện rộng
Chuẩn nghi thức ứng dụng: TCP/IP không chỉ cung cấp cho mọi người lập
trình phương thức truyền dữ liệu trên mạng giữa các ứng dụng mà còn cung cấp nhiều nghi thức ở mức ứng dụng (những nghỉ thức hiện thực các chức năng
thường dùng như emaIl, truyền nhận file)
1.2 INTERNET
1.2.1 Giới thiệu về internet
Internet là một mạng máy tính có phạm vi toàn cầu bao gồm nhiều mạng
nhỏ còng như các máy tính riêng lẻ được kết nối với nhau để có thê liên lạc và
Trang 8trao đối thông tin Trên quan điểm Client/ Server thì có thé xem là Internet như là mạng của các mạng của các Server, có thê truy xuất bởi hàng triệu Client
Việc chuyển và nhận thông tin trên Internet được thực hiện bằng giao thức
TCP/IP ( trình bày ở phần 1.3)
Internet bắt nguồn từ APANET trực thuộc Bộ quốc phòng Mỹ và được mở rộng cho các viện nghiên cứu, sau này được phát triển cho hàng triệu người cùng
sử đông như ngày hôm nay Ban đầu các nhà nghiên cứu liên lạc với nhau qua
mạng bằng dịch vụ thư điện tử, sau đó phát sinh thêm một sé mang may tinh nhu
mạng Usernet, ngày nay là địch vụ bảng tin điện tử Mạng này được thiết lập lần đầu tiên ở University of North Carolina, mà qua đó người dùng có thể gửi và đọc
các thông điệp theo các đề tài tự chọn ở việt Nam thì mạng Trí Tuệ Việt Nam của công ty FPT là mạng đầu tiên được xây dựng theo dạng bảng tin điện tử
Các nhà khoa học khắp nơi trên thế giới tham gia vào hệ thống thông tin
mở này, những người dùng với mục đích thương mại và công chúng cũng tham
gia vào hệ thống này thông qua các nhà cung cấp dịch vụ Internet Vì thế gây ra
sự phát triển bùng nô thông tin liên lạc toàn cầu qua mạng máy tính Đó chính là mạng Internet hiện nay
1.2.2 Các dịch vụ thông tin trên Internet
Cùng với TCP/IP, các chuẩn cho tầng ứng dụng cũng được phát triển ngày càng phổ biến trên Internet Các ứng dụng có sớm nhất là Telnet, FTP, SMTP và DNS đã trở thành những dịch vụ thông tin quen thuộc trên Internet
Với sự phát triển của công nghệ thông tin và nhu cầu xã hội, đanh sách các dịch
vụ thông tin trên Internet ngày càng dài thêm với sự đóng góp sản phẩm của
nhiều nhà cung cấp dịch vụ khác nhau Sau đây là một vài dịch vụ điển hình
nhất:
1.2.2.1 Dich vu tén mién (DNS)
Việc định danh các phần tử của liên mạng bằng các con sè như trong địa chỉ IP rõ ràng không làm cho người sử dụng hài lòng bởi chúng khó nhớ, dễ nhầm lẫn Vì thế người ta đã xây dựng hệ thống đặt tên cho các phần tử của
Trang 9Internet, cho phép người dùng chỉ cần nhớ các tên chứ không cần nhớ địa chỉ IP
nữa
Cũng giống như địa chỉ IP, tên mỗi máy tính trên mạng phải là duy nhất
Ngoài ra cần phải có cách để chuyển đổi tương ứng giữa các tên và các địa chỉ
số Đối với một một liên mạng tầm cỡ toàn cầu như Internet phải có một hệ
thống đặt tên trực tuyến và phân tán thích hợp Hệ thống này được gọi là DNS (
Domain Name System) Đây là một phương pháp quản lý các tên bằng cách giao
trách nhiệm phân cấp cho các nhóm tên Mỗi cấp trong hệ thống được gọi là một
miền ( domain), các miền được tách nhau bởi dấu chấm Ví du: java.sun.com 1.2.2.2 Dang nhap tir xa (Telnet)
Telnet cho phép người sử dụng từ một trạm làm việc của mình có thể đăng
nhập vào một trạm ở xa qua mạng và làm việc với hệ thống y như là một trạm cuối nối trực tiếp với trạm từ xa đó Để khởi động Telnet, từ trạm làm việc của mình người sử dụng chỉ việc gõ:
telnet < domain name or IP address >
Sau đó, nếu mạng hoạt động tốt thì người sử dụng chỉ việc làm theo các thông báo hiển thị trên màn hình Telnet có một tập lệnh điều khiển hỗ trợ cho quá trình thực hiện
1.2.2.3 Truyền tệp (FTP)
Dịch vụ truyền tệp trên Internet được đặt tên theo giao thức mà nó sử dụng
là FTP ( File Transfer Protocol)
FTP cho phép chuyên các tệp từ một trạm này sang trạm khác, bat ké các trạm đó ở đâu và sử dụng hệ điều hành gì, chỉ cần chúng được nối Internet và cài
đặt FTP
Đề khởi động FTP, từ trạm làm việc của mình ta chỉ cần go:
ftp < domain name or IP address>
FTP sẽ thiết lập liên kết với trạm ở xa và lúc đó ta sẽ phải làm các thao tác
đê đăng nhập hệ thống
Sau khi trên màn hình hiền thị dấu nhắc ftp> ta có thể gõ tiếp các lệnh cho phép truyền tệp theo cả hai chiều
Trang 10Trong trường hợp không có account thì ta không thể sử đông như trên
được Tuy nhiên, các tác giả FTP đã cung cấp một dịch vụ gọi là “ FTP vô danh”
(anonymuos FTP) cho phép những người không có account có thé truy cập tới
một số tệp nhất định
Khi sử dụng chương trình FTP để kết nối vào một anonymous FTP host,
nó hoạt động giống như nghỉ thức FTP, ngoại trừ khi nó đòi hỏi một User ID, đó
là anonymous Khi nó đòi hỏi password, chóng ta đánh vào một xâu ký tự bất kỳ
Khi người quản trị hệ thống cài đặt một máy tính như là một anonymous FTP host, dinh rõ những thư mục dùng cho việc truy cập chung Như mét biện
pháp an toàn, hầu hết những anonymous FTP host cho phép User download file, nhưng không cho phép upload file ( chép lên Server)
1.2.2.4 Thư điện tứ ( Email)
Đây là một trong những dịch vụ thông tin phổ biến nhất trên Internet hiện
nay Tuy nhiên, khác với các dịch vụ DNS, Telnet, FTP, thư điện tử không phải
là dịch vu “tir dau - dén cudi” (end to end), nghĩa là máy gửi thư và máy nhận
thư không cần thiết phải liên kết trực tiếp với nhau để thực hiện việc chuyển
thư Nó là dịch vụ kiểu “ lưu và chuyển tiếp” (Store and Forward) Thư điện tử được chuyên từ máy này sang máy khác cho đến máy đích ( giống như trong hệ
thống bưu chính thông thường: thư được chuyển đến tay người nhận sau khi đi
qua một số bưu cục trung chuyền) Hình sau cho sơ đồ ví dụ hoạt động của mạng thư điện tử:
Trang 11E-mail server E-mail server
Sơ đồ hoạt động của mạng E-mail
Mỗi người dùng ( Client) đều phải kết nối với một Email Server gần nhất (
đóng vai trò bưu cục địa phương) Sau khi soạnh thảo xong thư và đề rõ địa chỉ đích ( người nhận), người sử dụng sẽ gửi thư đến Email Server của mình đã đăng
ký Email Server này có nhiệm vụ chuyển thư đến đích hoặc đến một Email
Server trung gian khác Thư sẽ chuyển đến Email Server của người nhận và được
lưu tại đó Đến khi người nhận thiết lập một kết nối đến Email Server đó thì thư
sẽ được chuyền về máy của người nhận, nếu không thì thư vẫn tiếp tục được giữ tại Server dé đảm bảo không bị mất thư Giao thức truyền thống sử dụng cho hệ thống điện tử của Internet là SMTP ( Simple Mail Transfer Protôc]) Giao thức này được đặc tả trong hai chuẩn là RFC 822 ( định nghĩa cấu trúc của thư) và
RFC 821 ( đặc tả trao đôi thư giữa hai trạm của mạng) Hệ thống địa chỉ thư điện
Trang 12tử trên Internet không chỉ định danh cho các host của mạng mà phải xác định rõ người sử dụng trên các host đó để trao đổi thư Dạng tổng quát của địa chỉ Email
là:
Login-name@host-name
Vi dé: hoanhn@yahoo.com
1.2.2.5 Nhom tin ( New groups)
Đây là dịch vụ cho phép nhiều người sử dung ở nhiều nơi khác nhau có
cùng mối quan tâm có thể tham gia vào một “nhóm tin” và trao đổi các van dé
quan tâm của mình thông qua các nhóm tin này Có thể có nhiều nhóm tin khác
nhau như: nhóm tin về nhạc cổ điển, nhóm tin về hội hoạ, Trong mỗi nhóm tin
có thể có nhiều nội dung thảo luận khác nhau Tên nhóm tin được cấu trúc theo kiểu phân cấp, các cấp phân cách bởi một dấu chấm
Ví đô: Rec music Classic
Trên Internet có nhiều Server tin khác nhau, trong đó tin tức được thu thập
từ nhiều nguồn khác nhau Các Server tin cũng có thể tạo các nhóm tin cục bộ
đáp ứng nhu cầu của người sử dụng
Người sử dụng tương tác với một Server tin thông qua một chương trình được đặt tên là chương trình đọc tin (News Reader) Và người sử dụng chỉ biết
đến một Server tin duy nhất, đó là Server mà mình kết nối vào Mọi sự trao đổi,
tương tác giữa các Server tin và các nhóm tin hoàn toàn “trong suốt” đối với
người sử dụng Với dịch vụ này, một người sử dụng có thể nhận được các thông
tin mà mình quan tâm của nhiều người từ khắp nơi, đồng thời có thể gửi thông
tin của mình đi cho những người này
1.2.2.6 Tìm kiếm tệp (Archie)
Archie là một dịch vụ Internet cho phép tìm kiếm theo chỉ số (index) cac
tệp khả dụng trên các Server công cộng (Archie Server) của mạng Người sử
dụng có thể yêu cầu Archie tìm các tệp có chứa một xâu văn bản hoặc chứa một
từ nào đó Archie sẽ trả lời bằng tên các tệp thoả mãn yêu cầu và chỉ ra tên của
các Server chứa các tệp đó
Trang 13Đề dùng Archie, ta phải chọn một Archie Server Sau đó, có thể dùng
Telnet dé truy cập tới Server và tìm kiếm tệp mong muốn Ta cũng có thê dùng thư điện tử ( chứa các lệnh tìm kiếm mong muốn) gửi tới dia chi Archie@Server
trong đó Server chính là Archie Server mà ta đã chọn, và chờ đợi để nhận thư trả
lời ( về kết quả tìm kiếm) từ Server
Ngoài dịch vụ tìm kiếm tệp hiện nay còn có các dịch vụ tìm kiếm khác
như tìm kiếm thông tin theo thực đơn Gopher, tìm kiếm thông tin theo chỉ số
WAIS (Wide Area Infomation Server)
1.2.2.7 World Wide Web (WWW)
WWW la mot dich vu thong tin mới nhat va hap dẫn nhất trên Internet Nó
dùa trên kỹ thuật biểu điễn thông tin có tên là s¿êw văn bản (hypertext), trong đó
các từ được chọn trong văn bản có thể được “mở rộng” bất kỳ lúc nào để cung
cấp các thông tin chỉ tiết Sự mở rộng ở đây được hiểu theo nghĩa là chúng có
các /iên kết tới các tài liệu khác ( có thể là văn bản, âm thanh, ) cÓ chứa các
thông tin bé sung
Thuật ngữ World Wide Web được công bố lần đầu tiên vào tháng 8/1991
trên nhóm tin alt.hypertext Từ đó nhiều nhà phát triển đã tham gia phát triển
Web trên các hệ điều hành khác nhau (Unix, Macintosh, Window, .) Web sử
dụng một ngôn ngữ có tên là HTML HTML cho phép đọc và liên kết các kiểu
dữ liệu khác nhau trên cùng một trang thông tin Để thực hiện việc truy nhập, liên kết các tài nguyên khác nhau theo kỹ thuật siêu văn bản, WWW sử dụng khái nệm URL (Uniform Resource Locator) Đây chính là một dạng tên để định danh duy nhất cho một tài liệu hoặc một dịch vụ Web
Hoạt động của Web dùa trên mô hình Client/Server Tại trạm Client, người sử dụng sẽ dùng Web Browser để gửi yêu cầu tìm kiếm các tập tin HTML đến Web Server ở xa trên mạng Internet nhờ địa chỉ URL Web Server nhận yêu
cầu rồi gửi kết qua tra vé cho Client
Với sự hấp dẫn của mình, Web đã phát triển mạnh tới mức mà người ta
gọi là “ bùng nỗ Web” Ngày nay, Web không chỉ đơn thuần là cung cấp thông
13
Trang 14tin trên Internet ma nó đã được ứng dụng rộng rãi trong lĩnh vực thương mại như quảng cáo, đặt hàng trực tuyến,
1.2.3 Interanet
Do nhận thức được vai trò của thông tin trong hoạt động kinh tế thị trường cạnh tranh gay gắt nên các tô chức , doanh nghiệp đều tìm mọi cơ hội và biện pháp để xây dựng và hoàn thiện các hệ thống thông tin nội bộ của mình Hệ
thống này bao gồm một cơ sở hạ tầng truyền thông máy tính và một tập hợp các chương trình ứng dụng nhằm tin học hoá các hoạt động tác nghiệp của đơn vị
Với hệ thống này, thông tin nội bộ phải luôn chính xác, tin cậy, hiệu quả, đặc
biệt hệ thống phải có khả năng truyền thông với thế giới bên ngoài qua mạng
toàn cầu Internet khi cần thiết
Từ những mục tiêu trên, người ta thấy cần phải xây dựng một mạng thông
tin nội bộ cho các đơn vị, nó được gọi là mạng Internet
Còng như Internet, Interanet đã phát triển không ngừng và ngày càng thu
hót được sự quan tâm của người sử dụng lẫn nhà cung cấp Song song với việc
phát triển các công cụ tiện Ých và các dịch vụ thông tin cho Internet, người ta
cũng tập trung vào việc chọn lùa các giải pháp cho Interanet Một số sản phâm
nhu Lotus Notes, Novell GroupWise, Microsoft Exchange, déu da hướmg mục tiêu đến Interanet
Mạng nội bộ có thể là mạng cục bộ LAN, hoặc kết nối các máy tính vùng
rộng hơn WAN
1.3 Mô hình ứng dụng Client- Server và ứng dụng trên Web
Client - Server là một mô hình tính toán khi máy Client gởi một yêu cầu
nào đó tới máy server Yêu cầu thường là đề truy xuất thông tin như những
yêu cầu trong database, hay yêu cầu để xử lý như cập nhật database hoặc
chạy một số quá trình nào đó Máy client thực hiện yêu cầu, và máy server
đáp ứng yêu cầu này Lợi ích của hệ thống client-server là tận dụng được sức
mạnh của mỗi máy hoặc hệ điều hành Client thực hiện một số ứng dụng về
Trang 15mat logic va thé hién cho người sử dụng, trong khi server thực hiện việc xử lý
phía sau và các chức năng về cơ sở dữ liệu
15
Trang 16Hinh 1.4 M6 hinh client — server
Cấu hình cơ bản của ứng dụng Client - Server :
] Client
Hình 1.5 Cấu hình cơ bản của ứng dụng Client — Server
Đối với ứng dụng trên Web, trình duyệt (browser) phục vụ như là client
chung, gởi yêu cầu về một trang web, nhận hồi đáp là ngôn ngữ HTML, và hiển thị nó cho người sử dụng Web server nhận yêu cầu thông qua giao thức
dịch chuyên siêu văn bản (HTTP) và trả về thông tin cần thiết trong dạng HTML mà client có thể hiểu được Tương tự như mô hình client-server, ta có
thé phân bố việc xử lý ứng dụng và quản lý cơ sở dữ liệu thành từng phần với
những mức độ khác nhau giữa máy client và máy server Hình1.3 mô tả cấu
trúc của một ứng dụng web điển hình :
16
Trang 17Hinh 1.6 M6 hinh web dién hinh
So với ứng dụng client - server, ưu điểm chính của ứng dụng trên web là
việc triển khai ứng dụng Với ứng dụng client-server, ta phải cài đặt lại thành phần trên client mỗi khi thay đổi và cập nhật ứng dụng Trong một ứng dụng
web, với mỗi tính năng hay việc cập nhật mới ứng dụng, ta không phải đưa ra một chương trình thực thi mới trên mỗi máy desktop của người sử dụng Browser phục vụ như là client chung, cung cấp việc truy cập tới thông tin hiện có trên server Chi phí trong việc kiểm soát phiên bản, phân bố phần mềm, và quản trị hệ thống giảm đi rất nhiều đối với ứng dụng trên Web Hình 1.4 mô tả cấu hình cơ bản của ứng dụng trên Web
Hình 1.7 Cấu hình cơ bản của ứng dụng trên Web
Database Server Web Server
Client
[ ] Web browser
Khác với ứng dụng chạy trên máy tính đơn lẻ khi mà việc xử lý được thực hiện trên mỗi máy tính, ứng dụng Web tập trung xử lý trên server (gồm một
17
Trang 18hay nhiều server) Vì browser chỉ đưa ra giao diện người sử dụng, toàn bộ
ứng dụng được đặt trên server :
Application Server (Server ứng dụng) : là phần mềm cung cấp các dịch vụ
để hỗ trợ cho các ứng đụng Web làm chức năng kết nói người dùng đầu cuối với cơ sở đữ liệu cộng tác Nó hoạt động như một môi giới trung gian giữa trình đuyệt Web và Database Server, nhờ đó không cần phải cài đặt ứng dụng đòi hỏi cao về mặt bảo trì cho người dùng đầu cuối
Trong hình 1.8 đưới đây, ta có một giao diện, những đối tượng bên trong
để thực hiện công việc nào đó cùng với những dịch vụ Hình vẽ cho thấy tất
cả những công việc chính đều đặt trên server, trên browser (client) chỉ còn
mỗi user-interface
Trang 19Đối với Web server, thay vi user-interface, ta sé cod Web-interface Đây là
một lớp chương trình tương tác với Web server nhằm mục đích giao tiếp với client Web-interface đóng vai trò như lớp keo giữa những đối tượng và trang HTML được gửi tới browser của client Web-interface cung cấp HTML cho browser thông qua Web server và nhận những input từ user thông qua
browser và Web server Có nhiều công nghệ được dùng để xây dựng Web- interface nay, chang hạn như CGI, ISAPI, ASP Giữa những công nghệ
này, có những ưu và nhược điểm khác nhau, tuỳ theo yêu cầu của ứng dụng
mà ta sẽ chọn công nghệ thích hợp
19
Trang 20Chương 2: tông quan về Cơ sở dữ liệu - vấn đề tích hợp web với
cơ sở dữ liệu
2.1 Tống quan về cơ sở dữ liệu (CSDL)
2.1.1 Thế nào là một CSDL?
CSDL là một tập hợp các dữ liệu có liên hệ với nhau được tổ chức và lưu
trữ lại trên các thiệt bị lưu trữ tin Nã cho phép nhiêu người sử dụng, nhiêu
chương trình ứng dụng với các mục đích khác nhau đông thời truy cập và khai
thác
2.1.2 Các mô hình CSDL
Nhìn chung mọi ứng dụng CSDL đều bao gồm các phần:
° Thành phần xử lý ứng đông ( Application procesing compoents)
° Thành phần phần mềm CSDL ( Database software components)
° Ban than CSDL (The database itselt)
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 CSDL tập trung (Centralized database model)
° M6 hinh CSDL theo kiéu File-Server (File-Server database model)
° Mô hình xử lý từng phần CSDL (Database extract processing model)
20
Trang 21° Mô hình CSDL Client/ Server ( Chent/ Server database model)
° Mô hình CSDL phân tán (Distributed database model)
2.1.2.1 Mô hình CSDL tập trung
Trong mô hình này, các thành phần xử lý ứng dụng, phần mềm CSDL và
bản thân CSDL đều ở trên cùng một bộ vi 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 CSDL Oracle để truy nhập tới CSDL nằm trên đĩa cứng của một cá nhân đó Khi các thành phần ứng dụng, phần mềm CSDL và bản thân CSDL 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ý mainffame
chạy phần mềm CSDL 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 CSDL trung tâm Tuy nhiên, trong rất nhiều hệ thống như vậy, cả ba thành phần của ứng dụng CSDL đều thực hiện trên cùng một máy mainframe đo đó cấu hình này cũng tương tự
mô hình tập trung
2.1.2.2 Mô hình CSDL theo kiêu File — Server
Trong mô hình CSDL theo kiểu File — Server các thành phần ứng dụng và
phần mềm CSDL ở trên một hệ thống máy tính và các file vật lý tạo nên CSDL
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 giữ các file đữ 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 CSDL trên hệ thống của người đùng cuối coi các
file hoặc CSDL trên 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 CSDL nam
trên máy khác với các thành phần ứng dụng và phần mềm CSDL Tuy nhiên, các thành phần ứng dụng và các phần mềm CSDL có thê có cùng một thiết kế để vận
21
Trang 22hà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 CSDL tưởng rằng chúng đang truy xuất CSDL
trong môi trường cục bộ Một môi trường như vậy có thé phuc tap hon moi trường tap 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 cập vào cùng CSDL
2.1.2.3 Mô hình xử lý từng phần CSDL
Trong một mô hình khác trong đó một CSDL ở xa có thê được truy cập bởi phần mềm CSDL, đượ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 cau dé lay dit liệu từ CSDL đó Người sử dụng cũng có thể chuyển đữ liệu từ máy tính ở xa về chính máy tính của mình vào đĩa cứng và có thê thực hiện việc sao chép bằng phần mềm CSDL
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à đữ liệu nằm ở đâu và làm như thế nào để truy nhập và lấy đữ 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ả hai hệ thống máy tính để kiêm soát sự
truy cập và chuyển đữ liệu giữa hai hệ thống Tuy nhiên, phần mềm CSDL chạy
trên hai máy không cần biết rằng việc xử lý CSDL 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.1.2.4 M6 hinh CSDL Client/Server
Trong mô hình CSDL Client/Server, CSDL 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 CSDL đượ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 CSDL chạy trên máy Client, phần mềm này sẽ kết
nỗi với phần mềm CSDL chạy trên Server Phần mềm CSDL trên Server sẽ truy cập vào CSDL và gửi trả kết quả cho máy Client
Trang 23Mới nhìn, mô hình CSDL ClientServer 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 CSDL 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 dé lay 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 CSDL 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 CSDL 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 CSDL chạy trên máy lưu giữ CSDL sẽ truy cậ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 CSDL Client/Server, thường nói đến các phần mềm front-
end software va back-end software Front-end software dugc chay trén mét máy
tính cá nhân hoặc chạy trên 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 CSDL 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
Phan mém front-end software thuong chia thanh cac phan sau:
e End User database software: Phan mém CSDL 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 CSDL
cục bộ nhỏ còng như kết nói với các CSDL lớn hơn trên trên CSDL Server
e Simple query and reporting software: Phan mém nay duoc thiết kế
để cung cấp các công cụ đễ đàng hơn trong việc lấy dữ liệu từ CSDL và tạo các
báo cáo đơn giản từ CSDL đã có
e© Data analysic software: Phan mém nay 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
¢ 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 CSDL 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
23
Trang 24Software Enginerring), 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 CSDL
® Database administration Tools: Các công cụ này cho phép người
quản trị CSDL 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ị CSDL như định nghĩa các cơ sở đữ liệu, thực hiện lưu trữ hay phục hồi
Back-end software: Phan mém này bao gồm phần mềm CSDL Client/Server và phần mềm chạy trên máy đóng vai trò là Server CSDL
2.1.2.5 Mô hình CSDL 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 CSDL phân tán lại giả định bản thân CSDL có ở trên nhiều
máy khác nhau Mô hình này có nhiều ưu điểm như: đễ mở rộng CSDL, hiệu
nang cao Tuy nhiên, nó khá phức tạp, chi phí xây dựng cao và tính an toàn
kém hơn so với CSDL tập trung
1.1.3 ODBC và OLEDB, ADO
1.1.3.1 ODBC ( Open Database Connectivity)
Có rất nhiều hệ thống database khác nhau, nếu không có một chuẩn chung
để giao tiếp giữa những hệ database này thì khi ứng dụng chuyển đổi từ hệ
database này sang hệ database khỏc, mó của chương trình phải thay đổi lại
cho phù hợp Để giải quyết tình trạng này, người ta đã đưa ra một chuẩn dé
các kiểu database khác nhau có thể giao tiếp được, đó là ODBC (Open
DataBase Connectivity)
Chuan ODBC, là một tập mở rộng của những thư viện liên kết động
(DLL), cung cấp giao diện lập trình ứng dụng cơ sở dữ liệu chuẩn ODBC
dựa trên phiên bản được chuẩn hoá của SQL ODBC là một lớp nằm giữa
chương trình ứng dụng và hệ thống database Với ODBC và SQL, ta có thể
viết mã truy xuất đến cơ sở dữ liệu mà không phụ thuộc vào bất kỳ hệ quản trị cơ sở đữ liệu nào
Trang 25Chuẩn ODBC khong chỉ định nghĩa luật văn phạm của SQL mà còn định nghĩa giao diện lập trình của ngôn ngữ C cho một databse SQL Do đó, đối
tượng C hay C++ có thể truy xuất tới bất kỳ DBMS nào có driver ODBC ODBC là lớp phục vụ giao tiếp giữa chương trình ứng dụng và hệ điều
hành cũng như hệ thống file của database ODBC nhận những yêu cầu truy xuất thông tin từ chương trình ứng dụng, chuyên nó thành ngôn ngữ mà database engine hiểu được để truy xuất thông tin từ database Như vậy, nó
cho phép chúng ta phát triển tập hợp các function và method đề truy xuất đến
database mà không cần phải hiểu sâu về đatabase đó
Ví dụ, MS Access cho phép chúng ta liên kết (link) hay gắn (attach) một
bảng đến database Khi thực hiện điều này, Access sẽ yêu cầu chúng ta chọn
loại database (database mà Access trực tiếp hỗ trợ), nếu không có loại
database phù hợp chúng ta có thể chọn ODBC Khi chọn ODBC, nó sẽ liệt kê
tất cả các cầu hình khác nhau mà chúng ta đã thành lập, và chọn một trong số
đó bất kế đatabase engine nào
Khi ứng dụng làm việc với ODBC, nó làm việc với data source và
database engine mà nó tham khảo Khi thiết lập cấu hình cho client mà cài đặt
những kết hợp driver với database Những kết hợp này sẽ được đặt tên và
được sử dụng khi chúng ta muốn yêu cầu kết nói để truy xuất đến database
đó Những kết hợp giữa database và driver gọi là những Data Source Name hay những DSN Khi muốn mở một đatabase thông qua ODBC, chúng ta phải cung cấp DSN, UserID va Password ODBC sẽ lay những thông số mà chúng
ta đã thiết lập cấu hình sẵn (trong Control Panel - ODBC32) để tạo kết nồi Những thành phần chung của DSN :
- DSN: Tén DSN mà chúng ta đã đặt khi thiết lập cấu hình ODBC
- UID : UserID dugc sit dung dé login vao database
- PWD : Password dugc str dung khi login
Như vậy, để truy xuất đến các database thong qua ODBC, ta phải cài đặt
driver cho database đó ODBC có nhiều driver để hỗ trợ cho các database
khác nhau nhằm chuyển các bảng tính hay các tập tin văn bản thành data
25
Trang 26source Hé điều hành căn cứ vào thông tin duge ghi boi ODBC Administrator trong Registry để xác định cấp của ODBC driver giao tiếp với data source Việc nạp ODBC driver là "trong suốt" (transparent) đối với chương trình
ứng dụng Trong môi trường mạng, ODBC đảm nhận luôn cả việc xử lý
những vấn đề truy xuất dữ liệu trên mạng như việc truy xuất đồng thời hay giải quyết tranh chấp
Tóm lại, ODBC là một giao tiếp lập trình chuân cho người phát triển ứng
dụng và nhà cung cấp database Trước khi ODBC trở thành một chuẩn không
chính thức cho các chương trình ứng dụng trên Windows giao tiếp với các hệ thống database, người lập trình phải sử dụng các ngôn ngữ riêng cho mỗi database mà họ muốn kết nói tới Khi ODBC ra đời thì người lập trình không
còn bận tâm về điều này nữa, họ có thể truy xuất đến các database khác nhau
bằng các thủ tục và hàm như nhau Mã của chương trình ứng dụng không
thay đôi khi data source chuyền từ hệ thống database này sang hệ thống khác
(ví dụ từ Oracle sang SQL server)
Ưu điểm và nhược điểm của ODBC
Vì ODBC cung cấp viéc truy xuat dén bat ky dang database thong dung cé
sẵn, do đó tạo nên sự uyên chuyên trong những ứng dụng Ta có thể chuyên ứng dụng từ hệ thống database này sang hệ thống database khác mà không
tốn nhiều chỉ phí và công sức DSN của ta có thể tham khảo đến bất kỳ một
database nào Điều này cho phép ta có thê tham khảo đến bắt kỳ một database
nào Như vậy, ta có thể phát triển ứng dụng theo một hệ thống database này
(chang han nhu Microsoft Access) nhung lai bién déi thanh san phẩm sử dụng hệ thống database khác (ví dụ như Microsoft SQL Server) bằng cách
đơn giản là thay đổi driver được sử đụng DSN mà chúng ta định nghĩa trong ứng dụng
Việc gọi hàm qua lớp ODBC đến database engine không phải là không tôn phí ODBC phải hỗ trợ khả năng chuyên đổi các hàm được gọi từ ứng dụng, việc này cần phí tốn cho việc xử lý và làm quá trình truy xuất database cham
Trang 27đi Hơn nữa, ODBC không hỗ trợ việc truy xuất cơ sở dữ liệu đối tượng
(Object Database)
1.1.3.2 OLEDB va ADO
OLEDB được thiết kế đề thay thế ODBC như một phương thức truy cập
dữ liệu ODBC hiện thời là tiêu chuẩn phía Client được Windows sử dụng rất
phổ biến để truy cập các dữ liệu quan hệ vỡ nó thiết lập các Server cơ sở dữ liệu càng tổng quát càng tốt đến các ứng dụng Client OLEDB đi sâu hơn một bước,
bằng cách làm cho tất cả nguồn đữ liệu trở thành tổng quát đối với ứng dụng
Client
ADO là giao điện dựa trên đối tượng của công nghệ OLEDB ADO là
công nghệ truy cập cơ sở dữ liệu hướng đối tượng ADO hiện nay được Microsoft xem là kĩ thuật để truy cập cơ sở dữ liệu từ Web Server Hình vẽ sau cho ta cách nhìn tổng quát về ODBC và OLEDB:
ADO (ActivexX Data Objects)
OLEDB
Trang 28
Vay ngoai ADO, co cach nao đề đưa dữ liệu lên Web nữa không? Thực ra,
trước khi có ADO, người ta thường dùng CGI (Common Gateway Interface) cùng với ODBC Hiện nay, đa số các trang Web động sử dụng cơ sở đữ liệu vẫn
còn được tạo bằng CGI
Phương pháp CGI đòi hỏi ta yêu cầu Web Server một trang Web HTML bình thường Ở một nơi nào đó trong trang Web sẽ có lời gọi đến một ứng dụng CGI Giả sử ta sẽ dùng form ở những nơi ta muốn lưu chỉ tiết về người dùng
trong cơ sở dữ liệu:
<HTMI>
<HEAD>
</HEAD>
<BODY>
<H3>To subscript to our email list, you must enter your details here: </H3>
<FORM ACTION= “/cgi-bin/maillist.pl” METHOD= “GET” >
<P>Name: <INPUT TY PE= “Text” NAME= “name” ></P>
<P>Address: <INPUT TYPE= “Text” NAME= “address” ></P>
<P>Phone: INPUT TYPE= “Text” NAME= phone” ></P>
<P>Email: INPUT TYPE= “Text” NAME= ”email” ></P>
<INPUT TYPE= “submit” >
<INPUT TYPE= “reset” >
</FORM>
</BODY>
</HTML>
Server sẽ thực thi ứng dụng CGI và ứng dụng CGI sẽ gửi tra vé dong van
bản và HTML cho Server Ứng dụng CGI có thé là một tập tin thực thi hoặc là
một tập tin viết bằng ngôn ngữ kịch bản Các kịch bản của CGI có thể viết bằng
nhiều ngôn ngữ khác nhau như Perl, C, C++, Tcl hay Python Các kịch bản sẽ điều khiển dòng đữ liệu giữa ngôn ngữ HTML và cơ sở dữ liệu Bản thân Web Server sẽ sử dụng ODBC để giao tiếp với cơ sở đữ liệu Server nhận dữ liệu xuất
ra từ cơ sở đữ liệu và dựng nó đề tạo ra một trang Web mới, sau đó trang này sẽ
được gửi về trình duyệt
Trang 29Mặc dù CGI được sử dụng rộng rãi nhưng nó cú một số khuyết điểm Một trong những khuyết điểm đó là giảm tính trực tiếp trong tương tác giữa Server và trình duyệt vì Server buộc phải gọi ứng dụng CGI Một khó khăn khác là coc m6
mà CGI chuyển nhận rất khó xử lý nên ta thường phải chọn một ngôn ngữ có
công cụ soạn thảo và giao tiếp tốt Ngoài ra CGI cũng không phải là phương pháp nhanh nhất để truy xuất cơ sở dữ liệu Vì vậy ta thường dùng ADO với nhiều ưu điểm hơn để kết nói với cơ sở dữ liệu cho Web
Có một lý do nữa để ta chọn lựa ADO, đó là ta phải nhận thấy rằng không
phải tất cả dữ liệu đều được lưu trong cơ sở dữ liệu Ví dụ: một văn bản Word
hay một từ điển tự nó không phải là cơ sở đữ liệu Ta gọi tất cả các nguồn dữ
liệu là data store Nếu sử dụng ODBC thì ta chỉ có thể truy xuất với cơ sở dữ
liệu, tuy nhiên OLEDB cho phép người dùng truy xuất mọi đata store OLEDB
có thê thay thế ODBC, tuy nhiên nó lại tồn tại ở lớp trên ODBC và cho phép ta
sử dụng các ODBC Driver có sẵn Ở OLEDB, Provider là khái niệm tương
đương với ODBC Driver Provider được hiểu đơn giản là một cái gì đó cung cấp
dữ liệu Provider không giống như Driver Do không có nhiều OLEDB Provider như ODBC Driver nên nếu ta muốn truy cập thông tin từ cơ sở đữ liệu, gần như
chắc chắn bạn phải dùng ODBC cùng với OLEDB Giản đồ dưới đây cho thấy
chúng ta làm việc như thế nào:
Program
ActiveX Data Objects (ADO)
Cc E— ¬£€E_ ¬.E ¬
ODBC Access SQL Exchange Non Relational
29
Trang 30Dù rằng OLEDB dễ dàng hơn ODBC nhưng nó cũng không hoàn toàn dé hiểu và chỉ có một số ít ngôn ngữ lập trình có thể xử lý nó như C++ Tuy nhiên,
nó cú một vỏ bọc không những dấu bớt những phức tạp bên trong đối với người
sử đụng mà còn cho phép các ngôn ngữ khác (như nhôn ngữ kịch bản) có thể xử
lý Data Store Đú chớnh là ActiveX Data Objects hay gọi tắt là ADO ADO là
một phần tử COM( Component Object Model) và do đó có thể được dùng trong bất kì ngôn ngữ nào tương thích với COM ADO không độc lập với hệ điều hành
nhưng độc lập với ngôn ngữ lập trình vì thế nó có thể được xử lý bằng các ngôn ngữ như C++, VB, Java, Java Script hay VbScript
ADO được thiết kế để cung cấp một phương pháp truy cập dữ liệu cho tất
ca moi người Để thực hiện điều đó, nó đưa ra một mô hình đối tượng sau:
Ly Parameters [—— Parameter Recordset
Ly Fields [—— Field Collection
Trang 31Đối tượng Connection dùng để tạo một kết nói đến Data Store Khi kết nói đã được
thiết lập, ta có thé đựng nó bao nhiêu lần tuỳ ý Mặc dù ta cần một kết nói trước khi ta
có thể truy xuất dữ liệu trong cơ sở đữ liệu nhưng thật ra ta không phải sử dụng đối
tượng Connection để tạo kết nói Cả hai đối tượng Command và Recordset đều có thể
tạo kết nói một cách độc lập
e Đối tượng Command:
Đối tượng Command được dùng đề thực hiện các lệnh trên cơ sở đữ liệu
Những lệnh này không phải là lệnh kịch bản của ASP mà là cóc cõu lệnh SQL
Các lệnh này dùng để lẫy thông tin từ cơ sở đữ liệu hay thờm, xoỏ, sửa các mẫu
tin, các bảng mới vào cơ sở đữ liệu
e_ Đối tượng Recordset:
Đối tượng Recordset là đối tượng thường dùng nhất trong ADO, vì thế có
nhiều đặc tính và phương thức nhất Nó được dùng để giữ thông tin về các
Recordset ma ta tao ra
nhanh dẫn đến việc quản lý Web Server ngày càng trở nên khó khăn Web Server
là trọng tâm của hệ thống, do đó việc quản lý tốt Web Server sẽ làm cho toàn hệ thống hoạt động tốt hơn Trong vô SỐ các trang Web chứa trong mét Web Server
người ta thấy rằng rất nhiều trang mà nội dung của chúng hoàn toàn có thể đưa vào CSDL, Nếu thay các trang Web như trên bằng một trang Web duy nhất có
31
Trang 32khả năng hiển thị thông tin lấy từ CSDL thì tốt hơn tìm kiếm trên những tập tin
roi rac
Nhu vay, van dé quan ly tốt Web Server dẫn đến việc xây dựng một CSDL
lưu trữ thông tin
Khi xây dựng một ứng dụng CSDL, ngoại trừ CSDL đó chỉ phục vụ cho mục đích cá nhân, còn không thì phải xem xét việc tạo khả năng để nhiều người
có thể truy xuất đến CSDL Muốn vậy, thì cần có một hệ thống gồm nhiều máy
tính, tất cả đều được kết nối với nhau và nối với Server chứa CSDL Khi đó sẽ
nảy sinh một số vấn đề sau:
e_ Với trường hợp những người muốn truy xuất đến ở xa Server, việc thiết lập riêng một hệ thống mạng trên diện rộng là không khả thi
e_ Các máy tính truy xuất đến CSDL có thể thuộc nhiều họ máy, chạy trên
nhiều hệ điều hành khác nhau Do đó, cần phải xây dựng các ứng dụng thích hợp
với các nền tảng đó, và các ứng dụng này sẽ được phân tích tại mỗi Client Sau một thời gian khai thác, khi đó nhu cầu sửa đổi các ứng dụng Client thì phải sửa
Client có thể gồm nhiều máy tính chạy trên các hệ điều hành khác nhau mà
không cần phải phát triển các ứng dụng chạy trên từng máy mà chỉ cần xây dựng
một trang Web đặt tại Web Server Điều này sẽ giảm thời gian và chi phí phát
triển ứng dụng, giảm chỉ phí bảo trì và cập nhật các ứng dụng đó
Hỗ trợ mạng:
Một điều quan trọng cần phải xét đến khi thiết kế các ứng đụng CSDL là
làm thế nào để truy xuất CSDL từ các máy ở xa (remote computer) Nhu da đề
Trang 33cập ở trên không một cá nhân hay tổ chức nào có thể xây đựng mỗi một hệ thống mạng máy tính trải rộng trên quy mô hàng trăm, ngàn km trong khi đó tồn tại
một hệ thống mạng có phạm vi toàn cầu là Internet Web Server và Web Brower
có những tính năng về mạng Chúng được thiết kế để chuyền và nhận thông tin
qua Internet hay mạng cục bộ Vậy tại sao không sử dụng Internet cho mục đích truy cập CSDL
Nếu xét ở khía cạnh quản lí tốt tài liệu của Web Server hay ở khía cạnh
khai thác tốt CSDL trên phạm vi rộng đều đẫn đến một nhu cầu là tích hợp Web
với CSDL
Tích hợp Web với CSDL bao gồm việc tạo khả năng truy cập và cập nhật
dữ liệu thông qua Web Để thực hiện việc tích hợp Web với CSDL thì cần phải xây dựng lại hệ thống trong đó có cơ chế chuyền thông tin giữa trang Web và
CSDL, cơ chế truy cập đến CSDL và những trang Web động trong môi trường
Web va phải có những tính năng như là một hệ thống ứng dụng CSDL trên Web
Trong trang Web thì việc giao tiếp với người sử dụng được thực hiện thông qua các “HTML Form ” Các form này chứa các phần tử dùng đê nhập liệu như là textbox, chechbox, option button Khi hoàn tất việc nhập liệu bằng cách
bấm vào một nót đề chấp nhận submit, hành động này sẽ gởi nội dung của form
đến Web Server
Do World Wide Web là hệ thống Web Client/Server nên hệ thống ứng
dụng CSDL trên Web sẽ mang những đặc điểm của một hệ thống ứng dụng CSDL Client/Server Vì vậy, việc nghiên cứu, tiếp cận để xây dựng hệ thống ứng
dụng Client/Server là rất cần thiết Hiện nay, đa số nhà phát triển phần mềm cho rằng cách tiếp cận dùa trên thành phần là cách tiếp cận tốt để phát triên các ứng dụng Client/Server
2.2.2 Các giải pháp tích hợp Web và CSDL
Phần này sẽ nghiên cứu sự phát triển của mô hình Client/Server ứng dụng
cho việc tích hợp Web site với CSDL Chóng ta sẽ xem xét nó ở hai khía cạnh:
33
Trang 34thứ nhất, sự liên lạc giữa Client và Server ; thứ hai, phương pháp truy xuất CSDL
Mô hình Client/Server, trên thực tế, đã giúp cho việc giải quyết những bài
toán phức tạp một cách trở nên dễ dàng bằng cách phân chia bài toán đó thành
nhiều bài toán con và giải quyết từng bài toán con một Nhưng quan trọng hơn hết không phải là việc giải được những bài toán lớn mà là cách thức giải bài toán Mô hình Client/Server đã giúp phát triển một phương thức phát triển ứng
dụng mới là việc phân chia ứng dụng thành nhiều líp thực hiện những chức năng
chuyên biệt Một ứng dụng thông thường được chia thành ba líp:
e _ Giao diện (Presentation logic): líp này là cầu nối giữa người dùng với ứng dụng, cung cấp những chức năng của ứng dụng cho người dùng và nhận những lệnh từ người dùng cho ứng dụng Líp này được thiết kế sao cho càng
thân thiện với người đùng càng tốt
e Chức năng (tạm dịch từ Business logic): đây là phần lõi của một
chương trình, cung cấp tất cả những chức năng có thê có của chương trình cho líp giao diện bên trên
e CSDL (Data Access logic): líp này là CSDL của ứng đụng, cung cấp khả năng truy xuất đến CSDL cho líp chức năng nếu cần
Việc phân chia ứng dụng thành nhiều líp còn giúp cho ứng dụng dễ dàng thay đổi, cập nhật và đáng tin cậy hơn
Ứng dụng đầu tiên của mô hình Client/Server là ứng dụng chia sẻ file (do các tổ chức có nhu cầu chia sẻ thông tin giữa các bộ phận trong tổ chức được dễ
dàng và nhanh chóng hơn) Trong ứng dụng này, thông tin được chứa trong các file và được đặt tại một máy (Server) của một phòng ban Khi một phòng ban
khác có nhu cầu trao đổi thông tin với phòng ban này thì sẽ sử đụng một máy
(Client) kết nối với máy Server và tải những file thông tin cần thiết về
2.2.2.1 Mô hình hai mức (2-tier) Client/Server
Trang 35Mô hình hai mức là một sự phát triển từ ứng dụng chia sẻ file ở trên Trong ứng dụng chia sẻ file, ta thay thế file Server bằng một hệ thống quản trị
CSDL (DBMS) Khi client can thông tin từ CSDL, nó sẽ yêu cầu DBMS thông
qua mạng máy tính giữa các phong ban; DBMS xu ly yéu cầu và sau đó trả về
cho Client những thông tin client yêu cầu
Ưu điểm của mô hình hai mức so với ứng dụng chia sẻ file là làm giảm bớt được lưu thông trên mạng ở ứng dụng chia sẻ file, đơn vị truyền nhận giữa
Client và Server là một file, do đó, khi client yêu cầu thông tin từ Server thì
Server sẽ trả cho Client toàn bộ một file có chứa thông tin đó Trong khi ở mô
hình hai mức thì Server có thể trả cho Client đúng những gì mà Client yêu cầu
với đơn vị truyền nhận có th tính bằng byte Ngoài ra, hiện nay các DBMS còn
cung cấp nhiều khả năng khác như hỗ trợ giao dịch, cho phép nhiều người dùng
cùng thao tác trên CSDL cùng lúc mà vẫn đảm bảo được tính toàn vẹn của dữ liệu
1) Tính toán tập trung ở Client (fat Client-thin Server): ở loại này, phía Client phải đảm nhận cả hai líp là giao diện và chức năng còn Server chỉ làm
nhiệm vu cua lip CSDL
-presentation logic
-business logic
Trang 36
Ưu điểm của mô hình loại này là đơn giản, thích hợp cho các ứng dụng
nhỏ và vừa Tuy nhiên, nó cũng có một số nhược điểm sau:
- Do phần tính toán nghiêng về phía Client nhiều nên đòi hỏi Client phải
có cấu hình đủ mạnh
- Còng do phần lõi (chức năng) của chương trình nằm ở phía Client nên khi chương trình cần nâng cấp thì sẽ rất khó khăn vì phải cập nhật lại chương
trình nằm ở toàn bộ các Client
- Do mọi thao tác trên CSDL đều thông qua mạng giữa Client và Server
nên tốc độ của chương trình sẽ chậm đi
2) Tính toán tập trung ở Server (fat Server-thin Client): ở loại này, Client
chỉ đảm nhiệm phần giao diện còn Server thực hiện chức năng của líp chức năng
và líp CSDL
Ngược lại, với loại fat Client-thin Server thì loại này có ưu điểm là giảm
sự lưu thông trên mạng và tốc độ nhanh hơn do líp chức năng của chương trình nằm ở Server cùng với CSDL, đo đó mọi thao tác với CSDL của chương trình đều được thực hiện ngay trên Server và thông tin lưu thông trên mạng chỉ là
những kết quả được trả về cho người dùng sau khi được tính toán Mặt khác, do phần lõi của chương trình được đặt tập trung tại Server nên việc cập nhật chương
trình sẽ dễ dàng hơn Tuy nhiên, đo công việc được tập trung quá nhiều tai
Server nên đòi hỏi cấu hình Server phải đủ mạnh, đặc biệt là khi có nhiều Client cùng truy xuất tới Server cùng lúc
Trang 37-presentation logic
Database Server
Data access logic
Trang 382.2.2.2 Mô hình ba mức(3-tier) Client/Server
có yêu cầu thay đổi thường xuyên như ứng dụng Web
Để thấy được tính linh hoạt của mô hình ba mức, ta lấy một ứng dụng có
cấu trúc theo mô hình ba mức, có mức giữa chức năng là các thành phần COM giao tiếp với mức giao điện thông qua các nhập xuất chuẩn (standard I/O) va voi
mức CSDL bằng các câu lệnh SQL thông qua ODBC hoặc ADO Khi đó, mức
CSDL của ứng dụng có thể là bất cứ DBMS nào mà ODBC hoặc ADO hỗ trợ
như Access, SQL Server, và ứng dụng có thê là một ứng dụng stand-alone chạy trên một máy hoặc trở thành một ứng dụng Web chạy trên nhiều máy khác nhau bằng cách nhúng thành phần COM nay vào phan giao diện là một cửa số ứng dụng hoặc một trang Web
38
Trang 39Chương 3: Công nghệ ASP
3.1 Lùa chọn công nghệ cho đề tài
Xây dùng Web site khối PTCTT đồng nghĩa với việc xây dựng một Web Server trên máy chủ chứa dữ liệu, các trang Web và các chương trình phục vụ cho việc quản lý các thông tin như: thông tin về giáo viên, hoc sinh, Web Server này phải có khả năng tương tác với Client, xử lý dữ liệu do Client gửi
đến, trả về kết quả động tuỳ thuộc vào nội dung dữ liệu mà Client yêu cầu,
Tức là chúng ta phải xây dựng các trang Web động Nếu không xây dựng những
trang Web động thì người thiết kế phải thiết kế lại những trang Web đó mỗi khi
có yêu cầu cập nhật
Việc xây dựng các trang Web động có thể sử dụng các công nghệ như:
CGI, Perl, ISAPI, ASP, JSP,Servlet
CGI ( Cémmon Gateway Interface)
CGI là một phương thức giao tiếp giữa Web Server và chương trình ứng
dụng Một chương trình CGI thực chất là một chương trình exe (trên Windows) hoặc một chương trình thực thi (trên Unix) Nó có thể được xây đựng từ nhiều ngôn ngữ như C, Pascal, Visual Basic,
Thuận lợi của ứng dụng CGI là tính ph biến va dễ viết (vì các ngôn ngữ
nhu C, Pascal, Visual Basic la rất thông dụng) CGI cũng tỏ ra rất hiệu quả trong các ứng đụng truy xuất Web trên Internet Ngày nay CGI hiện vẫn còn
được sử dụng rộng rãi trên các trình Web Server chạy trên máy chủ Unix và Linux Tuy nhiên, nó có nhược điểm là tiêu tốn tài nguyên và hạn chế về tốc độ
thực thi Mỗi khi có yêu cầu gửi từ Client, Web Server phải triệu gọi CGI theo các bước:
- Nap chương trình vào bộ nhớ
- Thực thi chương trình
- Trả kết quả về cho Client
- Giải phóng CGI khỏi bộ nhớ
Việc lưu vết trạng thái trong mỗi kết nói giữa Client và Server của ứng dông Web CGI cũng rất khó quản lý
39
Trang 40Perl (Practical Extraction and Report Language):
Perl là một ngôn ngữ lập trình dùng cho CGI, do Larry Wall tạo ra, được
dùng khá rộng rãi trên Unix và Linux Perl khác biệt với các ngôn ngữ khác là
có tính chất xử lý text rất mạnh đo có nhiều toán còng như hàm để hỗ trợ
riêng cho xử lý text Nó có thể xử lý dễ dàng những tác vụ giống như C hoặc Unix shell thường làm trong việc viết một Script nhưng có thê ngắn gọn và đơn giản hơn Không giống như các trình biên dịch C hay C++, Perl là một
trình thông dịch Vì là một ngôn ngữ lập trình cho nên Perl cũng có đầy đủ
các công cụ hỗ trợ cho nó như tất cả các ngôn ngữ lập trình khác như: biến,
dãy, danh sách,
Perl đã mở rộng các chức năng của trình CGI phục vụ cho Web Server
Mở đầu cho thời kỳ viết ứng dụng biên dịch kịch bản (scipting) phục vụ cho
phía máy chủ (Server side) như ASP, JSP,
IASP, Servlet, ASP, JSP: , Servlet, ASP, JSP:
Như ta đã biết, nhược điểm chính của chương trình CGI là vấn đề tốc độ Mỗi lần thực thi chương trình CGI, Web Server phải nạp và giải phóng
chương trình CGI ra khỏi bộ nhớ Công nghệ Web đã đưa ra rất nhiều giải
pháp khắc phục yếu điểm này
Windows cung cấp cho ta cách thức xây dựng các chương trình CGI ở
dạng thư viện liên kết động DLL ứng dụng CGI kiêu mới này còn gọi là các
ứng dụng ISAPI Chương trình ISAPI chỉ phải nạp một lần vào bộ nhớ khi lần đầu tiên Web Server gọi nó Do không phải nap nhiều lần nên tốc độ thực thi được cải thiện đáng kể Hơn nữa, các chương trình ISAPI phục vụ Web
Server hiệu quả và Ýt tốn tài nguyên hơn các chương trình ISAPI thông