Đề 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

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

 

doc105 trang | Chia sẻ: huong.duong | Ngày: 12/09/2015 | Lượt xem: 779 | Lượt tải: 0download
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
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 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: 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 A

Các file đính kèm theo tài liệu này:

  • docP0106.doc