MỤC LỤC
Lời cám ơn 1
Giới thiệu đề tài 1
Chương 1: Mạng máy tính và internet 3
1.1. Mạng máy tính. 3
1.1.1. Khái niệm về mạng máy tính. 3
1.1.2. Mô hình mạng OSI. 3
1.1.3. Họ giao thức TCP/IP. 5
1.2. Internet. 7
1.2.1. Giới thiệu về internet. 7
1.2.2. Các dịch vụ thông tin trên Internet. 8
1.2.3. Interanet. 13
1.3. Mô hình ứng dụng Client- Server và ứng dụng trên Web 14
Chươ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 19
2.1. Tổng quan về cơ sở dữ liệu (CSDL) 19
2.1.1. Thế nào là một CSDL? 19
2.1.2. Các mô hình CSDL. 19
2.1.2.1. Mô hình CSDL tập trung. 20
2.1.2.2. Mô hình CSDL theo kiểu File – Server. 20
2.1.2.3. Mô hình xử lý từng phần CSDL 21
2.1.2.4. Mô hình CSDL Client/Server. 21
2.1.2.5. Mô hình CSDL phân tán. 23
2. 2. Vấn đề tích hợp Web với CSDL. 30
2.2.1. Đặt vấn đề. 30
2.2.2. Các giải pháp tích hợp Web và CSDL. 32
Chương 3: Công nghệ ASP 37
3.1 Lùa chọn công nghệ cho đề tài 37
3.2. ASP – ACTIVE SERVER PAGES 39
3.2.1. Những khái niệm mở đầu về ASP. 39
3.2.2 Mô hình các đối tượng trong ASP 42
ContentType 50
3.2.2 Truy vấn CSDL trong ASP 56
3.3. Com – Component Object Model. 57
3.3.1. Com là gì? 57
3.3.2. Thành phần Com là gì? 58
3.3.3. Giao diện (Interface). 58
3.3.4. COM trong Windows 60
3.3.5. Vấn đề tái sử dụng (reuse) các thành phần COM 65
Chương 4: Phân tích và thiết kế hệ thống 68
4.1. Phân tích hệ thống. 68
4.1.1. Khảo sát yêu cầu. 68
4.1.2. Hiện trạng quản lý 68
4.1.3. Nhiệm vụ. 68
4.2. Phân tích hệ thống về chức năng. 70
4.2.1. Sơ đồ phân cấp chức năng. 70
4.2.2. Sơ đồ luồng dữ liệu (DFD). 70
4.3 Phân tích hệ thống về dữ liệu. 79
4.3.1 Xác định các thực thể. 79
4.3.2 Các thuộc tính của thực thể. 80
4.3.3. Mô hình thực thể liên kết. 84
4.4. Thiết kế các modul. 84
104 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1660 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài 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
a 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 chậm đ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 và 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 dữ liệu trở thành tổng quát đối với ứng dụng Client..
Client Application
RDO (Remote Data Objects)
ADO (ActivexX Data Objects)
ADO (ActivexX Data Objects)
ODBC Driver
RDO (Remote Data Objects)
ODBC Driver
Maứnger
OLEDB
Relational Database
Document Server
Email Server
Client Application
ADO là giao diệ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:
Vậy ngoài ADO, có cách nào để đư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ở dữ 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 chi tiết về người dùng trong cơ sở dữ liệu:
To subscript to our email list, you must enter your details here:
Name:
Address:
Phone: INPUT TYPE= “Text” NAME= ”phone” >
Email: INPUT TYPE= “Text” NAME= ”email” >
Server sẽ thực thi ứng dụng CGI và ứng dụng CGI sẽ gửi trả về dòng văn 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 dữ 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ở dữ liệu. Server nhận dữ liệu xuất ra từ cơ sở dữ 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.
Mặ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à cỏc mó 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ở dữ 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 data 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ở dữ 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)
OLEDB Provider
OLEDB Provider
OLEDB Provider
OLEDB Provider
OLEDB Provider
ODBC
ODBC Data
Access
SQL Server
Exchange
Non Relational
Data Store
Dù 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ử dụ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 cả mọi người.. Để thực hiện điều đó, nó đưa ra một mô hình đối tượng sau:
Recordset
Connection
Errors
Command
Collection
Error
Parameter
Field
Parameters
Fields
Object
Trong đó:
Đối tượng Connection:
Đố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ể dự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ở dữ 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.
Đối tượng Command:
Đối tượng Command được dùng để thực hiện các lệnh trên cơ sở dữ 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ở dữ liệu hay thờm, xoỏ, sửa các mẩu tin, các bảng mới vào cơ sở dữ liệu.
Đố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 mà ta tạo ra.
Tập Fields:
Chứa thông tin về các trường có trong các bản ghi của Recordset.
Tập Errors:
Chứa các lỗi gặp phải trong quá trình truy cập cơ sở dữ liệu.
2. 2. Vấn đề tích hợp Web với CSDL.
2.2.1. Đặt vấn đề.
Trong quá trình khai thác Web Server, do sự bùng nổ thông tin nên số lượng các trang Web (mà vốn được lưu trữ dưới dạng các tập tin) tăng lên rất 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ó khả 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 rời rạc.
Nh vậy, vấn đề quản lý 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:
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.
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 các ứng dụng trên từng Client.
Các chuyên gia cho rằng World Wide Web là một giải pháp cho vấn đề này, vì các lÝ do sau:
- Hỗ trợ đa nền tảng.
- Hỗ trợ mạng
Hỗ trợ đa nền tảng:
Mét trong những điểm nổi bật của Web là một trang Web có thể xem được trên nhiều họ máy tính khác nhau. Do đó, trong hệ thống CSDL Web, các 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 chi 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 dụng CSDL là làm thế nào để truy xuất CSDL từ các máy ở xa (remote computer). Như đã đề cập ở trên không một cá nhân hay tổ chức nào có thể xây dự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 dẫ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 và 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: thứ 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:
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 dùng càng tốt.
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.
CSDL (Data Access logic): líp này là CSDL của ứng dụ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ử dụ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.
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.
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 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: , 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 AS
Các file đính kèm theo tài liệu này:
- 27615.doc