Mô 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 cần 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 phòng ban; DBMS xử lý 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.
105 trang |
Chia sẻ: oanh_nt | Lượt xem: 1289 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng Web site khối phổ thông chuyên Toán-Tin trường đại học Sư phạm Hà nội, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ient (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 vụ của lớp CSDL.
Database Server
DBMS
Data access logic
-presentation logic
-business logic
Ư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.
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, do đó 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, do công việc được tập trung quá nhiều tại 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.
Database Server
DBMS
Data access logic
Data access logic
-presentation logic
2.2.2.2. Mô hình ba mức(3-tier) Client/Server
Database Server
DBMS
Data access logic
Application Server
-business logic
-presentation logic
Trong mô hình 3 mức, lớp chức năng của chương trình được tách ra thành một mức tạo thành một mức riêng biệt. Việc tách lớp này làm cho các phần của chương trình độc lập hơn, đáng tin cậy hơn, chương trình trở nên linh động hơn trong việc thay thế, nâng cấp và do đó, mô hình này rất thích hợp với ứng dụng 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 diện thông qua các nhập xuất chuẩn (standard I/O) và với 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 này vào phần giao diện là một cửa sổ ứng dụng hoặc một trang Web.
Chươ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, học 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 dự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 và dễ viết (vì các ngôn ngữ như C, Pascal, Visual Basic ... là rất thông dụng). CGI cũng tỏ ra rất hiệu quả trong các ứng dụ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:
- Nạp 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ý.
Perl (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 do 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:
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 nạp 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 thường.
Để viết ISAPI ta có thể sử dụng bất kỳ công cụ nào trên Windows hỗ trợ việc biên dịch thư viện liên kết động DLL như Visual Basic, Delphi, ...
Về phía Java, câu trả lời tương tự cho ISAPI của Windows đó là Servlet. Servlet là các chương trình java chỉ cần nạp một lần vào máy ảo. Chức năng của nó cũng tương tự như các chương trình CGI hay ISAPI.
Đối với ngôn ngữ kịch bản, Microsoft đưa ra phương án thiết kế các trang ASP, đó là sự kết hợp giữa các thẻ định dạng HTML và ngôn ngữ Vbscipt. Còn java đưa ra phương án thiết kế các trang JSP là sự kết hợp giữa HTML và ngôn ngữ java. ASP và JSP cần một bộ diễn dịch (ASP, JSP engine) để thông dịch chúng.
Xét về phương diện “sức mạnh” thì Servlet, ISAPI, ASP hay JSP có thể coi là ngang nhau. Tuy nhiên, trong đề tài này em chọn ASP làm công cụ phát triển bởi nó được hỗ trợ thiết kế mạnh mẽ của Visual InterDev và FrontPage. Sau đây, em xin giới thiệu về ASP và một kỹ thuật lập trình liên quan – lập trình COM.
3.2. ASP – ACTIVE SERVER PAGES
3.2.1. Những khái niệm mở đầu về ASP.
ASP là gì?
ASP (Microsort đ Active Server Page) là một môi trường Server-side scripting cho phép ta tạo ra và chạy các ứng dụng Wed động, tương tác với Client một cách hiệu quả. ASP hoạt động dựa vào các script do người lập trình tạo sẵn.
Môi trường hoạt động của ASP:
Microsoft Internet Internet Server 3.0 trở lên chạy trên WinNT Server trở lên.
Microsoft Personal Web Server chạy trên Window 9x.
Cấu trúc của một trang ASP.
Trang ASP đơn giản là một trang văn bản với phần mở rộng là .asp, gồm có 3 thành phần:
Văn bản (Text)
HTML tag (HTML: Hypertext Markup Langue)
Các đoạn script ASP.
Khi thêm một đoạn script vào HTML, ASP dùng dấu phân cách để phân biệt giữa đoạn HTML và đoạn ASP.
< %
mã ASP
%>
Có thể xem trang ASP như một trang HTML có bổ sung các ASP Script Command.
Ví dụ:
Bạn bắt đầu với trang ASP này ngày:
Client side scripting.
Một Client side scripting được thêm vào trang html sử dụng cặp tag . Để định nghĩa ngôn ngữ script, ta sử dụng thuộc tính language chèn vào tag .
Ví dụ:
ASP dùng Client side scripting để có thể tương tác với các đối tượng nguyên tố (các tag, hình ảnh, văn bản ...), với các đối tượng brower (window, frame, history ...) và bất kỳ thành phần ActiveX nào bên trong máy chủ Microsoft.
Server side scripting:
ASP dùng Server side scripting để tạo tự động tạo các trang Web trả về cho Client, những nội dung được phát sinh dựa trên những định nghĩa của User như các tham số, các HTTP request và bất kỳ tương tác nào với các đối tượng khác (đối tượng ASP, các đối tượng business Client/Server đa lớp, middleware truy cập DBS và các hệ thống kế thừa, các thành phần BackOffice ..). ASP cung cấp các đối tượng có sẵn và các component có ích (Active Server components và DB Access component). Các đối tượng có sẵn đơn giản hoá những nhiệm vụ của Server side như việc xử lý các HTTP request và respone, phiên làm việc của User và môi trường web.
Server side scripting cũng sử dụng cặp tag hoặc . Khác với Client side script, Server side sử dụng thêm thuộc tính runat=”Server”.
Mặc định của Server side scripting là Vbscript.
Active Server Components.
Như đã biết, ta có thể tạo các trang Web động bằng cách sử dụng Server side script, và nó hầu như không giới hạn đối với những gì ta muốn thực hiện. Tiến trình này giống như việc viết một chương trình ứng dụng hơn là tạo một trang HTML. Tuy nhiên, Vbscript hay javascript cũng có những mặt hạn chế chẳng hạn như nó không thể truy cập trực tiếp vào file hoặc các chương trình ứng dụng khác. Và do đó sẽ gặp khó khăn khi viết các ứng dụng thương mại phức tạp.
Cách hay nhất để khắc phục những hạn chế của ngôn ngữ Script là tích hợp các thành phần phần mềm (software components) viết bằng ngôn ngữ bậc cao với ASP sử dụng chuẩn COM . Các thành phần phần mềm ứng dụng theo cách này thường được gọi là Active Server Components. ASP cung cấp sẵn một số Active Server Component là:
Adrotator
Browser Capabilities
Database Access
Content Linking
File Access
Cách hoạt động của ASP.
Browser gởi một request đến Web Server yêu cầu một trang ASP. Khi Web Server nhận được Request, nó sẽ đọc toàn bộ tập tin ASP và thực hiện các script trong trang ASP tương ứng với giá trị của các giá trị của các tham số nhận từ Request. Sau khi thực hiện xong nó sẽ trả kết quả về cho Browser dưới dạng file HTML.
Interprest ASP code
Hello
Gets ASP page
Hello
Web Server
Client
HTTP Request
Browser creates the web page
Server Respone
3.2.2 Mô hình các đối tượng trong ASP
Client
Server
Server Object
Application
Object
Session
Object
Response Object
Request Object
ObjectContext Object
Nhằm đem lại sự tiện lợi và dễ dàng trong việc xây dựng một ứng dụng trên Web, ASP đã xây dựng sẵn 6 đối tượng rất mạnh. Các đối tượng này không quan hệ với nhau theo mô hình phân cấp, cha-con, chúng liên hệ với nhau dựa trên vai trò và tính năng mà chúng cung cấp. Các đối tượng này bao gồm Server, Application. Session, Request, Response và ObjectContext xây dựng nên môi trường cho các ứng dụng Active Server.
Application Object
----------
-----------
Session
Client
Session
Client
Session
Client
Trong mô hình trên, đối tượng Application được dùng để chia sẻ thông tin giữa các User trong cùng một ứng dụng. Mỗi Application bao gồm nhiều phiên làm việc của user khác nhau mà đại diện cho mỗi phiên làm việc là một đối tượng Session. Chúng ta dùng đối tượng Session này để lưu trữ những thông tin riêng chỉ dành cho user đó mà thôi. Các biến trong đối tượng Session vẫn tồn tại khi user nhảy qua lại giữa các trang web trong ứng dụng đó.
Ngoài ra ASP còn cung cấp đối tượng Request cho phép nắm bắt các thông tin được yêu cầu từ user và cho phép các ứng dụng chạy trên Server xử lý chúng. Server sẽ nhận những giá trị được đưa đến qua yêu cầu HTTP và đặt chúng trong đối tượng Request này.
Ngược lại, để gửi dữ liệu lại cho trình duyệt trên máy Client ta có đối tượng Response. Các hàm và thuộc tính của nó cho phép ta tạo và sửa đổi thông tin phản hồi về cho Client.
Đối tượng ObjectContext được xây dựng nhằm quản lý các giao dịch dựa trên lệnh gọi ASP script đến Microsoft Transaction Server (MTS).
Đối tượng Request.
Đối tượng Request cung cấp đầy đủ những thông tin được chuyển đến cùng với các yêu cầu HTTP. Những thông tin này gồm có các tham số của Form khi được submit dùng phương thức POST hoặc GET hay các tham số được ghi cùng với trang ASP trong lời gọi đến trang đó.
Dùng đối tượng Request có thể chia sẻ thông tin qua lại giữa các trang ASP trong một ứng dụng và để lấy giá trị các cookie lưu trữ trên máy Client.
Nó bao gồm tập các biến và thuộc tính như trên hình vẽ sau:
Request Object
Collections
Query string
Forms
Server Variable
Cookies
ClientCertificate
Properties
TotalByte
Methods
BinaryRead
Tập hợp
Mô tả
Kiểu
ClientCertificate
Cookies
Forms
Query string
Server Variable
Các giá trị chứng nhận từ Client
Giá trị trong Cookie được gửi từ trình duyệt
Giá trị của các phần tử trong Form
Trị của các biến trong chuỗi truy vấn HTTP
Giá trị của HTTP và các biến môi trường
ReadOnly
ReadOnly
ReadOnly
ReadOnly
ReadOnly
Thuộc tính
Mô tả
Kiểu
TotalBytes
Đây là thuộc tính cho biết số byte trong thân của yêu cầu từ Client
ReadOnly
Phương thức
Mô tả
BinaryRead
Đây là hàm dùng để nhận những dữ liệu gửi đến Server như là một phần của yêu cầu POST
Có hai cách cơ bản để trình duyệt gửi những thông tin đặc biệt đến Web Server: đó là thông tin từ phần trong trang được đưa vào HTTP header hay được đưa trực tiếp từ chuỗi truy vấn trong địa chỉ liên kết URL. Đó chính là vai trò của hai tập hợp Form và QueryString trong đối tượng Request.
QueryString Collection:
QueryString Collection chứa toàn bộ thông tin được gửi tới Server từ Form bằng phương thức Get. Các giá trị này chứa trong một chuỗi Query và được thêm vào sau dấu ? bằng các cặp name=value theo mẫu:
Name1=value1&name2=value2 ...
Ta có thể thấy rõ chuỗi URL khi quan sát hộp Address của Browser. Ví dụ có một Form
Name:
Age:
Khi user nhập giá trị vào hai hộp name và Age (giả sử là “Hoàn” và “22”) sau đó nhấn Submit thì hộp Address của Browser sẽ có dạng như sau:
àn&Age=22
Tại Server ta có thể nhận giá trị của txtName và lưu vào một biến (ở đây là Name) như sau:
Name=Request.QueryString(“txtName”)
Cú pháp chung: Request.QueryString(“tên thành phần”)[.item]
Lưu ý, ta có thể đưa trực tiếp thông tin vào QueryString mà không cần dùng Form.
Form Collection:
Khi phương thức gửi dữ liệu của là Post thì tập hợp QueryString sẽ rỗng, và lúc này dữ liệu được gửi đi trong phần header của HTTP. Nếu quan sát hộp Address của browser thì ta không thấy được tên và giá trị dữ liệu như trường hợp Get.
Để nhận dữ liệu tại Server, ta dùng cú pháp:
Request.Form(“tên thành phần”)[.item]
Chẳng hạn, như để lấy giá trị của dữ liệu có tên là txtName ở trên:
Name=Request.Form(“txtName”)
So sánh giữa hai tập hợp QueryString và Form:
ở mỗi cách dùng một phương pháp riêng được khái quát theo mô hình sau:
Server (ASP Application)
Data is sent inside HTTP header
Data read using Form collection
Method=POST
Method=POST
Data is sent inside HTTP header
Data read using Form collection
Client (browser)
Form
Theo phương pháp dùng QueryString có hạn chế đó là giới hạn chiều dài của chuỗi địa chỉ URL ( khoảng 1000 ký tự) đây chính là yêu cầu của giao thức HTTP. Do đó, sẽ rất phiền phức khi có yêu cầu gửi đi quá dài.
Mặt khác, giá trị mà ta gửi đi được hiển thị rõ ràng trong ô địa chỉ URL trên trình duyệt máy Client nên dễ dàng bị người khác đọc được.
Phương pháp dùng POST đã khắc phục được nhược điểm trên bằng cách đưa dữ liệu vào trong phần header của HTTP.
Server Variable Collection:
Theo tên gọi thì ta thấy tập hợp này không có tác dụng gì mấy đối với yêu cầu của Client, nhưng hầu hết các thông tin lấy được từ các collection khác đều bắt nguồn từ đây.
Bất kỳ một header HTTP nào được gửi từ trình duyệt đều có trong đây và lấy ra bằng đoạn mã sau:
Strvalue=Request.ServerVariables(“HeaderType”)
Cookies collection:
Được xây dựng dựa vào yêu cầu lưu trữ thông tin một cách liên tục trên máy Client. Các cookies được lưu thành file trên máy Client và chỉ được đọc thông qua đối tượng Request. Ta có thể sửa đổi cookies dựa vào đối tượng Response.
Cookie có thuộc tính quan trọng đó là thời gian mà nó tồn tại trong hệ thống, vấn đề này sẽ được đề cập trong phần Response Object.
ClientCertificate collection:
Bảo mật dữ liệu luôn luôn là vấn đề đáng quan tâm trên mạng, nhất là vào thời điểm hiện nay khi mà nhu cầu kinh doanh trên mạng ngày càng tăng. Giao thức SSL/PCT ra đời cung cấp phương thức truyền nhận dữ liệu bằng cách mã hoá và giải mã dữ liệu thông qua Web Server và trình duyệt hỗ trợ SSL/PCT nằm giữa lớp TCP/IP transport và lớp các ứng dụng.
S-HTTP
SSL
Transport
Internet
Network interface
Physical Layer
Application
TELNET
NNTP
HTTP
FTP
Khi dùng SSL, trình duyệt gửi đến Server chứng nhận định danh máy Client. Việc làm này nhằm đăng ký với Server và bảo đảm cho Client gửi dữ liệu đến đúng Server và dữ liệu chỉ có thể được đọc bởi Server đó mà thôi.
Để đảm bảo cho user được phép chia sẻ thông tin cho những ai được phép, ta dùng tập hợp ClientCentificate.
Ta có thể truy xuất các thành phần của ClientCentificate bằng các Key sau:
Key
Mô tả
Centificate
Flags
Issuer
ValidForm
ValidUntil
SerialNumber
Subject
Chuỗi chứa nội dung chứng nhận dưới dạng ASN.1
Cho phép thêm các thông tin chứng nhận
Chuỗi bao gồm danh sách các thông tin về nhà cung cấp sự xác nhận
Cho biết thời gian mà sự xác nhận có hiệu lực
Cho biết khi nào thì hết hiệu lực
Chuỗi số serial của xác nhận
Thông tin về người sở hữu xác nhận
TotalByte Properties:
Số byte của Request mà Client gởi lên trong body.
BinaryRead method:
Được dùng để lấy dữ liệu gởi đến Server từ Client thông qua phương thức POST.
Request.BinaryRead(tên dữ liệu)
Đối tượng Response.
Trong hệ thống các đối tượng xây dựng sẵn của ASP thì đối tượng response đóng vai trò rất quan trọng. Khi mà đối tượng Request bao gồm những thông tin gửi đến Web Server từ trình duyệt thì đối tượng Response nắm giữ những gì mà Web Server phải gửi trả lại cho trình duyệt. Tóm lại, ta dùng đối tượng response để gửi thông tin ra user, gồm có thông tin trực tiếp ra trình duyệt, chuyển trình duyệt đến địa chỉ URL khác hay để thiết lập các cookie trên máy Client.
Phần Interface của đối tượng này được trình bày như hình vẽ sau:
Response Object
Collection
Cookie
Properties
Buffer
CacheControl
Charset
ContentType
Expires
ExpiresAbsolute
IsClientConnected
PICS
Status
Methods
AddHeader
AppendToLog
BinaryWrite
Clear
End
Flush
Redirect
Write
Tập hợp
Mô tả
Cookies
Giá trị của các cookies sẽ gửi cho trình duyệt.
Thuộc tính
Mô tả
Buffer
CacheControl
Charset
ContentType
Expires
ExpiresAbsolute
IsClientConnected
PICS
Status
Yêu cầu vùng đệm trang cho đến khi hoàn tất
Xác định proxy Server cache các trang được tạo ra bởi ASP.
Tên tập ký tự cho phần header content-type
Kiểu nội dung của HTTP
Thời gian bao lâu thì trang được cache trên trình duyệt hết hiệu lực
Ngày giờ khi trang được cache trên trình duyệt hết hiệu lực
Cho biết Client có ngắt kết nối khỏ Server hay chưa
Thêm trị của nhãn PICS vào trường pics-label của phần header response
Trị dòng trạng thái HTTP được Server trả về
Phương thức
Mô tả
AddHeader
AppendToLog
BinaryWrite
Clear
End
Flush
Redirect
Write
Thêm hay sửa đổi phần HTTP header
Thêm đoạn text vào phần log của Web Server cho yêu cầu này
Gửi text đến trình duyệt mà không chuyển đổi bảng ký tự
Xoá tất cả những vùng đệm của những trang HTML output
Ngừng xử lý trang và trả về kết quả hiện hành
Gửi những vùng đệm của output ngay lập tức
Buộc trình duyệt connect tới địa chỉ URL khác
Ghi một biến vào trang hiện hành dưới dạng chuỗi
Từ đó ta thấy có thể chia các thành phần trên thành các nhóm chức năng sau:
Chèn thêm thông tin vào trang: write và binary write.
Gửi cookies đến trình duyệt: cookies
Định địa chỉ mới cho trình duyệt: redirect
Vùng buffer của trang: buffer, flush, clear, end
Đặt thuộc tính của trang: ContentType, Expires, ExpiresAbsolute, PICS, Status, AddHeader, CacheControl, Charset
Kiểm tra xem Client có connect hay không: IsClientConnected
Đối tượng Server
Đối tượng Server cung cấp những thuộc tính và các phương thức cơ bản trên Server được dùng trong hầu hết các trang ASP.
Đối tượng Server không có kiểu tập hợp.
Server Object
Collections
Propertier
ScriptTimeout
Methods
CreateObject
HTMLEncode
Mappath
URLEncode
Thuộc tính
Mô tả
ScriptTimeout
Thời gian script được thực thi trước khi xảy ra lỗi (mặc định là 90s)
Phương thức
Mô tả
CreateObject
HTMLEncode
Mappath
URLEncode
Tạo ra bảng instance của đối tượng hay thành phần Server
Đưa vào mã HTML cho một chuỗi
Chuyển đường dẫn ảo thành đường dẫn vật lý
Đưa vào mã URL gồm cả ký tự escape cho một chuỗi
Đối tượng Application.
Đối tượng Application được dùng để chia sẻ thông tin giữa các user trong cùng một ứng dụng. Ngoài ra còn có thể dùng để đếm số lần truy cập đến ứng dụng của user.
Application Object
Collections
Contents
StatisObjects
Events
OnStart
OnEnd
Methods
Lock
Unlock
Tập hợp
Contents
StatisObjects
Chứa các khoản được thêm vào trong ứng dụng qua lệnh script
Chứa các đối tượng được thêm vào ứng dụng bằng thẻ .
Phương thức
Mô tả
Lock
Unlock
Không cho Client thay đổi thuộc tính của ứng dụng.
Cho phép Client thay đổi thuộc tính của ứng dụng.
Sự kiện
Mô tả
OnStart
OnEnd
Xảy ra khi bắt đầu ứng dụng
Xảy ra khi ứng dụng kết thúc, sau sự kiện Session_onEnd
Chúng ta thấy có hai sự kiện liên quan đến việc bắt đầu và kết thúc của một ứng dụng ASP. Vậy khi nào thì bắt đầu một ứng dụng ASP và khi nào thì nó kết thúc?
ứng dụng ASP là một ứng dụng trên Web mà nội dung của nó tương tác và được tạo ra một cách linh động. Do đó, ứng dụng chỉ thật sự bắt đầu chạy khi có một yêu cầu đầu tiên nào của Client đến trang tài liệu nằm trong thư mục của ứng dụng trên Web Server.
ứng dụng ASP kết thúc khi Web Server ngưng hoạt động và sự kiện trong kịch bản onend sẽ được thực thi. Trong trường hợp Web Server bị hỏng thì ứng dụng vẫn kết thúc nhưng kịch bản onend không thực thi.
Để lưu trữ các thông tin toàn cục ta lưu chúng vào file global.asa trong thư mục gốc của ứng dụng.
Cú pháp:
Sub _()
...
End Sub
Đối tượng Session
Đối tượng Session được dùng trong trường hợp cần chia sẻ dữ liệu giữa các trang nhưng giữa các Client khác nhau thì không. Mỗi Client yêu cầu một trang trong ứng dụng sẽ được gán bởi một Session Object. Vậy một phiên làm việc được tạo ra khi Client lần đầu tiên yêu cầu dữ liệu và mặc định sau 20 phút mà Client không yêu cầu gì nữa thì mất.
Phần giao tiếp của đối tượng Session như sau:
Session Object
Collections
Contents
StatisObject
Properties
Codepage
LCID
SessionID
Timeout
Methods
Abadon
Events
OnStart
OnEnd
Tập hợp
Mô tả
Contents
StatisObject
Chứa các khoản được thêm vào trong Session qua lệnh script
Chứa các đối tượng được thêm vào Session bằng thẻ
Methods
Mô tả
Abadon
Huỷ một đối tượng Session và giải phóng tài nguyên mà nó chiếm
Thuộc tính
Mô tả
Codepage
LCID
SessionID
Timeout
Định codepage của trang
Định danh vùng địa lý
Trả về số ID của Session dành cho user đó
Định thời gian timeout cho trạng thái của Session
Sự kiện
Mô tả
OnStart
OnEnd
Xảy ra khi Server tạo một Session mới
Xảy ra khi Session bị huỷ hay bị timeout
Cũng giống như đối tượng Application, Session object có sự kiện dành cho việc bắt đầu 1 session và kết thúc session. Các kịch bản dành cho 2 sự kiện này được đặt trong file global của ứng dụng dưới dạng như sau:
Sub Session_OnStart
...
End Sub
Sub Session_OnEnd
...
End Sub
Đến đây một vấn đề đặt ra là khi nào thì bắt đầu Session và nó kết thúc khi nào?
Có ba cách tạo một session:
Khi có khai báo Session_OnStart trong file global.asa trong thư mục gốc của ứng dụng.
Ngoài ra khi truy xuất đến dữ liệu trong đối tượng Session mà đối tượng này chưa có thì khi đó đối tượng Session được tạo ra.
Khi có một bản Intance của một đối tượng nào đó có tầm vực là SCOPE=session.
Và có hai cách kết thúc một Session:
Dùng phương thức abandon của đối tượng Session. Điều này sẽ giải phóng tất cả tài nguyên mà Session chiếm giữ đồng thời các lệnh trong sự kiện Session_OnEnd được thực thi.
Nếu quá thời gian timeout mà Client không có yêu cầu nào đến ứng dụng thì Server sẽ huỷ Session đó.
Đối tượng ObjectContext
Dùng để chấp thuận hoặc huỷ bỏ transaction được khởi tạo bởi một ASP script.
Phương thức
Mô tả
Setcomplete
Setabort
Khai báo hoàn tất transaction
Huỷ bỏ transaction được tạo bởi ASP
Sự kiện
Mô tả
OnTransactioncommit
OnTransactionabort
Xảy ra khi giao phó cho một transaction
Xảy ra khi huỷ bỏ một transaction
3.2.2 Truy vấn CSDL trong ASP
Một ứng dụng Web database viết bằng ASP có thể truy xuất dữ liệu trong một database, bằng cách sử dụng Component Database Access của ActiveX hay còn gọi là thư viện ADO (Active Data Object). Đây cũng chính là điểm mạnh nhất của ASP trong việc phát triển ứng dụng Web Database.
ADO cung cấp kỹ thuật truy xuất cơ sở dữ liệu dễ dàng và nhanh chóng thông qua ngôn ngữ script đơn giản và linh động. Các ứng dụng dùng ADO rất dễ hiểu, đạt hiệu quả cao với chi phí thấp. Những Object mà ADO cung cấp có thể tạo ra các kết nối (Connection) với hầu hết các kiểu Database, cũng như việc truy xuất cập nhật các Database này.
Sự giao tiếp giữa ADO và các thành phần khác trong hệ thống có thể được mô tả theo hình vẽ sau:
Active Server Pages
Active Database Component
Active Data Object
ODBC Drivers
Data Provider Interface
DataSource
ADO có ba đối tượng chính là: Connection, RecordSet và Command. Ngoài ba đối tượng chính này còn có các đối tượng, tham số, thuộc tính, phương thức con. Để sử dụng các đối tượng ADO trong trang ASP, ta cần phải khởi tạo một Intance của nó. Ví dụ tạo một Intance cho đối tượng Connection:
<%
Connection_name=Server.CreateObject(“AĐOB.Connection”)
%>
Sau khi tạo đối tượng ta có thể sử dụng nó để truy xuất CSDL.
3.3. Com – Component Object Model.
3.3.1. Com là gì?
COM là một cách thức để viết các thành phần phần mềm (software component) cung cấp các chức năng phục vụ cho các ứng dụng, các hệ điều hành cũng như những thành phần khác. Com thực chất là một sự đặc tả. Nó chỉ ra làm thế nào để xây dựng các thành phần có thể được thay thế một cách “động”. Com cung cấp một “chuẩn” để các ứng dụng và các thành phần phải tuân theo để chúng có thể hoạt động được với nhau.
3.3.2. Thành phần Com là gì?
Thành phần COM là những đoạn mã hiện thực các hàm, các chức năng được chứa trong file .DLL hoặc .EXE. Thành phần COM cần phải thoả mãn được những “chuẩn” của COM:
Vì được chứa trong các file .DLL và .EXE nên thành phần COM có thể được liên kết động.
Các thành phần COM có thể được đóng bao vì nó thoả mãn các ràng buộc:
Thành phần COM hoàn toàn độc lập với ngôn ngữ hiện thực nó. Thành phần COM có thể được hiện thực bằng nhiều ngôn ngữ như VC++, VB, ... hay thậm chí bằng Assembly.
Thành phần COM được sử dụng dưới dạng mã nhị phân
Thành phần COM có thể được nâng cấp mà không làm hỏng chương trình đang chạy. Điều này được giải thích ở phần “COM trong Windows”.
Thành phần COM trong suốt về mặt vị trí. Điều này cũng được giải thích ở phần sau.
3.3.3. Giao diện (Interface).
Giao diện là tất cả đối với com. Các ứng dụng chỉ có thể nhìn thấy và truy xuất đến các thành phần COM thông qua giao diện của nó.
Quan hệ giữa thành phần và giao diện là quan hệ n: n. Một thành phần có thể có nhiều giao diện và ngược lại, một giao diện có thể được hiện thực bởi nhiều thành phần.
Lợi ích của giao diện:
Giao diện làm tăng mức độ độc lập giữa các ứng dụng và các thành phần COM. Nhờ có giao diện mà một thành phần COM có thể được thay thế động mà không ảnh hưởng đến ứng dụng đang chạy.
Giao diện làm cho các thành phần khác nhau có thể được đối xử như nhau bởi ứng dụng. Đặc tính này chính là sự đa hình (pholymorphism)
Đặc điểm của giao diện:
Giao diện không bao giờ được thay đổi. Nếu một giao diện thay đổi thì ứng dụng phải được sửa đổi và biên dịch lại nếu còn muốn sử dụng các thành phần tương ứng. Nếu muốn thay đổi hoặc nâng cấp một giao diện có sẵn thì COM chỉ cho phép tạo ra một giao diện mới tồn tại song song với giao diện cũ.
Sự đa hình: nếu 2 thành phần cùng hỗ trợ một giao diện thì chúng có thể được sử dụng như nhau ở ứng dụng. Đây là đặc điểm quan trọng của giao diện. Nó cho phép một ứng dụng có thể được dùng lại cho nhiều thành phần khác nhau (dĩ nhiên là cùng hỗ trợ một giao diện). Hay nói một cách khác, ứng dụng có thể tuỳ biến (customize) các thành phần được.
Giao diện là một tập hợp các hàm chức năng (function). Trong bộ nhớ, một giao diện được tổ chức như sau:
Tất cả các ngôn ngữ lập trình nào có thể tạo ra trong bộ nhớ một cấu trúc như vậy đều có thể tạo được COM (hay nói cách khác là thoả mãn các “chuẩn “ của COM ).
3.3.4. COM trong Windows
Trong Windows, các thành phần COM cũng như các giao diện COM đều được gán một ID. ID của thành phần COM được gọi là CLSID (class identifier) của giao diện COM là IID (interface identifier). Các ID này gọi chung là GUID (globally unique identifier) là một cấu trúc 16 byte và được xác định duy nhất trên toàn thế giới!.
Mỗi khi một thành phần COM được tạo ra, nó được chứa trong một file .DLL hoặc .EXE (một file có thể chứa nhiều thành phần COM). Mỗi thành phần COM được gán một CLSID và mỗi giao diện COM cũng được gán một IID duy nhất. Tất cả các ID này đều được chứa trong registry của windows cùng với thông tin về các thành phần hoặc giao diện mà nó đại diện.
Khi ứng dụng muốn sử dụng COM, nó sẽ gọi một hàm API của windows là CoCreateInstance với thông số truyền vào là CLSID và IID tương ứng với thành phần và giao diện mà thành phần đó hỗ trợ để có được giao diện mong muốn.
COM được chia làm 3 loại:
1) Improcess Server: làm COM được chứa trong file .DLL. Do đó, nó sẽ được nạp vào cùng không gian bộ nhớ với quá trình đang chạy. Việc sử dụng ImprocessServer vừa đơn giản mà lại nhanh.
2) Local Server: được chứa trong file .EXE. Mỗi khi COM được sử dụng, nó được nạp vào một quá trình khác với quá trình đang chạy và do đó nó sẽ sử dụng không gian bộ nhớ riêng. Để giao tiếp giữa hai quá trình, ta dùng một kỹ thuật đã biết như LPC (Local Procedure Call).
3) Remote Server: được chứa trong file .DLL hoặc .EXE. Sử dụng RemoteServer cũng giống như sử dụng Inprocess hoặc LocalServer thông thường. Mỗi khi một thành phần loại Remote Server được tạo ra thì thường có hai thành phần phụ cũng được tạo ra là proxy và stub (trong VC++, việc tạo hai thành phần này là tự động, không cần phải viết thêm một đoạn mã nào). Thành phần proxy có nhiệm vụ nhận lời gọi từ phía ứng dụng, sau đó tạo ra một RPC (Remote Procedure Call) tới thành phần stub nằm trên máy khác. Thành phần stub này sẽ gọi thành phần COM nằm trên máy này, nhận kết quả trả về rồi chuyển nó cho proxy để proxy trao kết quả đó cho ứng dụng.
Trước khi tìm hiểu chi tiết cách tổ chức các ID trong registry của windows, có một số thuật từ (term) được sử dụng trong registry như sau:
Các ID được tổ chức trong registry như sau:
Tất cả các CLSID trong windows đều được chứa như là các subkey trong Key CLSID là con trực tiếp của Root HKEY_CLASSES_ROOT.
Trong mỗi clsid của thành phần COM chứa một số thông tin sau:
- Tên gợi nhớ của thành phần. Ví dụ như trong hình là “Tail Rotor Simulator”. Tên này thường là default value của clsid chỉ có tác dụng giúp cho người sử dụng hiểu thêm về thành phần mà thôi.
- InprocServer: chứa đường dẫn tới .DLL chứa thành phần loại Inprocess Server loại 16/32 bit
- InprocServer32: chứa đường dẫn tới .DLL chứa thành phần loại Inprocess Server loại 32 bit
- LocalServer32: chứa đường dẫn tới .EXE chứa thành phần loại LocalServer loại 32
Insertable: dạng boolean chỉ ra rằng thành phần COM 32 bit có thể sử dụng cho ứng dụng 16 bit hay không.
- ProID (programmatic identifier): là một tên gợi nhớ có thể thay thế cho clsid. Tuy nhiên, ProgID chỉ duy nhất trong hệ thống mà không duy nhất trên toàn thế giới như clsid. Trong thực tế, ProgID thường được dùng hơn là clsid.
VersionIndependentProgID: bởi vì một thành phần COM có thể có nhiều phiên bản (version) hay nhiều ProgID cùng đồng thời tồn tại trong hệ thống. Do đó, phải có một ProgID chung để ứng dụng có thể tìm đến để biết được hiện phiên bản nào là mới nhất.
Để cho việc tìm kiếm theo ProgID được nhanh, người ta tổ chức ProgID thành một Key riêng cũng là con của HKEY_CLASSES_ROOT, Key này chứa một số thông tin như sau:
- Tên gợi nhớ của thành phần: giống như tên gợi nhớ trong clsid.
- CLSID: là clsid tương ứng với ProgID
- Curver: chỉ ra ProgID mới nhất của thành phần hiện đang dùng trong hệ thống. Thông tin này chỉ có trong VersionIndependentProgID.
3.3.5. Vấn đề tái sử dụng (reuse) các thành phần COM
Tuy COM có mô hình hướng đối tượng nhưng COM không hỗ trợ việc thừa kế về sự hiện thực (hay còn gọi là thừa kế về kiểu-theo lý thuyết của hướng đối tượng). COM chỉ hỗ trợ sự kế thừa về giao diện. Có hai kiểu kế thừa về giao diện là kế thừa theo kiểu ngăn chặn (containment) và kế thừa theo kiểu kết hợp (aggregation).
3.3.5.1. Kế thừa theo kiểu ngăn chặn
Thành phần bên ngoài (outer component) có hai giao diên là IX và IY. Trong đó IY được kế thừa từ giao diên IZ của một thành phần khác (được gọi là thành phần bên trong-inner component). Khi một ứng dụng sử dụng giao diện IY, giao diện này sẽ chuyển lời gọi tới giao diện IZ của thành phần bên trong. Sau đó sẽ nhận kết quả trả về từ IZ và chuyển nó cho ứng dụng. Thành phần bên ngoài có thể làm thêm một số tác vụ khác trước khi chuyển lời gọi tới hoặc nhận kết quả trả về từ IZ.
3.3.5.2. Kế thừa theo kiểu kết hợp
Khác với thừa kế theo kiểu ngăn chặn là chặn các lời gọi cũng như kết quả trả về từ giao diện của thành phần bên trong, một thành phần bên ngoài khi kết hợp một giao diện của thành phần bên trong thì nó sẽ chuyển lời gọi trực tiếp từ ứng dụng tới giao diện của thành phần bên trong và cũng sẽ trả giá trị trả về trực tiếp tới ứng dụng mà không có một sự tác động nào.
Việc sử dụng kiểu thừa kế nào tuỳ thuộc vào từng trường hợp. Nếu một giao diện đáp ứng một cách chính xác tất cả các yêu cầu mong muốn thì có thể thừa kế theo kiểu kết hợp. Nếu cần phải sửa đổi giao diện trước hoặc sau khi sử dụng nó thì bắt buộc phải thừa kế theo kiểu ngăn chặn.
Chương 4. Phân tích và thiết kế hệ thống
4.1. Phân tích hệ thống.
4.1.1. Khảo sát yêu cầu.
Xây dựng Web site khối PTCTT nhằm mục đích giúp cho các thày, cô biết được thông tin về lớp, học sinh mà mình đang dạy; các học sinh biết được thông tin về thời khóa biểu, về môn học, về giáo viên, lịch thi, các tin tức về hoạt động ngoại khoá, văn nghệ, thể thao đặc biệt là thông tin về điểm.
Nhu cầu các cựu học sinh khối PTCTT cần liên lạc với nhau để trao đổi là rất cấp thiết. Việc thành lập hội cựu học sinh là không khả thi vì các vấn đề khách quan như thời gian, nơi công tác, ... vì vậy, cần xây dựng một diễn đàn trên mạng để các cựu học sinh có thể trao đổi về công tác, nghiên cứu.
4.1.2. Hiện trạng quản lý
Hiện nay, việc quản lý giáo viên, môn học, học sinh, ... đều phải lưu trên giấy tờ, sổ sách. Khi có yêu cầu tìm kiếm thông tin thì chúng ta rất mất thời gian để tìm trên sổ sách. Giáo viên, học sinh rất thụ động trong việc xem thông tin về tất cả các vấn đề mà mình quan tâm.
Hơn nữa, do đặc điểm học sinh của khối không phải chỉ ở Hà nội mà có cả các em quê ở các tỉnh khác nên việc xem phụ huynh học sinh không thể theo dõi tình hình học tập của con cái mình một cách trực tiếp và nhanh chóng được ( thực tế đôi khi còn không biết tình hình học tập của con cái mình)
4.1.3. Nhiệm vụ.
Hiện nay Internet phát triển rộng khắp từ thành phố đến vùng nông thôn nên việc tìm kiếm thông tin qua mạng là khá dễ dàng. Việc xây dựng một Web site nhằm đưa tất cả các thông tin liên quan đến học sinh là cần thiết. Đây là nơi để các học sinh cũ trưởng thành từ khối có thể biết được tình hình hiện trạng của khối và trao đổi trực tiếp
Qua Internet, phụ huynh, giáo viên và học sinh có thể xem tất cả thông tin cần tìm hiểu và trao đổi trực tiếp với nhau.
Vì vậy, nhiệm vụ đặt ra là làm thế nào để mọi người cảm thấy việc truy cập là tiện lợi và thoải mái còn người quản lý thì dễ dàng thực hiện công việc quản lý của mình. Muốn vậy, Web site phải được thiết kế thân thiện, dễ sử dụng, không có thao tác thừa mà còn hấp dẫn người truy cập, thể hiện ở cách trình bày và nội dung của nó.
4.2. Phân tích hệ thống về chức năng.
4.2.1. Sơ đồ phân cấp chức năng.
4.2.2. Sơ đồ luồng dữ liệu (DFD).
Sơ đồ luồng dữ liệu thể hiện sự trao đổi luồng dữ liệu giữa hệ thống và môi trường ngoài cũng như giữa các thành phần bên trong hệ thống. Sơ đồ luồng dữ liệu được chia làm nhiều mức tương ứng với từng cấp của sơ đồ phân cấp chức năng.
Sơ đồ dữ liệu mức khung cảnh (DFD mức 0) tương ứng với mức 0 của sơ đồ phân cấp chức năng. Cả hệ thống được coi như là một hộp đen, ta chỉ cần quan tâm đến các thông tin đầu vào và các thông tin đầu ra. Đối với đề tài này đây chính là các luồng dữ liệu giữa hệ thống và các tác nhân: nhà trường, giáo viên, học sinh, hội viên và gia đình.
Tương ứng với mức 1 của sơ đồ phân cấp chức năng là sơ đồ dữ liệu mức đỉnh. ở đây gồm có các hoạt động như: thông tin điểm; thông tin hồ sơ; thông tin kỷ luật, khen thưởng; trao đổi, hội thảo; các thông tin liên quan đến học sinh và thông tin về cựu học sinh.
Sơ đồ dữ liệu mức dưới đỉnh tương ứng với mức 2 của sơ đồ phân cấp chức năng.
Các ký hiệu được dùng:
: Tác nhân
: Chức năng
Tên
: Chức năng
: Tệp dữ liệu
: Luồng dữ liệu
Sau đây là các sơ đồ:
Biểu đồ luồng dữ liệu mức bối cảnh.
Biểu đồ luồng dữ liệu mức đỉnh.
Biểu đồ luồng dữ liệu mức1.
`
Biểu đồ luồng dữ liệu mức2.
4.3 Phân tích hệ thống về dữ liệu.
Trong sơ đồ trên ta đã thấy được các luồng thông tin vào, ra hệ thống cũng như các luồng thông tin truyền trong hệ thống. Phần này ta sẽ đi sâu vào phân tích nội dung dữ liệu và mối quan hệ về dữ liệu của các luồng thông tin đó. Mô hình được sử dụng để phân tích là mô hình thực thể liên kết. Trong mô hình này, thông tin được quy về các đối tượng mà ta gọi là thực thể, tính chất của các thực thể được thể hiện bằng các thuộc tính và các mối quan hệ giữa chúng.
4.3.1 Xác định các thực thể.
Thực thể là các đối tượng cần lưu trữ thông tin trong hệ thống, nó có thể là tài nguyên, giao dịch hay thông tin đã được cấu trúc hoá. Đối với hệ thống trong đề tài này, các thực thể được xác định là:
Học sinh
Lớp
Thời khoá biểu
Điểm
Học sinh-Điểm
Giáo viên
Môn học
Giáo viên-Môn học
Huy chương
Học sinh-Huy chương
Cựu học sinh
Học hàm
Học vị
Lĩnh vực công tác
4.3.2 Các thuộc tính của thực thể.
Bảng Học sinh(Số thẻ, lớp, khóa, họ, tên, năm sinh, giới tính, quê quán, địa chỉ, điện thoại, Email, mã huy chương, khen thưởng, kỷ luật, ghi chú)
Column name
Data type
Length
null
MaHS
Char
10
Malop
Char
10
Hoten
Char
40
Chucvu
Char
25
ệ
Ngaysinh
Datetime
8
Gioitinh
Bit
1
Quequan
Nvarchar
200
ệ
Diachi
Nvarchar
200
ệ
Dienthoai
Char
12
ệ
Email
char
50
ệ
Khenthuong
Nvarchar
200
ệ
Kyluat
Nvarchar
200
ệ
Anh
Nvarchar
50
ệ
Ghichu
Nvarchar
200
ệ
Bảng Lớp(malop, giáo viên chủ nhiệm, ghi chú)
Column name
Data type
length
Null
Malop
Char
10
Gvchunhiem
Nvarchar
50
Ghi chú
Nvarchar
200
ệ
Bảng Mônhọc (mamon, tên môn, hệ số, tài liệu, học kỳ)
Column name
Data type
length
null
Mamon
Char
10
Tenmon
Nvarchar
50
Heso
Char
1
Hocky
Char
1
Bảng Giaovien(magv, tengv, mamon, diachi, dienthoai, Email, ghichu)
Column name
Data type
length
Null
Magv
Char
10
Tengv
Nvarchar
50
Diachi
char
50
ệ
dienthoai
char
10
ệ
Email
char
50
ệ
Hocvi
Nvarchar
30
ệ
Hocham
Nvarchar
30
ệ
Ghichu
nvarchar
200
ệ
Bảng Giáo viên-Môn học(magv, mamon)
Column name
Data type
Length
null
Magv
Char
10
mamon
Char
10
Bảng thoikhoabieu(thu, malop, Tiết1, Tiết2, Tiết3, Tiết4, Tiết5, Ca học, ghichu)
Column name
datatype
length
null
thu
Char
10
malop
char
10
Tiet1
Nvarchar
30
ệ
Tiet 2
Nvarchar
30
ệ
Tiet 3
Nvarchar
30
ệ
Tiet 4
Nvarchar
30
ệ
Tiet 5
Nvarchar
30
ệ
Cahoc
Nvarchar
10
ệ
ghichu
nvarchar
200
ệ
Bảng Huychuong ( Mahuychuong, Tenhuychuong, ghichu)
Column name
datatype
length
null
Mahuychuong
char
5
Tenhuychuong
char
30
ghichu
nvarchar
200
ệ
Bảng Lvcongtac (Malinhvuc, Tenlinhvuc, Ghichu)
Column name
datatype
length
null
Malinhvuc
char
10
Tenlinhvuc
Nvarchar
70
Ghichu
nvarchar
200
ệ
Bảng Diem ( maHS, mamon, Diemm, Diem15, Diem45, Diemhk, Ghichu)
Column name
datatype
length
null
maHS
char
10
mamon
char
10
Diemm
char
2
Diem15
char
2
Diem45
char
2
Diemhk
char
2
Ghichu
nvarchar
100
ệ
Bảng HS-D (maHS, mamon)
Column name
datatype
length
null
MaHS
Char
10
mamon
Char
10
Bảng CuuHS ( MacuuHS, Hoten, Ngaysinh, Gioitinh, Quequan, Diachi, Dienthoai, Didong, Email, Giadinh, Chucvu, Hocham, Hocvi, Lvcongtac, Anh, ghichu)
Column name
datatype
length
null
MacuuHS
Char
10
Hoten
Nvarchar
50
Ngaysinh
Datetime
8
Gioitinh
Bit
1
Quequan
Nvarchar
70
diachi
Nvarchar
70
Dienthoai
Char
12
ệ
Didong
Char
12
ệ
Email
Nvarchar
50
ệ
Giadinh
Bit
1
ệ
Chucvu
Nvarchar
10
ệ
mahocham
char
10
ệ
mahocvị
char
10
ệ
Lvcongtac
Nvarchar
70
ệ
Anh
Nvarchar
50
ệ
Ghichu
Nvarchar
200
ệ
Bảng Hocvi (mahocvi, Ten)
Column name
Datatype
length
null
mahocvi
char
10
Ten
Nvarchar
30
Bảng Hocham (mahocham, Ten)
Column name
Datatype
length
null
mahocham
char
10
Ten
Nvarchar
30
4.3.3. Mô hình thực thể liên kết.
Học hàm
Giáo viên
Môn học
Học sinh-Điểm
Điểm
Thời khoá biểu
Lớp
Cựu học sinh
Học sinh
Học vị
Huy chương
Học sinh-Huy chương
Giáo viên-Môn học
4.4. Thiết kế các modul.
Các modul là các thành phần cơ bản tạo nên chương trình ứng dụng. Khi thực thi chương trình chính thì các modul sẽ triệu gọi lẫn nhau và thực hiện các chức năng của mình. Các modul được xây dựng trong đề tài này được mô tả theo các lược đồ chi tiết sau: ( Kí hiệu: các modul được biểu diễn bằng các hình chữ nhật. Trong đó hình chữ nhật mảnh là các trang ASP cu thể, chúng là những đơn vị chương trình nhỏ nhất. Các hình chữ nhật đậm là modul lớn, modul này bao gồm nhiều trang ASP. Mũi tên là lời gọi giữa các modul. Mũi tên là lời gọi giữa các modul. Các tham số trong lời gọi được ghi trên dưới mũi tên)
Trang chủ.asp
Tin tức- Hoạt động
Diễn đàn
Giới thiệu chung
Tập san HHT.asp
Phản hồi
Bạn cần biết !!!
Tìm kiếm
Hỗ trợ-Tư vấn
Forum Hội cựu HS
Thông tin điểm
1) Modul tìm kiếm.
Trang tìm kiếm.asp
Tìm kiếm
Kết quả.asp
Thông tin về GV hay HS
B1: Gọi trang tìm kiếm để có thể nhập nội dung tìm kiếm là giáo viên hay học sinh.
B2: Gọi modul tìm kiếm
B3: Hiển thị kết quả
2) Modul Giới thiệu chung
Gioithieu.asp
Gioithieu.asp
Trang lịch sử vàng.asp
Sodotochuc.asp
Anhhoatdong. asp
3) Modul Tin tức-Hoạt động.
Tin tức-Hoạt động
Văn hoá-Thể thao .asp
Thi học sinh giỏi .asp
Hội thảo NCKH .asp
Công tác đoàn .asp
4) Modul Bạn cần biết
Bancanbiet.asp
Bài toán hay
Sachmienphi. asp
Xemdiem.asp
`
5) Modul Hỗ trợ Tư vấn.
Hỗ trợ tư vấn .asp
Hươngnghiep.asp
Hocbong .asp
PhongtraoDoan .asp
6) Modul Phản hồi
Form nhập tt.asp
Ghi dữ liệu.asp
phản hồi
(Nơi gọi modul)
Cám ơn.asp
Thông tin
* Modul quản lý
Trang quản lý.asp
Cập nhật
Đổi mật khẩu
Hỗ trợ tuyển sinh
Chương 5. Giới thiệu chương trình
5.1. Cài đặt và triển khai chương trình.
5.1.1. Yêu cầu về trình duyệt
Qua thử nghiệm cho thấy Web site hoạt động tốt trên Microsoft Internet Explorer 4.0 và Netscape 4.0 trở lên.
5.1.2. Yêu cầu về hệ điều hành.
ASP là công nghệ của Microsoft do đó, như hầu hết các công nghệ của hãng này, nó chỉ hoạt động trên hệ điều hành của Microsoft đó là: Window NT, Window 9X, Window 2000.
Đối với Win NT ( hay Win 2000 Server) thì cần cài đặt bộ Option Pack 4 (hoặc mới hơn). Trong bộ này có 3 sản phẩm chính tạo ra môi trường hoạt động cho ASP là Microsoft Internet Information Server 4.0 (IIS 4.0) và Microsoft Certificate Server cùng với Microsoft Transaction Server (MTS).
Đối với Win 9x ( hay Win 2000 bẩn Professional) thì cần cài đặt Personal Web Server 3.0 (hoặc mới hơn). Personal Web Server là giải pháp Microsoft đưa ra để tạo điều kiện cho các nhà phát triển thiết kế Web Server ở dạng “Offline (nghĩa là không kết nối Client/Server thật) và vì thế nó không cài trên Server mà cài trên PC. Nhà phát triển có thể ngồi ở nhà thiết kế Web Server trên PC của mình mà không cần có mạng thật, sau khi thiết kế xong thì đưa Web Server lên mạng thật để chạy chương trình ở dạng “nline”. Lúc này, Web Server mới hoạt động đúng mục đích của nó. Tuy nhiên, sự khác biệt giữa thiết kế “ offline” và “online” là không đáng kể. Nếu Web Server hoạt động tốt ở dạng “offline” thì cũng sẽ hoạt động tốt ở dạng “online”.
5.2. Một số giao diện tiêu biểu.
Trang chủ
Trang sơ đồ tổ chức
Một trang tin
Trang cập nhật tin tức
Trang cập nhật tổng thể( ví dụ bảng Thời khoá biểu)
5.3 Kết luận.
5.3.1.Những kết quả đạt được
Về lý thuyết: Trước khi thực hiện đề tài tốt nghiệp này, những khái niệm về xây dựng một trang Web đối với em còn hết sức mới mẻ. Nhờ sự giúp đỡ của Tiến sĩ Phan Trung Huy- là người trực tiếp hướng dẫn – cùng với sự nỗ lực của bản thân, sau khi hoàn thành đề tài này em thu được nhiều kiến thức bổ ích. Những kiến thức đó sẽ rất hữu ích cho quá trình làm việc của em sau này.
Về chương trình:
- Trang Web đã đạt được yêu cầu của khối phổ thông chuyên Toán Tin đặt ra.
- Được thiết kế công phu đẹp mắt
- Chương trình được kiểm soát lỗi chặt chẽ đảm bảo hoạt động thông suốt
- Tiện lợi cho việc quản lý
- Có chức năng đưa tin hiệu quả
Phụ lục : Một số đoạn code của chương trình
- Trang hiện yêu cầu cập nhật học sinh; view, xoá, có chức năng tìm kiếm nhanh :
<%
Response.expires = 0
Response.expiresabsolute = Now() - 1
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control", "private"
Response.CacheControl = "no-cache"
%>
<%
displayRecs = 20
recRange = 10
%>
<%
' Get table name
tablename = "[Hocsinh]"
dbwhere = ""
a_search = ""
b_search = ""
%>
<%
pSearch = Request.QueryString("psearch")
If pSearch "" Then
pSearch = replace(pSearch,"'","''")
pSearch = replace(pSearch,"[","[[]")
b_search = b_search & "[MaHS] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[Malop] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[Hoten] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[Ten] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[Quequan] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[Diachi] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[Dienthoai] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[Email] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[Khenthuong] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[Kyluat] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[Anh] LIKE '%" & pSearch & "%' OR "
b_search = b_search & "[Ghichu] LIKE '%" & pSearch & "%' OR "
End If
If len(b_search) > 4 Then
b_search = mid(b_search,1,len(b_search)-4)
b_search = "(" & b_search & ")"
End If
%>
<%
'Build search criteria
If a_search "" Then
dbwhere = dbwhere & a_search 'advance search
ElseIf b_search "" Then
dbwhere = dbwhere & b_search 'basic search
End If
If dbwhere "" Then
Session("tablename") = tablename
Session("dbwhere") = dbwhere
'reset start record counter
startRec = 1
Session("startRec") = startRec
Else
If tablename = Session("tablename") Then
dbwhere = Session("dbwhere")
Else
'reset search criteria
dbwhere = ""
Session("dbwhere") = dbwhere
End If
End If
'Get clear search cmd
If Request.QueryString("cmd").Count > 0 then
cmd=Request.QueryString("cmd")
If ucase(cmd) = "RESET" Then
'reset search criteria
dbwhere = ""
Session("dbwhere") = dbwhere
End If
End If
%>
<%
DefaultOrder = ""
DefaultOrderType = ""
OrderBy = ""
If Request.QueryString("order").Count > 0 Then
OrderBy = Request.QueryString("order")
' Check if an ASC/DESC toggle is required
If Session("Hocsinh_OB") = OrderBy Then
If Session("Hocsinh_OT") = "ASC" Then
Session("Hocsinh_OT") = "DESC"
Else
Session("Hocsinh_OT") = "ASC"
End if
Else
Session("Hocsinh_OT") = "ASC"
End If
Session("Hocsinh_OB") = OrderBy
Session("Hocsinh_REC") = 1
Else
OrderBy = Session("Hocsinh_OB")
if OrderBy = "" then
OrderBy = DefaultOrder
Session("Hocsinh_OB") = OrderBy
Session("Hocsinh_OT") = DefaultOrderType
End If
End If
If Request.QueryString("start").Count > 0 Then
startRec = Request.QueryString("start")
Session("Hocsinh_REC") = startRec
Else
startRec = Session("Hocsinh_REC")
if not isnumeric(startRec) or startRec = "" then
'reset start record counter
startRec = 1
Session("Hocsinh_REC") = startRec
End If
End If
set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str
'xây dựng câu truy vấn
strsql = "select * from [Hocsinh]"
If dbwhere "" Then
strsql = strsql & " WHERE " & dbwhere
End If
if OrderBy "" then
strsql = strsql & " ORDER BY [" & OrderBy & "] " & Session("Hocsinh_OT")
end if
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strsql, conn, 1, 2
totalRecs = rs.RecordCount
%>Tài liệu tham khảo
[1] Mạng căn bản-VnGuide Nhà xuất bản thống kê 1997
[2] Mạng máy tính và các hệ thống mở – Nguyễn thúc Hải, NXB Giáo dục
[3] ASP database-Sài Gòn book, NXB Giáo dục 2001
[4] ASP 3.0 và ASP.Net – Nguyễn Thu Lan NXB Minh Khai
[5] MSDN 2000
[6] Inside COM- Dale Rogerson
[7] Phân tích và thiết kế hệ thống – Nguyễn Văn Ba
Mục lục
Chương 5 : Cài đặt, triển khai và đánh giá chương trình
Phụ lục: Một số đoạn mã của chương trình
Tài liệu tham khảo
Các file đính kèm theo tài liệu này:
- P0106.doc